@aquera/nile-elements 1.3.0-beta-1.0 → 1.3.0-beta-1.1
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 +0 -1
- package/demo/index.css +0 -3
- package/demo/index.html +32 -79
- package/demo/variables.css +1 -0
- package/dist/{fixture-dff65c89.cjs.js → fixture-54600b35.cjs.js} +2 -2
- package/dist/{fixture-1c49c014.cjs.js.map → fixture-54600b35.cjs.js.map} +1 -1
- package/dist/{fixture-1c49c014.cjs.js → fixture-5b79f853.cjs.js} +2 -2
- package/dist/{fixture-dff65c89.cjs.js.map → fixture-5b79f853.cjs.js.map} +1 -1
- package/dist/{fixture-f575d0df.cjs.js → fixture-73855806.cjs.js} +4 -4
- package/dist/fixture-73855806.cjs.js.map +1 -0
- package/dist/fixture-90b199c4.esm.js +569 -0
- package/dist/{fixture-985bba12.esm.js → fixture-9871e8a9.esm.js} +1 -1
- package/dist/fixture-c1d78368.cjs.js +395 -0
- package/dist/fixture-c1d78368.cjs.js.map +1 -0
- package/dist/{fixture-eddab1c0.esm.js → fixture-cf7bfcf5.esm.js} +2 -2
- package/dist/fixture-dbd66009.cjs.js +395 -0
- package/dist/fixture-dbd66009.cjs.js.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +173 -188
- package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
- package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.test.esm.js +1 -1
- package/dist/nile-button/nile-button.test.cjs.js +1 -1
- package/dist/nile-button/nile-button.test.esm.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
- package/dist/nile-card/nile-card.test.cjs.js +1 -1
- package/dist/nile-card/nile-card.test.esm.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
- package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.test.esm.js +1 -1
- package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js +2 -0
- package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js.map +1 -0
- package/dist/nile-code-editor/backup_nile-code-editor copy.esm.js +1 -0
- package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
- package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
- package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
- package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
- package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
- package/dist/nile-grid-body/index.cjs.js +2 -0
- package/dist/nile-grid-body/index.esm.js +1 -0
- package/dist/nile-grid-body/nile-grid-body.cjs.js +2 -0
- package/dist/nile-grid-body/nile-grid-body.cjs.js.map +1 -0
- package/dist/nile-grid-body/nile-grid-body.css.cjs.js +2 -0
- package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +1 -0
- package/dist/nile-grid-body/nile-grid-body.css.esm.js +10 -0
- package/dist/nile-grid-body/nile-grid-body.esm.js +5 -0
- package/dist/nile-grid-cell-item/index.cjs.js +2 -0
- package/dist/nile-grid-cell-item/index.cjs.js.map +1 -0
- package/dist/nile-grid-cell-item/index.esm.js +1 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +2 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +2 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +1 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +35 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +12 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +2 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +1 -0
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +1 -0
- package/dist/nile-grid-head/index.cjs.js +2 -0
- package/dist/nile-grid-head/index.cjs.js.map +1 -0
- package/dist/nile-grid-head/index.esm.js +1 -0
- package/dist/nile-grid-head/nile-grid-head.cjs.js +2 -0
- package/dist/nile-grid-head/nile-grid-head.cjs.js.map +1 -0
- package/dist/nile-grid-head/nile-grid-head.css.cjs.js +2 -0
- package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +1 -0
- package/dist/nile-grid-head/nile-grid-head.css.esm.js +7 -0
- package/dist/nile-grid-head/nile-grid-head.esm.js +5 -0
- package/dist/nile-grid-head-item/index.cjs.js +2 -0
- package/dist/nile-grid-head-item/index.cjs.js.map +1 -0
- package/dist/nile-grid-head-item/index.esm.js +1 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +2 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +2 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +1 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +34 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +12 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +2 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -0
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -0
- package/dist/nile-grid-row/index.cjs.js +2 -0
- package/dist/nile-grid-row/index.cjs.js.map +1 -0
- package/dist/nile-grid-row/index.esm.js +1 -0
- package/dist/nile-grid-row/nile-grid-row.cjs.js +2 -0
- package/dist/nile-grid-row/nile-grid-row.cjs.js.map +1 -0
- package/dist/nile-grid-row/nile-grid-row.css.cjs.js +2 -0
- package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +1 -0
- package/dist/nile-grid-row/nile-grid-row.css.esm.js +15 -0
- package/dist/nile-grid-row/nile-grid-row.esm.js +7 -0
- package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.test.esm.js +1 -1
- package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
- package/dist/nile-icon/nile-icon.test.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-utils.cjs.js +2 -0
- package/dist/nile-inline-edit/nile-inline-edit-utils.cjs.js.map +1 -0
- package/dist/nile-inline-edit/nile-inline-edit-utils.esm.js +1 -0
- 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 +4 -4
- 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.css.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +2 -2
- package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +6 -10
- 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 +2 -2
- package/dist/nile-input/nile-input.test.cjs.js +1 -1
- package/dist/nile-input/nile-input.test.esm.js +1 -1
- package/dist/nile-link/nile-link.test.cjs.js +1 -1
- package/dist/nile-link/nile-link.test.esm.js +1 -1
- package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
- package/dist/nile-loader/nile-loader.test.esm.js +1 -1
- package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
- package/dist/nile-popover/nile-popover.test.esm.js +1 -1
- package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.test.esm.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
- package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.test.esm.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
- package/dist/nile-rich-text-editor/utils.cjs.js +2 -0
- package/dist/nile-rich-text-editor/utils.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/utils.esm.js +1 -0
- package/dist/nile-select/nile-select.test.cjs.js +1 -1
- package/dist/nile-select/nile-select.test.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.css.cjs.js +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.css.esm.js +5 -3
- package/dist/nile-side-bar-expand/nile-side-bar-expand.esm.js +6 -6
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.esm.js +1 -0
- 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.css.cjs.js +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.esm.js +5 -17
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.esm.js +3 -3
- package/dist/nile-side-bar-group/nile-side-bar-group.css.cjs.js +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.css.esm.js +2 -2
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.cjs.js +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.esm.js +56 -58
- package/dist/nile-sidebar/index.cjs.js +2 -0
- package/dist/nile-sidebar/index.cjs.js.map +1 -0
- package/dist/nile-sidebar/index.esm.js +75 -0
- package/dist/nile-sidebar-menu/index.cjs.js +2 -0
- package/dist/nile-sidebar-menu/index.cjs.js.map +1 -0
- package/dist/nile-sidebar-menu/index.esm.js +1 -0
- package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js +2 -0
- package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js.map +1 -0
- package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js +2 -0
- package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js.map +1 -0
- package/dist/nile-sidebar-menu/nile-sidebar-menu.css.esm.js +38 -0
- package/dist/nile-sidebar-menu/nile-sidebar-menu.esm.js +10 -0
- package/dist/nile-sidebar-menu-items/index.cjs.js +2 -0
- package/dist/nile-sidebar-menu-items/index.cjs.js.map +1 -0
- package/dist/nile-sidebar-menu-items/index.esm.js +1 -0
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js +2 -0
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js.map +1 -0
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js +2 -0
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js.map +1 -0
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.esm.js +36 -0
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.esm.js +15 -0
- package/dist/nile-sidebar-wrapper/index.cjs.js +2 -0
- package/dist/nile-sidebar-wrapper/index.cjs.js.map +1 -0
- package/dist/nile-sidebar-wrapper/index.esm.js +1 -0
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js +2 -0
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js.map +1 -0
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js +2 -0
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js.map +1 -0
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.esm.js +105 -0
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.esm.js +16 -0
- package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
- package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
- package/dist/nile-virtual-select/group-manager.cjs.js +2 -0
- package/dist/nile-virtual-select/group-manager.cjs.js.map +1 -0
- package/dist/nile-virtual-select/group-manager.esm.js +1 -0
- package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
- package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js +2 -0
- package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js.map +1 -0
- package/dist/nile-virtual-select/temp_nile-virtual-select copy.esm.js +231 -0
- package/dist/scopedElementsWrapper-4c29be11.esm.js +7 -0
- package/dist/scopedElementsWrapper-a112fc73.cjs.js +6 -0
- package/dist/scopedElementsWrapper-a112fc73.cjs.js.map +1 -0
- package/dist/scopedElementsWrapper-c815042c.cjs.js +2 -0
- package/dist/scopedElementsWrapper-c815042c.cjs.js.map +1 -0
- package/dist/src/internal/portal-manager.d.ts +53 -0
- package/dist/src/internal/portal-manager.js +196 -0
- package/dist/src/internal/portal-manager.js.map +1 -0
- package/dist/src/internal/portal.d.ts +60 -0
- package/dist/src/internal/portal.js +199 -0
- package/dist/src/internal/portal.js.map +1 -0
- package/dist/src/internal/resizable-helper.d.ts +59 -0
- package/dist/src/internal/resizable-helper.js +115 -0
- package/dist/src/internal/resizable-helper.js.map +1 -0
- package/dist/src/internal/resizable-styles.d.ts +16 -0
- package/dist/src/internal/resizable-styles.js +144 -0
- package/dist/src/internal/resizable-styles.js.map +1 -0
- package/dist/src/internal/virtualizer-error-handler.d.ts +30 -0
- package/dist/src/internal/virtualizer-error-handler.js +82 -0
- package/dist/src/internal/virtualizer-error-handler.js.map +1 -0
- package/dist/src/lib/index.d.ts +7 -0
- package/dist/src/lib/index.js +8 -0
- package/dist/src/lib/index.js.map +1 -0
- package/dist/src/lib/virtualize.d.ts +32 -0
- package/dist/src/lib/virtualize.js +105 -0
- package/dist/src/lib/virtualize.js.map +1 -0
- package/dist/src/lib/virtualize.test.d.ts +7 -0
- package/dist/src/lib/virtualize.test.js +57 -0
- package/dist/src/lib/virtualize.test.js.map +1 -0
- package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +17 -0
- package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +310 -0
- package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +34 -0
- package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +31 -0
- package/dist/src/nile-code-editor/Old_theme copy.d.ts +191 -0
- package/dist/src/nile-code-editor/Old_theme copy.js +193 -0
- package/dist/src/nile-code-editor/Old_theme copy.js.map +1 -0
- package/dist/src/nile-code-editor/backup_nile-code-editor copy.d.ts +0 -0
- package/dist/src/nile-code-editor/backup_nile-code-editor copy.js +675 -0
- package/dist/src/nile-code-editor/backup_nile-code-editor copy.js.map +1 -0
- package/dist/src/nile-code-editor/theme copy.d.ts +191 -0
- package/dist/src/nile-code-editor/theme copy.js +193 -0
- package/dist/src/nile-code-editor/theme copy.js.map +1 -0
- package/dist/src/nile-grid/data-processor.d.ts +37 -0
- package/dist/src/nile-grid/data-processor.js +122 -0
- package/dist/src/nile-grid/data-processor.js.map +1 -0
- package/dist/src/nile-grid/event-handlers.d.ts +35 -0
- package/dist/src/nile-grid/event-handlers.js +158 -0
- package/dist/src/nile-grid/event-handlers.js.map +1 -0
- package/dist/src/nile-grid/renderer.d.ts +8 -0
- package/dist/src/nile-grid/renderer.js +78 -0
- package/dist/src/nile-grid/renderer.js.map +1 -0
- package/dist/src/nile-grid/resize-handler.d.ts +4 -0
- package/dist/src/nile-grid/resize-handler.js +36 -0
- package/dist/src/nile-grid/resize-handler.js.map +1 -0
- package/dist/src/nile-grid/types.d.ts +32 -0
- package/dist/src/nile-grid/types.js +2 -0
- package/dist/src/nile-grid/types.js.map +1 -0
- package/dist/src/nile-grid/utils.d.ts +4 -0
- package/dist/src/nile-grid/utils.js +32 -0
- package/dist/src/nile-grid/utils.js.map +1 -0
- package/dist/src/nile-grid-body/index.d.ts +1 -0
- package/dist/src/nile-grid-body/index.js +2 -0
- package/dist/src/nile-grid-body/index.js.map +1 -0
- package/dist/src/nile-grid-body/nile-grid-body.css.d.ts +12 -0
- package/dist/src/nile-grid-body/nile-grid-body.css.js +22 -0
- package/dist/src/nile-grid-body/nile-grid-body.css.js.map +1 -0
- package/dist/src/nile-grid-body/nile-grid-body.d.ts +29 -0
- package/dist/src/nile-grid-body/nile-grid-body.js +43 -0
- package/dist/src/nile-grid-body/nile-grid-body.js.map +1 -0
- package/dist/src/nile-grid-cell-item/index.d.ts +1 -0
- package/dist/src/nile-grid-cell-item/index.js +2 -0
- package/dist/src/nile-grid-cell-item/index.js.map +1 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +12 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +47 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +1 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +36 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +93 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +1 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +10 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +34 -0
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +1 -0
- package/dist/src/nile-grid-head/index.d.ts +1 -0
- package/dist/src/nile-grid-head/index.js +2 -0
- package/dist/src/nile-grid-head/index.js.map +1 -0
- package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +12 -0
- package/dist/src/nile-grid-head/nile-grid-head.css.js +19 -0
- package/dist/src/nile-grid-head/nile-grid-head.css.js.map +1 -0
- package/dist/src/nile-grid-head/nile-grid-head.d.ts +28 -0
- package/dist/src/nile-grid-head/nile-grid-head.js +41 -0
- package/dist/src/nile-grid-head/nile-grid-head.js.map +1 -0
- package/dist/src/nile-grid-head-item/index.d.ts +1 -0
- package/dist/src/nile-grid-head-item/index.js +2 -0
- package/dist/src/nile-grid-head-item/index.js.map +1 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +12 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +46 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +1 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +37 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.js +100 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +1 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +10 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +34 -0
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -0
- package/dist/src/nile-grid-row/index.d.ts +1 -0
- package/dist/src/nile-grid-row/index.js +2 -0
- package/dist/src/nile-grid-row/index.js.map +1 -0
- package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +12 -0
- package/dist/src/nile-grid-row/nile-grid-row.css.js +27 -0
- package/dist/src/nile-grid-row/nile-grid-row.css.js.map +1 -0
- package/dist/src/nile-grid-row/nile-grid-row.d.ts +29 -0
- package/dist/src/nile-grid-row/nile-grid-row.js +45 -0
- package/dist/src/nile-grid-row/nile-grid-row.js.map +1 -0
- package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +47 -0
- package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +16 -0
- package/dist/src/nile-inline-edit/nile-inline-edit-utils.d.ts +20 -0
- package/dist/src/nile-inline-edit/nile-inline-edit-utils.js +70 -0
- package/dist/src/nile-inline-edit/nile-inline-edit-utils.js.map +1 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.d.ts +8 -0
- package/dist/src/nile-inline-edit/nile-inline-edit.js +47 -1
- package/dist/src/nile-inline-edit/nile-inline-edit.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +2 -2
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +3 -10
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +0 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +0 -4
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
- package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +75 -0
- package/dist/src/nile-menu/portal-manager.d.ts +39 -0
- package/dist/src/nile-menu/portal-manager.js +340 -0
- package/dist/src/nile-menu/portal-manager.js.map +1 -0
- package/dist/src/nile-menu/portal-utils.d.ts +21 -0
- package/dist/src/nile-menu/portal-utils.js +128 -0
- package/dist/src/nile-menu/portal-utils.js.map +1 -0
- package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +22 -0
- package/dist/src/nile-popover/popover-portal-handler.d.ts +21 -0
- package/dist/src/nile-popover/popover-portal-handler.js +106 -0
- package/dist/src/nile-popover/popover-portal-handler.js.map +1 -0
- package/dist/src/nile-portal-wrapper/index.d.ts +1 -0
- package/dist/src/nile-portal-wrapper/index.js +2 -0
- package/dist/src/nile-portal-wrapper/index.js.map +1 -0
- package/dist/src/nile-portal-wrapper/nile-portal-wrapper.d.ts +47 -0
- package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js +451 -0
- package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js.map +1 -0
- package/dist/src/nile-rich-text-editor/utils.d.ts +13 -0
- package/dist/src/nile-rich-text-editor/utils.js +538 -0
- package/dist/src/nile-rich-text-editor/utils.js.map +1 -0
- package/dist/src/nile-select/body-append-manager.d.ts +90 -0
- package/dist/src/nile-select/body-append-manager.js +298 -0
- package/dist/src/nile-select/body-append-manager.js.map +1 -0
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.css.js +5 -3
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.css.js.map +1 -1
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js +4 -4
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js.map +1 -1
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js +1 -0
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js.map +1 -1
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js +3 -15
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js.map +1 -1
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.d.ts +15 -9
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.js +15 -36
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.js.map +1 -1
- package/dist/src/nile-side-bar-group/nile-side-bar-group.css.js +2 -2
- package/dist/src/nile-side-bar-group/nile-side-bar-group.css.js.map +1 -1
- package/dist/src/nile-side-bar-group-item/nile-side-bar-group-item.css.js +46 -48
- package/dist/src/nile-side-bar-group-item/nile-side-bar-group-item.css.js.map +1 -1
- package/dist/src/nile-sidebar/index.d.ts +28 -0
- package/dist/src/nile-sidebar/index.js +116 -0
- package/dist/src/nile-sidebar/index.js.map +1 -0
- package/dist/src/nile-sidebar-menu/index.d.ts +1 -0
- package/dist/src/nile-sidebar-menu/index.js +2 -0
- package/dist/src/nile-sidebar-menu/index.js.map +1 -0
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.d.ts +12 -0
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js +47 -0
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js.map +1 -0
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.d.ts +37 -0
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js +84 -0
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js.map +1 -0
- package/dist/src/nile-sidebar-menu-items/index.d.ts +1 -0
- package/dist/src/nile-sidebar-menu-items/index.js +2 -0
- package/dist/src/nile-sidebar-menu-items/index.js.map +1 -0
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.d.ts +12 -0
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js +45 -0
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js.map +1 -0
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.d.ts +35 -0
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js +78 -0
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js.map +1 -0
- package/dist/src/nile-sidebar-wrapper/index.d.ts +1 -0
- package/dist/src/nile-sidebar-wrapper/index.js +2 -0
- package/dist/src/nile-sidebar-wrapper/index.js.map +1 -0
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.d.ts +12 -0
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js +114 -0
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js.map +1 -0
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.d.ts +35 -0
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js +89 -0
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js.map +1 -0
- package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +9 -0
- package/dist/src/nile-table-body/virtual-scroll-helper.js +24 -0
- package/dist/src/nile-table-body/virtual-scroll-helper.js.map +1 -0
- package/dist/src/nile-virtual-select/body-append-helper.d.ts +16 -0
- package/dist/src/nile-virtual-select/body-append-helper.js +95 -0
- package/dist/src/nile-virtual-select/body-append-helper.js.map +1 -0
- package/dist/src/nile-virtual-select/group-manager.d.ts +32 -0
- package/dist/src/nile-virtual-select/group-manager.js +134 -0
- package/dist/src/nile-virtual-select/group-manager.js.map +1 -0
- package/dist/src/nile-virtual-select/portal-utils.d.ts +65 -0
- package/dist/src/nile-virtual-select/portal-utils.js +376 -0
- package/dist/src/nile-virtual-select/portal-utils.js.map +1 -0
- package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.d.ts +273 -0
- package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js +1305 -0
- package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js.map +1 -0
- package/dist/src/nile-virtual-select/virtualizer-error-handler.d.ts +21 -0
- package/dist/src/nile-virtual-select/virtualizer-error-handler.js +56 -0
- package/dist/src/nile-virtual-select/virtualizer-error-handler.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/index.d.ts +1 -0
- package/dist/src/nile-virtual-select-disabled/index.js +2 -0
- package/dist/src/nile-virtual-select-disabled/index.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.d.ts +12 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js +538 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.d.ts +299 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js +1441 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.d.ts +7 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js +631 -0
- package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/portal-manager.d.ts +45 -0
- package/dist/src/nile-virtual-select-disabled/portal-manager.js +333 -0
- package/dist/src/nile-virtual-select-disabled/portal-manager.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/renderer.d.ts +16 -0
- package/dist/src/nile-virtual-select-disabled/renderer.js +79 -0
- package/dist/src/nile-virtual-select-disabled/renderer.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/search-manager.d.ts +12 -0
- package/dist/src/nile-virtual-select-disabled/search-manager.js +40 -0
- package/dist/src/nile-virtual-select-disabled/search-manager.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/selection-manager.d.ts +12 -0
- package/dist/src/nile-virtual-select-disabled/selection-manager.js +64 -0
- package/dist/src/nile-virtual-select-disabled/selection-manager.js.map +1 -0
- package/dist/src/nile-virtual-select-disabled/types.d.ts +50 -0
- package/dist/src/nile-virtual-select-disabled/types.js +8 -0
- package/dist/src/nile-virtual-select-disabled/types.js.map +1 -0
- package/dist/src/nile-virtual-table-body/index.d.ts +2 -0
- package/dist/src/nile-virtual-table-body/index.js +3 -0
- package/dist/src/nile-virtual-table-body/index.js.map +1 -0
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +1 -0
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +44 -0
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +1 -0
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +50 -0
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +135 -0
- package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +1 -0
- package/dist/src/nile-virtual-table-body/renderer.d.ts +16 -0
- package/dist/src/nile-virtual-table-body/renderer.js +49 -0
- package/dist/src/nile-virtual-table-body/renderer.js.map +1 -0
- package/dist/src/utilities/stepper-utils.d.ts +71 -0
- package/dist/src/utilities/stepper-utils.js +108 -0
- package/dist/src/utilities/stepper-utils.js.map +1 -0
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/nile-inline-edit/nile-inline-edit-utils.ts +94 -0
- package/src/nile-inline-edit/nile-inline-edit.ts +59 -1
- package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +2 -2
- package/src/nile-inline-sidebar/nile-inline-sidebar.ts +5 -16
- package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +0 -1
- package/src/nile-side-bar-expand/nile-side-bar-expand.css.ts +5 -3
- package/src/nile-side-bar-expand/nile-side-bar-expand.ts +4 -4
- package/src/nile-side-bar-footer/nile-side-bar-footer.css.ts +1 -0
- package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts +3 -15
- package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.ts +16 -42
- package/src/nile-side-bar-group/nile-side-bar-group.css.ts +2 -2
- package/src/nile-side-bar-group-item/nile-side-bar-group-item.css.ts +47 -49
- package/vscode-html-custom-data.json +8 -30
- package/dist/axe.min-140df6c2.cjs.js +0 -2
- package/dist/axe.min-140df6c2.cjs.js.map +0 -1
- package/dist/axe.min-591c52c3.esm.js +0 -1
- package/dist/fixture-f575d0df.cjs.js.map +0 -1
- package/dist/floating-ui.dom-70d5643f.esm.js +0 -1
- package/dist/floating-ui.dom-f19772dc.cjs.js +0 -2
- package/dist/floating-ui.dom-f19772dc.cjs.js.map +0 -1
- package/dist/flow-3e83b6f4.esm.js +0 -17
- package/dist/flow-ca47f938.cjs.js +0 -14
- package/dist/flow-ca47f938.cjs.js.map +0 -1
- package/dist/nile-light-tooltip/index.cjs.js +0 -2
- package/dist/nile-light-tooltip/index.esm.js +0 -1
- package/dist/nile-light-tooltip/nile-light-tooltip.cjs.js +0 -2
- package/dist/nile-light-tooltip/nile-light-tooltip.cjs.js.map +0 -1
- package/dist/nile-light-tooltip/nile-light-tooltip.css.cjs.js +0 -2
- package/dist/nile-light-tooltip/nile-light-tooltip.css.cjs.js.map +0 -1
- package/dist/nile-light-tooltip/nile-light-tooltip.css.esm.js +0 -5
- package/dist/nile-light-tooltip/nile-light-tooltip.esm.js +0 -1
- package/dist/nile-light-tooltip/utils.cjs.js +0 -2
- package/dist/nile-light-tooltip/utils.cjs.js.map +0 -1
- package/dist/nile-light-tooltip/utils.esm.js +0 -1
- package/dist/scopedElementsWrapper-067597d2.cjs.js +0 -6
- package/dist/scopedElementsWrapper-067597d2.cjs.js.map +0 -1
- package/dist/scopedElementsWrapper-4374e962.esm.js +0 -7
- package/dist/sinon-esm-283dcc9b.cjs.js +0 -2
- package/dist/sinon-esm-283dcc9b.cjs.js.map +0 -1
- package/dist/sinon-esm-abe9b0ec.esm.js +0 -1
- package/dist/src/nile-light-tooltip/index.d.ts +0 -1
- package/dist/src/nile-light-tooltip/index.js +0 -2
- package/dist/src/nile-light-tooltip/index.js.map +0 -1
- package/dist/src/nile-light-tooltip/nile-light-tooltip.css.d.ts +0 -12
- package/dist/src/nile-light-tooltip/nile-light-tooltip.css.js +0 -17
- package/dist/src/nile-light-tooltip/nile-light-tooltip.css.js.map +0 -1
- package/dist/src/nile-light-tooltip/nile-light-tooltip.d.ts +0 -79
- package/dist/src/nile-light-tooltip/nile-light-tooltip.js +0 -350
- package/dist/src/nile-light-tooltip/nile-light-tooltip.js.map +0 -1
- package/dist/src/nile-light-tooltip/nile-lite-tooltip.css.d.ts +0 -12
- package/dist/src/nile-light-tooltip/nile-lite-tooltip.css.js +0 -17
- package/dist/src/nile-light-tooltip/nile-lite-tooltip.css.js.map +0 -1
- package/dist/src/nile-light-tooltip/nile-lite-tooltip.d.ts +0 -79
- package/dist/src/nile-light-tooltip/nile-lite-tooltip.js +0 -350
- package/dist/src/nile-light-tooltip/nile-lite-tooltip.js.map +0 -1
- package/dist/src/nile-light-tooltip/utils.d.ts +0 -2
- package/dist/src/nile-light-tooltip/utils.js +0 -29
- package/dist/src/nile-light-tooltip/utils.js.map +0 -1
- package/dist/virtualize-73f68d08.esm.js +0 -22
- package/dist/virtualize-eb33a9a0.cjs.js +0 -18
- package/dist/virtualize-eb33a9a0.cjs.js.map +0 -1
- /package/dist/{nile-light-tooltip → nile-grid-body}/index.cjs.js.map +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2023
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import type NilePopup from '../nile-popup/nile-popup';
|
|
8
|
+
import type NileSelect from './nile-select';
|
|
9
|
+
/**
|
|
10
|
+
* Manager class for handling bodyAppend functionality in nile-select
|
|
11
|
+
* This class manages moving select options to document.body to avoid CSS clipping issues
|
|
12
|
+
*/
|
|
13
|
+
export declare class BodyAppendManager {
|
|
14
|
+
private bodyContainer?;
|
|
15
|
+
private originalOptions;
|
|
16
|
+
private boundHandlePopupReposition?;
|
|
17
|
+
private selectElement;
|
|
18
|
+
private popup?;
|
|
19
|
+
private listbox?;
|
|
20
|
+
private injectedStyleId?;
|
|
21
|
+
constructor(selectElement: NileSelect);
|
|
22
|
+
/**
|
|
23
|
+
* Sets the popup and listbox references
|
|
24
|
+
*/
|
|
25
|
+
setReferences(popup: NilePopup, listbox: HTMLSlotElement): void;
|
|
26
|
+
/**
|
|
27
|
+
* Handles the bodyAppend change
|
|
28
|
+
*/
|
|
29
|
+
handleBodyAppendChange(bodyAppend: boolean): void;
|
|
30
|
+
/**
|
|
31
|
+
* Handles popup reposition events to update body container position
|
|
32
|
+
*/
|
|
33
|
+
private handlePopupReposition;
|
|
34
|
+
/**
|
|
35
|
+
* Extracts styles as CSS string from various style formats
|
|
36
|
+
*/
|
|
37
|
+
private extractStylesAsCSS;
|
|
38
|
+
/**
|
|
39
|
+
* Injects component styles into document head
|
|
40
|
+
*/
|
|
41
|
+
private injectStylesToDocument;
|
|
42
|
+
/**
|
|
43
|
+
* Adopts component styles to the body container (similar to portal-manager pattern)
|
|
44
|
+
*/
|
|
45
|
+
private adoptStylesToBodyContainer;
|
|
46
|
+
/**
|
|
47
|
+
* Creates a body container for options when bodyAppend is true
|
|
48
|
+
*/
|
|
49
|
+
private createBodyContainer;
|
|
50
|
+
/**
|
|
51
|
+
* Cleans up the body container
|
|
52
|
+
*/
|
|
53
|
+
private cleanupBodyContainer;
|
|
54
|
+
/**
|
|
55
|
+
* Moves options to body container when bodyAppend is true
|
|
56
|
+
*/
|
|
57
|
+
private moveOptionsToBody;
|
|
58
|
+
/**
|
|
59
|
+
* Restores options to their original position
|
|
60
|
+
*/
|
|
61
|
+
private restoreOptionsFromBody;
|
|
62
|
+
/**
|
|
63
|
+
* Updates body container visibility and positioning
|
|
64
|
+
*/
|
|
65
|
+
private updateBodyContainerVisibility;
|
|
66
|
+
/**
|
|
67
|
+
* Gets all options from both original location and body container
|
|
68
|
+
*/
|
|
69
|
+
private getAllOptions;
|
|
70
|
+
/**
|
|
71
|
+
* Updates body container visibility when select opens/closes
|
|
72
|
+
*/
|
|
73
|
+
updateVisibility(visible: boolean): void;
|
|
74
|
+
/**
|
|
75
|
+
* Checks if bodyAppend is active (has body container)
|
|
76
|
+
*/
|
|
77
|
+
isActive(): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Gets the body container element
|
|
80
|
+
*/
|
|
81
|
+
getBodyContainer(): HTMLElement | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Gets the listbox container element inside the body container
|
|
84
|
+
*/
|
|
85
|
+
getListboxContainer(): HTMLElement | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Cleans up all resources
|
|
88
|
+
*/
|
|
89
|
+
destroy(): void;
|
|
90
|
+
}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2023
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Manager class for handling bodyAppend functionality in nile-select
|
|
9
|
+
* This class manages moving select options to document.body to avoid CSS clipping issues
|
|
10
|
+
*/
|
|
11
|
+
export class BodyAppendManager {
|
|
12
|
+
constructor(selectElement) {
|
|
13
|
+
this.originalOptions = [];
|
|
14
|
+
this.selectElement = selectElement;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Sets the popup and listbox references
|
|
18
|
+
*/
|
|
19
|
+
setReferences(popup, listbox) {
|
|
20
|
+
this.popup = popup;
|
|
21
|
+
this.listbox = listbox;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Handles the bodyAppend change
|
|
25
|
+
*/
|
|
26
|
+
handleBodyAppendChange(bodyAppend) {
|
|
27
|
+
if (bodyAppend) {
|
|
28
|
+
// Initialize body container when bodyAppend becomes true
|
|
29
|
+
this.createBodyContainer();
|
|
30
|
+
// Move options to body immediately
|
|
31
|
+
this.moveOptionsToBody();
|
|
32
|
+
// If no options were found, retry after a short delay
|
|
33
|
+
if (this.getAllOptions().length === 0) {
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
this.moveOptionsToBody();
|
|
36
|
+
}, 100);
|
|
37
|
+
}
|
|
38
|
+
// Listen for popup reposition events
|
|
39
|
+
this.boundHandlePopupReposition = this.handlePopupReposition.bind(this);
|
|
40
|
+
this.popup?.addEventListener('reposition', this.boundHandlePopupReposition);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Restore options from body when bodyAppend becomes false
|
|
44
|
+
this.restoreOptionsFromBody();
|
|
45
|
+
// Clean up body container when bodyAppend becomes false
|
|
46
|
+
this.cleanupBodyContainer();
|
|
47
|
+
// Remove popup reposition listener
|
|
48
|
+
if (this.boundHandlePopupReposition) {
|
|
49
|
+
this.popup?.removeEventListener('reposition', this.boundHandlePopupReposition);
|
|
50
|
+
this.boundHandlePopupReposition = undefined;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Handles popup reposition events to update body container position
|
|
56
|
+
*/
|
|
57
|
+
handlePopupReposition() {
|
|
58
|
+
if (this.bodyContainer && this.selectElement.open) {
|
|
59
|
+
this.updateBodyContainerVisibility(true);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Extracts styles as CSS string from various style formats
|
|
64
|
+
*/
|
|
65
|
+
extractStylesAsCSS(styles) {
|
|
66
|
+
if (typeof styles === 'string') {
|
|
67
|
+
return styles;
|
|
68
|
+
}
|
|
69
|
+
if (Array.isArray(styles)) {
|
|
70
|
+
return styles.map(style => this.extractStylesAsCSS(style)).join('\n');
|
|
71
|
+
}
|
|
72
|
+
if (styles && typeof styles === 'object' && styles.cssText) {
|
|
73
|
+
return styles.cssText;
|
|
74
|
+
}
|
|
75
|
+
return '';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Injects component styles into document head
|
|
79
|
+
*/
|
|
80
|
+
injectStylesToDocument() {
|
|
81
|
+
if (!this.bodyContainer)
|
|
82
|
+
return;
|
|
83
|
+
// Create a unique identifier for this component instance
|
|
84
|
+
this.injectedStyleId = `nile-select-body-append-styles-${Math.random().toString(36).substring(2, 11)}`;
|
|
85
|
+
// Check if styles are already injected
|
|
86
|
+
if (document.getElementById(this.injectedStyleId))
|
|
87
|
+
return;
|
|
88
|
+
// Get the component's styles
|
|
89
|
+
const componentStyles = this.selectElement.constructor.styles;
|
|
90
|
+
if (!componentStyles)
|
|
91
|
+
return;
|
|
92
|
+
// Create a style element
|
|
93
|
+
const styleElement = document.createElement('style');
|
|
94
|
+
styleElement.id = this.injectedStyleId;
|
|
95
|
+
styleElement.textContent = this.extractStylesAsCSS(componentStyles);
|
|
96
|
+
// Inject into document head
|
|
97
|
+
document.head.appendChild(styleElement);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Adopts component styles to the body container (similar to portal-manager pattern)
|
|
101
|
+
*/
|
|
102
|
+
adoptStylesToBodyContainer(listboxContainer) {
|
|
103
|
+
if (!this.bodyContainer)
|
|
104
|
+
return;
|
|
105
|
+
// Inject styles to document head first
|
|
106
|
+
this.injectStylesToDocument();
|
|
107
|
+
// Apply basic styling to match the original listbox
|
|
108
|
+
if (this.listbox) {
|
|
109
|
+
const computedStyle = window.getComputedStyle(this.listbox);
|
|
110
|
+
listboxContainer.style.backgroundColor = computedStyle.backgroundColor;
|
|
111
|
+
listboxContainer.style.border = computedStyle.border;
|
|
112
|
+
listboxContainer.style.borderRadius = computedStyle.borderRadius;
|
|
113
|
+
listboxContainer.style.boxShadow = computedStyle.boxShadow;
|
|
114
|
+
listboxContainer.style.maxHeight = computedStyle.maxHeight;
|
|
115
|
+
listboxContainer.style.overflow = computedStyle.overflow;
|
|
116
|
+
listboxContainer.style.padding = computedStyle.padding;
|
|
117
|
+
listboxContainer.style.margin = computedStyle.margin;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Creates a body container for options when bodyAppend is true
|
|
122
|
+
*/
|
|
123
|
+
createBodyContainer() {
|
|
124
|
+
if (this.bodyContainer) {
|
|
125
|
+
return this.bodyContainer;
|
|
126
|
+
}
|
|
127
|
+
this.bodyContainer = document.createElement('div');
|
|
128
|
+
this.bodyContainer.style.position = 'fixed';
|
|
129
|
+
this.bodyContainer.style.zIndex = '9999';
|
|
130
|
+
this.bodyContainer.style.pointerEvents = 'none';
|
|
131
|
+
this.bodyContainer.style.visibility = 'hidden';
|
|
132
|
+
this.bodyContainer.style.overflow = 'hidden';
|
|
133
|
+
// Create the listbox container inside the body container
|
|
134
|
+
const listboxContainer = document.createElement('div');
|
|
135
|
+
listboxContainer.id = 'listbox';
|
|
136
|
+
listboxContainer.setAttribute('role', 'listbox');
|
|
137
|
+
listboxContainer.className = 'select__listbox';
|
|
138
|
+
listboxContainer.setAttribute('aria-expanded', 'false');
|
|
139
|
+
listboxContainer.setAttribute('aria-multiselectable', 'false');
|
|
140
|
+
listboxContainer.setAttribute('aria-labelledby', 'label');
|
|
141
|
+
listboxContainer.setAttribute('tabindex', '-1');
|
|
142
|
+
// Adopt styles to the listbox container (similar to portal-manager pattern)
|
|
143
|
+
this.adoptStylesToBodyContainer(listboxContainer);
|
|
144
|
+
// Append the listbox container to the body container
|
|
145
|
+
this.bodyContainer.appendChild(listboxContainer);
|
|
146
|
+
// Inject component styles to document head
|
|
147
|
+
this.injectStylesToDocument();
|
|
148
|
+
document.body.appendChild(this.bodyContainer);
|
|
149
|
+
return this.bodyContainer;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Cleans up the body container
|
|
153
|
+
*/
|
|
154
|
+
cleanupBodyContainer() {
|
|
155
|
+
if (this.bodyContainer && this.bodyContainer.parentNode) {
|
|
156
|
+
this.bodyContainer.parentNode.removeChild(this.bodyContainer);
|
|
157
|
+
this.bodyContainer = undefined;
|
|
158
|
+
}
|
|
159
|
+
// Clean up injected styles
|
|
160
|
+
if (this.injectedStyleId) {
|
|
161
|
+
const styleElement = document.getElementById(this.injectedStyleId);
|
|
162
|
+
if (styleElement) {
|
|
163
|
+
styleElement.remove();
|
|
164
|
+
}
|
|
165
|
+
this.injectedStyleId = undefined;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Moves options to body container when bodyAppend is true
|
|
170
|
+
*/
|
|
171
|
+
moveOptionsToBody() {
|
|
172
|
+
const container = this.createBodyContainer();
|
|
173
|
+
const listboxContainer = container.querySelector('#listbox');
|
|
174
|
+
const allOptions = this.getAllOptions();
|
|
175
|
+
// Only proceed if we have options to move and listbox container exists
|
|
176
|
+
if (allOptions.length === 0 || !listboxContainer) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
// Store original options for restoration
|
|
180
|
+
this.originalOptions = [...allOptions];
|
|
181
|
+
// Move options to listbox container inside body container
|
|
182
|
+
allOptions.forEach(option => {
|
|
183
|
+
if (option.parentNode) {
|
|
184
|
+
option.parentNode.removeChild(option);
|
|
185
|
+
}
|
|
186
|
+
listboxContainer.appendChild(option);
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Restores options to their original position
|
|
191
|
+
*/
|
|
192
|
+
restoreOptionsFromBody() {
|
|
193
|
+
if (!this.bodyContainer) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const allOptions = this.getAllOptions();
|
|
197
|
+
// Move options back to their original position
|
|
198
|
+
allOptions.forEach(option => {
|
|
199
|
+
if (option.parentNode) {
|
|
200
|
+
option.parentNode.removeChild(option);
|
|
201
|
+
}
|
|
202
|
+
// Insert back into the slot
|
|
203
|
+
this.selectElement.appendChild(option);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Updates body container visibility and positioning
|
|
208
|
+
*/
|
|
209
|
+
updateBodyContainerVisibility(visible) {
|
|
210
|
+
if (!this.bodyContainer) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (visible) {
|
|
214
|
+
this.bodyContainer.style.visibility = 'visible';
|
|
215
|
+
this.bodyContainer.style.pointerEvents = 'auto';
|
|
216
|
+
// Position the container relative to the popup
|
|
217
|
+
if (this.popup && this.popup.popup) {
|
|
218
|
+
const popupRect = this.popup.popup.getBoundingClientRect();
|
|
219
|
+
this.bodyContainer.style.left = `${popupRect.left}px`;
|
|
220
|
+
this.bodyContainer.style.top = `${popupRect.top}px`;
|
|
221
|
+
this.bodyContainer.style.width = `${popupRect.width}px`;
|
|
222
|
+
this.bodyContainer.style.height = `${popupRect.height}px`;
|
|
223
|
+
// Update styles to match the popup
|
|
224
|
+
const computedStyle = window.getComputedStyle(this.popup.popup);
|
|
225
|
+
this.bodyContainer.style.backgroundColor = computedStyle.backgroundColor;
|
|
226
|
+
this.bodyContainer.style.border = computedStyle.border;
|
|
227
|
+
this.bodyContainer.style.borderRadius = computedStyle.borderRadius;
|
|
228
|
+
this.bodyContainer.style.boxShadow = computedStyle.boxShadow;
|
|
229
|
+
this.bodyContainer.style.maxHeight = computedStyle.maxHeight;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
this.bodyContainer.style.visibility = 'hidden';
|
|
234
|
+
this.bodyContainer.style.pointerEvents = 'none';
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Gets all options from both original location and body container
|
|
239
|
+
*/
|
|
240
|
+
getAllOptions() {
|
|
241
|
+
let options;
|
|
242
|
+
// Always get options from the original location first
|
|
243
|
+
options = [...this.selectElement.querySelectorAll('nile-option')];
|
|
244
|
+
// If no options found in original location and bodyAppend is true, check listbox container
|
|
245
|
+
if (options.length === 0 && this.bodyContainer) {
|
|
246
|
+
const listboxContainer = this.bodyContainer.querySelector('#listbox');
|
|
247
|
+
if (listboxContainer) {
|
|
248
|
+
options = [...listboxContainer.querySelectorAll('nile-option')];
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return options;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Updates body container visibility when select opens/closes
|
|
255
|
+
*/
|
|
256
|
+
updateVisibility(visible) {
|
|
257
|
+
this.updateBodyContainerVisibility(visible);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Checks if bodyAppend is active (has body container)
|
|
261
|
+
*/
|
|
262
|
+
isActive() {
|
|
263
|
+
return !!this.bodyContainer;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Gets the body container element
|
|
267
|
+
*/
|
|
268
|
+
getBodyContainer() {
|
|
269
|
+
return this.bodyContainer;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Gets the listbox container element inside the body container
|
|
273
|
+
*/
|
|
274
|
+
getListboxContainer() {
|
|
275
|
+
return this.bodyContainer?.querySelector('#listbox');
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Cleans up all resources
|
|
279
|
+
*/
|
|
280
|
+
destroy() {
|
|
281
|
+
// Clean up body container if it exists
|
|
282
|
+
this.cleanupBodyContainer();
|
|
283
|
+
// Clean up event listeners
|
|
284
|
+
if (this.boundHandlePopupReposition) {
|
|
285
|
+
this.popup?.removeEventListener('reposition', this.boundHandlePopupReposition);
|
|
286
|
+
this.boundHandlePopupReposition = undefined;
|
|
287
|
+
}
|
|
288
|
+
// Clean up injected styles
|
|
289
|
+
if (this.injectedStyleId) {
|
|
290
|
+
const styleElement = document.getElementById(this.injectedStyleId);
|
|
291
|
+
if (styleElement) {
|
|
292
|
+
styleElement.remove();
|
|
293
|
+
}
|
|
294
|
+
this.injectedStyleId = undefined;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=body-append-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body-append-manager.js","sourceRoot":"","sources":["../../../src/nile-select/body-append-manager.ts"],"names":[],"mappings":"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","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 type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport type NileSelect from './nile-select';\nimport type { CSSResultGroup } from 'lit';\n\n/**\n * Manager class for handling bodyAppend functionality in nile-select\n * This class manages moving select options to document.body to avoid CSS clipping issues\n */\nexport class BodyAppendManager {\n private bodyContainer?: HTMLElement;\n private originalOptions: NileOption[] = [];\n private boundHandlePopupReposition?: () => void;\n private selectElement: NileSelect;\n private popup?: NilePopup;\n private listbox?: HTMLSlotElement;\n private injectedStyleId?: string;\n\n constructor(selectElement: NileSelect) {\n this.selectElement = selectElement;\n }\n\n /**\n * Sets the popup and listbox references\n */\n setReferences(popup: NilePopup, listbox: HTMLSlotElement): void {\n this.popup = popup;\n this.listbox = listbox;\n }\n\n /**\n * Handles the bodyAppend change\n */\n handleBodyAppendChange(bodyAppend: boolean): void {\n if (bodyAppend) {\n // Initialize body container when bodyAppend becomes true\n this.createBodyContainer();\n // Move options to body immediately\n this.moveOptionsToBody();\n // If no options were found, retry after a short delay\n if (this.getAllOptions().length === 0) {\n setTimeout(() => {\n this.moveOptionsToBody();\n }, 100);\n }\n // Listen for popup reposition events\n this.boundHandlePopupReposition = this.handlePopupReposition.bind(this);\n this.popup?.addEventListener('reposition', this.boundHandlePopupReposition);\n } else {\n // Restore options from body when bodyAppend becomes false\n this.restoreOptionsFromBody();\n // Clean up body container when bodyAppend becomes false\n this.cleanupBodyContainer();\n // Remove popup reposition listener\n if (this.boundHandlePopupReposition) {\n this.popup?.removeEventListener('reposition', this.boundHandlePopupReposition);\n this.boundHandlePopupReposition = undefined;\n }\n }\n }\n\n /**\n * Handles popup reposition events to update body container position\n */\n private handlePopupReposition(): void {\n if (this.bodyContainer && this.selectElement.open) {\n this.updateBodyContainerVisibility(true);\n }\n }\n\n /**\n * Extracts styles as CSS string from various style formats\n */\n private extractStylesAsCSS(styles: any): string {\n if (typeof styles === 'string') {\n return styles;\n }\n \n if (Array.isArray(styles)) {\n return styles.map(style => this.extractStylesAsCSS(style)).join('\\n');\n }\n \n if (styles && typeof styles === 'object' && styles.cssText) {\n return styles.cssText;\n }\n \n return '';\n }\n\n /**\n * Injects component styles into document head\n */\n private injectStylesToDocument(): void {\n if (!this.bodyContainer) return;\n\n // Create a unique identifier for this component instance\n this.injectedStyleId = `nile-select-body-append-styles-${Math.random().toString(36).substring(2, 11)}`;\n \n // Check if styles are already injected\n if (document.getElementById(this.injectedStyleId)) return;\n\n // Get the component's styles\n const componentStyles = (this.selectElement.constructor as any).styles;\n if (!componentStyles) return;\n\n // Create a style element\n const styleElement = document.createElement('style');\n styleElement.id = this.injectedStyleId;\n styleElement.textContent = this.extractStylesAsCSS(componentStyles);\n \n // Inject into document head\n document.head.appendChild(styleElement);\n }\n\n /**\n * Adopts component styles to the body container (similar to portal-manager pattern)\n */\n private adoptStylesToBodyContainer(listboxContainer: HTMLElement): void {\n if (!this.bodyContainer) return;\n \n // Inject styles to document head first\n this.injectStylesToDocument();\n \n // Apply basic styling to match the original listbox\n if (this.listbox) {\n const computedStyle = window.getComputedStyle(this.listbox);\n listboxContainer.style.backgroundColor = computedStyle.backgroundColor;\n listboxContainer.style.border = computedStyle.border;\n listboxContainer.style.borderRadius = computedStyle.borderRadius;\n listboxContainer.style.boxShadow = computedStyle.boxShadow;\n listboxContainer.style.maxHeight = computedStyle.maxHeight;\n listboxContainer.style.overflow = computedStyle.overflow;\n listboxContainer.style.padding = computedStyle.padding;\n listboxContainer.style.margin = computedStyle.margin;\n }\n }\n\n /**\n * Creates a body container for options when bodyAppend is true\n */\n private createBodyContainer(): HTMLElement {\n if (this.bodyContainer) {\n return this.bodyContainer;\n }\n\n this.bodyContainer = document.createElement('div');\n this.bodyContainer.style.position = 'fixed';\n this.bodyContainer.style.zIndex = '9999';\n this.bodyContainer.style.pointerEvents = 'none';\n this.bodyContainer.style.visibility = 'hidden';\n this.bodyContainer.style.overflow = 'hidden';\n \n // Create the listbox container inside the body container\n const listboxContainer = document.createElement('div');\n listboxContainer.id = 'listbox';\n listboxContainer.setAttribute('role', 'listbox');\n listboxContainer.className = 'select__listbox';\n listboxContainer.setAttribute('aria-expanded', 'false');\n listboxContainer.setAttribute('aria-multiselectable', 'false');\n listboxContainer.setAttribute('aria-labelledby', 'label');\n listboxContainer.setAttribute('tabindex', '-1');\n \n // Adopt styles to the listbox container (similar to portal-manager pattern)\n this.adoptStylesToBodyContainer(listboxContainer);\n \n // Append the listbox container to the body container\n this.bodyContainer.appendChild(listboxContainer);\n \n // Inject component styles to document head\n this.injectStylesToDocument();\n \n document.body.appendChild(this.bodyContainer);\n \n return this.bodyContainer;\n }\n\n /**\n * Cleans up the body container\n */\n private cleanupBodyContainer(): void {\n if (this.bodyContainer && this.bodyContainer.parentNode) {\n this.bodyContainer.parentNode.removeChild(this.bodyContainer);\n this.bodyContainer = undefined;\n }\n \n // Clean up injected styles\n if (this.injectedStyleId) {\n const styleElement = document.getElementById(this.injectedStyleId);\n if (styleElement) {\n styleElement.remove();\n }\n this.injectedStyleId = undefined;\n }\n }\n\n /**\n * Moves options to body container when bodyAppend is true\n */\n private moveOptionsToBody(): void {\n const container = this.createBodyContainer();\n const listboxContainer = container.querySelector('#listbox') as HTMLElement;\n const allOptions = this.getAllOptions();\n \n // Only proceed if we have options to move and listbox container exists\n if (allOptions.length === 0 || !listboxContainer) {\n return;\n }\n \n // Store original options for restoration\n this.originalOptions = [...allOptions];\n \n // Move options to listbox container inside body container\n allOptions.forEach(option => {\n if (option.parentNode) {\n option.parentNode.removeChild(option);\n }\n listboxContainer.appendChild(option);\n });\n }\n\n /**\n * Restores options to their original position\n */\n private restoreOptionsFromBody(): void {\n if (!this.bodyContainer) {\n return;\n }\n\n const allOptions = this.getAllOptions();\n \n // Move options back to their original position\n allOptions.forEach(option => {\n if (option.parentNode) {\n option.parentNode.removeChild(option);\n }\n // Insert back into the slot\n this.selectElement.appendChild(option);\n });\n }\n\n /**\n * Updates body container visibility and positioning\n */\n private updateBodyContainerVisibility(visible: boolean): void {\n if (!this.bodyContainer) {\n return;\n }\n\n if (visible) {\n this.bodyContainer.style.visibility = 'visible';\n this.bodyContainer.style.pointerEvents = 'auto';\n \n // Position the container relative to the popup\n if (this.popup && this.popup.popup) {\n const popupRect = this.popup.popup.getBoundingClientRect();\n this.bodyContainer.style.left = `${popupRect.left}px`;\n this.bodyContainer.style.top = `${popupRect.top}px`;\n this.bodyContainer.style.width = `${popupRect.width}px`;\n this.bodyContainer.style.height = `${popupRect.height}px`;\n \n // Update styles to match the popup\n const computedStyle = window.getComputedStyle(this.popup.popup);\n this.bodyContainer.style.backgroundColor = computedStyle.backgroundColor;\n this.bodyContainer.style.border = computedStyle.border;\n this.bodyContainer.style.borderRadius = computedStyle.borderRadius;\n this.bodyContainer.style.boxShadow = computedStyle.boxShadow;\n this.bodyContainer.style.maxHeight = computedStyle.maxHeight;\n }\n } else {\n this.bodyContainer.style.visibility = 'hidden';\n this.bodyContainer.style.pointerEvents = 'none';\n }\n }\n\n /**\n * Gets all options from both original location and body container\n */\n private getAllOptions(): NileOption[] {\n let options: NileOption[];\n \n // Always get options from the original location first\n options = [...this.selectElement.querySelectorAll<NileOption>('nile-option')];\n \n // If no options found in original location and bodyAppend is true, check listbox container\n if (options.length === 0 && this.bodyContainer) {\n const listboxContainer = this.bodyContainer.querySelector('#listbox');\n if (listboxContainer) {\n options = [...listboxContainer.querySelectorAll<NileOption>('nile-option')];\n }\n }\n\n return options;\n }\n\n /**\n * Updates body container visibility when select opens/closes\n */\n updateVisibility(visible: boolean): void {\n this.updateBodyContainerVisibility(visible);\n }\n\n /**\n * Checks if bodyAppend is active (has body container)\n */\n isActive(): boolean {\n return !!this.bodyContainer;\n }\n\n /**\n * Gets the body container element\n */\n getBodyContainer(): HTMLElement | undefined {\n return this.bodyContainer;\n }\n\n /**\n * Gets the listbox container element inside the body container\n */\n getListboxContainer(): HTMLElement | undefined {\n return this.bodyContainer?.querySelector('#listbox') as HTMLElement | undefined;\n }\n\n /**\n * Cleans up all resources\n */\n destroy(): void {\n // Clean up body container if it exists\n this.cleanupBodyContainer();\n // Clean up event listeners\n if (this.boundHandlePopupReposition) {\n this.popup?.removeEventListener('reposition', this.boundHandlePopupReposition);\n this.boundHandlePopupReposition = undefined;\n }\n // Clean up injected styles\n if (this.injectedStyleId) {\n const styleElement = document.getElementById(this.injectedStyleId);\n if (styleElement) {\n styleElement.remove();\n }\n this.injectedStyleId = undefined;\n }\n }\n}\n"]}
|
|
@@ -17,8 +17,8 @@ export const styles = css `
|
|
|
17
17
|
display: flex;
|
|
18
18
|
align-items: center;
|
|
19
19
|
justify-content: center;
|
|
20
|
-
width:
|
|
21
|
-
height:
|
|
20
|
+
width: 32px;
|
|
21
|
+
height: 32px;
|
|
22
22
|
border: none;
|
|
23
23
|
background: transparent;
|
|
24
24
|
color: inherit;
|
|
@@ -27,7 +27,9 @@ export const styles = css `
|
|
|
27
27
|
transition: background-color 0.2s ease;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
.expand-btn:hover {
|
|
31
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
32
|
+
}
|
|
31
33
|
|
|
32
34
|
nile-tooltip::part(body) {
|
|
33
35
|
width: max-content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-expand.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-expand/nile-side-bar-expand.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-side-bar-expand.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-expand/nile-side-bar-expand.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","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 {css} from 'lit';\n\n/**\n * SideBarExpand CSS\n */\nexport const styles = css`\n\t :host {\n display: inline-flex;\n}\n\n.expand-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: inherit;\n cursor: pointer;\n border-radius: 6px;\n transition: background-color 0.2s ease;\n}\n\n.expand-btn:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}\n\nnile-tooltip::part(body) {\n width: max-content;\n height: max-content;\n padding: var(--nile-spacing-sm);\n overflow-x: hidden;\n }\n\n \n\n`;\n\nexport default [styles];"]}
|
|
@@ -44,14 +44,14 @@ let NileSideBarExpand = class NileSideBarExpand extends NileElement {
|
|
|
44
44
|
<button class="expand-btn" @click=${this.toggleSidebar}>
|
|
45
45
|
${this.collapsed
|
|
46
46
|
? html `
|
|
47
|
-
<nile-
|
|
47
|
+
<nile-tooltip placement="right" hoist content="Expand Sidebar">
|
|
48
48
|
<span part="icon"><nile-icon name="moveright"></nile-icon></span>
|
|
49
|
-
</nile-
|
|
49
|
+
</nile-tooltip>
|
|
50
50
|
`
|
|
51
51
|
: html `
|
|
52
|
-
<nile-
|
|
52
|
+
<nile-tooltip placement="right" hoist content="Collapse Sidebar">
|
|
53
53
|
<span part="icon"><nile-icon name="moveleft"></nile-icon></span>
|
|
54
|
-
</nile-
|
|
54
|
+
</nile-tooltip>
|
|
55
55
|
`}
|
|
56
56
|
</button>
|
|
57
57
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-expand.js","sourceRoot":"","sources":["../../../src/nile-side-bar-expand/nile-side-bar-expand.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;GAKG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,WAAW;IAA3C;;QAEL,cAAS,GAAY,KAAK,CAAC;IA8C7B,CAAC;IA5CQ,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA;0CAC2B,IAAI,CAAC,aAAa;UAClD,IAAI,CAAC,SAAS;YACd,CAAC,CAAC,IAAI,CAAA;;;;aAIH;YACH,CAAC,CAAC,IAAI,CAAA;;;;aAIH;;KAER,CAAC;IACJ,CAAC;CACF,CAAA;AA9CC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oDAChB;AAFhB,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAgD7B;;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["import { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-side-bar-expand.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile side-bar-expand component.\n *\n * @tag nile-side-bar-expand\n *\n */\n@customElement('nile-side-bar-expand')\nexport class NileSideBarExpand extends NileElement {\n @property({ type: Boolean, reflect: true })\n collapsed: boolean = false;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback() {\n super.connectedCallback();\n // Sync with parent sidebar if it exists\n const sidebar = this.closest('nile-side-bar');\n if (sidebar) {\n this.collapsed = sidebar.hasAttribute('collapsed');\n }\n }\n\n private toggleSidebar() {\n const sidebar = this.closest('nile-side-bar');\n if (!sidebar) return;\n\n const isCollapsed = sidebar.hasAttribute('collapsed');\n if (isCollapsed) {\n sidebar.removeAttribute('collapsed');\n this.collapsed = false;\n } else {\n sidebar.setAttribute('collapsed', '');\n this.collapsed = true;\n }\n }\n\n public render(): TemplateResult {\n return html`\n <button class=\"expand-btn\" @click=${this.toggleSidebar}>\n ${this.collapsed\n ? html`\n <nile-
|
|
1
|
+
{"version":3,"file":"nile-side-bar-expand.js","sourceRoot":"","sources":["../../../src/nile-side-bar-expand/nile-side-bar-expand.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;GAKG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,WAAW;IAA3C;;QAEL,cAAS,GAAY,KAAK,CAAC;IA8C7B,CAAC;IA5CQ,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA;0CAC2B,IAAI,CAAC,aAAa;UAClD,IAAI,CAAC,SAAS;YACd,CAAC,CAAC,IAAI,CAAA;;;;aAIH;YACH,CAAC,CAAC,IAAI,CAAA;;;;aAIH;;KAER,CAAC;IACJ,CAAC;CACF,CAAA;AA9CC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oDAChB;AAFhB,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAgD7B;;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["import { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-side-bar-expand.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile side-bar-expand component.\n *\n * @tag nile-side-bar-expand\n *\n */\n@customElement('nile-side-bar-expand')\nexport class NileSideBarExpand extends NileElement {\n @property({ type: Boolean, reflect: true })\n collapsed: boolean = false;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback() {\n super.connectedCallback();\n // Sync with parent sidebar if it exists\n const sidebar = this.closest('nile-side-bar');\n if (sidebar) {\n this.collapsed = sidebar.hasAttribute('collapsed');\n }\n }\n\n private toggleSidebar() {\n const sidebar = this.closest('nile-side-bar');\n if (!sidebar) return;\n\n const isCollapsed = sidebar.hasAttribute('collapsed');\n if (isCollapsed) {\n sidebar.removeAttribute('collapsed');\n this.collapsed = false;\n } else {\n sidebar.setAttribute('collapsed', '');\n this.collapsed = true;\n }\n }\n\n public render(): TemplateResult {\n return html`\n <button class=\"expand-btn\" @click=${this.toggleSidebar}>\n ${this.collapsed\n ? html`\n <nile-tooltip placement=\"right\" hoist content=\"Expand Sidebar\">\n <span part=\"icon\"><nile-icon name=\"moveright\"></nile-icon></span>\n </nile-tooltip>\n `\n : html`\n <nile-tooltip placement=\"right\" hoist content=\"Collapse Sidebar\">\n <span part=\"icon\"><nile-icon name=\"moveleft\"></nile-icon></span>\n </nile-tooltip>\n `}\n </button>\n `;\n }\n}\n\nexport default NileSideBarExpand;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-side-bar-expand': NileSideBarExpand;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-footer.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-side-bar-footer.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer/nile-side-bar-footer.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import { css } from 'lit';\n\n/**\n * SideBarFooter CSS\n */\nexport const styles = css`\n :host {\n display: block;\n position: sticky;\n bottom: var(--nile-spacing-md);\n padding-bottom: var(--nile-spacing-xl);\n\tpadding-left: var(--nile-spacing-xl);\n\tpadding-right: var(--nile-spacing-xl);\n gap: var(--nile-spacing-md);\n z-index: 10;\n background: var(--nile-colors-neutral-100);\n}\n\n.footer {\n display: flex;\n flex-direction: column; \n align-items: stretch; \n gap: 8px; \n}\n\n::slotted(nile-side-bar-footer-item) {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md);\n justify-content: center;\n \n font-size: var(--nile-type-scale-3);\n color: var(--nile-colors-dark-900);\n cursor: pointer;\n border-radius: var(--nile-radius-sm);\n transition: background 0.2s ease;\n}\n\n\n\n\n \n`;\n\nexport default [styles];\n"]}
|
|
@@ -9,11 +9,8 @@ export const styles = css `
|
|
|
9
9
|
display: flex;
|
|
10
10
|
align-items: center;
|
|
11
11
|
justify-content: flex-start;
|
|
12
|
-
padding
|
|
13
|
-
|
|
14
|
-
padding-left: var(--nile-spacing-lg);
|
|
15
|
-
padding-right: var(--nile-spacing-lg);
|
|
16
|
-
font-size: var(--nile-type-scale-3);
|
|
12
|
+
padding: 12px;
|
|
13
|
+
font-size: 0.875rem;
|
|
17
14
|
color: var(--nile-side-bar-footer-color, #374151);
|
|
18
15
|
cursor: pointer;
|
|
19
16
|
border-radius: var(--nile-side-bar-footer-radius, 0.375rem);
|
|
@@ -55,13 +52,8 @@ export const styles = css `
|
|
|
55
52
|
|
|
56
53
|
:host([type='support']) .footer-item {
|
|
57
54
|
background: var(--nile-colors-neutral-400);
|
|
58
|
-
height: 38px;
|
|
59
|
-
}
|
|
60
|
-
:host([type='support'][active]) .footer-item {
|
|
61
|
-
background: var(--nile-colors-neutral-500);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
55
|
|
|
56
|
+
}
|
|
65
57
|
|
|
66
58
|
:host([collapsed][type='avatar']) .footer-item {
|
|
67
59
|
padding: 3px;
|
|
@@ -78,10 +70,6 @@ export const styles = css `
|
|
|
78
70
|
width: 38px;
|
|
79
71
|
}
|
|
80
72
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
73
|
`;
|
|
86
74
|
export default [styles];
|
|
87
75
|
//# sourceMappingURL=nile-side-bar-footer-item.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-footer-item.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-side-bar-footer-item.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuExB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n :host {\n display: block;\n width: 100%;\n }\n\n .footer-item {\n display: flex;\n align-items: center;\n\tjustify-content: flex-start;\n padding: 12px;\n font-size: 0.875rem;\n color: var(--nile-side-bar-footer-color, #374151);\n cursor: pointer;\n border-radius: var(--nile-side-bar-footer-radius, 0.375rem);\n transition: background 0.2s ease;\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n line-height: 0;\n }\n\n .footer-item:hover {\n background: var(--nile-side-bar-footer-hover-bg, #f3f4f6);\n }\n\n /* left: icon */\n ::slotted([slot='icon']) {\n flex-shrink: 0;\n font-size: 1.25rem;\n margin-right: 0.5rem;\n }\n\n /* middle: text */\n ::slotted([slot='text']) {\n flex-grow: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* right: action */\n ::slotted([slot='action']) {\n flex-shrink: 0;\n font-size: 1.25rem;\n color: var(--nile-side-bar-footer-icon-color, #6b7280);\n margin-left: auto;\n }\n\n \n :host([type='support']) .footer-item {\n background: var(--nile-colors-neutral-400);\n \n }\n \n :host([collapsed][type='avatar']) .footer-item {\n padding: 3px;\n \n}\n \n:host([collapsed][type='avatar']) ::slotted([slot='text']),\n:host([collapsed][type='avatar']) ::slotted([slot='action']) {\n display: none;\n}\n\n:host([collapsed]) .footer-item{\n height: 38px;\n width: 38px;\n}\n\n`;\n\nexport default [styles];\n"]}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import { CSSResultArray, TemplateResult } from 'lit';
|
|
2
2
|
import NileElement from '../internal/nile-element';
|
|
3
|
+
/**
|
|
4
|
+
* Nile side-bar-footer-item component.
|
|
5
|
+
*
|
|
6
|
+
* @tag nile-side-bar-footer-item
|
|
7
|
+
*
|
|
8
|
+
* @slot icon - Slot for footer item icon
|
|
9
|
+
* @slot text - Slot for footer item text
|
|
10
|
+
* @slot action - Slot for footer item action
|
|
11
|
+
*
|
|
12
|
+
* @csspart base - Wrapper for the footer item
|
|
13
|
+
* @csspart icon - Wrapper for the icon slot
|
|
14
|
+
* @csspart text - Wrapper for the text slot
|
|
15
|
+
* @csspart action - Wrapper for the action slot
|
|
16
|
+
*/
|
|
3
17
|
export declare class NileSideBarFooterItem extends NileElement {
|
|
4
|
-
|
|
5
|
-
type: 'support' | 'avatar' | null;
|
|
6
|
-
/** Optional trigger name for linked actions */
|
|
7
|
-
triggerFor: string | null;
|
|
8
|
-
/** Active state — can be controlled programmatically or via attribute */
|
|
9
|
-
active: boolean;
|
|
18
|
+
type: string | null;
|
|
10
19
|
static get styles(): CSSResultArray;
|
|
11
|
-
connectedCallback(): void;
|
|
12
|
-
disconnectedCallback(): void;
|
|
13
|
-
private handleClick;
|
|
14
20
|
render(): TemplateResult;
|
|
15
21
|
}
|
|
16
22
|
export default NileSideBarFooterItem;
|