@pine-ds/core 3.25.1 → 3.26.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/pds-alert.js +2 -2
- package/components/pds-alert.js.map +1 -1
- package/components/pds-combobox.js +230 -53
- package/components/pds-combobox.js.map +1 -1
- package/dist/cjs/{index-Cc_o_7az.js → index-Dlc5O3n_.js} +3 -3
- package/dist/cjs/index-Dlc5O3n_.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- 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-alert.cjs.entry.js +3 -3
- package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
- package/dist/cjs/pds-box.cjs.entry.js +1 -1
- package/dist/cjs/pds-button.cjs.entry.js +1 -1
- package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/pds-chip.cjs.entry.js +1 -1
- package/dist/cjs/pds-combobox.cjs.entry.js +228 -53
- package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-container.cjs.entry.js +1 -1
- package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
- package/dist/cjs/pds-divider.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
- package/dist/cjs/pds-filter.cjs.entry.js +1 -1
- package/dist/cjs/pds-filters.cjs.entry.js +1 -1
- package/dist/cjs/pds-icon.cjs.entry.js +1 -1
- package/dist/cjs/pds-image.cjs.entry.js +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +1 -1
- package/dist/cjs/pds-link.cjs.entry.js +1 -1
- package/dist/cjs/pds-loader.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-content.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal.cjs.entry.js +1 -1
- package/dist/cjs/pds-multiselect.cjs.entry.js +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 +1 -1
- package/dist/cjs/pds-radio.cjs.entry.js +1 -1
- package/dist/cjs/pds-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-select.cjs.entry.js +1 -1
- package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +1 -1
- package/dist/cjs/pds-tab.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-table.cjs.entry.js +1 -1
- package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
- package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
- package/dist/cjs/pds-text.cjs.entry.js +1 -1
- package/dist/cjs/pds-textarea.cjs.entry.js +1 -1
- package/dist/cjs/pds-toast.cjs.entry.js +1 -1
- package/dist/cjs/pds-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/pine-core.cjs.js +2 -2
- package/dist/collection/components/pds-alert/pds-alert.css +1 -1
- package/dist/collection/components/pds-alert/pds-alert.js +1 -1
- package/dist/collection/components/pds-alert/pds-alert.js.map +1 -1
- package/dist/collection/components/pds-combobox/pds-combobox.css +24 -22
- package/dist/collection/components/pds-combobox/pds-combobox.js +253 -54
- package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
- package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +58 -0
- package/dist/docs.json +35 -1
- package/dist/esm/{index-C_yp7uLt.js → index-CO9kz-Pi.js} +3 -3
- package/dist/esm/index-CO9kz-Pi.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/mock-pds-modal.entry.js +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-alert.entry.js +3 -3
- package/dist/esm/pds-alert.entry.js.map +1 -1
- package/dist/esm/pds-avatar.entry.js +1 -1
- package/dist/esm/pds-box.entry.js +1 -1
- package/dist/esm/pds-button.entry.js +1 -1
- package/dist/esm/pds-checkbox.entry.js +1 -1
- package/dist/esm/pds-chip.entry.js +1 -1
- package/dist/esm/pds-combobox.entry.js +229 -54
- package/dist/esm/pds-combobox.entry.js.map +1 -1
- package/dist/esm/pds-container.entry.js +1 -1
- package/dist/esm/pds-copytext.entry.js +1 -1
- package/dist/esm/pds-divider.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm/pds-filter.entry.js +1 -1
- package/dist/esm/pds-filters.entry.js +1 -1
- package/dist/esm/pds-icon.entry.js +1 -1
- package/dist/esm/pds-image.entry.js +1 -1
- package/dist/esm/pds-input.entry.js +1 -1
- package/dist/esm/pds-link.entry.js +1 -1
- package/dist/esm/pds-loader.entry.js +1 -1
- package/dist/esm/pds-modal-content.entry.js +1 -1
- package/dist/esm/pds-modal-footer.entry.js +1 -1
- package/dist/esm/pds-modal-header.entry.js +1 -1
- package/dist/esm/pds-modal.entry.js +1 -1
- package/dist/esm/pds-multiselect.entry.js +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 +1 -1
- package/dist/esm/pds-radio.entry.js +1 -1
- package/dist/esm/pds-row.entry.js +1 -1
- package/dist/esm/pds-select.entry.js +1 -1
- package/dist/esm/pds-sortable-item.entry.js +1 -1
- package/dist/esm/pds-sortable.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +1 -1
- package/dist/esm/pds-tab.entry.js +1 -1
- package/dist/esm/pds-table-body.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js +1 -1
- package/dist/esm/pds-table-head-cell.entry.js +1 -1
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-row.entry.js +1 -1
- package/dist/esm/pds-table.entry.js +1 -1
- package/dist/esm/pds-tabpanel.entry.js +1 -1
- package/dist/esm/pds-tabs.entry.js +1 -1
- package/dist/esm/pds-text.entry.js +1 -1
- package/dist/esm/pds-textarea.entry.js +1 -1
- package/dist/esm/pds-toast.entry.js +1 -1
- package/dist/esm/pds-tooltip.entry.js +1 -1
- package/dist/esm/pine-core.js +3 -3
- package/dist/esm-es5/{index-C_yp7uLt.js → index-CO9kz-Pi.js} +3 -3
- package/dist/esm-es5/index-CO9kz-Pi.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-alert.entry.js +1 -1
- package/dist/esm-es5/pds-alert.entry.js.map +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-box.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js +1 -1
- package/dist/esm-es5/pds-chip.entry.js +1 -1
- package/dist/esm-es5/pds-combobox.entry.js +2 -2
- package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
- package/dist/esm-es5/pds-container.entry.js +1 -1
- package/dist/esm-es5/pds-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-divider.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm-es5/pds-filter.entry.js +1 -1
- package/dist/esm-es5/pds-filters.entry.js +1 -1
- package/dist/esm-es5/pds-icon.entry.js +1 -1
- package/dist/esm-es5/pds-image.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js +1 -1
- package/dist/esm-es5/pds-link.entry.js +1 -1
- package/dist/esm-es5/pds-loader.entry.js +1 -1
- package/dist/esm-es5/pds-modal-content.entry.js +1 -1
- package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
- package/dist/esm-es5/pds-modal-header.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js +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-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.entry.js +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-zU_JmyYX.system.js.map → p--fC0IwVR.system.js.map} +1 -1
- package/dist/pine-core/{p-64c94251.system.entry.js → p-00e487c4.system.entry.js} +2 -2
- package/dist/pine-core/{p-0b370949.entry.js → p-0561744f.entry.js} +2 -2
- package/dist/pine-core/{p-5fcdc321.system.entry.js → p-05771ef2.system.entry.js} +2 -2
- package/dist/pine-core/{p-f418ab61.entry.js → p-06fbdc35.entry.js} +2 -2
- package/dist/pine-core/p-0bf1fee1.entry.js +2 -0
- package/dist/pine-core/{p-d20af63e.system.entry.js → p-0d4b2bbc.system.entry.js} +2 -2
- package/dist/pine-core/{p-1da31e21.system.entry.js → p-0f037132.system.entry.js} +2 -2
- package/dist/pine-core/p-0fefe6ef.entry.js +2 -0
- package/dist/pine-core/{p-Dug3XS8i.system.js.map → p-0mArGKTT.system.js.map} +1 -1
- package/dist/pine-core/p-127a84bf.entry.js +3 -0
- package/dist/pine-core/p-127a84bf.entry.js.map +1 -0
- package/dist/pine-core/{p-19fbf372.system.entry.js → p-128a483e.system.entry.js} +2 -2
- package/dist/pine-core/{p-5ab1ae44.entry.js → p-13821696.entry.js} +2 -2
- package/dist/pine-core/{p-64ee9d79.system.entry.js → p-13a814c0.system.entry.js} +2 -2
- package/dist/pine-core/{p-b3a36a0e.entry.js → p-1768ad5e.entry.js} +2 -2
- package/dist/pine-core/{p-C3FLsHGa.system.js.map → p-1S7sNRrT.system.js.map} +1 -1
- package/dist/pine-core/{p-f8321fa1.system.entry.js → p-1c26a838.system.entry.js} +2 -2
- package/dist/pine-core/{p-6f65a129.system.entry.js → p-1fd52c1b.system.entry.js} +2 -2
- package/dist/pine-core/{p-dcf0eb78.entry.js → p-205d8c56.entry.js} +2 -2
- package/dist/pine-core/{p-ab4e9e84.system.entry.js → p-24f9a03b.system.entry.js} +2 -2
- package/dist/pine-core/{p-9280c9d2.system.entry.js → p-253e2bfd.system.entry.js} +2 -2
- package/dist/pine-core/{p-175f34e1.entry.js → p-26aa3195.entry.js} +2 -2
- package/dist/pine-core/{p-7243f550.system.entry.js → p-2c2d2080.system.entry.js} +2 -2
- package/dist/pine-core/{p-b600e6a7.entry.js → p-2c48e33c.entry.js} +2 -2
- package/dist/pine-core/{p-0370de3e.system.entry.js → p-2c7f3d5e.system.entry.js} +2 -2
- package/dist/pine-core/{p-c19802c2.system.entry.js → p-2ca648d8.system.entry.js} +2 -2
- package/dist/pine-core/{p-4542a964.entry.js → p-31b51eae.entry.js} +2 -2
- package/dist/pine-core/{p-f9a4836b.system.entry.js → p-3524e30c.system.entry.js} +2 -2
- package/dist/pine-core/{p-19c70693.system.entry.js → p-35d9e3c8.system.entry.js} +2 -2
- package/dist/pine-core/{p-6b153192.entry.js → p-3c864e3d.entry.js} +2 -2
- package/dist/pine-core/{p-00024af8.entry.js → p-42d83b1f.entry.js} +2 -2
- package/dist/pine-core/{p-7047497f.entry.js → p-4710c59d.entry.js} +2 -2
- package/dist/pine-core/{p-ae97912f.system.entry.js → p-4768b52b.system.entry.js} +2 -2
- package/dist/pine-core/{p-5b591069.system.entry.js → p-4993f30e.system.entry.js} +2 -2
- package/dist/pine-core/{p-7c23fcf5.entry.js → p-4beb8ae5.entry.js} +2 -2
- package/dist/pine-core/{p-9b3a5038.entry.js → p-4cf4558e.entry.js} +2 -2
- package/dist/pine-core/{p-ee8748ec.system.entry.js → p-4d3122ff.system.entry.js} +2 -2
- package/dist/pine-core/{p-Sf7x15si.system.js.map → p-4d6YziBa.system.js.map} +1 -1
- package/dist/pine-core/{p-d26019b2.entry.js → p-519d44b8.entry.js} +2 -2
- package/dist/pine-core/{p-feb34c51.entry.js → p-54e967ca.entry.js} +2 -2
- package/dist/pine-core/{p-b5e7228a.system.entry.js → p-5552ca6b.system.entry.js} +2 -2
- package/dist/pine-core/{p-VGFWbsWb.system.js.map → p-5MZ-y5Ap.system.js.map} +1 -1
- package/dist/pine-core/{p-3d057491.entry.js → p-5df670e9.entry.js} +3 -3
- package/dist/pine-core/{p-7b1cebb9.entry.js → p-5eb9a3e2.entry.js} +2 -2
- package/dist/pine-core/{p-b175be8e.entry.js → p-61674647.entry.js} +2 -2
- package/dist/pine-core/{p-c36eabe8.system.entry.js → p-617dc902.system.entry.js} +2 -2
- package/dist/pine-core/{p-feb666bb.entry.js → p-61c885c7.entry.js} +2 -2
- package/dist/pine-core/{p-b209eccb.system.entry.js → p-63fd14b1.system.entry.js} +2 -2
- package/dist/pine-core/{p-41af5414.system.entry.js → p-673dd006.system.entry.js} +2 -2
- package/dist/pine-core/{p-893f4679.system.entry.js → p-69221099.system.entry.js} +2 -2
- package/dist/pine-core/{p-469e54ee.system.entry.js → p-6acc2e5b.system.entry.js} +2 -2
- package/dist/pine-core/{p-8911278b.entry.js → p-6ff1d23e.entry.js} +2 -2
- package/dist/pine-core/{p-ed89e732.system.entry.js → p-779c4bd5.system.entry.js} +2 -2
- package/dist/pine-core/{p-88ee0c95.system.entry.js → p-7bc34bce.system.entry.js} +2 -2
- package/dist/pine-core/{p-b25c2d6b.entry.js → p-7d9f7018.entry.js} +2 -2
- package/dist/pine-core/{p-26cdbf99.entry.js → p-8731836c.entry.js} +2 -2
- package/dist/pine-core/p-88c2001b.entry.js +2 -0
- package/dist/pine-core/{p-4b5a97ad.entry.js → p-8a2433ba.entry.js} +2 -2
- package/dist/pine-core/{p-c16dc54e.entry.js → p-8b8d1b07.entry.js} +2 -2
- package/dist/pine-core/{p-c16dc54e.entry.js.map → p-8b8d1b07.entry.js.map} +1 -1
- package/dist/pine-core/{p-afa702b7.entry.js → p-8b997cb3.entry.js} +2 -2
- package/dist/pine-core/{p-f4eec381.entry.js → p-8d0c1f6d.entry.js} +2 -2
- package/dist/pine-core/{p-45b5fa65.system.entry.js → p-90126a46.system.entry.js} +3 -3
- package/dist/pine-core/{p-78c25934.entry.js → p-932f4860.entry.js} +2 -2
- package/dist/pine-core/{p-540cc2b1.entry.js → p-939ae09f.entry.js} +2 -2
- package/dist/pine-core/{p-690143be.system.entry.js → p-93b379c2.system.entry.js} +2 -2
- package/dist/pine-core/{p-ac2704ac.system.entry.js → p-94fde072.system.entry.js} +2 -2
- package/dist/pine-core/{p-134af443.system.entry.js → p-952b41e5.system.entry.js} +2 -2
- package/dist/pine-core/{p-f34e1d0b.system.entry.js → p-9d7f17a4.system.entry.js} +2 -2
- package/dist/pine-core/{p-5a07cff6.entry.js → p-9e073662.entry.js} +2 -2
- package/dist/pine-core/{p-a4255685.system.entry.js → p-9e8b71ed.system.entry.js} +2 -2
- package/dist/pine-core/{p-B9WMqbbz.system.js.map → p-A6hgZgB9.system.js.map} +1 -1
- package/dist/pine-core/{p-BtSNy3kN.system.js.map → p-AcWjVzMO.system.js.map} +1 -1
- package/dist/pine-core/{p-C8uRauPw.system.js → p-B1bh2Wvv.system.js} +3 -3
- package/dist/pine-core/p-B1bh2Wvv.system.js.map +1 -0
- package/dist/pine-core/{p-VD9N6wlm.system.js.map → p-B2EsHCoA.system.js.map} +1 -1
- package/dist/pine-core/{p-DB5uGIa_.system.js.map → p-B7_7oNQG.system.js.map} +1 -1
- package/dist/pine-core/{p-DLLxnMGt.system.js.map → p-B8BcpYlQ.system.js.map} +1 -1
- package/dist/pine-core/{p-BliJJW1j.system.js.map → p-BD9ysh2r.system.js.map} +1 -1
- package/dist/pine-core/{p-CgWQPL_r.system.js.map → p-BFO0Qv1J.system.js.map} +1 -1
- package/dist/pine-core/{p-B-E5vUXg.system.js.map → p-BHXH-Irt.system.js.map} +1 -1
- package/dist/pine-core/{p-Cmqc3dXq.system.js.map → p-BLil033h.system.js.map} +1 -1
- package/dist/pine-core/p-BMWZMLrp.system.js.map +1 -0
- package/dist/pine-core/{p-B1H_HZwJ.system.js.map → p-BYHypIS4.system.js.map} +1 -1
- package/dist/pine-core/{p-B9XGJbRZ.system.js.map → p-BjaDq65J.system.js.map} +1 -1
- package/dist/pine-core/{p-D-OPCAZp.system.js.map → p-Bm0i20zh.system.js.map} +1 -1
- package/dist/pine-core/{p-CqXA936G.system.js.map → p-BtXGBfVh.system.js.map} +1 -1
- package/dist/pine-core/{p-BGDY9PLj.system.js.map → p-BuXqrZlE.system.js.map} +1 -1
- package/dist/pine-core/{p-U881Jw53.system.js.map → p-BvEsTKJw.system.js.map} +1 -1
- package/dist/pine-core/{p-BCjnOrSN.system.js.map → p-BvlpNhcl.system.js.map} +1 -1
- package/dist/pine-core/{p-B9BjjBgt.system.js.map → p-BwqSEhik.system.js.map} +1 -1
- package/dist/pine-core/{p-Is08Hq3K.system.js.map → p-C08fY97u.system.js.map} +1 -1
- package/dist/pine-core/{p-CgnpUgBl.system.js.map → p-C7zvuvWK.system.js.map} +1 -1
- package/dist/pine-core/{p-wAXk8ww_.system.js.map → p-CHUAwdle.system.js.map} +1 -1
- package/dist/pine-core/{p-fpT973d4.system.js.map → p-CIRw0SFV.system.js.map} +1 -1
- package/dist/pine-core/{p-BT8dqDAs.system.js.map → p-CNgeZOJ8.system.js.map} +1 -1
- package/dist/pine-core/{p-C_yp7uLt.js → p-CO9kz-Pi.js} +3 -3
- package/dist/pine-core/p-CO9kz-Pi.js.map +1 -0
- package/dist/pine-core/{p-BJIYR_AY.system.js.map → p-CeUxuw8r.system.js.map} +1 -1
- package/dist/pine-core/{p-B1RhEuhm.system.js.map → p-Cng7Mtub.system.js.map} +1 -1
- package/dist/pine-core/{p-BZb-VHul.system.js.map → p-CoxD4Fzc.system.js.map} +1 -1
- package/dist/pine-core/{p-bHMH0lWb.system.js.map → p-D0Q8TzYd.system.js.map} +1 -1
- package/dist/pine-core/{p-DqLcHuGq.system.js.map → p-D2CTdoEq.system.js.map} +1 -1
- package/dist/pine-core/{p-CGu84YSR.system.js.map → p-D4yK_qVB.system.js.map} +1 -1
- package/dist/pine-core/{p-DU4ZC8FC.system.js.map → p-D504xCQQ.system.js.map} +1 -1
- package/dist/pine-core/{p-kdYEMtne.system.js.map → p-DDgPxucg.system.js.map} +1 -1
- package/dist/pine-core/{p-DqpW04yq.system.js.map → p-DFd5KJNr.system.js.map} +1 -1
- package/dist/pine-core/{p-BMZZBVr0.system.js.map → p-DMxjKSUq.system.js.map} +1 -1
- package/dist/pine-core/{p-eR8WkMT9.system.js.map → p-DUvF_h4G.system.js.map} +1 -1
- package/dist/pine-core/{p-BQQNaMkA.system.js.map → p-DWrLi0lj.system.js.map} +1 -1
- package/dist/pine-core/{p-DA-RbdlV.system.js → p-Djhe2zUv.system.js} +2 -2
- package/dist/pine-core/{p-DA-RbdlV.system.js.map → p-Djhe2zUv.system.js.map} +1 -1
- package/dist/pine-core/{p-CSHbB28_.system.js.map → p-DkENjswB.system.js.map} +1 -1
- package/dist/pine-core/{p-Bl3RALlE.system.js.map → p-DxU4fApL.system.js.map} +1 -1
- package/dist/pine-core/{p-CbV_pmpw.system.js.map → p-IrhpBtZN.system.js.map} +1 -1
- package/dist/pine-core/{p-BkfYC3QG.system.js.map → p-M5aqIQje.system.js.map} +1 -1
- package/dist/pine-core/{p-B01-GY9x.system.js.map → p-MtzjfzAh.system.js.map} +1 -1
- package/dist/pine-core/p-NzmeWArw.system.js.map +1 -0
- package/dist/pine-core/{p-CgohfVVy.system.js.map → p-UYm57tw3.system.js.map} +1 -1
- package/dist/pine-core/{p-BRDfQlTR.system.js.map → p-VWcPIY1a.system.js.map} +1 -1
- package/dist/pine-core/{p-2a7105ce.system.entry.js → p-a12e38aa.system.entry.js} +2 -2
- package/dist/pine-core/{p-6742ac53.system.entry.js → p-a713fedd.system.entry.js} +2 -2
- package/dist/pine-core/{p-428ca3f6.system.entry.js → p-a76a454f.system.entry.js} +2 -2
- package/dist/pine-core/{p-c649b996.system.entry.js → p-b117b00a.system.entry.js} +2 -2
- package/dist/pine-core/{p-fc9981e2.system.entry.js → p-b272656d.system.entry.js} +2 -2
- package/dist/pine-core/{p-ae7f32cd.entry.js → p-b63c7247.entry.js} +2 -2
- package/dist/pine-core/{p-3b32b411.entry.js → p-b8ca7bca.entry.js} +2 -2
- package/dist/pine-core/{p-b49dfc1f.entry.js → p-bb4bb3a7.entry.js} +2 -2
- package/dist/pine-core/{p-a99138df.entry.js → p-bd277581.entry.js} +2 -2
- package/dist/pine-core/{p-4f2ff60a.entry.js → p-be76de9e.entry.js} +2 -2
- package/dist/pine-core/{p-b2e1b6de.system.entry.js → p-bf1ab568.system.entry.js} +2 -2
- package/dist/pine-core/{p-09b3671c.system.entry.js → p-c299c019.system.entry.js} +2 -2
- package/dist/pine-core/{p-db8de76a.system.entry.js → p-c424a27a.system.entry.js} +2 -2
- package/dist/pine-core/p-c5dc1e2d.system.entry.js +2 -0
- package/dist/pine-core/{p-5eba0eed.entry.js → p-c5f4d4c0.entry.js} +2 -2
- package/dist/pine-core/{p-ee66ed28.system.entry.js → p-c7246fe4.system.entry.js} +2 -2
- package/dist/pine-core/{p-6a585d38.system.entry.js → p-c746c9ad.system.entry.js} +2 -2
- package/dist/pine-core/{p-8d887560.entry.js → p-c7cab4ca.entry.js} +2 -2
- package/dist/pine-core/{p-ce5bba8d.system.entry.js → p-cb733c9c.system.entry.js} +2 -2
- package/dist/pine-core/{p-4bcdb26e.system.entry.js → p-cea4bfaa.system.entry.js} +2 -2
- package/dist/pine-core/{p-356aea4b.entry.js → p-d90f7fe4.entry.js} +2 -2
- package/dist/pine-core/{p-348c17bf.entry.js → p-da50a223.entry.js} +2 -2
- package/dist/pine-core/{p-7d46955b.entry.js → p-dc724dee.entry.js} +2 -2
- package/dist/pine-core/{p-097a9e35.entry.js → p-dd9888e9.entry.js} +2 -2
- package/dist/pine-core/{p-9b71468c.entry.js → p-e0862ab5.entry.js} +2 -2
- package/dist/pine-core/{p-d8f68dae.entry.js → p-e7e166f2.entry.js} +2 -2
- package/dist/pine-core/p-ea94b002.system.entry.js +4 -0
- package/dist/pine-core/p-ea94b002.system.entry.js.map +1 -0
- package/dist/pine-core/{p-65000aac.system.entry.js → p-ebf96abc.system.entry.js} +2 -2
- package/dist/pine-core/{p-aaba036c.entry.js → p-ec974e1d.entry.js} +2 -2
- package/dist/pine-core/{p-200365ba.system.entry.js → p-ed781905.system.entry.js} +2 -2
- package/dist/pine-core/{p-200365ba.system.entry.js.map → p-ed781905.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-e414be23.system.entry.js → p-f30bde36.system.entry.js} +2 -2
- package/dist/pine-core/{p-19c80180.system.entry.js → p-f4662c9d.system.entry.js} +2 -2
- package/dist/pine-core/{p-8771e85a.entry.js → p-f924994c.entry.js} +2 -2
- package/dist/pine-core/{p-53698627.entry.js → p-fbd8a4ac.entry.js} +2 -2
- package/dist/pine-core/{p-3e6ca680.entry.js → p-fd6e7155.entry.js} +2 -2
- package/dist/pine-core/{p-DXfFlVU2.system.js.map → p-iOyU21aP.system.js.map} +1 -1
- package/dist/pine-core/{p-pj5WZS7o.system.js.map → p-sB8ZB68H.system.js.map} +1 -1
- package/dist/pine-core/{p-CuDPU9tR.system.js.map → p-xKyEDmi0.system.js.map} +1 -1
- package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
- package/dist/pine-core/pine-core.css +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/pine-core/pine-core.js +1 -1
- package/dist/types/components/pds-combobox/pds-combobox.d.ts +36 -0
- package/dist/types/components.d.ts +10 -0
- package/dist/vscode.html-data.json +15 -0
- package/hydrate/index.js +231 -55
- package/hydrate/index.mjs +231 -55
- package/package.json +2 -2
- package/dist/cjs/index-Cc_o_7az.js.map +0 -1
- package/dist/esm/index-C_yp7uLt.js.map +0 -1
- package/dist/esm-es5/index-C_yp7uLt.js.map +0 -1
- package/dist/pine-core/p-16c99374.entry.js +0 -2
- package/dist/pine-core/p-4d2c4f5d.system.entry.js +0 -4
- package/dist/pine-core/p-4d2c4f5d.system.entry.js.map +0 -1
- package/dist/pine-core/p-57e36acc.entry.js +0 -3
- package/dist/pine-core/p-57e36acc.entry.js.map +0 -1
- package/dist/pine-core/p-5c7819b2.system.entry.js +0 -2
- package/dist/pine-core/p-8ab0fe54.entry.js +0 -2
- package/dist/pine-core/p-99343ac6.entry.js +0 -2
- package/dist/pine-core/p-C8uRauPw.system.js.map +0 -1
- package/dist/pine-core/p-C_yp7uLt.js.map +0 -1
- package/dist/pine-core/p-DCcwKJEN.system.js.map +0 -1
- package/dist/pine-core/p-W82-XbRW.system.js.map +0 -1
- /package/dist/pine-core/{p-64c94251.system.entry.js.map → p-00e487c4.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0b370949.entry.js.map → p-0561744f.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5fcdc321.system.entry.js.map → p-05771ef2.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f418ab61.entry.js.map → p-06fbdc35.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8ab0fe54.entry.js.map → p-0bf1fee1.entry.js.map} +0 -0
- /package/dist/pine-core/{p-d20af63e.system.entry.js.map → p-0d4b2bbc.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-1da31e21.system.entry.js.map → p-0f037132.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-16c99374.entry.js.map → p-0fefe6ef.entry.js.map} +0 -0
- /package/dist/pine-core/{p-19fbf372.system.entry.js.map → p-128a483e.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5ab1ae44.entry.js.map → p-13821696.entry.js.map} +0 -0
- /package/dist/pine-core/{p-64ee9d79.system.entry.js.map → p-13a814c0.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b3a36a0e.entry.js.map → p-1768ad5e.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f8321fa1.system.entry.js.map → p-1c26a838.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6f65a129.system.entry.js.map → p-1fd52c1b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-dcf0eb78.entry.js.map → p-205d8c56.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ab4e9e84.system.entry.js.map → p-24f9a03b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9280c9d2.system.entry.js.map → p-253e2bfd.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-175f34e1.entry.js.map → p-26aa3195.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7243f550.system.entry.js.map → p-2c2d2080.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b600e6a7.entry.js.map → p-2c48e33c.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0370de3e.system.entry.js.map → p-2c7f3d5e.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c19802c2.system.entry.js.map → p-2ca648d8.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4542a964.entry.js.map → p-31b51eae.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f9a4836b.system.entry.js.map → p-3524e30c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-19c70693.system.entry.js.map → p-35d9e3c8.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6b153192.entry.js.map → p-3c864e3d.entry.js.map} +0 -0
- /package/dist/pine-core/{p-00024af8.entry.js.map → p-42d83b1f.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7047497f.entry.js.map → p-4710c59d.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ae97912f.system.entry.js.map → p-4768b52b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5b591069.system.entry.js.map → p-4993f30e.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7c23fcf5.entry.js.map → p-4beb8ae5.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9b3a5038.entry.js.map → p-4cf4558e.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ee8748ec.system.entry.js.map → p-4d3122ff.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-d26019b2.entry.js.map → p-519d44b8.entry.js.map} +0 -0
- /package/dist/pine-core/{p-feb34c51.entry.js.map → p-54e967ca.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b5e7228a.system.entry.js.map → p-5552ca6b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3d057491.entry.js.map → p-5df670e9.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7b1cebb9.entry.js.map → p-5eb9a3e2.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b175be8e.entry.js.map → p-61674647.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c36eabe8.system.entry.js.map → p-617dc902.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-feb666bb.entry.js.map → p-61c885c7.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b209eccb.system.entry.js.map → p-63fd14b1.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-41af5414.system.entry.js.map → p-673dd006.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-893f4679.system.entry.js.map → p-69221099.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-469e54ee.system.entry.js.map → p-6acc2e5b.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8911278b.entry.js.map → p-6ff1d23e.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ed89e732.system.entry.js.map → p-779c4bd5.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-88ee0c95.system.entry.js.map → p-7bc34bce.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b25c2d6b.entry.js.map → p-7d9f7018.entry.js.map} +0 -0
- /package/dist/pine-core/{p-26cdbf99.entry.js.map → p-8731836c.entry.js.map} +0 -0
- /package/dist/pine-core/{p-99343ac6.entry.js.map → p-88c2001b.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4b5a97ad.entry.js.map → p-8a2433ba.entry.js.map} +0 -0
- /package/dist/pine-core/{p-afa702b7.entry.js.map → p-8b997cb3.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f4eec381.entry.js.map → p-8d0c1f6d.entry.js.map} +0 -0
- /package/dist/pine-core/{p-45b5fa65.system.entry.js.map → p-90126a46.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-78c25934.entry.js.map → p-932f4860.entry.js.map} +0 -0
- /package/dist/pine-core/{p-540cc2b1.entry.js.map → p-939ae09f.entry.js.map} +0 -0
- /package/dist/pine-core/{p-690143be.system.entry.js.map → p-93b379c2.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ac2704ac.system.entry.js.map → p-94fde072.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-134af443.system.entry.js.map → p-952b41e5.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-f34e1d0b.system.entry.js.map → p-9d7f17a4.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5a07cff6.entry.js.map → p-9e073662.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a4255685.system.entry.js.map → p-9e8b71ed.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2a7105ce.system.entry.js.map → p-a12e38aa.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6742ac53.system.entry.js.map → p-a713fedd.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-428ca3f6.system.entry.js.map → p-a76a454f.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c649b996.system.entry.js.map → p-b117b00a.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-fc9981e2.system.entry.js.map → p-b272656d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ae7f32cd.entry.js.map → p-b63c7247.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3b32b411.entry.js.map → p-b8ca7bca.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b49dfc1f.entry.js.map → p-bb4bb3a7.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a99138df.entry.js.map → p-bd277581.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4f2ff60a.entry.js.map → p-be76de9e.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b2e1b6de.system.entry.js.map → p-bf1ab568.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-09b3671c.system.entry.js.map → p-c299c019.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-db8de76a.system.entry.js.map → p-c424a27a.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5c7819b2.system.entry.js.map → p-c5dc1e2d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5eba0eed.entry.js.map → p-c5f4d4c0.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ee66ed28.system.entry.js.map → p-c7246fe4.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-6a585d38.system.entry.js.map → p-c746c9ad.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8d887560.entry.js.map → p-c7cab4ca.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ce5bba8d.system.entry.js.map → p-cb733c9c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-4bcdb26e.system.entry.js.map → p-cea4bfaa.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-356aea4b.entry.js.map → p-d90f7fe4.entry.js.map} +0 -0
- /package/dist/pine-core/{p-348c17bf.entry.js.map → p-da50a223.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7d46955b.entry.js.map → p-dc724dee.entry.js.map} +0 -0
- /package/dist/pine-core/{p-097a9e35.entry.js.map → p-dd9888e9.entry.js.map} +0 -0
- /package/dist/pine-core/{p-9b71468c.entry.js.map → p-e0862ab5.entry.js.map} +0 -0
- /package/dist/pine-core/{p-d8f68dae.entry.js.map → p-e7e166f2.entry.js.map} +0 -0
- /package/dist/pine-core/{p-65000aac.system.entry.js.map → p-ebf96abc.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-aaba036c.entry.js.map → p-ec974e1d.entry.js.map} +0 -0
- /package/dist/pine-core/{p-e414be23.system.entry.js.map → p-f30bde36.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-19c80180.system.entry.js.map → p-f4662c9d.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-8771e85a.entry.js.map → p-f924994c.entry.js.map} +0 -0
- /package/dist/pine-core/{p-53698627.entry.js.map → p-fbd8a4ac.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3e6ca680.entry.js.map → p-fd6e7155.entry.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { isSpecTest } from "../../utils/form";
|
|
3
|
-
import { computePosition, flip, offset, shift } from "@floating-ui/dom";
|
|
3
|
+
import { autoUpdate, computePosition, flip, offset, shift } from "@floating-ui/dom";
|
|
4
4
|
import { debounceEvent } from "../../utils/utils";
|
|
5
5
|
import DOMPurify from "dompurify";
|
|
6
6
|
/**
|
|
@@ -38,6 +38,18 @@ export class PdsCombobox {
|
|
|
38
38
|
* @default '236px'
|
|
39
39
|
*/
|
|
40
40
|
this.dropdownWidth = '236px';
|
|
41
|
+
/**
|
|
42
|
+
* Where to mount the dropdown listbox (`host` or `body`, sometimes called “append to body”).
|
|
43
|
+
* Use `body` inside scrollable containers (for example modals) so the list is not clipped by
|
|
44
|
+
* `overflow: hidden` ancestors. The portal is appended to the nearest `<dialog>` when present
|
|
45
|
+
* (including `pds-modal` / `showModal()`), using a composed ascent so shadow DOM and slot
|
|
46
|
+
* boundaries do not hide the dialog from discovery; otherwise it is appended to `document.body`.
|
|
47
|
+
* Keyboard focus remains on the trigger via
|
|
48
|
+
* `aria-activedescendant` so modal focus traps continue to work. Custom `empty` and `loading`
|
|
49
|
+
* slots are not supported when `body` is used; the default empty and loading content is shown instead.
|
|
50
|
+
* @default 'host'
|
|
51
|
+
*/
|
|
52
|
+
this.dropdownMount = 'host';
|
|
41
53
|
/**
|
|
42
54
|
* Visually hides the label text for instances where only the combobox should be displayed.
|
|
43
55
|
* The visible `<label>` is omitted (same pattern as `pds-select`) so label spacing does not reserve layout;
|
|
@@ -149,6 +161,8 @@ export class PdsCombobox {
|
|
|
149
161
|
this.hasMore = false;
|
|
150
162
|
this.optionEls = [];
|
|
151
163
|
this.allItems = [];
|
|
164
|
+
this.portalEl = null;
|
|
165
|
+
this.bodyPortalAutoUpdateActive = false;
|
|
152
166
|
this.isUpdatingFromSelection = false;
|
|
153
167
|
/**
|
|
154
168
|
* In filter mode, after choosing an option the input still shows the label and would
|
|
@@ -384,10 +398,10 @@ export class PdsCombobox {
|
|
|
384
398
|
};
|
|
385
399
|
// Close dropdown when focus leaves the combobox
|
|
386
400
|
this.onComboboxFocusOut = (event) => {
|
|
387
|
-
var _a;
|
|
401
|
+
var _a, _b;
|
|
388
402
|
const relatedTarget = event.relatedTarget;
|
|
389
|
-
|
|
390
|
-
|
|
403
|
+
const isRelatedTargetInListbox = relatedTarget &&
|
|
404
|
+
(((_a = this.listboxEl) === null || _a === void 0 ? void 0 : _a.contains(relatedTarget)) || ((_b = this.portalEl) === null || _b === void 0 ? void 0 : _b.contains(relatedTarget)));
|
|
391
405
|
const isRelatedTargetInCombobox = this.el.contains(relatedTarget);
|
|
392
406
|
// Don't close if focus is moving to an option in the listbox or staying within the combobox
|
|
393
407
|
if (!isRelatedTargetInCombobox && !isRelatedTargetInListbox) {
|
|
@@ -447,8 +461,57 @@ export class PdsCombobox {
|
|
|
447
461
|
}
|
|
448
462
|
disconnectedCallback() {
|
|
449
463
|
var _a;
|
|
464
|
+
if (this.deferredPortalTeardownId !== undefined) {
|
|
465
|
+
clearTimeout(this.deferredPortalTeardownId);
|
|
466
|
+
this.deferredPortalTeardownId = undefined;
|
|
467
|
+
}
|
|
450
468
|
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
451
469
|
this.clearAsyncFetchState();
|
|
470
|
+
this.removeBodyPortal();
|
|
471
|
+
}
|
|
472
|
+
componentDidRender() {
|
|
473
|
+
if (this.usesBodyPortal && this.isOpen) {
|
|
474
|
+
this.syncBodyPortal();
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
isOpenChanged(isOpen) {
|
|
478
|
+
if (isOpen && this.deferredPortalTeardownId !== undefined) {
|
|
479
|
+
clearTimeout(this.deferredPortalTeardownId);
|
|
480
|
+
this.deferredPortalTeardownId = undefined;
|
|
481
|
+
}
|
|
482
|
+
if (isOpen && this.usesBodyPortal) {
|
|
483
|
+
// Rapid reopen can cancel deferred teardown while the portal still holds the previous
|
|
484
|
+
// listbox node; clear portal state before the next render attaches the new listbox, and
|
|
485
|
+
// reset Floating UI autoUpdate bookkeeping.
|
|
486
|
+
this.removeBodyPortal();
|
|
487
|
+
}
|
|
488
|
+
if (!isOpen && this.usesBodyPortal) {
|
|
489
|
+
if (this.deferredPortalTeardownId !== undefined) {
|
|
490
|
+
clearTimeout(this.deferredPortalTeardownId);
|
|
491
|
+
}
|
|
492
|
+
this.deferredPortalTeardownId = setTimeout(() => {
|
|
493
|
+
this.deferredPortalTeardownId = undefined;
|
|
494
|
+
if (!this.el.isConnected) {
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
if (!this.isOpen) {
|
|
498
|
+
this.removeBodyPortal();
|
|
499
|
+
}
|
|
500
|
+
}, 0);
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
if (!isOpen) {
|
|
504
|
+
this.removeBodyPortal();
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
get usesBodyPortal() {
|
|
508
|
+
return this.dropdownMount === 'body';
|
|
509
|
+
}
|
|
510
|
+
get listboxId() {
|
|
511
|
+
return `${this.componentId}-listbox`;
|
|
512
|
+
}
|
|
513
|
+
optionDomId(optionIndex) {
|
|
514
|
+
return `${this.componentId}-option-${optionIndex}`;
|
|
452
515
|
}
|
|
453
516
|
setupDebounce() {
|
|
454
517
|
const { pdsComboboxSearch, debounce, originalSearchEmitter } = this;
|
|
@@ -849,28 +912,136 @@ export class PdsCombobox {
|
|
|
849
912
|
this.expandFilterListWhileOpen = false;
|
|
850
913
|
}
|
|
851
914
|
}
|
|
852
|
-
|
|
853
|
-
if (this.triggerEl
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
915
|
+
positionDropdown() {
|
|
916
|
+
if (!this.triggerEl || !this.listboxEl) {
|
|
917
|
+
return;
|
|
918
|
+
}
|
|
919
|
+
const strategy = this.usesBodyPortal ? 'fixed' : 'absolute';
|
|
920
|
+
const zIndex = this.usesBodyPortal
|
|
921
|
+
? 'var(--pine-z-index-priority)'
|
|
922
|
+
: 'var(--pine-z-index-raised)';
|
|
923
|
+
this.listboxEl.style.width = this.dropdownWidth;
|
|
924
|
+
if (this.maxHeight) {
|
|
925
|
+
this.listboxEl.style.maxHeight = this.maxHeight;
|
|
926
|
+
this.listboxEl.style.overflowY = 'auto';
|
|
927
|
+
}
|
|
928
|
+
this.listboxEl.offsetHeight;
|
|
929
|
+
return computePosition(this.triggerEl, this.listboxEl, {
|
|
930
|
+
placement: this.dropdownPlacement,
|
|
931
|
+
strategy,
|
|
932
|
+
middleware: [offset(12), flip(), shift({ padding: 5 })],
|
|
933
|
+
}).then(({ x, y }) => {
|
|
934
|
+
if (!this.listboxEl) {
|
|
935
|
+
return;
|
|
859
936
|
}
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
middleware: [offset(12), flip(), shift({ padding: 5 })],
|
|
866
|
-
}).then(({ x, y }) => {
|
|
867
|
-
Object.assign(this.listboxEl.style, {
|
|
868
|
-
left: `${x}px`,
|
|
869
|
-
top: `${y}px`,
|
|
870
|
-
position: 'absolute',
|
|
871
|
-
zIndex: 'var(--pine-z-index-raised)',
|
|
872
|
-
});
|
|
937
|
+
Object.assign(this.listboxEl.style, {
|
|
938
|
+
left: `${x}px`,
|
|
939
|
+
top: `${y}px`,
|
|
940
|
+
position: strategy,
|
|
941
|
+
zIndex,
|
|
873
942
|
});
|
|
943
|
+
});
|
|
944
|
+
}
|
|
945
|
+
openDropdownPositioning() {
|
|
946
|
+
if (!this.triggerEl || !this.listboxEl) {
|
|
947
|
+
return;
|
|
948
|
+
}
|
|
949
|
+
void this.positionDropdown();
|
|
950
|
+
}
|
|
951
|
+
startBodyPortalAutoUpdate() {
|
|
952
|
+
if (this.bodyPortalAutoUpdateActive || !this.triggerEl || !this.listboxEl) {
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
955
|
+
this.cleanupPositionAutoUpdate = autoUpdate(this.triggerEl, this.listboxEl, () => {
|
|
956
|
+
void this.positionDropdown();
|
|
957
|
+
});
|
|
958
|
+
this.bodyPortalAutoUpdateActive = true;
|
|
959
|
+
}
|
|
960
|
+
stopBodyPortalAutoUpdate() {
|
|
961
|
+
var _a;
|
|
962
|
+
(_a = this.cleanupPositionAutoUpdate) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
963
|
+
this.cleanupPositionAutoUpdate = undefined;
|
|
964
|
+
this.bodyPortalAutoUpdateActive = false;
|
|
965
|
+
}
|
|
966
|
+
getPortalMountRoot() {
|
|
967
|
+
var _a;
|
|
968
|
+
return (_a = this.findNearestDialogForPortal(this.el)) !== null && _a !== void 0 ? _a : document.body;
|
|
969
|
+
}
|
|
970
|
+
/**
|
|
971
|
+
* Resolves the native `<dialog>` to host the portaled listbox so it stays in the same top layer
|
|
972
|
+
* as `showModal()`. `Element.closest('dialog')` stops at shadow boundaries and can miss a
|
|
973
|
+
* dialog that only wraps slotted content; this walks assigned slots and shadow hosts, and
|
|
974
|
+
* falls back to `pds-modal`'s dialog when the combobox lives inside that subtree.
|
|
975
|
+
*/
|
|
976
|
+
findNearestDialogForPortal(from) {
|
|
977
|
+
const seen = new Set();
|
|
978
|
+
let current = from;
|
|
979
|
+
while (current && !seen.has(current)) {
|
|
980
|
+
seen.add(current);
|
|
981
|
+
if (current.nodeType === Node.ELEMENT_NODE && current.localName === 'dialog') {
|
|
982
|
+
return current;
|
|
983
|
+
}
|
|
984
|
+
if (current.nodeType === Node.ELEMENT_NODE) {
|
|
985
|
+
const assigned = current.assignedSlot;
|
|
986
|
+
if (assigned) {
|
|
987
|
+
current = assigned;
|
|
988
|
+
continue;
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
const parent = current.parentNode;
|
|
992
|
+
if (parent) {
|
|
993
|
+
current = parent instanceof ShadowRoot ? parent.host : parent;
|
|
994
|
+
continue;
|
|
995
|
+
}
|
|
996
|
+
break;
|
|
997
|
+
}
|
|
998
|
+
const pineModal = from.closest('pds-modal');
|
|
999
|
+
if (pineModal) {
|
|
1000
|
+
const pineDialog = pineModal.querySelector('dialog');
|
|
1001
|
+
if (pineDialog) {
|
|
1002
|
+
return pineDialog;
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
return null;
|
|
1006
|
+
}
|
|
1007
|
+
ensureBodyPortal() {
|
|
1008
|
+
if (this.portalEl !== null) {
|
|
1009
|
+
const target = this.getPortalMountRoot();
|
|
1010
|
+
if (this.portalEl.parentElement !== target) {
|
|
1011
|
+
target.appendChild(this.portalEl);
|
|
1012
|
+
}
|
|
1013
|
+
return this.portalEl;
|
|
1014
|
+
}
|
|
1015
|
+
this.portalEl = document.createElement('div');
|
|
1016
|
+
this.portalEl.className = 'pds-combobox-dropdown-portal';
|
|
1017
|
+
this.getPortalMountRoot().appendChild(this.portalEl);
|
|
1018
|
+
return this.portalEl;
|
|
1019
|
+
}
|
|
1020
|
+
syncBodyPortal() {
|
|
1021
|
+
if (!this.listboxEl) {
|
|
1022
|
+
return;
|
|
1023
|
+
}
|
|
1024
|
+
const portal = this.ensureBodyPortal();
|
|
1025
|
+
for (const stale of Array.from(portal.children)) {
|
|
1026
|
+
if (stale !== this.listboxEl) {
|
|
1027
|
+
stale.remove();
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
if (this.listboxEl.parentElement !== portal) {
|
|
1031
|
+
portal.appendChild(this.listboxEl);
|
|
1032
|
+
void this.positionDropdown();
|
|
1033
|
+
this.startBodyPortalAutoUpdate();
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
removeBodyPortal() {
|
|
1037
|
+
var _a;
|
|
1038
|
+
this.stopBodyPortalAutoUpdate();
|
|
1039
|
+
if ((_a = this.portalEl) === null || _a === void 0 ? void 0 : _a.parentNode) {
|
|
1040
|
+
this.portalEl.parentNode.removeChild(this.portalEl);
|
|
1041
|
+
}
|
|
1042
|
+
this.portalEl = null;
|
|
1043
|
+
if (this.listboxEl && !this.listboxEl.isConnected) {
|
|
1044
|
+
this.listboxEl = undefined;
|
|
874
1045
|
}
|
|
875
1046
|
}
|
|
876
1047
|
/**
|
|
@@ -927,30 +1098,32 @@ export class PdsCombobox {
|
|
|
927
1098
|
* Focus management helper - actually focuses the first option when opened via arrow keys
|
|
928
1099
|
*/
|
|
929
1100
|
focusFirstOptionForArrowKeys() {
|
|
930
|
-
if (this.isOpen) {
|
|
931
|
-
|
|
1101
|
+
if (!this.isOpen) {
|
|
1102
|
+
return;
|
|
1103
|
+
}
|
|
1104
|
+
// Body-mounted listboxes stay outside modal focus traps; keep focus on the trigger.
|
|
1105
|
+
if (this.usesBodyPortal) {
|
|
932
1106
|
this.isArrowKeyNavigationMode = true;
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
}
|
|
1107
|
+
this.focusFirstOption();
|
|
1108
|
+
return;
|
|
1109
|
+
}
|
|
1110
|
+
this.isArrowKeyNavigationMode = true;
|
|
1111
|
+
const selectableOptions = this.filteredItems.filter(item => item.tagName === 'OPTION');
|
|
1112
|
+
if (selectableOptions.length > 0) {
|
|
1113
|
+
this.setInitialHighlightedIndex();
|
|
1114
|
+
if (this.listboxEl) {
|
|
1115
|
+
const optionElements = this.listboxEl.querySelectorAll('[role="option"]');
|
|
1116
|
+
const highlightedOption = optionElements[this.highlightedIndex];
|
|
1117
|
+
if (highlightedOption) {
|
|
1118
|
+
optionElements.forEach(option => {
|
|
1119
|
+
option.setAttribute('tabindex', '-1');
|
|
1120
|
+
});
|
|
1121
|
+
highlightedOption.setAttribute('tabindex', '0');
|
|
1122
|
+
highlightedOption.focus();
|
|
1123
|
+
highlightedOption.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
|
|
950
1124
|
}
|
|
951
|
-
// Update aria-activedescendant on trigger
|
|
952
|
-
this.updateAriaActiveDescendant();
|
|
953
1125
|
}
|
|
1126
|
+
this.updateAriaActiveDescendant();
|
|
954
1127
|
}
|
|
955
1128
|
}
|
|
956
1129
|
/**
|
|
@@ -965,8 +1138,8 @@ export class PdsCombobox {
|
|
|
965
1138
|
if (currentOption) {
|
|
966
1139
|
// Check if any option currently has focus OR if we're in arrow-key navigation mode
|
|
967
1140
|
const hasOptionFocus = Array.from(optionElements).some(el => el === document.activeElement);
|
|
968
|
-
|
|
969
|
-
|
|
1141
|
+
const shouldFocusOption = !this.usesBodyPortal && (hasOptionFocus || this.isArrowKeyNavigationMode);
|
|
1142
|
+
if (shouldFocusOption) {
|
|
970
1143
|
optionElements.forEach(option => {
|
|
971
1144
|
option.setAttribute('tabindex', '-1');
|
|
972
1145
|
});
|
|
@@ -984,7 +1157,7 @@ export class PdsCombobox {
|
|
|
984
1157
|
*/
|
|
985
1158
|
updateAriaActiveDescendant() {
|
|
986
1159
|
if (this.triggerEl && this.highlightedIndex >= 0) {
|
|
987
|
-
this.triggerEl.setAttribute('aria-activedescendant',
|
|
1160
|
+
this.triggerEl.setAttribute('aria-activedescendant', this.optionDomId(this.highlightedIndex));
|
|
988
1161
|
}
|
|
989
1162
|
else if (this.triggerEl) {
|
|
990
1163
|
this.triggerEl.removeAttribute('aria-activedescendant');
|
|
@@ -1133,11 +1306,11 @@ export class PdsCombobox {
|
|
|
1133
1306
|
if (!this.isOpen) {
|
|
1134
1307
|
return null;
|
|
1135
1308
|
}
|
|
1136
|
-
const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
|
|
1137
|
-
const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
|
|
1309
|
+
const hasSlottedEmpty = !this.usesBodyPortal && !!this.el.querySelector('[slot="empty"]');
|
|
1310
|
+
const hasSlottedLoading = !this.usesBodyPortal && !!this.el.querySelector('[slot="loading"]');
|
|
1138
1311
|
let optionIndex = 0;
|
|
1139
1312
|
const selectableOptions = this.filteredItems.filter(item => item.tagName === 'OPTION');
|
|
1140
|
-
return (h("ul", { class: "pds-combobox__listbox", role: "listbox", id:
|
|
1313
|
+
return (h("ul", { class: "pds-combobox__listbox", role: "listbox", id: this.listboxId, "aria-label": this.label || 'Options', "aria-multiselectable": "false", ref: el => (this.listboxEl = el), onScroll: this.handleScroll }, this.loading && (h("li", { class: "pds-combobox__loading", role: "presentation" }, hasSlottedLoading ? (h("slot", { name: "loading" })) : (h("pds-loader", { size: "small" })))), !this.loading && this.filteredItems.length === 0 && (h("li", { class: "pds-combobox__empty", role: "presentation" }, hasSlottedEmpty ? (h("slot", { name: "empty" })) : (h("span", null, "No options found")))), this.filteredItems.map((item, itemIdx) => {
|
|
1141
1314
|
if (item.tagName === 'OPTGROUP') {
|
|
1142
1315
|
const optgroup = item;
|
|
1143
1316
|
return (h("li", { key: `optgroup-${itemIdx}`, class: "pds-combobox__group-label", role: "presentation", "aria-label": optgroup.label }, optgroup.label));
|
|
@@ -1153,7 +1326,7 @@ export class PdsCombobox {
|
|
|
1153
1326
|
const isLayout = this.isOptionLayout(option);
|
|
1154
1327
|
const isChip = this.isOptionChip(option);
|
|
1155
1328
|
const currentOptionIndex = optionIndex++;
|
|
1156
|
-
return (h("li", { key: option.value, id:
|
|
1329
|
+
return (h("li", { key: option.value, id: this.optionDomId(currentOptionIndex), role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-setsize": selectableOptions.length, "aria-posinset": currentOptionIndex + 1, "aria-label": isLayout || isChip ? option.getAttribute('aria-label') || this.getOptionLabel(option) : undefined, tabindex: this.usesBodyPortal ? '-1' : isHighlighted ? '0' : '-1', class: {
|
|
1157
1330
|
'pds-combobox__option': true,
|
|
1158
1331
|
'pds-combobox__option--highlighted': isHighlighted,
|
|
1159
1332
|
'pds-combobox__option--layout': isLayout,
|
|
@@ -1285,10 +1458,10 @@ export class PdsCombobox {
|
|
|
1285
1458
|
]
|
|
1286
1459
|
.filter(Boolean)
|
|
1287
1460
|
.join(' ');
|
|
1288
|
-
return (h(Host, { key: '
|
|
1461
|
+
return (h(Host, { key: '3bb3331a7400bd505b900c1179e27239ca5286f0' }, h("div", { key: '645c6dee13177adb126f26288d0c3030e2d3d25f', class: "pds-combobox", tabIndex: -1, onFocusout: this.onComboboxFocusOut, part: "combobox" }, this.label && !this.hideLabel && (h("label", { key: '6b84ecb6b542a30a3b78345f3aff2ca167b118ad', htmlFor: this.componentId, class: "pds-combobox__label" }, this.label)), this.trigger === 'input' ? (h("div", { class: "pds-combobox__input-wrapper", style: { width: this.triggerWidth } }, h("input", { ref: el => {
|
|
1289
1462
|
this.inputEl = el;
|
|
1290
1463
|
this.triggerEl = el;
|
|
1291
|
-
}, class: "pds-combobox__input", type: "text", role: "combobox", "aria-autocomplete": "list", "aria-controls":
|
|
1464
|
+
}, class: "pds-combobox__input", type: "text", role: "combobox", "aria-autocomplete": "list", "aria-controls": this.listboxId, "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? this.optionDomId(this.highlightedIndex) : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), h("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (h("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": this.listboxId, "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? this.optionDomId(this.highlightedIndex) : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (h("div", { class: triggerClass, style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": this.listboxId, "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? this.optionDomId(this.highlightedIndex) : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), h("div", { key: '8562c78172749eb3d77e0dfc3c87d7a8eabeb12f', style: { display: 'none' } }, h("slot", { key: '3004f1014cd050fdeeb06274bb5c36bb6c8bbbed', onSlotchange: () => this.updateOptions() })), this.renderDropdown())));
|
|
1292
1465
|
}
|
|
1293
1466
|
static get is() { return "pds-combobox"; }
|
|
1294
1467
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1455,6 +1628,29 @@ export class PdsCombobox {
|
|
|
1455
1628
|
"attribute": "dropdown-width",
|
|
1456
1629
|
"defaultValue": "'236px'"
|
|
1457
1630
|
},
|
|
1631
|
+
"dropdownMount": {
|
|
1632
|
+
"type": "string",
|
|
1633
|
+
"mutable": false,
|
|
1634
|
+
"complexType": {
|
|
1635
|
+
"original": "'host' | 'body'",
|
|
1636
|
+
"resolved": "\"body\" | \"host\"",
|
|
1637
|
+
"references": {}
|
|
1638
|
+
},
|
|
1639
|
+
"required": false,
|
|
1640
|
+
"optional": false,
|
|
1641
|
+
"docs": {
|
|
1642
|
+
"tags": [{
|
|
1643
|
+
"name": "default",
|
|
1644
|
+
"text": "'host'"
|
|
1645
|
+
}],
|
|
1646
|
+
"text": "Where to mount the dropdown listbox (`host` or `body`, sometimes called \u201Cappend to body\u201D).\nUse `body` inside scrollable containers (for example modals) so the list is not clipped by\n`overflow: hidden` ancestors. The portal is appended to the nearest `<dialog>` when present\n(including `pds-modal` / `showModal()`), using a composed ascent so shadow DOM and slot\nboundaries do not hide the dialog from discovery; otherwise it is appended to `document.body`.\nKeyboard focus remains on the trigger via\n`aria-activedescendant` so modal focus traps continue to work. Custom `empty` and `loading`\nslots are not supported when `body` is used; the default empty and loading content is shown instead."
|
|
1647
|
+
},
|
|
1648
|
+
"getter": false,
|
|
1649
|
+
"setter": false,
|
|
1650
|
+
"reflect": false,
|
|
1651
|
+
"attribute": "dropdown-mount",
|
|
1652
|
+
"defaultValue": "'host'"
|
|
1653
|
+
},
|
|
1458
1654
|
"hideLabel": {
|
|
1459
1655
|
"type": "boolean",
|
|
1460
1656
|
"mutable": false,
|
|
@@ -2023,6 +2219,9 @@ export class PdsCombobox {
|
|
|
2023
2219
|
static get elementRef() { return "el"; }
|
|
2024
2220
|
static get watchers() {
|
|
2025
2221
|
return [{
|
|
2222
|
+
"propName": "isOpen",
|
|
2223
|
+
"methodName": "isOpenChanged"
|
|
2224
|
+
}, {
|
|
2026
2225
|
"propName": "debounce",
|
|
2027
2226
|
"methodName": "setupDebounce"
|
|
2028
2227
|
}, {
|