code: function init(customSelect) {
      if (customSelect.__bunny_customselect !== undefined) {
        return false;
      }
  
      if (customSelect.dataset.name === undefined) {
        throw new Error('CustomSelect: data-name attribute missing');
      }
  
      if (!this.UI.getMenu(customSelect)) {
        throw new Error('CustomSelect: no menu found!');
      }
  
      if (!this.UI.getToggleBtn(customSelect)) {
        throw new Error('CustomSelect: toggle button not found!');
      }
  
      customSelect.__bunny_customselect = {};
  
      var hiddenSelect = this.UI.createHiddenSelect(this.getAttributesForSelect(customSelect), this.UI.getMenuItems(customSelect), this.UI.getToggleBtn(customSelect).textContent);
      this.UI.insertHiddenSelect(customSelect, hiddenSelect);
      var defaultValue = this.getDefaultValue(customSelect);
      this.UI.syncUI(customSelect, defaultValue, this.isMultiple(customSelect));
  
      this._addCustomSelectEvents(customSelect);
      this._setARIA(customSelect);
  
      initObjectExtensions(this, customSelect);
  
      return true;
    }
docs: override methods