@aquera/nile-elements 1.6.1 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1150 -624
- package/dist/internal/accessibility/a11y.custom-value.enum.cjs.js +2 -0
- package/dist/internal/accessibility/a11y.custom-value.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/a11y.custom-value.enum.esm.js +1 -0
- package/dist/internal/accessibility/a11y.property.enum.cjs.js +2 -0
- package/dist/internal/accessibility/a11y.property.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/a11y.property.enum.esm.js +1 -0
- package/dist/internal/accessibility/a11y.role.enum.cjs.js +2 -0
- package/dist/internal/accessibility/a11y.role.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/a11y.role.enum.esm.js +1 -0
- package/dist/internal/accessibility/a11y.state.enum.cjs.js +2 -0
- package/dist/internal/accessibility/a11y.state.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/a11y.state.enum.esm.js +1 -0
- package/dist/internal/accessibility/accessibility.const.cjs.js +2 -0
- package/dist/internal/accessibility/accessibility.const.cjs.js.map +1 -0
- package/dist/internal/accessibility/accessibility.const.esm.js +1 -0
- package/dist/internal/accessibility/role.enum.cjs.js +2 -0
- package/dist/internal/accessibility/role.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/role.enum.esm.js +1 -0
- package/dist/internal/enum.cjs.js +1 -1
- package/dist/internal/enum.cjs.js.map +1 -1
- package/dist/internal/enum.esm.js +1 -1
- package/dist/internal/nile-element.cjs.js +1 -1
- package/dist/internal/nile-element.cjs.js.map +1 -1
- package/dist/internal/nile-element.esm.js +1 -1
- package/dist/nile-accordion/index.cjs.js +1 -1
- package/dist/nile-accordion/index.esm.js +1 -1
- package/dist/nile-accordion/nile-accordion.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordion.cjs.js.map +1 -1
- package/dist/nile-accordion/nile-accordion.esm.js +2 -2
- package/dist/nile-auto-complete/index.cjs.js +1 -1
- package/dist/nile-auto-complete/index.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
- package/dist/nile-avatar/index.cjs.js +1 -1
- package/dist/nile-avatar/index.esm.js +1 -1
- package/dist/nile-avatar/nile-avatar.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.cjs.js.map +1 -1
- package/dist/nile-avatar/nile-avatar.esm.js +3 -1
- package/dist/nile-badge/index.cjs.js +1 -1
- package/dist/nile-badge/index.esm.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.esm.js +2 -2
- package/dist/nile-breadcrumb/index.cjs.js +1 -1
- package/dist/nile-breadcrumb/index.esm.js +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js.map +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.esm.js +1 -1
- package/dist/nile-breadcrumb-item/index.cjs.js +1 -1
- package/dist/nile-breadcrumb-item/index.esm.js +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +4 -4
- package/dist/nile-button/index.cjs.js +1 -1
- package/dist/nile-button/index.esm.js +1 -1
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.esm.js +1 -1
- package/dist/nile-button-filter/index.cjs.js +1 -1
- package/dist/nile-button-filter/index.esm.js +1 -1
- package/dist/nile-button-filter/nile-button-filter.cjs.js +1 -1
- package/dist/nile-button-filter/nile-button-filter.cjs.js.map +1 -1
- package/dist/nile-button-filter/nile-button-filter.esm.js +7 -7
- package/dist/nile-button-toggle/index.cjs.js +1 -1
- package/dist/nile-button-toggle/index.esm.js +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.cjs.js +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.cjs.js.map +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.esm.js +2 -2
- package/dist/nile-button-toggle-group/index.cjs.js +1 -1
- package/dist/nile-button-toggle-group/index.esm.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js.map +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.esm.js +1 -1
- package/dist/nile-calendar/index.cjs.js +1 -1
- package/dist/nile-calendar/index.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.esm.js +4 -4
- package/dist/nile-card/index.cjs.js +1 -1
- package/dist/nile-card/index.esm.js +1 -1
- package/dist/nile-card/nile-card.cjs.js +1 -1
- package/dist/nile-card/nile-card.cjs.js.map +1 -1
- package/dist/nile-card/nile-card.esm.js +2 -2
- package/dist/nile-carousel/index.cjs.js +1 -1
- package/dist/nile-carousel/index.esm.js +1 -1
- package/dist/nile-carousel/nile-carousel-item/index.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel-item/index.esm.js +1 -1
- package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.cjs.js.map +1 -1
- package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.esm.js +2 -2
- package/dist/nile-carousel/nile-carousel.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel.cjs.js.map +1 -1
- package/dist/nile-carousel/nile-carousel.esm.js +1 -1
- package/dist/nile-checkbox/index.cjs.js +1 -1
- package/dist/nile-checkbox/index.esm.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.cjs.js.map +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js.map +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.esm.js +4 -0
- package/dist/nile-checkbox/nile-checkbox.esm.js +3 -3
- package/dist/nile-checkbox-group/index.cjs.js +2 -0
- package/dist/nile-checkbox-group/index.cjs.js.map +1 -0
- package/dist/nile-checkbox-group/index.esm.js +1 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.cjs.js +2 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.cjs.js.map +1 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.css.cjs.js +2 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.css.cjs.js.map +1 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.css.esm.js +68 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.esm.js +56 -0
- package/dist/nile-chip/index.cjs.js +1 -1
- package/dist/nile-chip/index.esm.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.esm.js +2 -2
- package/dist/nile-circular-progressbar/index.cjs.js +1 -1
- package/dist/nile-circular-progressbar/index.esm.js +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.cjs.js +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.cjs.js.map +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.esm.js +2 -2
- package/dist/nile-code-editor/index.cjs.js +1 -1
- package/dist/nile-code-editor/index.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +1 -1
- package/dist/nile-content-editor/index.cjs.js +1 -1
- package/dist/nile-content-editor/index.esm.js +1 -1
- package/dist/nile-content-editor/nile-content-editor.cjs.js +1 -1
- package/dist/nile-content-editor/nile-content-editor.cjs.js.map +1 -1
- package/dist/nile-content-editor/nile-content-editor.esm.js +5 -5
- package/dist/nile-date-picker/index.cjs.js +1 -1
- package/dist/nile-date-picker/index.esm.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
- package/dist/nile-date-picker/nile-date-picker.esm.js +1 -1
- package/dist/nile-detail/index.cjs.js +1 -1
- package/dist/nile-detail/index.esm.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js.map +1 -1
- package/dist/nile-detail/nile-detail.esm.js +2 -2
- package/dist/nile-dialog/index.cjs.js +1 -1
- package/dist/nile-dialog/index.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +2 -2
- package/dist/nile-divider/index.cjs.js +1 -1
- package/dist/nile-divider/index.esm.js +1 -1
- package/dist/nile-divider/nile-divider.cjs.js +1 -1
- package/dist/nile-divider/nile-divider.cjs.js.map +1 -1
- package/dist/nile-divider/nile-divider.esm.js +2 -2
- package/dist/nile-drawer/index.cjs.js +1 -1
- package/dist/nile-drawer/index.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.esm.js +1 -1
- package/dist/nile-dropdown/index.cjs.js +1 -1
- package/dist/nile-dropdown/index.esm.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
- package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
- package/dist/nile-empty-state/index.cjs.js +1 -1
- package/dist/nile-empty-state/index.esm.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.cjs.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.cjs.js.map +1 -1
- package/dist/nile-empty-state/nile-empty-state.esm.js +2 -2
- package/dist/nile-file-preview/index.cjs.js +1 -1
- package/dist/nile-file-preview/index.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.esm.js +1 -1
- package/dist/nile-file-upload/index.cjs.js +1 -1
- package/dist/nile-file-upload/index.esm.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
- package/dist/nile-filter-chip/index.cjs.js +1 -1
- package/dist/nile-filter-chip/index.esm.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.esm.js +2 -2
- package/dist/nile-floating-panel/index.cjs.js +1 -1
- package/dist/nile-floating-panel/index.esm.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
- package/dist/nile-form-group/index.cjs.js +1 -1
- package/dist/nile-form-group/index.esm.js +1 -1
- package/dist/nile-form-group/nile-form-group.cjs.js +1 -1
- package/dist/nile-form-group/nile-form-group.cjs.js.map +1 -1
- package/dist/nile-form-group/nile-form-group.esm.js +2 -2
- package/dist/nile-format-date/index.cjs.js +1 -1
- package/dist/nile-format-date/index.esm.js +1 -1
- package/dist/nile-format-date/nile-format-date.cjs.js +1 -1
- package/dist/nile-format-date/nile-format-date.cjs.js.map +1 -1
- package/dist/nile-format-date/nile-format-date.esm.js +1 -1
- package/dist/nile-grid/index.cjs.js +1 -1
- package/dist/nile-grid/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-body/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-body/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-body/nile-grid-body.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-body/nile-grid-body.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-body/nile-grid-body.esm.js +2 -2
- package/dist/nile-grid/nile-grid-cell-item/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.esm.js +2 -2
- package/dist/nile-grid/nile-grid-head/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.esm.js +2 -2
- package/dist/nile-grid/nile-grid-head-item/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.esm.js +3 -3
- package/dist/nile-grid/nile-grid-row/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-row/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-row/nile-grid-row.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-row/nile-grid-row.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-row/nile-grid-row.esm.js +2 -2
- package/dist/nile-grid/nile-grid.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.esm.js +2 -2
- package/dist/nile-hero/index.cjs.js +1 -1
- package/dist/nile-hero/index.esm.js +1 -1
- package/dist/nile-hero/nile-hero.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.esm.js +2 -2
- package/dist/nile-hero-header/index.cjs.js +1 -1
- package/dist/nile-hero-header/index.esm.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js.map +1 -1
- package/dist/nile-hero-header/nile-hero-header.esm.js +2 -2
- package/dist/nile-icon/icons/svg/folder_delete.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/folder_delete.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/folder_delete.esm.js +1 -0
- package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/index.esm.js +1 -1
- package/dist/nile-icon/icons/svg/layers-three-02.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/layers-three-02.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/layers-three-02.esm.js +1 -1
- package/dist/nile-icon/index.cjs.js +1 -1
- package/dist/nile-icon/index.cjs.js.map +1 -1
- package/dist/nile-icon/index.esm.js +1 -1
- package/dist/nile-icon-button/index.cjs.js +1 -1
- package/dist/nile-icon-button/index.esm.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
- package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
- package/dist/nile-inline-edit/index.cjs.js +1 -1
- package/dist/nile-inline-edit/index.esm.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.cjs.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.cjs.js.map +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.esm.js +2 -2
- package/dist/nile-inline-sidebar/index.cjs.js +1 -1
- package/dist/nile-inline-sidebar/index.esm.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +3 -3
- package/dist/nile-inline-sidebar-group/index.cjs.js +1 -1
- package/dist/nile-inline-sidebar-group/index.esm.js +1 -1
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.cjs.js +1 -1
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.esm.js +3 -3
- package/dist/nile-inline-sidebar-item/index.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/index.esm.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +3 -3
- package/dist/nile-input/index.cjs.js +1 -1
- package/dist/nile-input/index.esm.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.esm.js +1 -1
- package/dist/nile-link/index.cjs.js +1 -1
- package/dist/nile-link/index.esm.js +1 -1
- package/dist/nile-link/nile-link.cjs.js +1 -1
- package/dist/nile-link/nile-link.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.esm.js +3 -3
- package/dist/nile-list/index.cjs.js +1 -1
- package/dist/nile-list/index.esm.js +1 -1
- package/dist/nile-list/nile-list.cjs.js +1 -1
- package/dist/nile-list/nile-list.cjs.js.map +1 -1
- package/dist/nile-list/nile-list.esm.js +1 -1
- package/dist/nile-list-item/index.cjs.js +1 -1
- package/dist/nile-list-item/index.esm.js +1 -1
- package/dist/nile-list-item/nile-list-item.cjs.js +1 -1
- package/dist/nile-list-item/nile-list-item.cjs.js.map +1 -1
- package/dist/nile-list-item/nile-list-item.esm.js +2 -2
- package/dist/nile-lite-tooltip/index.cjs.js +1 -1
- package/dist/nile-lite-tooltip/index.esm.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js.map +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.esm.js +1 -1
- package/dist/nile-menu/index.cjs.js +1 -1
- package/dist/nile-menu/index.esm.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
- package/dist/nile-menu/nile-menu.esm.js +2 -2
- package/dist/nile-menu-item/index.cjs.js +1 -1
- package/dist/nile-menu-item/index.esm.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
- package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
- package/dist/nile-option/index.cjs.js +1 -1
- package/dist/nile-option/index.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +5 -5
- package/dist/nile-option-group/index.cjs.js +1 -1
- package/dist/nile-option-group/index.esm.js +1 -1
- package/dist/nile-option-group/nile-option-group.cjs.js +1 -1
- package/dist/nile-option-group/nile-option-group.cjs.js.map +1 -1
- package/dist/nile-option-group/nile-option-group.esm.js +2 -2
- package/dist/nile-otp-input/index.cjs.js +2 -0
- package/dist/nile-otp-input/index.cjs.js.map +1 -0
- package/dist/nile-otp-input/index.esm.js +1 -0
- package/dist/nile-otp-input/nile-otp-input.cjs.js +2 -0
- package/dist/nile-otp-input/nile-otp-input.cjs.js.map +1 -0
- package/dist/nile-otp-input/nile-otp-input.css.cjs.js +2 -0
- package/dist/nile-otp-input/nile-otp-input.css.cjs.js.map +1 -0
- package/dist/nile-otp-input/nile-otp-input.css.esm.js +257 -0
- package/dist/nile-otp-input/nile-otp-input.enum.cjs.js +2 -0
- package/dist/nile-otp-input/nile-otp-input.enum.cjs.js.map +1 -0
- package/dist/nile-otp-input/nile-otp-input.enum.esm.js +1 -0
- package/dist/nile-otp-input/nile-otp-input.esm.js +103 -0
- package/dist/nile-page-header/index.cjs.js +1 -1
- package/dist/nile-page-header/index.esm.js +1 -1
- package/dist/nile-page-header/nile-page-header.cjs.js +1 -1
- package/dist/nile-page-header/nile-page-header.cjs.js.map +1 -1
- package/dist/nile-page-header/nile-page-header.esm.js +2 -2
- package/dist/nile-pagination/index.cjs.js +1 -1
- package/dist/nile-pagination/index.esm.js +1 -1
- package/dist/nile-pagination/nile-pagination.cjs.js +1 -1
- package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -1
- package/dist/nile-pagination/nile-pagination.css.cjs.js +1 -1
- package/dist/nile-pagination/nile-pagination.css.cjs.js.map +1 -1
- package/dist/nile-pagination/nile-pagination.css.esm.js +7 -0
- package/dist/nile-pagination/nile-pagination.esm.js +1 -1
- package/dist/nile-popover/index.cjs.js +1 -1
- package/dist/nile-popover/index.esm.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js +2 -2
- package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
- package/dist/nile-popover/nile-popover.esm.js +3 -3
- package/dist/nile-popup/index.cjs.js +1 -1
- package/dist/nile-popup/index.esm.js +1 -1
- package/dist/nile-popup/nile-popup.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.cjs.js.map +1 -1
- package/dist/nile-popup/nile-popup.esm.js +2 -2
- package/dist/nile-progress-bar/index.cjs.js +1 -1
- package/dist/nile-progress-bar/index.esm.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.cjs.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.cjs.js.map +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.esm.js +2 -2
- package/dist/nile-qr-code/index.cjs.js +1 -1
- package/dist/nile-qr-code/index.esm.js +1 -1
- package/dist/nile-qr-code/nile-qr-code.cjs.js +1 -1
- package/dist/nile-qr-code/nile-qr-code.cjs.js.map +1 -1
- package/dist/nile-qr-code/nile-qr-code.esm.js +2 -2
- package/dist/nile-radio/index.cjs.js +1 -1
- package/dist/nile-radio/index.esm.js +1 -1
- package/dist/nile-radio/nile-radio.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.cjs.js.map +1 -1
- package/dist/nile-radio/nile-radio.css.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.css.cjs.js.map +1 -1
- package/dist/nile-radio/nile-radio.css.esm.js +4 -0
- package/dist/nile-radio/nile-radio.esm.js +2 -2
- package/dist/nile-radio-group/index.cjs.js +1 -1
- package/dist/nile-radio-group/index.esm.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
- package/dist/nile-radio-group/nile-radio-group.esm.js +2 -2
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +8 -6
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/nile-section-message/index.cjs.js +1 -1
- package/dist/nile-section-message/index.esm.js +1 -1
- package/dist/nile-section-message/nile-section-message.cjs.js +1 -1
- package/dist/nile-section-message/nile-section-message.cjs.js.map +1 -1
- package/dist/nile-section-message/nile-section-message.esm.js +2 -2
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/index.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.esm.js +21 -2
- package/dist/nile-select/nile-select.esm.js +33 -25
- package/dist/nile-select/portal-utils.cjs.js +1 -1
- package/dist/nile-select/portal-utils.cjs.js.map +1 -1
- package/dist/nile-select/portal-utils.esm.js +1 -1
- package/dist/nile-side-bar/index.cjs.js +1 -1
- package/dist/nile-side-bar/index.esm.js +1 -1
- package/dist/nile-side-bar/nile-side-bar.cjs.js +1 -1
- package/dist/nile-side-bar/nile-side-bar.cjs.js.map +1 -1
- package/dist/nile-side-bar/nile-side-bar.esm.js +2 -2
- package/dist/nile-side-bar-action/index.cjs.js +1 -1
- package/dist/nile-side-bar-action/index.esm.js +1 -1
- package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js +1 -1
- package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js.map +1 -1
- package/dist/nile-side-bar-action/nile-side-bar-action.esm.js +3 -3
- package/dist/nile-side-bar-action-menu/index.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu/index.esm.js +1 -1
- package/dist/nile-side-bar-action-menu/nile-side-bar-action-menu.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu/nile-side-bar-action-menu.cjs.js.map +1 -1
- package/dist/nile-side-bar-action-menu/nile-side-bar-action-menu.esm.js +2 -2
- package/dist/nile-side-bar-action-menu-item/index.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu-item/index.esm.js +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.esm.js +1 -1
- package/dist/nile-side-bar-expand/index.cjs.js +1 -1
- package/dist/nile-side-bar-expand/index.esm.js +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js.map +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.esm.js +2 -2
- package/dist/nile-side-bar-footer/index.cjs.js +1 -1
- package/dist/nile-side-bar-footer/index.esm.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.cjs.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.esm.js +2 -2
- package/dist/nile-side-bar-footer-item/index.cjs.js +1 -1
- package/dist/nile-side-bar-footer-item/index.esm.js +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.esm.js +1 -1
- package/dist/nile-side-bar-footer-text/index.cjs.js +1 -1
- package/dist/nile-side-bar-footer-text/index.esm.js +1 -1
- package/dist/nile-side-bar-footer-text/nile-side-bar-footer-text.cjs.js +1 -1
- package/dist/nile-side-bar-footer-text/nile-side-bar-footer-text.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer-text/nile-side-bar-footer-text.esm.js +3 -3
- package/dist/nile-side-bar-group/index.cjs.js +1 -1
- package/dist/nile-side-bar-group/index.esm.js +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.cjs.js +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.cjs.js.map +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.esm.js +2 -2
- package/dist/nile-side-bar-group-item/index.cjs.js +1 -1
- package/dist/nile-side-bar-group-item/index.esm.js +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.cjs.js +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.esm.js +2 -2
- package/dist/nile-side-bar-group-item-icon/index.cjs.js +1 -1
- package/dist/nile-side-bar-group-item-icon/index.esm.js +1 -1
- package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.cjs.js +1 -1
- package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.cjs.js.map +1 -1
- package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.esm.js +2 -2
- package/dist/nile-side-bar-group-item-text/index.cjs.js +1 -1
- package/dist/nile-side-bar-group-item-text/index.esm.js +1 -1
- package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.cjs.js +1 -1
- package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.cjs.js.map +1 -1
- package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.esm.js +1 -1
- package/dist/nile-side-bar-header/index.cjs.js +1 -1
- package/dist/nile-side-bar-header/index.esm.js +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.cjs.js +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.cjs.js.map +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.esm.js +2 -2
- package/dist/nile-side-bar-logo/index.cjs.js +1 -1
- package/dist/nile-side-bar-logo/index.esm.js +1 -1
- package/dist/nile-side-bar-logo/nile-side-bar-logo.cjs.js +1 -1
- package/dist/nile-side-bar-logo/nile-side-bar-logo.cjs.js.map +1 -1
- package/dist/nile-side-bar-logo/nile-side-bar-logo.esm.js +2 -2
- package/dist/nile-side-bar-panel/index.cjs.js +1 -1
- package/dist/nile-side-bar-panel/index.esm.js +1 -1
- package/dist/nile-side-bar-panel/nile-side-bar-panel.cjs.js +1 -1
- package/dist/nile-side-bar-panel/nile-side-bar-panel.cjs.js.map +1 -1
- package/dist/nile-side-bar-panel/nile-side-bar-panel.esm.js +2 -2
- package/dist/nile-skeleton-loader/index.cjs.js +1 -1
- package/dist/nile-skeleton-loader/index.esm.js +1 -1
- package/dist/nile-skeleton-loader/nile-skeleton-loader.cjs.js +1 -1
- package/dist/nile-skeleton-loader/nile-skeleton-loader.cjs.js.map +1 -1
- package/dist/nile-skeleton-loader/nile-skeleton-loader.esm.js +2 -2
- package/dist/nile-slide-toggle/index.cjs.js +1 -1
- package/dist/nile-slide-toggle/index.esm.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js.map +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.esm.js +2 -2
- package/dist/nile-slider/index.cjs.js +1 -1
- package/dist/nile-slider/index.esm.js +1 -1
- package/dist/nile-slider/nile-slider.cjs.js +1 -1
- package/dist/nile-slider/nile-slider.cjs.js.map +1 -1
- package/dist/nile-slider/nile-slider.esm.js +3 -3
- package/dist/nile-split-panel/index.cjs.js +1 -1
- package/dist/nile-split-panel/index.esm.js +1 -1
- package/dist/nile-split-panel/nile-split-panel.cjs.js +1 -1
- package/dist/nile-split-panel/nile-split-panel.cjs.js.map +1 -1
- package/dist/nile-split-panel/nile-split-panel.esm.js +2 -2
- package/dist/nile-stepper/index.cjs.js +1 -1
- package/dist/nile-stepper/index.esm.js +1 -1
- package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
- package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
- package/dist/nile-stepper/nile-stepper.esm.js +3 -3
- package/dist/nile-stepper-item/index.cjs.js +1 -1
- package/dist/nile-stepper-item/index.esm.js +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.cjs.js +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.cjs.js.map +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.esm.js +1 -1
- package/dist/nile-switcher/index.cjs.js +1 -1
- package/dist/nile-switcher/index.esm.js +1 -1
- package/dist/nile-switcher/nile-switcher.cjs.js +1 -1
- package/dist/nile-switcher/nile-switcher.cjs.js.map +1 -1
- package/dist/nile-switcher/nile-switcher.esm.js +23 -23
- package/dist/nile-tab/index.cjs.js +1 -1
- package/dist/nile-tab/index.esm.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
- package/dist/nile-tab/nile-tab.esm.js +1 -1
- package/dist/nile-tab-group/index.cjs.js +1 -1
- package/dist/nile-tab-group/index.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
- package/dist/nile-tab-panel/index.cjs.js +1 -1
- package/dist/nile-tab-panel/index.esm.js +1 -1
- package/dist/nile-tab-panel/nile-tab-panel.cjs.js +1 -1
- package/dist/nile-tab-panel/nile-tab-panel.cjs.js.map +1 -1
- package/dist/nile-tab-panel/nile-tab-panel.esm.js +3 -3
- package/dist/nile-table/index.cjs.js +1 -1
- package/dist/nile-table/index.esm.js +1 -1
- package/dist/nile-table/nile-table.cjs.js +1 -1
- package/dist/nile-table/nile-table.cjs.js.map +1 -1
- package/dist/nile-table/nile-table.esm.js +1 -1
- package/dist/nile-table-body/index.cjs.js +1 -1
- package/dist/nile-table-body/index.esm.js +1 -1
- package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
- package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
- package/dist/nile-table-body/nile-table-body.esm.js +3 -3
- package/dist/nile-table-cell-item/index.cjs.js +1 -1
- package/dist/nile-table-cell-item/index.esm.js +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +5 -5
- package/dist/nile-table-header-item/index.cjs.js +1 -1
- package/dist/nile-table-header-item/index.esm.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.esm.js +1 -1
- package/dist/nile-table-row/index.cjs.js +1 -1
- package/dist/nile-table-row/index.esm.js +1 -1
- package/dist/nile-table-row/nile-table-row.cjs.js +1 -1
- package/dist/nile-table-row/nile-table-row.cjs.js.map +1 -1
- package/dist/nile-table-row/nile-table-row.esm.js +2 -2
- package/dist/nile-tag/index.cjs.js +1 -1
- package/dist/nile-tag/index.esm.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
- package/dist/nile-tag/nile-tag.esm.js +1 -1
- package/dist/nile-textarea/index.cjs.js +1 -1
- package/dist/nile-textarea/index.esm.js +1 -1
- package/dist/nile-textarea/nile-textarea.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.cjs.js.map +1 -1
- package/dist/nile-textarea/nile-textarea.esm.js +2 -2
- package/dist/nile-title/index.cjs.js +1 -1
- package/dist/nile-title/index.esm.js +1 -1
- package/dist/nile-title/nile-title.cjs.js +1 -1
- package/dist/nile-title/nile-title.cjs.js.map +1 -1
- package/dist/nile-title/nile-title.esm.js +1 -1
- package/dist/nile-toast/index.cjs.js +1 -1
- package/dist/nile-toast/index.esm.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
- package/dist/nile-toast/nile-toast.esm.js +2 -2
- package/dist/nile-toolbar/index.cjs.js +1 -1
- package/dist/nile-toolbar/index.esm.js +1 -1
- package/dist/nile-toolbar/nile-toolbar.cjs.js +1 -1
- package/dist/nile-toolbar/nile-toolbar.cjs.js.map +1 -1
- package/dist/nile-toolbar/nile-toolbar.esm.js +2 -2
- package/dist/nile-tooltip/index.cjs.js +1 -1
- package/dist/nile-tooltip/index.esm.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js.map +1 -1
- package/dist/nile-tooltip/nile-tooltip.esm.js +2 -2
- package/dist/nile-tree/index.cjs.js +1 -1
- package/dist/nile-tree/index.esm.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
- package/dist/nile-tree/nile-tree.esm.js +1 -1
- package/dist/nile-tree-item/index.cjs.js +1 -1
- package/dist/nile-tree-item/index.esm.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
- package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
- package/dist/nile-vertical-stepper-item/index.cjs.js +1 -1
- package/dist/nile-vertical-stepper-item/index.esm.js +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js.map +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.esm.js +7 -7
- package/dist/nile-virtual-select/index.cjs.js +1 -1
- package/dist/nile-virtual-select/index.esm.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +3 -3
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +3 -3
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/accessibility/a11y.custom-value.enum.d.ts +69 -0
- package/dist/src/internal/accessibility/a11y.custom-value.enum.js +71 -0
- package/dist/src/internal/accessibility/a11y.custom-value.enum.js.map +1 -0
- package/dist/src/internal/accessibility/a11y.property.enum.d.ts +33 -0
- package/dist/src/internal/accessibility/a11y.property.enum.js +35 -0
- package/dist/src/internal/accessibility/a11y.property.enum.js.map +1 -0
- package/dist/src/internal/accessibility/a11y.role.enum.d.ts +50 -0
- package/dist/src/internal/accessibility/a11y.role.enum.js +52 -0
- package/dist/src/internal/accessibility/a11y.role.enum.js.map +1 -0
- package/dist/src/internal/accessibility/a11y.state.enum.d.ts +17 -0
- package/dist/src/internal/accessibility/a11y.state.enum.js +19 -0
- package/dist/src/internal/accessibility/a11y.state.enum.js.map +1 -0
- package/dist/src/internal/accessibility/accessibility.const.d.ts +8 -0
- package/dist/src/internal/accessibility/accessibility.const.js +9 -0
- package/dist/src/internal/accessibility/accessibility.const.js.map +1 -0
- package/dist/src/internal/accessibility/role.enum.d.ts +3 -0
- package/dist/src/internal/accessibility/role.enum.js +5 -0
- package/dist/src/internal/accessibility/role.enum.js.map +1 -0
- package/dist/src/internal/enum.d.ts +21 -0
- package/dist/src/internal/enum.js +23 -1
- package/dist/src/internal/enum.js.map +1 -1
- package/dist/src/internal/nile-element.d.ts +52 -0
- package/dist/src/internal/nile-element.js +45 -0
- package/dist/src/internal/nile-element.js.map +1 -1
- package/dist/src/nile-avatar/nile-avatar.js +2 -0
- package/dist/src/nile-avatar/nile-avatar.js.map +1 -1
- package/dist/src/nile-badge/nile-badge.d.ts +1 -0
- package/dist/src/nile-badge/nile-badge.js +12 -1
- package/dist/src/nile-badge/nile-badge.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.css.js +4 -0
- package/dist/src/nile-checkbox/nile-checkbox.css.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.d.ts +2 -0
- package/dist/src/nile-checkbox/nile-checkbox.js +5 -0
- package/dist/src/nile-checkbox/nile-checkbox.js.map +1 -1
- package/dist/src/nile-checkbox-group/index.d.ts +1 -0
- package/dist/src/nile-checkbox-group/index.js +2 -0
- package/dist/src/nile-checkbox-group/index.js.map +1 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.css.d.ts +1 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.css.js +70 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.css.js.map +1 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.d.ts +84 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.js +355 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.js.map +1 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.test.d.ts +2 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.test.js +671 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.test.js.map +1 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +2 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.js +12 -1
- package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/folder_delete.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/folder_delete.js +5 -0
- package/dist/src/nile-icon/icons/svg/folder_delete.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
- package/dist/src/nile-icon/icons/svg/index.js +1 -0
- package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/layers-three-02.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/layers-three-02.js +1 -1
- package/dist/src/nile-icon/icons/svg/layers-three-02.js.map +1 -1
- package/dist/src/nile-link/nile-link.d.ts +2 -1
- package/dist/src/nile-link/nile-link.js +18 -1
- package/dist/src/nile-link/nile-link.js.map +1 -1
- package/dist/src/nile-otp-input/index.d.ts +1 -0
- package/dist/src/nile-otp-input/index.js +2 -0
- package/dist/src/nile-otp-input/index.js.map +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.css.d.ts +12 -0
- package/dist/src/nile-otp-input/nile-otp-input.css.js +269 -0
- package/dist/src/nile-otp-input/nile-otp-input.css.js.map +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.d.ts +156 -0
- package/dist/src/nile-otp-input/nile-otp-input.enum.d.ts +26 -0
- package/dist/src/nile-otp-input/nile-otp-input.enum.js +32 -0
- package/dist/src/nile-otp-input/nile-otp-input.enum.js.map +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.js +762 -0
- package/dist/src/nile-otp-input/nile-otp-input.js.map +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.test.d.ts +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.test.js +493 -0
- package/dist/src/nile-otp-input/nile-otp-input.test.js.map +1 -0
- package/dist/src/nile-pagination/nile-pagination.css.js +7 -0
- package/dist/src/nile-pagination/nile-pagination.css.js.map +1 -1
- package/dist/src/nile-radio/nile-radio.css.js +4 -0
- package/dist/src/nile-radio/nile-radio.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +8 -6
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +2 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +43 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-link.test.js +6 -5
- package/dist/src/nile-rich-text-editor/nile-rte-link.test.js.map +1 -1
- package/dist/src/nile-select/nile-select.css.js +21 -2
- package/dist/src/nile-select/nile-select.css.js.map +1 -1
- package/dist/src/nile-select/nile-select.d.ts +4 -0
- package/dist/src/nile-select/nile-select.js +42 -24
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-select/portal-utils.d.ts +2 -0
- package/dist/src/nile-select/portal-utils.js +36 -3
- package/dist/src/nile-select/portal-utils.js.map +1 -1
- package/dist/src/version.js +2 -2
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
- package/plop-templates/lit/index.ts.hbs +1 -1
- package/plop-templates/lit/lit.css.ts.hbs +1 -1
- package/plop-templates/lit/lit.ts.hbs +1 -1
- package/src/index.ts +3 -1
- package/src/internal/accessibility/a11y.custom-value.enum.ts +69 -0
- package/src/internal/accessibility/a11y.property.enum.ts +33 -0
- package/src/internal/accessibility/a11y.role.enum.ts +50 -0
- package/src/internal/accessibility/a11y.state.enum.ts +17 -0
- package/src/internal/accessibility/accessibility.const.ts +9 -0
- package/src/internal/accessibility/role.enum.ts +3 -0
- package/src/internal/enum.ts +23 -1
- package/src/internal/nile-element.ts +99 -0
- package/src/nile-avatar/nile-avatar.ts +2 -0
- package/src/nile-badge/nile-badge.ts +13 -1
- package/src/nile-checkbox/nile-checkbox.css.ts +4 -0
- package/src/nile-checkbox/nile-checkbox.ts +3 -0
- package/src/nile-checkbox-group/index.ts +1 -0
- package/src/nile-checkbox-group/nile-checkbox-group.css.ts +70 -0
- package/src/nile-checkbox-group/nile-checkbox-group.test.ts +769 -0
- package/src/nile-checkbox-group/nile-checkbox-group.ts +351 -0
- package/src/nile-floating-panel/nile-floating-panel.ts +10 -1
- package/src/nile-icon/icons/svg/folder_delete.ts +5 -0
- package/src/nile-icon/icons/svg/index.ts +1 -0
- package/src/nile-icon/icons/svg/layers-three-02.ts +1 -1
- package/src/nile-link/nile-link.ts +21 -2
- package/src/nile-otp-input/index.ts +1 -0
- package/src/nile-otp-input/nile-otp-input.css.ts +271 -0
- package/src/nile-otp-input/nile-otp-input.enum.ts +30 -0
- package/src/nile-otp-input/nile-otp-input.test.ts +732 -0
- package/src/nile-otp-input/nile-otp-input.ts +835 -0
- package/src/nile-pagination/nile-pagination.css.ts +7 -0
- package/src/nile-radio/nile-radio.css.ts +4 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +8 -6
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +43 -0
- package/src/nile-rich-text-editor/nile-rte-link.test.ts +6 -5
- package/src/nile-select/nile-select.css.ts +21 -2
- package/src/nile-select/nile-select.ts +44 -24
- package/src/nile-select/portal-utils.ts +46 -3
- package/vscode-html-custom-data.json +281 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-select.cjs.js","sources":["../../../src/nile-select/nile-select.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { scrollIntoView } from '../internal/scroll';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport type { RenderItemConfig } from '../nile-virtual-select/types.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '../nile-virtual-select/nile-virtual-select';\nimport { VirtualScrollHelper } from './virtual-scroll-helper';\nimport NileOptionGroup from '../nile-option-group/nile-option-group';\nimport { GroupAttributes } from './nile-select.interface';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { PortalManager } from './portal-manager';\nimport { VisibilityManager } from '../utilities/visibility-manager';\n\ntype NileRemoveEvent = CustomEvent<Record<PropertyKey, never>>;\n\n/**\n * Nile icon component.\n *\n * @tag nile-select\n *\n */\n\n/**\n * @summary Selects allow you to choose items from a menu of predefined options.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-virtual-select\n *\n * @slot - The listbox options. Must be `<nile-option>` elements. You can use `<nile-divider>` to group items visually.\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the listbox. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the listbox.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the listbox (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiselect` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n */\n\n@customElement('nile-select')\nexport class NileSelect extends NileElement implements NileFormControl{\n static styles: CSSResultGroup = styles;\n\n // protected override BUBBLES=false;\n\n private formControlController: FormControlController | null;\n private virtualScrollHelper!: VirtualScrollHelper;\n private readonly portalManager = new PortalManager(this);\n\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label'\n );\n private typeToSelectString = '';\n private typeToSelectTimeout: number;\n private scrollTimeout: number | undefined;\n private scrolling = false;\n private options: NileOption[] = [];\n private resizeController?: ResizeController;\n private visibilityManager?: VisibilityManager;\n\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLSlotElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.select__listbox') listbox: HTMLSlotElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() currentOption: NileOption;\n @state() selectedOptions: NileOption[] = [];\n @state() oldValue: string | string[] = '';\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /**\n * The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\n * value will be a space-delimited list of values based on the options selected.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @state() searchValue: string = '';\n\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /** \n * When true, the listbox will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n /** Allows more than one option to be selected. */\n @property({\n reflect: true,\n converter: {\n fromAttribute(value) {\n if (value === '' || value === 'true') return true;\n if (value === 'false') return false;\n return value;\n },\n toAttribute(value) {\n return typeof value === 'boolean' ? String(value) : value;\n }\n }\n })\n multiple = false as boolean | string;\n \n\n @property({ attribute: true, reflect: true }) helpText = '';\n @property({ attribute: 'help-text', reflect: true }) help_text = '';\n @property({ type: Boolean, attribute: true, reflect: true }) autoResize = false;\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state, changing its visual appearance. */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state, changing its visual appearance. */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state, changing its visual appearance. */\n @property({ type: Boolean }) success = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean }) clearable = false;\n\n /**\n * Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the select's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n @property({ type: Boolean }) showSelected = false;\n\n @state() oldMaxOptionsVisible: number = 1;\n\n \n @property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;\n\n\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute: false }) renderItemConfig?: RenderItemConfig;\n\n @property({ type: Array }) data: any = [];\n\n @property({ type: Boolean }) enableVirtualScroll = false;\n\n /** To enable the group header in the select */\n @property({ type: Boolean, reflect: true, attribute: true }) enableGroupHeader = false;\n\n /** To auto focus the search input when the select is opened */\n @property({ type: Boolean, reflect: true, attribute: true }) autoFocusSearch = false;\n\n /** loading indicator for virtual select */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = false;\n\n @property({ type: Boolean, reflect: true }) stickyHeader = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) descriptionSearchEnabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableDescription = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: true,\n converter: {\n fromAttribute: (value) => value === 'true' || value === '',\n toAttribute: (value) => String(value),\n },\n }) allowHtmlLabel = true;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage;\n }\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n if(!this.enableVirtualScroll) {\n this.formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n }\n this.virtualScrollHelper = new VirtualScrollHelper(this);\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n\n // Because this is a form control, it shouldn't be opened initially\n this.open = false;\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n this.visibilityManager?.cleanup();\n // Clean up body append elements\n this.portalManager.cleanupPortalAppend();\n this.emit('nile-destroy');\n }\n\n private setupResizeObserver() {\n if (this.autoResize) {\n const tagsContainer = this.shadowRoot?.querySelector('.select__tags');\n if (tagsContainer) {\n this.resizeController = new ResizeController(this, {\n callback: () => this.calculateTotalWidthOfTags()\n });\n this.resizeController.observe(tagsContainer);\n }\n } else {\n this.resizeController?.unobserve?.(\n this.shadowRoot?.querySelector('.select__tags') as Element\n );\n this.resizeController = undefined;\n }\n }\n\n protected updated(_changedProperties: PropertyValues): void {\n if(_changedProperties.has('searchEnabled')) {\n this.updateGroupStickyOffsets();\n }\n if(_changedProperties.has('multiple')) {\n this.setCheckBoxInOption(this.multiple as boolean);\n }\n if (_changedProperties.has('autoResize')) {\n this.setupResizeObserver();\n }\n if(_changedProperties.has('enableDescription')) {\n this.setEnableDescriptionInOptions();\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n if(this.enableGroupHeader) {\n if(!this.disableLocalSearch) {\n this.handleGroupSearchChange();\n }\n this.applyStickyToGroups();\n }\n\n this.setupResizeObserver();\n if(_changedProperties.has('multiple')) {\n this.setCheckBoxInOption(this.multiple as boolean);\n }\n if (_changedProperties.has('enableDescription')) {\n this.setEnableDescriptionInOptions();\n }\n\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.combobox,\n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n name: this.name,\n });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n name: this.name,\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n \n }\n\n setCheckBoxInOption(checked: boolean): void {\n if(!this.options.length) { \n this.options = this.getAllOptions();\n } \n this.options.forEach((option: NileOption) => {\n option.showCheckbox = checked;\n })\n }\n\n setEnableDescriptionInOptions() {\n this.options = this.getAllOptions();\n\n this.options.forEach((option: NileOption) => {\n (option?.updateComplete ?? Promise.resolve())\n .then(() => {\n option.isDescriptionEnabled = this.enableDescription;\n })\n .catch(() => {\n // ignore individual option update failures\n });\n });\n }\n\n private addOpenListeners() {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n \n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners() {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.displayInput.setSelectionRange(0, 0);\n this.emit('nile-focus', { value: this.value, name: this.name });\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('nile-blur', { value: this.value, name: this.name });\n }\n\n private handleDocumentFocusIn(event: FocusEvent) {\n if (!this.open) return; \n const path = event.composedPath(); \n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n private updateGroupStickyOffsets() {\n const groups = this.querySelectorAll('nile-option-group');\n groups.forEach(g => {\n if (this.searchEnabled) {\n g.setAttribute('search-enabled', '');\n } else {\n g.removeAttribute('search-enabled');\n }\n });\n }\n \n\n \n \n \n\n /**\n * Handles the click event on the footer.\n * @param event - The click event.\n */\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n /**\n * Toggles the display of selected options in the dropdown\n * @param event - the event object\n */\n toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n // Only toggle if there are selected options\n if (this.selectedOptions?.length === 0) {\n return;\n }\n // Toggle the showSelected property\n this.showSelected = !this.showSelected;\n\n // Hide unselected options if showSelected is true\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n\n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n // this.requestUpdate();\n }\n\n /**\n * Deselects all options and updates the value, selectedOptions, and displayLabel properties accordingly\n */\n unSlectAll(): void {\n this.showSelected = false;\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n el.selected = false;\n el.hidden = false;\n });\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n this.value = '';\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear',{ value: this.multiple?this.value:'', name: this.name })\n \n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n\n // Ignore presses when the target is an icon button (e.g. the remove button in <nile-tag>)\n if (isClearButton || isIconButton) {\n return;\n }\n\n // Close when pressing escape\n if (event.key === 'Escape' && this.open) {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n // Handle enter and space. When pressing space, we allow for type to select behaviors so if there's anything in the\n // buffer we _don't_ close it.\n if (\n event.key === 'Enter' ||\n (event.key === ' ' && this.typeToSelectString === '')\n ) {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n // If it's not open, open it\n if (!this.open) {\n this.show();\n return;\n }\n\n // If it is open, update the value based on the current selection and close it\n if (this.currentOption && !this.currentOption.disabled) {\n if (this.multiple) {\n this.toggleOptionSelection(this.currentOption);\n } else {\n this.setSelectedOptions(this.currentOption);\n }\n\n // Emit after updating\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name })\n this.nileChange({ value: this.value, name: this.name })\n });\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n return;\n }\n\n // All other \"printable\" keys trigger type to select\n if (event.key.length === 1 || event.key === 'Backspace') {\n const allOptions = this.getAllOptions();\n\n // Don't block important key combos like CMD+R\n if (event.metaKey || event.ctrlKey || event.altKey) {\n return;\n }\n\n // Open, unless the key that triggered is backspace\n if (!this.open) {\n if (event.key === 'Backspace') {\n return;\n }\n\n this.show();\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = window.setTimeout(\n () => (this.typeToSelectString = ''),\n 1000\n );\n\n if (event.key === 'Backspace') {\n this.typeToSelectString = this.typeToSelectString.slice(0, -1);\n } else {\n this.typeToSelectString += event.key.toLowerCase();\n }\n\n for (const option of allOptions) {\n const label = option.getTextLabel().toLowerCase();\n\n if (label.startsWith(this.typeToSelectString)) {\n this.setCurrentOption(option);\n break;\n }\n }\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n if (!this.open) return; \n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n \n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleLabelClick() {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent) {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n\n // Ignore disabled controls and clicks on tags (remove buttons)\n if (this.disabled || isIconButton) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.handleDocumentKeyDown(event);\n }\n\n private handleClearClick(event: MouseEvent) {\n event.stopPropagation();\n\n if (this.value !== '') {\n this.setSelectedOptions([]);\n this.showSelected = false;\n this.value = '';\n this.displayInput.focus({ preventScroll: true });\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n\n // Emit after update\n this.updateComplete.then(() => {\n const val={ value: this.multiple?this.value:'', name: this.name }\n this.emit('nile-clear', val);\n this.nileInput(val);\n this.nileChange(val);\n });\n }\n }\n\n private handleClearMouseDown(event: MouseEvent) {\n // Don't lose focus or propagate events when clicking the clear button\n event.stopPropagation();\n event.preventDefault();\n }\n\n handleOptionClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: option?.value, name: this.name });\n this.hide();\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n if (this.multiple) {\n this.toggleOptionSelection(option);\n } else {\n this.setSelectedOptions(option);\n }\n\n // Set focus after updating so the value is announced by screen readers\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== oldValue) {\n // Emit after updating\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n if (this.showSelected) {\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n this.requestUpdate();\n }\n\n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n }\n\n private applyStickyToGroups() {\n const groups = this.querySelectorAll('nile-option-group');\n groups.forEach(g => {\n if (this.stickyHeader) {\n g.setAttribute('sticky', '');\n } else {\n g.removeAttribute('sticky');\n }\n });\n }\n\n \n private handleDefaultSlotChange() {\n const allOptions = this.getAllOptions();\n const value = Array.isArray(this.value) ? this.value : [this.value];\n const values: string[] = [];\n this.updateGroupStickyOffsets();\n \n this.applyStickyToGroups();\n // Check for duplicate values in menu items\n if (customElements.get('nile-option')) {\n allOptions.forEach(option => values.push(option.value));\n\n // Select only the options that match the new value\n this.setSelectedOptions(\n allOptions.filter(el => value.map(String).includes(el.value))\n );\n } else {\n // Rerun this handler when <nile-option> is registered\n customElements\n .whenDefined('nile-option')\n .then(() => this.handleDefaultSlotChange());\n }\n\n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n this.setEnableDescriptionInOptions();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: NileOption) {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.toggleOptionSelection(option, false);\n\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n\n // Emit after updating\n this.updateComplete.then(() => {\n this.nileInput( { value: this.value, name: this.name });\n this.nileChange( { value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name,removedtagvalue:option.value });\n });\n }\n }\n\n // Gets an array of all <nile-option> elements\n private getAllOptions() {\n // Get all options as an array\n const options = [...this.querySelectorAll<NileOption>('nile-option')];\n\n // Sort the options based on the order of values selected\n if (this.multiple && this.oldValue?.length > 0) {\n options.sort((a, b) => {\n let indexA = this.oldValue.indexOf(a.value);\n let indexB = this.oldValue.indexOf(b.value);\n\n // Handle cases where a __value is not found\n if (indexA === -1) {\n indexA = Infinity; // Place at the end if not found\n }\n if (indexB === -1) {\n indexB = Infinity; // Place at the end if not found\n }\n\n if (indexA < indexB) {\n return -1;\n }\n if (indexA > indexB) {\n return 1;\n }\n return 0;\n });\n }\n\n return options;\n }\n\n private getOptionPrefix(option: NileOption): string {\n const prefixSlot = option.shadowRoot?.querySelector(\n 'slot[name=\"prefix\"]'\n ) as HTMLSlotElement;\n if (!prefixSlot) return '';\n\n const assignedNodes = prefixSlot.assignedNodes();\n const htmlStrings: string[] = [];\n\n assignedNodes.forEach(node => {\n if (node instanceof HTMLElement) {\n htmlStrings.push(node.outerHTML);\n } else if (node.nodeType === Node.TEXT_NODE) {\n // Text node\n htmlStrings.push(node.textContent || '');\n }\n });\n\n return htmlStrings.join('');\n }\n\n // Gets the first <nile-option> element\n private getFirstOption() {\n return this.querySelector<NileOption>('nile-option');\n }\n\n // Sets the current option, which is the option the user is currently interacting with (e.g. via keyboard). Only one\n // option may be \"current\" at a time.\n private setCurrentOption(option: NileOption | null) {\n const allOptions = this.getAllOptions();\n\n // Clear selection\n allOptions.forEach(el => {\n el.current = false;\n el.tabIndex = -1;\n });\n\n // Select the target option\n if (option) {\n this.currentOption = option;\n option.current = true;\n option.tabIndex = 0;\n option.focus();\n }\n }\n\n // Sets the selected option(s)\n private setSelectedOptions(option: NileOption | NileOption[]) {\n const allOptions = this.getAllOptions();\n const newSelectedOptions = Array.isArray(option) ? option : [option];\n\n // Clear existing selection\n allOptions.forEach(el => (el.selected = false));\n\n // Set the new selection\n if (newSelectedOptions.length) {\n newSelectedOptions.forEach(el => (el.selected = true));\n }\n\n // Update selection, value, and display label\n this.selectionChanged();\n \n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n }\n\n // Toggles an option's selected state\n private toggleOptionSelection(option: NileOption, force?: boolean) {\n if (force === true || force === false) {\n option.selected = force;\n } else {\n option.selected = !option.selected;\n }\n\n this.selectionChanged();\n }\n\n // This method must be called whenever the selection changes. It will update the selected options cache, the current\n // value, and the display value\n private selectionChanged() {\n // Update selected options cache\n this.selectedOptions = this.getAllOptions().filter(el => el.selected);\n\n // Update the value and display label\n if (this.multiple) {\n this.value = this.selectedOptions.map(el => el.value);\n\n if (this.placeholder && this.value.length === 0) {\n // When no items are selected, keep the value empty so the placeholder shows\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n } else {}\n });\n\n this.requestUpdate();\n }\n } else {\n this.value = this.selectedOptions[0]?.value ?? this.value;\n this.displayLabel = this.selectedOptions[0]?.getTextLabel()\n ? this.selectedOptions[0].getTextLabel()\n : this.value ?? '';\n }\n\n // Update validity\n this.updateComplete.then(() => {\n this.formControlController?.updateValidity();\n });\n\n this.calculateTotalWidthOfTags();\n }\n\n handleSearchFocus() {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur() {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any) {\n this.searchValue = e.detail.value;\n this.emit('nile-search', {\n query: this.searchValue,\n name: this.name\n });\n\n if(this.enableGroupHeader && !this.disableLocalSearch) {\n this.handleGroupSearchChange();\n }\n if (!this.disableLocalSearch) {\n let filteredOptions = this.filterOptions(this.searchValue);\n if (filteredOptions.length === 0) {\n // Display 'No results found' message.\n this.showNoResults = true;\n } else {\n this.showNoResults = false;\n }\n }\n }\n\n handleScroll(e: Event): void {\n const target = e.target as HTMLElement;\n\n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterOptions(searchValue: string) {\n const allOptions = this.getAllOptions();\n const lowerCaseSearchValue = searchValue.toLowerCase();\n\n let filteredOptions: NileOption[] = [];\n\n allOptions.forEach(el => {\n const lowerCaseLabel = el.getTextLabel().toLowerCase();\n const lowerCaseValue = (el.value || '').toLowerCase();\n const lowerCaseDescription = (el.description || '').toLowerCase();\n\n const matches =\n lowerCaseLabel.includes(lowerCaseSearchValue) ||\n lowerCaseValue.includes(lowerCaseSearchValue) ||\n (this.descriptionSearchEnabled && lowerCaseDescription.includes(lowerCaseSearchValue));\n\n el.hidden = !matches;\n if (matches) filteredOptions.push(el);\n });\n\n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n\n return filteredOptions;\n }\n\n private handleInvalid(event: Event) {\n this.formControlController?.setValidity(false);\n this.formControlController?.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Close the listbox when the control is disabled\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange() {\n const allOptions = this.getAllOptions();\n const value = Array.isArray(this.value) ? this.value : [this.value];\n\n if(!this.enableVirtualScroll) {\n this.setSelectedOptions(allOptions.filter(el => value.includes(el.value)));\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalAppendChange(): void {\n if (this.open) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open && !this.disabled) {\n // Reset the current option\n this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());\n\n this.emit('nile-show', { value: this.value, name: this.name });\n\n if(this.enableGroupHeader) {\n this.getAllGroupAttributes().forEach((el: GroupAttributes) => {\n el.element.classList.remove('nile-group-hidden');\n });\n }\n\n this.addOpenListeners();\n this.visibilityManager?.setup();\n\n this.showNoResults = !this.getAllOptions()?.length;\n\n await stopAnimations(this);\n this.listbox.hidden = false;\n this.popup.active = true;\n\n // Select the appropriate option based on value after the listbox opens\n requestAnimationFrame(() => {\n this.setCurrentOption(this.currentOption);\n });\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n // Make sure the current option is scrolled into view (required for Safari)\n if (this.currentOption) {\n scrollIntoView(this.currentOption, this.listbox, 'vertical', 'auto');\n }\n this.searchValue = '';\n this.filterOptions(this.searchValue);\n\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n\n this.emit('nile-after-show', { value: this.value, name: this.name });\n if (this.autoFocusSearch) {\n this.handleInputAfterInit();\n }\n } else {\n // Hide\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.showSelected = false;\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.listbox.hidden = true;\n this.popup.active = false;\n\n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n\n this.searchValue = '';\n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n }\n\n private getAllGroupAttributes() {\n return Array.from(\n this.querySelectorAll<NileOptionGroup>('nile-option-group[name]')\n ).map((el: HTMLElement) => ({\n name: el?.getAttribute('name') || '',\n data: el?.getAttribute('data'),\n element: el\n }));\n }\n\n getUniqueGroupNames(arr: NileOption[]) {\n return Array.from(new Set(arr.map(obj => obj?.groupName)));\n }\n \n handleGroupSearchChange() {\n const filtered = new Set(\n this.getUniqueGroupNames(this.filterOptions(this.searchValue))\n );\n this.getAllGroupAttributes().forEach(({ name, element }) => {\n element?.classList.toggle('nile-group-hidden', !filtered.has(name));\n });\n }\n \n handleGroupShowSelected() {\n const visibleGroups = new Set<string>();\n \n if (this.showSelected) {\n this.getAllOptions().forEach((option: NileOption) => {\n if (!option.hidden) visibleGroups.add(option.groupName);\n });\n }\n \n this.getAllGroupAttributes().forEach(({ name, element }) => {\n element?.classList.toggle(\n 'nile-group-hidden',\n this.showSelected && !visibleGroups.has(name)\n );\n });\n }\n\n /** Shows the listbox. */\n async show() {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the listbox. */\n async hide() {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.valueInput.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController?.getForm() || null;\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.valueInput.reportValidity();\n }\n\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message: string) {\n this.valueInput.setCustomValidity(message);\n this.formControlController?.updateValidity();\n }\n\n /** Sets focus on the control. */\n focus(options?: FocusOptions) {\n this.displayInput.focus(options);\n }\n\n /** Removes focus from the control. */\n blur() {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event) {\n // This will stop the event from bubbling up to the parent `nile-select` component\n event.stopPropagation();\n }\n\n calculateWidthOfSelectTagsDiv() {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('div.select__tags');\n if (selectTagsDiv instanceof HTMLElement) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n }\n\n calculateTotalWidthOfTags() {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\n );\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n handleInputAfterInit() {\n this.shadowRoot?.querySelector('nile-input')?.inputFocus();\n }\n\n render() {\n if(this.enableVirtualScroll) {\n return this.virtualScrollHelper.renderVirtualizedContent();\n }\n\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = this.placeholder && this.value.length === 0;\n const hasHelpText = (this.helpText || this.help_text) ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n const prefixContent = this.selectedOptions[0]\n ? this.getOptionPrefix(this.selectedOptions[0])\n : '';\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}\n distance=\"6\"\n ?flip=${!this.portal}\n ?shift=${!this.portal}\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n >\n ${hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``}\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${prefixContent && !this.multiple\n ? html`<div class=\"select__prefix--from-options\">\n ${unsafeHTML(prefixContent)}\n </div>`\n : html`<slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>`}\n\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base,\n prefix:tag__prefix,\n prefix_content_wrapper:tag__prefix_content_wrapper\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${this.getOptionPrefix(option)\n ? html`<span class=\"tag__prefix\" slot=\"prefix\"\n >${unsafeHTML(\n this.getOptionPrefix(option)\n )}</span\n >`\n : ''}\n ${option.getTextLabel()}\n </nile-tag>\n `;\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : ''}\n\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n\n ${hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-close, var(--ng-icon-x-close))\" size=\"var(--nile-height-14px, var(--ng-height-16px))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n </button>\n `\n : ''}\n\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n </div>\n\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''} ${this.portal ? 'select__portal-append-hidden' : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n @slotchange=${this.handleDefaultSlotChange}\n @scroll=${this.handleScroll}\n style=${this.portal ? 'display: none;' : ''}\n >\n ${this.searchEnabled\n ? html` <div class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n @nile-after-init=${this.handleInputAfterInit}\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>`\n : ``}\n ${this.optionsLoading\n ? html`\n <span class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"var(--nile-icon-button-loading-blue, var(--ng-icon-button-loading-blue))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n ></nile-icon>\n </span>\n `\n : ''}\n\n <div\n class=\"select__options ${this.searchEnabled\n ? 'select__options__search-enabled'\n : ``}\"\n >\n ${this.showNoResults\n ? html`\n <div class=\"select__no-results\">\n ${this.noResultsMessage}\n </div>\n `\n : ''}\n <slot></slot>\n </div>\n\n ${this.multiple\n ? html` <div\n part=\"footer\"\n class=\"select__footer\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html` <span\n class=\"select__clear\"\n @click=\"${this.unSlectAll}\"\n >Clear All</span\n >`\n : ``}\n </div>`\n : ``}\n </div>\n </nile-popup>\n </div>\n\n ${hasHelpText\n ? html` <nile-form-help-text>${(this.helpText || this.help_text)}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n </div>\n `;\n }\n\n nileInput(value:any){\n this.emit('nile-input',value)\n }\n\n nileChange(value:any){\n this.emit('nile-change',value)\n }\n\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-select': NileSelect;\n }\n}\n"],"names":["NileSelect","_f","$","super","this","portalManager","PortalManager","hasSlotController","HasSlotController","typeToSelectString","scrolling","options","hasFocus","displayLabel","selectedOptions","oldValue","name","value","defaultValue","size","placeholder","searchValue","searchEnabled","internalSearchPlaceHolder","enableVisibilityEffect","blockValueChange","disableLocalSearch","optionsLoading","noWidthSync","portal","multiple","helpText","help_text","autoResize","errorMessage","warning","error","success","maxOptionsVisible","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showSelected","oldMaxOptionsVisible","enableTabClose","showNoResults","noResultsMessage","data","enableVirtualScroll","enableGroupHeader","autoFocusSearch","loading","stickyHeader","descriptionSearchEnabled","enableDescription","allowHtmlLabel","handleWindowResize","updatePortalAppendPosition","handleWindowScroll","_this","_inherits","_createClass","key","get","_this$valueInput","valueInput","validity","validationMessage","_this$valueInput2","connectedCallback","formControlController","FormControlController","assumeInteractionOn","virtualScrollHelper","VirtualScrollHelper","handleDocumentFocusIn","bind","handleDocumentKeyDown","handleDocumentMouseDown","emit","disconnectedCallback","scrollTimeout","clearTimeout","undefined","visibilityManager","cleanup","cleanupPortalAppend","setupResizeObserver","_this$shadowRoot","tagsContainer","shadowRoot","querySelector","resizeController","ResizeController","callback","calculateTotalWidthOfTags","observe","unobserve","updated","_changedProperties","has","updateGroupStickyOffsets","setCheckBoxInOption","setEnableDescriptionInOptions","firstUpdated","handleGroupSearchChange","applyStickyToGroups","VisibilityManager","host","target","combobox","isOpen","onAnchorOutOfView","hide","visible","reason","onDocumentHidden","event","detail","checked","length","getAllOptions","forEach","option","showCheckbox","updateComplete","Promise","resolve","then","isDescriptionEnabled","addOpenListeners","document","addEventListener","window","removeOpenListeners","removeEventListener","handleFocus","displayInput","setSelectionRange","handleBlur","path","composedPath","hitSelf","includes","hitPopup","popup","hitPortalAppend","portalContainerElement","querySelectorAll","g","setAttribute","removeAttribute","handleFooterClick","stopPropagation","preventDefault","toggleShowSelected","_this$selectedOptions","el","selected","hidden","handleGroupShowSelected","updatePortalOptions","unSlectAll","selectionChanged","_this7","isClearButton","closest","isIconButton","focus","preventScroll","stopImmediatePropagation","currentOption","toggleOptionSelection","setSelectedOptions","nileInput","nileChange","show","allOptions","metaKey","ctrlKey","altKey","typeToSelectTimeout","setTimeout","slice","toLowerCase","_iterator","_createForOfIteratorHelper","s","_step","n","done","getTextLabel","startsWith","setCurrentOption","err","e","f","handleLabelClick","handleComboboxMouseDown","some","Element","tagName","handleComboboxKeyDown","handleClearClick","val","handleClearMouseDown","handleOptionClick","_this9","requestUpdate","handleDefaultSlotChange","Array","isArray","values","customElements","push","filter","map","String","whenDefined","handleTagRemove","removedtagvalue","_toConsumableArray","sort","a","b","indexA","indexOf","indexB","Infinity","getOptionPrefix","prefixSlot","assignedNodes","htmlStrings","node","HTMLElement","outerHTML","nodeType","Node","TEXT_NODE","textContent","join","getFirstOption","current","tabIndex","newSelectedOptions","force","_this14$formControlCo","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","query","filterOptions","handleScroll","scrollTop","scrollLeft","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","lowerCaseSearchValue","filteredOptions","lowerCaseLabel","lowerCaseValue","lowerCaseDescription","description","matches","handleInvalid","setValidity","_this$formControlCont2","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handlePortalAppendChange","setupPortalAppend","_handleOpenChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this17","_this$visibilityManag2","_this$getAllOptions","_g","_i3","_s2","_this$visibilityManag3","_g2","_i4","_s3","wrap","_callee$","_context2","prev","next","getAllGroupAttributes","element","classList","remove","setup","stopAnimations","listbox","active","requestAnimationFrame","getAnimation","dir","keyframes","animateTo","scrollIntoView","handleInputAfterInit","stop","from","getAttribute","getUniqueGroupNames","arr","Set","obj","groupName","filtered","_ref","toggle","visibleGroups","add","_ref2","_show","_callee2","_callee2$","_context3","abrupt","waitForEvent","_callee3","_callee3$","_context4","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","onInputChange","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","tag","widthOfSelectTagsDiv","summ","lastindex","i","inputFocus","render","_this20","renderVirtualizedContent","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","prefixContent","html","_templateObject","_taggedTemplateLiteral","classMap","_templateObject2","select","ifDefined","_templateObject3","_templateObject4","select__combobox","_templateObject5","unsafeHTML","_templateObject6","select__prefix","_templateObject7","index","classes","select__invisible","_templateObject8","_templateObject9","_templateObject10","_templateObject11","select__suffix","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","NileElement","styles","__decorate","prototype","state","property","converter","fromAttribute","split","toAttribute","type","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nile-select.cjs.js","sources":["../../../src/nile-select/nile-select.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-select.css';\n\nimport '../nile-icon';\nimport '../nile-popup/nile-popup';\nimport '../nile-tag/nile-tag';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { defaultValue } from '../internal/default-value';\nimport { FormControlController } from '../internal/form';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { scrollIntoView } from '../internal/scroll';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValues } from 'lit';\nimport type { NileFormControl } from '../internal/nile-element';\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport type { RenderItemConfig } from '../nile-virtual-select/types.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '../nile-virtual-select/nile-virtual-select';\nimport { VirtualScrollHelper } from './virtual-scroll-helper';\nimport NileOptionGroup from '../nile-option-group/nile-option-group';\nimport { GroupAttributes } from './nile-select.interface';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { PortalManager } from './portal-manager';\nimport { VisibilityManager } from '../utilities/visibility-manager';\n\ntype NileRemoveEvent = CustomEvent<Record<PropertyKey, never>>;\n\n/**\n * Nile icon component.\n *\n * @tag nile-select\n *\n */\n\n/**\n * @summary Selects allow you to choose items from a menu of predefined options.\n * @status stable\n * @since 2.0\n *\n * @dependency nile-icon\n * @dependency nile-popup\n * @dependency nile-tag\n * @dependency nile-virtual-select\n *\n * @slot - The listbox options. Must be `<nile-option>` elements. You can use `<nile-divider>` to group items visually.\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n * @slot pre-footer - Content to display at the bottom of the dropdown listbox. Useful for action buttons like \"Create New\". In multi-select mode, appears above the \"Show Selected\" / \"Clear All\" bar.\n *\n * @event nile-change - Emitted when the control's value changes.\n * @event nile-clear - Emitted when the control's value is cleared.\n * @event nile-input - Emitted when the control receives input.\n * @event nile-focus - Emitted when the control gains focus.\n * @event nile-blur - Emitted when the control loses focus.\n * @event nile-show - Emitted when the select's menu opens.\n * @event nile-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event nile-hide - Emitted when the select's menu closes.\n * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n * @event nile-scroll - Emitted when the user scrolls within the listbox. The event payload includes scroll position information.\n * @event nile-scroll-start - Emitted when the user starts scrolling within the listbox.\n * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the listbox (debounced).\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiselect` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart custom-footer - The container that wraps the custom footer slot content.\n * @csspart footer-area - The sticky wrapper around the custom footer and the built-in multi-select footer.\n */\n\n@customElement('nile-select')\nexport class NileSelect extends NileElement implements NileFormControl{\n static styles: CSSResultGroup = styles;\n\n // protected override BUBBLES=false;\n\n private formControlController: FormControlController | null;\n private virtualScrollHelper!: VirtualScrollHelper;\n private readonly portalManager = new PortalManager(this);\n\n private readonly hasSlotController = new HasSlotController(\n this,\n 'help-text',\n 'label',\n 'pre-footer'\n );\n private typeToSelectString = '';\n private typeToSelectTimeout: number;\n private scrollTimeout: number | undefined;\n private scrolling = false;\n private options: NileOption[] = [];\n private resizeController?: ResizeController;\n private visibilityManager?: VisibilityManager;\n\n\n @query('.select') popup: NilePopup;\n @query('.select__combobox') combobox: HTMLSlotElement;\n @query('.select__display-input') displayInput: HTMLInputElement;\n @query('.select__value-input') valueInput: HTMLInputElement;\n @query('.select__listbox') listbox: HTMLSlotElement;\n\n @state() private hasFocus = false;\n @state() displayLabel = '';\n @state() currentOption: NileOption;\n @state() selectedOptions: NileOption[] = [];\n @state() oldValue: string | string[] = '';\n\n /** The name of the select, submitted as a name/value pair with form data. */\n @property() name = '';\n\n /**\n * The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\n * value will be a space-delimited list of values based on the options selected.\n */\n @property({\n converter: {\n fromAttribute: (value: string) => value.split(' '),\n toAttribute: (value: string[]) => value.join(' '),\n },\n })\n value: string | string[] = '';\n\n /** The default value of the form control. Primarily used for resetting the form control. */\n @defaultValue() defaultValue: string | string[] = '';\n\n /** The select's size. */\n @property() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @property() placeholder = 'Select...';\n\n /** Placeholder text to show as a hint when the select is empty. */\n @state() searchValue: string = '';\n\n @property({ type: Boolean, reflect: true }) searchEnabled = false;\n\n @property({attribute:'internal-search-placeholder'}) internalSearchPlaceHolder = 'Search...';\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) blockValueChange = false;\n\n @property({ type: Boolean, reflect: true }) disableLocalSearch = false;\n\n @property({ type: Boolean, reflect: true }) optionsLoading = false;\n\n @property({ type: Boolean, reflect: true }) noWidthSync = false;\n\n /** \n * When true, the listbox will be appended to the document body instead of the parent container.\n * This is useful when the parent has overflow: hidden, clip-path, or transform applied.\n */\n @property({ type: Boolean, reflect: true }) portal = false;\n\n /** Allows more than one option to be selected. */\n @property({\n reflect: true,\n converter: {\n fromAttribute(value) {\n if (value === '' || value === 'true') return true;\n if (value === 'false') return false;\n return value;\n },\n toAttribute(value) {\n return typeof value === 'boolean' ? String(value) : value;\n }\n }\n })\n multiple = false as boolean | string;\n \n\n @property({ attribute: true, reflect: true }) helpText = '';\n @property({ attribute: 'help-text', reflect: true }) help_text = '';\n @property({ type: Boolean, attribute: true, reflect: true }) autoResize = false;\n\n @property({ attribute: 'error-message', reflect: true }) errorMessage = '';\n\n /** Sets the input to a warning state, changing its visual appearance. */\n @property({ type: Boolean }) warning = false;\n\n /** Sets the input to an error state, changing its visual appearance. */\n @property({ type: Boolean }) error = false;\n\n /** Sets the input to a success state, changing its visual appearance. */\n @property({ type: Boolean }) success = false;\n\n /**\n * The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\n * indicate the number of additional items that are selected. Set to 0 to remove the limit.\n */\n @property({ attribute: 'max-options-visible', type: Number })\n maxOptionsVisible = 3;\n\n /** Disables the select control. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Adds a clear button when the select is not empty. */\n @property({ type: Boolean }) clearable = false;\n\n /**\n * Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the select's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n /** Draws a filled select. */\n @property({ type: Boolean, reflect: true }) filled = false;\n\n /** Draws a pill-style select with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** The select's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\n * inside of the viewport.\n */\n @property({ reflect: true }) placement: 'top' | 'bottom' = 'bottom';\n\n /**\n * By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\n * to place the form control outside of a form and associate it with the form that has this `id`. The form must be in\n * the same document or shadow root for this to work.\n */\n @property({ reflect: true }) form = '';\n\n /** The select's required attribute. */\n @property({ type: Boolean, reflect: true }) required = false;\n\n @property({ type: Boolean }) showSelected = false;\n\n @state() oldMaxOptionsVisible: number = 1;\n\n \n @property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;\n\n\n @property({ type: Boolean }) showNoResults: boolean = false;\n\n @property({ type: String }) noResultsMessage: string = 'No results found';\n\n /** Enhanced configuration for rendering items with support for display text, value, and search text */\n @property({ attribute: false }) renderItemConfig?: RenderItemConfig;\n\n @property({ type: Array }) data: any = [];\n\n @property({ type: Boolean }) enableVirtualScroll = false;\n\n /** To enable the group header in the select */\n @property({ type: Boolean, reflect: true, attribute: true }) enableGroupHeader = false;\n\n /** To auto focus the search input when the select is opened */\n @property({ type: Boolean, reflect: true, attribute: true }) autoFocusSearch = false;\n\n /** loading indicator for virtual select */\n @property({ type: Boolean, reflect: true, attribute: true }) loading = false;\n\n @property({ type: Boolean, reflect: true }) stickyHeader = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) descriptionSearchEnabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: true }) enableDescription = false;\n\n @property({\n type: Boolean,\n reflect: true,\n attribute: true,\n converter: {\n fromAttribute: (value) => value === 'true' || value === '',\n toAttribute: (value) => String(value),\n },\n }) allowHtmlLabel = true;\n\n /** Gets the validity state object */\n get validity() {\n return this.valueInput?.validity;\n }\n\n /** Gets the validation message */\n get validationMessage() {\n return this.valueInput?.validationMessage;\n }\n\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n if(!this.enableVirtualScroll) {\n this.formControlController = new FormControlController(this, {\n assumeInteractionOn: ['nile-blur', 'nile-input'],\n });\n }\n this.virtualScrollHelper = new VirtualScrollHelper(this);\n this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);\n this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.handleWindowScroll = this.handleWindowScroll.bind(this);\n\n // Because this is a form control, it shouldn't be opened initially\n this.open = false;\n this.emit('nile-init');\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n // Clear any pending scroll timeout to prevent memory leaks\n if (this.scrollTimeout) {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = undefined;\n }\n this.visibilityManager?.cleanup();\n // Clean up body append elements\n this.portalManager.cleanupPortalAppend();\n this.emit('nile-destroy');\n }\n\n private setupResizeObserver() {\n if (this.autoResize) {\n const tagsContainer = this.shadowRoot?.querySelector('.select__tags');\n if (tagsContainer) {\n this.resizeController = new ResizeController(this, {\n callback: () => this.calculateTotalWidthOfTags()\n });\n this.resizeController.observe(tagsContainer);\n }\n } else {\n this.resizeController?.unobserve?.(\n this.shadowRoot?.querySelector('.select__tags') as Element\n );\n this.resizeController = undefined;\n }\n }\n\n protected updated(_changedProperties: PropertyValues): void {\n if(_changedProperties.has('searchEnabled')) {\n this.updateGroupStickyOffsets();\n }\n if(_changedProperties.has('multiple')) {\n this.setCheckBoxInOption(this.multiple as boolean);\n }\n if (_changedProperties.has('autoResize')) {\n this.setupResizeObserver();\n }\n if(_changedProperties.has('enableDescription')) {\n this.setEnableDescriptionInOptions();\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n if(this.enableGroupHeader) {\n if(!this.disableLocalSearch) {\n this.handleGroupSearchChange();\n }\n this.applyStickyToGroups();\n }\n\n this.setupResizeObserver();\n if(_changedProperties.has('multiple')) {\n this.setCheckBoxInOption(this.multiple as boolean);\n }\n if (_changedProperties.has('enableDescription')) {\n this.setEnableDescriptionInOptions();\n }\n\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.combobox,\n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n name: this.name,\n });\n },\n onDocumentHidden: () => {\n this.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n name: this.name,\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n \n }\n\n setCheckBoxInOption(checked: boolean): void {\n if(!this.options.length) { \n this.options = this.getAllOptions();\n } \n this.options.forEach((option: NileOption) => {\n option.showCheckbox = checked;\n })\n }\n\n setEnableDescriptionInOptions() {\n this.options = this.getAllOptions();\n\n this.options.forEach((option: NileOption) => {\n (option?.updateComplete ?? Promise.resolve())\n .then(() => {\n option.isDescriptionEnabled = this.enableDescription;\n })\n .catch(() => {\n // ignore individual option update failures\n });\n });\n }\n\n private addOpenListeners() {\n document.addEventListener('focusin', this.handleDocumentFocusIn);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n \n if (this.portal) {\n window.addEventListener('resize', this.handleWindowResize);\n window.addEventListener('scroll', this.handleWindowScroll, true);\n }\n }\n\n private removeOpenListeners() {\n document.removeEventListener('focusin', this.handleDocumentFocusIn);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n window.removeEventListener('resize', this.handleWindowResize);\n window.removeEventListener('scroll', this.handleWindowScroll, true);\n }\n\n private handleFocus() {\n this.hasFocus = true;\n this.displayInput.setSelectionRange(0, 0);\n this.emit('nile-focus', { value: this.value, name: this.name });\n }\n\n private handleBlur() {\n this.hasFocus = false;\n this.emit('nile-blur', { value: this.value, name: this.name });\n }\n\n private handleDocumentFocusIn(event: FocusEvent) {\n if (!this.open) return; \n const path = event.composedPath(); \n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n\n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n private updateGroupStickyOffsets() {\n const groups = this.querySelectorAll('nile-option-group');\n groups.forEach(g => {\n if (this.searchEnabled) {\n g.setAttribute('search-enabled', '');\n } else {\n g.removeAttribute('search-enabled');\n }\n });\n }\n \n\n \n \n \n\n /**\n * Handles the click event on the footer.\n * @param event - The click event.\n */\n private handleFooterClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private handlePreFooterClick(): void {\n this.hide();\n }\n\n /**\n * Toggles the display of selected options in the dropdown\n * @param event - the event object\n */\n toggleShowSelected(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n // Only toggle if there are selected options\n if (this.selectedOptions?.length === 0) {\n return;\n }\n // Toggle the showSelected property\n this.showSelected = !this.showSelected;\n\n // Hide unselected options if showSelected is true\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n\n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n // this.requestUpdate();\n }\n\n /**\n * Deselects all options and updates the value, selectedOptions, and displayLabel properties accordingly\n */\n unSlectAll(): void {\n this.showSelected = false;\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n el.selected = false;\n el.hidden = false;\n });\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n this.value = '';\n this.selectionChanged();\n this.emit('nile-change', { value: this.value, name: this.name });\n this.emit('nile-clear',{ value: this.multiple?this.value:'', name: this.name })\n \n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n }\n\n private handleDocumentKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const isClearButton = target.closest('.select__clear') !== null;\n const isIconButton = target.closest('nile-icon-button') !== null;\n\n // Ignore presses when the target is an icon button (e.g. the remove button in <nile-tag>)\n if (isClearButton || isIconButton) {\n return;\n }\n\n // Close when pressing escape\n if (event.key === 'Escape' && this.open) {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n\n // Handle enter and space. When pressing space, we allow for type to select behaviors so if there's anything in the\n // buffer we _don't_ close it.\n if (\n event.key === 'Enter' ||\n (event.key === ' ' && this.typeToSelectString === '')\n ) {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n // If it's not open, open it\n if (!this.open) {\n this.show();\n return;\n }\n\n // If it is open, update the value based on the current selection and close it\n if (this.currentOption && !this.currentOption.disabled) {\n if (this.multiple) {\n this.toggleOptionSelection(this.currentOption);\n } else {\n this.setSelectedOptions(this.currentOption);\n }\n\n // Emit after updating\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name })\n this.nileChange({ value: this.value, name: this.name })\n });\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n return;\n }\n\n // All other \"printable\" keys trigger type to select\n if (event.key.length === 1 || event.key === 'Backspace') {\n const allOptions = this.getAllOptions();\n\n // Don't block important key combos like CMD+R\n if (event.metaKey || event.ctrlKey || event.altKey) {\n return;\n }\n\n // Open, unless the key that triggered is backspace\n if (!this.open) {\n if (event.key === 'Backspace') {\n return;\n }\n\n this.show();\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n clearTimeout(this.typeToSelectTimeout);\n this.typeToSelectTimeout = window.setTimeout(\n () => (this.typeToSelectString = ''),\n 1000\n );\n\n if (event.key === 'Backspace') {\n this.typeToSelectString = this.typeToSelectString.slice(0, -1);\n } else {\n this.typeToSelectString += event.key.toLowerCase();\n }\n\n for (const option of allOptions) {\n const label = option.getTextLabel().toLowerCase();\n\n if (label.startsWith(this.typeToSelectString)) {\n this.setCurrentOption(option);\n break;\n }\n }\n }\n }\n\n private handleDocumentMouseDown(event: MouseEvent) {\n if (!this.open) return; \n \n const path = event.composedPath();\n const hitSelf = path.includes(this);\n const hitPopup = this.popup && path.includes(this.popup);\n const hitPortalAppend = this.portal && this.portalManager.portalContainerElement && path.includes(this.portalManager.portalContainerElement);\n \n if (!hitSelf && !hitPopup && !hitPortalAppend) {\n this.hide();\n }\n }\n\n private handleWindowResize = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleWindowScroll = (): void => {\n this.portalManager.updatePortalAppendPosition();\n };\n\n private handleLabelClick() {\n this.displayInput.focus();\n this.hide();\n }\n\n private handleComboboxMouseDown(event: MouseEvent) {\n const path = event.composedPath();\n const isIconButton = path.some(\n el =>\n el instanceof Element && el.tagName.toLowerCase() === 'nile-icon-button'\n );\n\n // Ignore disabled controls and clicks on tags (remove buttons)\n if (this.disabled || isIconButton) {\n return;\n }\n\n event.preventDefault();\n this.displayInput.focus({ preventScroll: true });\n this.open = !this.open;\n }\n\n private handleComboboxKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.handleDocumentKeyDown(event);\n }\n\n private handleClearClick(event: MouseEvent) {\n event.stopPropagation();\n\n if (this.value !== '') {\n this.setSelectedOptions([]);\n this.showSelected = false;\n this.value = '';\n this.displayInput.focus({ preventScroll: true });\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n\n // Emit after update\n this.updateComplete.then(() => {\n const val={ value: this.multiple?this.value:'', name: this.name }\n this.emit('nile-clear', val);\n this.nileInput(val);\n this.nileChange(val);\n });\n }\n }\n\n private handleClearMouseDown(event: MouseEvent) {\n // Don't lose focus or propagate events when clicking the clear button\n event.stopPropagation();\n event.preventDefault();\n }\n\n handleOptionClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n\n if (this.blockValueChange && option) {\n this.emit('nile-block-change', { value: option?.value, name: this.name });\n this.hide();\n return;\n }\n\n const oldValue = this.value;\n this.oldValue = oldValue;\n\n if (option && !option.disabled) {\n if (this.multiple) {\n this.toggleOptionSelection(option);\n } else {\n this.setSelectedOptions(option);\n }\n\n // Set focus after updating so the value is announced by screen readers\n this.updateComplete.then(() =>\n this.displayInput.focus({ preventScroll: true })\n );\n\n if (this.value !== oldValue) {\n // Emit after updating\n this.updateComplete.then(() => {\n this.nileInput({ value: this.value, name: this.name });\n this.nileChange({ value: this.value, name: this.name });\n });\n }\n\n if (!this.multiple) {\n this.hide();\n this.displayInput.focus({ preventScroll: true });\n }\n }\n\n if (this.showSelected) {\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n this.requestUpdate();\n }\n\n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n }\n\n private applyStickyToGroups() {\n const groups = this.querySelectorAll('nile-option-group');\n groups.forEach(g => {\n if (this.stickyHeader) {\n g.setAttribute('sticky', '');\n } else {\n g.removeAttribute('sticky');\n }\n });\n }\n\n \n private handleDefaultSlotChange() {\n const allOptions = this.getAllOptions();\n const value = Array.isArray(this.value) ? this.value : [this.value];\n const values: string[] = [];\n this.updateGroupStickyOffsets();\n \n this.applyStickyToGroups();\n // Check for duplicate values in menu items\n if (customElements.get('nile-option')) {\n allOptions.forEach(option => values.push(option.value));\n\n // Select only the options that match the new value\n this.setSelectedOptions(\n allOptions.filter(el => value.map(String).includes(el.value))\n );\n } else {\n // Rerun this handler when <nile-option> is registered\n customElements\n .whenDefined('nile-option')\n .then(() => this.handleDefaultSlotChange());\n }\n\n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n this.setEnableDescriptionInOptions();\n }\n\n private handleTagRemove(event: NileRemoveEvent, option: NileOption) {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.toggleOptionSelection(option, false);\n\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n }\n });\n if(this.enableGroupHeader) {\n this.handleGroupShowSelected();\n }\n\n // Emit after updating\n this.updateComplete.then(() => {\n this.nileInput( { value: this.value, name: this.name });\n this.nileChange( { value: this.value, name: this.name });\n this.emit('nile-tag-remove', { value: this.value, name: this.name,removedtagvalue:option.value });\n });\n }\n }\n\n // Gets an array of all <nile-option> elements\n private getAllOptions() {\n // Get all options as an array\n const options = [...this.querySelectorAll<NileOption>('nile-option')];\n\n // Sort the options based on the order of values selected\n if (this.multiple && this.oldValue?.length > 0) {\n options.sort((a, b) => {\n let indexA = this.oldValue.indexOf(a.value);\n let indexB = this.oldValue.indexOf(b.value);\n\n // Handle cases where a __value is not found\n if (indexA === -1) {\n indexA = Infinity; // Place at the end if not found\n }\n if (indexB === -1) {\n indexB = Infinity; // Place at the end if not found\n }\n\n if (indexA < indexB) {\n return -1;\n }\n if (indexA > indexB) {\n return 1;\n }\n return 0;\n });\n }\n\n return options;\n }\n\n private getOptionPrefix(option: NileOption): string {\n const prefixSlot = option.shadowRoot?.querySelector(\n 'slot[name=\"prefix\"]'\n ) as HTMLSlotElement;\n if (!prefixSlot) return '';\n\n const assignedNodes = prefixSlot.assignedNodes();\n const htmlStrings: string[] = [];\n\n assignedNodes.forEach(node => {\n if (node instanceof HTMLElement) {\n htmlStrings.push(node.outerHTML);\n } else if (node.nodeType === Node.TEXT_NODE) {\n // Text node\n htmlStrings.push(node.textContent || '');\n }\n });\n\n return htmlStrings.join('');\n }\n\n // Gets the first <nile-option> element\n private getFirstOption() {\n return this.querySelector<NileOption>('nile-option');\n }\n\n // Sets the current option, which is the option the user is currently interacting with (e.g. via keyboard). Only one\n // option may be \"current\" at a time.\n private setCurrentOption(option: NileOption | null) {\n const allOptions = this.getAllOptions();\n\n // Clear selection\n allOptions.forEach(el => {\n el.current = false;\n el.tabIndex = -1;\n });\n\n // Select the target option\n if (option) {\n this.currentOption = option;\n option.current = true;\n option.tabIndex = 0;\n option.focus();\n }\n }\n\n // Sets the selected option(s)\n private setSelectedOptions(option: NileOption | NileOption[]) {\n const allOptions = this.getAllOptions();\n const newSelectedOptions = Array.isArray(option) ? option : [option];\n\n // Clear existing selection\n allOptions.forEach(el => (el.selected = false));\n\n // Set the new selection\n if (newSelectedOptions.length) {\n newSelectedOptions.forEach(el => (el.selected = true));\n }\n\n // Update selection, value, and display label\n this.selectionChanged();\n \n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n }\n\n // Toggles an option's selected state\n private toggleOptionSelection(option: NileOption, force?: boolean) {\n if (force === true || force === false) {\n option.selected = force;\n } else {\n option.selected = !option.selected;\n }\n\n this.selectionChanged();\n }\n\n // This method must be called whenever the selection changes. It will update the selected options cache, the current\n // value, and the display value\n private selectionChanged() {\n // Update selected options cache\n this.selectedOptions = this.getAllOptions().filter(el => el.selected);\n\n // Update the value and display label\n if (this.multiple) {\n this.value = this.selectedOptions.map(el => el.value);\n\n if (this.placeholder && this.value.length === 0) {\n // When no items are selected, keep the value empty so the placeholder shows\n this.displayLabel = '';\n } else {\n this.displayLabel = this.selectedOptions.length + ' selected';\n }\n\n if (this.selectedOptions.length === 0) {\n this.showSelected = false;\n const allOptions = this.getAllOptions();\n allOptions.forEach(el => {\n if (!el.selected) {\n el.hidden = this.showSelected;\n } else {}\n });\n\n this.requestUpdate();\n }\n } else {\n this.value = this.selectedOptions[0]?.value ?? this.value;\n this.displayLabel = this.selectedOptions[0]?.getTextLabel()\n ? this.selectedOptions[0].getTextLabel()\n : this.value ?? '';\n }\n\n // Update validity\n this.updateComplete.then(() => {\n this.formControlController?.updateValidity();\n });\n\n this.calculateTotalWidthOfTags();\n }\n\n handleSearchFocus() {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchBlur() {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n handleSearchChange(e: any) {\n this.searchValue = e.detail.value;\n this.emit('nile-search', {\n query: this.searchValue,\n name: this.name\n });\n\n if(this.enableGroupHeader && !this.disableLocalSearch) {\n this.handleGroupSearchChange();\n }\n if (!this.disableLocalSearch) {\n let filteredOptions = this.filterOptions(this.searchValue);\n if (filteredOptions.length === 0) {\n // Display 'No results found' message.\n this.showNoResults = true;\n } else {\n this.showNoResults = false;\n }\n }\n }\n\n handleScroll(e: Event): void {\n const target = e.target as HTMLElement;\n\n this.emit('nile-scroll', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n\n if (!this.scrolling) {\n this.scrolling = true;\n this.emit('nile-scroll-start', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name\n });\n }\n\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = window.setTimeout(() => {\n if (this.scrolling) {\n this.scrolling = false;\n }\n }, 300);\n\n const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);\n if (isAtBottom) {\n this.emit('nile-scroll-end', {\n scrollTop: target.scrollTop,\n scrollLeft: target.scrollLeft,\n name: this.name,\n isAtBottom: true\n });\n }\n }\n\n filterOptions(searchValue: string) {\n const allOptions = this.getAllOptions();\n const lowerCaseSearchValue = searchValue.toLowerCase();\n\n let filteredOptions: NileOption[] = [];\n\n allOptions.forEach(el => {\n const lowerCaseLabel = el.getTextLabel().toLowerCase();\n const lowerCaseValue = (el.value || '').toLowerCase();\n const lowerCaseDescription = (el.description || '').toLowerCase();\n\n const matches =\n lowerCaseLabel.includes(lowerCaseSearchValue) ||\n lowerCaseValue.includes(lowerCaseSearchValue) ||\n (this.descriptionSearchEnabled && lowerCaseDescription.includes(lowerCaseSearchValue));\n\n el.hidden = !matches;\n if (matches) filteredOptions.push(el);\n });\n\n // Update portal content if portal is active\n if (this.portal && this.open) {\n this.portalManager.updatePortalOptions();\n }\n\n return filteredOptions;\n }\n\n private handleInvalid(event: Event) {\n this.formControlController?.setValidity(false);\n this.formControlController?.emitInvalidEvent(event);\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n // Close the listbox when the control is disabled\n if (this.disabled) {\n this.open = false;\n this.handleOpenChange();\n }\n }\n\n @watch('value', { waitUntilFirstUpdate: true })\n handleValueChange() {\n const allOptions = this.getAllOptions();\n const value = Array.isArray(this.value) ? this.value : [this.value];\n\n if(!this.enableVirtualScroll) {\n this.setSelectedOptions(allOptions.filter(el => value.includes(el.value)));\n }\n }\n\n @watch('portal', { waitUntilFirstUpdate: true })\n handlePortalAppendChange(): void {\n if (this.open) {\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n } else {\n this.portalManager.cleanupPortalAppend();\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open && !this.disabled) {\n // Reset the current option\n this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());\n\n this.emit('nile-show', { value: this.value, name: this.name });\n\n if(this.enableGroupHeader) {\n this.getAllGroupAttributes().forEach((el: GroupAttributes) => {\n el.element.classList.remove('nile-group-hidden');\n });\n }\n\n this.addOpenListeners();\n this.visibilityManager?.setup();\n\n this.showNoResults = !this.getAllOptions()?.length;\n\n await stopAnimations(this);\n this.listbox.hidden = false;\n this.popup.active = true;\n\n // Select the appropriate option based on value after the listbox opens\n requestAnimationFrame(() => {\n this.setCurrentOption(this.currentOption);\n });\n\n const { keyframes, options } = getAnimation(this, 'select.show', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n // Make sure the current option is scrolled into view (required for Safari)\n if (this.currentOption) {\n scrollIntoView(this.currentOption, this.listbox, 'vertical', 'auto');\n }\n this.searchValue = '';\n this.filterOptions(this.searchValue);\n\n if (this.portal) {\n this.portalManager.setupPortalAppend();\n }\n\n this.emit('nile-after-show', { value: this.value, name: this.name });\n if (this.autoFocusSearch) {\n this.handleInputAfterInit();\n }\n } else {\n // Hide\n this.emit('nile-hide', { value: this.value, name: this.name });\n this.showSelected = false;\n this.removeOpenListeners();\n this.visibilityManager?.cleanup();\n\n await stopAnimations(this);\n const { keyframes, options } = getAnimation(this, 'select.hide', {\n dir: 'ltr',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.listbox.hidden = true;\n this.popup.active = false;\n\n if (this.portal) {\n this.portalManager.cleanupPortalAppend();\n }\n\n this.searchValue = '';\n this.emit('nile-after-hide', { value: this.value, name: this.name });\n }\n }\n\n private getAllGroupAttributes() {\n return Array.from(\n this.querySelectorAll<NileOptionGroup>('nile-option-group[name]')\n ).map((el: HTMLElement) => ({\n name: el?.getAttribute('name') || '',\n data: el?.getAttribute('data'),\n element: el\n }));\n }\n\n getUniqueGroupNames(arr: NileOption[]) {\n return Array.from(new Set(arr.map(obj => obj?.groupName)));\n }\n \n handleGroupSearchChange() {\n const filtered = new Set(\n this.getUniqueGroupNames(this.filterOptions(this.searchValue))\n );\n this.getAllGroupAttributes().forEach(({ name, element }) => {\n element?.classList.toggle('nile-group-hidden', !filtered.has(name));\n });\n }\n \n handleGroupShowSelected() {\n const visibleGroups = new Set<string>();\n \n if (this.showSelected) {\n this.getAllOptions().forEach((option: NileOption) => {\n if (!option.hidden) visibleGroups.add(option.groupName);\n });\n }\n \n this.getAllGroupAttributes().forEach(({ name, element }) => {\n element?.classList.toggle(\n 'nile-group-hidden',\n this.showSelected && !visibleGroups.has(name)\n );\n });\n }\n\n /** Shows the listbox. */\n async show() {\n if (this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the listbox. */\n async hide() {\n if (!this.open || this.disabled) {\n this.open = false;\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n return this.valueInput.checkValidity();\n }\n\n /** Gets the associated form, if one exists. */\n getForm(): HTMLFormElement | null {\n return this.formControlController?.getForm() || null;\n }\n\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n return this.valueInput.reportValidity();\n }\n\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message: string) {\n this.valueInput.setCustomValidity(message);\n this.formControlController?.updateValidity();\n }\n\n /** Sets focus on the control. */\n focus(options?: FocusOptions) {\n this.displayInput.focus(options);\n }\n\n /** Removes focus from the control. */\n blur() {\n this.displayInput.blur();\n }\n\n onInputChange(event: Event) {\n // This will stop the event from bubbling up to the parent `nile-select` component\n event.stopPropagation();\n }\n\n calculateWidthOfSelectTagsDiv() {\n if (this.shadowRoot) {\n const selectTagsDiv = this.shadowRoot.querySelector('div.select__tags');\n if (selectTagsDiv instanceof HTMLElement) {\n const width = selectTagsDiv.offsetWidth;\n return width - 70;\n }\n }\n }\n\n calculateTotalWidthOfTags() {\n if (this.maxOptionsVisible !== Infinity) {\n this.oldMaxOptionsVisible = this.maxOptionsVisible;\n }\n\n this.maxOptionsVisible = Infinity;\n setTimeout(() => {\n let widths: number[] = [];\n if (this.shadowRoot) {\n const tags = this.shadowRoot.querySelectorAll('nile-tag');\n tags.forEach(tag => {\n if (tag instanceof HTMLElement) {\n widths.push(tag.offsetWidth);\n }\n });\n }\n if (this.value.length !== widths.length) {\n return;\n }\n\n let sum = widths.reduce(\n (accumulator, currentValue) => accumulator + currentValue,\n 0\n );\n const widthOfSelectTagsDiv = this.calculateWidthOfSelectTagsDiv();\n if (!widthOfSelectTagsDiv) {\n return;\n }\n\n let summ = 0;\n let lastindex = 0;\n\n for (let i = 0; i < widths.length; i++) {\n summ += widths[i];\n\n if (summ > widthOfSelectTagsDiv) {\n lastindex = i;\n break;\n }\n }\n this.maxOptionsVisible = lastindex;\n }, 1);\n }\n\n handleInputAfterInit() {\n this.shadowRoot?.querySelector('nile-input')?.inputFocus();\n }\n\n render() {\n if(this.enableVirtualScroll) {\n return this.virtualScrollHelper.renderVirtualizedContent();\n }\n\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasHelpTextSlot = this.hasSlotController.test('help-text');\n const hasLabelSuffixSlot = this.hasSlotController.test('label-suffix');\n const hasCustomSelect = this.hasSlotController.test('custom-select');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n const hasClearIcon =\n this.clearable && !this.disabled && this.value.length > 0;\n const isPlaceholderVisible = this.placeholder && this.value.length === 0;\n const hasHelpText = (this.helpText || this.help_text) ? true : false;\n const hasErrorMessage = this.errorMessage ? true : false;\n const prefixContent = this.selectedOptions[0]\n ? this.getOptionPrefix(this.selectedOptions[0])\n : '';\n\n return html`\n <div\n part=\"form-control\"\n class=${classMap({\n 'form-control': true,\n 'form-control--small': this.size === 'small',\n 'form-control--medium': this.size === 'medium',\n 'form-control--large': this.size === 'large',\n 'form-control--has-label': hasLabel,\n 'form-control--has-help-text': hasHelpText,\n })}\n >\n <label\n id=\"label\"\n part=\"form-control-label\"\n class=\"form-control__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n @click=${this.handleLabelClick}\n >\n <slot name=\"label\">${this.label}</slot>\n </label>\n\n ${hasLabelSuffixSlot ? html` <slot name=\"label-suffix\"></slot> ` : ``}\n\n <div part=\"form-control-input\" class=\"form-control-input\">\n <nile-popup\n class=${classMap({\n select: true,\n 'select--warning': this.warning,\n 'select--error': this.error,\n 'select--success': this.success,\n 'select--standard': true,\n 'select--filled': this.filled,\n 'select--pill': this.pill,\n 'select--open': this.open,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--focused': this.hasFocus,\n 'select--placeholder-visible': isPlaceholderVisible,\n 'select--top': this.placement === 'top',\n 'select--bottom': this.placement === 'bottom',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n })}\n placement=${this.placement}\n strategy=${this.portal ? 'fixed' : (this.hoist ? 'fixed' : 'absolute')}\n distance=\"6\"\n ?flip=${!this.portal}\n ?shift=${!this.portal}\n sync=${ifDefined(!this.noWidthSync ? 'width' : undefined)}\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n >\n ${hasCustomSelect\n ? html`<slot\n slot=\"anchor\"\n name=\"custom-select\"\n class=\"custom-select\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n ></slot>`\n : html``}\n <div\n part=\"combobox\"\n class=${classMap({\n select__combobox: true,\n 'select__hide-default': hasCustomSelect,\n })}\n slot=\"anchor\"\n @keydown=${this.handleComboboxKeyDown}\n @mousedown=${this.handleComboboxMouseDown}\n >\n ${prefixContent && !this.multiple\n ? html`<div class=\"select__prefix--from-options\">\n ${unsafeHTML(prefixContent)}\n </div>`\n : html`<slot\n part=\"prefix\"\n name=\"prefix\"\n class=${classMap({\n select__prefix: true,\n multiple: this.multiple,\n })}\n ></slot>`}\n\n <input\n part=\"display-input\"\n class=\"select__display-input\"\n type=\"text\"\n placeholder=${this.placeholder}\n .disabled=${this.disabled}\n .value=${this.displayLabel}\n autocomplete=\"off\"\n spellcheck=\"false\"\n autocapitalize=\"off\"\n readonly\n aria-controls=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby=\"label\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-describedby=\"help-text\"\n role=\"combobox\"\n tabindex=\"0\"\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n />\n\n ${this.multiple\n ? html`\n <div part=\"tags\" class=\"select__tags\">\n ${this.selectedOptions.map((option, index) => {\n if (\n index < this.maxOptionsVisible ||\n this.maxOptionsVisible <= 0\n ) {\n const classes = {\n select__invisible:\n index + 1 > this.oldMaxOptionsVisible &&\n this.maxOptionsVisible === Infinity,\n };\n return html`\n <nile-tag\n class=${classMap(classes)}\n part=\"tag\"\n exportparts=\"\n base:tag__base,\n content:tag__content,\n remove-button:tag__remove-button,\n remove-button__base:tag__remove-button__base,\n prefix:tag__prefix,\n prefix_content_wrapper:tag__prefix_content_wrapper\n \"\n ?pill=${this.pill}\n size=${this.size}\n removable\n @nile-remove=${(event: NileRemoveEvent) =>\n this.handleTagRemove(event, option)}\n >\n ${this.getOptionPrefix(option)\n ? html`<span class=\"tag__prefix\" slot=\"prefix\"\n >${unsafeHTML(\n this.getOptionPrefix(option)\n )}</span\n >`\n : ''}\n ${option.getTextLabel()}\n </nile-tag>\n `;\n } else if (index === this.maxOptionsVisible) {\n return html`\n <span class=\"select__tags-count\"\n >+${this.selectedOptions.length - index} More\n </span>\n `;\n } else {\n return null;\n }\n })}\n </div>\n `\n : ''}\n\n <input\n class=\"select__value-input\"\n type=\"text\"\n ?disabled=${this.disabled}\n ?required=${this.required}\n .value=${Array.isArray(this.value)\n ? this.value.join(', ')\n : this.value}\n tabindex=\"-1\"\n aria-hidden=\"true\"\n @focus=${() => this.focus()}\n @invalid=${this.handleInvalid}\n />\n\n ${hasClearIcon\n ? html`\n <button\n part=\"clear-button\"\n class=\"select__clear\"\n type=\"button\"\n aria-label=\"clearEntry\"\n @mousedown=${this.handleClearMouseDown}\n @click=${this.handleClearClick}\n tabindex=\"-1\"\n >\n <slot name=\"clear-icon\">\n <nile-icon name=\"var(--nile-icon-close, var(--ng-icon-x-close))\" size=\"var(--nile-height-14px, var(--ng-height-16px))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" library=\"system\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n </button>\n `\n : ''}\n\n <slot\n part=\"suffix\"\n name=\"suffix\"\n class=${classMap({\n select__suffix: true,\n })}\n ></slot>\n\n <slot\n name=\"expand-icon\"\n part=\"expand-icon\"\n class=\"select__expand-icon\"\n >\n <nile-icon library=\"system\" name=\"var(--nile-icon-arrow-down, var(--ng-icon-chevron-down))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\"></nile-icon>\n </slot>\n </div>\n\n <div\n id=\"listbox\"\n role=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-labelledby=\"label\"\n part=\"listbox\"\n class=\"select__listbox ${this.searchEnabled\n ? 'select__search-enabled '\n : ''} ${this.portal ? 'select__portal-append-hidden' : ''}\"\n tabindex=\"-1\"\n @mouseup=${this.handleOptionClick}\n @slotchange=${this.handleDefaultSlotChange}\n @scroll=${this.handleScroll}\n style=${this.portal ? 'display: none;' : ''}\n >\n ${this.searchEnabled\n ? html` <div class=\"select__search\">\n <nile-input\n size=\"small\"\n clearable\n .value=${this.searchValue}\n placeholder=\"${this.internalSearchPlaceHolder}\"\n @nile-input=${this.handleSearchChange}\n @nile-focus=${this.handleSearchFocus}\n @nile-change=\"${this.onInputChange}\"\n @nile-after-init=${this.handleInputAfterInit}\n >\n <nile-icon name=\"var(--nile-icon-search, var(--ng-icon-search-lg))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" slot=\"suffix\"> </nile-icon>\n </nile-input>\n </div>`\n : ``}\n ${this.optionsLoading\n ? html`\n <span class=\"select__loader\">\n <nile-icon\n class=\"select__loader--icon\"\n name=\"var(--nile-icon-button-loading-blue, var(--ng-icon-button-loading-blue))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n ></nile-icon>\n </span>\n `\n : ''}\n\n <div\n class=\"select__options ${this.searchEnabled\n ? 'select__options__search-enabled'\n : ``}\"\n >\n ${this.showNoResults\n ? html`\n <div class=\"select__no-results\">\n ${this.noResultsMessage}\n </div>\n `\n : ''}\n <slot></slot>\n </div>\n\n ${this.hasSlotController.test('pre-footer') || this.multiple\n ? html`<div part=\"footer-area\" class=\"select__pre-footer-area\">\n ${this.hasSlotController.test('pre-footer')\n ? html`\n <div part=\"pre-footer\" @click=${this.handlePreFooterClick}> \n <slot\n name=\"pre-footer\"\n class=\"select__custom-footer\"\n ></slot> </div>`\n : ''}\n ${this.multiple\n ? html`<div\n part=\"footer\"\n class=\"select__footer\"\n @click=\"${this.handleFooterClick}\"\n >\n <span\n @click=\"${this.toggleShowSelected}\"\n style=\"cursor: pointer;\"\n >\n <nile-checkbox\n ?disabled=\"${this.selectedOptions.length === 0}\"\n ?checked=\"${this.showSelected}\"\n >\n Show Selected</nile-checkbox\n >\n </span>\n ${this.selectedOptions.length !== 0\n ? html`<span\n class=\"select__clear\"\n @click=\"${this.unSlectAll}\"\n >Clear All</span\n >`\n : ``}\n </div>`\n : ``}\n </div>`\n : ``}\n </div>\n </nile-popup>\n </div>\n\n ${hasHelpText\n ? html` <nile-form-help-text>${(this.helpText || this.help_text)}</nile-form-help-text> `\n : ``}\n ${hasErrorMessage\n ? html`\n <nile-form-error-message\n >${this.errorMessage}</nile-form-error-message\n >\n `\n : ``}\n </div>\n `;\n }\n\n nileInput(value:any){\n this.emit('nile-input',value)\n }\n\n nileChange(value:any){\n this.emit('nile-change',value)\n }\n\n}\n\nsetDefaultAnimation('select.show', {\n keyframes: [\n { opacity: 0, scale: 0.9 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nsetDefaultAnimation('select.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.9 },\n ],\n options: { duration: 100, easing: 'ease' },\n});\n\nexport default NileSelect;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-select': NileSelect;\n }\n}\n"],"names":["NileSelect","$","super","this","portalManager","PortalManager","hasSlotController","HasSlotController","typeToSelectString","scrolling","options","hasFocus","displayLabel","selectedOptions","oldValue","name","value","defaultValue","size","placeholder","searchValue","searchEnabled","internalSearchPlaceHolder","enableVisibilityEffect","blockValueChange","disableLocalSearch","optionsLoading","noWidthSync","portal","multiple","helpText","help_text","autoResize","errorMessage","warning","error","success","maxOptionsVisible","disabled","clearable","open","hoist","filled","pill","label","placement","form","required","showSelected","oldMaxOptionsVisible","enableTabClose","showNoResults","noResultsMessage","data","enableVirtualScroll","enableGroupHeader","autoFocusSearch","loading","stickyHeader","descriptionSearchEnabled","enableDescription","allowHtmlLabel","handleWindowResize","updatePortalAppendPosition","handleWindowScroll","_this","_inherits","_f","_createClass","key","get","validity","_this$valueInput","valueInput","_this$valueInput2","validationMessage","connectedCallback","formControlController","FormControlController","assumeInteractionOn","virtualScrollHelper","VirtualScrollHelper","handleDocumentFocusIn","bind","handleDocumentKeyDown","handleDocumentMouseDown","emit","disconnectedCallback","scrollTimeout","clearTimeout","undefined","visibilityManager","cleanup","cleanupPortalAppend","setupResizeObserver","_this$shadowRoot","tagsContainer","shadowRoot","querySelector","resizeController","ResizeController","callback","calculateTotalWidthOfTags","observe","unobserve","updated","_changedProperties","has","updateGroupStickyOffsets","setCheckBoxInOption","setEnableDescriptionInOptions","firstUpdated","handleGroupSearchChange","applyStickyToGroups","VisibilityManager","host","target","combobox","isOpen","onAnchorOutOfView","hide","visible","reason","onDocumentHidden","event","detail","checked","length","getAllOptions","forEach","option","showCheckbox","updateComplete","Promise","resolve","then","isDescriptionEnabled","catch","addOpenListeners","document","addEventListener","window","removeOpenListeners","removeEventListener","handleFocus","displayInput","setSelectionRange","handleBlur","path","composedPath","hitSelf","includes","hitPopup","popup","hitPortalAppend","portalContainerElement","querySelectorAll","g","setAttribute","removeAttribute","handleFooterClick","stopPropagation","preventDefault","handlePreFooterClick","toggleShowSelected","_this$selectedOptions","_this6","el","selected","hidden","handleGroupShowSelected","updatePortalOptions","unSlectAll","selectionChanged","isClearButton","closest","isIconButton","focus","preventScroll","stopImmediatePropagation","currentOption","toggleOptionSelection","setSelectedOptions","nileInput","nileChange","show","allOptions","metaKey","ctrlKey","altKey","typeToSelectTimeout","setTimeout","slice","toLowerCase","_iterator","_createForOfIteratorHelper","s","_step","n","done","getTextLabel","startsWith","setCurrentOption","err","e","f","handleLabelClick","handleComboboxMouseDown","some","Element","tagName","handleComboboxKeyDown","handleClearClick","val","handleClearMouseDown","handleOptionClick","requestUpdate","handleDefaultSlotChange","Array","isArray","values","customElements","push","filter","map","String","whenDefined","handleTagRemove","removedtagvalue","_toConsumableArray","sort","a","b","indexA","indexOf","indexB","Infinity","getOptionPrefix","prefixSlot","assignedNodes","htmlStrings","node","HTMLElement","outerHTML","nodeType","Node","TEXT_NODE","textContent","join","getFirstOption","current","tabIndex","newSelectedOptions","force","_this$selectedOptions4","updateValidity","handleSearchFocus","handleSearchBlur","handleSearchChange","query","filterOptions","handleScroll","scrollTop","scrollLeft","Math","ceil","floor","scrollHeight","offsetHeight","isAtBottom","lowerCaseSearchValue","filteredOptions","lowerCaseLabel","lowerCaseValue","lowerCaseDescription","description","matches","handleInvalid","setValidity","emitInvalidEvent","handleDisabledChange","handleOpenChange","handleValueChange","handlePortalAppendChange","setupPortalAppend","_handleOpenChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this17","_this$visibilityManag2","_this$getAllOptions","_g","_i3","_s2","_this$visibilityManag3","_g2","_i4","_s3","wrap","_callee$","_context2","prev","next","getAllGroupAttributes","element","classList","remove","setup","stopAnimations","listbox","active","requestAnimationFrame","getAnimation","dir","keyframes","animateTo","scrollIntoView","handleInputAfterInit","stop","from","getAttribute","getUniqueGroupNames","arr","Set","obj","groupName","filtered","_ref","toggle","_this18","visibleGroups","add","_ref2","_show","_callee2","_callee2$","_context3","waitForEvent","_callee3","_callee3$","_context4","abrupt","checkValidity","getForm","reportValidity","setCustomValidity","message","blur","onInputChange","calculateWidthOfSelectTagsDiv","selectTagsDiv","offsetWidth","widths","tag","widthOfSelectTagsDiv","summ","lastindex","i","inputFocus","render","_this20","renderVirtualizedContent","hasLabelSlot","test","hasLabelSuffixSlot","hasCustomSelect","hasLabel","hasClearIcon","isPlaceholderVisible","hasHelpText","hasErrorMessage","prefixContent","html","_templateObject","_taggedTemplateLiteral","classMap","_templateObject2","select","ifDefined","_templateObject3","_templateObject4","select__combobox","_templateObject5","unsafeHTML","_templateObject6","select__prefix","_templateObject7","index","classes","select__invisible","_templateObject8","_templateObject9","_templateObject10","_templateObject11","select__suffix","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","NileElement","styles","__decorate","prototype","state","property","converter","fromAttribute","split","toAttribute","type","Boolean","reflect","attribute","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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"}
|