@pine-ds/core 3.14.2 → 3.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index2.js +1 -1
- package/components/index2.js.map +1 -1
- package/components/mock-pds-modal.js +1 -1
- package/components/pds-chip2.js +50 -3
- package/components/pds-chip2.js.map +1 -1
- package/components/pds-combobox.js +245 -12
- package/components/pds-combobox.js.map +1 -1
- package/components/pds-copytext.js +1 -1
- package/components/pds-divider.js +1 -1
- package/components/pds-dropdown-menu-item.js +10 -2
- package/components/pds-dropdown-menu-item.js.map +1 -1
- package/components/pds-dropdown-menu-separator.js +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-filter.js +1 -1
- package/components/pds-filters.js +1 -1
- package/components/pds-image.js +2 -2
- package/components/pds-input.js +1 -1
- package/components/pds-link2.js +7 -2
- package/components/pds-link2.js.map +1 -1
- package/components/pds-loader2.js +1 -1
- package/components/pds-modal-content.js +2 -2
- package/components/pds-modal-footer.js +1 -1
- package/components/pds-modal-header.js +1 -1
- package/components/pds-modal.js +3 -3
- package/components/pds-multiselect.js +204 -37
- package/components/pds-multiselect.js.map +1 -1
- package/components/pds-popover.js +1 -1
- package/components/pds-progress.js +1 -1
- package/components/pds-property.js +1 -1
- package/components/pds-radio-group.js +3 -3
- package/components/pds-radio.js +3 -3
- package/components/pds-row.js +1 -1
- package/components/pds-select.js +1 -1
- package/components/pds-sortable-item.js +1 -1
- package/components/pds-sortable.js +1 -1
- package/components/pds-switch.js +3 -3
- package/components/pds-tab.js +3 -3
- package/components/pds-table-body.js +1 -1
- package/components/pds-table-cell2.js +3 -3
- package/components/pds-table-cell2.js.map +1 -1
- package/components/pds-table-head-cell2.js +2 -2
- package/components/pds-table-head.js +1 -1
- package/components/pds-table-row.js +2 -2
- package/components/pds-table-row.js.map +1 -1
- package/components/pds-tabpanel.js +1 -1
- package/components/pds-tabs.js +1 -1
- package/components/pds-text2.js +1 -1
- package/components/pds-textarea.js +4 -4
- package/components/pds-toast.js +3 -3
- package/components/pds-tooltip.js +2 -2
- package/dist/cjs/{index-BA--jsiy.js → index-DkQebouX.js} +3 -3
- package/dist/cjs/index-DkQebouX.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
- package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
- package/dist/cjs/pds-button.cjs.entry.js +1 -1
- package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/pds-chip.cjs.entry.js +47 -3
- package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-combobox.cjs.entry.js +221 -6
- package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-copytext.cjs.entry.js +2 -2
- package/dist/cjs/pds-divider.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +8 -2
- package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
- package/dist/cjs/pds-filter.cjs.entry.js +2 -2
- package/dist/cjs/pds-filters.cjs.entry.js +1 -1
- package/dist/cjs/pds-image.cjs.entry.js +2 -2
- package/dist/cjs/pds-input.cjs.entry.js +2 -2
- package/dist/cjs/pds-link.cjs.entry.js +7 -3
- package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-loader.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
- 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 +3 -3
- package/dist/cjs/pds-multiselect.cjs.entry.js +183 -32
- package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-popover.cjs.entry.js +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 +4 -4
- package/dist/cjs/pds-radio.cjs.entry.js +4 -4
- package/dist/cjs/pds-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-select.cjs.entry.js +2 -2
- package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
- package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +4 -4
- package/dist/cjs/pds-tab.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js +2 -2
- package/dist/cjs/pds-table-row.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 +5 -5
- package/dist/cjs/pds-toast.cjs.entry.js +3 -3
- package/dist/cjs/pds-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/collection/components/pds-chip/pds-chip.css +4 -3
- package/dist/collection/components/pds-chip/pds-chip.js +102 -1
- package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
- package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +38 -0
- package/dist/collection/components/pds-combobox/combobox-interface.js +2 -0
- package/dist/collection/components/pds-combobox/combobox-interface.js.map +1 -0
- package/dist/collection/components/pds-combobox/pds-combobox.css +20 -0
- package/dist/collection/components/pds-combobox/pds-combobox.js +415 -6
- package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
- package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
- package/dist/collection/components/pds-divider/pds-divider.js +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +53 -2
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
- package/dist/collection/components/pds-filters/pds-filters.js +1 -1
- package/dist/collection/components/pds-image/pds-image.js +2 -2
- package/dist/collection/components/pds-input/pds-input.js +1 -1
- package/dist/collection/components/pds-link/pds-link.js +34 -2
- package/dist/collection/components/pds-link/pds-link.js.map +1 -1
- package/dist/collection/components/pds-loader/pds-loader.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
- package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal.js +3 -3
- package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
- package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +1 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.css +9 -0
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +261 -31
- package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -1
- package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +41 -0
- package/dist/collection/components/pds-popover/pds-popover.js +1 -1
- package/dist/collection/components/pds-progress/pds-progress.js +1 -1
- package/dist/collection/components/pds-property/pds-property.js +1 -1
- package/dist/collection/components/pds-radio/pds-radio.js +3 -3
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
- package/dist/collection/components/pds-row/pds-row.js +1 -1
- package/dist/collection/components/pds-select/pds-select.js +1 -1
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
- package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
- package/dist/collection/components/pds-switch/pds-switch.js +3 -3
- package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +1 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
- package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +1 -1
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
- package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
- package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
- package/dist/collection/components/pds-text/pds-text.js +1 -1
- package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
- package/dist/collection/components/pds-toast/pds-toast.js +3 -3
- package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
- package/dist/docs.json +615 -7
- package/dist/esm/{index-DY8eSueV.js → index-D094LgxJ.js} +3 -3
- package/dist/esm/index-D094LgxJ.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mock-pds-modal.entry.js +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-avatar.entry.js +1 -1
- package/dist/esm/pds-button.entry.js +1 -1
- package/dist/esm/pds-checkbox.entry.js +1 -1
- package/dist/esm/pds-chip.entry.js +47 -3
- package/dist/esm/pds-chip.entry.js.map +1 -1
- package/dist/esm/pds-combobox.entry.js +221 -6
- package/dist/esm/pds-combobox.entry.js.map +1 -1
- package/dist/esm/pds-copytext.entry.js +2 -2
- package/dist/esm/pds-divider.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-item.entry.js +8 -2
- package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
- package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm/pds-filter.entry.js +2 -2
- package/dist/esm/pds-filters.entry.js +1 -1
- package/dist/esm/pds-image.entry.js +2 -2
- package/dist/esm/pds-input.entry.js +2 -2
- package/dist/esm/pds-link.entry.js +7 -3
- package/dist/esm/pds-link.entry.js.map +1 -1
- package/dist/esm/pds-loader.entry.js +1 -1
- package/dist/esm/pds-modal-content.entry.js +2 -2
- 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 +3 -3
- package/dist/esm/pds-multiselect.entry.js +183 -32
- package/dist/esm/pds-multiselect.entry.js.map +1 -1
- package/dist/esm/pds-popover.entry.js +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 +4 -4
- package/dist/esm/pds-radio.entry.js +4 -4
- package/dist/esm/pds-row.entry.js +1 -1
- package/dist/esm/pds-select.entry.js +2 -2
- package/dist/esm/pds-sortable-item.entry.js +2 -2
- package/dist/esm/pds-sortable.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +4 -4
- package/dist/esm/pds-tab.entry.js +3 -3
- package/dist/esm/pds-table-body.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js +3 -3
- package/dist/esm/pds-table-cell.entry.js.map +1 -1
- package/dist/esm/pds-table-head-cell.entry.js +3 -3
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-row.entry.js +2 -2
- package/dist/esm/pds-table-row.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 +5 -5
- package/dist/esm/pds-toast.entry.js +3 -3
- package/dist/esm/pds-tooltip.entry.js +2 -2
- package/dist/esm/pine-core.js +1 -1
- package/dist/esm-es5/{index-DY8eSueV.js → index-D094LgxJ.js} +1 -1
- package/dist/esm-es5/index-D094LgxJ.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/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js +1 -1
- package/dist/esm-es5/pds-chip.entry.js +1 -1
- package/dist/esm-es5/pds-chip.entry.js.map +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-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-item.entry.js.map +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-filter.entry.js +1 -1
- package/dist/esm-es5/pds-filters.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-link.entry.js +1 -1
- package/dist/esm-es5/pds-link.entry.js.map +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-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-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-row.entry.js +1 -1
- package/dist/esm-es5/pds-select.entry.js +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-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.entry.js +1 -1
- package/dist/esm-es5/pds-table-row.entry.js +1 -1
- package/dist/esm-es5/pds-table-row.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-tooltip.entry.js +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/pine-core/{p-d6302edd.entry.js → p-003884fd.entry.js} +2 -2
- package/dist/pine-core/{p-9e7cd072.system.entry.js → p-0270ebee.system.entry.js} +2 -2
- package/dist/pine-core/p-06046885.entry.js +3 -0
- package/dist/pine-core/p-06046885.entry.js.map +1 -0
- package/dist/pine-core/{p-063afa19.system.entry.js → p-09ff71ad.system.entry.js} +2 -2
- package/dist/pine-core/{p-c68bceb1.entry.js → p-0ac54273.entry.js} +2 -2
- package/dist/pine-core/{p-ac56273a.system.entry.js → p-0c2f13c3.system.entry.js} +2 -2
- package/dist/pine-core/{p-c7c00a27.entry.js → p-119ccf73.entry.js} +2 -2
- package/dist/pine-core/{p-87eb8d4b.system.entry.js → p-13105538.system.entry.js} +2 -2
- package/dist/pine-core/{p-c24d11c7.entry.js → p-1951d49e.entry.js} +2 -2
- package/dist/pine-core/p-1971d358.entry.js +2 -0
- package/dist/pine-core/{p-9c928c44.entry.js.map → p-1971d358.entry.js.map} +1 -1
- package/dist/pine-core/p-19fef546.system.entry.js +4 -0
- package/dist/pine-core/p-19fef546.system.entry.js.map +1 -0
- package/dist/pine-core/{p-6d2da3ca.system.entry.js → p-1e77124d.system.entry.js} +2 -2
- package/dist/pine-core/{p-f69d3fd6.entry.js → p-220cbe98.entry.js} +2 -2
- package/dist/pine-core/{p-9d6b6ff3.system.entry.js → p-226e45be.system.entry.js} +2 -2
- package/dist/pine-core/{p-90615423.system.entry.js → p-2883cb69.system.entry.js} +2 -2
- package/dist/pine-core/{p-31168da5.entry.js → p-2d21bc31.entry.js} +2 -2
- package/dist/pine-core/p-31bfac45.entry.js +2 -0
- package/dist/pine-core/{p-a3cdff85.entry.js → p-35e91ecb.entry.js} +2 -2
- package/dist/pine-core/{p-2537aacb.entry.js → p-3815f565.entry.js} +2 -2
- package/dist/pine-core/{p-a99e8caf.entry.js → p-396d4b63.entry.js} +2 -2
- package/dist/pine-core/{p-9bb6cc3d.entry.js → p-3b0a4abe.entry.js} +2 -2
- package/dist/pine-core/{p-5b9110fe.entry.js → p-3cd53462.entry.js} +2 -2
- package/dist/pine-core/{p-a5b24b1d.system.entry.js → p-3e45826f.system.entry.js} +2 -2
- package/dist/pine-core/{p-12360e47.entry.js → p-425144ae.entry.js} +2 -2
- package/dist/pine-core/p-425144ae.entry.js.map +1 -0
- package/dist/pine-core/p-48ed8147.entry.js +2 -0
- package/dist/pine-core/p-48ed8147.entry.js.map +1 -0
- package/dist/pine-core/{p-5b3ac18e.system.entry.js → p-4a42e114.system.entry.js} +2 -2
- package/dist/pine-core/p-4c2809cb.entry.js +2 -0
- package/dist/pine-core/p-4c2809cb.entry.js.map +1 -0
- package/dist/pine-core/p-4c82bff5.entry.js +2 -0
- package/dist/pine-core/{p-a07b8e45.system.entry.js → p-4e24be57.system.entry.js} +2 -2
- package/dist/pine-core/p-50a439b5.entry.js +2 -0
- package/dist/pine-core/{p-3440138d.entry.js → p-5162baee.entry.js} +2 -2
- package/dist/pine-core/{p-426e90cb.entry.js → p-51d2999d.entry.js} +2 -2
- package/dist/pine-core/{p-ba623ced.entry.js → p-563b640d.entry.js} +2 -2
- package/dist/pine-core/{p-d1313dd6.system.entry.js → p-599a5903.system.entry.js} +2 -2
- package/dist/pine-core/{p-YqHO7iPZ.system.js.map → p-5O8bhSdk.system.js.map} +1 -1
- package/dist/pine-core/{p-5f2865df.entry.js → p-5ef5f6b3.entry.js} +2 -2
- package/dist/pine-core/p-65d0032c.system.entry.js +2 -0
- package/dist/pine-core/{p-2f6f60d9.entry.js → p-68f97bdf.entry.js} +2 -2
- package/dist/pine-core/p-6918b378.system.entry.js +2 -0
- package/dist/pine-core/{p-5e92aa34.system.entry.js.map → p-6918b378.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-e6dc2297.entry.js → p-694cfe69.entry.js} +2 -2
- package/dist/pine-core/{p-bddc9c5a.entry.js → p-6c25dfc3.entry.js} +2 -2
- package/dist/pine-core/{p-9ada659b.entry.js → p-6cbad264.entry.js} +2 -2
- package/dist/pine-core/{p-4d9eee67.system.entry.js → p-72ca815d.system.entry.js} +2 -2
- package/dist/pine-core/{p-63269b89.entry.js → p-766e52a3.entry.js} +2 -2
- package/dist/pine-core/{p-d41112ad.entry.js → p-795e1727.entry.js} +2 -2
- package/dist/pine-core/p-795e1727.entry.js.map +1 -0
- package/dist/pine-core/{p-e8cf15d7.system.entry.js → p-7a6f11bd.system.entry.js} +2 -2
- package/dist/pine-core/{p-c292e5da.system.entry.js → p-7d7dce2c.system.entry.js} +2 -2
- package/dist/pine-core/{p-137b3289.system.entry.js → p-7da176b4.system.entry.js} +2 -2
- package/dist/pine-core/p-8KFA3I5T.system.js.map +1 -0
- package/dist/pine-core/{p-757c7b80.entry.js → p-8e40c9ef.entry.js} +2 -2
- package/dist/pine-core/{p-rcUX-rt5.system.js.map → p-8tpU1leU.system.js.map} +1 -1
- package/dist/pine-core/p-93d0be59.entry.js +2 -0
- package/dist/pine-core/{p-9eccf7b9.entry.js.map → p-93d0be59.entry.js.map} +1 -1
- package/dist/pine-core/p-94a9ff2a.system.entry.js +2 -0
- package/dist/pine-core/{p-ccab748a.entry.js → p-957647f9.entry.js} +2 -2
- package/dist/pine-core/{p-02f48157.system.entry.js → p-9606f567.system.entry.js} +2 -2
- package/dist/pine-core/{p-475bb340.entry.js → p-9660a2c2.entry.js} +2 -2
- package/dist/pine-core/{p-3f0a6a75.system.entry.js → p-9ba4acdf.system.entry.js} +2 -2
- package/dist/pine-core/{p-7dd74fe2.system.entry.js → p-9d9a5ca8.system.entry.js} +2 -2
- package/dist/pine-core/{p-LM0mZTib.system.js.map → p-9eQIEVii.system.js.map} +1 -1
- package/dist/pine-core/{p-htODgUCV.system.js.map → p-B036z4h-.system.js.map} +1 -1
- package/dist/pine-core/{p-B8OHXU49.system.js.map → p-BASnRvhy.system.js.map} +1 -1
- package/dist/pine-core/{p-4EbKXnVN.system.js.map → p-BK1BTkTt.system.js.map} +1 -1
- package/dist/pine-core/{p-CI7DD4Gj.system.js.map → p-BR9M75xt.system.js.map} +1 -1
- package/dist/pine-core/{p-bs74TBAh.system.js.map → p-BRn0ywk1.system.js.map} +1 -1
- package/dist/pine-core/{p-bkQbPz-z.system.js.map → p-Be8OBmYb.system.js.map} +1 -1
- package/dist/pine-core/p-BpZTjdau.system.js.map +1 -0
- package/dist/pine-core/{p-BJtTt670.system.js.map → p-BqkabXR7.system.js.map} +1 -1
- package/dist/pine-core/{p-DFXWnbHE.system.js.map → p-BssHFst4.system.js.map} +1 -1
- package/dist/pine-core/{p-CP48ADFM.system.js → p-BxVkyfaO.system.js} +1 -1
- package/dist/pine-core/p-BxVkyfaO.system.js.map +1 -0
- package/dist/pine-core/{p-BTe59phF.system.js.map → p-CE8RZXT8.system.js.map} +1 -1
- package/dist/pine-core/{p-Cun139qe.system.js.map → p-CJ4Gf3Nx.system.js.map} +1 -1
- package/dist/pine-core/{p-Ct9csNdF.system.js.map → p-CUv9KdhN.system.js.map} +1 -1
- package/dist/pine-core/{p-C48G0LPH.system.js.map → p-CcDv1OdF.system.js.map} +1 -1
- package/dist/pine-core/{p-BHjZufAO.system.js.map → p-CjQwwLdV.system.js.map} +1 -1
- package/dist/pine-core/{p-BA95hFrH.system.js.map → p-ClY6yIBF.system.js.map} +1 -1
- package/dist/pine-core/{p-Bn36FPag.system.js.map → p-D-iLwshJ.system.js.map} +1 -1
- package/dist/pine-core/{p-DkNlmqjM.system.js.map → p-D02u2D7r.system.js.map} +1 -1
- package/dist/pine-core/{p-DY8eSueV.js → p-D094LgxJ.js} +1 -1
- package/dist/pine-core/p-D094LgxJ.js.map +1 -0
- package/dist/pine-core/{p-CR01VmO6.system.js.map → p-D3Ug1A-l.system.js.map} +1 -1
- package/dist/pine-core/{p-j0609tLE.system.js.map → p-DFWnxG_e.system.js.map} +1 -1
- package/dist/pine-core/{p-DbNPEZgc.system.js.map → p-DFY2-W9M.system.js.map} +1 -1
- package/dist/pine-core/{p-5L_gsODn.system.js.map → p-DKT0sVlZ.system.js.map} +1 -1
- package/dist/pine-core/{p-Cn_QqTXg.system.js.map → p-DXoBK65z.system.js.map} +1 -1
- package/dist/pine-core/{p-Civ2VHC7.system.js.map → p-DY97YDUU.system.js.map} +1 -1
- package/dist/pine-core/{p-ClPf_JF1.system.js.map → p-DZt6ah_A.system.js.map} +1 -1
- package/dist/pine-core/{p-eUcBQ_fh.system.js.map → p-De6wHGVf.system.js.map} +1 -1
- package/dist/pine-core/p-DgtQU13G.system.js.map +1 -0
- package/dist/pine-core/{p-CpyTw2IQ.system.js.map → p-DmWm26A6.system.js.map} +1 -1
- package/dist/pine-core/p-Dtx30lCy.system.js.map +1 -0
- package/dist/pine-core/{p-CP2nsJcg.system.js.map → p-GH_AtkdO.system.js.map} +1 -1
- package/dist/pine-core/p-JAVnELnm.system.js +1 -1
- package/dist/pine-core/{p-CSLo9qKS.system.js.map → p-P65hM6YU.system.js.map} +1 -1
- package/dist/pine-core/{p-DwQewDCV.system.js.map → p-PZw10cnm.system.js.map} +1 -1
- package/dist/pine-core/{p-CmquVvkz.system.js.map → p-Ri89mw0-.system.js.map} +1 -1
- package/dist/pine-core/p-ZUqfslIz.system.js.map +1 -0
- package/dist/pine-core/{p-8f2a5a4c.system.entry.js → p-a24c75c2.system.entry.js} +2 -2
- package/dist/pine-core/{p-5040a872.entry.js → p-ad8fe96c.entry.js} +2 -2
- package/dist/pine-core/p-aeb2f6ac.system.entry.js +2 -0
- package/dist/pine-core/{p-4c23c75b.system.entry.js.map → p-aeb2f6ac.system.entry.js.map} +1 -1
- package/dist/pine-core/p-af5bf21d.entry.js +2 -0
- package/dist/pine-core/{p-325b3b0d.system.entry.js → p-b09bde5c.system.entry.js} +2 -2
- package/dist/pine-core/{p-7b5c8248.system.entry.js → p-b3ee3c4c.system.entry.js} +2 -2
- package/dist/pine-core/{p-cac3128b.system.entry.js → p-b46f66e8.system.entry.js} +2 -2
- package/dist/pine-core/p-b46f66e8.system.entry.js.map +1 -0
- package/dist/pine-core/{p-4d85945b.system.entry.js → p-b6ede995.system.entry.js} +2 -2
- package/dist/pine-core/p-b98a04cd.system.entry.js +2 -0
- package/dist/pine-core/p-b98a04cd.system.entry.js.map +1 -0
- package/dist/pine-core/p-ba195382.system.entry.js +2 -0
- package/dist/pine-core/{p-205ec2ac.system.entry.js → p-bc4b1749.system.entry.js} +2 -2
- package/dist/pine-core/{p-70aa35fc.system.entry.js → p-bce9f17d.system.entry.js} +2 -2
- package/dist/pine-core/{p-ac240034.system.entry.js → p-bd18b9bf.system.entry.js} +2 -2
- package/dist/pine-core/p-bd2329cd.entry.js +2 -0
- package/dist/pine-core/p-bf712423.entry.js +2 -0
- package/dist/pine-core/{p-9f0f1389.entry.js.map → p-bf712423.entry.js.map} +1 -1
- package/dist/pine-core/{p-154a32f4.entry.js → p-bfac5114.entry.js} +2 -2
- package/dist/pine-core/{p-4f1cRPxE.system.js.map → p-bw-OZgCg.system.js.map} +1 -1
- package/dist/pine-core/{p-bc85016b.entry.js → p-c73ef42b.entry.js} +2 -2
- package/dist/pine-core/p-c91fd600.entry.js +2 -0
- package/dist/pine-core/{p-f47d6724.entry.js → p-caff29fb.entry.js} +2 -2
- package/dist/pine-core/{p-8fdb10c4.system.entry.js → p-cb8c24ad.system.entry.js} +2 -2
- package/dist/pine-core/{p-8c0fc8ff.entry.js → p-ccdee55a.entry.js} +2 -2
- package/dist/pine-core/{p-ab3b6e0c.entry.js → p-d0366fba.entry.js} +2 -2
- package/dist/pine-core/{p-6be19a23.system.entry.js → p-d0504aa8.system.entry.js} +2 -2
- package/dist/pine-core/{p-8b201c9a.system.entry.js → p-d2b2caa2.system.entry.js} +2 -2
- package/dist/pine-core/p-d6139188.system.entry.js +2 -0
- package/dist/pine-core/p-d62a5444.system.entry.js +2 -0
- package/dist/pine-core/{p-daa36570.system.entry.js → p-d83d6fce.system.entry.js} +2 -2
- package/dist/pine-core/{p-6dcd7876.system.entry.js → p-d8d796ad.system.entry.js} +2 -2
- package/dist/pine-core/{p-9b3794cd.entry.js → p-e1815c34.entry.js} +2 -2
- package/dist/pine-core/{p-811e510d.system.entry.js → p-e9eb3fc3.system.entry.js} +2 -2
- package/dist/pine-core/p-eT6pKhWF.system.js.map +1 -0
- package/dist/pine-core/{p-d9693048.entry.js → p-ea8aba18.entry.js} +2 -2
- package/dist/pine-core/{p-6e862168.system.entry.js → p-ef56bc80.system.entry.js} +2 -2
- package/dist/pine-core/p-ef56bc80.system.entry.js.map +1 -0
- package/dist/pine-core/{p-51114c2b.system.entry.js → p-f00f70bf.system.entry.js} +2 -2
- package/dist/pine-core/{p-2fe330d0.system.entry.js → p-f0df10c7.system.entry.js} +2 -2
- package/dist/pine-core/p-f0df10c7.system.entry.js.map +1 -0
- package/dist/pine-core/{p-932283cf.system.entry.js → p-fce519e3.system.entry.js} +2 -2
- package/dist/pine-core/{p-0sPVsRFU.system.js.map → p-g2zH2UyI.system.js.map} +1 -1
- package/dist/pine-core/p-h_fnwqV_.system.js.map +1 -0
- package/dist/pine-core/{p-ztsUkqit.system.js.map → p-igLtCO20.system.js.map} +1 -1
- package/dist/pine-core/{p-CboCokff.system.js.map → p-kYQszSpu.system.js.map} +1 -1
- package/dist/pine-core/{p-BCKPcTKX.system.js.map → p-ljGHaVPv.system.js.map} +1 -1
- package/dist/pine-core/{p-CijIWK3K.system.js.map → p-sgZDP7ET.system.js.map} +1 -1
- package/dist/pine-core/pds-chip.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-item.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-multiselect.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-row.entry.esm.js.map +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/types/components/pds-chip/pds-chip.d.ts +18 -0
- package/dist/types/components/pds-combobox/combobox-interface.d.ts +23 -0
- package/dist/types/components/pds-combobox/pds-combobox.d.ts +64 -0
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +13 -0
- package/dist/types/components/pds-link/pds-link.d.ts +8 -0
- package/dist/types/components/pds-multiselect/multiselect-interface.d.ts +10 -0
- package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +21 -1
- package/dist/types/components.d.ts +167 -2
- package/dist/vscode.html-data.json +170 -5
- package/hydrate/index.js +544 -103
- package/hydrate/index.mjs +544 -103
- package/package.json +2 -2
- package/dist/cjs/index-BA--jsiy.js.map +0 -1
- package/dist/esm/index-DY8eSueV.js.map +0 -1
- package/dist/esm-es5/index-DY8eSueV.js.map +0 -1
- package/dist/pine-core/p-10dbe3e2.entry.js +0 -2
- package/dist/pine-core/p-10dbe3e2.entry.js.map +0 -1
- package/dist/pine-core/p-10e0be55.entry.js +0 -2
- package/dist/pine-core/p-12360e47.entry.js.map +0 -1
- package/dist/pine-core/p-1fa303af.entry.js +0 -2
- package/dist/pine-core/p-2fe330d0.system.entry.js.map +0 -1
- package/dist/pine-core/p-30ea3668.system.entry.js +0 -2
- package/dist/pine-core/p-3c04c17e.system.entry.js +0 -2
- package/dist/pine-core/p-3c04c17e.system.entry.js.map +0 -1
- package/dist/pine-core/p-4alPHnzl.system.js.map +0 -1
- package/dist/pine-core/p-4c23c75b.system.entry.js +0 -2
- package/dist/pine-core/p-5e92aa34.system.entry.js +0 -2
- package/dist/pine-core/p-622f1342.system.entry.js +0 -4
- package/dist/pine-core/p-622f1342.system.entry.js.map +0 -1
- package/dist/pine-core/p-6e862168.system.entry.js.map +0 -1
- package/dist/pine-core/p-78ee2e08.system.entry.js +0 -2
- package/dist/pine-core/p-8c000d7c.entry.js +0 -2
- package/dist/pine-core/p-8eb1c168.entry.js +0 -2
- package/dist/pine-core/p-9c928c44.entry.js +0 -2
- package/dist/pine-core/p-9eccf7b9.entry.js +0 -2
- package/dist/pine-core/p-9f0f1389.entry.js +0 -2
- package/dist/pine-core/p-B0Otb6kF.system.js.map +0 -1
- package/dist/pine-core/p-BSRmAvMC.system.js.map +0 -1
- package/dist/pine-core/p-CG5jdxoZ.system.js.map +0 -1
- package/dist/pine-core/p-CP48ADFM.system.js.map +0 -1
- package/dist/pine-core/p-DY8eSueV.js.map +0 -1
- package/dist/pine-core/p-DieNsvcz.system.js.map +0 -1
- package/dist/pine-core/p-Lk6DnEPT.system.js.map +0 -1
- package/dist/pine-core/p-a11c3642.system.entry.js +0 -2
- package/dist/pine-core/p-aPfTGFhq.system.js.map +0 -1
- package/dist/pine-core/p-ac186cd4.system.entry.js +0 -2
- package/dist/pine-core/p-b41465b8.entry.js +0 -3
- package/dist/pine-core/p-b41465b8.entry.js.map +0 -1
- package/dist/pine-core/p-bff9fb8e.entry.js +0 -2
- package/dist/pine-core/p-bff9fb8e.entry.js.map +0 -1
- package/dist/pine-core/p-cac3128b.system.entry.js.map +0 -1
- package/dist/pine-core/p-d41112ad.entry.js.map +0 -1
- package/dist/pine-core/p-e0f21c22.entry.js +0 -2
- package/dist/pine-core/p-eb026745.entry.js +0 -2
- package/dist/pine-core/p-fa21e054.system.entry.js +0 -2
- /package/dist/pine-core/{p-d6302edd.entry.js.map → p-003884fd.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9e7cd072.system.entry.js.map → p-0270ebee.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-063afa19.system.entry.js.map → p-09ff71ad.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c68bceb1.entry.js.map → p-0ac54273.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ac56273a.system.entry.js.map → p-0c2f13c3.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c7c00a27.entry.js.map → p-119ccf73.entry.js.map} +0 -0
- /package/dist/pine-core/{p-87eb8d4b.system.entry.js.map → p-13105538.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c24d11c7.entry.js.map → p-1951d49e.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6d2da3ca.system.entry.js.map → p-1e77124d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f69d3fd6.entry.js.map → p-220cbe98.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9d6b6ff3.system.entry.js.map → p-226e45be.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-90615423.system.entry.js.map → p-2883cb69.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-31168da5.entry.js.map → p-2d21bc31.entry.js.map} +0 -0
- /package/dist/pine-core/{p-10e0be55.entry.js.map → p-31bfac45.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a3cdff85.entry.js.map → p-35e91ecb.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2537aacb.entry.js.map → p-3815f565.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a99e8caf.entry.js.map → p-396d4b63.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9bb6cc3d.entry.js.map → p-3b0a4abe.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5b9110fe.entry.js.map → p-3cd53462.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a5b24b1d.system.entry.js.map → p-3e45826f.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5b3ac18e.system.entry.js.map → p-4a42e114.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-1fa303af.entry.js.map → p-4c82bff5.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a07b8e45.system.entry.js.map → p-4e24be57.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8eb1c168.entry.js.map → p-50a439b5.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3440138d.entry.js.map → p-5162baee.entry.js.map} +0 -0
- /package/dist/pine-core/{p-426e90cb.entry.js.map → p-51d2999d.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ba623ced.entry.js.map → p-563b640d.entry.js.map} +0 -0
- /package/dist/pine-core/{p-d1313dd6.system.entry.js.map → p-599a5903.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5f2865df.entry.js.map → p-5ef5f6b3.entry.js.map} +0 -0
- /package/dist/pine-core/{p-78ee2e08.system.entry.js.map → p-65d0032c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2f6f60d9.entry.js.map → p-68f97bdf.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e6dc2297.entry.js.map → p-694cfe69.entry.js.map} +0 -0
- /package/dist/pine-core/{p-bddc9c5a.entry.js.map → p-6c25dfc3.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9ada659b.entry.js.map → p-6cbad264.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4d9eee67.system.entry.js.map → p-72ca815d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-63269b89.entry.js.map → p-766e52a3.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e8cf15d7.system.entry.js.map → p-7a6f11bd.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c292e5da.system.entry.js.map → p-7d7dce2c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-137b3289.system.entry.js.map → p-7da176b4.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-757c7b80.entry.js.map → p-8e40c9ef.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a11c3642.system.entry.js.map → p-94a9ff2a.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ccab748a.entry.js.map → p-957647f9.entry.js.map} +0 -0
- /package/dist/pine-core/{p-02f48157.system.entry.js.map → p-9606f567.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-475bb340.entry.js.map → p-9660a2c2.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3f0a6a75.system.entry.js.map → p-9ba4acdf.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7dd74fe2.system.entry.js.map → p-9d9a5ca8.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8f2a5a4c.system.entry.js.map → p-a24c75c2.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5040a872.entry.js.map → p-ad8fe96c.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e0f21c22.entry.js.map → p-af5bf21d.entry.js.map} +0 -0
- /package/dist/pine-core/{p-325b3b0d.system.entry.js.map → p-b09bde5c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7b5c8248.system.entry.js.map → p-b3ee3c4c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4d85945b.system.entry.js.map → p-b6ede995.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ac186cd4.system.entry.js.map → p-ba195382.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-205ec2ac.system.entry.js.map → p-bc4b1749.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-70aa35fc.system.entry.js.map → p-bce9f17d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ac240034.system.entry.js.map → p-bd18b9bf.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8c000d7c.entry.js.map → p-bd2329cd.entry.js.map} +0 -0
- /package/dist/pine-core/{p-154a32f4.entry.js.map → p-bfac5114.entry.js.map} +0 -0
- /package/dist/pine-core/{p-bc85016b.entry.js.map → p-c73ef42b.entry.js.map} +0 -0
- /package/dist/pine-core/{p-eb026745.entry.js.map → p-c91fd600.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f47d6724.entry.js.map → p-caff29fb.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8fdb10c4.system.entry.js.map → p-cb8c24ad.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8c0fc8ff.entry.js.map → p-ccdee55a.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ab3b6e0c.entry.js.map → p-d0366fba.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6be19a23.system.entry.js.map → p-d0504aa8.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8b201c9a.system.entry.js.map → p-d2b2caa2.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-fa21e054.system.entry.js.map → p-d6139188.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-30ea3668.system.entry.js.map → p-d62a5444.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-daa36570.system.entry.js.map → p-d83d6fce.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6dcd7876.system.entry.js.map → p-d8d796ad.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9b3794cd.entry.js.map → p-e1815c34.entry.js.map} +0 -0
- /package/dist/pine-core/{p-811e510d.system.entry.js.map → p-e9eb3fc3.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-d9693048.entry.js.map → p-ea8aba18.entry.js.map} +0 -0
- /package/dist/pine-core/{p-51114c2b.system.entry.js.map → p-f00f70bf.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-932283cf.system.entry.js.map → p-fce519e3.system.entry.js.map} +0 -0
|
@@ -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-DHPhrb5T.js";import{a as autoUpdate,c as computePosition,o as offset,f as flip,s as shift,b as size}from"./floating-ui.dom-BO6p966C.js";import{d as debounceEvent}from"./utils-tJa4KYNO.js";import{a as assignDescription,m as messageId}from"./form-DwjNklzi.js";import{e as enlarge,b as danger}from"./index-DY8eSueV.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);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-550);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__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__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,.pds-multiselect__option.pds-multiselect__option--highlighted{background:var(--pine-color-background-muted)}.pds-multiselect__option:focus-visible{outline: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.placeholder="Select...";this.value=[];this.disabled=false;this.asyncMethod="GET";this.debounce=300;this.maxHeight="300px";this.triggerWidth="100%";this.minWidth="250px";this.hideLabel=false;this.required=false;this.loading=false;this.isOpen=false;this.searchQuery="";this.highlightedIndex=-1;this.internalOptions=[];this.selectedItems=[];this.currentPage=1;this.hasMore=false;this.isOpening=false;this.handleTriggerClick=function(){if(i.disabled)return;if(i.isOpen){i.closeDropdown()}else{i.openDropdown()}};this.handleTriggerKeyDown=function(e){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=i.getFilteredOptions();switch(e.key){case"ArrowDown":e.preventDefault();i.highlightedIndex=Math.min(i.highlightedIndex+1,t.length-1);i.scrollOptionIntoView();break;case"ArrowUp":e.preventDefault();i.highlightedIndex=Math.max(i.highlightedIndex-1,0);i.scrollOptionIntoView();break;case"Enter":e.preventDefault();if(i.highlightedIndex>=0){var s=t[i.highlightedIndex];if(s){i.selectOption(s)}}break;case"Tab":i.closeDropdown();break}};this.handleContainerFocusOut=function(){setTimeout((function(){var e;if(!i.isOpen||i.isOpening)return;var t=document.activeElement;var s=(e=i.el.shadowRoot)===null||e===void 0?void 0:e.contains(t);var r=t===i.el;if(!s&&!r){i.closeDropdown()}}),0)};this.handleOptionMouseDown=function(e){return function(t){t.preventDefault();i.toggleOption(e)}};this.handleOptionMouseEnter=function(e){return function(){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)}}}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()}))};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()};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.handleWindowKeyDown=function(e){var i;if(!this.isOpen)return;if(e.key==="Escape"){e.preventDefault();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}).filter((function(e){return e.tagName==="OPTION"})).map((function(e){return{id:e.value,text:e.textContent||e.value}}));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}(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 r=Math.max(0,(s=this.debounce)!==null&&s!==void 0?s:0);this.fetchDebounceTimer=window.setTimeout((function(){t.fetchDebounceTimer=undefined;t.fetchOptions(e,i)}),r)};e.prototype.syncSelectedItems=function(){var e=this.ensureValueArray();var i=this.getAllOptions();this.selectedItems=e.map((function(e){return i.find((function(i){return String(i.id)===String(e)}))})).filter((function(e){return e!==undefined}))};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();return e.filter((function(e){if(i){return e.text.toLowerCase().includes(i)}return true}))};e.prototype.updateFormValue=function(){var e=this;var i;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.fetchOptions=function(e){return __awaiter(this,arguments,void 0,(function(e,i){var t,s,r,n,o,a;var l=this;if(i===void 0){i=1}return __generator(this,(function(d){switch(d.label){case 0:if(!this.asyncUrl)return[2];(t=this.abortController)===null||t===void 0?void 0:t.abort();this.abortController=new AbortController;this.loading=true;d.label=1;case 1:d.trys.push([1,4,5,6]);s=new URL(this.asyncUrl,window.location.origin);if(this.asyncMethod==="GET"){s.searchParams.set("search",e);s.searchParams.set("page",String(i))}return[4,fetch(s.toString(),Object.assign({method:this.asyncMethod,signal:this.abortController.signal,headers:{"Content-Type":"application/json",Accept:"application/json"}},this.asyncMethod==="POST"&&{body:JSON.stringify({search:e,page:i})}))];case 2:r=d.sent();if(!r.ok)throw new Error("Failed to fetch options");return[4,r.json()];case 3:n=d.sent();o=n.results.map((function(e){if(l.formatResult){return l.formatResult(e)}return Object.assign({id:e.id,text:e.text},e)}));if(i===1){this.internalOptions=o}else{this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),o,true)}this.hasMore=n.totalCount?this.internalOptions.length<n.totalCount:false;this.currentPage=i;return[3,6];case 4:a=d.sent();if(a.name!=="AbortError"){console.error("PdsMultiselect: Failed to fetch options",a)}return[3,6];case 5:this.loading=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.debouncedFetchAsyncOptions(this.searchQuery,1)}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(){this.isOpen=false;this.highlightedIndex=-1;this.searchQuery="";if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=undefined}};e.prototype.positionDropdown=function(){var e=this;if(!this.containerEl||!this.panelEl)return;var i=this.triggerEl||this.containerEl;var t=this,s=t.minWidth,r=t.panelWidth;var n=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:r!==null&&r!==void 0?r:"".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")}}))};n();var o=autoUpdate(i,this.panelEl,n);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;var t=this.value.includes(String(e.id));if(t){var s=this.value.filter((function(i){return i!==String(e.id)}));this.value=s;var r=this.selectedItems.filter((function(i){return String(i.id)!==String(e.id)}));this.pdsMultiselectChange.emit({values:s,items:r})}else{if(this.maxSelections&&this.value.length>=this.maxSelections){return}var s=__spreadArray(__spreadArray([],this.value,true),[String(e.id)],false);this.value=s;var r=__spreadArray(__spreadArray([],this.selectedItems,true),[e],false);this.pdsMultiselectChange.emit({values:s,items:r})}(i=this.searchInputEl)===null||i===void 0?void 0:i.focus()};e.prototype.selectOption=function(e){this.toggleOption(e)};e.prototype.renderSelectedItemsList=function(){if(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 r=!!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:"Find...",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"},r?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")),i.map((function(i,s){var r=t.includes(String(i.id));var n=s===e.highlightedIndex;var o="".concat(e.componentId,"-option-").concat(s);return h("li",{key:String(i.id),id:o,class:{"pds-multiselect__option":true,"pds-multiselect__option--highlighted":n,"pds-multiselect__option--selected":r},role:"option","aria-selected":r?"true":"false","data-index":s,onMouseDown:e.handleOptionMouseDown(i),onMouseEnter:e.handleOptionMouseEnter(s)},h("pds-checkbox",{componentId:"".concat(e.componentId,"-checkbox-").concat(s),checked:r,label:i.text,style:{pointerEvents:"none"}}))})),this.hasMore&&!this.loading&&h("li",{class:"pds-multiselect__load-more",role:"presentation"},h("pds-loader",{size:"small"}))))};e.prototype.getTriggerText=function(){var e=this.selectedItems.length;if(e===0){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:"e7d872fd9bedb03390eaf8a2bd9c5d6ba1cc7ecc","aria-disabled":this.disabled?"true":null},h("div",{key:"141dee3c657dd17d3389d4a25979d0f748e36361",class:"pds-multiselect"},this.label&&h("label",{key:"386114a823424506857a1e927a2538e88d3c82f5",htmlFor:this.componentId,class:{"pds-multiselect__label":true,"visually-hidden":this.hideLabel}},this.label),h("div",{key:"9fc18bf93f981ee7f72f31c20f43f5251ed647e4",class:"pds-multiselect__wrapper",ref:function(i){return e.containerEl=i},onFocusout:this.handleContainerFocusOut,style:{width:this.triggerWidth}},h("button",{key:"74e8eb5ef5984307dce779ef63d54e49e07497ea",ref:function(i){return e.triggerEl=i},type:"button",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",{key:"fb7f9b9fffd46839ddc4ab0bb549b61de191f76c",class:{"pds-multiselect__trigger-text":true,"pds-multiselect__trigger-text--placeholder":!i}},this.getTriggerText()),h("pds-icon",{key:"354e1c57758350d73557a6c94d0b31eb6732f12a",class:"pds-multiselect__icon",icon:enlarge})),this.renderDropdown()),this.helperMessage&&!this.errorMessage&&h("p",{key:"3709f184a7972e1acfd3826faefc4ba139a8d518",class:"pds-multiselect__helper",id:messageId(this.componentId,"helper")},this.helperMessage),this.errorMessage&&h("p",{key:"8029b58286455b7b4789a4336a79c324ca91ad74",class:"pds-multiselect__error",id:messageId(this.componentId,"error")},h("pds-icon",{key:"cd781f3caed8b81deef2ce43f0a4406b6ed2d53c",icon:danger,size:"small"}),this.errorMessage),h("div",{key:"7c303f4d64247b41b9e88892cfb8c02acd5d8d59",style:{display:"none"}},h("slot",{key:"e9b384038e67bb951613933bbf68fd2b2efc71ef"}))))};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-DHPhrb5T.js";import{a as autoUpdate,c as computePosition,o as offset,f as flip,s as shift,b as size}from"./floating-ui.dom-BO6p966C.js";import{d as debounceEvent}from"./utils-tJa4KYNO.js";import{a as assignDescription,m as messageId}from"./form-DwjNklzi.js";import{e as enlarge,b as danger}from"./index-D094LgxJ.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);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-550);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__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__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,.pds-multiselect__option.pds-multiselect__option--highlighted{background:var(--pine-color-background-muted)}.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.placeholder="Select...";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.required=false;this.loading=false;this.isOpen=false;this.searchQuery="";this.highlightedIndex=-1;this.internalOptions=[];this.selectedItems=[];this.currentPage=1;this.hasMore=false;this.creating=false;this.isOpening=false;this.handleTriggerClick=function(){if(i.disabled)return;if(i.isOpen){i.closeDropdown()}else{i.openDropdown()}};this.handleTriggerKeyDown=function(e){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=i.getFilteredOptions();switch(e.key){case"ArrowDown":e.preventDefault();i.highlightedIndex=Math.min(i.highlightedIndex+1,t.length-1);i.scrollOptionIntoView();break;case"ArrowUp":e.preventDefault();i.highlightedIndex=Math.max(i.highlightedIndex-1,0);i.scrollOptionIntoView();break;case"Enter":e.preventDefault();if(i.highlightedIndex>=0){var s=t[i.highlightedIndex];if(s){i.selectOption(s)}}break;case"Tab":i.closeDropdown();break}};this.handleContainerFocusOut=function(){setTimeout((function(){var e;if(!i.isOpen||i.isOpening)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.closeDropdown()}}),0)};this.handleOptionMouseDown=function(e){return function(t){t.preventDefault();i.toggleOption(e)}};this.handleOptionMouseEnter=function(e){return function(){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)}}}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()}))};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()};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.handleWindowKeyDown=function(e){var i;if(!this.isOpen)return;if(e.key==="Escape"){e.preventDefault();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}).filter((function(e){return e.tagName==="OPTION"})).map((function(e){return{id:e.value,text:e.textContent||e.value}}));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((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,a,l,d;var c=this;if(i===void 0){i=1}return __generator(this,(function(u){switch(u.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=c.abortController)===null||e===void 0?void 0:e.abort();c.fetchTimeoutTimer=undefined}),this.fetchTimeout);u.label=1;case 1:u.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){r["X-CSRF-Token"]=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:o=u.sent();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}if(!o.ok)throw new Error("Failed to fetch options");return[4,o.json()];case 3:a=u.sent();l=a.results.map((function(e){if(c.formatResult){return c.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=l}else{this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),l,true)}this.hasMore=a.totalCount?this.internalOptions.length<a.totalCount:false;this.currentPage=i;return[3,6];case 4:d=u.sent();if(this.fetchTimeoutTimer!==undefined){window.clearTimeout(this.fetchTimeoutTimer);this.fetchTimeoutTimer=undefined}if(d.name!=="AbortError"){console.error("PdsMultiselect: Failed to fetch options",d)}return[3,6];case 5:this.loading=false;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,a;var l=this;return __generator(this,(function(d){switch(d.label){case 0:if(!this.createUrl||!e.trim())return[2];if(this.creating)return[2];this.creating=true;d.label=1;case 1:d.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){s["X-CSRF-Token"]=t}return[4,fetch(i.toString(),{method:"POST",headers:s,body:JSON.stringify({text:e.trim()})})];case 2:n=d.sent();if(!n.ok)throw new Error("Failed to create option");return[4,n.json()];case 3:r=d.sent();o=Object.assign({id:r.id,text:r.text},r);this.internalOptions=__spreadArray(__spreadArray([],this.internalOptions,true),[o],false);this.value=__spreadArray(__spreadArray([],this.value,true),[String(o.id)],false);this.syncSelectedItems();this.pdsMultiselectCreate.emit({query:e.trim(),newOption:o});this.pdsMultiselectChange.emit({values:this.value,items:this.selectedItems});this.searchQuery="";this.highlightedIndex=-1;requestAnimationFrame((function(){var e;(e=l.searchInputEl)===null||e===void 0?void 0:e.focus()}));return[3,6];case 4:a=d.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.debouncedFetchAsyncOptions(this.searchQuery,1)}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(){this.isOpen=false;this.highlightedIndex=-1;this.searchQuery="";if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=undefined}};e.prototype.positionDropdown=function(){var e=this;if(!this.containerEl||!this.panelEl)return;var i=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;if(e.isCreateOption){if(!this.creating){this.createOption(this.searchQuery)}return}var t=this.value.includes(String(e.id));if(t){this.value=this.value.filter((function(i){return i!==String(e.id)}))}else{if(this.maxSelections&&this.value.length>=this.maxSelections){return}this.value=__spreadArray(__spreadArray([],this.value,true),[String(e.id)],false)}this.syncSelectedItems();this.pdsMultiselectChange.emit({values:this.value,items:this.selectedItems});(i=this.searchInputEl)===null||i===void 0?void 0:i.focus()};e.prototype.selectOption=function(e){this.toggleOption(e)};e.prototype.renderSelectedItemsList=function(){if(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:"Find...",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")),i.map((function(i,s){var n=t.includes(String(i.id));var r=i.isCreateOption;var o=s===e.highlightedIndex&&!r;var a="".concat(e.componentId,"-option-").concat(s);var l=r&&e.creating;return h("li",{key:String(i.id),id:a,class:{"pds-multiselect__option":true,"pds-multiselect__option--highlighted":o,"pds-multiselect__option--selected":n,"pds-multiselect__option--create":r,"pds-multiselect__option--disabled":l},role:"option","aria-selected":n?"true":"false","aria-disabled":l?"true":undefined,"aria-label":r?"Create new tag: ".concat(i.text):undefined,"data-index":s,onMouseDown:e.handleOptionMouseDown(i),onMouseEnter:e.handleOptionMouseEnter(s)},r?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 "',i.text,'"')):h("pds-checkbox",{componentId:"".concat(e.componentId,"-checkbox-").concat(s),checked:n,label:i.text,style:{pointerEvents:"none"}}))})),this.hasMore&&!this.loading&&h("li",{class:"pds-multiselect__load-more",role:"presentation"},h("pds-loader",{size:"small"}))))};e.prototype.getTriggerText=function(){var e=this.selectedItems.length;if(e===0){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:"5eabf872bf4e4f109106c0dd7f9fc8ea48e8c0c0","aria-disabled":this.disabled?"true":null},h("div",{key:"2623280ddbb4e116da4dbf0fe9123b5f06f0da0c",class:"pds-multiselect"},this.label&&h("label",{key:"ec644a7af54ca4dcdece849c6df692fae268b445",htmlFor:this.componentId,class:{"pds-multiselect__label":true,"visually-hidden":this.hideLabel}},this.label),h("div",{key:"ae08d5be617ee801a730fd9289146e82f2df8258",class:"pds-multiselect__wrapper",ref:function(i){return e.containerEl=i},onFocusout:this.handleContainerFocusOut,style:{width:this.triggerWidth}},h("button",{key:"c4639d573de4bb7963f848284057afcf9cc65cb9",ref:function(i){return e.triggerEl=i},type:"button",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",{key:"b16da29ea9a98d6672813d9c142ef63135b12dca",class:{"pds-multiselect__trigger-text":true,"pds-multiselect__trigger-text--placeholder":!i}},this.getTriggerText()),h("pds-icon",{key:"4e86739529355331c9fa6b95b63f223d5a315ad5",class:"pds-multiselect__icon",icon:enlarge})),this.renderDropdown()),this.helperMessage&&!(this.errorMessage&&this.errorMessage.length>0)&&h("p",{key:"34cd42ddb1725546ce367699ef520e37d24cae25",class:"pds-multiselect__helper",id:messageId(this.componentId,"helper")},this.helperMessage),this.errorMessage&&h("p",{key:"0eada43d1bcb44ea7b95927dd3f799aff6cc6b3a",class:"pds-multiselect__error",id:messageId(this.componentId,"error")},h("pds-icon",{key:"546dcc24794d274d73b3de867b79123b6f0069fc",icon:danger,size:"small"}),this.errorMessage),h("div",{key:"3921e646c9e3638077c016e7cb28a19adaa302f0",style:{display:"none"}},h("slot",{key:"3923872eaae0a59da8c4a5b9801abf41ae9a3c3d"}))))};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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pds-multiselect.entry.js","sources":["src/components/pds-multiselect/pds-multiselect.scss?tag=pds-multiselect&encapsulation=shadow","src/components/pds-multiselect/pds-multiselect.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n:host([aria-disabled=\"true\"]) {\n .pds-multiselect__trigger {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n .pds-multiselect__icon {\n color: var(--pine-color-text-disabled);\n }\n}\n\n.pds-multiselect {\n position: relative;\n}\n\n.pds-multiselect__label {\n color: var(--pine-color-text-label);\n display: block;\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n.pds-multiselect__wrapper {\n position: relative;\n}\n\n.pds-multiselect__trigger {\n align-items: center;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n cursor: pointer;\n display: flex;\n font: var(--pine-typography-body);\n gap: var(--pine-dimension-xs);\n justify-content: space-between;\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pine-dimension-550);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n position: relative;\n text-align: start;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n width: 100%;\n\n &:hover:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-hover);\n }\n\n &:focus:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &.pds-multiselect__trigger--open {\n border-color: var(--pine-color-border-active);\n }\n\n &.pds-multiselect__trigger--invalid {\n background-color: var(--pine-color-red-050);\n border-color: var(--pine-color-border-danger);\n\n &:focus {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n\n &.pds-multiselect__trigger--disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n}\n\n.pds-multiselect__trigger-text {\n color: var(--pine-color-text-strong);\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &.pds-multiselect__trigger-text--placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n .pds-multiselect__trigger--disabled & {\n color: var(--pine-color-text-disabled);\n }\n}\n\n.pds-multiselect__icon {\n color: var(--pine-color-icon);\n flex-shrink: var(--pine-dimension-none);\n}\n\n.pds-multiselect__panel {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-dimension-125);\n box-shadow: var(--pine-box-shadow);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n position: absolute;\n z-index: var(--pine-z-index-raised);\n}\n\n.pds-multiselect__search {\n align-items: center;\n border-block-end: var(--pine-border);\n border-block-end-color: var(--pine-color-border-subtle);\n display: flex;\n gap: var(--pine-dimension-xs);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n\n pds-icon {\n color: var(--pine-color-text-muted);\n flex-shrink: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__search-input {\n background: transparent;\n border: var(--pine-dimension-none);\n color: var(--pine-color-text-strong);\n flex: 1;\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n min-width: var(--pine-dimension-none);\n outline: none;\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n}\n\n.pds-multiselect__selected-section {\n border-block-end: var(--pine-border);\n border-block-end-color: var(--pine-color-border-subtle);\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__selected-list {\n list-style: none;\n margin: var(--pine-dimension-none);\n padding: var(--pine-dimension-none);\n}\n\n.pds-multiselect__selected-item {\n color: var(--pine-color-text-strong);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n overflow: hidden;\n padding: var(--pine-dimension-2xs) var(--pine-dimension-xs);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-multiselect__listbox {\n background: transparent;\n border: var(--pine-dimension-none);\n box-sizing: border-box;\n list-style: none;\n margin: var(--pine-dimension-none);\n overflow-y: auto;\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__option {\n align-items: center;\n background: transparent;\n border-radius: var(--pine-dimension-xs);\n cursor: pointer;\n display: flex;\n padding: var(--pine-dimension-2xs) var(--pine-dimension-xs);\n transition: background 0.15s;\n\n // Prevent checkbox label from triggering double events\n pds-checkbox {\n pointer-events: none;\n width: 100%;\n }\n\n &:hover,\n &.pds-multiselect__option--highlighted {\n background: var(--pine-color-background-muted);\n }\n\n &:focus-visible {\n outline: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__empty,\n.pds-multiselect__loading {\n align-items: center;\n color: var(--pine-color-text-muted);\n display: flex;\n font: var(--pine-typography-body);\n justify-content: center;\n padding: var(--pine-dimension-sm);\n}\n\n.pds-multiselect__load-more {\n align-items: center;\n display: flex;\n justify-content: center;\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__helper {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm);\n margin-block-start: var(--pine-dimension-2xs);\n margin-inline-start: var(--pine-dimension-none);\n}\n\n.pds-multiselect__error {\n align-items: flex-start;\n color: var(--pine-color-text-message-danger);\n display: flex;\n font: var(--pine-typography-body-sm);\n gap: var(--pine-dimension-2xs);\n margin-block-start: var(--pine-dimension-2xs);\n margin-inline-start: var(--pine-dimension-none);\n\n pds-icon {\n flex-shrink: var(--pine-dimension-none);\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n.visually-hidden {\n border: var(--pine-dimension-none);\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: var(--pine-dimension-none);\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport { computePosition, flip, offset, shift, size, autoUpdate } from '@floating-ui/dom';\nimport { debounceEvent } from '@utils/utils';\nimport { messageId, assignDescription } from '../../utils/form';\nimport { danger, enlarge } from '@pine-ds/icons/icons';\nimport type {\n MultiselectOption,\n MultiselectChangeEventDetail,\n MultiselectSearchEventDetail,\n MultiselectLoadOptionsEventDetail,\n AsyncResponse,\n} from './multiselect-interface';\n\n/**\n * @slot (default) - Static option elements for the multiselect\n * @slot empty - Custom empty state message when no options match\n * @slot loading - Custom loading indicator\n */\n@Component({\n tag: 'pds-multiselect',\n styleUrl: 'pds-multiselect.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class PdsMultiselect {\n private triggerEl?: HTMLButtonElement;\n private searchInputEl?: HTMLInputElement;\n private containerEl?: HTMLElement;\n private listboxEl?: HTMLElement;\n private panelEl?: HTMLElement;\n private internals?: ElementInternals;\n private abortController?: AbortController;\n private fetchDebounceTimer?: number;\n private observer?: MutationObserver;\n private cleanupAutoUpdate?: () => void;\n\n @Element() el!: HTMLPdsMultiselectElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Text to be displayed as the multiselect label.\n */\n @Prop() label?: string;\n\n /**\n * Placeholder text for the input field.\n */\n @Prop() placeholder?: string = 'Select...';\n\n /**\n * Specifies the name. Submitted with the form as part of a name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Array of selected option values.\n */\n @Prop({ mutable: true }) value: string[] = [];\n\n /**\n * Determines whether or not the multiselect is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * URL endpoint for async data fetching.\n */\n @Prop() asyncUrl?: string;\n\n /**\n * HTTP method for async requests.\n */\n @Prop() asyncMethod: 'GET' | 'POST' = 'GET';\n\n /**\n * Debounce delay in milliseconds for search/fetch.\n */\n @Prop() debounce: number = 300;\n\n /**\n * Maximum number of selections allowed.\n */\n @Prop() maxSelections?: number;\n\n /**\n * Maximum height of the dropdown before scrolling.\n */\n @Prop() maxHeight: string = '300px';\n\n /**\n * Width of the trigger button (and reference for dropdown positioning).\n */\n @Prop() triggerWidth: string = '100%';\n\n /**\n * Minimum width of the dropdown panel.\n */\n @Prop() minWidth: string = '250px';\n\n /**\n * Width of the dropdown panel. Defaults to the trigger width.\n */\n @Prop() panelWidth?: string;\n\n /**\n * Visually hides the label but keeps it accessible.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Helper message to display below the input.\n */\n @Prop() helperMessage?: string;\n\n /**\n * If true, the multiselect is in an invalid state.\n */\n @Prop() invalid?: boolean;\n\n /**\n * If true, the multiselect is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the component is currently loading async options.\n */\n @Prop({ mutable: true }) loading: boolean = false;\n\n /**\n * Options provided externally (for consumer-managed async).\n */\n @Prop() options?: MultiselectOption[];\n\n /**\n * Function to format async results. Receives raw API response item.\n */\n @Prop() formatResult?: (item: unknown) => MultiselectOption;\n\n // Internal state\n @State() isOpen: boolean = false;\n @State() searchQuery: string = '';\n @State() highlightedIndex: number = -1;\n @State() internalOptions: MultiselectOption[] = [];\n @State() selectedItems: MultiselectOption[] = [];\n @State() currentPage: number = 1;\n @State() hasMore: boolean = false;\n\n // Flag to prevent focusout from closing during open transition\n private isOpening: boolean = false;\n\n /**\n * Emitted when selection changes.\n */\n @Event() pdsMultiselectChange!: EventEmitter<MultiselectChangeEventDetail>;\n\n /**\n * Emitted on search input (for consumer-managed async).\n */\n @Event() pdsMultiselectSearch!: EventEmitter<MultiselectSearchEventDetail>;\n\n /**\n * Emitted to request more options (pagination).\n */\n @Event() pdsMultiselectLoadOptions!: EventEmitter<MultiselectLoadOptionsEventDetail>;\n\n private originalSearchEmitter?: EventEmitter<MultiselectSearchEventDetail>;\n\n connectedCallback() {\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentWillLoad() {\n this.originalSearchEmitter = this.pdsMultiselectSearch;\n this.syncSelectedItems();\n }\n\n componentDidLoad() {\n this.setupDebounce();\n this.setupMutationObserver();\n this.setupSlotChangeListener();\n this.updateFormValue();\n\n // Ensure preselected values sync after DOM is fully ready\n // This handles cases where slot content loads after initial render (e.g., in docs/MDX)\n requestAnimationFrame(() => {\n this.updateOptionsFromSlot();\n this.syncSelectedItems();\n });\n }\n\n private setupSlotChangeListener() {\n const slot = this.el.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.updateOptionsFromSlot();\n this.syncSelectedItems();\n });\n // Also call it immediately in case content is already slotted\n this.updateOptionsFromSlot();\n }\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n this.cleanupAutoUpdate?.();\n this.clearAsyncFetchState();\n }\n\n @Watch('debounce')\n protected setupDebounce() {\n const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;\n this.pdsMultiselectSearch = debounce === undefined\n ? originalSearchEmitter ?? pdsMultiselectSearch\n : debounceEvent(pdsMultiselectSearch, debounce);\n }\n\n @Watch('value')\n protected valueChanged(newValue: string[] | string) {\n // Handle JSON string values (from HTML attributes)\n if (typeof newValue === 'string') {\n try {\n const parsed = JSON.parse(newValue);\n if (Array.isArray(parsed)) {\n this.value = parsed;\n return; // The assignment will trigger this watcher again with the array\n }\n } catch {\n // Not valid JSON, treat as single value\n this.value = newValue ? [newValue] : [];\n return;\n }\n }\n this.syncSelectedItems();\n this.updateFormValue();\n }\n\n @Watch('options')\n protected optionsChanged() {\n if (this.options) {\n this.internalOptions = [...this.options];\n }\n }\n\n @Watch('internalOptions')\n protected internalOptionsChanged() {\n // Re-sync selected items when options become available\n // This handles the case where value is set before options are loaded (e.g., from slot)\n this.syncSelectedItems();\n }\n\n /**\n * Sets focus on the trigger button.\n */\n @Method()\n async setFocus() {\n this.triggerEl?.focus();\n }\n\n /**\n * Handle global keyboard events for accessibility.\n * Closes dropdown on Escape key press regardless of focus location.\n */\n @Listen('keydown', { target: 'window' })\n handleWindowKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closeDropdown();\n this.triggerEl?.focus();\n }\n }\n\n private setupMutationObserver() {\n this.observer = new MutationObserver(() => {\n this.updateOptionsFromSlot();\n });\n\n this.observer.observe(this.el, {\n childList: true,\n subtree: true,\n });\n }\n\n private updateOptionsFromSlot() {\n const slot = this.el.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (!slot) return;\n\n const options = slot.assignedElements({ flatten: true })\n .filter((el): el is HTMLOptionElement => el.tagName === 'OPTION')\n .map(opt => ({\n id: opt.value,\n text: opt.textContent || opt.value,\n }));\n\n // Only update if we actually found options AND we're not using async/external options\n // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)\n if (options.length > 0 && !this.asyncUrl && !this.options) {\n this.internalOptions = options;\n }\n }\n\n private clearAsyncFetchState() {\n if (this.fetchDebounceTimer !== undefined) {\n window.clearTimeout(this.fetchDebounceTimer);\n this.fetchDebounceTimer = undefined;\n }\n this.abortController?.abort();\n this.abortController = undefined;\n }\n\n private debouncedFetchAsyncOptions(query: string, page: number = 1) {\n if (!this.asyncUrl) return;\n\n if (this.fetchDebounceTimer !== undefined) {\n window.clearTimeout(this.fetchDebounceTimer);\n }\n\n const delay = Math.max(0, this.debounce ?? 0);\n this.fetchDebounceTimer = window.setTimeout(() => {\n this.fetchDebounceTimer = undefined;\n this.fetchOptions(query, page);\n }, delay);\n }\n\n private syncSelectedItems() {\n // Ensure value is an array (may be string from HTML attribute)\n const valueArray = this.ensureValueArray();\n const allOptions = this.getAllOptions();\n this.selectedItems = valueArray\n .map(val => allOptions.find(opt => String(opt.id) === String(val)))\n .filter((opt): opt is MultiselectOption => opt !== undefined);\n }\n\n private ensureValueArray(): string[] {\n // Handle JSON string values passed via HTML attribute\n if (typeof this.value === 'string') {\n try {\n const parsed = JSON.parse(this.value as unknown as string);\n if (Array.isArray(parsed)) {\n this.value = parsed;\n return parsed;\n }\n } catch {\n // Not valid JSON, treat as single value\n const singleValue = this.value as unknown as string;\n this.value = singleValue ? [singleValue] : [];\n return this.value;\n }\n }\n return Array.isArray(this.value) ? this.value : [];\n }\n\n private getAllOptions(): MultiselectOption[] {\n return this.options || this.internalOptions;\n }\n\n private getFilteredOptions(): MultiselectOption[] {\n const allOptions = this.getAllOptions();\n const query = this.searchQuery.toLowerCase();\n\n return allOptions.filter(opt => {\n // Filter by search query only - don't filter out selected items\n if (query) {\n return opt.text.toLowerCase().includes(query);\n }\n return true;\n });\n }\n\n private updateFormValue() {\n if (this.internals?.setFormValue) {\n // Ensure value is an array before iterating\n const valueArray = this.ensureValueArray();\n\n // Submit as multiple values with same name (native select multiple behavior)\n const formData = new FormData();\n valueArray.forEach(val => {\n if (this.name) {\n formData.append(this.name, val);\n }\n });\n this.internals.setFormValue(formData);\n\n // Update validity state for required validation\n if (this.required && valueArray.length === 0) {\n this.internals.setValidity(\n { valueMissing: true },\n 'Please select at least one option.',\n this.triggerEl\n );\n } else {\n this.internals.setValidity({});\n }\n }\n }\n\n private async fetchOptions(query: string, page: number = 1) {\n if (!this.asyncUrl) return;\n\n this.abortController?.abort();\n this.abortController = new AbortController();\n\n this.loading = true;\n\n try {\n const url = new URL(this.asyncUrl, window.location.origin);\n if (this.asyncMethod === 'GET') {\n url.searchParams.set('search', query);\n url.searchParams.set('page', String(page));\n }\n\n const response = await fetch(url.toString(), {\n method: this.asyncMethod,\n signal: this.abortController.signal,\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n },\n ...(this.asyncMethod === 'POST' && {\n body: JSON.stringify({ search: query, page }),\n }),\n });\n\n if (!response.ok) throw new Error('Failed to fetch options');\n\n const data: AsyncResponse = await response.json();\n\n const formattedResults = data.results.map(item => {\n if (this.formatResult) {\n return this.formatResult(item);\n }\n return {\n id: item.id,\n text: item.text,\n ...item,\n };\n });\n\n if (page === 1) {\n this.internalOptions = formattedResults;\n } else {\n this.internalOptions = [...this.internalOptions, ...formattedResults];\n }\n\n this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;\n this.currentPage = page;\n\n } catch (error) {\n if ((error as Error).name !== 'AbortError') {\n console.error('PdsMultiselect: Failed to fetch options', error);\n }\n } finally {\n this.loading = false;\n }\n }\n\n private handleTriggerClick = () => {\n if (this.disabled) return;\n\n if (this.isOpen) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n private handleTriggerKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!this.isOpen) {\n this.openDropdown();\n }\n break;\n }\n };\n\n private handleSearchInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.searchQuery = target.value;\n this.highlightedIndex = -1;\n\n // Emit search event for consumer-managed async\n this.pdsMultiselectSearch.emit({ query: this.searchQuery });\n\n // Fetch from async URL if configured\n if (this.asyncUrl) {\n this.debouncedFetchAsyncOptions(this.searchQuery, 1);\n }\n };\n\n private handleSearchInputKeyDown = (e: KeyboardEvent) => {\n const filteredOptions = this.getFilteredOptions();\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, filteredOptions.length - 1);\n this.scrollOptionIntoView();\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\n this.scrollOptionIntoView();\n break;\n\n case 'Enter':\n e.preventDefault();\n if (this.highlightedIndex >= 0) {\n const option = filteredOptions[this.highlightedIndex];\n if (option) {\n this.selectOption(option);\n }\n }\n break;\n\n // Escape is handled by the global @Listen('keydown') handler\n\n case 'Tab':\n this.closeDropdown();\n break;\n }\n };\n\n private handleContainerFocusOut = () => {\n // Use setTimeout to delay the check - this allows click events and focus transitions to complete\n // before we decide to close the dropdown\n setTimeout(() => {\n // Don't close if we're in the middle of opening or already closed\n if (!this.isOpen || this.isOpening) return;\n\n const activeElement = document.activeElement;\n\n // Check if focus is within our component's shadow root\n const isInShadowRoot = this.el.shadowRoot?.contains(activeElement);\n\n // Also check if focus is on the host element itself\n const isOnHost = activeElement === this.el;\n\n if (!isInShadowRoot && !isOnHost) {\n this.closeDropdown();\n }\n }, 0);\n };\n\n private openDropdown() {\n if (this.disabled) return;\n\n this.isOpening = true;\n this.isOpen = true;\n this.highlightedIndex = -1;\n\n // Trigger initial fetch if async\n if (this.asyncUrl && this.internalOptions.length === 0) {\n this.debouncedFetchAsyncOptions(this.searchQuery, 1);\n }\n\n requestAnimationFrame(() => {\n this.positionDropdown();\n // Focus the search input after the panel is positioned\n this.searchInputEl?.focus();\n // Clear the opening flag after focus has moved\n setTimeout(() => {\n this.isOpening = false;\n }, 50);\n });\n }\n\n private closeDropdown() {\n this.isOpen = false;\n this.highlightedIndex = -1;\n this.searchQuery = '';\n\n // Clean up auto-update\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = undefined;\n }\n }\n\n private positionDropdown() {\n if (!this.containerEl || !this.panelEl) return;\n const referenceEl = this.triggerEl || this.containerEl;\n\n const { minWidth, panelWidth } = this;\n\n const updatePosition = () => {\n computePosition(referenceEl!, this.panelEl!, {\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n offset(12),\n flip(),\n shift({ padding: 8 }),\n size({\n apply: ({ rects, elements }) => {\n Object.assign(elements.floating.style, {\n width: panelWidth ?? `${rects.reference.width}px`,\n minWidth,\n });\n },\n }),\n ],\n }).then(({ x, y }) => {\n if (this.panelEl) {\n this.panelEl.style.left = `${x}px`;\n this.panelEl.style.top = `${y}px`;\n }\n });\n };\n\n // Initial position\n updatePosition();\n\n // Set up auto-update for window resize and scroll\n const cleanupAutoUpdate = autoUpdate(\n referenceEl!,\n this.panelEl,\n updatePosition\n );\n this.cleanupAutoUpdate = () => {\n cleanupAutoUpdate();\n this.clearAsyncFetchState();\n };\n }\n\n private scrollOptionIntoView() {\n requestAnimationFrame(() => {\n const highlighted = this.listboxEl?.querySelector(`[data-index=\"${this.highlightedIndex}\"]`) as HTMLElement;\n highlighted?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n });\n }\n\n private toggleOption(option: MultiselectOption) {\n const isSelected = this.value.includes(String(option.id));\n\n if (isSelected) {\n // Remove from selection\n const newValue = this.value.filter(v => v !== String(option.id));\n this.value = newValue;\n\n const newSelectedItems = this.selectedItems.filter(item => String(item.id) !== String(option.id));\n\n this.pdsMultiselectChange.emit({\n values: newValue,\n items: newSelectedItems,\n });\n } else {\n // Add to selection\n if (this.maxSelections && this.value.length >= this.maxSelections) {\n return;\n }\n\n const newValue = [...this.value, String(option.id)];\n this.value = newValue;\n\n const newSelectedItems = [...this.selectedItems, option];\n\n this.pdsMultiselectChange.emit({\n values: newValue,\n items: newSelectedItems,\n });\n }\n\n // Keep focus on search input, don't close dropdown\n this.searchInputEl?.focus();\n }\n\n private selectOption(option: MultiselectOption) {\n // For keyboard navigation - toggle the option\n this.toggleOption(option);\n }\n\n private handleOptionMouseDown = (option: MultiselectOption) => (e: MouseEvent) => {\n e.preventDefault(); // Prevent focus change\n this.toggleOption(option);\n };\n\n private handleOptionMouseEnter = (index: number) => () => {\n this.highlightedIndex = index;\n };\n\n\n private handleScroll = (e: Event) => {\n if (!this.asyncUrl || !this.hasMore || this.loading) return;\n\n const target = e.target as HTMLElement;\n const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;\n\n // Load more when near bottom (within 50px)\n if (scrollBottom < 50) {\n this.pdsMultiselectLoadOptions.emit({\n query: this.searchQuery,\n page: this.currentPage + 1,\n });\n this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);\n }\n };\n\n\n private renderSelectedItemsList() {\n if (this.selectedItems.length === 0) return null;\n\n return (\n <div class=\"pds-multiselect__selected-section\">\n <ul class=\"pds-multiselect__selected-list\" role=\"list\">\n {this.selectedItems.map(item => (\n <li key={String(item.id)} class=\"pds-multiselect__selected-item\">\n {item.text}\n </li>\n ))}\n </ul>\n </div>\n );\n }\n\n private renderDropdown() {\n if (!this.isOpen) return null;\n\n const filteredOptions = this.getFilteredOptions();\n const valueArray = this.ensureValueArray();\n const hasSlottedEmpty = !!this.el.querySelector('[slot=\"empty\"]');\n const hasSlottedLoading = !!this.el.querySelector('[slot=\"loading\"]');\n\n return (\n <div\n class=\"pds-multiselect__panel\"\n ref={el => (this.panelEl = el)}\n style={{ minWidth: this.minWidth }}\n >\n {/* Search input */}\n <div class=\"pds-multiselect__search\">\n <pds-icon name=\"search\" size=\"small\" />\n <input\n ref={el => (this.searchInputEl = el)}\n type=\"text\"\n class=\"pds-multiselect__search-input\"\n placeholder=\"Find...\"\n value={this.searchQuery}\n aria-label=\"Search options\"\n aria-controls={`${this.componentId}-listbox`}\n aria-activedescendant={this.highlightedIndex >= 0 ? `${this.componentId}-option-${this.highlightedIndex}` : undefined}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"true\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n onInput={this.handleSearchInputChange}\n onKeyDown={this.handleSearchInputKeyDown}\n />\n </div>\n\n {/* Selected items section */}\n {this.renderSelectedItemsList()}\n\n {/* Options list */}\n <ul\n class=\"pds-multiselect__listbox\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-label={this.label || 'Options'}\n id={`${this.componentId}-listbox`}\n ref={el => (this.listboxEl = el)}\n style={{ maxHeight: this.maxHeight }}\n onScroll={this.handleScroll}\n >\n {this.loading && (\n <li class=\"pds-multiselect__loading\" role=\"presentation\">\n {hasSlottedLoading ? (\n <slot name=\"loading\" />\n ) : (\n <pds-loader size=\"small\" />\n )}\n </li>\n )}\n\n {!this.loading && filteredOptions.length === 0 && (\n <li class=\"pds-multiselect__empty\" role=\"presentation\">\n {hasSlottedEmpty ? (\n <slot name=\"empty\" />\n ) : (\n <span>No options found</span>\n )}\n </li>\n )}\n\n {filteredOptions.map((option, index) => {\n const isSelected = valueArray.includes(String(option.id));\n const isHighlighted = index === this.highlightedIndex;\n const optionId = `${this.componentId}-option-${index}`;\n\n return (\n <li\n key={String(option.id)}\n id={optionId}\n class={{\n 'pds-multiselect__option': true,\n 'pds-multiselect__option--highlighted': isHighlighted,\n 'pds-multiselect__option--selected': isSelected,\n }}\n role=\"option\"\n aria-selected={isSelected ? 'true' : 'false'}\n data-index={index}\n onMouseDown={this.handleOptionMouseDown(option)}\n onMouseEnter={this.handleOptionMouseEnter(index)}\n >\n <pds-checkbox\n componentId={`${this.componentId}-checkbox-${index}`}\n checked={isSelected}\n label={option.text}\n style={{ pointerEvents: 'none' }}\n />\n </li>\n );\n })}\n\n {this.hasMore && !this.loading && (\n <li class=\"pds-multiselect__load-more\" role=\"presentation\">\n <pds-loader size=\"small\" />\n </li>\n )}\n </ul>\n </div>\n );\n }\n\n private getTriggerText(): string {\n const count = this.selectedItems.length;\n if (count === 0) {\n return this.placeholder || 'Select...';\n }\n return `${count} item${count === 1 ? '' : 's'}`;\n }\n\n render() {\n const hasSelections = this.selectedItems.length > 0;\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n >\n <div class=\"pds-multiselect\">\n {this.label && (\n <label\n htmlFor={this.componentId}\n class={{\n 'pds-multiselect__label': true,\n 'visually-hidden': this.hideLabel,\n }}\n >\n {this.label}\n </label>\n )}\n\n <div\n class=\"pds-multiselect__wrapper\"\n ref={el => (this.containerEl = el)}\n onFocusout={this.handleContainerFocusOut}\n style={{ width: this.triggerWidth }}\n >\n <button\n ref={el => (this.triggerEl = el)}\n type=\"button\"\n class={{\n 'pds-multiselect__trigger': true,\n 'pds-multiselect__trigger--open': this.isOpen,\n 'pds-multiselect__trigger--disabled': this.disabled,\n 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,\n 'pds-multiselect__trigger--has-value': hasSelections,\n }}\n id={this.componentId}\n disabled={this.disabled}\n aria-required={this.required ? 'true' : undefined}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-describedby={assignDescription(\n this.componentId,\n this.invalid || !!this.errorMessage,\n this.errorMessage || this.helperMessage\n )}\n aria-invalid={this.invalid || !!this.errorMessage ? 'true' : undefined}\n onClick={this.handleTriggerClick}\n onKeyDown={this.handleTriggerKeyDown}\n >\n <span class={{\n 'pds-multiselect__trigger-text': true,\n 'pds-multiselect__trigger-text--placeholder': !hasSelections,\n }}>\n {this.getTriggerText()}\n </span>\n <pds-icon class=\"pds-multiselect__icon\" icon={enlarge} />\n </button>\n\n {this.renderDropdown()}\n </div>\n\n {this.helperMessage && !this.errorMessage && (\n <p class=\"pds-multiselect__helper\" id={messageId(this.componentId, 'helper')}>\n {this.helperMessage}\n </p>\n )}\n\n {this.errorMessage && (\n <p class=\"pds-multiselect__error\" id={messageId(this.componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n )}\n\n {/* Hidden slot for static options */}\n <div style={{ display: 'none' }}>\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pds-multiselect.entry.js","sources":["src/components/pds-multiselect/pds-multiselect.scss?tag=pds-multiselect&encapsulation=shadow","src/components/pds-multiselect/pds-multiselect.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n:host([aria-disabled=\"true\"]) {\n .pds-multiselect__trigger {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n .pds-multiselect__icon {\n color: var(--pine-color-text-disabled);\n }\n}\n\n.pds-multiselect {\n position: relative;\n}\n\n.pds-multiselect__label {\n color: var(--pine-color-text-label);\n display: block;\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n.pds-multiselect__wrapper {\n position: relative;\n}\n\n.pds-multiselect__trigger {\n align-items: center;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n cursor: pointer;\n display: flex;\n font: var(--pine-typography-body);\n gap: var(--pine-dimension-xs);\n justify-content: space-between;\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pine-dimension-550);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n position: relative;\n text-align: start;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n width: 100%;\n\n &:hover:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-hover);\n }\n\n &:focus:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &.pds-multiselect__trigger--open {\n border-color: var(--pine-color-border-active);\n }\n\n &.pds-multiselect__trigger--invalid {\n background-color: var(--pine-color-red-050);\n border-color: var(--pine-color-border-danger);\n\n &:focus {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n\n &.pds-multiselect__trigger--disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n}\n\n.pds-multiselect__trigger-text {\n color: var(--pine-color-text-strong);\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &.pds-multiselect__trigger-text--placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n .pds-multiselect__trigger--disabled & {\n color: var(--pine-color-text-disabled);\n }\n}\n\n.pds-multiselect__icon {\n color: var(--pine-color-icon);\n flex-shrink: var(--pine-dimension-none);\n}\n\n.pds-multiselect__panel {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-dimension-125);\n box-shadow: var(--pine-box-shadow);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n position: absolute;\n z-index: var(--pine-z-index-raised);\n}\n\n.pds-multiselect__search {\n align-items: center;\n border-block-end: var(--pine-border);\n border-block-end-color: var(--pine-color-border-subtle);\n display: flex;\n gap: var(--pine-dimension-xs);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n\n pds-icon {\n color: var(--pine-color-text-muted);\n flex-shrink: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__search-input {\n background: transparent;\n border: var(--pine-dimension-none);\n color: var(--pine-color-text-strong);\n flex: 1;\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n min-width: var(--pine-dimension-none);\n outline: none;\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n}\n\n.pds-multiselect__selected-section {\n border-block-end: var(--pine-border);\n border-block-end-color: var(--pine-color-border-subtle);\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__selected-list {\n list-style: none;\n margin: var(--pine-dimension-none);\n padding: var(--pine-dimension-none);\n}\n\n.pds-multiselect__selected-item {\n color: var(--pine-color-text-strong);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n overflow: hidden;\n padding: var(--pine-dimension-2xs) var(--pine-dimension-xs);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-multiselect__listbox {\n background: transparent;\n border: var(--pine-dimension-none);\n box-sizing: border-box;\n list-style: none;\n margin: var(--pine-dimension-none);\n overflow-y: auto;\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__option {\n align-items: center;\n background: transparent;\n border-radius: var(--pine-dimension-xs);\n cursor: pointer;\n display: flex;\n padding: var(--pine-dimension-2xs) var(--pine-dimension-xs);\n transition: background 0.15s;\n\n // Prevent checkbox label from triggering double events\n pds-checkbox {\n pointer-events: none;\n width: 100%;\n }\n\n &:hover,\n &.pds-multiselect__option--highlighted {\n background: var(--pine-color-background-muted);\n }\n\n &:focus-visible {\n outline: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__create-option {\n color: var(--pine-color-text-strong);\n width: 100%;\n\n pds-icon {\n color: var(--pine-color-text-muted);\n flex-shrink: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__empty,\n.pds-multiselect__loading {\n align-items: center;\n color: var(--pine-color-text-muted);\n display: flex;\n font: var(--pine-typography-body);\n justify-content: center;\n padding: var(--pine-dimension-sm);\n}\n\n.pds-multiselect__load-more {\n align-items: center;\n display: flex;\n justify-content: center;\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__helper {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm);\n margin-block-start: var(--pine-dimension-2xs);\n margin-inline-start: var(--pine-dimension-none);\n}\n\n.pds-multiselect__error {\n align-items: flex-start;\n color: var(--pine-color-text-message-danger);\n display: flex;\n font: var(--pine-typography-body-sm);\n gap: var(--pine-dimension-2xs);\n margin-block-start: var(--pine-dimension-2xs);\n margin-inline-start: var(--pine-dimension-none);\n\n pds-icon {\n flex-shrink: var(--pine-dimension-none);\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n.visually-hidden {\n border: var(--pine-dimension-none);\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: var(--pine-dimension-none);\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport { computePosition, flip, offset, shift, size, autoUpdate } from '@floating-ui/dom';\nimport { debounceEvent } from '@utils/utils';\nimport { messageId, assignDescription } from '../../utils/form';\nimport { danger, enlarge } from '@pine-ds/icons/icons';\nimport type {\n MultiselectOption,\n MultiselectChangeEventDetail,\n MultiselectSearchEventDetail,\n MultiselectLoadOptionsEventDetail,\n MultiselectCreateEventDetail,\n AsyncResponse,\n CreateResponse,\n} from './multiselect-interface';\n\n/**\n * @slot (default) - Static option elements for the multiselect\n * @slot empty - Custom empty state message when no options match\n * @slot loading - Custom loading indicator\n */\n@Component({\n tag: 'pds-multiselect',\n styleUrl: 'pds-multiselect.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class PdsMultiselect {\n private triggerEl?: HTMLButtonElement;\n private searchInputEl?: HTMLInputElement;\n private containerEl?: HTMLElement;\n private listboxEl?: HTMLElement;\n private panelEl?: HTMLElement;\n private internals?: ElementInternals;\n private abortController?: AbortController;\n private fetchDebounceTimer?: number;\n private fetchTimeoutTimer?: number;\n private observer?: MutationObserver;\n private cleanupAutoUpdate?: () => void;\n\n @Element() el!: HTMLPdsMultiselectElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Text to be displayed as the multiselect label.\n */\n @Prop() label?: string;\n\n /**\n * Placeholder text for the input field.\n */\n @Prop() placeholder?: string = 'Select...';\n\n /**\n * Specifies the name. Submitted with the form as part of a name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Array of selected option values.\n */\n @Prop({ mutable: true }) value: string[] = [];\n\n /**\n * Determines whether or not the multiselect is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * URL endpoint for async data fetching.\n */\n @Prop() asyncUrl?: string;\n\n /**\n * HTTP method for async requests.\n */\n @Prop() asyncMethod: 'GET' | 'POST' = 'GET';\n\n /**\n * Debounce delay in milliseconds for search/fetch.\n */\n @Prop() debounce: number = 300;\n\n /**\n * Timeout in milliseconds for async fetch requests.\n */\n @Prop() fetchTimeout: number = 30000;\n\n /**\n * Maximum number of selections allowed.\n */\n @Prop() maxSelections?: number;\n\n /**\n * Maximum height of the dropdown before scrolling.\n */\n @Prop() maxHeight: string = '300px';\n\n /**\n * Width of the trigger button (and reference for dropdown positioning).\n */\n @Prop() triggerWidth: string = '100%';\n\n /**\n * Minimum width of the dropdown panel.\n */\n @Prop() minWidth: string = '250px';\n\n /**\n * Width of the dropdown panel. Defaults to the trigger width.\n */\n @Prop() panelWidth?: string;\n\n /**\n * Visually hides the label but keeps it accessible.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Helper message to display below the input.\n */\n @Prop() helperMessage?: string;\n\n /**\n * If true, the multiselect is in an invalid state.\n */\n @Prop() invalid?: boolean;\n\n /**\n * If true, the multiselect is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the component is currently loading async options.\n */\n @Prop({ mutable: true }) loading: boolean = false;\n\n /**\n * Options provided externally (for consumer-managed async).\n */\n @Prop() options?: MultiselectOption[];\n\n /**\n * Function to format async results. Receives raw API response item.\n */\n @Prop() formatResult?: (item: unknown) => MultiselectOption;\n\n /**\n * URL endpoint for creating new options. When set, shows \"Add\" option when no matches found.\n */\n @Prop() createUrl?: string;\n\n /**\n * CSRF token for authenticated requests. If not provided, attempts to read from meta tag.\n */\n @Prop() csrfToken?: string;\n\n // Internal state\n @State() isOpen: boolean = false;\n @State() searchQuery: string = '';\n @State() highlightedIndex: number = -1;\n @State() internalOptions: MultiselectOption[] = [];\n @State() selectedItems: MultiselectOption[] = [];\n @State() currentPage: number = 1;\n @State() hasMore: boolean = false;\n @State() creating: boolean = false;\n\n // Flag to prevent focusout from closing during open transition\n private isOpening: boolean = false;\n\n /**\n * Emitted when selection changes.\n */\n @Event() pdsMultiselectChange!: EventEmitter<MultiselectChangeEventDetail>;\n\n /**\n * Emitted on search input (for consumer-managed async).\n */\n @Event() pdsMultiselectSearch!: EventEmitter<MultiselectSearchEventDetail>;\n\n /**\n * Emitted to request more options (pagination).\n */\n @Event() pdsMultiselectLoadOptions!: EventEmitter<MultiselectLoadOptionsEventDetail>;\n\n /**\n * Emitted when a new option is created.\n */\n @Event() pdsMultiselectCreate!: EventEmitter<MultiselectCreateEventDetail>;\n\n private originalSearchEmitter?: EventEmitter<MultiselectSearchEventDetail>;\n\n connectedCallback() {\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentWillLoad() {\n this.originalSearchEmitter = this.pdsMultiselectSearch;\n this.syncSelectedItems();\n }\n\n componentDidLoad() {\n this.setupDebounce();\n this.setupMutationObserver();\n this.setupSlotChangeListener();\n this.updateFormValue();\n\n // Ensure preselected values sync after DOM is fully ready\n // This handles cases where slot content loads after initial render (e.g., in docs/MDX)\n requestAnimationFrame(() => {\n this.updateOptionsFromSlot();\n this.syncSelectedItems();\n });\n }\n\n private setupSlotChangeListener() {\n const slot = this.el.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.updateOptionsFromSlot();\n this.syncSelectedItems();\n });\n // Also call it immediately in case content is already slotted\n this.updateOptionsFromSlot();\n }\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n this.cleanupAutoUpdate?.();\n this.clearAsyncFetchState();\n }\n\n @Watch('debounce')\n protected setupDebounce() {\n const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;\n this.pdsMultiselectSearch = debounce === undefined\n ? originalSearchEmitter ?? pdsMultiselectSearch\n : debounceEvent(pdsMultiselectSearch, debounce);\n }\n\n @Watch('value')\n protected valueChanged(newValue: string[] | string) {\n // Handle JSON string values (from HTML attributes)\n if (typeof newValue === 'string') {\n try {\n const parsed = JSON.parse(newValue);\n if (Array.isArray(parsed)) {\n this.value = parsed;\n return; // The assignment will trigger this watcher again with the array\n }\n } catch {\n // Not valid JSON, treat as single value\n this.value = newValue ? [newValue] : [];\n return;\n }\n }\n this.syncSelectedItems();\n this.updateFormValue();\n }\n\n @Watch('options')\n protected optionsChanged() {\n if (this.options) {\n this.internalOptions = [...this.options];\n }\n }\n\n @Watch('internalOptions')\n protected internalOptionsChanged() {\n // Re-sync selected items when options become available\n // This handles the case where value is set before options are loaded (e.g., from slot)\n this.syncSelectedItems();\n }\n\n /**\n * Sets focus on the trigger button.\n */\n @Method()\n async setFocus() {\n this.triggerEl?.focus();\n }\n\n /**\n * Handle global keyboard events for accessibility.\n * Closes dropdown on Escape key press regardless of focus location.\n */\n @Listen('keydown', { target: 'window' })\n handleWindowKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.closeDropdown();\n this.triggerEl?.focus();\n }\n }\n\n private setupMutationObserver() {\n this.observer = new MutationObserver(() => {\n this.updateOptionsFromSlot();\n });\n\n this.observer.observe(this.el, {\n childList: true,\n subtree: true,\n });\n }\n\n private updateOptionsFromSlot() {\n const slot = this.el.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (!slot) return;\n\n const options = slot.assignedElements({ flatten: true })\n .filter((el): el is HTMLOptionElement => el.tagName === 'OPTION')\n .map(opt => ({\n id: opt.value,\n text: opt.textContent || opt.value,\n }));\n\n // Only update if we actually found options AND we're not using async/external options\n // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)\n if (options.length > 0 && !this.asyncUrl && !this.options) {\n this.internalOptions = options;\n }\n }\n\n private clearAsyncFetchState() {\n if (this.fetchDebounceTimer !== undefined) {\n window.clearTimeout(this.fetchDebounceTimer);\n this.fetchDebounceTimer = undefined;\n }\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n this.abortController?.abort();\n this.abortController = undefined;\n }\n\n private debouncedFetchAsyncOptions(query: string, page: number = 1) {\n if (!this.asyncUrl) return;\n\n if (this.fetchDebounceTimer !== undefined) {\n window.clearTimeout(this.fetchDebounceTimer);\n }\n\n const delay = Math.max(0, this.debounce ?? 0);\n this.fetchDebounceTimer = window.setTimeout(() => {\n this.fetchDebounceTimer = undefined;\n this.fetchOptions(query, page);\n }, delay);\n }\n\n private syncSelectedItems() {\n // Ensure value is an array (may be string from HTML attribute)\n const valueArray = this.ensureValueArray();\n const allOptions = this.getAllOptions();\n\n // Map values to options, preserving existing selectedItems for values not yet in options\n const newSelectedItems: MultiselectOption[] = [];\n const existingItemsMap = new Map(this.selectedItems.map(item => [String(item.id), item]));\n\n valueArray.forEach(val => {\n // First try to find in available options\n const option = allOptions.find(opt => String(opt.id) === String(val));\n\n if (option) {\n newSelectedItems.push(option);\n } else if (existingItemsMap.has(String(val))) {\n // If not in options but exists in current selectedItems, preserve it\n // This handles the case where async data hasn't loaded yet or newly created items\n newSelectedItems.push(existingItemsMap.get(String(val))!);\n }\n // Note: We don't create placeholders for values without matching options.\n // This ensures selectedItems remains empty until options are actually loaded,\n // which matches the expected behavior for preselected values.\n });\n\n this.selectedItems = newSelectedItems;\n }\n\n private ensureValueArray(): string[] {\n // Handle JSON string values passed via HTML attribute\n if (typeof this.value === 'string') {\n try {\n const parsed = JSON.parse(this.value as unknown as string);\n if (Array.isArray(parsed)) {\n this.value = parsed;\n return parsed;\n }\n } catch {\n // Not valid JSON, treat as single value\n const singleValue = this.value as unknown as string;\n this.value = singleValue ? [singleValue] : [];\n return this.value;\n }\n }\n return Array.isArray(this.value) ? this.value : [];\n }\n\n private getAllOptions(): MultiselectOption[] {\n return this.options || this.internalOptions;\n }\n\n private getFilteredOptions(): MultiselectOption[] {\n const allOptions = this.getAllOptions();\n const query = this.searchQuery.toLowerCase();\n\n const filtered = allOptions.filter(opt => {\n // Filter by search query only - don't filter out selected items\n if (query) {\n return opt.text.toLowerCase().includes(query);\n }\n return true;\n });\n\n // Add create option if enabled and no matches found\n if (this.createUrl && this.searchQuery.trim() && filtered.length === 0) {\n return [{\n id: '__create__',\n text: this.searchQuery.trim(),\n isCreateOption: true,\n }];\n }\n\n return filtered;\n }\n\n private updateFormValue() {\n if (this.internals?.setFormValue) {\n // Ensure value is an array before iterating\n const valueArray = this.ensureValueArray();\n\n // Submit as multiple values with same name (native select multiple behavior)\n const formData = new FormData();\n valueArray.forEach(val => {\n if (this.name) {\n formData.append(this.name, val);\n }\n });\n this.internals.setFormValue(formData);\n\n // Update validity state for required validation\n if (this.required && valueArray.length === 0) {\n this.internals.setValidity(\n { valueMissing: true },\n 'Please select at least one option.',\n this.triggerEl\n );\n } else {\n this.internals.setValidity({});\n }\n }\n }\n\n private getCsrfToken(): string | null {\n // Use provided token if available\n if (this.csrfToken) {\n return this.csrfToken;\n }\n\n // Try to read from meta tag\n const metaTag = document.querySelector('meta[name=\"csrf-token\"]') as HTMLMetaElement;\n return metaTag?.content || null;\n }\n\n private async fetchOptions(query: string, page: number = 1) {\n if (!this.asyncUrl) return;\n\n // Abort any pending request and clear existing timeout\n this.abortController?.abort();\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n this.abortController = new AbortController();\n this.loading = true;\n\n // Set up timeout for fetch request\n this.fetchTimeoutTimer = window.setTimeout(() => {\n this.abortController?.abort();\n this.fetchTimeoutTimer = undefined;\n }, this.fetchTimeout);\n\n try {\n // Guard against malformed asyncUrl\n let url: URL;\n try {\n url = new URL(this.asyncUrl, window.location.origin);\n } catch (urlError) {\n throw new TypeError(`Invalid asyncUrl: ${this.asyncUrl}`);\n }\n\n if (this.asyncMethod === 'GET') {\n url.searchParams.set('search', query);\n url.searchParams.set('page', String(page));\n }\n\n const csrfToken = this.getCsrfToken();\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n };\n\n if (csrfToken) {\n headers['X-CSRF-Token'] = csrfToken;\n }\n\n const response = await fetch(url.toString(), {\n method: this.asyncMethod,\n signal: this.abortController.signal,\n headers,\n ...(this.asyncMethod === 'POST' && {\n body: JSON.stringify({ search: query, page }),\n }),\n });\n\n // Clear timeout on successful response\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n if (!response.ok) throw new Error('Failed to fetch options');\n\n const data: AsyncResponse = await response.json();\n\n const formattedResults = data.results.map(item => {\n // If formatResult is provided, use it\n if (this.formatResult) {\n return this.formatResult(item);\n }\n\n // Defensive check: ensure item is an object before spreading\n if (typeof item === 'object' && item !== null) {\n return {\n id: item.id,\n text: item.text,\n ...item,\n } as MultiselectOption;\n }\n\n // Handle primitives by converting to safe shape\n return {\n id: String(item),\n text: String(item),\n } as MultiselectOption;\n });\n\n if (page === 1) {\n this.internalOptions = formattedResults;\n } else {\n this.internalOptions = [...this.internalOptions, ...formattedResults];\n }\n\n this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;\n this.currentPage = page;\n\n } catch (error) {\n // Clear timeout on error\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n if ((error as Error).name !== 'AbortError') {\n console.error('PdsMultiselect: Failed to fetch options', error);\n }\n } finally {\n this.loading = false;\n }\n }\n\n private async createOption(query: string) {\n if (!this.createUrl || !query.trim()) return;\n\n // Reentrancy guard: prevent duplicate POSTs if creation is already in-flight\n if (this.creating) return;\n\n this.creating = true;\n\n try {\n const url = new URL(this.createUrl, window.location.origin);\n\n const csrfToken = this.getCsrfToken();\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n };\n\n if (csrfToken) {\n headers['X-CSRF-Token'] = csrfToken;\n }\n\n const response = await fetch(url.toString(), {\n method: 'POST',\n headers,\n body: JSON.stringify({ text: query.trim() }),\n });\n\n if (!response.ok) throw new Error('Failed to create option');\n\n const data: CreateResponse = await response.json();\n\n const newOption: MultiselectOption = {\n id: data.id,\n text: data.text,\n ...data,\n };\n\n // Add to internal options first\n this.internalOptions = [...this.internalOptions, newOption];\n\n // Select the new option\n this.value = [...this.value, String(newOption.id)];\n\n // Sync selected items to update display with new option\n this.syncSelectedItems();\n\n // Emit create event\n this.pdsMultiselectCreate.emit({\n query: query.trim(),\n newOption,\n });\n\n // Emit change event with synced items\n this.pdsMultiselectChange.emit({\n values: this.value,\n items: this.selectedItems,\n });\n\n // Clear search and keep dropdown open\n this.searchQuery = '';\n this.highlightedIndex = -1;\n\n // Focus back on search input\n requestAnimationFrame(() => {\n this.searchInputEl?.focus();\n });\n\n } catch (error) {\n console.error('PdsMultiselect: Failed to create option', error);\n } finally {\n this.creating = false;\n }\n }\n\n private handleTriggerClick = () => {\n if (this.disabled) return;\n\n if (this.isOpen) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n private handleTriggerKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!this.isOpen) {\n this.openDropdown();\n }\n break;\n }\n };\n\n private handleSearchInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.searchQuery = target.value;\n this.highlightedIndex = -1;\n\n // Emit search event for consumer-managed async\n this.pdsMultiselectSearch.emit({ query: this.searchQuery });\n\n // Fetch from async URL if configured\n if (this.asyncUrl) {\n this.debouncedFetchAsyncOptions(this.searchQuery, 1);\n }\n };\n\n private handleSearchInputKeyDown = (e: KeyboardEvent) => {\n const filteredOptions = this.getFilteredOptions();\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, filteredOptions.length - 1);\n this.scrollOptionIntoView();\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\n this.scrollOptionIntoView();\n break;\n\n case 'Enter':\n e.preventDefault();\n if (this.highlightedIndex >= 0) {\n const option = filteredOptions[this.highlightedIndex];\n if (option) {\n this.selectOption(option);\n }\n }\n break;\n\n // Escape is handled by the global @Listen('keydown') handler\n\n case 'Tab':\n this.closeDropdown();\n break;\n }\n };\n\n private handleContainerFocusOut = () => {\n // Use setTimeout to delay the check - this allows click events and focus transitions to complete\n // before we decide to close the dropdown\n setTimeout(() => {\n // Don't close if we're in the middle of opening or already closed\n if (!this.isOpen || this.isOpening) return;\n\n const activeElement = document.activeElement;\n\n // Check if focus is within our component's shadow root\n const isInShadowRoot = this.el.shadowRoot?.contains(activeElement);\n\n // Also check if focus is on the host element itself\n const isOnHost = activeElement === this.el;\n\n if (!isInShadowRoot && !isOnHost) {\n this.closeDropdown();\n }\n }, 0);\n };\n\n private openDropdown() {\n if (this.disabled) return;\n\n this.isOpening = true;\n this.isOpen = true;\n this.highlightedIndex = -1;\n\n // Trigger initial fetch if async\n if (this.asyncUrl && this.internalOptions.length === 0) {\n this.debouncedFetchAsyncOptions(this.searchQuery, 1);\n }\n\n requestAnimationFrame(() => {\n this.positionDropdown();\n // Focus the search input after the panel is positioned\n this.searchInputEl?.focus();\n // Clear the opening flag after focus has moved\n setTimeout(() => {\n this.isOpening = false;\n }, 50);\n });\n }\n\n private closeDropdown() {\n this.isOpen = false;\n this.highlightedIndex = -1;\n this.searchQuery = '';\n\n // Clean up auto-update\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = undefined;\n }\n }\n\n private positionDropdown() {\n if (!this.containerEl || !this.panelEl) return;\n const referenceEl = this.triggerEl || this.containerEl;\n\n const { minWidth, panelWidth } = this;\n\n const updatePosition = () => {\n computePosition(referenceEl!, this.panelEl!, {\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n offset(12),\n flip(),\n shift({ padding: 8 }),\n size({\n apply: ({ rects, elements }) => {\n Object.assign(elements.floating.style, {\n width: panelWidth ?? `${rects.reference.width}px`,\n minWidth,\n });\n },\n }),\n ],\n }).then(({ x, y }) => {\n if (this.panelEl) {\n this.panelEl.style.left = `${x}px`;\n this.panelEl.style.top = `${y}px`;\n }\n });\n };\n\n // Initial position\n updatePosition();\n\n // Set up auto-update for window resize and scroll\n const cleanupAutoUpdate = autoUpdate(\n referenceEl!,\n this.panelEl,\n updatePosition\n );\n this.cleanupAutoUpdate = () => {\n cleanupAutoUpdate();\n this.clearAsyncFetchState();\n };\n }\n\n private scrollOptionIntoView() {\n requestAnimationFrame(() => {\n const highlighted = this.listboxEl?.querySelector(`[data-index=\"${this.highlightedIndex}\"]`) as HTMLElement;\n highlighted?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n });\n }\n\n private toggleOption(option: MultiselectOption) {\n // Handle create option\n if (option.isCreateOption) {\n // Prevent multiple create calls while one is in-flight\n if (!this.creating) {\n this.createOption(this.searchQuery);\n }\n return;\n }\n\n const isSelected = this.value.includes(String(option.id));\n\n if (isSelected) {\n // Remove from selection\n this.value = this.value.filter(v => v !== String(option.id));\n } else {\n // Add to selection\n if (this.maxSelections && this.value.length >= this.maxSelections) {\n return;\n }\n\n this.value = [...this.value, String(option.id)];\n }\n\n // Sync selected items to ensure no duplicates and accurate state\n this.syncSelectedItems();\n\n // Emit change event with synced items\n this.pdsMultiselectChange.emit({\n values: this.value,\n items: this.selectedItems,\n });\n\n // Keep focus on search input, don't close dropdown\n this.searchInputEl?.focus();\n }\n\n private selectOption(option: MultiselectOption) {\n // For keyboard navigation - toggle the option\n this.toggleOption(option);\n }\n\n private handleOptionMouseDown = (option: MultiselectOption) => (e: MouseEvent) => {\n e.preventDefault(); // Prevent focus change\n this.toggleOption(option);\n };\n\n private handleOptionMouseEnter = (index: number) => () => {\n this.highlightedIndex = index;\n };\n\n\n private handleScroll = (e: Event) => {\n if (!this.asyncUrl || !this.hasMore || this.loading) return;\n\n const target = e.target as HTMLElement;\n const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;\n\n // Load more when near bottom (within 50px)\n if (scrollBottom < 50) {\n this.pdsMultiselectLoadOptions.emit({\n query: this.searchQuery,\n page: this.currentPage + 1,\n });\n this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);\n }\n };\n\n\n private renderSelectedItemsList() {\n if (this.selectedItems.length === 0) return null;\n\n return (\n <div class=\"pds-multiselect__selected-section\">\n <ul class=\"pds-multiselect__selected-list\" role=\"list\">\n {this.selectedItems.map(item => (\n <li key={String(item.id)} class=\"pds-multiselect__selected-item\">\n {item.text}\n </li>\n ))}\n </ul>\n </div>\n );\n }\n\n private renderDropdown() {\n if (!this.isOpen) return null;\n\n const filteredOptions = this.getFilteredOptions();\n const valueArray = this.ensureValueArray();\n const hasSlottedEmpty = !!this.el.querySelector('[slot=\"empty\"]');\n const hasSlottedLoading = !!this.el.querySelector('[slot=\"loading\"]');\n\n return (\n <div\n class=\"pds-multiselect__panel\"\n ref={el => (this.panelEl = el)}\n style={{ minWidth: this.minWidth }}\n >\n {/* Search input */}\n <div class=\"pds-multiselect__search\">\n <pds-icon name=\"search\" size=\"small\" />\n <input\n ref={el => (this.searchInputEl = el)}\n type=\"text\"\n class=\"pds-multiselect__search-input\"\n placeholder=\"Find...\"\n value={this.searchQuery}\n aria-label=\"Search options\"\n aria-controls={`${this.componentId}-listbox`}\n aria-activedescendant={this.highlightedIndex >= 0 ? `${this.componentId}-option-${this.highlightedIndex}` : undefined}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"true\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n onInput={this.handleSearchInputChange}\n onKeyDown={this.handleSearchInputKeyDown}\n />\n </div>\n\n {/* Selected items section */}\n {this.renderSelectedItemsList()}\n\n {/* Options list */}\n <ul\n class=\"pds-multiselect__listbox\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-label={this.label || 'Options'}\n id={`${this.componentId}-listbox`}\n ref={el => (this.listboxEl = el)}\n style={{ maxHeight: this.maxHeight }}\n onScroll={this.handleScroll}\n >\n {this.loading && (\n <li class=\"pds-multiselect__loading\" role=\"presentation\">\n {hasSlottedLoading ? (\n <slot name=\"loading\" />\n ) : (\n <pds-loader size=\"small\" />\n )}\n </li>\n )}\n\n {!this.loading && filteredOptions.length === 0 && (\n <li class=\"pds-multiselect__empty\" role=\"presentation\">\n {hasSlottedEmpty ? (\n <slot name=\"empty\" />\n ) : (\n <span>No options found</span>\n )}\n </li>\n )}\n\n {filteredOptions.map((option, index) => {\n const isSelected = valueArray.includes(String(option.id));\n const isCreateOption = option.isCreateOption;\n const isHighlighted = index === this.highlightedIndex && !isCreateOption;\n const optionId = `${this.componentId}-option-${index}`;\n const isCreateDisabled = isCreateOption && this.creating;\n\n return (\n <li\n key={String(option.id)}\n id={optionId}\n class={{\n 'pds-multiselect__option': true,\n 'pds-multiselect__option--highlighted': isHighlighted,\n 'pds-multiselect__option--selected': isSelected,\n 'pds-multiselect__option--create': isCreateOption,\n 'pds-multiselect__option--disabled': isCreateDisabled,\n }}\n role=\"option\"\n aria-selected={isSelected ? 'true' : 'false'}\n aria-disabled={isCreateDisabled ? 'true' : undefined}\n aria-label={isCreateOption ? `Create new tag: ${option.text}` : undefined}\n data-index={index}\n onMouseDown={this.handleOptionMouseDown(option)}\n onMouseEnter={this.handleOptionMouseEnter(index)}\n >\n {isCreateOption ? (\n <pds-box class=\"pds-multiselect__create-option\" align-items=\"center\" gap=\"xs\">\n <pds-icon name=\"add\" size=\"small\" />\n <pds-text>Add \"{option.text}\"</pds-text>\n </pds-box>\n ) : (\n <pds-checkbox\n componentId={`${this.componentId}-checkbox-${index}`}\n checked={isSelected}\n label={option.text}\n style={{ pointerEvents: 'none' }}\n />\n )}\n </li>\n );\n })}\n\n {this.hasMore && !this.loading && (\n <li class=\"pds-multiselect__load-more\" role=\"presentation\">\n <pds-loader size=\"small\" />\n </li>\n )}\n </ul>\n </div>\n );\n }\n\n private getTriggerText(): string {\n const count = this.selectedItems.length;\n if (count === 0) {\n return this.placeholder || 'Select...';\n }\n return `${count} item${count === 1 ? '' : 's'}`;\n }\n\n render() {\n const hasSelections = this.selectedItems.length > 0;\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n >\n <div class=\"pds-multiselect\">\n {this.label && (\n <label\n htmlFor={this.componentId}\n class={{\n 'pds-multiselect__label': true,\n 'visually-hidden': this.hideLabel,\n }}\n >\n {this.label}\n </label>\n )}\n\n <div\n class=\"pds-multiselect__wrapper\"\n ref={el => (this.containerEl = el)}\n onFocusout={this.handleContainerFocusOut}\n style={{ width: this.triggerWidth }}\n >\n <button\n ref={el => (this.triggerEl = el)}\n type=\"button\"\n class={{\n 'pds-multiselect__trigger': true,\n 'pds-multiselect__trigger--open': this.isOpen,\n 'pds-multiselect__trigger--disabled': this.disabled,\n 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,\n 'pds-multiselect__trigger--has-value': hasSelections,\n }}\n id={this.componentId}\n disabled={this.disabled}\n aria-required={this.required ? 'true' : undefined}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-describedby={assignDescription(\n this.componentId,\n this.invalid || !!this.errorMessage,\n this.errorMessage || this.helperMessage\n )}\n aria-invalid={this.invalid || !!this.errorMessage ? 'true' : undefined}\n onClick={this.handleTriggerClick}\n onKeyDown={this.handleTriggerKeyDown}\n >\n <span class={{\n 'pds-multiselect__trigger-text': true,\n 'pds-multiselect__trigger-text--placeholder': !hasSelections,\n }}>\n {this.getTriggerText()}\n </span>\n <pds-icon class=\"pds-multiselect__icon\" icon={enlarge} />\n </button>\n\n {this.renderDropdown()}\n </div>\n\n {this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (\n <p class=\"pds-multiselect__helper\" id={messageId(this.componentId, 'helper')}>\n {this.helperMessage}\n </p>\n )}\n\n {this.errorMessage && (\n <p class=\"pds-multiselect__error\" id={messageId(this.componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n )}\n\n {/* Hidden slot for static options */}\n <div style={{ display: 'none' }}>\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-DHPhrb5T.js";var pdsPopoverCss=":host{--sizing-max-width-default:352px;display:inline-block}:host .pds-popover__trigger-wrapper{display:inline-block}:host .pds-popover__content-slot-wrapper{display:none}";var PdsPopover=function(){function t(t){var i=this;registerInstance(this,t);this.pdsPopoverOpen=createEvent(this,"pdsPopoverOpen");this.pdsPopoverClose=createEvent(this,"pdsPopoverClose");this.active=false;this.isComponentMounted=true;this.triggerEl=null;this.portalEl=null;this.isRepositioning=false;this.scrollDebounceTimer=null;this.resizeDebounceTimer=null;this.movedNodes=[];this.openTimestamp=0;this.popoverTargetAction="show";this.popoverType="auto";this.maxWidth=352;this.placement="right";this.handleTriggerSlotChange=function(t){var e=t.target;var s=e.assignedElements();if(i.triggerEl!=null){i.triggerEl.removeEventListener("click",i.handleTriggerClick)}if(s.length>0){i.triggerEl=s[0];if(i.portalEl){i.triggerEl.setAttribute("aria-expanded",String(i.active));i.triggerEl.setAttribute("aria-controls",i.portalEl.id)}i.triggerEl.addEventListener("click",i.handleTriggerClick)}else{i.triggerEl=null}};this.handleContentSlotChange=function(){if(!i.active)return;i.updatePortalContent()};this.handleTriggerClick=function(t){var e=t.composedPath();var s=e.find((function(t){return t instanceof HTMLAnchorElement&&t.href}));if(!s){t.preventDefault()}switch(i.popoverTargetAction){case"show":i.show();break;case"hide":i.hide();break;case"toggle":default:i.toggle();break}}}t.prototype.componentDidLoad=function(){var t;this.boundClickOutsideHandler=this.handleClickOutside.bind(this);this.boundEscapeKeyHandler=this.handleEscapeKey.bind(this);this.boundScrollHandler=this.handleScroll.bind(this);this.boundResizeHandler=this.handleResize.bind(this);this.createPortal();var i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector('slot[name="trigger"]');if(i&&this.triggerEl==null){var e=typeof window!=="undefined"?window.Event:global.Event;var s=new e("slotchange");Object.defineProperty(s,"target",{value:i,enumerable:true});this.handleTriggerSlotChange(s)}};t.prototype.disconnectedCallback=function(){this.isComponentMounted=false;if(this.triggerEl!=null){this.triggerEl.removeEventListener("click",this.handleTriggerClick)}this.removeLightDismissListeners();this.removeScrollAndResizeListeners();this.clearDebounceTimers();this.removePortal()};t.prototype.clearDebounceTimers=function(){if(this.scrollDebounceTimer!==null){clearTimeout(this.scrollDebounceTimer);this.scrollDebounceTimer=null}if(this.resizeDebounceTimer!==null){clearTimeout(this.resizeDebounceTimer);this.resizeDebounceTimer=null}};t.prototype.createPortal=function(){if(this.portalEl!==null)return;this.portalEl=document.createElement("div");this.portalEl.className="pds-popover";this.portalEl.style.position="fixed";this.portalEl.style.zIndex="var(--pine-z-index-raised)";this.portalEl.style.maxWidth="".concat(this.maxWidth,"px");this.portalEl.style.display="none";this.portalEl.style.opacity="0";this.portalEl.style.visibility="hidden";this.portalEl.style.backgroundColor="var(--pine-color-background-container)";this.portalEl.style.borderRadius="var(--pine-dimension-125)";this.portalEl.style.boxShadow="var(--pine-box-shadow-200)";this.portalEl.style.margin="var(--pine-dimension-none)";this.portalEl.style.padding="var(--pine-dimension-md)";if(!this.componentId){var t=PdsPopover.instanceCounter++;this.portalEl.id="pds-popover-portal-".concat(t)}else{this.portalEl.id="".concat(this.componentId,"-portal")}this.portalEl.setAttribute("aria-modal","false");document.body.appendChild(this.portalEl);this.addPortalFocusStyles()};t.prototype.addPortalFocusStyles=function(){if(!this.portalEl)return;var t=this.portalEl.id;var i=document.querySelector('style[data-pds-popover-focus="'.concat(t,'"]'));if(i)return;var e=document.createElement("style");e.setAttribute("data-pds-popover-focus",t);e.textContent="\n #".concat(t,":focus {\n outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;\n outline-offset: var(--pine-border-width, 1px);\n }\n #").concat(t,':focus:not(:focus-visible) {\n outline: none;\n }\n [data-theme="dark"] #').concat(t," {\n border: var(--pine-border);\n }\n ");document.head.appendChild(e)};t.prototype.updatePortalContent=function(){var t=this;var i;if(!this.portalEl)return;var e=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".pds-popover__content-slot-wrapper");var s=e===null||e===void 0?void 0:e.querySelector("slot");if(s){var n=s.assignedNodes();n.forEach((function(i){var e;var s=i.parentNode===t.portalEl;var n=t.movedNodes.some((function(t){return t.node===i}));if(s||n){return}var r=document.createComment("pds-popover-placeholder");(e=i.parentNode)===null||e===void 0?void 0:e.insertBefore(r,i);t.portalEl.appendChild(i);t.movedNodes.push({node:i,placeholder:r})}))}};t.prototype.restorePortalContent=function(){this.movedNodes.forEach((function(t){var i=t.node,e=t.placeholder;if(e.parentNode){e.parentNode.insertBefore(i,e);e.parentNode.removeChild(e)}}));this.movedNodes=[]};t.prototype.removePortal=function(){if(this.portalEl){if(this.portalEl.parentNode){this.portalEl.parentNode.removeChild(this.portalEl)}var t=this.portalEl.id;var i=document.querySelector('style[data-pds-popover-focus="'.concat(t,'"]'));if(i&&i.parentNode){i.parentNode.removeChild(i)}}this.portalEl=null};t.prototype.show=function(){return __awaiter(this,void 0,void 0,(function(){var t=this;return __generator(this,(function(i){if(this.active||!this.portalEl)return[2];this.active=true;this.openTimestamp=Date.now();if(this.triggerEl){this.triggerEl.setAttribute("aria-expanded","true")}this.updatePortalContent();this.portalEl.style.display="block";this.portalEl.style.opacity="1";this.portalEl.style.visibility="visible";requestAnimationFrame((function(){if(!t.isComponentMounted)return;t.handlePopoverPositioning()}));this.addScrollAndResizeListeners();if(this.popoverType==="auto"){this.addLightDismissListeners()}this.pdsPopoverOpen.emit({componentId:this.componentId,popoverType:this.popoverType});return[2]}))}))};t.prototype.hide=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(!this.active||!this.portalEl)return[2];this.active=false;if(this.triggerEl){this.triggerEl.setAttribute("aria-expanded","false")}this.restorePortalContent();this.portalEl.style.display="none";this.portalEl.style.opacity="0";this.portalEl.style.visibility="hidden";this.returnFocusToTrigger();this.removeLightDismissListeners();this.removeScrollAndResizeListeners();this.clearDebounceTimers();this.pdsPopoverClose.emit({componentId:this.componentId,popoverType:this.popoverType});return[2]}))}))};t.prototype.toggle=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(this.active){this.hide()}else{this.show()}return[2]}))}))};t.prototype.addLightDismissListeners=function(){document.addEventListener("click",this.boundClickOutsideHandler,true);document.addEventListener("keydown",this.boundEscapeKeyHandler)};t.prototype.removeLightDismissListeners=function(){document.removeEventListener("click",this.boundClickOutsideHandler,true);document.removeEventListener("keydown",this.boundEscapeKeyHandler)};t.prototype.addScrollAndResizeListeners=function(){window.addEventListener("scroll",this.boundScrollHandler,true);window.addEventListener("resize",this.boundResizeHandler)};t.prototype.removeScrollAndResizeListeners=function(){window.removeEventListener("scroll",this.boundScrollHandler,true);window.removeEventListener("resize",this.boundResizeHandler)};t.prototype.handleClickOutside=function(t){var i,e;var s=t.timeStamp?Date.now()-(performance.now()-t.timeStamp):Date.now();if(s<=this.openTimestamp){return}var n=t.target;var r=(i=this.portalEl)===null||i===void 0?void 0:i.contains(n);var o=(e=this.triggerEl)===null||e===void 0?void 0:e.contains(n);if(!r&&!o){this.hide()}};t.prototype.returnFocusToTrigger=function(){if(!this.triggerEl)return;this.triggerEl.focus({preventScroll:true})};t.prototype.handleEscapeKey=function(t){if(t.key==="Escape"){t.preventDefault();t.stopPropagation();this.hide()}};t.prototype.handleScroll=function(){var t=this;if(!this.active)return;if(this.scrollDebounceTimer!==null){clearTimeout(this.scrollDebounceTimer)}this.scrollDebounceTimer=setTimeout((function(){t.handlePopoverPositioning();t.scrollDebounceTimer=null}),10)};t.prototype.handleResize=function(){var t=this;if(!this.active)return;if(this.resizeDebounceTimer!==null){clearTimeout(this.resizeDebounceTimer)}this.resizeDebounceTimer=setTimeout((function(){t.handlePopoverPositioning();t.resizeDebounceTimer=null}),100)};t.prototype.handlePopoverPositioning=function(){var t=this;if(this.isRepositioning){return}this.isRepositioning=true;if(this.triggerEl==null||this.portalEl==null){this.isRepositioning=false;return}var i=this.triggerEl.getBoundingClientRect();var e=this.portalEl.getBoundingClientRect();if(i.width===0||i.height===0){this.isRepositioning=false;return}var s=0;var n=0;var r=8;switch(this.placement){case"top":s=i.top-e.height-r;n=i.left+(i.width-e.width)/2;break;case"top-start":s=i.top-e.height-r;n=i.left;break;case"top-end":s=i.top-e.height-r;n=i.right-e.width;break;case"right":s=i.top+(i.height-e.height)/2;n=i.right+r;break;case"right-start":s=i.top;n=i.right+r;break;case"right-end":s=i.bottom-e.height;n=i.right+r;break;case"bottom":s=i.bottom+r;n=i.left+(i.width-e.width)/2;break;case"bottom-start":s=i.bottom+r;n=i.left;break;case"bottom-end":s=i.bottom+r;n=i.right-e.width;break;case"left":s=i.top+(i.height-e.height)/2;n=i.left-e.width-r;break;case"left-start":s=i.top;n=i.left-e.width-r;break;case"left-end":s=i.bottom-e.height;n=i.left-e.width-r;break}this.portalEl.style.top="".concat(s,"px");this.portalEl.style.left="".concat(n,"px");setTimeout((function(){t.isRepositioning=false}),16)};t.prototype.render=function(){return h(Host,{key:"4cdcc590173cf0edc4412b611277d7cce152c567",id:this.componentId},h("span",{key:"5136bc20db4630da4264d389e6ff2d25353900c6",class:"pds-popover__trigger-wrapper"},h("slot",{key:"7127a728bc5b6458d339c54cdd795d9768219479",name:"trigger",onSlotchange:this.handleTriggerSlotChange})),h("div",{key:"3ffd0aca1500b59f8e577c063d3ff766fc95a550",class:"pds-popover__content-slot-wrapper"},h("slot",{key:"30093c1e7d9a94c5297386f07eb921be85e59a97",onSlotchange:this.handleContentSlotChange})))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();PdsPopover.instanceCounter=0;PdsPopover.style=pdsPopoverCss;export{PdsPopover as pds_popover};
|
|
1
|
+
import{__awaiter,__generator}from"tslib";import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-DHPhrb5T.js";var pdsPopoverCss=":host{--sizing-max-width-default:352px;display:inline-block}:host .pds-popover__trigger-wrapper{display:inline-block}:host .pds-popover__content-slot-wrapper{display:none}";var PdsPopover=function(){function t(t){var i=this;registerInstance(this,t);this.pdsPopoverOpen=createEvent(this,"pdsPopoverOpen");this.pdsPopoverClose=createEvent(this,"pdsPopoverClose");this.active=false;this.isComponentMounted=true;this.triggerEl=null;this.portalEl=null;this.isRepositioning=false;this.scrollDebounceTimer=null;this.resizeDebounceTimer=null;this.movedNodes=[];this.openTimestamp=0;this.popoverTargetAction="show";this.popoverType="auto";this.maxWidth=352;this.placement="right";this.handleTriggerSlotChange=function(t){var e=t.target;var s=e.assignedElements();if(i.triggerEl!=null){i.triggerEl.removeEventListener("click",i.handleTriggerClick)}if(s.length>0){i.triggerEl=s[0];if(i.portalEl){i.triggerEl.setAttribute("aria-expanded",String(i.active));i.triggerEl.setAttribute("aria-controls",i.portalEl.id)}i.triggerEl.addEventListener("click",i.handleTriggerClick)}else{i.triggerEl=null}};this.handleContentSlotChange=function(){if(!i.active)return;i.updatePortalContent()};this.handleTriggerClick=function(t){var e=t.composedPath();var s=e.find((function(t){return t instanceof HTMLAnchorElement&&t.href}));if(!s){t.preventDefault()}switch(i.popoverTargetAction){case"show":i.show();break;case"hide":i.hide();break;case"toggle":default:i.toggle();break}}}t.prototype.componentDidLoad=function(){var t;this.boundClickOutsideHandler=this.handleClickOutside.bind(this);this.boundEscapeKeyHandler=this.handleEscapeKey.bind(this);this.boundScrollHandler=this.handleScroll.bind(this);this.boundResizeHandler=this.handleResize.bind(this);this.createPortal();var i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector('slot[name="trigger"]');if(i&&this.triggerEl==null){var e=typeof window!=="undefined"?window.Event:global.Event;var s=new e("slotchange");Object.defineProperty(s,"target",{value:i,enumerable:true});this.handleTriggerSlotChange(s)}};t.prototype.disconnectedCallback=function(){this.isComponentMounted=false;if(this.triggerEl!=null){this.triggerEl.removeEventListener("click",this.handleTriggerClick)}this.removeLightDismissListeners();this.removeScrollAndResizeListeners();this.clearDebounceTimers();this.removePortal()};t.prototype.clearDebounceTimers=function(){if(this.scrollDebounceTimer!==null){clearTimeout(this.scrollDebounceTimer);this.scrollDebounceTimer=null}if(this.resizeDebounceTimer!==null){clearTimeout(this.resizeDebounceTimer);this.resizeDebounceTimer=null}};t.prototype.createPortal=function(){if(this.portalEl!==null)return;this.portalEl=document.createElement("div");this.portalEl.className="pds-popover";this.portalEl.style.position="fixed";this.portalEl.style.zIndex="var(--pine-z-index-raised)";this.portalEl.style.maxWidth="".concat(this.maxWidth,"px");this.portalEl.style.display="none";this.portalEl.style.opacity="0";this.portalEl.style.visibility="hidden";this.portalEl.style.backgroundColor="var(--pine-color-background-container)";this.portalEl.style.borderRadius="var(--pine-dimension-125)";this.portalEl.style.boxShadow="var(--pine-box-shadow-200)";this.portalEl.style.margin="var(--pine-dimension-none)";this.portalEl.style.padding="var(--pine-dimension-md)";if(!this.componentId){var t=PdsPopover.instanceCounter++;this.portalEl.id="pds-popover-portal-".concat(t)}else{this.portalEl.id="".concat(this.componentId,"-portal")}this.portalEl.setAttribute("aria-modal","false");document.body.appendChild(this.portalEl);this.addPortalFocusStyles()};t.prototype.addPortalFocusStyles=function(){if(!this.portalEl)return;var t=this.portalEl.id;var i=document.querySelector('style[data-pds-popover-focus="'.concat(t,'"]'));if(i)return;var e=document.createElement("style");e.setAttribute("data-pds-popover-focus",t);e.textContent="\n #".concat(t,":focus {\n outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;\n outline-offset: var(--pine-border-width, 1px);\n }\n #").concat(t,':focus:not(:focus-visible) {\n outline: none;\n }\n [data-theme="dark"] #').concat(t," {\n border: var(--pine-border);\n }\n ");document.head.appendChild(e)};t.prototype.updatePortalContent=function(){var t=this;var i;if(!this.portalEl)return;var e=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".pds-popover__content-slot-wrapper");var s=e===null||e===void 0?void 0:e.querySelector("slot");if(s){var n=s.assignedNodes();n.forEach((function(i){var e;var s=i.parentNode===t.portalEl;var n=t.movedNodes.some((function(t){return t.node===i}));if(s||n){return}var r=document.createComment("pds-popover-placeholder");(e=i.parentNode)===null||e===void 0?void 0:e.insertBefore(r,i);t.portalEl.appendChild(i);t.movedNodes.push({node:i,placeholder:r})}))}};t.prototype.restorePortalContent=function(){this.movedNodes.forEach((function(t){var i=t.node,e=t.placeholder;if(e.parentNode){e.parentNode.insertBefore(i,e);e.parentNode.removeChild(e)}}));this.movedNodes=[]};t.prototype.removePortal=function(){if(this.portalEl){if(this.portalEl.parentNode){this.portalEl.parentNode.removeChild(this.portalEl)}var t=this.portalEl.id;var i=document.querySelector('style[data-pds-popover-focus="'.concat(t,'"]'));if(i&&i.parentNode){i.parentNode.removeChild(i)}}this.portalEl=null};t.prototype.show=function(){return __awaiter(this,void 0,void 0,(function(){var t=this;return __generator(this,(function(i){if(this.active||!this.portalEl)return[2];this.active=true;this.openTimestamp=Date.now();if(this.triggerEl){this.triggerEl.setAttribute("aria-expanded","true")}this.updatePortalContent();this.portalEl.style.display="block";this.portalEl.style.opacity="1";this.portalEl.style.visibility="visible";requestAnimationFrame((function(){if(!t.isComponentMounted)return;t.handlePopoverPositioning()}));this.addScrollAndResizeListeners();if(this.popoverType==="auto"){this.addLightDismissListeners()}this.pdsPopoverOpen.emit({componentId:this.componentId,popoverType:this.popoverType});return[2]}))}))};t.prototype.hide=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(!this.active||!this.portalEl)return[2];this.active=false;if(this.triggerEl){this.triggerEl.setAttribute("aria-expanded","false")}this.restorePortalContent();this.portalEl.style.display="none";this.portalEl.style.opacity="0";this.portalEl.style.visibility="hidden";this.returnFocusToTrigger();this.removeLightDismissListeners();this.removeScrollAndResizeListeners();this.clearDebounceTimers();this.pdsPopoverClose.emit({componentId:this.componentId,popoverType:this.popoverType});return[2]}))}))};t.prototype.toggle=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(this.active){this.hide()}else{this.show()}return[2]}))}))};t.prototype.addLightDismissListeners=function(){document.addEventListener("click",this.boundClickOutsideHandler,true);document.addEventListener("keydown",this.boundEscapeKeyHandler)};t.prototype.removeLightDismissListeners=function(){document.removeEventListener("click",this.boundClickOutsideHandler,true);document.removeEventListener("keydown",this.boundEscapeKeyHandler)};t.prototype.addScrollAndResizeListeners=function(){window.addEventListener("scroll",this.boundScrollHandler,true);window.addEventListener("resize",this.boundResizeHandler)};t.prototype.removeScrollAndResizeListeners=function(){window.removeEventListener("scroll",this.boundScrollHandler,true);window.removeEventListener("resize",this.boundResizeHandler)};t.prototype.handleClickOutside=function(t){var i,e;var s=t.timeStamp?Date.now()-(performance.now()-t.timeStamp):Date.now();if(s<=this.openTimestamp){return}var n=t.target;var r=(i=this.portalEl)===null||i===void 0?void 0:i.contains(n);var o=(e=this.triggerEl)===null||e===void 0?void 0:e.contains(n);if(!r&&!o){this.hide()}};t.prototype.returnFocusToTrigger=function(){if(!this.triggerEl)return;this.triggerEl.focus({preventScroll:true})};t.prototype.handleEscapeKey=function(t){if(t.key==="Escape"){t.preventDefault();t.stopPropagation();this.hide()}};t.prototype.handleScroll=function(){var t=this;if(!this.active)return;if(this.scrollDebounceTimer!==null){clearTimeout(this.scrollDebounceTimer)}this.scrollDebounceTimer=setTimeout((function(){t.handlePopoverPositioning();t.scrollDebounceTimer=null}),10)};t.prototype.handleResize=function(){var t=this;if(!this.active)return;if(this.resizeDebounceTimer!==null){clearTimeout(this.resizeDebounceTimer)}this.resizeDebounceTimer=setTimeout((function(){t.handlePopoverPositioning();t.resizeDebounceTimer=null}),100)};t.prototype.handlePopoverPositioning=function(){var t=this;if(this.isRepositioning){return}this.isRepositioning=true;if(this.triggerEl==null||this.portalEl==null){this.isRepositioning=false;return}var i=this.triggerEl.getBoundingClientRect();var e=this.portalEl.getBoundingClientRect();if(i.width===0||i.height===0){this.isRepositioning=false;return}var s=0;var n=0;var r=8;switch(this.placement){case"top":s=i.top-e.height-r;n=i.left+(i.width-e.width)/2;break;case"top-start":s=i.top-e.height-r;n=i.left;break;case"top-end":s=i.top-e.height-r;n=i.right-e.width;break;case"right":s=i.top+(i.height-e.height)/2;n=i.right+r;break;case"right-start":s=i.top;n=i.right+r;break;case"right-end":s=i.bottom-e.height;n=i.right+r;break;case"bottom":s=i.bottom+r;n=i.left+(i.width-e.width)/2;break;case"bottom-start":s=i.bottom+r;n=i.left;break;case"bottom-end":s=i.bottom+r;n=i.right-e.width;break;case"left":s=i.top+(i.height-e.height)/2;n=i.left-e.width-r;break;case"left-start":s=i.top;n=i.left-e.width-r;break;case"left-end":s=i.bottom-e.height;n=i.left-e.width-r;break}this.portalEl.style.top="".concat(s,"px");this.portalEl.style.left="".concat(n,"px");setTimeout((function(){t.isRepositioning=false}),16)};t.prototype.render=function(){return h(Host,{key:"835196832cb0dcec61f0bc6e5f4df08038335d5a",id:this.componentId},h("span",{key:"e4aadaa17ce565e00f5e038a92aae8957b22be64",class:"pds-popover__trigger-wrapper"},h("slot",{key:"97fe58bed551bed9f3159faa430ef54fd09d2412",name:"trigger",onSlotchange:this.handleTriggerSlotChange})),h("div",{key:"8d1330a58ff77182100fb40afa78ee89ccd3146f",class:"pds-popover__content-slot-wrapper"},h("slot",{key:"5d1136682ba7bff4a4c904fb8310443e9feb9e5b",onSlotchange:this.handleContentSlotChange})))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();PdsPopover.instanceCounter=0;PdsPopover.style=pdsPopoverCss;export{PdsPopover as pds_popover};
|
|
2
2
|
//# sourceMappingURL=pds-popover.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as registerInstance,h,H as Host}from"./index-DHPhrb5T.js";var pdsProgressCss=":host{--color-progress-fill:var(--pine-color-primary);--sizing-progress-bar-width:100%;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:var(--sizing-progress-bar-width)}@-webkit-keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}@keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}.pds-progress{-ms-flex-align:center;align-items:center;background-color:var(--pine-color-background-muted);border-radius:var(--pine-dimension-2xs);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:var(--pine-dimension-xs);position:relative;width:100%}:host(.is-animated) progress,:host(.is-animated) progress::-webkit-progress-bar{-webkit-animation:progressBar 3s ease;animation:progressBar 3s ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}progress,progress::-webkit-progress-bar{background-color:transparent;border:0;height:var(--pine-dimension-xs);width:100%}progress::-webkit-progress-value{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}progress::-moz-progress-bar{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}.pds-progress__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pds-progress__percentage{font-weight:var(--pine-font-weight-medium);-webkit-margin-start:calc(var(--pine-dimension-md) / 2);margin-inline-start:calc(var(--pine-dimension-md) / 2)}";var PdsProgress=function(){function r(r){registerInstance(this,r);this.animated=false;this.percent=0;this.showPercent=false}r.prototype.render=function(){return h(Host,{key:"
|
|
1
|
+
import{r as registerInstance,h,H as Host}from"./index-DHPhrb5T.js";var pdsProgressCss=":host{--color-progress-fill:var(--pine-color-primary);--sizing-progress-bar-width:100%;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:var(--sizing-progress-bar-width)}@-webkit-keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}@keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}.pds-progress{-ms-flex-align:center;align-items:center;background-color:var(--pine-color-background-muted);border-radius:var(--pine-dimension-2xs);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:var(--pine-dimension-xs);position:relative;width:100%}:host(.is-animated) progress,:host(.is-animated) progress::-webkit-progress-bar{-webkit-animation:progressBar 3s ease;animation:progressBar 3s ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}progress,progress::-webkit-progress-bar{background-color:transparent;border:0;height:var(--pine-dimension-xs);width:100%}progress::-webkit-progress-value{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}progress::-moz-progress-bar{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}.pds-progress__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pds-progress__percentage{font-weight:var(--pine-font-weight-medium);-webkit-margin-start:calc(var(--pine-dimension-md) / 2);margin-inline-start:calc(var(--pine-dimension-md) / 2)}";var PdsProgress=function(){function r(r){registerInstance(this,r);this.animated=false;this.percent=0;this.showPercent=false}r.prototype.render=function(){return h(Host,{key:"23b8b17a11e6537d1f73cd435c66e779267c6909",class:this.animated?{"is-animated":this.animated}:""},h("div",{key:"6bf201015c284f26b2bb794237aef8d4e4d532ee",class:"pds-progress"},h("label",{key:"7e144a90c1fde70e58095bda2e23b250529a8114",class:"pds-progress__label",htmlFor:this.componentId},this.label),h("progress",{key:"ebf00485c3c7523e184fcc022e2bcc325a13458f",id:this.componentId,max:"100",style:this.fillColor?{"--color-progress-fill":this.fillColor}:{},value:this.percent})),this.showPercent&&h("div",{key:"6f37bd88ccb9228b0d0ca4d934a2d3cff0026533",class:"pds-progress__percentage"},this.percent,"%"))};return r}();PdsProgress.style=pdsProgressCss;export{PdsProgress as pds_progress};
|
|
2
2
|
//# sourceMappingURL=pds-progress.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as registerInstance,h,H as Host}from"./index-DHPhrb5T.js";var pdsPropertyCss=":host{color:var(--pine-color-text-message);font:var(--pine-typography-body-medium)}";var PdsProperty=function(){function e(e){registerInstance(this,e);this.icon="star"}e.prototype.render=function(){return h(Host,{key:"
|
|
1
|
+
import{r as registerInstance,h,H as Host}from"./index-DHPhrb5T.js";var pdsPropertyCss=":host{color:var(--pine-color-text-message);font:var(--pine-typography-body-medium)}";var PdsProperty=function(){function e(e){registerInstance(this,e);this.icon="star"}e.prototype.render=function(){return h(Host,{key:"947e0adfc46ab267b4a5f3e3da5dedcd8ab64d3e",id:this.componentId},h("pds-box",{key:"bc6fbd4eaa162a7d9ff6348d74bf15f71e776db6","align-items":"center",gap:"xs"},h("pds-icon",{key:"5d703e9afd94761aae842c82c7b5e9223b63b894",icon:this.icon,size:"var(--pine-dimension-sm)","aria-hidden":"true"}),h("slot",{key:"e5e02fb21c783f7e4027591e99cd966981babc04"})))};return e}();PdsProperty.style=pdsPropertyCss;export{PdsProperty as pds_property};
|
|
2
2
|
//# sourceMappingURL=pds-property.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-DHPhrb5T.js";import{m as messageId}from"./form-DwjNklzi.js";import{b as danger}from"./index-
|
|
1
|
+
import{r as registerInstance,c as createEvent,h,H as Host,a as getElement}from"./index-DHPhrb5T.js";import{m as messageId}from"./form-DwjNklzi.js";import{b as danger}from"./index-D094LgxJ.js";var pdsRadioGroupCss=".sc-pds-radio-group-h{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-sm)}.is-invalid.sc-pds-radio-group-h .pds-radio-group__message--error.sc-pds-radio-group{color:var(--pine-color-text-message-danger)}.pds-radio-group__label.sc-pds-radio-group{color:var(--pine-color-text-label);font:var(--pine-typography-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-radio-group__radios.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pds-radio-group-gap, var(--pine-dimension-xs))}.pds-radio-group__radios--row.sc-pds-radio-group{-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.pds-radio-group__radios--column.sc-pds-radio-group{-ms-flex-direction:column;flex-direction:column}.pds-radio-group__message.sc-pds-radio-group{color:var(--pine-color-text-message);font:var(--pine-typography-body);width:100%}.pds-radio-group__message--error.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-radio-group__message--error.sc-pds-radio-group pds-icon.sc-pds-radio-group{-webkit-margin-before:var(--pine-dimension-050);margin-block-start:var(--pine-dimension-050)}";var PdsRadioGroup=function(){function e(e){registerInstance(this,e);this.pdsRadioGroupChange=createEvent(this,"pdsRadioGroupChange");this.direction="column";this.gap="xs";this.disabled=false;this.invalid=false;this.required=false}e.prototype.handlePropsChange=function(){this.updateChildRadios()};e.prototype.handleRadioChange=function(e){var i=e.target;if(i.type!=="radio"){return}if(i.checked){var r=i.closest("pds-radio");if(r){this.pdsRadioGroupChange.emit({checked:true,value:r.value,componentId:r.componentId})}}};e.prototype.updateChildRadios=function(){var e=this;var i=this.el.querySelectorAll("pds-radio");i.forEach((function(i){if(e.name){i.setAttribute("name",e.name)}else{i.removeAttribute("name")}if(e.disabled){i.setAttribute("disabled","true")}else{i.removeAttribute("disabled")}if(e.invalid){i.setAttribute("invalid","true")}else{i.removeAttribute("invalid")}if(e.required){i.setAttribute("required","true")}else{i.removeAttribute("required")}}))};e.prototype.componentWillLoad=function(){if(this.componentId){this._groupId=this.componentId}else{var e=typeof crypto!=="undefined"&&crypto.randomUUID?crypto.randomUUID():"".concat(Date.now(),"-").concat(Math.random().toString(36).substring(2,9));this._groupId="radio-group-".concat(e)}};e.prototype.componentDidLoad=function(){if(!this.name){console.warn("pds-radio-group: name prop is required for proper radio group functionality")}this.updateChildRadios()};e.prototype.classNames=function(){var e=[];if(this.invalid){e.push("is-invalid")}return e.join(" ")};e.prototype.getGapValue=function(){var e={none:"0",xxs:"var(--pine-dimension-xxs)",xs:"var(--pine-dimension-xs)",sm:"var(--pine-dimension-sm)",md:"var(--pine-dimension-md)",lg:"var(--pine-dimension-lg)",xl:"var(--pine-dimension-xl)",xxl:"var(--pine-dimension-xxl)"};if(e[this.gap]){return e[this.gap]}return"var(--pine-dimension-".concat(this.gap,")")};e.prototype.getAriaDescribedBy=function(){var e=[];if(this.errorMessage){e.push(messageId(this._groupId,"error"))}if(this.helperMessage){e.push(messageId(this._groupId,"helper"))}return e.length>0?e.join(" "):undefined};e.prototype.render=function(){var e=this;var i=this.getGapValue();var r=this.getAriaDescribedBy();return h(Host,{key:"53949e8e878887189482a13e0402402b8ee79c46",class:this.classNames(),id:this._groupId,role:"group","aria-describedby":r,style:{"--pds-radio-group-gap":i}},this.groupLabel&&h("div",{key:"9aa547ff0b60d1eb78ab6806c552391c119c6511",class:"pds-radio-group__label"},this.groupLabel),h("div",{key:"5bad4f6d4c685eca8a97b574511f21b93bdf4821",class:{"pds-radio-group__radios":true,"pds-radio-group__radios--row":this.direction==="row","pds-radio-group__radios--column":this.direction==="column"}},h("slot",{key:"ffd76f30b308f124e1df925b2fe354ffb80f59bc",onSlotchange:function(){return e.updateChildRadios()}})),this.helperMessage&&h("div",{key:"ea8995384b1e1c1e98d01d704bd969a97bfd2b2a",class:"pds-radio-group__message",id:messageId(this._groupId,"helper")},this.helperMessage),this.errorMessage&&h("div",{key:"30726bc368c7ad2820ae4cb43faf0a45e94a51e8",class:"pds-radio-group__message pds-radio-group__message--error",id:messageId(this._groupId,"error"),"aria-live":"assertive"},h("pds-icon",{key:"acc00b6e36ead10cc5cc01033ad0f619bd75f5da",icon:danger,size:"small"}),this.errorMessage))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{name:["handlePropsChange"],disabled:["handlePropsChange"],invalid:["handlePropsChange"],required:["handlePropsChange"]}},enumerable:false,configurable:true});return e}();PdsRadioGroup.style=pdsRadioGroupCss;export{PdsRadioGroup as pds_radio_group};
|
|
2
2
|
//# sourceMappingURL=pds-radio-group.entry.js.map
|