@aquera/nile-elements 1.3.3 → 1.3.4-beta-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/demo/index.html +20 -27
- package/dist/{fixture-1c49c014.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-5b79f853.cjs.js +395 -0
- package/dist/fixture-5b79f853.cjs.js.map +1 -0
- package/dist/fixture-73855806.cjs.js +395 -0
- 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-cf7bfcf5.esm.js +569 -0
- package/dist/fixture-dbd66009.cjs.js +395 -0
- package/dist/fixture-dbd66009.cjs.js.map +1 -0
- package/dist/index.js +2 -2
- 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-dropdown/portal-utils.cjs.js +1 -1
- package/dist/nile-dropdown/portal-utils.cjs.js.map +1 -1
- package/dist/nile-dropdown/portal-utils.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/nile-grid.types.cjs.js +2 -0
- package/dist/nile-grid/nile-grid.types.cjs.js.map +1 -0
- package/dist/nile-grid/nile-grid.types.esm.js +1 -0
- package/dist/nile-grid-body/index.cjs.js +2 -0
- package/dist/nile-grid-body/index.cjs.js.map +1 -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-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-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-1bff26ef.cjs.js +2 -0
- package/dist/scopedElementsWrapper-1bff26ef.cjs.js.map +1 -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-dropdown/portal-utils.js +143 -59
- package/dist/src/nile-dropdown/portal-utils.js.map +1 -1
- package/dist/src/nile-floating-panel/anchor-manager.d.ts +26 -0
- package/dist/src/nile-floating-panel/anchor-manager.js +49 -0
- package/dist/src/nile-floating-panel/anchor-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/content-manager.d.ts +23 -0
- package/dist/src/nile-floating-panel/content-manager.js +67 -0
- package/dist/src/nile-floating-panel/content-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/event-manager.d.ts +38 -0
- package/dist/src/nile-floating-panel/event-manager.js +81 -0
- package/dist/src/nile-floating-panel/event-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/index.d.ts +1 -0
- package/dist/src/nile-floating-panel/index.js +2 -0
- package/dist/src/nile-floating-panel/index.js.map +1 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.css.d.ts +17 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.css.js +51 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.css.js.map +1 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +67 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.js +203 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -0
- package/dist/src/nile-floating-panel/position-manager.d.ts +47 -0
- package/dist/src/nile-floating-panel/position-manager.js +94 -0
- package/dist/src/nile-floating-panel/position-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/style-manager.d.ts +31 -0
- package/dist/src/nile-floating-panel/style-manager.js +74 -0
- package/dist/src/nile-floating-panel/style-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/types.d.ts +29 -0
- package/dist/src/nile-floating-panel/types.js +8 -0
- package/dist/src/nile-floating-panel/types.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/nile-grid.types.d.ts +3 -0
- package/dist/src/nile-grid/nile-grid.types.js +2 -0
- package/dist/src/nile-grid/nile-grid.types.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-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-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 +1 -1
- package/src/nile-dropdown/portal-utils.ts +153 -61
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-portal-wrapper.js","sourceRoot":"","sources":["../../../src/nile-portal-wrapper/nile-portal-wrapper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,UAAU,EACV,eAAe,EACf,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,EACJ,QAAQ,EAKT,MAAM,kBAAkB,CAAC;AAGnB,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QACwB,YAAO,GAAG,KAAK,CAAC;QACC,kBAAa,GAAuB,IAAI,CAAC;QACzC,YAAO,GAAuB,IAAI,CAAC;QACrE,cAAS,GAAc,QAAQ,CAAC;QAChB,WAAM,GAAG,CAAC,CAAC;QACX,YAAO,GAAG,EAAE,CAAC;QACK,aAAQ,GAAa,QAAQ,CAAC,eAAe,CAAC;QAC/C,uBAAkB,GAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC3I,aAAQ,GAAyB,OAAO,CAAC;QACzC,cAAS,GAAG,EAAE,CAAC;QACC,WAAM,GAAG,IAAI,CAAC;QACb,mBAAc,GAAG,IAAI,CAAC;QACtB,iBAAY,GAAG,IAAI,CAAC;QAEhC,oBAAe,GAAuB,IAAI,CAAC;QAC3C,kBAAa,GAAuB,IAAI,CAAC;QACzC,qBAAgB,GAAc,QAAQ,CAAC;QACvC,0BAAqB,GAA0B,IAAI,CAAC;QACpD,mBAAc,GAAkB,IAAI,CAAC;QAE9C,sBAAiB,GAAwB,IAAI,CAAC;QAC9C,oBAAe,GAAkB,IAAI,CAAC;QACtC,mBAAc,GAA0B,IAAI,CAAC;IA0bvD,CAAC;IAlbC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,iBAAyD;QAC/D,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEjC,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACjG,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAElE,MAAM,IAAI,CAAC,cAAc,CAAC;QAE1B,0BAA0B;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEhD,wBAAwB;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAErD,0CAA0C;QAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QAEzC,0BAA0B;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,sBAAsB;QACtB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,oBAAoB;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,wBAAwB;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,qBAAqB;QAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChD,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACvC,SAAS,CAAC,SAAS,GAAG,uBAAuB,IAAI,CAAC,SAAS,EAAE,CAAC;QAE9D,yEAAyE;QACzE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1D,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,+DAA+D;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjD,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,mBAAmB;QACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACtC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACxC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAE9C,gCAAgC;QAChC,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe;YAAE,OAAO,OAAO,CAAC;QAErC,2BAA2B;QAC3B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,gBAAgB,CAAC,SAAS,GAAG,iBAAiB,CAAC;QAE/C,8DAA8D;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;QAE5E,OAAO,CAAC,OAAO,CAAC,CAAC,MAAe,EAAE,EAAE;YAClC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAqB,CAAC,CAAC;YAC7D,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAEtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,MAAmB;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;QAE3D,sBAAsB;QACtB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3C,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAK,MAAc,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,YAAoB,CAAC,IAAI,CAAC,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEzD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,eAAe,CAC/D,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,EACpB;gBACE,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE;oBACV,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBACnB,IAAI,CAAC;wBACH,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;oBACF,IAAI,CAAC;wBACH,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,SAAS;wBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;oBACF,KAAK,CAAC;wBACJ,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,SAAS,EAAE,IAAI;wBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;iBACH;gBACD,QAAQ,EAAE,QAAQ;aACnB,CACF,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,EAAE,KAAK,CAAC,CAAC;YAC3F,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAIvE;QACC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,cAAc,IAAI,CAAC;QACzD,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,eAAe,IAAI,CAAC;IAC7D,CAAC;IAEO,aAAa,CAAC,CAAS,EAAE,CAAS,EAAE,SAAoB,EAAE,cAA8B;QAC9F,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;YACxC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,GAAG,CAAC,IAAI;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,MAAM;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC;QAE5C,wBAAwB;QACxB,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,wCAAwC,cAAc,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAE5G,oCAAoC;QACpC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC;QAC7D,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEzD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACxD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC;QAE/C,MAAM,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5B,IAAI,WAAmB,CAAC;QACxB,IAAI,cAAsB,CAAC;QAC3B,IAAI,SAAiB,CAAC;QAEtB,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3C,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/D,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3C,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACxC,cAAc,GAAG,QAAQ,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,WAAW,IAAI,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,SAAS,IAAI,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,wCAAwC,cAAc,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAC9G,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEzD,IAAI,CAAC,iBAAiB,GAAG,UAAU,CACjC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,eAAe,EACpB,GAAG,EAAE;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,EACD;YACE,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;SACrB,CACF,CAAC;IACJ,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEhC,uBAAuB;QACvB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACvD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,iBAAiB,CAAC,MAAqB,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACzB,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,YAAyB;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,oCAAoC;QACpC,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,sBAAsB,KAAK,IAAI,CAAgB,CAAC;QAClG,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,oDAAoD;QACpD,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE;YAC/C,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE;YAC9C,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAEO,YAAY,CAAC,KAAY,EAAE,SAAiB;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAExD,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,IAAK,KAAK,CAAC,WAAmB,CAAC,SAAS,EAAE;gBAC/D,IAAI,EAAE,MAAM;gBACZ,GAAG,KAAK;gBACR,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE;gBAC9C,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,aAA0B;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAEtD,IAAI,aAAa,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,sBAAsB,KAAK,IAAI,CAAgB,CAAC;YACpF,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAEpG,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAChE,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACvG,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtE,OAAO,QAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAE1D,MAAM,OAAO,GAAG,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAEpF,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;YAAE,OAAO;QAE7C,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,eAAe,GAAI,SAAS,CAAC,WAAmB,CAAC,MAAM,CAAC;YAC9D,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACrD,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC;gBAC1B,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACpE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;gBAC/B,OAAO;YACT,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAgB,CAAC;YAC5D,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACtE,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC3D,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBACrD,YAAY,CAAC,EAAE,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC7E,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;oBAC/C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAAW;QACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3D,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnE,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA,EAAE,CAAC;IAChB,CAAC;;AAvbM,wBAAM,GAAG,GAAG,CAAA;;;;GAIlB,AAJY,CAIX;AA5B2B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDAAiB;AACC;IAA7C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;wDAA0C;AACzC;IAA7C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;kDAAoC;AACrE;IAAX,QAAQ,EAAE;oDAAiC;AAChB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAAY;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDAAc;AACK;IAA7C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;mDAA+C;AAC/C;IAA5C,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;6DAA2G;AAC3I;IAAX,QAAQ,EAAE;mDAA0C;AACzC;IAAX,QAAQ,EAAE;oDAAgB;AACC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDAAe;AACb;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDAAuB;AACtB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDAAqB;AAEhC;IAAhB,KAAK,EAAE;0DAAoD;AAC3C;IAAhB,KAAK,EAAE;wDAAkD;AACzC;IAAhB,KAAK,EAAE;2DAAgD;AACvC;IAAhB,KAAK,EAAE;gEAA6D;AACpD;IAAhB,KAAK,EAAE;yDAA8C;AAnB3C,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CAid7B","sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { \n autoUpdate, \n computePosition, \n flip, \n offset, \n shift, \n size, \n platform,\n type Placement,\n type MiddlewareData,\n type ComputePositionConfig,\n type Boundary\n} from '@floating-ui/dom';\n\n@customElement('nile-portal-wrapper')\nexport class NilePortalWrapper extends LitElement {\n @property({ type: Boolean }) enabled = false;\n @property({ type: Object, attribute: false }) targetElement: HTMLElement | null = null;\n @property({ type: Object, attribute: false }) content: HTMLElement | null = null;\n @property() placement: Placement = 'bottom';\n @property({ type: Number }) offset = 4;\n @property({ type: Number }) padding = 10;\n @property({ type: Object, attribute: false }) boundary: Boundary = document.documentElement;\n @property({ type: Array, attribute: false }) fallbackPlacements: Placement[] = ['bottom', 'top', 'bottom-start', 'top-start', 'bottom-end', 'top-end'];\n @property() strategy: 'absolute' | 'fixed' = 'fixed';\n @property() className = '';\n @property({ type: Number }) zIndex = 9999;\n @property({ type: Boolean }) preserveStyles = true;\n @property({ type: Boolean }) cloneContent = true;\n\n @state() private portalContainer: HTMLElement | null = null;\n @state() private clonedContent: HTMLElement | null = null;\n @state() private currentPlacement: Placement = 'bottom';\n @state() private currentMiddlewareData: MiddlewareData | null = null;\n @state() private measuredHeight: number | null = null;\n\n private cleanupAutoUpdate: (() => void) | null = null;\n private injectedStyleId: string | null = null;\n private resizeObserver: ResizeObserver | null = null;\n\n static styles = css`\n :host {\n display: none;\n }\n `;\n\n connectedCallback() {\n super.connectedCallback();\n if (this.enabled) {\n this.setupPortal();\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.cleanup();\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>) {\n super.updated(changedProperties);\n \n if (changedProperties.has('enabled')) {\n if (this.enabled) {\n this.setupPortal();\n } else {\n this.cleanup();\n }\n }\n \n if (this.enabled && (changedProperties.has('targetElement') || changedProperties.has('content'))) {\n this.cleanup();\n this.setupPortal();\n }\n }\n\n private async setupPortal() {\n if (!this.enabled || !this.targetElement || !this.content) return;\n\n await this.updateComplete;\n \n // Create portal container\n this.portalContainer = this.createPortalContainer();\n document.body.appendChild(this.portalContainer);\n \n // Create cloned content\n this.clonedContent = this.createClonedContent();\n this.portalContainer.appendChild(this.clonedContent);\n \n // Make sure the cloned content is visible\n this.clonedContent.style.display = '';\n this.clonedContent.style.visibility = '';\n \n // Inject styles if needed\n if (this.preserveStyles) {\n this.injectStyles();\n }\n \n // Position the portal\n await this.positionPortal();\n \n // Setup auto-update\n this.setupAutoUpdate();\n \n // Setup event listeners\n this.setupEventListeners();\n }\n\n private createPortalContainer(): HTMLElement {\n const container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.zIndex = this.zIndex.toString();\n container.style.pointerEvents = 'none';\n container.className = `nile-portal-wrapper ${this.className}`;\n \n // Copy CSS classes from the original content to maintain styling context\n if (this.content) {\n const contentClasses = Array.from(this.content.classList);\n contentClasses.forEach(cls => {\n if (!container.classList.contains(cls)) {\n container.classList.add(cls);\n }\n });\n }\n \n return container;\n }\n\n private createClonedContent(): HTMLElement {\n if (!this.content) {\n throw new Error('Content element is required for cloning');\n }\n\n // Create a new listbox structure based on the original content\n const clonedContent = this.createPortalListbox();\n \n return clonedContent;\n }\n\n private createPortalListbox(): HTMLElement {\n const listbox = document.createElement('div');\n listbox.className = 'select__listbox';\n listbox.setAttribute('tabindex', '-1');\n listbox.setAttribute('role', 'listbox');\n listbox.setAttribute('aria-expanded', 'true');\n \n // Get the nile-select component\n const selectComponent = this.targetElement?.closest('nile-select');\n if (!selectComponent) return listbox;\n \n // Create options container\n const optionsContainer = document.createElement('div');\n optionsContainer.className = 'select__options';\n \n // Get options directly from the component (not from the slot)\n const options = Array.from(selectComponent.querySelectorAll('nile-option'));\n \n options.forEach((option: Element) => {\n const clonedOption = this.cloneOption(option as HTMLElement);\n optionsContainer.appendChild(clonedOption);\n });\n \n listbox.appendChild(optionsContainer);\n \n return listbox;\n }\n\n private cloneOption(option: HTMLElement): HTMLElement {\n const clonedOption = option.cloneNode(true) as HTMLElement;\n \n // Copy all attributes\n Array.from(option.attributes).forEach(attr => {\n clonedOption.setAttribute(attr.name, attr.value);\n });\n \n // Copy properties (matching the original implementation)\n const properties = ['selected', 'disabled', 'current', 'hidden'];\n properties.forEach(prop => {\n if ((option as any)[prop] !== undefined) {\n (clonedOption as any)[prop] = (option as any)[prop];\n }\n });\n \n return clonedOption;\n }\n\n private async positionPortal() {\n if (!this.portalContainer || !this.targetElement) return;\n\n try {\n const { x, y, placement, middlewareData } = await computePosition(\n this.targetElement,\n this.portalContainer,\n {\n placement: this.placement,\n strategy: this.strategy,\n middleware: [\n offset(this.offset),\n size({\n apply: this.handleSizeMiddleware.bind(this),\n padding: this.padding,\n boundary: this.boundary\n }),\n flip({\n fallbackPlacements: this.fallbackPlacements,\n fallbackStrategy: 'bestFit',\n padding: this.padding,\n boundary: this.boundary\n }),\n shift({\n padding: this.padding,\n crossAxis: true,\n boundary: this.boundary\n })\n ],\n platform: platform\n }\n );\n\n this.applyPosition(x, y, placement, middlewareData);\n } catch (error) {\n console.warn('Floating UI positioning failed, falling back to simple positioning:', error);\n this.fallbackPositioning();\n }\n }\n\n private handleSizeMiddleware({ availableWidth, availableHeight, elements }: {\n availableWidth: number;\n availableHeight: number;\n elements: { floating: HTMLElement };\n }): void {\n elements.floating.style.maxWidth = `${availableWidth}px`;\n elements.floating.style.maxHeight = `${availableHeight}px`;\n }\n\n private applyPosition(x: number, y: number, placement: Placement, middlewareData: MiddlewareData) {\n if (!this.portalContainer) return;\n\n Object.assign(this.portalContainer.style, {\n left: `${x}px`,\n top: `${y}px`,\n position: this.strategy,\n pointerEvents: 'auto'\n });\n\n this.currentPlacement = placement;\n this.currentMiddlewareData = middlewareData;\n \n // Apply placement class\n const placementClass = placement.split('-')[0];\n this.portalContainer.className = `nile-portal-wrapper select__listbox--${placementClass} ${this.className}`;\n\n // Set width to match target element\n if (this.targetElement) {\n const targetRect = this.targetElement.getBoundingClientRect();\n this.portalContainer.style.width = `${targetRect.width}px`;\n }\n }\n\n private fallbackPositioning() {\n if (!this.portalContainer || !this.targetElement) return;\n\n const rect = this.targetElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const popupHeight = this.measuredHeight || 200;\n \n const spaceBelow = viewportHeight - rect.bottom;\n const spaceAbove = rect.top;\n \n let topPosition: number;\n let placementClass: string;\n let maxHeight: number;\n \n if (spaceAbove > spaceBelow) {\n maxHeight = Math.max(spaceAbove - 20, 100);\n topPosition = Math.max(rect.top - maxHeight - this.offset, 10);\n placementClass = 'top';\n } else {\n maxHeight = Math.max(spaceBelow - 20, 100);\n topPosition = rect.bottom + this.offset;\n placementClass = 'bottom';\n }\n\n this.portalContainer.style.left = `${rect.left}px`;\n this.portalContainer.style.top = `${topPosition}px`;\n this.portalContainer.style.width = `${rect.width}px`;\n this.portalContainer.style.maxHeight = `${maxHeight}px`;\n this.portalContainer.style.pointerEvents = 'auto';\n this.portalContainer.className = `nile-portal-wrapper select__listbox--${placementClass} ${this.className}`;\n }\n\n private setupAutoUpdate() {\n if (!this.portalContainer || !this.targetElement) return;\n\n this.cleanupAutoUpdate = autoUpdate(\n this.targetElement,\n this.portalContainer,\n () => {\n this.positionPortal();\n },\n {\n ancestorScroll: true,\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n animationFrame: true\n }\n );\n }\n\n private setupEventListeners() {\n if (!this.clonedContent) return;\n\n // Handle option clicks\n this.clonedContent.addEventListener('mouseup', (event) => {\n const target = event.target as HTMLElement;\n const option = target.closest('nile-option');\n \n if (option) {\n this.handleOptionClick(option as HTMLElement);\n }\n });\n\n // Handle other events that need to be forwarded\n const events = ['click', 'keydown', 'keyup', 'focus', 'blur'];\n events.forEach(eventType => {\n this.clonedContent?.addEventListener(eventType, (event) => {\n this.forwardEvent(event, eventType);\n });\n });\n }\n\n private handleOptionClick(clonedOption: HTMLElement) {\n if (!this.content) return;\n\n // Find the original option by value\n const value = clonedOption.getAttribute('value');\n if (!value) return;\n\n const originalOption = this.content.querySelector(`nile-option[value=\"${value}\"]`) as HTMLElement;\n if (!originalOption) return;\n\n // Dispatch a synthetic event on the original option\n const syntheticEvent = new MouseEvent('mouseup', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n \n Object.defineProperty(syntheticEvent, 'target', {\n value: originalOption,\n writable: false\n });\n \n originalOption.dispatchEvent(syntheticEvent);\n }\n\n private forwardEvent(event: Event, eventType: string) {\n const target = event.target as HTMLElement;\n const originalTarget = this.findOriginalElement(target);\n\n if (originalTarget) {\n const syntheticEvent = new (event.constructor as any)(eventType, {\n view: window,\n ...event,\n bubbles: true,\n cancelable: true\n });\n\n Object.defineProperty(syntheticEvent, 'target', {\n value: originalTarget,\n writable: false\n });\n\n originalTarget.dispatchEvent(syntheticEvent);\n }\n }\n\n private findOriginalElement(clonedElement: HTMLElement): HTMLElement | null {\n if (!this.content || !this.clonedContent) return null;\n\n if (clonedElement.tagName === 'NILE-OPTION') {\n const value = clonedElement.getAttribute('value');\n if (value) {\n return this.content.querySelector(`nile-option[value=\"${value}\"]`) as HTMLElement;\n }\n }\n\n const tagName = clonedElement.tagName;\n const attributes = Array.from(clonedElement.attributes).map(attr => `${attr.name}=\"${attr.value}\"`);\n\n const originalElements = this.content.querySelectorAll(tagName);\n for (const original of originalElements) {\n const originalAttributes = Array.from(original.attributes).map(attr => `${attr.name}=\"${attr.value}\"`);\n if (JSON.stringify(originalAttributes) === JSON.stringify(attributes)) {\n return original as HTMLElement;\n }\n }\n\n return null;\n }\n\n private injectStyles() {\n if (!this.preserveStyles || !this.portalContainer) return;\n\n const styleId = `nile-portal-styles-${Math.random().toString(36).substring(2, 11)}`;\n \n if (document.getElementById(styleId)) return;\n\n // Try to get styles from the component's constructor\n const component = this.targetElement?.closest('nile-select');\n if (component) {\n const componentStyles = (component.constructor as any).styles;\n if (componentStyles) {\n const styleElement = document.createElement('style');\n styleElement.id = styleId;\n styleElement.textContent = this.extractStylesAsCSS(componentStyles);\n document.head.appendChild(styleElement);\n this.injectedStyleId = styleId;\n return;\n }\n }\n\n // Fallback: try to copy styles from shadow root\n if (this.content) {\n const shadowRoot = this.content.getRootNode() as ShadowRoot;\n if (shadowRoot && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const styleElements = shadowRoot.querySelectorAll('style');\n styleElements.forEach(styleEl => {\n const styleElement = document.createElement('style');\n styleElement.id = `${styleId}-${Math.random().toString(36).substring(2, 6)}`;\n styleElement.textContent = styleEl.textContent;\n document.head.appendChild(styleElement);\n });\n this.injectedStyleId = styleId;\n }\n }\n }\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 private cleanup() {\n this.cleanupAutoUpdate?.();\n this.cleanupAutoUpdate = null;\n\n if (this.portalContainer && this.portalContainer.parentNode) {\n this.portalContainer.parentNode.removeChild(this.portalContainer);\n }\n\n if (this.injectedStyleId) {\n const styleElement = document.getElementById(this.injectedStyleId);\n if (styleElement) {\n styleElement.remove();\n }\n this.injectedStyleId = null;\n }\n\n this.portalContainer = null;\n this.clonedContent = null;\n this.currentPlacement = 'bottom';\n this.currentMiddlewareData = null;\n this.measuredHeight = null;\n }\n\n render() {\n return html``;\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function closestBlock(node: Node | null, root: HTMLElement): HTMLElement | null;
|
|
2
|
+
export declare function nearestElement(n: Node | null): HTMLElement | null;
|
|
3
|
+
export declare function rgbToHex(rgb: string): string;
|
|
4
|
+
export declare function unwrap(node: HTMLElement): void;
|
|
5
|
+
export declare function surroundInline(range: Range, tag: string, attrs?: Record<string, string>): void;
|
|
6
|
+
export declare function toggleInlineTag(root: HTMLElement, tag: 'strong' | 'em' | 'u' | 'span', attrs?: Record<string, string>): void;
|
|
7
|
+
export declare function setBlockTag(root: HTMLElement, tag: 'p' | 'h1' | 'h2' | 'h3'): void;
|
|
8
|
+
export declare function setAlignment(root: HTMLElement, align: 'left' | 'center' | 'right' | 'justify'): void;
|
|
9
|
+
export declare function setFontFamily(root: HTMLElement, family: string): void;
|
|
10
|
+
export declare function setForeColor(editor: HTMLElement, hex: string): void;
|
|
11
|
+
export declare function setBackColor(editor: HTMLElement, hex: string): void;
|
|
12
|
+
export declare function toggleList(root: HTMLElement, kind: 'ul' | 'ol'): void;
|
|
13
|
+
export declare function insertOrEditLink(root: HTMLElement, href?: string): void;
|
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
export function closestBlock(node, root) {
|
|
2
|
+
while (node && node !== root) {
|
|
3
|
+
if (node instanceof HTMLElement) {
|
|
4
|
+
const display = getComputedStyle(node).display;
|
|
5
|
+
if (node.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/) ||
|
|
6
|
+
display === 'block' ||
|
|
7
|
+
display === 'list-item') {
|
|
8
|
+
return node;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
node = node?.parentNode || null;
|
|
12
|
+
}
|
|
13
|
+
return root;
|
|
14
|
+
}
|
|
15
|
+
export function nearestElement(n) {
|
|
16
|
+
while (n && !(n instanceof HTMLElement))
|
|
17
|
+
n = n.parentNode;
|
|
18
|
+
return n;
|
|
19
|
+
}
|
|
20
|
+
export function rgbToHex(rgb) {
|
|
21
|
+
const m = rgb.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);
|
|
22
|
+
if (!m)
|
|
23
|
+
return '#000000';
|
|
24
|
+
const r = Number(m[1]).toString(16).padStart(2, '0');
|
|
25
|
+
const g = Number(m[2]).toString(16).padStart(2, '0');
|
|
26
|
+
const b = Number(m[3]).toString(16).padStart(2, '0');
|
|
27
|
+
return `#${r}${g}${b}`;
|
|
28
|
+
}
|
|
29
|
+
export function unwrap(node) {
|
|
30
|
+
const p = node.parentNode;
|
|
31
|
+
if (!p)
|
|
32
|
+
return;
|
|
33
|
+
while (node.firstChild)
|
|
34
|
+
p.insertBefore(node.firstChild, node);
|
|
35
|
+
p.removeChild(node);
|
|
36
|
+
}
|
|
37
|
+
export function surroundInline(range, tag, attrs) {
|
|
38
|
+
const wrap = document.createElement(tag);
|
|
39
|
+
if (attrs)
|
|
40
|
+
Object.entries(attrs).forEach(([k, v]) => wrap.setAttribute(k, v));
|
|
41
|
+
try {
|
|
42
|
+
range.surroundContents(wrap);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
const frag = range.extractContents();
|
|
46
|
+
wrap.appendChild(frag);
|
|
47
|
+
range.insertNode(wrap);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function unwrapAllMatching(node, root, matcher) {
|
|
51
|
+
let n = node.parentNode;
|
|
52
|
+
while (n && n !== root) {
|
|
53
|
+
if (n instanceof HTMLElement && matcher(n)) {
|
|
54
|
+
unwrap(n);
|
|
55
|
+
n = node.parentNode;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
n = n.parentNode;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export function toggleInlineTag(root, tag, attrs) {
|
|
62
|
+
const sel = document.getSelection();
|
|
63
|
+
if (!sel || sel.rangeCount === 0) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const range = sel.getRangeAt(0);
|
|
67
|
+
const aliases = {
|
|
68
|
+
strong: ['strong', 'b'],
|
|
69
|
+
em: ['em', 'i'],
|
|
70
|
+
u: ['u'],
|
|
71
|
+
span: ['span'],
|
|
72
|
+
};
|
|
73
|
+
const candidates = aliases[tag] ?? [tag];
|
|
74
|
+
function isMatchingInline(el) {
|
|
75
|
+
return candidates.includes(el.tagName.toLowerCase());
|
|
76
|
+
}
|
|
77
|
+
if (range.collapsed) {
|
|
78
|
+
let n = range.startContainer;
|
|
79
|
+
while (n && n !== root) {
|
|
80
|
+
if (n instanceof HTMLElement && isMatchingInline(n)) {
|
|
81
|
+
unwrapAllMatching(range.startContainer, root, isMatchingInline);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
n = n.parentNode;
|
|
85
|
+
}
|
|
86
|
+
const elm = document.createElement(tag);
|
|
87
|
+
if (attrs)
|
|
88
|
+
Object.entries(attrs).forEach(([k, v]) => elm.setAttribute(k, v));
|
|
89
|
+
elm.appendChild(document.createTextNode('\u200b'));
|
|
90
|
+
range.insertNode(elm);
|
|
91
|
+
const r = document.createRange();
|
|
92
|
+
r.setStart(elm.firstChild, 1);
|
|
93
|
+
r.collapse(true);
|
|
94
|
+
sel.removeAllRanges();
|
|
95
|
+
sel.addRange(r);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const startBlock = closestBlock(range.startContainer, root);
|
|
99
|
+
const endBlock = closestBlock(range.endContainer, root);
|
|
100
|
+
if (startBlock && endBlock && startBlock !== endBlock) {
|
|
101
|
+
const blocks = [];
|
|
102
|
+
let node = startBlock;
|
|
103
|
+
while (node) {
|
|
104
|
+
if (node instanceof HTMLElement)
|
|
105
|
+
blocks.push(node);
|
|
106
|
+
if (node === endBlock)
|
|
107
|
+
break;
|
|
108
|
+
node = node.nextSibling;
|
|
109
|
+
}
|
|
110
|
+
blocks.forEach((block, i) => {
|
|
111
|
+
const r = document.createRange();
|
|
112
|
+
r.selectNodeContents(block);
|
|
113
|
+
const textNodes = [];
|
|
114
|
+
const tw = document.createTreeWalker(block, NodeFilter.SHOW_TEXT, null);
|
|
115
|
+
let tn;
|
|
116
|
+
while ((tn = tw.nextNode())) {
|
|
117
|
+
if (tn.nodeValue?.trim())
|
|
118
|
+
textNodes.push(tn);
|
|
119
|
+
}
|
|
120
|
+
const allWrapped = textNodes.length > 0 &&
|
|
121
|
+
textNodes.every(txt => {
|
|
122
|
+
let n = txt;
|
|
123
|
+
while (n && n !== block) {
|
|
124
|
+
if (n instanceof HTMLElement && isMatchingInline(n))
|
|
125
|
+
return true;
|
|
126
|
+
n = n.parentNode;
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
});
|
|
130
|
+
if (allWrapped) {
|
|
131
|
+
textNodes.forEach(txt => unwrapAllMatching(txt, block, isMatchingInline));
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
surroundInline(r, tag, attrs);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const walker = document.createTreeWalker(range.commonAncestorContainer, NodeFilter.SHOW_TEXT, {
|
|
140
|
+
acceptNode: n => {
|
|
141
|
+
if (!n.nodeValue || !n.nodeValue.trim())
|
|
142
|
+
return NodeFilter.FILTER_REJECT;
|
|
143
|
+
const nodeRange = document.createRange();
|
|
144
|
+
nodeRange.selectNodeContents(n);
|
|
145
|
+
const intersects = range.compareBoundaryPoints(Range.END_TO_START, nodeRange) <= 0 &&
|
|
146
|
+
range.compareBoundaryPoints(Range.START_TO_END, nodeRange) >= 0;
|
|
147
|
+
return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
const textNodes = [];
|
|
151
|
+
let t;
|
|
152
|
+
while ((t = walker.nextNode()))
|
|
153
|
+
textNodes.push(t);
|
|
154
|
+
if (textNodes.length === 0) {
|
|
155
|
+
let n = range.startContainer;
|
|
156
|
+
while (n && n !== root) {
|
|
157
|
+
if (n instanceof HTMLElement && isMatchingInline(n)) {
|
|
158
|
+
unwrapAllMatching(range.startContainer, root, isMatchingInline);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
n = n.parentNode;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const allWrapped = textNodes.length > 0 &&
|
|
165
|
+
textNodes.every(txt => {
|
|
166
|
+
let n = txt;
|
|
167
|
+
while (n && n !== root) {
|
|
168
|
+
if (n instanceof HTMLElement && isMatchingInline(n)) {
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
n = n.parentNode;
|
|
172
|
+
}
|
|
173
|
+
return false;
|
|
174
|
+
});
|
|
175
|
+
if (allWrapped) {
|
|
176
|
+
textNodes.forEach(txt => unwrapAllMatching(txt, root, isMatchingInline));
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
surroundInline(range, tag, attrs);
|
|
180
|
+
}
|
|
181
|
+
// restore selection
|
|
182
|
+
const selRange = document.createRange();
|
|
183
|
+
selRange.setStart(range.startContainer, range.startOffset);
|
|
184
|
+
selRange.setEnd(range.endContainer, range.endOffset);
|
|
185
|
+
sel.removeAllRanges();
|
|
186
|
+
sel.addRange(selRange);
|
|
187
|
+
}
|
|
188
|
+
export function setBlockTag(root, tag) {
|
|
189
|
+
const sel = document.getSelection();
|
|
190
|
+
if (!sel || sel.rangeCount === 0)
|
|
191
|
+
return;
|
|
192
|
+
const range = sel.getRangeAt(0);
|
|
193
|
+
const block = closestBlock(range.startContainer, root);
|
|
194
|
+
if (!block)
|
|
195
|
+
return;
|
|
196
|
+
if (block.tagName.toLowerCase() === tag)
|
|
197
|
+
return;
|
|
198
|
+
const nb = document.createElement(tag);
|
|
199
|
+
while (block.firstChild)
|
|
200
|
+
nb.appendChild(block.firstChild);
|
|
201
|
+
block.replaceWith(nb);
|
|
202
|
+
const r = document.createRange();
|
|
203
|
+
r.selectNodeContents(nb);
|
|
204
|
+
r.collapse(true);
|
|
205
|
+
sel.removeAllRanges();
|
|
206
|
+
sel.addRange(r);
|
|
207
|
+
}
|
|
208
|
+
export function setAlignment(root, align) {
|
|
209
|
+
const sel = document.getSelection();
|
|
210
|
+
if (!sel || sel.rangeCount === 0)
|
|
211
|
+
return;
|
|
212
|
+
const range = sel.getRangeAt(0);
|
|
213
|
+
let block = closestBlock(range.startContainer, root);
|
|
214
|
+
if (!block)
|
|
215
|
+
return;
|
|
216
|
+
if (block.tagName.toLowerCase() === 'li') {
|
|
217
|
+
block.style.textAlign = align;
|
|
218
|
+
const list = block.closest('ul,ol');
|
|
219
|
+
if (list)
|
|
220
|
+
list.style.textAlign = align;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
block.style.textAlign = align === 'justify' ? 'justify' : align;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
export function setFontFamily(root, family) {
|
|
227
|
+
const sel = document.getSelection();
|
|
228
|
+
if (!sel || sel.rangeCount === 0)
|
|
229
|
+
return;
|
|
230
|
+
const range = sel.getRangeAt(0);
|
|
231
|
+
if (range.collapsed) {
|
|
232
|
+
const span = document.createElement('span');
|
|
233
|
+
span.style.fontFamily = family;
|
|
234
|
+
span.appendChild(document.createTextNode('\u200b'));
|
|
235
|
+
range.insertNode(span);
|
|
236
|
+
const r = document.createRange();
|
|
237
|
+
r.setStart(span.firstChild, 1);
|
|
238
|
+
r.collapse(true);
|
|
239
|
+
sel.removeAllRanges();
|
|
240
|
+
sel.addRange(r);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
surroundInline(range, 'span', { style: `font-family:${family}` });
|
|
244
|
+
}
|
|
245
|
+
function enclosingStyledSpan(editor, node, dataAttr) {
|
|
246
|
+
while (node && node !== editor) {
|
|
247
|
+
if (node instanceof HTMLSpanElement && node.hasAttribute(dataAttr)) {
|
|
248
|
+
return node;
|
|
249
|
+
}
|
|
250
|
+
node = node.parentNode;
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
function applyInlineStyle(editor, cssProp, value, dataAttr) {
|
|
255
|
+
const sel = window.getSelection();
|
|
256
|
+
if (!sel || sel.rangeCount === 0)
|
|
257
|
+
return;
|
|
258
|
+
const r0 = sel.getRangeAt(0);
|
|
259
|
+
if (!editor.contains(r0.commonAncestorContainer))
|
|
260
|
+
return;
|
|
261
|
+
const range = r0.cloneRange();
|
|
262
|
+
if (range.collapsed) {
|
|
263
|
+
const enclosing = enclosingStyledSpan(editor, range.startContainer, dataAttr);
|
|
264
|
+
if (enclosing) {
|
|
265
|
+
enclosing.style[cssProp] = value;
|
|
266
|
+
mergeAdjacentStyledSpans(editor, dataAttr, cssProp);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const s = document.createElement('span');
|
|
270
|
+
s.setAttribute(dataAttr, '1');
|
|
271
|
+
s.style[cssProp] = value;
|
|
272
|
+
s.appendChild(document.createTextNode('\u200B'));
|
|
273
|
+
range.insertNode(s);
|
|
274
|
+
const caret = document.createRange();
|
|
275
|
+
caret.setStart(s.firstChild, 1);
|
|
276
|
+
caret.collapse(true);
|
|
277
|
+
sel.removeAllRanges();
|
|
278
|
+
sel.addRange(caret);
|
|
279
|
+
mergeAdjacentStyledSpans(editor, dataAttr, cssProp);
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
const leftEdge = enclosingStyledSpan(editor, range.startContainer, dataAttr);
|
|
283
|
+
const rightEdge = enclosingStyledSpan(editor, range.endContainer, dataAttr);
|
|
284
|
+
if (leftEdge && leftEdge === rightEdge) {
|
|
285
|
+
if (rangeCoversWholeNode(range, leftEdge)) {
|
|
286
|
+
leftEdge.style[cssProp] = value;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
const mid = splitAndRecolorWithinSpan(leftEdge, range, dataAttr, cssProp, value);
|
|
290
|
+
const sel = window.getSelection();
|
|
291
|
+
const r = document.createRange();
|
|
292
|
+
r.selectNodeContents(mid);
|
|
293
|
+
sel?.removeAllRanges();
|
|
294
|
+
sel?.addRange(r);
|
|
295
|
+
}
|
|
296
|
+
mergeAdjacentStyledSpans(editor, dataAttr, cssProp);
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
const commonEl = (() => {
|
|
300
|
+
let n = range.commonAncestorContainer;
|
|
301
|
+
while (n && !(n instanceof HTMLElement))
|
|
302
|
+
n = n.parentNode;
|
|
303
|
+
return n;
|
|
304
|
+
})();
|
|
305
|
+
const walker = document.createTreeWalker(commonEl || editor, NodeFilter.SHOW_TEXT, {
|
|
306
|
+
acceptNode: n => {
|
|
307
|
+
if (!n.nodeValue || !n.nodeValue.trim())
|
|
308
|
+
return NodeFilter.FILTER_REJECT;
|
|
309
|
+
const nodeRange = document.createRange();
|
|
310
|
+
nodeRange.selectNodeContents(n);
|
|
311
|
+
const intersects = range.compareBoundaryPoints(Range.END_TO_START, nodeRange) < 0 &&
|
|
312
|
+
range.compareBoundaryPoints(Range.START_TO_END, nodeRange) > 0;
|
|
313
|
+
return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
|
|
314
|
+
},
|
|
315
|
+
});
|
|
316
|
+
const toProcess = [];
|
|
317
|
+
let t;
|
|
318
|
+
while ((t = walker.nextNode()))
|
|
319
|
+
toProcess.push(t);
|
|
320
|
+
toProcess.forEach(text => {
|
|
321
|
+
let start = 0, end = text.length;
|
|
322
|
+
if (text === range.startContainer)
|
|
323
|
+
start = range.startOffset;
|
|
324
|
+
if (text === range.endContainer)
|
|
325
|
+
end = range.endOffset;
|
|
326
|
+
if (start > 0)
|
|
327
|
+
text = text.splitText(start);
|
|
328
|
+
if (end < text.length)
|
|
329
|
+
text.splitText(end);
|
|
330
|
+
const existing = enclosingStyledSpan(editor, text, dataAttr);
|
|
331
|
+
if (existing) {
|
|
332
|
+
existing.style[cssProp] = value;
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
const span = document.createElement('span');
|
|
336
|
+
span.setAttribute(dataAttr, '1');
|
|
337
|
+
span.style[cssProp] = value;
|
|
338
|
+
const parent = text.parentElement;
|
|
339
|
+
parent.replaceChild(span, text);
|
|
340
|
+
span.appendChild(text);
|
|
341
|
+
});
|
|
342
|
+
mergeAdjacentStyledSpans(editor, dataAttr, cssProp);
|
|
343
|
+
// restore selection
|
|
344
|
+
sel.removeAllRanges();
|
|
345
|
+
sel.addRange(range);
|
|
346
|
+
}
|
|
347
|
+
// Is the range covering the entire node's contents?
|
|
348
|
+
function rangeCoversWholeNode(range, node) {
|
|
349
|
+
const all = document.createRange();
|
|
350
|
+
all.selectNodeContents(node);
|
|
351
|
+
return (range.compareBoundaryPoints(Range.START_TO_START, all) <= 0 &&
|
|
352
|
+
range.compareBoundaryPoints(Range.END_TO_END, all) >= 0);
|
|
353
|
+
}
|
|
354
|
+
function hasRangeContent(r) {
|
|
355
|
+
if (r.collapsed)
|
|
356
|
+
return false;
|
|
357
|
+
const text = r.cloneContents().textContent || '';
|
|
358
|
+
return text.length > 0;
|
|
359
|
+
}
|
|
360
|
+
// Split one styled span into [left][middle][right]; recolor only middle
|
|
361
|
+
function splitAndRecolorWithinSpan(span, range, dataAttr, cssProp, newValue) {
|
|
362
|
+
const oldValue = span.style[cssProp];
|
|
363
|
+
const left = document.createRange();
|
|
364
|
+
left.setStart(span, 0);
|
|
365
|
+
left.setEnd(range.startContainer, range.startOffset);
|
|
366
|
+
const right = document.createRange();
|
|
367
|
+
right.setStart(range.endContainer, range.endOffset);
|
|
368
|
+
right.setEnd(span, span.childNodes.length);
|
|
369
|
+
// Build replacement fragment
|
|
370
|
+
const frag = document.createDocumentFragment();
|
|
371
|
+
// helper to make a styled clone shell
|
|
372
|
+
const makeShell = (val) => {
|
|
373
|
+
const s = document.createElement('span');
|
|
374
|
+
s.setAttribute(dataAttr, '1');
|
|
375
|
+
s.style[cssProp] = val;
|
|
376
|
+
return s;
|
|
377
|
+
};
|
|
378
|
+
if (hasRangeContent(left)) {
|
|
379
|
+
const sLeft = makeShell(oldValue);
|
|
380
|
+
sLeft.appendChild(left.cloneContents());
|
|
381
|
+
frag.appendChild(sLeft);
|
|
382
|
+
}
|
|
383
|
+
const mid = makeShell(newValue);
|
|
384
|
+
mid.appendChild(range.cloneContents());
|
|
385
|
+
frag.appendChild(mid);
|
|
386
|
+
if (hasRangeContent(right)) {
|
|
387
|
+
const sRight = makeShell(oldValue);
|
|
388
|
+
sRight.appendChild(right.cloneContents());
|
|
389
|
+
frag.appendChild(sRight);
|
|
390
|
+
}
|
|
391
|
+
span.replaceWith(frag);
|
|
392
|
+
return mid;
|
|
393
|
+
}
|
|
394
|
+
function mergeAdjacentStyledSpans(root, dataAttr, cssProp) {
|
|
395
|
+
const spans = Array.from(root.querySelectorAll(`span[${dataAttr}]`));
|
|
396
|
+
const valOf = (el) => el.style[cssProp];
|
|
397
|
+
spans.forEach(s => {
|
|
398
|
+
const nested = Array.from(s.querySelectorAll(`span[${dataAttr}]`));
|
|
399
|
+
nested.forEach(child => {
|
|
400
|
+
if (valOf(child) === valOf(s)) {
|
|
401
|
+
while (child.firstChild)
|
|
402
|
+
s.insertBefore(child.firstChild, child);
|
|
403
|
+
child.remove();
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
const prev = s.previousSibling;
|
|
407
|
+
if (prev instanceof HTMLSpanElement &&
|
|
408
|
+
prev.hasAttribute(dataAttr) &&
|
|
409
|
+
valOf(prev) === valOf(s)) {
|
|
410
|
+
while (s.firstChild)
|
|
411
|
+
prev.appendChild(s.firstChild);
|
|
412
|
+
s.remove();
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
const next = s.nextSibling;
|
|
416
|
+
if (next instanceof HTMLSpanElement &&
|
|
417
|
+
next.hasAttribute(dataAttr) &&
|
|
418
|
+
valOf(next) === valOf(s)) {
|
|
419
|
+
while (next.firstChild)
|
|
420
|
+
s.appendChild(next.firstChild);
|
|
421
|
+
next.remove();
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
export function setForeColor(editor, hex) {
|
|
426
|
+
applyInlineStyle(editor, 'color', hex, 'data-rte-color');
|
|
427
|
+
}
|
|
428
|
+
export function setBackColor(editor, hex) {
|
|
429
|
+
applyInlineStyle(editor, 'backgroundColor', hex, 'data-rte-bg');
|
|
430
|
+
}
|
|
431
|
+
export function toggleList(root, kind) {
|
|
432
|
+
const sel = document.getSelection();
|
|
433
|
+
if (!sel || sel.rangeCount === 0)
|
|
434
|
+
return;
|
|
435
|
+
const range = sel.getRangeAt(0);
|
|
436
|
+
const blocks = [];
|
|
437
|
+
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
|
|
438
|
+
acceptNode: n => {
|
|
439
|
+
if (!(n instanceof HTMLElement))
|
|
440
|
+
return NodeFilter.FILTER_SKIP;
|
|
441
|
+
if (!/^(P|DIV|LI|H[1-6])$/.test(n.tagName))
|
|
442
|
+
return NodeFilter.FILTER_SKIP;
|
|
443
|
+
const r = document.createRange();
|
|
444
|
+
r.selectNodeContents(n);
|
|
445
|
+
const intersects = range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&
|
|
446
|
+
range.compareBoundaryPoints(Range.START_TO_END, r) > 0;
|
|
447
|
+
return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
|
|
448
|
+
},
|
|
449
|
+
});
|
|
450
|
+
let n;
|
|
451
|
+
while ((n = walker.nextNode())) {
|
|
452
|
+
blocks.push(n);
|
|
453
|
+
}
|
|
454
|
+
if (blocks.length === 0) {
|
|
455
|
+
const block = closestBlock(range.startContainer, root);
|
|
456
|
+
if (block)
|
|
457
|
+
blocks.push(block);
|
|
458
|
+
}
|
|
459
|
+
const firstLi = blocks[0].closest('li');
|
|
460
|
+
if (firstLi) {
|
|
461
|
+
const currentList = firstLi.closest('ul,ol');
|
|
462
|
+
if (!currentList)
|
|
463
|
+
return;
|
|
464
|
+
if (currentList.tagName.toLowerCase() === kind) {
|
|
465
|
+
const frag = document.createDocumentFragment();
|
|
466
|
+
for (const li of Array.from(currentList.querySelectorAll('li'))) {
|
|
467
|
+
const p = document.createElement('p');
|
|
468
|
+
while (li.firstChild)
|
|
469
|
+
p.appendChild(li.firstChild);
|
|
470
|
+
frag.appendChild(p);
|
|
471
|
+
}
|
|
472
|
+
currentList.replaceWith(frag);
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
const newList = document.createElement(kind);
|
|
476
|
+
while (currentList.firstChild)
|
|
477
|
+
newList.appendChild(currentList.firstChild);
|
|
478
|
+
currentList.replaceWith(newList);
|
|
479
|
+
}
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
const newList = document.createElement(kind);
|
|
483
|
+
for (const block of blocks) {
|
|
484
|
+
const li = document.createElement('li');
|
|
485
|
+
while (block.firstChild)
|
|
486
|
+
li.appendChild(block.firstChild);
|
|
487
|
+
newList.appendChild(li);
|
|
488
|
+
block.replaceWith(newList);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
export function insertOrEditLink(root, href) {
|
|
492
|
+
const sel = document.getSelection();
|
|
493
|
+
if (!sel || sel.rangeCount === 0)
|
|
494
|
+
return;
|
|
495
|
+
const range = sel.getRangeAt(0);
|
|
496
|
+
let n = range.startContainer;
|
|
497
|
+
let a = null;
|
|
498
|
+
while (n && n !== root) {
|
|
499
|
+
if (n instanceof HTMLAnchorElement) {
|
|
500
|
+
a = n;
|
|
501
|
+
break;
|
|
502
|
+
}
|
|
503
|
+
n = n.parentNode;
|
|
504
|
+
}
|
|
505
|
+
const url = href ??
|
|
506
|
+
(typeof window !== 'undefined'
|
|
507
|
+
? window.prompt('Enter URL', a?.href || 'https://') || ''
|
|
508
|
+
: '');
|
|
509
|
+
if (!url)
|
|
510
|
+
return;
|
|
511
|
+
if (a) {
|
|
512
|
+
a.href = url;
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
if (range.collapsed) {
|
|
516
|
+
const link = document.createElement('a');
|
|
517
|
+
link.href = url;
|
|
518
|
+
link.textContent = url;
|
|
519
|
+
range.insertNode(link);
|
|
520
|
+
const r = document.createRange();
|
|
521
|
+
r.setStartAfter(link);
|
|
522
|
+
r.collapse(true);
|
|
523
|
+
sel.removeAllRanges();
|
|
524
|
+
sel.addRange(r);
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
const link = document.createElement('a');
|
|
528
|
+
link.href = url;
|
|
529
|
+
try {
|
|
530
|
+
range.surroundContents(link);
|
|
531
|
+
}
|
|
532
|
+
catch {
|
|
533
|
+
const frag = range.extractContents();
|
|
534
|
+
link.appendChild(frag);
|
|
535
|
+
range.insertNode(link);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
//# sourceMappingURL=utils.js.map
|