@pine-ds/core 3.26.1 → 3.26.4
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/components/mock-pds-modal.js +1 -1
- package/components/mock-pds-modal.js.map +1 -1
- package/components/pds-button2.js +1 -1
- package/components/pds-button2.js.map +1 -1
- package/components/pds-checkbox2.js +1 -1
- package/components/pds-checkbox2.js.map +1 -1
- package/components/pds-combobox.js +3 -3
- package/components/pds-combobox.js.map +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-dropdown-menu.js.map +1 -1
- package/components/pds-filter.js +14 -10
- package/components/pds-filter.js.map +1 -1
- package/components/pds-input.js +5 -2
- package/components/pds-input.js.map +1 -1
- package/components/pds-modal.js +1 -1
- package/components/pds-modal.js.map +1 -1
- package/components/pds-multiselect.js +1 -1
- package/components/pds-multiselect.js.map +1 -1
- package/components/pds-popover.js +2 -2
- package/components/pds-popover.js.map +1 -1
- package/components/pds-radio.js +1 -1
- package/components/pds-radio.js.map +1 -1
- package/components/pds-select.js +1 -1
- package/components/pds-select.js.map +1 -1
- package/components/pds-switch.js +1 -1
- package/components/pds-switch.js.map +1 -1
- package/components/pds-table-cell2.js +5 -4
- package/components/pds-table-cell2.js.map +1 -1
- package/components/pds-table-head-cell2.js +5 -4
- package/components/pds-table-head-cell2.js.map +1 -1
- package/components/pds-table.js +12 -10
- package/components/pds-table.js.map +1 -1
- package/components/pds-toast.js +42 -6
- package/components/pds-toast.js.map +1 -1
- package/components/pds-tooltip.js +1 -1
- package/components/pds-tooltip.js.map +1 -1
- package/components/scroll.js +78 -0
- package/components/scroll.js.map +1 -0
- package/dist/cjs/{index-Dlc5O3n_.js → index-BUvWX8u2.js} +3 -3
- package/dist/cjs/index-BUvWX8u2.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mock-pds-modal.cjs.entry.js +2 -2
- package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
- package/dist/cjs/pds-alert.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
- package/dist/cjs/pds-box.cjs.entry.js +1 -1
- package/dist/cjs/pds-button.cjs.entry.js +2 -2
- package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-chip.cjs.entry.js +1 -1
- package/dist/cjs/pds-combobox.cjs.entry.js +4 -4
- package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-container.cjs.entry.js +1 -1
- package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
- package/dist/cjs/pds-divider.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +2 -2
- package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-filter.cjs.entry.js +15 -11
- package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-filters.cjs.entry.js +1 -1
- package/dist/cjs/pds-icon.cjs.entry.js +1 -1
- package/dist/cjs/pds-image.cjs.entry.js +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +6 -3
- package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-link.cjs.entry.js +1 -1
- package/dist/cjs/pds-loader.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-content.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal.cjs.entry.js +2 -2
- package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-multiselect.cjs.entry.js +2 -2
- package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-popover.cjs.entry.js +3 -3
- package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-progress.cjs.entry.js +1 -1
- package/dist/cjs/pds-property.cjs.entry.js +1 -1
- package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/pds-radio.cjs.entry.js +2 -2
- package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-select.cjs.entry.js +2 -2
- package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +2 -2
- package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-tab.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +6 -5
- package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +6 -5
- package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-table.cjs.entry.js +13 -11
- package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
- package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
- package/dist/cjs/pds-text.cjs.entry.js +1 -1
- package/dist/cjs/pds-textarea.cjs.entry.js +1 -1
- package/dist/cjs/pds-toast.cjs.entry.js +43 -7
- package/dist/cjs/pds-toast.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/pds-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/cjs/scroll-2XcoE_6Q.js +82 -0
- package/dist/cjs/scroll-2XcoE_6Q.js.map +1 -0
- package/dist/collection/components/pds-button/pds-button.css +1 -1
- package/dist/collection/components/pds-checkbox/pds-checkbox.css +10 -6
- package/dist/collection/components/pds-combobox/pds-combobox.css +4 -4
- package/dist/collection/components/pds-combobox/pds-combobox.js +2 -2
- package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +13 -11
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +13 -9
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +1 -1
- package/dist/collection/components/pds-input/pds-input.css +8 -4
- package/dist/collection/components/pds-input/pds-input.js +4 -1
- package/dist/collection/components/pds-input/pds-input.js.map +1 -1
- package/dist/collection/components/pds-modal/pds-modal.css +3 -2
- package/dist/collection/components/pds-multiselect/pds-multiselect.css +2 -2
- package/dist/collection/components/pds-popover/pds-popover.js +2 -2
- package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
- package/dist/collection/components/pds-radio/pds-radio.css +1 -1
- package/dist/collection/components/pds-select/pds-select.css +8 -5
- package/dist/collection/components/pds-switch/pds-switch.css +4 -4
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +6 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +4 -3
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +1 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +6 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +4 -3
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
- package/dist/collection/components/pds-table/pds-table.css +16 -6
- package/dist/collection/components/pds-table/pds-table.js +11 -9
- package/dist/collection/components/pds-table/pds-table.js.map +1 -1
- package/dist/collection/components/pds-toast/pds-toast.css +2 -2
- package/dist/collection/components/pds-toast/pds-toast.js +41 -5
- package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
- package/dist/collection/components/pds-tooltip/pds-tooltip.css +2 -1
- package/dist/collection/utils/scroll.js +78 -0
- package/dist/collection/utils/scroll.js.map +1 -0
- package/dist/collection/utils/test/axe.js +101 -0
- package/dist/collection/utils/test/axe.js.map +1 -0
- package/dist/docs.json +1 -1
- package/dist/esm/{index-CO9kz-Pi.js → index-B2f84Zog.js} +3 -3
- package/dist/esm/index-B2f84Zog.js.map +1 -0
- package/dist/esm/loader.js +2 -2
- package/dist/esm/mock-pds-modal.entry.js +2 -2
- package/dist/esm/mock-pds-modal.entry.js.map +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-alert.entry.js +1 -1
- package/dist/esm/pds-avatar.entry.js +1 -1
- package/dist/esm/pds-box.entry.js +1 -1
- package/dist/esm/pds-button.entry.js +2 -2
- package/dist/esm/pds-button.entry.js.map +1 -1
- package/dist/esm/pds-checkbox.entry.js +2 -2
- package/dist/esm/pds-checkbox.entry.js.map +1 -1
- package/dist/esm/pds-chip.entry.js +1 -1
- package/dist/esm/pds-combobox.entry.js +4 -4
- package/dist/esm/pds-combobox.entry.js.map +1 -1
- package/dist/esm/pds-container.entry.js +1 -1
- package/dist/esm/pds-copytext.entry.js +1 -1
- package/dist/esm/pds-divider.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js +2 -2
- package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
- package/dist/esm/pds-filter.entry.js +15 -11
- package/dist/esm/pds-filter.entry.js.map +1 -1
- package/dist/esm/pds-filters.entry.js +1 -1
- package/dist/esm/pds-icon.entry.js +1 -1
- package/dist/esm/pds-image.entry.js +1 -1
- package/dist/esm/pds-input.entry.js +6 -3
- package/dist/esm/pds-input.entry.js.map +1 -1
- package/dist/esm/pds-link.entry.js +1 -1
- package/dist/esm/pds-loader.entry.js +1 -1
- package/dist/esm/pds-modal-content.entry.js +1 -1
- package/dist/esm/pds-modal-footer.entry.js +1 -1
- package/dist/esm/pds-modal-header.entry.js +1 -1
- package/dist/esm/pds-modal.entry.js +2 -2
- package/dist/esm/pds-modal.entry.js.map +1 -1
- package/dist/esm/pds-multiselect.entry.js +2 -2
- package/dist/esm/pds-multiselect.entry.js.map +1 -1
- package/dist/esm/pds-popover.entry.js +3 -3
- package/dist/esm/pds-popover.entry.js.map +1 -1
- package/dist/esm/pds-progress.entry.js +1 -1
- package/dist/esm/pds-property.entry.js +1 -1
- package/dist/esm/pds-radio-group.entry.js +1 -1
- package/dist/esm/pds-radio.entry.js +2 -2
- package/dist/esm/pds-radio.entry.js.map +1 -1
- package/dist/esm/pds-row.entry.js +1 -1
- package/dist/esm/pds-select.entry.js +2 -2
- package/dist/esm/pds-select.entry.js.map +1 -1
- package/dist/esm/pds-sortable-item.entry.js +1 -1
- package/dist/esm/pds-sortable.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +2 -2
- package/dist/esm/pds-switch.entry.js.map +1 -1
- package/dist/esm/pds-tab.entry.js +1 -1
- package/dist/esm/pds-table-body.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js +6 -5
- package/dist/esm/pds-table-cell.entry.js.map +1 -1
- package/dist/esm/pds-table-head-cell.entry.js +6 -5
- package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-row.entry.js +1 -1
- package/dist/esm/pds-table.entry.js +13 -11
- package/dist/esm/pds-table.entry.js.map +1 -1
- package/dist/esm/pds-tabpanel.entry.js +1 -1
- package/dist/esm/pds-tabs.entry.js +1 -1
- package/dist/esm/pds-text.entry.js +1 -1
- package/dist/esm/pds-textarea.entry.js +1 -1
- package/dist/esm/pds-toast.entry.js +43 -7
- package/dist/esm/pds-toast.entry.js.map +1 -1
- package/dist/esm/pds-tooltip.entry.js +2 -2
- package/dist/esm/pds-tooltip.entry.js.map +1 -1
- package/dist/esm/pine-core.js +2 -2
- package/dist/esm/scroll-DtgUQhjl.js +78 -0
- package/dist/esm/scroll-DtgUQhjl.js.map +1 -0
- package/dist/esm-es5/index-B2f84Zog.js +3 -0
- package/dist/esm-es5/index-B2f84Zog.js.map +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
- package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
- package/dist/esm-es5/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-alert.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-box.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js.map +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
- package/dist/esm-es5/pds-chip.entry.js +1 -1
- package/dist/esm-es5/pds-combobox.entry.js +2 -2
- package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
- package/dist/esm-es5/pds-container.entry.js +1 -1
- package/dist/esm-es5/pds-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-divider.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
- package/dist/esm-es5/pds-filter.entry.js +1 -1
- package/dist/esm-es5/pds-filter.entry.js.map +1 -1
- package/dist/esm-es5/pds-filters.entry.js +1 -1
- package/dist/esm-es5/pds-icon.entry.js +1 -1
- package/dist/esm-es5/pds-image.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js.map +1 -1
- package/dist/esm-es5/pds-link.entry.js +1 -1
- package/dist/esm-es5/pds-loader.entry.js +1 -1
- package/dist/esm-es5/pds-modal-content.entry.js +1 -1
- package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
- package/dist/esm-es5/pds-modal-header.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js.map +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js.map +1 -1
- package/dist/esm-es5/pds-popover.entry.js +1 -1
- package/dist/esm-es5/pds-popover.entry.js.map +1 -1
- package/dist/esm-es5/pds-progress.entry.js +1 -1
- package/dist/esm-es5/pds-property.entry.js +1 -1
- package/dist/esm-es5/pds-radio-group.entry.js +1 -1
- package/dist/esm-es5/pds-radio.entry.js +1 -1
- package/dist/esm-es5/pds-radio.entry.js.map +1 -1
- package/dist/esm-es5/pds-row.entry.js +1 -1
- package/dist/esm-es5/pds-select.entry.js +1 -1
- package/dist/esm-es5/pds-select.entry.js.map +1 -1
- package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
- package/dist/esm-es5/pds-sortable.entry.js +1 -1
- package/dist/esm-es5/pds-switch.entry.js +1 -1
- package/dist/esm-es5/pds-switch.entry.js.map +1 -1
- package/dist/esm-es5/pds-tab.entry.js +1 -1
- package/dist/esm-es5/pds-table-body.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
- package/dist/esm-es5/pds-table-head.entry.js +1 -1
- package/dist/esm-es5/pds-table-row.entry.js +1 -1
- package/dist/esm-es5/pds-table.entry.js +1 -1
- package/dist/esm-es5/pds-table.entry.js.map +1 -1
- package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
- package/dist/esm-es5/pds-tabs.entry.js +1 -1
- package/dist/esm-es5/pds-text.entry.js +1 -1
- package/dist/esm-es5/pds-textarea.entry.js +1 -1
- package/dist/esm-es5/pds-toast.entry.js +1 -1
- package/dist/esm-es5/pds-toast.entry.js.map +1 -1
- package/dist/esm-es5/pds-tooltip.entry.js +1 -1
- package/dist/esm-es5/pds-tooltip.entry.js.map +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/esm-es5/scroll-DtgUQhjl.js +2 -0
- package/dist/esm-es5/scroll-DtgUQhjl.js.map +1 -0
- package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
- package/dist/pine-core/p-037dbdcd.system.entry.js +2 -0
- package/dist/pine-core/{p-fd6e7155.entry.js → p-06713f25.entry.js} +2 -2
- package/dist/pine-core/{p-4710c59d.entry.js → p-0977b2dd.entry.js} +2 -2
- package/dist/pine-core/{p-c5dc1e2d.system.entry.js → p-099e9f9b.system.entry.js} +2 -2
- package/dist/pine-core/p-0a7115f0.entry.js +2 -0
- package/dist/pine-core/{p-88c2001b.entry.js.map → p-0a7115f0.entry.js.map} +1 -1
- package/dist/pine-core/{p-2c7f3d5e.system.entry.js → p-0c1ab384.system.entry.js} +2 -2
- package/dist/pine-core/{p-2c2d2080.system.entry.js → p-0dee7449.system.entry.js} +2 -2
- package/dist/pine-core/{p-128a483e.system.entry.js → p-102d0dd6.system.entry.js} +2 -2
- package/dist/pine-core/p-10ebecc5.entry.js +2 -0
- package/dist/pine-core/{p-d90f7fe4.entry.js.map → p-10ebecc5.entry.js.map} +1 -1
- package/dist/pine-core/{p-0bf1fee1.entry.js → p-1598f3af.entry.js} +2 -2
- package/dist/pine-core/{p-3524e30c.system.entry.js → p-1c32102e.system.entry.js} +2 -2
- package/dist/pine-core/p-2258b31b.system.entry.js +2 -0
- package/dist/pine-core/{p-24f9a03b.system.entry.js.map → p-2258b31b.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-c424a27a.system.entry.js → p-275fa74c.system.entry.js} +2 -2
- package/dist/pine-core/p-27fc0737.system.entry.js +2 -0
- package/dist/pine-core/{p-c746c9ad.system.entry.js.map → p-27fc0737.system.entry.js.map} +1 -1
- package/dist/pine-core/p-32ad2807.system.entry.js +2 -0
- package/dist/pine-core/{p-cb733c9c.system.entry.js.map → p-32ad2807.system.entry.js.map} +1 -1
- package/dist/pine-core/p-33544ed1.system.entry.js +2 -0
- package/dist/pine-core/{p-617dc902.system.entry.js.map → p-33544ed1.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-a713fedd.system.entry.js → p-34763aae.system.entry.js} +2 -2
- package/dist/pine-core/{p-ed781905.system.entry.js → p-36070380.system.entry.js} +2 -2
- package/dist/pine-core/{p-8b997cb3.entry.js → p-3625bc45.entry.js} +2 -2
- package/dist/pine-core/{p-205d8c56.entry.js → p-3b087f24.entry.js} +2 -2
- package/dist/pine-core/p-3f66c070.entry.js +2 -0
- package/dist/pine-core/{p-b63c7247.entry.js.map → p-3f66c070.entry.js.map} +1 -1
- package/dist/pine-core/p-407aad2b.system.entry.js +2 -0
- package/dist/pine-core/{p-4993f30e.system.entry.js.map → p-407aad2b.system.entry.js.map} +1 -1
- package/dist/pine-core/p-44ca9b92.entry.js +2 -0
- package/dist/pine-core/{p-ec974e1d.entry.js.map → p-44ca9b92.entry.js.map} +1 -1
- package/dist/pine-core/{p-26aa3195.entry.js → p-476db791.entry.js} +2 -2
- package/dist/pine-core/{p-9d7f17a4.system.entry.js → p-4780403d.system.entry.js} +2 -2
- package/dist/pine-core/p-48ac6873.entry.js +2 -0
- package/dist/pine-core/{p-61674647.entry.js.map → p-48ac6873.entry.js.map} +1 -1
- package/dist/pine-core/p-4FBDaIH3.system.js.map +1 -0
- package/dist/pine-core/{p-06fbdc35.entry.js → p-4ede20e6.entry.js} +2 -2
- package/dist/pine-core/{p-f4662c9d.system.entry.js → p-4f2a48cb.system.entry.js} +2 -2
- package/dist/pine-core/{p-f4662c9d.system.entry.js.map → p-4f2a48cb.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-1768ad5e.entry.js → p-4f440dd4.entry.js} +2 -2
- package/dist/pine-core/{p-0mArGKTT.system.js.map → p-4jrX5aRd.system.js.map} +1 -1
- package/dist/pine-core/p-51e47e6e.system.entry.js +2 -0
- package/dist/pine-core/{p-13a814c0.system.entry.js.map → p-51e47e6e.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-a76a454f.system.entry.js → p-52411757.system.entry.js} +2 -2
- package/dist/pine-core/p-557005a0.entry.js +2 -0
- package/dist/pine-core/p-557005a0.entry.js.map +1 -0
- package/dist/pine-core/{p-519d44b8.entry.js → p-5e117b98.entry.js} +2 -2
- package/dist/pine-core/p-639012b9.system.entry.js +2 -0
- package/dist/pine-core/{p-a12e38aa.system.entry.js.map → p-639012b9.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-3c864e3d.entry.js → p-643b01ad.entry.js} +2 -2
- package/dist/pine-core/p-6623b257.system.entry.js +2 -0
- package/dist/pine-core/{p-7bc34bce.system.entry.js.map → p-6623b257.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-5552ca6b.system.entry.js → p-74ff4d96.system.entry.js} +2 -2
- package/dist/pine-core/{p-952b41e5.system.entry.js → p-77327e1b.system.entry.js} +2 -2
- package/dist/pine-core/{p-0561744f.entry.js → p-774ecbd4.entry.js} +2 -2
- package/dist/pine-core/{p-932f4860.entry.js → p-7926dc93.entry.js} +2 -2
- package/dist/pine-core/p-7a3eccef.entry.js +2 -0
- package/dist/pine-core/{p-be76de9e.entry.js.map → p-7a3eccef.entry.js.map} +1 -1
- package/dist/pine-core/{p-1fd52c1b.system.entry.js → p-7acb131c.system.entry.js} +2 -2
- package/dist/pine-core/p-81a3e32b.entry.js +2 -0
- package/dist/pine-core/p-81a3e32b.entry.js.map +1 -0
- package/dist/pine-core/{p-f30bde36.system.entry.js → p-848763b6.system.entry.js} +2 -2
- package/dist/pine-core/{p-90126a46.system.entry.js → p-85e889c3.system.entry.js} +3 -3
- package/dist/pine-core/{p-bf1ab568.system.entry.js → p-8669e0e3.system.entry.js} +2 -2
- package/dist/pine-core/{p-4cf4558e.entry.js → p-8735cb58.entry.js} +2 -2
- package/dist/pine-core/p-8b3aeaf9.system.entry.js +2 -0
- package/dist/pine-core/p-8b3aeaf9.system.entry.js.map +1 -0
- package/dist/pine-core/p-8b7aa53d.entry.js +2 -0
- package/dist/pine-core/{p-bb4bb3a7.entry.js.map → p-8b7aa53d.entry.js.map} +1 -1
- package/dist/pine-core/p-8c97fcb1.entry.js +2 -0
- package/dist/pine-core/{p-8d0c1f6d.entry.js.map → p-8c97fcb1.entry.js.map} +1 -1
- package/dist/pine-core/p-8c9f8ca6.entry.js +2 -0
- package/dist/pine-core/p-8c9f8ca6.entry.js.map +1 -0
- package/dist/pine-core/{p-2ca648d8.system.entry.js → p-904e8d9d.system.entry.js} +2 -2
- package/dist/pine-core/{p-5eb9a3e2.entry.js → p-91bea052.entry.js} +2 -2
- package/dist/pine-core/p-9230df2a.system.entry.js +2 -0
- package/dist/pine-core/{p-c7246fe4.system.entry.js.map → p-9230df2a.system.entry.js.map} +1 -1
- package/dist/pine-core/p-94a09b06.entry.js +2 -0
- package/dist/pine-core/p-94a09b06.entry.js.map +1 -0
- package/dist/pine-core/p-94d4d1de.entry.js +3 -0
- package/dist/pine-core/{p-127a84bf.entry.js.map → p-94d4d1de.entry.js.map} +1 -1
- package/dist/pine-core/{p-13821696.entry.js → p-984db3fc.entry.js} +2 -2
- package/dist/pine-core/{p-69221099.system.entry.js → p-988d1723.system.entry.js} +2 -2
- package/dist/pine-core/p-98dabbbf.entry.js +2 -0
- package/dist/pine-core/{p-61c885c7.entry.js.map → p-98dabbbf.entry.js.map} +1 -1
- package/dist/pine-core/{p-0f037132.system.entry.js → p-9a3c9d15.system.entry.js} +2 -2
- package/dist/pine-core/{p-63fd14b1.system.entry.js → p-9b3aedeb.system.entry.js} +2 -2
- package/dist/pine-core/{p-94fde072.system.entry.js → p-9ce56712.system.entry.js} +2 -2
- package/dist/pine-core/p-9e48d1ea.system.entry.js +2 -0
- package/dist/pine-core/{p-93b379c2.system.entry.js.map → p-9e48d1ea.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-5df670e9.entry.js → p-9e5c58c6.entry.js} +3 -3
- package/dist/pine-core/p-B-I9BXj1.system.js.map +1 -0
- package/dist/pine-core/{p-A6hgZgB9.system.js.map → p-B-nnQT8K.system.js.map} +1 -1
- package/dist/pine-core/{p-CO9kz-Pi.js → p-B2f84Zog.js} +3 -3
- package/dist/pine-core/p-B2f84Zog.js.map +1 -0
- package/dist/pine-core/{p-MtzjfzAh.system.js.map → p-BC7kndqW.system.js.map} +1 -1
- package/dist/pine-core/p-BFAhunk3.system.js.map +1 -0
- package/dist/pine-core/{p-D2CTdoEq.system.js.map → p-BJQiqlL7.system.js.map} +1 -1
- package/dist/pine-core/{p-DWrLi0lj.system.js.map → p-BLg534X3.system.js.map} +1 -1
- package/dist/pine-core/{p-B2EsHCoA.system.js.map → p-BT-iITx_.system.js.map} +1 -1
- package/dist/pine-core/p-BTsajr3h.system.js.map +1 -0
- package/dist/pine-core/{p-5MZ-y5Ap.system.js.map → p-BcCpTdwz.system.js.map} +1 -1
- package/dist/pine-core/p-Bkk7A0W9.system.js.map +1 -0
- package/dist/pine-core/{p-CeUxuw8r.system.js.map → p-BmOvsRx7.system.js.map} +1 -1
- package/dist/pine-core/{p-sB8ZB68H.system.js.map → p-BtfqzsXS.system.js.map} +1 -1
- package/dist/pine-core/p-BvJkwltO.system.js.map +1 -0
- package/dist/pine-core/{p-DxU4fApL.system.js.map → p-BvV4-w8H.system.js.map} +1 -1
- package/dist/pine-core/{p-1S7sNRrT.system.js.map → p-C3TuSlI7.system.js.map} +1 -1
- package/dist/pine-core/p-C5jXV4WJ.system.js.map +1 -0
- package/dist/pine-core/p-C5qxTQb1.system.js.map +1 -0
- package/dist/pine-core/p-C6yvFUy3.system.js.map +1 -0
- package/dist/pine-core/{p-Cng7Mtub.system.js.map → p-CCRLZO4N.system.js.map} +1 -1
- package/dist/pine-core/{p-Bm0i20zh.system.js.map → p-CD-PjU09.system.js.map} +1 -1
- package/dist/pine-core/{p-BYHypIS4.system.js.map → p-CI-oL5TR.system.js.map} +1 -1
- package/dist/pine-core/{p-DkENjswB.system.js.map → p-CIbXcB4O.system.js.map} +1 -1
- package/dist/pine-core/p-CIe6-SsT.system.js.map +1 -0
- package/dist/pine-core/{p-D4yK_qVB.system.js.map → p-CSVND2Gt.system.js.map} +1 -1
- package/dist/pine-core/{p-BD9ysh2r.system.js.map → p-CUEE9EMe.system.js.map} +1 -1
- package/dist/pine-core/{p-DFd5KJNr.system.js.map → p-CXImmjF5.system.js.map} +1 -1
- package/dist/pine-core/p-C_g3FnvJ.system.js.map +1 -0
- package/dist/pine-core/p-CmNZDo8q.system.js.map +1 -0
- package/dist/pine-core/p-Cn98QWqb.system.js.map +1 -0
- package/dist/pine-core/{p-Djhe2zUv.system.js → p-Cqgvmo2o.system.js} +2 -2
- package/dist/pine-core/{p-Djhe2zUv.system.js.map → p-Cqgvmo2o.system.js.map} +1 -1
- package/dist/pine-core/{p-4d6YziBa.system.js.map → p-Cu24FhMY.system.js.map} +1 -1
- package/dist/pine-core/{p-DUvF_h4G.system.js.map → p-CwEjYXkp.system.js.map} +1 -1
- package/dist/pine-core/p-DA3fC_kX.system.js.map +1 -0
- package/dist/pine-core/{p-M5aqIQje.system.js.map → p-DG_z5J3G.system.js.map} +1 -1
- package/dist/pine-core/{p-BLil033h.system.js.map → p-DL3JCnpO.system.js.map} +1 -1
- package/dist/pine-core/{p-BMWZMLrp.system.js.map → p-DSlRwx2e.system.js.map} +1 -1
- package/dist/pine-core/p-DVra397g.system.js +2 -0
- package/dist/pine-core/p-DVra397g.system.js.map +1 -0
- package/dist/pine-core/{p-B1bh2Wvv.system.js → p-DYlgS5d7.system.js} +3 -3
- package/dist/pine-core/p-DYlgS5d7.system.js.map +1 -0
- package/dist/pine-core/{p-B7_7oNQG.system.js.map → p-DeVgpUr5.system.js.map} +1 -1
- package/dist/pine-core/p-DtgUQhjl.js +2 -0
- package/dist/pine-core/p-DtgUQhjl.js.map +1 -0
- package/dist/pine-core/{p-C08fY97u.system.js.map → p-Dxrjs-vy.system.js.map} +1 -1
- package/dist/pine-core/{p-IrhpBtZN.system.js.map → p-H7VDsgsr.system.js.map} +1 -1
- package/dist/pine-core/p-JwuGXyPc.system.js.map +1 -0
- package/dist/pine-core/{p-iOyU21aP.system.js.map → p-U1PewsWZ.system.js.map} +1 -1
- package/dist/pine-core/{p-BjaDq65J.system.js.map → p-UILRZV99.system.js.map} +1 -1
- package/dist/pine-core/p-V-ORMWaS.system.js.map +1 -0
- package/dist/pine-core/p-W7E5TRNL.system.js.map +1 -0
- package/dist/pine-core/p-Yfy85hdp.system.js.map +1 -0
- package/dist/pine-core/{p-BuXqrZlE.system.js.map → p-ZrPaY2bh.system.js.map} +1 -1
- package/dist/pine-core/{p-dc724dee.entry.js → p-a30b386f.entry.js} +2 -2
- package/dist/pine-core/{p-b272656d.system.entry.js → p-a5014407.system.entry.js} +2 -2
- package/dist/pine-core/{p-b117b00a.system.entry.js → p-a695ff4c.system.entry.js} +2 -2
- package/dist/pine-core/{p-7d9f7018.entry.js → p-a8c49f8e.entry.js} +2 -2
- package/dist/pine-core/p-ae74a4b6.system.entry.js +2 -0
- package/dist/pine-core/{p-00e487c4.system.entry.js.map → p-ae74a4b6.system.entry.js.map} +1 -1
- package/dist/pine-core/p-b1cde22a.entry.js +2 -0
- package/dist/pine-core/{p-4beb8ae5.entry.js.map → p-b1cde22a.entry.js.map} +1 -1
- package/dist/pine-core/{p-779c4bd5.system.entry.js → p-b9340fb1.system.entry.js} +2 -2
- package/dist/pine-core/{p-35d9e3c8.system.entry.js → p-b9fcc3f8.system.entry.js} +2 -2
- package/dist/pine-core/{p-xKyEDmi0.system.js.map → p-bIvjoz7p.system.js.map} +1 -1
- package/dist/pine-core/{p-939ae09f.entry.js → p-bc8f61d1.entry.js} +2 -2
- package/dist/pine-core/{p-e7e166f2.entry.js → p-bea013d1.entry.js} +2 -2
- package/dist/pine-core/{p-9e8b71ed.system.entry.js → p-c026479a.system.entry.js} +2 -2
- package/dist/pine-core/p-c9784d20.system.entry.js +4 -0
- package/dist/pine-core/{p-ea94b002.system.entry.js.map → p-c9784d20.system.entry.js.map} +1 -1
- package/dist/pine-core/p-c9b06db1.system.entry.js +2 -0
- package/dist/pine-core/p-c9b06db1.system.entry.js.map +1 -0
- package/dist/pine-core/{p-8731836c.entry.js → p-cab14421.entry.js} +2 -2
- package/dist/pine-core/{p-b8ca7bca.entry.js → p-d5fcdcdd.entry.js} +2 -2
- package/dist/pine-core/p-d86e20b5.system.entry.js +2 -0
- package/dist/pine-core/p-d86e20b5.system.entry.js.map +1 -0
- package/dist/pine-core/p-d9354ad3.system.entry.js +2 -0
- package/dist/pine-core/p-d9354ad3.system.entry.js.map +1 -0
- package/dist/pine-core/{p-6ff1d23e.entry.js → p-dab76f15.entry.js} +2 -2
- package/dist/pine-core/p-db16d1fe.entry.js +2 -0
- package/dist/pine-core/p-db16d1fe.entry.js.map +1 -0
- package/dist/pine-core/{p-cea4bfaa.system.entry.js → p-db63f83b.system.entry.js} +2 -2
- package/dist/pine-core/{p-0d4b2bbc.system.entry.js → p-dd3ea74e.system.entry.js} +2 -2
- package/dist/pine-core/p-ddb48534.entry.js +2 -0
- package/dist/pine-core/{p-54e967ca.entry.js.map → p-ddb48534.entry.js.map} +1 -1
- package/dist/pine-core/{p-c7cab4ca.entry.js → p-de9f43b6.entry.js} +2 -2
- package/dist/pine-core/{p-c7cab4ca.entry.js.map → p-de9f43b6.entry.js.map} +1 -1
- package/dist/pine-core/p-e25da259.entry.js +2 -0
- package/dist/pine-core/{p-253e2bfd.system.entry.js → p-e288dc89.system.entry.js} +2 -2
- package/dist/pine-core/{p-6acc2e5b.system.entry.js → p-ea5c42b8.system.entry.js} +2 -2
- package/dist/pine-core/{p-42d83b1f.entry.js → p-ed5d5be6.entry.js} +2 -2
- package/dist/pine-core/{p-f924994c.entry.js → p-ef081f0f.entry.js} +2 -2
- package/dist/pine-core/{p-8b8d1b07.entry.js → p-f09c5021.entry.js} +2 -2
- package/dist/pine-core/{p-e0862ab5.entry.js → p-f201cf57.entry.js} +2 -2
- package/dist/pine-core/{p-bd277581.entry.js → p-f20ab351.entry.js} +2 -2
- package/dist/pine-core/{p-2c48e33c.entry.js → p-f2798581.entry.js} +2 -2
- package/dist/pine-core/{p-fbd8a4ac.entry.js → p-f2ca0cf8.entry.js} +2 -2
- package/dist/pine-core/{p-c299c019.system.entry.js → p-f77fad86.system.entry.js} +2 -2
- package/dist/pine-core/p-ff472f7c.system.entry.js +2 -0
- package/dist/pine-core/p-ff472f7c.system.entry.js.map +1 -0
- package/dist/pine-core/{p-9e073662.entry.js → p-ff5b2c90.entry.js} +2 -2
- package/dist/pine-core/{p-CoxD4Fzc.system.js.map → p-g4mFEadi.system.js.map} +1 -1
- package/dist/pine-core/{p-VWcPIY1a.system.js.map → p-vLxlRu4_.system.js.map} +1 -1
- package/dist/pine-core/{p-BtXGBfVh.system.js.map → p-ziMh7dwl.system.js.map} +1 -1
- package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-toast.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-tooltip.entry.esm.js.map +1 -1
- package/dist/pine-core/pine-core.css +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/pine-core/pine-core.js +1 -1
- package/dist/types/components/pds-table/pds-table.d.ts +1 -1
- package/dist/types/components/pds-toast/pds-toast.d.ts +4 -0
- package/dist/types/utils/scroll.d.ts +21 -0
- package/dist/types/utils/test/axe.d.ts +80 -0
- package/hydrate/index.js +168 -51
- package/hydrate/index.mjs +168 -51
- package/package.json +3 -2
- package/dist/cjs/index-Dlc5O3n_.js.map +0 -1
- package/dist/esm/index-CO9kz-Pi.js.map +0 -1
- package/dist/esm-es5/index-CO9kz-Pi.js +0 -3
- package/dist/esm-es5/index-CO9kz-Pi.js.map +0 -1
- package/dist/pine-core/p--fC0IwVR.system.js.map +0 -1
- package/dist/pine-core/p-00e487c4.system.entry.js +0 -2
- package/dist/pine-core/p-05771ef2.system.entry.js +0 -2
- package/dist/pine-core/p-0fefe6ef.entry.js +0 -2
- package/dist/pine-core/p-127a84bf.entry.js +0 -3
- package/dist/pine-core/p-13a814c0.system.entry.js +0 -2
- package/dist/pine-core/p-1c26a838.system.entry.js +0 -2
- package/dist/pine-core/p-1c26a838.system.entry.js.map +0 -1
- package/dist/pine-core/p-24f9a03b.system.entry.js +0 -2
- package/dist/pine-core/p-31b51eae.entry.js +0 -2
- package/dist/pine-core/p-31b51eae.entry.js.map +0 -1
- package/dist/pine-core/p-4768b52b.system.entry.js +0 -2
- package/dist/pine-core/p-4768b52b.system.entry.js.map +0 -1
- package/dist/pine-core/p-4993f30e.system.entry.js +0 -2
- package/dist/pine-core/p-4beb8ae5.entry.js +0 -2
- package/dist/pine-core/p-4d3122ff.system.entry.js +0 -2
- package/dist/pine-core/p-4d3122ff.system.entry.js.map +0 -1
- package/dist/pine-core/p-54e967ca.entry.js +0 -2
- package/dist/pine-core/p-61674647.entry.js +0 -2
- package/dist/pine-core/p-617dc902.system.entry.js +0 -2
- package/dist/pine-core/p-61c885c7.entry.js +0 -2
- package/dist/pine-core/p-673dd006.system.entry.js +0 -2
- package/dist/pine-core/p-673dd006.system.entry.js.map +0 -1
- package/dist/pine-core/p-7bc34bce.system.entry.js +0 -2
- package/dist/pine-core/p-88c2001b.entry.js +0 -2
- package/dist/pine-core/p-8a2433ba.entry.js +0 -2
- package/dist/pine-core/p-8a2433ba.entry.js.map +0 -1
- package/dist/pine-core/p-8d0c1f6d.entry.js +0 -2
- package/dist/pine-core/p-93b379c2.system.entry.js +0 -2
- package/dist/pine-core/p-AcWjVzMO.system.js.map +0 -1
- package/dist/pine-core/p-B1bh2Wvv.system.js.map +0 -1
- package/dist/pine-core/p-B8BcpYlQ.system.js.map +0 -1
- package/dist/pine-core/p-BFO0Qv1J.system.js.map +0 -1
- package/dist/pine-core/p-BHXH-Irt.system.js.map +0 -1
- package/dist/pine-core/p-BvEsTKJw.system.js.map +0 -1
- package/dist/pine-core/p-BvlpNhcl.system.js.map +0 -1
- package/dist/pine-core/p-BwqSEhik.system.js.map +0 -1
- package/dist/pine-core/p-C7zvuvWK.system.js.map +0 -1
- package/dist/pine-core/p-CHUAwdle.system.js.map +0 -1
- package/dist/pine-core/p-CIRw0SFV.system.js.map +0 -1
- package/dist/pine-core/p-CNgeZOJ8.system.js.map +0 -1
- package/dist/pine-core/p-CO9kz-Pi.js.map +0 -1
- package/dist/pine-core/p-D0Q8TzYd.system.js.map +0 -1
- package/dist/pine-core/p-D504xCQQ.system.js.map +0 -1
- package/dist/pine-core/p-DDgPxucg.system.js.map +0 -1
- package/dist/pine-core/p-DMxjKSUq.system.js.map +0 -1
- package/dist/pine-core/p-NzmeWArw.system.js.map +0 -1
- package/dist/pine-core/p-UYm57tw3.system.js.map +0 -1
- package/dist/pine-core/p-a12e38aa.system.entry.js +0 -2
- package/dist/pine-core/p-b63c7247.entry.js +0 -2
- package/dist/pine-core/p-bb4bb3a7.entry.js +0 -2
- package/dist/pine-core/p-be76de9e.entry.js +0 -2
- package/dist/pine-core/p-c5f4d4c0.entry.js +0 -2
- package/dist/pine-core/p-c5f4d4c0.entry.js.map +0 -1
- package/dist/pine-core/p-c7246fe4.system.entry.js +0 -2
- package/dist/pine-core/p-c746c9ad.system.entry.js +0 -2
- package/dist/pine-core/p-cb733c9c.system.entry.js +0 -2
- package/dist/pine-core/p-d90f7fe4.entry.js +0 -2
- package/dist/pine-core/p-da50a223.entry.js +0 -2
- package/dist/pine-core/p-da50a223.entry.js.map +0 -1
- package/dist/pine-core/p-dd9888e9.entry.js +0 -2
- package/dist/pine-core/p-dd9888e9.entry.js.map +0 -1
- package/dist/pine-core/p-ea94b002.system.entry.js +0 -4
- package/dist/pine-core/p-ebf96abc.system.entry.js +0 -2
- package/dist/pine-core/p-ebf96abc.system.entry.js.map +0 -1
- package/dist/pine-core/p-ec974e1d.entry.js +0 -2
- /package/dist/pine-core/{p-05771ef2.system.entry.js.map → p-037dbdcd.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-fd6e7155.entry.js.map → p-06713f25.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4710c59d.entry.js.map → p-0977b2dd.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c5dc1e2d.system.entry.js.map → p-099e9f9b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2c7f3d5e.system.entry.js.map → p-0c1ab384.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2c2d2080.system.entry.js.map → p-0dee7449.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-128a483e.system.entry.js.map → p-102d0dd6.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0bf1fee1.entry.js.map → p-1598f3af.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3524e30c.system.entry.js.map → p-1c32102e.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c424a27a.system.entry.js.map → p-275fa74c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a713fedd.system.entry.js.map → p-34763aae.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ed781905.system.entry.js.map → p-36070380.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8b997cb3.entry.js.map → p-3625bc45.entry.js.map} +0 -0
- /package/dist/pine-core/{p-205d8c56.entry.js.map → p-3b087f24.entry.js.map} +0 -0
- /package/dist/pine-core/{p-26aa3195.entry.js.map → p-476db791.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9d7f17a4.system.entry.js.map → p-4780403d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-06fbdc35.entry.js.map → p-4ede20e6.entry.js.map} +0 -0
- /package/dist/pine-core/{p-1768ad5e.entry.js.map → p-4f440dd4.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a76a454f.system.entry.js.map → p-52411757.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-519d44b8.entry.js.map → p-5e117b98.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3c864e3d.entry.js.map → p-643b01ad.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5552ca6b.system.entry.js.map → p-74ff4d96.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-952b41e5.system.entry.js.map → p-77327e1b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0561744f.entry.js.map → p-774ecbd4.entry.js.map} +0 -0
- /package/dist/pine-core/{p-932f4860.entry.js.map → p-7926dc93.entry.js.map} +0 -0
- /package/dist/pine-core/{p-1fd52c1b.system.entry.js.map → p-7acb131c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f30bde36.system.entry.js.map → p-848763b6.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-90126a46.system.entry.js.map → p-85e889c3.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-bf1ab568.system.entry.js.map → p-8669e0e3.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4cf4558e.entry.js.map → p-8735cb58.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2ca648d8.system.entry.js.map → p-904e8d9d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5eb9a3e2.entry.js.map → p-91bea052.entry.js.map} +0 -0
- /package/dist/pine-core/{p-13821696.entry.js.map → p-984db3fc.entry.js.map} +0 -0
- /package/dist/pine-core/{p-69221099.system.entry.js.map → p-988d1723.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0f037132.system.entry.js.map → p-9a3c9d15.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-63fd14b1.system.entry.js.map → p-9b3aedeb.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-94fde072.system.entry.js.map → p-9ce56712.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5df670e9.entry.js.map → p-9e5c58c6.entry.js.map} +0 -0
- /package/dist/pine-core/{p-dc724dee.entry.js.map → p-a30b386f.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b272656d.system.entry.js.map → p-a5014407.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b117b00a.system.entry.js.map → p-a695ff4c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7d9f7018.entry.js.map → p-a8c49f8e.entry.js.map} +0 -0
- /package/dist/pine-core/{p-779c4bd5.system.entry.js.map → p-b9340fb1.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-35d9e3c8.system.entry.js.map → p-b9fcc3f8.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-939ae09f.entry.js.map → p-bc8f61d1.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e7e166f2.entry.js.map → p-bea013d1.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9e8b71ed.system.entry.js.map → p-c026479a.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8731836c.entry.js.map → p-cab14421.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b8ca7bca.entry.js.map → p-d5fcdcdd.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6ff1d23e.entry.js.map → p-dab76f15.entry.js.map} +0 -0
- /package/dist/pine-core/{p-cea4bfaa.system.entry.js.map → p-db63f83b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0d4b2bbc.system.entry.js.map → p-dd3ea74e.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0fefe6ef.entry.js.map → p-e25da259.entry.js.map} +0 -0
- /package/dist/pine-core/{p-253e2bfd.system.entry.js.map → p-e288dc89.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6acc2e5b.system.entry.js.map → p-ea5c42b8.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-42d83b1f.entry.js.map → p-ed5d5be6.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f924994c.entry.js.map → p-ef081f0f.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8b8d1b07.entry.js.map → p-f09c5021.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e0862ab5.entry.js.map → p-f201cf57.entry.js.map} +0 -0
- /package/dist/pine-core/{p-bd277581.entry.js.map → p-f20ab351.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2c48e33c.entry.js.map → p-f2798581.entry.js.map} +0 -0
- /package/dist/pine-core/{p-fbd8a4ac.entry.js.map → p-f2ca0cf8.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c299c019.system.entry.js.map → p-f77fad86.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9e073662.entry.js.map → p-ff5b2c90.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds-modal.entry.js","sources":["src/components/pds-modal/pds-modal.scss?tag=pds-modal","src/components/pds-modal/pds-modal.tsx"],"sourcesContent":[".pds-modal__backdrop {\n align-items: flex-start;\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n background-color: rgba(0, 0, 0, 0.4);\n border: 0;\n display: flex;\n height: 100%;\n inset: 0;\n justify-content: center;\n margin: 0;\n max-height: 100%;\n max-width: 100%;\n opacity: 0;\n padding: 0;\n position: fixed;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n visibility: hidden;\n width: 100%;\n z-index: var(--pine-z-index-modal);\n\n @supports (backdrop-filter: blur(3px)) {\n backdrop-filter: blur(3px);\n }\n\n // Increase z-index for nested modals\n pds-modal & {\n z-index: var(--pine-z-index-priority);\n }\n\n &::backdrop {\n background: transparent;\n }\n\n &.open {\n opacity: 1;\n visibility: visible;\n }\n}\n\n.pds-modal {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-dimension-sm);\n box-shadow: var(--pine-box-shadow-400);\n display: flex;\n flex-direction: column;\n margin: var(--pine-dimension-md);\n max-height: none;\n width: 100%;\n\n &.pds-modal--scrollable {\n max-height: calc(100vh - (calc(5vh + 96px)));\n\n @supports (height: 100dvh) {\n max-height: calc(100dvh - (calc(5dvh + 96px)));\n }\n }\n\n @media (min-width: 992px) {\n margin-block-start: 6vh;\n\n @supports (height: 100dvh) {\n margin-block-start: 6dvh;\n }\n }\n\n @media (min-width: 1200px) {\n margin-block-start: 8vh;\n\n @supports (height: 100dvh) {\n margin-block-start: 8dvh;\n }\n }\n}\n\n.pds-modal--sm {\n max-width: 520px;\n}\n\n.pds-modal--md {\n max-width: 700px;\n}\n\n.pds-modal--lg {\n max-width: 900px;\n}\n\n.pds-modal--fullscreen {\n border-radius: 0;\n height: 100%;\n margin: 0;\n max-height: 100vh;\n max-width: 100%;\n\n @supports (height: 100dvh) {\n max-height: 100dvh;\n }\n\n &.pds-modal--scrollable {\n max-height: 100vh;\n\n @supports (height: 100dvh) {\n max-height: 100dvh;\n }\n }\n}\n\n.pds-modal-content {\n .pds-modal--fullscreen & {\n flex: 1;\n }\n}\n\n// Scrollable modal styles (default behavior)\n.pds-modal--scrollable {\n pds-modal-content {\n border-block-end: 1px solid transparent;\n border-block-start: 1px solid transparent;\n overflow-y: auto;\n }\n}\n\n// Non-scrollable modal styles\n.pds-modal:not(.pds-modal--scrollable) {\n pds-modal-content {\n overflow-y: visible;\n }\n}\n\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal',\n styleUrl: 'pds-modal.scss',\n shadow: false\n})\nexport class PdsModal {\n private modalRef: HTMLDialogElement;\n private previousActiveElement: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n\n @Element() el: HTMLPdsModalElement;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n * @default true\n */\n @Prop() backdropDismiss = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Whether the modal is open\n * @default false\n */\n @Prop({ mutable: true }) open = false;\n\n /**\n * The size of the modal\n * @default 'md'\n */\n @Prop() size: 'sm' | 'md' | 'lg' | 'fullscreen' = 'md';\n\n /**\n * Whether the modal content should be scrollable\n * @default true\n */\n @Prop() scrollable = true;\n\n /**\n * Emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter<void>;\n\n /**\n * Emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter<void>;\n\n /**\n * Stores the list of focusable elements in the modal\n */\n @State() focusableElementsArray: HTMLElement[] = [];\n\n componentDidLoad() {\n this.modalRef = this.el.querySelector('.pds-modal__backdrop') as HTMLDialogElement;\n // Add keyboard event listener\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n // Clean up event listener\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n @Watch('open')\n handleOpenChange(newValue: boolean) {\n if (newValue) {\n this.showModal();\n } else {\n this.hideModal();\n }\n }\n\n /**\n * Updates the list of focusable elements in the modal\n */\n private updateFocusableElements() {\n if (!this.modalRef) return;\n\n // Get all focusable elements within the modal\n const selector = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'pds-button:not([disabled])',\n 'pds-link:not([disabled])',\n 'pds-input:not([disabled])',\n 'pds-checkbox:not([disabled])',\n 'pds-radio:not([disabled])',\n 'pds-switch:not([disabled])',\n 'pds-select:not([disabled])',\n ].join(',');\n\n this.focusableElements = Array.from(\n this.modalRef.querySelectorAll(selector)\n ) as HTMLElement[];\n\n // Filter out elements with display: none or visibility: hidden\n this.focusableElements = this.focusableElements.filter(el => {\n const style = window.getComputedStyle(el);\n return style.display !== 'none' && style.visibility !== 'hidden';\n });\n }\n\n /**\n * Sets focus to the first focusable element in the modal\n */\n private setInitialFocus() {\n if (this.focusableElements.length === 0) return;\n\n // Focus the first focusable element\n const firstElement = this.focusableElements[0];\n\n // For web components, we need to ensure they're properly focused\n this.focusElement(firstElement);\n }\n\n /**\n * Helper method to focus an element, with special handling for web components\n */\n private focusElement(element: HTMLElement) {\n if (!element) return;\n\n try {\n // Try standard focus first\n element.focus();\n\n // Check if focus worked\n setTimeout(() => {\n if (document.activeElement !== element) {\n // For web components, try to find a focusable element inside\n if (element.shadowRoot) {\n const focusableInShadow = element.shadowRoot.querySelector(\n 'button, [tabindex], input, a[href]'\n ) as HTMLElement;\n\n if (focusableInShadow) {\n focusableInShadow.focus();\n }\n }\n }\n }, 0);\n } catch (error) {\n console.error('Error focusing element:', error);\n }\n }\n\n /**\n * Opens the modal\n */\n @Method()\n async showModal() {\n if (this.modalRef) {\n try {\n // Store the currently focused element to restore focus when modal closes\n this.previousActiveElement = document.activeElement as HTMLElement;\n\n // Use native dialog showModal method which makes the rest of the page inert\n this.modalRef.showModal();\n this.open = true;\n\n // Update focusable elements and set initial focus\n // Using a longer timeout to ensure all components are fully rendered\n setTimeout(() => {\n this.updateFocusableElements();\n this.setInitialFocus();\n this.pdsModalOpen.emit();\n }, 100);\n } catch (error) {\n console.error('Failed to show modal:', error);\n }\n }\n }\n\n /**\n * Closes the modal\n */\n @Method()\n async hideModal() {\n if (this.modalRef) {\n try {\n this.modalRef.close();\n this.open = false;\n\n // Restore focus to the element that was focused before the modal was opened\n if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {\n this.previousActiveElement.focus();\n }\n\n this.pdsModalClose.emit();\n } catch (error) {\n console.error('Failed to hide modal:', error);\n }\n }\n }\n\n private handleBackdropClick = (e: MouseEvent) => {\n if (!this.backdropDismiss || !this.open) return;\n\n if ((e.target as HTMLElement).classList.contains('pds-modal__backdrop')) {\n e.stopPropagation();\n\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n this.hideModal();\n }\n }\n };\n\n /**\n * Gets the z-index of a modal's backdrop element\n */\n private getBackdropZIndex(modal: Element): number {\n const backdrop = modal.querySelector('.pds-modal__backdrop');\n return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;\n }\n\n /**\n * Checks if this modal is the innermost (highest z-index) modal\n */\n private isInnermostModal(): boolean {\n // Find all open modals\n const openModals = Array.from(document.querySelectorAll('pds-modal')).filter(\n modal => modal.open\n );\n\n if (openModals.length === 0) return false;\n\n // Get this modal's backdrop element\n const thisBackdrop = this.el.querySelector('.pds-modal__backdrop');\n if (!thisBackdrop) return false;\n\n // Get computed z-index of all open modal backdrops\n const modalZIndexes = openModals.map(modal => this.getBackdropZIndex(modal));\n\n // Get the highest z-index\n const maxZIndex = Math.max(...modalZIndexes);\n\n // Check if this modal's backdrop has the highest z-index\n const thisZIndex = this.getBackdropZIndex(this.el);\n return thisZIndex === maxZIndex;\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n // If the modal is not open, don't handle any keyboard events\n if (!this.open) return;\n\n // Handle Escape key to close the modal\n if (e.key === 'Escape') {\n // Always prevent native dialog close behavior\n e.preventDefault();\n // Only close if backdropDismiss is enabled and this is the innermost modal\n if (this.backdropDismiss && this.isInnermostModal()) {\n this.hideModal();\n }\n return;\n }\n\n // Handle Tab key for focus trapping\n if (e.key === 'Tab') {\n // If there are no focusable elements, do nothing\n if (this.focusableElements.length === 0) return;\n\n // Get the first and last focusable elements\n const firstFocusableElement = this.focusableElements[0];\n const lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];\n\n // Get the current active element\n const activeElement = document.activeElement;\n\n // Check if we need to wrap focus\n const isFirstElement = activeElement === firstFocusableElement ||\n firstFocusableElement.contains(activeElement as Node);\n\n const isLastElement = activeElement === lastFocusableElement ||\n lastFocusableElement.contains(activeElement as Node);\n\n // If shift + tab is pressed and focus is on the first element, move to the last element\n if (e.shiftKey && isFirstElement) {\n e.preventDefault();\n this.focusElement(lastFocusableElement);\n }\n // If tab is pressed and focus is on the last element, move to the first element\n else if (!e.shiftKey && isLastElement) {\n e.preventDefault();\n this.focusElement(firstFocusableElement);\n }\n }\n };\n\n render() {\n return (\n <dialog\n class={{\n 'pds-modal__backdrop': true,\n 'open': this.open\n }}\n aria-modal=\"true\"\n aria-labelledby={`${this.componentId}-heading`}\n onClick={this.handleBackdropClick}\n >\n <div\n class={{\n 'pds-modal': true,\n [`pds-modal--${this.size}`]: true,\n 'pds-modal--scrollable': this.scrollable\n }}\n part=\"modal\"\n >\n <slot></slot>\n </div>\n </dialog>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pds-modal.entry.js","sources":["src/components/pds-modal/pds-modal.scss?tag=pds-modal","src/components/pds-modal/pds-modal.tsx"],"sourcesContent":[".pds-modal__backdrop {\n align-items: flex-start;\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n background-color: rgba(0, 0, 0, 0.4);\n border: 0;\n display: flex;\n height: 100%;\n inset: 0;\n justify-content: center;\n margin: 0;\n max-height: 100%;\n max-width: 100%;\n opacity: 0;\n padding: 0;\n position: fixed;\n transition: opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);\n visibility: hidden;\n width: 100%;\n z-index: var(--pine-z-index-modal);\n\n @supports (backdrop-filter: blur(3px)) {\n backdrop-filter: blur(3px);\n }\n\n // Increase z-index for nested modals\n pds-modal & {\n z-index: var(--pine-z-index-priority);\n }\n\n &::backdrop {\n background: transparent;\n }\n\n &.open {\n opacity: 1;\n transition-timing-function: var(--pine-motion-easing-out);\n visibility: visible;\n }\n}\n\n.pds-modal {\n background: var(--pine-color-background-overlay);\n border-radius: var(--pine-dimension-sm);\n box-shadow: var(--pine-box-shadow-400);\n display: flex;\n flex-direction: column;\n margin: var(--pine-dimension-md);\n max-height: none;\n width: 100%;\n\n &.pds-modal--scrollable {\n max-height: calc(100vh - (calc(5vh + 96px)));\n\n @supports (height: 100dvh) {\n max-height: calc(100dvh - (calc(5dvh + 96px)));\n }\n }\n\n @media (min-width: 992px) {\n margin-block-start: 6vh;\n\n @supports (height: 100dvh) {\n margin-block-start: 6dvh;\n }\n }\n\n @media (min-width: 1200px) {\n margin-block-start: 8vh;\n\n @supports (height: 100dvh) {\n margin-block-start: 8dvh;\n }\n }\n}\n\n.pds-modal--sm {\n max-width: 520px;\n}\n\n.pds-modal--md {\n max-width: 700px;\n}\n\n.pds-modal--lg {\n max-width: 900px;\n}\n\n.pds-modal--fullscreen {\n border-radius: 0;\n height: 100%;\n margin: 0;\n max-height: 100vh;\n max-width: 100%;\n\n @supports (height: 100dvh) {\n max-height: 100dvh;\n }\n\n &.pds-modal--scrollable {\n max-height: 100vh;\n\n @supports (height: 100dvh) {\n max-height: 100dvh;\n }\n }\n}\n\n.pds-modal-content {\n .pds-modal--fullscreen & {\n flex: 1;\n }\n}\n\n// Scrollable modal styles (default behavior)\n.pds-modal--scrollable {\n pds-modal-content {\n border-block-end: 1px solid transparent;\n border-block-start: 1px solid transparent;\n overflow-y: auto;\n }\n}\n\n// Non-scrollable modal styles\n.pds-modal:not(.pds-modal--scrollable) {\n pds-modal-content {\n overflow-y: visible;\n }\n}\n\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal',\n styleUrl: 'pds-modal.scss',\n shadow: false\n})\nexport class PdsModal {\n private modalRef: HTMLDialogElement;\n private previousActiveElement: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n\n @Element() el: HTMLPdsModalElement;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n * @default true\n */\n @Prop() backdropDismiss = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Whether the modal is open\n * @default false\n */\n @Prop({ mutable: true }) open = false;\n\n /**\n * The size of the modal\n * @default 'md'\n */\n @Prop() size: 'sm' | 'md' | 'lg' | 'fullscreen' = 'md';\n\n /**\n * Whether the modal content should be scrollable\n * @default true\n */\n @Prop() scrollable = true;\n\n /**\n * Emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter<void>;\n\n /**\n * Emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter<void>;\n\n /**\n * Stores the list of focusable elements in the modal\n */\n @State() focusableElementsArray: HTMLElement[] = [];\n\n componentDidLoad() {\n this.modalRef = this.el.querySelector('.pds-modal__backdrop') as HTMLDialogElement;\n // Add keyboard event listener\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n // Clean up event listener\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n @Watch('open')\n handleOpenChange(newValue: boolean) {\n if (newValue) {\n this.showModal();\n } else {\n this.hideModal();\n }\n }\n\n /**\n * Updates the list of focusable elements in the modal\n */\n private updateFocusableElements() {\n if (!this.modalRef) return;\n\n // Get all focusable elements within the modal\n const selector = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'pds-button:not([disabled])',\n 'pds-link:not([disabled])',\n 'pds-input:not([disabled])',\n 'pds-checkbox:not([disabled])',\n 'pds-radio:not([disabled])',\n 'pds-switch:not([disabled])',\n 'pds-select:not([disabled])',\n ].join(',');\n\n this.focusableElements = Array.from(\n this.modalRef.querySelectorAll(selector)\n ) as HTMLElement[];\n\n // Filter out elements with display: none or visibility: hidden\n this.focusableElements = this.focusableElements.filter(el => {\n const style = window.getComputedStyle(el);\n return style.display !== 'none' && style.visibility !== 'hidden';\n });\n }\n\n /**\n * Sets focus to the first focusable element in the modal\n */\n private setInitialFocus() {\n if (this.focusableElements.length === 0) return;\n\n // Focus the first focusable element\n const firstElement = this.focusableElements[0];\n\n // For web components, we need to ensure they're properly focused\n this.focusElement(firstElement);\n }\n\n /**\n * Helper method to focus an element, with special handling for web components\n */\n private focusElement(element: HTMLElement) {\n if (!element) return;\n\n try {\n // Try standard focus first\n element.focus();\n\n // Check if focus worked\n setTimeout(() => {\n if (document.activeElement !== element) {\n // For web components, try to find a focusable element inside\n if (element.shadowRoot) {\n const focusableInShadow = element.shadowRoot.querySelector(\n 'button, [tabindex], input, a[href]'\n ) as HTMLElement;\n\n if (focusableInShadow) {\n focusableInShadow.focus();\n }\n }\n }\n }, 0);\n } catch (error) {\n console.error('Error focusing element:', error);\n }\n }\n\n /**\n * Opens the modal\n */\n @Method()\n async showModal() {\n if (this.modalRef) {\n try {\n // Store the currently focused element to restore focus when modal closes\n this.previousActiveElement = document.activeElement as HTMLElement;\n\n // Use native dialog showModal method which makes the rest of the page inert\n this.modalRef.showModal();\n this.open = true;\n\n // Update focusable elements and set initial focus\n // Using a longer timeout to ensure all components are fully rendered\n setTimeout(() => {\n this.updateFocusableElements();\n this.setInitialFocus();\n this.pdsModalOpen.emit();\n }, 100);\n } catch (error) {\n console.error('Failed to show modal:', error);\n }\n }\n }\n\n /**\n * Closes the modal\n */\n @Method()\n async hideModal() {\n if (this.modalRef) {\n try {\n this.modalRef.close();\n this.open = false;\n\n // Restore focus to the element that was focused before the modal was opened\n if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {\n this.previousActiveElement.focus();\n }\n\n this.pdsModalClose.emit();\n } catch (error) {\n console.error('Failed to hide modal:', error);\n }\n }\n }\n\n private handleBackdropClick = (e: MouseEvent) => {\n if (!this.backdropDismiss || !this.open) return;\n\n if ((e.target as HTMLElement).classList.contains('pds-modal__backdrop')) {\n e.stopPropagation();\n\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n this.hideModal();\n }\n }\n };\n\n /**\n * Gets the z-index of a modal's backdrop element\n */\n private getBackdropZIndex(modal: Element): number {\n const backdrop = modal.querySelector('.pds-modal__backdrop');\n return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;\n }\n\n /**\n * Checks if this modal is the innermost (highest z-index) modal\n */\n private isInnermostModal(): boolean {\n // Find all open modals\n const openModals = Array.from(document.querySelectorAll('pds-modal')).filter(\n modal => modal.open\n );\n\n if (openModals.length === 0) return false;\n\n // Get this modal's backdrop element\n const thisBackdrop = this.el.querySelector('.pds-modal__backdrop');\n if (!thisBackdrop) return false;\n\n // Get computed z-index of all open modal backdrops\n const modalZIndexes = openModals.map(modal => this.getBackdropZIndex(modal));\n\n // Get the highest z-index\n const maxZIndex = Math.max(...modalZIndexes);\n\n // Check if this modal's backdrop has the highest z-index\n const thisZIndex = this.getBackdropZIndex(this.el);\n return thisZIndex === maxZIndex;\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n // If the modal is not open, don't handle any keyboard events\n if (!this.open) return;\n\n // Handle Escape key to close the modal\n if (e.key === 'Escape') {\n // Always prevent native dialog close behavior\n e.preventDefault();\n // Only close if backdropDismiss is enabled and this is the innermost modal\n if (this.backdropDismiss && this.isInnermostModal()) {\n this.hideModal();\n }\n return;\n }\n\n // Handle Tab key for focus trapping\n if (e.key === 'Tab') {\n // If there are no focusable elements, do nothing\n if (this.focusableElements.length === 0) return;\n\n // Get the first and last focusable elements\n const firstFocusableElement = this.focusableElements[0];\n const lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];\n\n // Get the current active element\n const activeElement = document.activeElement;\n\n // Check if we need to wrap focus\n const isFirstElement = activeElement === firstFocusableElement ||\n firstFocusableElement.contains(activeElement as Node);\n\n const isLastElement = activeElement === lastFocusableElement ||\n lastFocusableElement.contains(activeElement as Node);\n\n // If shift + tab is pressed and focus is on the first element, move to the last element\n if (e.shiftKey && isFirstElement) {\n e.preventDefault();\n this.focusElement(lastFocusableElement);\n }\n // If tab is pressed and focus is on the last element, move to the first element\n else if (!e.shiftKey && isLastElement) {\n e.preventDefault();\n this.focusElement(firstFocusableElement);\n }\n }\n };\n\n render() {\n return (\n <dialog\n class={{\n 'pds-modal__backdrop': true,\n 'open': this.open\n }}\n aria-modal=\"true\"\n aria-labelledby={`${this.componentId}-heading`}\n onClick={this.handleBackdropClick}\n >\n <div\n class={{\n 'pds-modal': true,\n [`pds-modal--${this.size}`]: true,\n 'pds-modal--scrollable': this.scrollable\n }}\n part=\"modal\"\n >\n <slot></slot>\n </div>\n </dialog>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter,__generator,__spreadArray}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-CO9kz-Pi.js";import{a as autoUpdate,c as computePosition,o as offset,f as flip,s as shift,b as size}from"./floating-ui.dom-DDtwbwIl.js";import{d as debounceEvent}from"./utils-tJa4KYNO.js";import{i as isSpecTest,a as assignDescription,m as messageId}from"./form-C3xDZBme.js";import{e as enlarge,b as danger}from"./index-D4ys0pep.js";var pdsMultiselectCss=":host{display:block}:host([aria-disabled=true]) .pds-multiselect__trigger{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}:host([aria-disabled=true]) .pds-multiselect__icon{color:var(--pine-color-text-disabled)}.pds-multiselect{position:relative}.pds-multiselect__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-multiselect__wrapper{position:relative}.pds-multiselect__trigger{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-450);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;text-align:start;-webkit-transition:border-color 0.2s ease, -webkit-box-shadow 0.2s ease;transition:border-color 0.2s ease, -webkit-box-shadow 0.2s ease;transition:border-color 0.2s ease, box-shadow 0.2s ease;transition:border-color 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;width:100%}.pds-multiselect__trigger:hover:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-hover)}.pds-multiselect__trigger:focus:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid{background-color:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid:focus{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-multiselect__trigger-text{color:var(--pine-color-text-strong);-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__trigger-text.pds-multiselect__trigger-text--placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__trigger--disabled .pds-multiselect__trigger-text{color:var(--pine-color-text-disabled)}.pds-multiselect__icon{color:var(--pine-color-icon);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__pill-list{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-2xs)}.pds-multiselect__pill-list--inline{-ms-flex:1;flex:1;min-width:0}.pds-multiselect__pill-list--below{-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-multiselect__pill-overflow{color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm-medium);white-space:nowrap}.pds-multiselect__trigger--pill-inline{-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-2xs);min-height:var(--pine-dimension-450);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm)}.pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger--pill-inline:focus-within:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--invalid:focus-within{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__pill-toggle{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border-width:0;cursor:pointer;display:-ms-flexbox;display:flex;padding:0}.pds-multiselect__pill-toggle:focus{outline:3px solid transparent}.pds-multiselect__trigger--disabled .pds-multiselect__pill-toggle{cursor:not-allowed;pointer-events:none}.pds-multiselect__panel{background:var(--pine-color-background-container);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute;z-index:var(--pine-z-index-raised)}.pds-multiselect__search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}.pds-multiselect__search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__search-input{background:transparent;border:var(--pine-dimension-none);color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:var(--pine-dimension-none);outline:none}.pds-multiselect__search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__selected-section{-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);padding:var(--pine-dimension-xs)}.pds-multiselect__selected-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__selected-item{color:var(--pine-color-text-strong);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);overflow:hidden;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__listbox{background:transparent;border:var(--pine-dimension-none);-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none;margin:var(--pine-dimension-none);overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-multiselect__group-header{color:var(--pine-color-text-muted);display:block;font:var(--pine-typography-body-sm-medium);letter-spacing:var(--pine-letter-spacing);padding:var(--pine-dimension-sm) var(--pine-dimension-xs) var(--pine-dimension-2xs);text-transform:uppercase}.pds-multiselect__listbox>li:first-child>.pds-multiselect__group-header{-webkit-padding-before:var(--pine-dimension-xs);padding-block-start:var(--pine-dimension-xs)}.pds-multiselect__group-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-xs);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-multiselect__option pds-checkbox{pointer-events:none;width:100%}.pds-multiselect__option:hover:not(.pds-multiselect__option--disabled),.pds-multiselect__option.pds-multiselect__option--highlighted:not(.pds-multiselect__option--disabled){background:var(--pine-color-background-muted)}.pds-multiselect__option.pds-multiselect__option--disabled{cursor:not-allowed;opacity:0.5}.pds-multiselect__option:focus-visible{outline:var(--pine-dimension-none)}.pds-multiselect__create-option{color:var(--pine-color-text-strong);width:100%}.pds-multiselect__create-option pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__empty,.pds-multiselect__loading{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-muted);display:-ms-flexbox;display:flex;font:var(--pine-typography-body);-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-sm)}.pds-multiselect__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-xs)}.pds-multiselect__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error pds-icon{-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.visually-hidden{border:var(--pine-dimension-none);clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:var(--pine-dimension-none);position:absolute;white-space:nowrap;width:1px}";var PdsMultiselect=function(){function e(e){var i=this;registerInstance(this,e);this.pdsMultiselectChange=createEvent(this,"pdsMultiselectChange");this.pdsMultiselectSearch=createEvent(this,"pdsMultiselectSearch");this.pdsMultiselectLoadOptions=createEvent(this,"pdsMultiselectLoadOptions");this.pdsMultiselectCreate=createEvent(this,"pdsMultiselectCreate");this.pdsMultiselectDismiss=createEvent(this,"pdsMultiselectDismiss");this.placeholder="Select...";this.searchPlaceholder="Find...";this.closePanelOnSelect=false;this.value=[];this.disabled=false;this.asyncMethod="GET";this.debounce=300;this.fetchTimeout=3e4;this.maxHeight="300px";this.triggerWidth="100%";this.minWidth="250px";this.hideLabel=false;this.hideSelectedItems=false;this.selectedDisplay="count";this.pillPosition="inline";this.maxInlinePills=3;this.required=false;this.loading=false;this.csrfHeaderName="X-CSRF-Token";this.isOpen=false;this.searchQuery="";this.highlightedIndex=-1;this.internalOptions=[];this.selectedItems=[];this.currentPage=1;this.hasMore=false;this.creating=false;this.removalAnnouncement="";this.isOpening=false;this.isClosingViaSelection=false;this.initialAsyncFetchTriggered=false;this.pendingUnresolvedFetch=false;this.handleTriggerClick=function(e){if(i.disabled)return;if(e&&i.selectedDisplay==="pill"&&i.pillPosition==="inline"){var t=e.composedPath().some((function(e){var i;return((i=e.tagName)===null||i===void 0?void 0:i.toLowerCase())==="pds-chip"}));if(t)return}if(i.isOpen){i.closeDropdown()}else{i.openDropdown()}};this.handleTriggerKeyDown=function(e){if(e.target!==i.triggerEl)return;switch(e.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":e.preventDefault();if(!i.isOpen){i.openDropdown()}break}};this.handleSearchInputChange=function(e){var t=e.target;i.searchQuery=t.value;i.highlightedIndex=-1;i.pdsMultiselectSearch.emit({query:i.searchQuery});if(i.asyncUrl){i.debouncedFetchAsyncOptions(i.searchQuery,1)}};this.handleSearchInputKeyDown=function(e){var t,s,n;var r=i.getFilteredOptions();switch(e.key){case"ArrowDown":{e.preventDefault();var o=i.highlightedIndex+1;while(o<r.length&&((t=r[o])===null||t===void 0?void 0:t.disabled)){o++}if(o<r.length){i.highlightedIndex=o;i.scrollOptionIntoView()}break}case"ArrowUp":{e.preventDefault();var l=Math.max(i.highlightedIndex-1,0);while(l>0&&((s=r[l])===null||s===void 0?void 0:s.disabled)){l--}if(!((n=r[l])===null||n===void 0?void 0:n.disabled)){i.highlightedIndex=l;i.scrollOptionIntoView()}break}case"Enter":e.preventDefault();if(i.highlightedIndex>=0){var a=r[i.highlightedIndex];if(a){i.selectOption(a)}}break;case"Tab":i.closeDropdown();break}};this.handleContainerFocusOut=function(){setTimeout((function(){var e;if(!i.isOpen||i.isOpening||i.isClosingViaSelection)return;var t=document.activeElement;var s=(e=i.el.shadowRoot)===null||e===void 0?void 0:e.contains(t);var n=t===i.el;if(!s&&!n){i.pdsMultiselectDismiss.emit();i.closeDropdown()}}),0)};this.handleOptionMouseDown=function(e){return function(t){t.preventDefault();i.toggleOption(e)}};this.handleOptionMouseEnter=function(e,t){return function(){if(t.disabled)return;i.highlightedIndex=e}};this.handleScroll=function(e){if(!i.asyncUrl||!i.hasMore||i.loading)return;var t=e.target;var s=t.scrollHeight-t.scrollTop-t.clientHeight;if(s<50){i.pdsMultiselectLoadOptions.emit({query:i.searchQuery,page:i.currentPage+1});i.debouncedFetchAsyncOptions(i.searchQuery,i.currentPage+1)}};this.handlePillRemove=function(e){return function(){var t,s;if(i.disabled)return;var n=String(e.id);i.value=i.value.filter((function(e){return e!==n}));i.syncSelectedItems();i.pdsMultiselectChange.emit({values:i.value,items:i.selectedItems});i.removalAnnouncement="";queueMicrotask((function(){i.removalAnnouncement="".concat(e.text," removed")}));i.isClosingViaSelection=true;if(i.isOpen){(t=i.searchInputEl)===null||t===void 0?void 0:t.focus()}else{(s=i.triggerEl)===null||s===void 0?void 0:s.focus()}setTimeout((function(){i.isClosingViaSelection=false}),0)}}}e.prototype.connectedCallback=function(){if(this.el.attachInternals&&!this.internals){this.internals=this.el.attachInternals()}};e.prototype.componentWillLoad=function(){this.originalSearchEmitter=this.pdsMultiselectSearch;this.syncSelectedItems()};e.prototype.componentDidLoad=function(){var e=this;this.setupDebounce();this.setupMutationObserver();this.setupSlotChangeListener();this.updateFormValue();requestAnimationFrame((function(){e.updateOptionsFromSlot();e.syncSelectedItems()}));if(this.asyncUrl&&this.ensureValueArray().length>0){this.initialAsyncFetchTriggered=true;this.fetchOptions("",1)}};e.prototype.setupSlotChangeListener=function(){var e=this;var i;var t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("slot:not([name])");if(t){t.addEventListener("slotchange",(function(){e.updateOptionsFromSlot();e.syncSelectedItems()}));this.updateOptionsFromSlot()}};e.prototype.disconnectedCallback=function(){var e,i;(e=this.observer)===null||e===void 0?void 0:e.disconnect();(i=this.cleanupAutoUpdate)===null||i===void 0?void 0:i.call(this);this.clearAsyncFetchState()};e.prototype.setupDebounce=function(){var e=this,i=e.pdsMultiselectSearch,t=e.debounce,s=e.originalSearchEmitter;this.pdsMultiselectSearch=t===undefined?s!==null&&s!==void 0?s:i:debounceEvent(i,t)};e.prototype.valueChanged=function(e){if(typeof e==="string"){try{var i=JSON.parse(e);if(Array.isArray(i)){this.value=i;return}}catch(i){this.value=e?[e]:[];return}}this.syncSelectedItems();this.updateFormValue();if(this.asyncUrl){var t=this.ensureValueArray();var s=t.length>0&&this.selectedItems.length<t.length;if(s){if(this.loading){this.pendingUnresolvedFetch=true}else{this.fetchOptions("",1)}}}};e.prototype.optionsChanged=function(){if(this.options){this.internalOptions=__spreadArray([],this.options,true)}};e.prototype.internalOptionsChanged=function(){this.syncSelectedItems()};e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(i){(e=this.triggerEl)===null||e===void 0?void 0:e.focus();return[2]}))}))};e.prototype.clear=function(){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(i){e=this.value.length>0||this.searchQuery!=="";this.value=[];this.searchQuery="";this.syncSelectedItems();this.updateFormValue();if(e){this.pdsMultiselectChange.emit({values:[],items:[]})}return[2]}))}))};e.prototype.handleWindowKeyDown=function(e){var i;if(!this.isOpen)return;if(e.key==="Escape"){e.preventDefault();this.pdsMultiselectDismiss.emit();this.closeDropdown();(i=this.triggerEl)===null||i===void 0?void 0:i.focus()}};e.prototype.setupMutationObserver=function(){var e=this;this.observer=new MutationObserver((function(){e.updateOptionsFromSlot()}));this.observer.observe(this.el,{childList:true,subtree:true})};e.prototype.updateOptionsFromSlot=function(){var e;var i=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot:not([name])");if(!i)return;var t=[];i.assignedElements({flatten:true}).forEach((function(e){var i;if(e.tagName==="OPTGROUP"){var s=e;var n=s.label;var r=s.disabled;s.querySelectorAll("option").forEach((function(e){var i;var s={id:e.value,text:((i=e.textContent)===null||i===void 0?void 0:i.trim())||e.value,disabled:e.disabled||r||undefined};if(n){s.group=n}t.push(s)}))}else if(e.tagName==="OPTION"){var o=e;t.push({id:o.value,text:((i=o.textContent)===null||i===void 0?void 0:i.trim())||o.value,disabled:o.disabled||undefined})}}));if(t.length>0&&!this.asyncUrl&&!this.options){this.internalOptions=t}};e.prototype.clearAsyncFetchState=function(){var e;if(this.fetchDebounceTimer!==undefined){window.clearTimeout(this.fetchDebounceTimer);this.fetchDebounceTimer=undefined}if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}(e=this.abortController)===null||e===void 0?void 0:e.abort();this.abortController=undefined};e.prototype.debouncedFetchAsyncOptions=function(e,i){var t=this;if(i===void 0){i=1}var s;if(!this.asyncUrl)return;if(this.fetchDebounceTimer!==undefined){window.clearTimeout(this.fetchDebounceTimer)}var n=Math.max(0,(s=this.debounce)!==null&&s!==void 0?s:0);this.fetchDebounceTimer=window.setTimeout((function(){t.fetchDebounceTimer=undefined;t.fetchOptions(e,i)}),n)};e.prototype.syncSelectedItems=function(){var e=this.ensureValueArray();var i=this.getAllOptions();var t=[];var s=new Map(this.selectedItems.map((function(e){return[String(e.id),e]})));e.forEach((function(e){var n=i.find((function(i){return String(i.id)===String(e)}));if(n){t.push(n)}else if(s.has(String(e))){t.push(s.get(String(e)))}}));this.selectedItems=t};e.prototype.ensureValueArray=function(){if(typeof this.value==="string"){try{var e=JSON.parse(this.value);if(Array.isArray(e)){this.value=e;return e}}catch(e){var i=this.value;this.value=i?[i]:[];return this.value}}return Array.isArray(this.value)?this.value:[]};e.prototype.getAllOptions=function(){return this.options||this.internalOptions};e.prototype.getFilteredOptions=function(){var e=this.getAllOptions();var i=this.searchQuery.toLowerCase();var t=e.filter((function(e){if(i){return e.text.toLowerCase().includes(i)}return true}));if(this.createUrl&&this.searchQuery.trim()&&t.length===0){return[{id:"__create__",text:this.searchQuery.trim(),isCreateOption:true}]}return t};e.prototype.updateFormValue=function(){var e=this;var i;if(isSpecTest())return;if((i=this.internals)===null||i===void 0?void 0:i.setFormValue){var t=this.ensureValueArray();var s=new FormData;t.forEach((function(i){if(e.name){s.append(e.name,i)}}));this.internals.setFormValue(s);if(this.required&&t.length===0){this.internals.setValidity({valueMissing:true},"Please select at least one option.",this.triggerEl)}else{this.internals.setValidity({})}}};e.prototype.getCsrfToken=function(){if(this.csrfToken){return this.csrfToken}var e=document.querySelector('meta[name="csrf-token"]');return(e===null||e===void 0?void 0:e.content)||null};e.prototype.fetchOptions=function(e){return __awaiter(this,arguments,void 0,(function(e,i){var t,s,n,r,o,l,a,d,c,p,u;var h=this;if(i===void 0){i=1}return __generator(this,(function(f){switch(f.label){case 0:if(!this.asyncUrl)return[2];(t=this.abortController)===null||t===void 0?void 0:t.abort();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}this.abortController=new AbortController;this.loading=true;this.fetchTimeoutTimer=window.setTimeout((function(){var e;(e=h.abortController)===null||e===void 0?void 0:e.abort();h.fetchTimeoutTimer=undefined}),this.fetchTimeout);f.label=1;case 1:f.trys.push([1,4,5,6]);s=void 0;try{s=new URL(this.asyncUrl,window.location.origin)}catch(e){throw new TypeError("Invalid asyncUrl: ".concat(this.asyncUrl))}if(this.asyncMethod==="GET"){s.searchParams.set("search",e);s.searchParams.set("page",String(i))}n=this.getCsrfToken();r={"Content-Type":"application/json",Accept:"application/json"};if(n){o=this.csrfHeaderName||"X-CSRF-Token";r[o]=n}return[4,fetch(s.toString(),Object.assign({method:this.asyncMethod,signal:this.abortController.signal,headers:r},this.asyncMethod==="POST"&&{body:JSON.stringify({search:e,page:i})}))];case 2:l=f.sent();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}if(!l.ok)throw new Error("Failed to fetch options");return[4,l.json()];case 3:a=f.sent();d=a.results.map((function(e){if(h.formatResult){return h.formatResult(e)}if(typeof e==="object"&&e!==null){return Object.assign({id:e.id,text:e.text},e)}return{id:String(e),text:String(e)}}));if(i===1){this.internalOptions=d}else{this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),d,true)}this.hasMore=a.totalCount?this.internalOptions.length<a.totalCount:false;this.currentPage=i;return[3,6];case 4:c=f.sent();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}if(c.name!=="AbortError"){console.error("PdsMultiselect: Failed to fetch options",c)}return[3,6];case 5:this.loading=false;if(this.pendingUnresolvedFetch){this.pendingUnresolvedFetch=false;p=this.ensureValueArray();u=p.length>0&&this.selectedItems.length<p.length;if(u){this.fetchOptions("",1)}}return[7];case 6:return[2]}}))}))};e.prototype.createOption=function(e){return __awaiter(this,void 0,void 0,(function(){var i,t,s,n,r,o,l,a;var d=this;return __generator(this,(function(c){switch(c.label){case 0:if(!this.createUrl||!e.trim())return[2];if(this.creating)return[2];this.creating=true;c.label=1;case 1:c.trys.push([1,4,5,6]);i=new URL(this.createUrl,window.location.origin);t=this.getCsrfToken();s={"Content-Type":"application/json",Accept:"application/json"};if(t){n=this.csrfHeaderName||"X-CSRF-Token";s[n]=t}return[4,fetch(i.toString(),{method:"POST",headers:s,body:JSON.stringify({text:e.trim()})})];case 2:r=c.sent();if(!r.ok)throw new Error("Failed to create option");return[4,r.json()];case 3:o=c.sent();l=Object.assign({id:o.id,text:o.text},o);this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),[l],false);this.value=__spreadArray(__spreadArray([],this.value,true),[String(l.id)],false);this.syncSelectedItems();this.pdsMultiselectCreate.emit({query:e.trim(),newOption:l});this.pdsMultiselectChange.emit({values:this.value,items:this.selectedItems});this.searchQuery="";this.highlightedIndex=-1;requestAnimationFrame((function(){var e;(e=d.searchInputEl)===null||e===void 0?void 0:e.focus()}));return[3,6];case 4:a=c.sent();console.error("PdsMultiselect: Failed to create option",a);return[3,6];case 5:this.creating=false;return[7];case 6:return[2]}}))}))};e.prototype.openDropdown=function(){var e=this;if(this.disabled)return;this.isOpening=true;this.isOpen=true;this.highlightedIndex=-1;if(this.asyncUrl&&this.internalOptions.length===0&&!this.initialAsyncFetchTriggered){this.debouncedFetchAsyncOptions(this.searchQuery,1)}this.initialAsyncFetchTriggered=false;requestAnimationFrame((function(){var i;e.positionDropdown();(i=e.searchInputEl)===null||i===void 0?void 0:i.focus();setTimeout((function(){e.isOpening=false}),50)}))};e.prototype.closeDropdown=function(){var e=this;this.isOpen=false;this.highlightedIndex=-1;this.searchQuery="";if(this.isClosingViaSelection){setTimeout((function(){e.isClosingViaSelection=false}),0)}if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=undefined}};e.prototype.positionDropdown=function(){var e=this;if(!this.containerEl||!this.panelEl)return;var i=this.pillInlineTriggerEl||this.triggerEl||this.containerEl;var t=this,s=t.minWidth,n=t.panelWidth;var r=function(){computePosition(i,e.panelEl,{placement:"bottom-start",strategy:"absolute",middleware:[offset(12),flip(),shift({padding:8}),size({apply:function(e){var i=e.rects,t=e.elements;Object.assign(t.floating.style,{width:n!==null&&n!==void 0?n:"".concat(i.reference.width,"px"),minWidth:s})}})]}).then((function(i){var t=i.x,s=i.y;if(e.panelEl){e.panelEl.style.left="".concat(t,"px");e.panelEl.style.top="".concat(s,"px")}}))};r();var o=autoUpdate(i,this.panelEl,r);this.cleanupAutoUpdate=function(){o();e.clearAsyncFetchState()}};e.prototype.scrollOptionIntoView=function(){var e=this;requestAnimationFrame((function(){var i;var t=(i=e.listboxEl)===null||i===void 0?void 0:i.querySelector('[data-index="'.concat(e.highlightedIndex,'"]'));t===null||t===void 0?void 0:t.scrollIntoView({block:"nearest",behavior:"smooth"})}))};e.prototype.toggleOption=function(e){var i,t;if(e.disabled)return;if(e.isCreateOption){if(!this.creating){this.createOption(this.searchQuery)}return}var s=String(e.id);var n=this.value.includes(s);if(n){this.value=this.value.filter((function(e){return e!==s}))}else{if(this.maxSelections&&this.value.length>=this.maxSelections){return}this.value=__spreadArray(__spreadArray([],this.value,true),[s],false)}this.syncSelectedItems();this.pdsMultiselectChange.emit({values:this.value,items:this.selectedItems});if(this.closePanelOnSelect){this.isClosingViaSelection=true;this.closeDropdown();(i=this.triggerEl)===null||i===void 0?void 0:i.focus()}else{(t=this.searchInputEl)===null||t===void 0?void 0:t.focus()}};e.prototype.selectOption=function(e){this.toggleOption(e)};e.prototype.getGroupedRenderItems=function(e){var i=[];var t=null;e.forEach((function(e,s){var n=e.group;if(n!==undefined){if(!t||t.group!==n){t={type:"group",group:n,options:[]};i.push(t)}t.options.push({option:e,index:s})}else{t=null;i.push({type:"option",option:e,index:s})}}));return i};e.prototype.renderOption=function(e,i,t){var s=t.includes(String(e.id));var n=e.isCreateOption;var r=e.disabled;var o=i===this.highlightedIndex&&!n;var l="".concat(this.componentId,"-option-").concat(i);var a=n&&this.creating;return h("li",{key:String(e.id),id:l,class:{"pds-multiselect__option":true,"pds-multiselect__option--highlighted":o,"pds-multiselect__option--selected":s,"pds-multiselect__option--create":n,"pds-multiselect__option--disabled":r||a},role:"option","aria-selected":s?"true":"false","aria-disabled":r||a?"true":undefined,"aria-label":n?"Create new tag: ".concat(e.text):undefined,"data-index":i,onMouseDown:this.handleOptionMouseDown(e),onMouseEnter:this.handleOptionMouseEnter(i,e)},n?h("pds-box",{class:"pds-multiselect__create-option","align-items":"center",gap:"xs"},h("pds-icon",{name:"add",size:"small"}),h("pds-text",null,'Add "',e.text,'"')):h("pds-checkbox",{componentId:"".concat(this.componentId,"-checkbox-").concat(i),checked:s,label:e.text,disabled:r,style:{pointerEvents:"none"}}))};e.prototype.renderSelectedItemsList=function(){if(this.hideSelectedItems||this.selectedItems.length===0)return null;return h("div",{class:"pds-multiselect__selected-section"},h("ul",{class:"pds-multiselect__selected-list",role:"list"},this.selectedItems.map((function(e){return h("li",{key:String(e.id),class:"pds-multiselect__selected-item"},e.text)}))))};e.prototype.renderDropdown=function(){var e=this;if(!this.isOpen)return null;var i=this.getFilteredOptions();var t=this.ensureValueArray();var s=!!this.el.querySelector('[slot="empty"]');var n=!!this.el.querySelector('[slot="loading"]');return h("div",{class:"pds-multiselect__panel",ref:function(i){return e.panelEl=i},style:{minWidth:this.minWidth}},h("div",{class:"pds-multiselect__search"},h("pds-icon",{name:"search",size:"small"}),h("input",{ref:function(i){return e.searchInputEl=i},type:"text",class:"pds-multiselect__search-input",placeholder:this.searchPlaceholder,value:this.searchQuery,"aria-label":"Search options","aria-controls":"".concat(this.componentId,"-listbox"),"aria-activedescendant":this.highlightedIndex>=0?"".concat(this.componentId,"-option-").concat(this.highlightedIndex):undefined,role:"combobox","aria-haspopup":"listbox","aria-expanded":"true","aria-autocomplete":"list",autocomplete:"off",onInput:this.handleSearchInputChange,onKeyDown:this.handleSearchInputKeyDown})),this.renderSelectedItemsList(),h("ul",{class:"pds-multiselect__listbox",role:"listbox","aria-multiselectable":"true","aria-label":this.label||"Options",id:"".concat(this.componentId,"-listbox"),ref:function(i){return e.listboxEl=i},style:{maxHeight:this.maxHeight},onScroll:this.handleScroll},this.loading&&h("li",{class:"pds-multiselect__loading",role:"presentation"},n?h("slot",{name:"loading"}):h("pds-loader",{size:"small"})),!this.loading&&i.length===0&&h("li",{class:"pds-multiselect__empty",role:"presentation"},s?h("slot",{name:"empty"}):h("span",null,"No options found")),this.getGroupedRenderItems(i).map((function(i,s){if(i.type==="group"){return h("li",{key:"group-".concat(s),role:"group","aria-label":i.group,class:"pds-multiselect__group"},h("span",{class:"pds-multiselect__group-header","aria-hidden":"true"},i.group),h("ul",{class:"pds-multiselect__group-list",role:"presentation"},i.options.map((function(i){var s=i.option,n=i.index;return e.renderOption(s,n,t)}))))}return e.renderOption(i.option,i.index,t)})),this.hasMore&&!this.loading&&h("li",{class:"pds-multiselect__load-more",role:"presentation"},h("pds-loader",{size:"small"}))))};e.prototype.renderInlinePills=function(){var e=this;var i=this.selectedItems.length>0;if(!i){return h("span",{class:"pds-multiselect__trigger-text pds-multiselect__trigger-text--placeholder"},this.placeholder||"Select...")}var t=this.disabled?"text":"tag";var s=this.selectedItems.slice(0,Math.max(1,this.maxInlinePills));var n=this.selectedItems.length-s.length;return h("div",{class:"pds-multiselect__pill-list pds-multiselect__pill-list--inline","aria-label":"Selected items"},s.map((function(i){return h("pds-chip",{key:String(i.id),"component-id":"".concat(e.componentId,"-pill-").concat(i.id),variant:t,size:"sm",sentiment:"neutral",onPdsTagCloseClick:e.handlePillRemove(i)},i.text)})),n>0&&h("span",{class:"pds-multiselect__pill-overflow"},"+",n))};e.prototype.renderBelowPills=function(){var e=this;if(this.selectedItems.length===0)return null;var i=this.disabled?"text":"tag";return h("div",{class:"pds-multiselect__pill-list pds-multiselect__pill-list--below","aria-label":"Selected items"},this.selectedItems.map((function(t){return h("pds-chip",{key:String(t.id),"component-id":"".concat(e.componentId,"-pill-").concat(t.id),variant:i,size:"md",sentiment:"neutral",onPdsTagCloseClick:e.handlePillRemove(t)},t.text)})))};e.prototype.getTriggerText=function(){var e=this.selectedItems.length;if(e===0||this.selectedDisplay==="pill"&&this.pillPosition==="below"){return this.placeholder||"Select..."}return"".concat(e," item").concat(e===1?"":"s")};e.prototype.render=function(){var e=this;var i=this.selectedItems.length>0;return h(Host,{key:"086b6d2d199b35110e64ba1da3c12f1a81360581","aria-disabled":this.disabled?"true":null},h("div",{key:"c2faf217a97de056a9111a78e7077025e4ab5ee1",class:"pds-multiselect",onFocusout:this.handleContainerFocusOut},this.label&&h("label",{key:"0aff86a3a0054aef256bac5c0204dd914a9bd3ae",id:"".concat(this.componentId,"-label"),htmlFor:this.componentId,class:{"pds-multiselect__label":true,"visually-hidden":this.hideLabel}},this.label),h("div",{key:"3b92119871dc32bb3c9a559be816bdece2fc30a6",class:"pds-multiselect__wrapper",ref:function(i){return e.containerEl=i},style:{width:this.triggerWidth}},this.selectedDisplay==="pill"&&this.pillPosition==="inline"?h("div",{ref:function(i){return e.pillInlineTriggerEl=i||undefined},part:"trigger",class:{"pds-multiselect__trigger":true,"pds-multiselect__trigger--open":this.isOpen,"pds-multiselect__trigger--disabled":this.disabled,"pds-multiselect__trigger--invalid":this.invalid||!!this.errorMessage,"pds-multiselect__trigger--has-value":i,"pds-multiselect__trigger--pill-inline":true},onClick:this.handleTriggerClick},this.renderInlinePills(),h("button",{ref:function(i){return e.triggerEl=i},type:"button",id:this.componentId,part:"pill-toggle",class:"pds-multiselect__pill-toggle",disabled:this.disabled,"aria-expanded":this.isOpen?"true":"false","aria-haspopup":"listbox","aria-labelledby":this.label?"".concat(this.componentId,"-label"):undefined,"aria-required":this.required?"true":undefined,"aria-describedby":assignDescription(this.componentId,this.invalid||!!this.errorMessage,this.errorMessage||this.helperMessage),"aria-invalid":this.invalid||!!this.errorMessage?"true":undefined,onKeyDown:this.handleTriggerKeyDown},h("pds-icon",{class:"pds-multiselect__icon",icon:enlarge}))):h("button",{ref:function(i){return e.triggerEl=i},type:"button",part:"trigger",class:{"pds-multiselect__trigger":true,"pds-multiselect__trigger--open":this.isOpen,"pds-multiselect__trigger--disabled":this.disabled,"pds-multiselect__trigger--invalid":this.invalid||!!this.errorMessage,"pds-multiselect__trigger--has-value":i},id:this.componentId,disabled:this.disabled,"aria-required":this.required?"true":undefined,"aria-expanded":this.isOpen?"true":"false","aria-haspopup":"listbox","aria-describedby":assignDescription(this.componentId,this.invalid||!!this.errorMessage,this.errorMessage||this.helperMessage),"aria-invalid":this.invalid||!!this.errorMessage?"true":undefined,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown},h("span",{class:{"pds-multiselect__trigger-text":true,"pds-multiselect__trigger-text--placeholder":!i||this.selectedDisplay==="pill"&&this.pillPosition==="below"}},this.getTriggerText()),h("pds-icon",{class:"pds-multiselect__icon",icon:enlarge})),this.renderDropdown()),this.selectedDisplay==="pill"&&this.pillPosition==="below"&&this.renderBelowPills(),h("span",{key:"07d6a6bf9ccc2fe8bfcf9502a1cd4b7abf5c5e6f",class:"visually-hidden","aria-live":"polite","aria-atomic":"true"},this.removalAnnouncement),this.helperMessage&&!(this.errorMessage&&this.errorMessage.length>0)&&h("p",{key:"a94bb6f31805d31ec3cd5b5f2ca8b1984f4d41d1",class:"pds-multiselect__helper",id:messageId(this.componentId,"helper")},this.helperMessage),this.errorMessage&&h("p",{key:"15afc6b9313e1fe22bd56b00eee1ebcf9e085c2e",class:"pds-multiselect__error",id:messageId(this.componentId,"error")},h("pds-icon",{key:"452814577b14ca8f891b101903bd1a7a7e5d8bb1",icon:danger,size:"small"}),this.errorMessage),h("div",{key:"d8ce787886e666303759cd2654c78b44269a40ff",style:{display:"none"}},h("slot",{key:"8295376fb03b23d44c5baeca9bc967514e433e0f"}))))};Object.defineProperty(e,"formAssociated",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{debounce:["setupDebounce"],value:["valueChanged"],options:["optionsChanged"],internalOptions:["internalOptionsChanged"]}},enumerable:false,configurable:true});return e}();PdsMultiselect.style=pdsMultiselectCss;export{PdsMultiselect as pds_multiselect};
|
|
1
|
+
import{__awaiter,__generator,__spreadArray}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-B2f84Zog.js";import{a as autoUpdate,c as computePosition,o as offset,f as flip,s as shift,b as size}from"./floating-ui.dom-DDtwbwIl.js";import{d as debounceEvent}from"./utils-tJa4KYNO.js";import{i as isSpecTest,a as assignDescription,m as messageId}from"./form-C3xDZBme.js";import{e as enlarge,b as danger}from"./index-D4ys0pep.js";var pdsMultiselectCss=":host{display:block}:host([aria-disabled=true]) .pds-multiselect__trigger{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}:host([aria-disabled=true]) .pds-multiselect__icon{color:var(--pine-color-text-disabled)}.pds-multiselect{position:relative}.pds-multiselect__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-multiselect__wrapper{position:relative}.pds-multiselect__trigger{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-450);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;text-align:start;-webkit-transition:border-color var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, box-shadow var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease, box-shadow var(--pine-motion-duration-base) ease, -webkit-box-shadow var(--pine-motion-duration-base) ease;width:100%}.pds-multiselect__trigger:hover:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-hover)}.pds-multiselect__trigger:focus:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid{background-color:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--invalid:focus{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__trigger.pds-multiselect__trigger--disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-multiselect__trigger-text{color:var(--pine-color-text-strong);-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__trigger-text.pds-multiselect__trigger-text--placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__trigger--disabled .pds-multiselect__trigger-text{color:var(--pine-color-text-disabled)}.pds-multiselect__icon{color:var(--pine-color-icon);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__pill-list{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-2xs)}.pds-multiselect__pill-list--inline{-ms-flex:1;flex:1;min-width:0}.pds-multiselect__pill-list--below{-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-multiselect__pill-overflow{color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm-medium);white-space:nowrap}.pds-multiselect__trigger--pill-inline{-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-2xs);min-height:var(--pine-dimension-450);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm)}.pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--open{border-color:var(--pine-color-border-active)}.pds-multiselect__trigger--pill-inline:focus-within:not(.pds-multiselect__trigger--disabled){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-multiselect__trigger--pill-inline.pds-multiselect__trigger--invalid:focus-within{outline-color:var(--pine-color-focus-ring-danger)}.pds-multiselect__pill-toggle{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border-width:0;cursor:pointer;display:-ms-flexbox;display:flex;padding:0}.pds-multiselect__pill-toggle:focus{outline:3px solid transparent}.pds-multiselect__trigger--disabled .pds-multiselect__pill-toggle{cursor:not-allowed;pointer-events:none}.pds-multiselect__panel{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute;z-index:var(--pine-z-index-raised)}.pds-multiselect__search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}.pds-multiselect__search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__search-input{background:transparent;border:var(--pine-dimension-none);color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:var(--pine-dimension-none);outline:none}.pds-multiselect__search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-multiselect__selected-section{-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);padding:var(--pine-dimension-xs)}.pds-multiselect__selected-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__selected-item{color:var(--pine-color-text-strong);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);overflow:hidden;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);text-overflow:ellipsis;white-space:nowrap}.pds-multiselect__listbox{background:transparent;border:var(--pine-dimension-none);-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none;margin:var(--pine-dimension-none);overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-multiselect__group-header{color:var(--pine-color-text-muted);display:block;font:var(--pine-typography-body-sm-medium);letter-spacing:var(--pine-letter-spacing);padding:var(--pine-dimension-sm) var(--pine-dimension-xs) var(--pine-dimension-2xs);text-transform:uppercase}.pds-multiselect__listbox>li:first-child>.pds-multiselect__group-header{-webkit-padding-before:var(--pine-dimension-xs);padding-block-start:var(--pine-dimension-xs)}.pds-multiselect__group-list{list-style:none;margin:var(--pine-dimension-none);padding:var(--pine-dimension-none)}.pds-multiselect__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-xs);cursor:pointer;display:-ms-flexbox;display:flex;padding:var(--pine-dimension-2xs) var(--pine-dimension-xs);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-multiselect__option pds-checkbox{pointer-events:none;width:100%}.pds-multiselect__option:hover:not(.pds-multiselect__option--disabled),.pds-multiselect__option.pds-multiselect__option--highlighted:not(.pds-multiselect__option--disabled){background:var(--pine-color-background-muted)}.pds-multiselect__option.pds-multiselect__option--disabled{cursor:not-allowed;opacity:0.5}.pds-multiselect__option:focus-visible{outline:var(--pine-dimension-none)}.pds-multiselect__create-option{color:var(--pine-color-text-strong);width:100%}.pds-multiselect__create-option pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none)}.pds-multiselect__empty,.pds-multiselect__loading{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-muted);display:-ms-flexbox;display:flex;font:var(--pine-typography-body);-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-sm)}.pds-multiselect__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-xs)}.pds-multiselect__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs);-webkit-margin-start:var(--pine-dimension-none);margin-inline-start:var(--pine-dimension-none)}.pds-multiselect__error pds-icon{-ms-flex-negative:var(--pine-dimension-none);flex-shrink:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.visually-hidden{border:var(--pine-dimension-none);clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:var(--pine-dimension-none);position:absolute;white-space:nowrap;width:1px}";var PdsMultiselect=function(){function e(e){var i=this;registerInstance(this,e);this.pdsMultiselectChange=createEvent(this,"pdsMultiselectChange");this.pdsMultiselectSearch=createEvent(this,"pdsMultiselectSearch");this.pdsMultiselectLoadOptions=createEvent(this,"pdsMultiselectLoadOptions");this.pdsMultiselectCreate=createEvent(this,"pdsMultiselectCreate");this.pdsMultiselectDismiss=createEvent(this,"pdsMultiselectDismiss");this.placeholder="Select...";this.searchPlaceholder="Find...";this.closePanelOnSelect=false;this.value=[];this.disabled=false;this.asyncMethod="GET";this.debounce=300;this.fetchTimeout=3e4;this.maxHeight="300px";this.triggerWidth="100%";this.minWidth="250px";this.hideLabel=false;this.hideSelectedItems=false;this.selectedDisplay="count";this.pillPosition="inline";this.maxInlinePills=3;this.required=false;this.loading=false;this.csrfHeaderName="X-CSRF-Token";this.isOpen=false;this.searchQuery="";this.highlightedIndex=-1;this.internalOptions=[];this.selectedItems=[];this.currentPage=1;this.hasMore=false;this.creating=false;this.removalAnnouncement="";this.isOpening=false;this.isClosingViaSelection=false;this.initialAsyncFetchTriggered=false;this.pendingUnresolvedFetch=false;this.handleTriggerClick=function(e){if(i.disabled)return;if(e&&i.selectedDisplay==="pill"&&i.pillPosition==="inline"){var t=e.composedPath().some((function(e){var i;return((i=e.tagName)===null||i===void 0?void 0:i.toLowerCase())==="pds-chip"}));if(t)return}if(i.isOpen){i.closeDropdown()}else{i.openDropdown()}};this.handleTriggerKeyDown=function(e){if(e.target!==i.triggerEl)return;switch(e.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":e.preventDefault();if(!i.isOpen){i.openDropdown()}break}};this.handleSearchInputChange=function(e){var t=e.target;i.searchQuery=t.value;i.highlightedIndex=-1;i.pdsMultiselectSearch.emit({query:i.searchQuery});if(i.asyncUrl){i.debouncedFetchAsyncOptions(i.searchQuery,1)}};this.handleSearchInputKeyDown=function(e){var t,s,n;var r=i.getFilteredOptions();switch(e.key){case"ArrowDown":{e.preventDefault();var o=i.highlightedIndex+1;while(o<r.length&&((t=r[o])===null||t===void 0?void 0:t.disabled)){o++}if(o<r.length){i.highlightedIndex=o;i.scrollOptionIntoView()}break}case"ArrowUp":{e.preventDefault();var l=Math.max(i.highlightedIndex-1,0);while(l>0&&((s=r[l])===null||s===void 0?void 0:s.disabled)){l--}if(!((n=r[l])===null||n===void 0?void 0:n.disabled)){i.highlightedIndex=l;i.scrollOptionIntoView()}break}case"Enter":e.preventDefault();if(i.highlightedIndex>=0){var a=r[i.highlightedIndex];if(a){i.selectOption(a)}}break;case"Tab":i.closeDropdown();break}};this.handleContainerFocusOut=function(){setTimeout((function(){var e;if(!i.isOpen||i.isOpening||i.isClosingViaSelection)return;var t=document.activeElement;var s=(e=i.el.shadowRoot)===null||e===void 0?void 0:e.contains(t);var n=t===i.el;if(!s&&!n){i.pdsMultiselectDismiss.emit();i.closeDropdown()}}),0)};this.handleOptionMouseDown=function(e){return function(t){t.preventDefault();i.toggleOption(e)}};this.handleOptionMouseEnter=function(e,t){return function(){if(t.disabled)return;i.highlightedIndex=e}};this.handleScroll=function(e){if(!i.asyncUrl||!i.hasMore||i.loading)return;var t=e.target;var s=t.scrollHeight-t.scrollTop-t.clientHeight;if(s<50){i.pdsMultiselectLoadOptions.emit({query:i.searchQuery,page:i.currentPage+1});i.debouncedFetchAsyncOptions(i.searchQuery,i.currentPage+1)}};this.handlePillRemove=function(e){return function(){var t,s;if(i.disabled)return;var n=String(e.id);i.value=i.value.filter((function(e){return e!==n}));i.syncSelectedItems();i.pdsMultiselectChange.emit({values:i.value,items:i.selectedItems});i.removalAnnouncement="";queueMicrotask((function(){i.removalAnnouncement="".concat(e.text," removed")}));i.isClosingViaSelection=true;if(i.isOpen){(t=i.searchInputEl)===null||t===void 0?void 0:t.focus()}else{(s=i.triggerEl)===null||s===void 0?void 0:s.focus()}setTimeout((function(){i.isClosingViaSelection=false}),0)}}}e.prototype.connectedCallback=function(){if(this.el.attachInternals&&!this.internals){this.internals=this.el.attachInternals()}};e.prototype.componentWillLoad=function(){this.originalSearchEmitter=this.pdsMultiselectSearch;this.syncSelectedItems()};e.prototype.componentDidLoad=function(){var e=this;this.setupDebounce();this.setupMutationObserver();this.setupSlotChangeListener();this.updateFormValue();requestAnimationFrame((function(){e.updateOptionsFromSlot();e.syncSelectedItems()}));if(this.asyncUrl&&this.ensureValueArray().length>0){this.initialAsyncFetchTriggered=true;this.fetchOptions("",1)}};e.prototype.setupSlotChangeListener=function(){var e=this;var i;var t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("slot:not([name])");if(t){t.addEventListener("slotchange",(function(){e.updateOptionsFromSlot();e.syncSelectedItems()}));this.updateOptionsFromSlot()}};e.prototype.disconnectedCallback=function(){var e,i;(e=this.observer)===null||e===void 0?void 0:e.disconnect();(i=this.cleanupAutoUpdate)===null||i===void 0?void 0:i.call(this);this.clearAsyncFetchState()};e.prototype.setupDebounce=function(){var e=this,i=e.pdsMultiselectSearch,t=e.debounce,s=e.originalSearchEmitter;this.pdsMultiselectSearch=t===undefined?s!==null&&s!==void 0?s:i:debounceEvent(i,t)};e.prototype.valueChanged=function(e){if(typeof e==="string"){try{var i=JSON.parse(e);if(Array.isArray(i)){this.value=i;return}}catch(i){this.value=e?[e]:[];return}}this.syncSelectedItems();this.updateFormValue();if(this.asyncUrl){var t=this.ensureValueArray();var s=t.length>0&&this.selectedItems.length<t.length;if(s){if(this.loading){this.pendingUnresolvedFetch=true}else{this.fetchOptions("",1)}}}};e.prototype.optionsChanged=function(){if(this.options){this.internalOptions=__spreadArray([],this.options,true)}};e.prototype.internalOptionsChanged=function(){this.syncSelectedItems()};e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(i){(e=this.triggerEl)===null||e===void 0?void 0:e.focus();return[2]}))}))};e.prototype.clear=function(){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(i){e=this.value.length>0||this.searchQuery!=="";this.value=[];this.searchQuery="";this.syncSelectedItems();this.updateFormValue();if(e){this.pdsMultiselectChange.emit({values:[],items:[]})}return[2]}))}))};e.prototype.handleWindowKeyDown=function(e){var i;if(!this.isOpen)return;if(e.key==="Escape"){e.preventDefault();this.pdsMultiselectDismiss.emit();this.closeDropdown();(i=this.triggerEl)===null||i===void 0?void 0:i.focus()}};e.prototype.setupMutationObserver=function(){var e=this;this.observer=new MutationObserver((function(){e.updateOptionsFromSlot()}));this.observer.observe(this.el,{childList:true,subtree:true})};e.prototype.updateOptionsFromSlot=function(){var e;var i=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot:not([name])");if(!i)return;var t=[];i.assignedElements({flatten:true}).forEach((function(e){var i;if(e.tagName==="OPTGROUP"){var s=e;var n=s.label;var r=s.disabled;s.querySelectorAll("option").forEach((function(e){var i;var s={id:e.value,text:((i=e.textContent)===null||i===void 0?void 0:i.trim())||e.value,disabled:e.disabled||r||undefined};if(n){s.group=n}t.push(s)}))}else if(e.tagName==="OPTION"){var o=e;t.push({id:o.value,text:((i=o.textContent)===null||i===void 0?void 0:i.trim())||o.value,disabled:o.disabled||undefined})}}));if(t.length>0&&!this.asyncUrl&&!this.options){this.internalOptions=t}};e.prototype.clearAsyncFetchState=function(){var e;if(this.fetchDebounceTimer!==undefined){window.clearTimeout(this.fetchDebounceTimer);this.fetchDebounceTimer=undefined}if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}(e=this.abortController)===null||e===void 0?void 0:e.abort();this.abortController=undefined};e.prototype.debouncedFetchAsyncOptions=function(e,i){var t=this;if(i===void 0){i=1}var s;if(!this.asyncUrl)return;if(this.fetchDebounceTimer!==undefined){window.clearTimeout(this.fetchDebounceTimer)}var n=Math.max(0,(s=this.debounce)!==null&&s!==void 0?s:0);this.fetchDebounceTimer=window.setTimeout((function(){t.fetchDebounceTimer=undefined;t.fetchOptions(e,i)}),n)};e.prototype.syncSelectedItems=function(){var e=this.ensureValueArray();var i=this.getAllOptions();var t=[];var s=new Map(this.selectedItems.map((function(e){return[String(e.id),e]})));e.forEach((function(e){var n=i.find((function(i){return String(i.id)===String(e)}));if(n){t.push(n)}else if(s.has(String(e))){t.push(s.get(String(e)))}}));this.selectedItems=t};e.prototype.ensureValueArray=function(){if(typeof this.value==="string"){try{var e=JSON.parse(this.value);if(Array.isArray(e)){this.value=e;return e}}catch(e){var i=this.value;this.value=i?[i]:[];return this.value}}return Array.isArray(this.value)?this.value:[]};e.prototype.getAllOptions=function(){return this.options||this.internalOptions};e.prototype.getFilteredOptions=function(){var e=this.getAllOptions();var i=this.searchQuery.toLowerCase();var t=e.filter((function(e){if(i){return e.text.toLowerCase().includes(i)}return true}));if(this.createUrl&&this.searchQuery.trim()&&t.length===0){return[{id:"__create__",text:this.searchQuery.trim(),isCreateOption:true}]}return t};e.prototype.updateFormValue=function(){var e=this;var i;if(isSpecTest())return;if((i=this.internals)===null||i===void 0?void 0:i.setFormValue){var t=this.ensureValueArray();var s=new FormData;t.forEach((function(i){if(e.name){s.append(e.name,i)}}));this.internals.setFormValue(s);if(this.required&&t.length===0){this.internals.setValidity({valueMissing:true},"Please select at least one option.",this.triggerEl)}else{this.internals.setValidity({})}}};e.prototype.getCsrfToken=function(){if(this.csrfToken){return this.csrfToken}var e=document.querySelector('meta[name="csrf-token"]');return(e===null||e===void 0?void 0:e.content)||null};e.prototype.fetchOptions=function(e){return __awaiter(this,arguments,void 0,(function(e,i){var t,s,n,r,o,l,a,d,c,p,u;var h=this;if(i===void 0){i=1}return __generator(this,(function(f){switch(f.label){case 0:if(!this.asyncUrl)return[2];(t=this.abortController)===null||t===void 0?void 0:t.abort();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}this.abortController=new AbortController;this.loading=true;this.fetchTimeoutTimer=window.setTimeout((function(){var e;(e=h.abortController)===null||e===void 0?void 0:e.abort();h.fetchTimeoutTimer=undefined}),this.fetchTimeout);f.label=1;case 1:f.trys.push([1,4,5,6]);s=void 0;try{s=new URL(this.asyncUrl,window.location.origin)}catch(e){throw new TypeError("Invalid asyncUrl: ".concat(this.asyncUrl))}if(this.asyncMethod==="GET"){s.searchParams.set("search",e);s.searchParams.set("page",String(i))}n=this.getCsrfToken();r={"Content-Type":"application/json",Accept:"application/json"};if(n){o=this.csrfHeaderName||"X-CSRF-Token";r[o]=n}return[4,fetch(s.toString(),Object.assign({method:this.asyncMethod,signal:this.abortController.signal,headers:r},this.asyncMethod==="POST"&&{body:JSON.stringify({search:e,page:i})}))];case 2:l=f.sent();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}if(!l.ok)throw new Error("Failed to fetch options");return[4,l.json()];case 3:a=f.sent();d=a.results.map((function(e){if(h.formatResult){return h.formatResult(e)}if(typeof e==="object"&&e!==null){return Object.assign({id:e.id,text:e.text},e)}return{id:String(e),text:String(e)}}));if(i===1){this.internalOptions=d}else{this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),d,true)}this.hasMore=a.totalCount?this.internalOptions.length<a.totalCount:false;this.currentPage=i;return[3,6];case 4:c=f.sent();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}if(c.name!=="AbortError"){console.error("PdsMultiselect: Failed to fetch options",c)}return[3,6];case 5:this.loading=false;if(this.pendingUnresolvedFetch){this.pendingUnresolvedFetch=false;p=this.ensureValueArray();u=p.length>0&&this.selectedItems.length<p.length;if(u){this.fetchOptions("",1)}}return[7];case 6:return[2]}}))}))};e.prototype.createOption=function(e){return __awaiter(this,void 0,void 0,(function(){var i,t,s,n,r,o,l,a;var d=this;return __generator(this,(function(c){switch(c.label){case 0:if(!this.createUrl||!e.trim())return[2];if(this.creating)return[2];this.creating=true;c.label=1;case 1:c.trys.push([1,4,5,6]);i=new URL(this.createUrl,window.location.origin);t=this.getCsrfToken();s={"Content-Type":"application/json",Accept:"application/json"};if(t){n=this.csrfHeaderName||"X-CSRF-Token";s[n]=t}return[4,fetch(i.toString(),{method:"POST",headers:s,body:JSON.stringify({text:e.trim()})})];case 2:r=c.sent();if(!r.ok)throw new Error("Failed to create option");return[4,r.json()];case 3:o=c.sent();l=Object.assign({id:o.id,text:o.text},o);this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),[l],false);this.value=__spreadArray(__spreadArray([],this.value,true),[String(l.id)],false);this.syncSelectedItems();this.pdsMultiselectCreate.emit({query:e.trim(),newOption:l});this.pdsMultiselectChange.emit({values:this.value,items:this.selectedItems});this.searchQuery="";this.highlightedIndex=-1;requestAnimationFrame((function(){var e;(e=d.searchInputEl)===null||e===void 0?void 0:e.focus()}));return[3,6];case 4:a=c.sent();console.error("PdsMultiselect: Failed to create option",a);return[3,6];case 5:this.creating=false;return[7];case 6:return[2]}}))}))};e.prototype.openDropdown=function(){var e=this;if(this.disabled)return;this.isOpening=true;this.isOpen=true;this.highlightedIndex=-1;if(this.asyncUrl&&this.internalOptions.length===0&&!this.initialAsyncFetchTriggered){this.debouncedFetchAsyncOptions(this.searchQuery,1)}this.initialAsyncFetchTriggered=false;requestAnimationFrame((function(){var i;e.positionDropdown();(i=e.searchInputEl)===null||i===void 0?void 0:i.focus();setTimeout((function(){e.isOpening=false}),50)}))};e.prototype.closeDropdown=function(){var e=this;this.isOpen=false;this.highlightedIndex=-1;this.searchQuery="";if(this.isClosingViaSelection){setTimeout((function(){e.isClosingViaSelection=false}),0)}if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=undefined}};e.prototype.positionDropdown=function(){var e=this;if(!this.containerEl||!this.panelEl)return;var i=this.pillInlineTriggerEl||this.triggerEl||this.containerEl;var t=this,s=t.minWidth,n=t.panelWidth;var r=function(){computePosition(i,e.panelEl,{placement:"bottom-start",strategy:"absolute",middleware:[offset(12),flip(),shift({padding:8}),size({apply:function(e){var i=e.rects,t=e.elements;Object.assign(t.floating.style,{width:n!==null&&n!==void 0?n:"".concat(i.reference.width,"px"),minWidth:s})}})]}).then((function(i){var t=i.x,s=i.y;if(e.panelEl){e.panelEl.style.left="".concat(t,"px");e.panelEl.style.top="".concat(s,"px")}}))};r();var o=autoUpdate(i,this.panelEl,r);this.cleanupAutoUpdate=function(){o();e.clearAsyncFetchState()}};e.prototype.scrollOptionIntoView=function(){var e=this;requestAnimationFrame((function(){var i;var t=(i=e.listboxEl)===null||i===void 0?void 0:i.querySelector('[data-index="'.concat(e.highlightedIndex,'"]'));t===null||t===void 0?void 0:t.scrollIntoView({block:"nearest",behavior:"smooth"})}))};e.prototype.toggleOption=function(e){var i,t;if(e.disabled)return;if(e.isCreateOption){if(!this.creating){this.createOption(this.searchQuery)}return}var s=String(e.id);var n=this.value.includes(s);if(n){this.value=this.value.filter((function(e){return e!==s}))}else{if(this.maxSelections&&this.value.length>=this.maxSelections){return}this.value=__spreadArray(__spreadArray([],this.value,true),[s],false)}this.syncSelectedItems();this.pdsMultiselectChange.emit({values:this.value,items:this.selectedItems});if(this.closePanelOnSelect){this.isClosingViaSelection=true;this.closeDropdown();(i=this.triggerEl)===null||i===void 0?void 0:i.focus()}else{(t=this.searchInputEl)===null||t===void 0?void 0:t.focus()}};e.prototype.selectOption=function(e){this.toggleOption(e)};e.prototype.getGroupedRenderItems=function(e){var i=[];var t=null;e.forEach((function(e,s){var n=e.group;if(n!==undefined){if(!t||t.group!==n){t={type:"group",group:n,options:[]};i.push(t)}t.options.push({option:e,index:s})}else{t=null;i.push({type:"option",option:e,index:s})}}));return i};e.prototype.renderOption=function(e,i,t){var s=t.includes(String(e.id));var n=e.isCreateOption;var r=e.disabled;var o=i===this.highlightedIndex&&!n;var l="".concat(this.componentId,"-option-").concat(i);var a=n&&this.creating;return h("li",{key:String(e.id),id:l,class:{"pds-multiselect__option":true,"pds-multiselect__option--highlighted":o,"pds-multiselect__option--selected":s,"pds-multiselect__option--create":n,"pds-multiselect__option--disabled":r||a},role:"option","aria-selected":s?"true":"false","aria-disabled":r||a?"true":undefined,"aria-label":n?"Create new tag: ".concat(e.text):undefined,"data-index":i,onMouseDown:this.handleOptionMouseDown(e),onMouseEnter:this.handleOptionMouseEnter(i,e)},n?h("pds-box",{class:"pds-multiselect__create-option","align-items":"center",gap:"xs"},h("pds-icon",{name:"add",size:"small"}),h("pds-text",null,'Add "',e.text,'"')):h("pds-checkbox",{componentId:"".concat(this.componentId,"-checkbox-").concat(i),checked:s,label:e.text,disabled:r,style:{pointerEvents:"none"}}))};e.prototype.renderSelectedItemsList=function(){if(this.hideSelectedItems||this.selectedItems.length===0)return null;return h("div",{class:"pds-multiselect__selected-section"},h("ul",{class:"pds-multiselect__selected-list",role:"list"},this.selectedItems.map((function(e){return h("li",{key:String(e.id),class:"pds-multiselect__selected-item"},e.text)}))))};e.prototype.renderDropdown=function(){var e=this;if(!this.isOpen)return null;var i=this.getFilteredOptions();var t=this.ensureValueArray();var s=!!this.el.querySelector('[slot="empty"]');var n=!!this.el.querySelector('[slot="loading"]');return h("div",{class:"pds-multiselect__panel",ref:function(i){return e.panelEl=i},style:{minWidth:this.minWidth}},h("div",{class:"pds-multiselect__search"},h("pds-icon",{name:"search",size:"small"}),h("input",{ref:function(i){return e.searchInputEl=i},type:"text",class:"pds-multiselect__search-input",placeholder:this.searchPlaceholder,value:this.searchQuery,"aria-label":"Search options","aria-controls":"".concat(this.componentId,"-listbox"),"aria-activedescendant":this.highlightedIndex>=0?"".concat(this.componentId,"-option-").concat(this.highlightedIndex):undefined,role:"combobox","aria-haspopup":"listbox","aria-expanded":"true","aria-autocomplete":"list",autocomplete:"off",onInput:this.handleSearchInputChange,onKeyDown:this.handleSearchInputKeyDown})),this.renderSelectedItemsList(),h("ul",{class:"pds-multiselect__listbox",role:"listbox","aria-multiselectable":"true","aria-label":this.label||"Options",id:"".concat(this.componentId,"-listbox"),ref:function(i){return e.listboxEl=i},style:{maxHeight:this.maxHeight},onScroll:this.handleScroll},this.loading&&h("li",{class:"pds-multiselect__loading",role:"presentation"},n?h("slot",{name:"loading"}):h("pds-loader",{size:"small"})),!this.loading&&i.length===0&&h("li",{class:"pds-multiselect__empty",role:"presentation"},s?h("slot",{name:"empty"}):h("span",null,"No options found")),this.getGroupedRenderItems(i).map((function(i,s){if(i.type==="group"){return h("li",{key:"group-".concat(s),role:"group","aria-label":i.group,class:"pds-multiselect__group"},h("span",{class:"pds-multiselect__group-header","aria-hidden":"true"},i.group),h("ul",{class:"pds-multiselect__group-list",role:"presentation"},i.options.map((function(i){var s=i.option,n=i.index;return e.renderOption(s,n,t)}))))}return e.renderOption(i.option,i.index,t)})),this.hasMore&&!this.loading&&h("li",{class:"pds-multiselect__load-more",role:"presentation"},h("pds-loader",{size:"small"}))))};e.prototype.renderInlinePills=function(){var e=this;var i=this.selectedItems.length>0;if(!i){return h("span",{class:"pds-multiselect__trigger-text pds-multiselect__trigger-text--placeholder"},this.placeholder||"Select...")}var t=this.disabled?"text":"tag";var s=this.selectedItems.slice(0,Math.max(1,this.maxInlinePills));var n=this.selectedItems.length-s.length;return h("div",{class:"pds-multiselect__pill-list pds-multiselect__pill-list--inline","aria-label":"Selected items"},s.map((function(i){return h("pds-chip",{key:String(i.id),"component-id":"".concat(e.componentId,"-pill-").concat(i.id),variant:t,size:"sm",sentiment:"neutral",onPdsTagCloseClick:e.handlePillRemove(i)},i.text)})),n>0&&h("span",{class:"pds-multiselect__pill-overflow"},"+",n))};e.prototype.renderBelowPills=function(){var e=this;if(this.selectedItems.length===0)return null;var i=this.disabled?"text":"tag";return h("div",{class:"pds-multiselect__pill-list pds-multiselect__pill-list--below","aria-label":"Selected items"},this.selectedItems.map((function(t){return h("pds-chip",{key:String(t.id),"component-id":"".concat(e.componentId,"-pill-").concat(t.id),variant:i,size:"md",sentiment:"neutral",onPdsTagCloseClick:e.handlePillRemove(t)},t.text)})))};e.prototype.getTriggerText=function(){var e=this.selectedItems.length;if(e===0||this.selectedDisplay==="pill"&&this.pillPosition==="below"){return this.placeholder||"Select..."}return"".concat(e," item").concat(e===1?"":"s")};e.prototype.render=function(){var e=this;var i=this.selectedItems.length>0;return h(Host,{key:"086b6d2d199b35110e64ba1da3c12f1a81360581","aria-disabled":this.disabled?"true":null},h("div",{key:"c2faf217a97de056a9111a78e7077025e4ab5ee1",class:"pds-multiselect",onFocusout:this.handleContainerFocusOut},this.label&&h("label",{key:"0aff86a3a0054aef256bac5c0204dd914a9bd3ae",id:"".concat(this.componentId,"-label"),htmlFor:this.componentId,class:{"pds-multiselect__label":true,"visually-hidden":this.hideLabel}},this.label),h("div",{key:"3b92119871dc32bb3c9a559be816bdece2fc30a6",class:"pds-multiselect__wrapper",ref:function(i){return e.containerEl=i},style:{width:this.triggerWidth}},this.selectedDisplay==="pill"&&this.pillPosition==="inline"?h("div",{ref:function(i){return e.pillInlineTriggerEl=i||undefined},part:"trigger",class:{"pds-multiselect__trigger":true,"pds-multiselect__trigger--open":this.isOpen,"pds-multiselect__trigger--disabled":this.disabled,"pds-multiselect__trigger--invalid":this.invalid||!!this.errorMessage,"pds-multiselect__trigger--has-value":i,"pds-multiselect__trigger--pill-inline":true},onClick:this.handleTriggerClick},this.renderInlinePills(),h("button",{ref:function(i){return e.triggerEl=i},type:"button",id:this.componentId,part:"pill-toggle",class:"pds-multiselect__pill-toggle",disabled:this.disabled,"aria-expanded":this.isOpen?"true":"false","aria-haspopup":"listbox","aria-labelledby":this.label?"".concat(this.componentId,"-label"):undefined,"aria-required":this.required?"true":undefined,"aria-describedby":assignDescription(this.componentId,this.invalid||!!this.errorMessage,this.errorMessage||this.helperMessage),"aria-invalid":this.invalid||!!this.errorMessage?"true":undefined,onKeyDown:this.handleTriggerKeyDown},h("pds-icon",{class:"pds-multiselect__icon",icon:enlarge}))):h("button",{ref:function(i){return e.triggerEl=i},type:"button",part:"trigger",class:{"pds-multiselect__trigger":true,"pds-multiselect__trigger--open":this.isOpen,"pds-multiselect__trigger--disabled":this.disabled,"pds-multiselect__trigger--invalid":this.invalid||!!this.errorMessage,"pds-multiselect__trigger--has-value":i},id:this.componentId,disabled:this.disabled,"aria-required":this.required?"true":undefined,"aria-expanded":this.isOpen?"true":"false","aria-haspopup":"listbox","aria-describedby":assignDescription(this.componentId,this.invalid||!!this.errorMessage,this.errorMessage||this.helperMessage),"aria-invalid":this.invalid||!!this.errorMessage?"true":undefined,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown},h("span",{class:{"pds-multiselect__trigger-text":true,"pds-multiselect__trigger-text--placeholder":!i||this.selectedDisplay==="pill"&&this.pillPosition==="below"}},this.getTriggerText()),h("pds-icon",{class:"pds-multiselect__icon",icon:enlarge})),this.renderDropdown()),this.selectedDisplay==="pill"&&this.pillPosition==="below"&&this.renderBelowPills(),h("span",{key:"07d6a6bf9ccc2fe8bfcf9502a1cd4b7abf5c5e6f",class:"visually-hidden","aria-live":"polite","aria-atomic":"true"},this.removalAnnouncement),this.helperMessage&&!(this.errorMessage&&this.errorMessage.length>0)&&h("p",{key:"a94bb6f31805d31ec3cd5b5f2ca8b1984f4d41d1",class:"pds-multiselect__helper",id:messageId(this.componentId,"helper")},this.helperMessage),this.errorMessage&&h("p",{key:"15afc6b9313e1fe22bd56b00eee1ebcf9e085c2e",class:"pds-multiselect__error",id:messageId(this.componentId,"error")},h("pds-icon",{key:"452814577b14ca8f891b101903bd1a7a7e5d8bb1",icon:danger,size:"small"}),this.errorMessage),h("div",{key:"d8ce787886e666303759cd2654c78b44269a40ff",style:{display:"none"}},h("slot",{key:"8295376fb03b23d44c5baeca9bc967514e433e0f"}))))};Object.defineProperty(e,"formAssociated",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{debounce:["setupDebounce"],value:["valueChanged"],options:["optionsChanged"],internalOptions:["internalOptionsChanged"]}},enumerable:false,configurable:true});return e}();PdsMultiselect.style=pdsMultiselectCss;export{PdsMultiselect as pds_multiselect};
|
|
2
2
|
//# sourceMappingURL=pds-multiselect.entry.js.map
|