@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 +1 @@
|
|
|
1
|
-
{"file":"pds-multiselect.js","mappings":"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","names":["PdsMultiselect","__stencil_proxyCustomElement"],"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"],"version":3}
|
|
1
|
+
{"file":"pds-multiselect.js","mappings":"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","names":["PdsMultiselect","__stencil_proxyCustomElement"],"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"],"version":3}
|
|
@@ -560,7 +560,7 @@ const PdsPopover$1 = /*@__PURE__*/ proxyCustomElement(class PdsPopover extends H
|
|
|
560
560
|
}, 16); // ~1 frame at 60fps
|
|
561
561
|
}
|
|
562
562
|
render() {
|
|
563
|
-
return (h(Host, { key: '
|
|
563
|
+
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 }))));
|
|
564
564
|
}
|
|
565
565
|
get el() { return this; }
|
|
566
566
|
static get style() { return pdsPopoverCss; }
|
|
@@ -26,7 +26,7 @@ const PdsProgress$1 = /*@__PURE__*/ proxyCustomElement(class PdsProgress extends
|
|
|
26
26
|
this.showPercent = false;
|
|
27
27
|
}
|
|
28
28
|
render() {
|
|
29
|
-
return (h(Host, { key: '
|
|
29
|
+
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, "%")));
|
|
30
30
|
}
|
|
31
31
|
static get style() { return pdsProgressCss; }
|
|
32
32
|
}, [257, "pds-progress", {
|
|
@@ -17,7 +17,7 @@ const PdsProperty$1 = /*@__PURE__*/ proxyCustomElement(class PdsProperty extends
|
|
|
17
17
|
this.icon = 'star';
|
|
18
18
|
}
|
|
19
19
|
render() {
|
|
20
|
-
return (h(Host, { key: '
|
|
20
|
+
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' }))));
|
|
21
21
|
}
|
|
22
22
|
static get style() { return pdsPropertyCss; }
|
|
23
23
|
}, [257, "pds-property", {
|
|
@@ -150,13 +150,13 @@ const PdsRadioGroup$1 = /*@__PURE__*/ proxyCustomElement(class PdsRadioGroup ext
|
|
|
150
150
|
render() {
|
|
151
151
|
const gapValue = this.getGapValue();
|
|
152
152
|
const ariaDescribedBy = this.getAriaDescribedBy();
|
|
153
|
-
return (h(Host, { key: '
|
|
153
|
+
return (h(Host, { key: '53949e8e878887189482a13e0402402b8ee79c46', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
|
|
154
154
|
'--pds-radio-group-gap': gapValue,
|
|
155
|
-
} }, this.groupLabel && (h("div", { key: '
|
|
155
|
+
} }, this.groupLabel && (h("div", { key: '9aa547ff0b60d1eb78ab6806c552391c119c6511', class: "pds-radio-group__label" }, this.groupLabel)), h("div", { key: '5bad4f6d4c685eca8a97b574511f21b93bdf4821', class: {
|
|
156
156
|
'pds-radio-group__radios': true,
|
|
157
157
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
158
158
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
159
|
-
} }, h("slot", { key: '
|
|
159
|
+
} }, h("slot", { key: 'ffd76f30b308f124e1df925b2fe354ffb80f59bc', onSlotchange: () => this.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))));
|
|
160
160
|
}
|
|
161
161
|
get el() { return this; }
|
|
162
162
|
static get watchers() { return {
|
package/components/pds-radio.js
CHANGED
|
@@ -87,11 +87,11 @@ const PdsRadio$1 = /*@__PURE__*/ proxyCustomElement(class PdsRadio extends HTMLE
|
|
|
87
87
|
}
|
|
88
88
|
render() {
|
|
89
89
|
const renderLabelAndMessages = () => [
|
|
90
|
-
h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, h("input", { key: '
|
|
90
|
+
h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, h("input", { key: '75aca490be2db050f66ddd9cb45ce122bea4db53', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), h("span", { key: '1bbc7398d3be35e301526b0f842274a3f1db4457', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
|
|
91
91
|
this.helperMessage && (h("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
|
|
92
|
-
this.errorMessage && (h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '
|
|
92
|
+
this.errorMessage && (h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: 'e1a1228fa52e68623098f09493d93aa03d2e65c4', icon: danger, size: "small" }), this.errorMessage))
|
|
93
93
|
];
|
|
94
|
-
return (h(Host, { key: '
|
|
94
|
+
return (h(Host, { key: '60fabeef5778fd30e46cfd23d05684e1743bc57f', class: this.classNames() }, this.hasImage() && (h("div", { key: '9ba3e60182a68cc8e996623cf46e17001ff451f6', class: "pds-radio__image-container", part: "image-container" }, h("slot", { key: 'bf8927129eb68ee7ed07a1f8f8727f013254e133', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
|
|
95
95
|
}
|
|
96
96
|
get el() { return this; }
|
|
97
97
|
static get style() { return labelCss + pdsRadioCss; }
|
package/components/pds-row.js
CHANGED
|
@@ -62,7 +62,7 @@ const PdsRow$1 = /*@__PURE__*/ proxyCustomElement(class PdsRow extends HTMLEleme
|
|
|
62
62
|
})), (this.minHeight && {
|
|
63
63
|
'min-height': this.minHeight,
|
|
64
64
|
}));
|
|
65
|
-
return h(Host, { key: '
|
|
65
|
+
return h(Host, { key: '7d99184153a86e5d7d2c90fce98e05e9c4a36b81', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
|
|
66
66
|
}
|
|
67
67
|
static get style() { return pdsRowCss; }
|
|
68
68
|
}, [256, "pds-row", {
|
package/components/pds-select.js
CHANGED
|
@@ -234,7 +234,7 @@ const PdsSelect$1 = /*@__PURE__*/ proxyCustomElement(class PdsSelect extends HTM
|
|
|
234
234
|
}
|
|
235
235
|
render() {
|
|
236
236
|
const hasAction = this.el.querySelector('[slot="action"]') !== null;
|
|
237
|
-
return (h(Host, { key: '
|
|
237
|
+
return (h(Host, { key: 'd36bddf20910ae21ba2209bbf7e3f13b1ce9c3bf', "aria-disabled": this.disabled ? 'true' : null, class: this.classNames(), "has-action": hasAction && !this.hideLabel ? 'true' : null }, h("div", { key: '72fe6ee352834fbd6e8f5f9d9e96b1be232f2988', class: "pds-select" }, !this.hideLabel && (h("div", { key: 'c2894f7ec00402425f74f1145d449da13d870161', class: "pds-select__label-wrapper" }, h("label", { key: '4f6277c3f7b40f3d52995231cb49824e58ebae1b', htmlFor: this.componentId }, h("span", { key: 'f1b0cf90091843c1a994699263905f811888d4bd', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), h("select", { key: '727c1644e8ea5afc194e33e29e9730d6b08c3784', "aria-label": this.hideLabel ? this.label : undefined, autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onBlur: this.onBlur, onChange: this.onSelectUpdate, onFocus: this.onFocus, onKeyDown: this.onKeyDown, part: "select", required: this.required, ref: (el) => (this.selectEl = el) }), h("div", { key: 'd7c0c3f3b765b13c6dc34a9c5c13bbcfd081a274', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, h("slot", { key: '2305afcacb082c0d5faca8b77295919f8d9c9e0b', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && h("pds-icon", { key: '4a1d6ced0ffc14ae17763d116a85324e5a6c7ce5', class: "pds-select__select-icon", icon: enlarge }))));
|
|
238
238
|
}
|
|
239
239
|
static get formAssociated() { return true; }
|
|
240
240
|
get el() { return this; }
|
|
@@ -30,7 +30,7 @@ const PdsSortableItem$1 = /*@__PURE__*/ proxyCustomElement(class PdsSortableItem
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
render() {
|
|
33
|
-
return (h(Host, { key: '
|
|
33
|
+
return (h(Host, { key: '631a0c1150226256cdb47d1a7bc6635144bb56d0', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (h("div", { key: 'bdb6ff779a5d750b75d404521bc91cad02176ea8', class: "pds-sortable-item__handle" }, h("pds-icon", { key: '144f4b6fe33a3a3a864ac48041fc93935fbf99c3', icon: handle }))), h("slot", { key: 'cdddce9c5fa3fde34481c41c46c5f6504e33a358' }), this.enableActions && (h("div", { key: '527e1d22f20223a850dbd956dea4db93878fd9f9', class: "pds-sortable-item__actions" }, h("slot", { key: '85ea35dbfdf0393721471dd229e80e9e57f58230', name: "sortable-item-actions" })))));
|
|
34
34
|
}
|
|
35
35
|
get el() { return this; }
|
|
36
36
|
static get style() { return pdsSortableItemCss; }
|
|
@@ -2714,7 +2714,7 @@ const PdsSortable$1 = /*@__PURE__*/ proxyCustomElement(class PdsSortable extends
|
|
|
2714
2714
|
Sortable.create(this.el, sortableOptions);
|
|
2715
2715
|
}
|
|
2716
2716
|
render() {
|
|
2717
|
-
return (h(Host, { key: '
|
|
2717
|
+
return (h(Host, { key: '98083e17bb18c5adde8b4c0c387daa28ca2bda91', class: this.classNames(), id: this.componentId }, h("slot", { key: '4ffcd0844153824c3509e42f5636c5851dc7fcbe' })));
|
|
2718
2718
|
}
|
|
2719
2719
|
get el() { return this; }
|
|
2720
2720
|
static get style() { return pdsSortableCss; }
|
package/components/pds-switch.js
CHANGED
|
@@ -96,9 +96,9 @@ const PdsSwitch$1 = /*@__PURE__*/ proxyCustomElement(class PdsSwitch extends HTM
|
|
|
96
96
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
97
97
|
}
|
|
98
98
|
render() {
|
|
99
|
-
return (h(Host, { key: '
|
|
100
|
-
h("div", { key: '
|
|
101
|
-
h("div", { key: '
|
|
99
|
+
return (h(Host, { key: 'e26422622075f925f0df3dbc2f5ea8223aed9902', class: this.switchClassNames(), "aria-disabled": this.disabled ? 'true' : null }, h("label", { key: 'b63cdac80d3cd55bc4845979f15b382c92883cf5', htmlFor: this.componentId }, h("input", Object.assign({ key: '910a7f6cd2093a6062c57c63600bb1721c147c75', "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), h("span", { key: '45661afcaba7852a6ddf6ebbf4606502bc8b72e2', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
|
|
100
|
+
h("div", { key: 'be3a6fbf3938b7846ca3a9e6eef54d6ee25391fa', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
101
|
+
h("div", { key: 'a5944169798ae8531f9e6414deac2c3631339b0a', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '5b864b6ac441c9bd71dc22dbc9722c87c1b781e6', icon: danger, size: "small" }), this.errorMessage)));
|
|
102
102
|
}
|
|
103
103
|
static get formAssociated() { return true; }
|
|
104
104
|
get el() { return this; }
|
package/components/pds-tab.js
CHANGED
|
@@ -34,9 +34,9 @@ const PdsTab$1 = /*@__PURE__*/ proxyCustomElement(class PdsTab extends HTMLEleme
|
|
|
34
34
|
return classes.filter(Boolean).join(' ');
|
|
35
35
|
}
|
|
36
36
|
render() {
|
|
37
|
-
const availabilityTabEdgeInlineStart = (h("span", { key: '
|
|
38
|
-
const availabilityTabEdgeInlineEnd = (h("span", { key: '
|
|
39
|
-
return (h(Host, { key: '
|
|
37
|
+
const availabilityTabEdgeInlineStart = (h("span", { key: '934d84846bd84471047f9ab7503e5bb151426cbc', class: "pds-tab-edge", role: "presentation" }));
|
|
38
|
+
const availabilityTabEdgeInlineEnd = (h("span", { key: 'e35b9da7b312ed95dab7bf803c40a22b3485ee05', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
|
|
39
|
+
return (h(Host, { key: '310188521230d3e16cff23b857769c4b5d04fd8d', variant: this.variant, slot: "tabs", index: this.index }, h("button", { key: '9df38c2aa1fa29487fdce62ce7dc5f67df6bcde1', role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.disabled ? "-1" : (this.selected ? "0" : "-1"), "aria-selected": this.selected ? "true" : "false", "aria-disabled": this.disabled ? "true" : null, disabled: this.disabled, class: this.classNames(), onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, h("div", { key: '4936599dd547f236880ea9a0ccabc4b50836d1d5', class: "pds-tab__content" }, h("slot", { key: '567388faf912bb307676cea9a4626ce9669087dd' })))));
|
|
40
40
|
}
|
|
41
41
|
get el() { return this; }
|
|
42
42
|
static get style() { return pdsTabCss; }
|
|
@@ -11,7 +11,7 @@ const PdsTableBody$1 = /*@__PURE__*/ proxyCustomElement(class PdsTableBody exten
|
|
|
11
11
|
this.__attachShadow();
|
|
12
12
|
}
|
|
13
13
|
render() {
|
|
14
|
-
return (h(Host, { key: '
|
|
14
|
+
return (h(Host, { key: '457fc5406a1fe67055038398e03bfad97a393747', role: "rowgroup", part: "body" }, h("slot", { key: '5950bced36f7ba590f34173149cf8663ba76103b' })));
|
|
15
15
|
}
|
|
16
16
|
static get style() { return pdsTableBodyCss; }
|
|
17
17
|
}, [257, "pds-table-body"]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
|
-
const pdsTableCellCss = ":host{--box-shadow-fixed:3px 3px 6px -2px rgba(0, 0, 0, 0.2);color:var(--pine-color-text);display:table-cell;font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-regular);inset-inline-start:var(--pine-dimension-none);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);padding:var(--pine-dimension-sm);vertical-align:
|
|
3
|
+
const pdsTableCellCss = ":host{--box-shadow-fixed:3px 3px 6px -2px rgba(0, 0, 0, 0.2);color:var(--pine-color-text);display:table-cell;font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-regular);inset-inline-start:var(--pine-dimension-none);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);padding:var(--pine-dimension-sm);vertical-align:middle}:host(.is-compact){padding-block:var(--pine-dimension-2xs)}:host(.is-fixed){background:var(--pine-color-background-container);left:0;position:-webkit-sticky;position:sticky;z-index:var(--pine-z-index-raised)}:host(.has-scrolled.is-fixed){-webkit-box-shadow:var(--box-shadow-fixed);box-shadow:var(--box-shadow-fixed)}:host(.is-truncated){max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host(.has-checkbox){vertical-align:middle;width:16px}:host(.pds-table-cell--align-start){text-align:start}:host(.pds-table-cell--align-center){text-align:center}:host(.pds-table-cell--align-end){text-align:end}:host(.pds-table-cell--align-justify){text-align:justify}";
|
|
4
4
|
|
|
5
5
|
const PdsTableCell = /*@__PURE__*/ proxyCustomElement(class PdsTableCell extends HTMLElement {
|
|
6
6
|
constructor(registerHost) {
|
|
@@ -102,11 +102,11 @@ const PdsTableCell = /*@__PURE__*/ proxyCustomElement(class PdsTableCell extends
|
|
|
102
102
|
return classNames.join(' ');
|
|
103
103
|
}
|
|
104
104
|
render() {
|
|
105
|
-
return (h(Host, { key: '
|
|
105
|
+
return (h(Host, { key: 'f57b6f8173976a6ad0cc9eb5bf655ba930c45280', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
|
|
106
106
|
this.tableRef.fixedColumn &&
|
|
107
107
|
this.tableRef.selectable
|
|
108
108
|
? { '--fixed-cell-position': '40px' }
|
|
109
|
-
: {} }, h("slot", { key: '
|
|
109
|
+
: {} }, h("slot", { key: '0cc35b066fdb46eed1516d5b6eb86b77f0d4d2b5' })));
|
|
110
110
|
}
|
|
111
111
|
get hostElement() { return this; }
|
|
112
112
|
static get style() { return pdsTableCellCss; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"pds-table-cell2.js","mappings":";;AAAA,MAAM,eAAe,GAAG,
|
|
1
|
+
{"file":"pds-table-cell2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/pds-table/pds-table-cell/pds-table-cell.scss?tag=pds-table-cell&encapsulation=shadow","src/components/pds-table/pds-table-cell/pds-table-cell.tsx"],"sourcesContent":[":host {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n --box-shadow-fixed: 3px 3px 6px -2px rgba(0, 0, 0, 0.2);\n\n color: var(--pine-color-text);\n display: table-cell;\n font-family: var(--pine-font-family-body);\n font-size: var(--pine-font-size);\n font-weight: var(--pine-font-weight-regular);\n inset-inline-start: var(--pine-dimension-none);\n letter-spacing: var(--pine-letter-spacing);\n line-height: var(--pine-line-height-body);\n padding: var(--pine-dimension-sm);\n vertical-align: middle;\n}\n\n:host(.is-compact) {\n padding-block: var(--pine-dimension-2xs)\n}\n\n:host(.is-fixed) {\n background: var(--pine-color-background-container);\n left: 0;\n position: sticky;\n z-index: var(--pine-z-index-raised);\n}\n\n// box shadow when table has scrolled and cell is fixed\n:host(.has-scrolled.is-fixed) {\n box-shadow: var(--box-shadow-fixed);\n}\n\n:host(.is-truncated) {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host(.has-checkbox) {\n vertical-align: middle;\n width: 16px;\n}\n\n// Text Alignment\n:host(.pds-table-cell--align-start) {\n text-align: start;\n}\n\n:host(.pds-table-cell--align-center) {\n text-align: center;\n}\n\n:host(.pds-table-cell--align-end) {\n text-align: end;\n}\n\n:host(.pds-table-cell--align-justify) {\n text-align: justify;\n}\n","import { Component, Element, Host, Prop, State, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-table-cell',\n styleUrls: ['pds-table-cell.scss'],\n shadow: true,\n})\nexport class PdsTableCell {\n @Element() hostElement: HTMLPdsTableCellElement;\n private tableRef: HTMLPdsTableElement;\n private scrollContainer: HTMLElement | null = null;\n private setupTimer: number | undefined;\n private setupRetries: number = 0;\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n\n componentDidLoad() {\n if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {\n // For responsive tables with fixed columns, set up scroll detection\n // This enables the first column to show a shadow when the table is scrolled horizontally\n this.setupScrollListener();\n }\n }\n\n disconnectedCallback() {\n this.cleanupScrollListener();\n }\n\n private setupScrollListener() {\n if (!this.tableRef) return;\n\n // Query shadowRoot once and cache the container\n const container = this.tableRef.shadowRoot?.querySelector('.pds-table-responsive-container') as HTMLElement;\n\n if (container) {\n // Container available immediately\n this.scrollContainer = container;\n this.scrollContainer.addEventListener('scroll', this.handleScroll, { passive: true });\n this.handleScroll(); // Initial check\n this.setupRetries = 0; // Reset counter on success\n } else {\n // Container not ready, set up timer for retry with bounds\n this.setupTimer = window.setTimeout(() => {\n if (this.scrollContainer) return; // Already found\n this.setupRetries = (this.setupRetries || 0) + 1;\n if (this.setupRetries <= 50) {\n this.setupScrollListener();\n } else {\n console.warn('Failed to find responsive container after 50 attempts');\n }\n }, 100);\n }\n }\n\n private cleanupScrollListener() {\n if (this.scrollContainer) {\n this.scrollContainer.removeEventListener('scroll', this.handleScroll);\n this.scrollContainer = null;\n }\n\n if (this.setupTimer !== undefined) {\n window.clearTimeout(this.setupTimer);\n this.setupTimer = undefined;\n }\n\n this.setupRetries = 0; // Reset retry counter\n }\n\n /**\n * Sets the text alignment within the cell.\n */\n @Prop() cellAlign?: 'start' | 'center' | 'end' | 'justify';\n\n /**\n * Truncates content to a max width of 100px and adds an ellipsis.\n */\n @Prop() truncate: boolean;\n\n /**\n * Determines if the table is currently scrolling.\n * @defaultValue false\n */\n @State() private tableScrolling: boolean = false;\n\n private classNames() {\n const classNames = [];\n\n if (this.tableRef && this.tableRef.compact) {\n classNames.push('is-compact');\n }\n\n if (this.cellAlign) {\n classNames.push(`pds-table-cell--align-${this.cellAlign}`);\n }\n\n if (this.truncate) {\n classNames.push('is-truncated');\n }\n\n if (this.tableRef && this.tableRef.fixedColumn && this.tableScrolling) {\n classNames.push('has-scrolled');\n }\n\n return classNames.join(' ');\n }\n\n /**\n * Handles scroll events to update fixed column shadow state.\n * Updates the tableScrolling state to control CSS classes for fixed column shadows.\n * @private\n */\n private handleScroll = () => {\n if (!this.scrollContainer) {\n return;\n }\n\n try {\n this.tableScrolling = this.scrollContainer.scrollLeft > 0;\n } catch (error) {\n console.warn('Scroll handler error:', error);\n }\n };\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"gridcell\"\n part=\"cell\"\n style={\n this.tableRef &&\n this.tableRef.fixedColumn &&\n this.tableRef.selectable\n ? { '--fixed-cell-position': '40px' }\n : {}\n }\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -208,11 +208,11 @@ const PdsTableHeadCell = /*@__PURE__*/ proxyCustomElement(class PdsTableHeadCell
|
|
|
208
208
|
return classNames.join(' ');
|
|
209
209
|
}
|
|
210
210
|
render() {
|
|
211
|
-
return (h(Host, { key: '
|
|
211
|
+
return (h(Host, { key: 'a0196e242282574b969375a4767950ffd7a1e5b8', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
|
|
212
212
|
this.tableRef.fixedColumn &&
|
|
213
213
|
this.tableRef.selectable
|
|
214
214
|
? { '--fixed-cell-position': '40px' }
|
|
215
|
-
: {} }, h("slot", { key: '
|
|
215
|
+
: {} }, h("slot", { key: '90f6d190ed912276fb8ff5607a80b592d1884d71' }), this.sortable && this.isActive && (h("pds-icon", { key: '128bd50d5163ea1690a66a4bef227480a0076f39', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
|
|
216
216
|
}
|
|
217
217
|
get hostElement() { return this; }
|
|
218
218
|
static get style() { return pdsTableHeadCellCss; }
|
|
@@ -54,7 +54,7 @@ const PdsTableHead$1 = /*@__PURE__*/ proxyCustomElement(class PdsTableHead exten
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
render() {
|
|
57
|
-
return (h(Host, { key: '
|
|
57
|
+
return (h(Host, { key: 'd5d5906bdb23794b911ecd5904a4cc58aa5380d6', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (h("pds-table-head-cell", { key: '85df57fb4371e4fba855e16ce62c8329b49e08cf', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, h("pds-checkbox", { key: '92e95501de3644d068fb015b669329db14a4dd9b', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" }))), h("slot", { key: 'b51c670f2e59fb07d4b97ca201a0d28d5c2c9570' })));
|
|
58
58
|
}
|
|
59
59
|
get hostElement() { return this; }
|
|
60
60
|
static get style() { return pdsTableHeadCss; }
|