@pine-ds/core 3.7.0 → 3.8.0
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/form.js +16 -1
- package/components/form.js.map +1 -1
- package/components/index2.js +1 -1
- package/components/index2.js.map +1 -1
- package/components/mock-pds-modal.js +1 -1
- package/components/mock-pds-modal.js.map +1 -1
- package/components/pds-button2.js +1 -1
- package/components/pds-button2.js.map +1 -1
- package/components/pds-checkbox2.js +7 -4
- package/components/pds-checkbox2.js.map +1 -1
- package/components/pds-chip.js +1 -100
- package/components/pds-chip.js.map +1 -1
- package/components/pds-chip2.js +105 -0
- package/components/pds-chip2.js.map +1 -0
- package/components/pds-combobox.js +414 -43
- package/components/pds-combobox.js.map +1 -1
- package/components/pds-copytext.js +3 -3
- package/components/pds-copytext.js.map +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-dropdown-menu.js.map +1 -1
- package/components/pds-filter.js +3 -3
- package/components/pds-filter.js.map +1 -1
- package/components/pds-input.js +1 -1
- package/components/pds-input.js.map +1 -1
- package/components/pds-modal.js +1 -1
- package/components/pds-modal.js.map +1 -1
- package/components/pds-popover.js +123 -15
- package/components/pds-popover.js.map +1 -1
- package/components/pds-radio.js +10 -4
- package/components/pds-radio.js.map +1 -1
- package/components/pds-select.js +21 -5
- package/components/pds-select.js.map +1 -1
- package/components/pds-switch.js +7 -4
- package/components/pds-switch.js.map +1 -1
- package/components/pds-tab.js +1 -1
- package/components/pds-tab.js.map +1 -1
- package/components/pds-table-cell2.js +1 -1
- package/components/pds-table-cell2.js.map +1 -1
- package/components/pds-table-head-cell2.js +1 -1
- package/components/pds-table-head-cell2.js.map +1 -1
- package/components/pds-table-head.js +1 -1
- package/components/pds-table-head.js.map +1 -1
- package/components/pds-table-row.js +1 -1
- package/components/pds-table-row.js.map +1 -1
- package/components/pds-table.js +1 -1
- package/components/pds-table.js.map +1 -1
- package/components/pds-tabs.js +14 -4
- package/components/pds-tabs.js.map +1 -1
- package/components/pds-textarea.js +9 -6
- package/components/pds-textarea.js.map +1 -1
- package/components/pds-tooltip.js +4 -4
- package/components/pds-tooltip.js.map +1 -1
- package/dist/cjs/{form-Bx4nzJBo.js → form-hmpgbT1I.js} +18 -2
- package/dist/cjs/form-hmpgbT1I.js.map +1 -0
- package/dist/cjs/{index-CTirFLR-.js → index-DtnvzYhe.js} +3 -3
- package/dist/cjs/index-DtnvzYhe.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/mock-pds-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
- package/dist/cjs/pds-button.cjs.entry.js +2 -2
- package/dist/cjs/pds-button.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-checkbox.cjs.entry.js +8 -5
- package/dist/cjs/pds-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-chip.cjs.entry.js +3 -3
- package/dist/cjs/pds-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-combobox.cjs.entry.js +398 -40
- package/dist/cjs/pds-combobox.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-copytext.cjs.entry.js +4 -4
- package/dist/cjs/pds-copytext.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-filter.cjs.entry.js +4 -4
- package/dist/cjs/pds-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +3 -3
- package/dist/cjs/pds-input.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-link.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-popover.cjs.entry.js +117 -12
- package/dist/cjs/pds-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-radio.cjs.entry.js +11 -5
- package/dist/cjs/pds-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-select.cjs.entry.js +20 -5
- package/dist/cjs/pds-select.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +8 -5
- package/dist/cjs/pds-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-tab.cjs.entry.js +1 -1
- package/dist/cjs/pds-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +2 -2
- package/dist/cjs/pds-table-head-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table.cjs.entry.js +1 -1
- package/dist/cjs/pds-table.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-tabs.cjs.entry.js +14 -4
- package/dist/cjs/pds-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-textarea.cjs.entry.js +10 -7
- package/dist/cjs/pds-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-tooltip.cjs.entry.js +4 -4
- package/dist/cjs/pds-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/pds-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/collection/components/pds-button/pds-button.css +6 -3
- package/dist/collection/components/pds-checkbox/pds-checkbox.js +7 -4
- package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
- package/dist/collection/components/pds-chip/pds-chip.css +2 -2
- package/dist/collection/components/pds-chip/pds-chip.js +17 -5
- package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
- package/dist/collection/components/pds-combobox/pds-combobox.css +175 -4
- package/dist/collection/components/pds-combobox/pds-combobox.js +516 -43
- package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
- package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +79 -2
- package/dist/collection/components/pds-copytext/pds-copytext.css +6 -3
- package/dist/collection/components/pds-copytext/pds-copytext.js +2 -2
- package/dist/collection/components/pds-copytext/pds-copytext.js.map +1 -1
- package/dist/collection/components/pds-copytext/stories/pds-copytext.stories.js +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +1 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +2 -2
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +1 -1
- package/dist/collection/components/pds-input/pds-input.css +18 -3
- package/dist/collection/components/pds-input/stories/pds-input.stories.js +42 -0
- package/dist/collection/components/pds-modal/pds-modal.css +2 -2
- package/dist/collection/components/pds-popover/pds-popover.css +3 -0
- package/dist/collection/components/pds-popover/pds-popover.js +226 -17
- package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
- package/dist/collection/components/pds-popover/popover-interface.js +2 -0
- package/dist/collection/components/pds-popover/popover-interface.js.map +1 -0
- package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +1 -1
- package/dist/collection/components/pds-radio/pds-radio.js +10 -4
- package/dist/collection/components/pds-radio/pds-radio.js.map +1 -1
- package/dist/collection/components/pds-select/pds-select.css +1 -1
- package/dist/collection/components/pds-select/pds-select.js +19 -2
- package/dist/collection/components/pds-select/pds-select.js.map +1 -1
- package/dist/collection/components/pds-switch/pds-switch.js +7 -4
- package/dist/collection/components/pds-switch/pds-switch.js.map +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-head/pds-table-head.css +1 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +1 -1
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +1 -1
- package/dist/collection/components/pds-table/pds-table.css +1 -1
- package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +2 -2
- package/dist/collection/components/pds-tabs/pds-tabs.js +14 -4
- package/dist/collection/components/pds-tabs/pds-tabs.js.map +1 -1
- package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +1 -1
- package/dist/collection/components/pds-textarea/pds-textarea.css +1 -1
- package/dist/collection/components/pds-textarea/pds-textarea.js +8 -5
- package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
- package/dist/collection/components/pds-tooltip/pds-tooltip.css +1 -1
- package/dist/collection/components/pds-tooltip/pds-tooltip.js +3 -3
- package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
- package/dist/collection/utils/form.js +15 -0
- package/dist/collection/utils/form.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/docs.json +341 -17
- package/dist/esm/form-DwjNklzi.js +47 -0
- package/dist/esm/form-DwjNklzi.js.map +1 -0
- package/dist/esm/{index-D4MkIUXU.js → index-D4zJBIgl.js} +3 -3
- package/dist/esm/index-D4zJBIgl.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mock-pds-modal.entry.js +1 -1
- package/dist/esm/mock-pds-modal.entry.js.map +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 +2 -2
- package/dist/esm/pds-button.entry.js.map +1 -1
- package/dist/esm/pds-checkbox.entry.js +8 -5
- package/dist/esm/pds-checkbox.entry.js.map +1 -1
- package/dist/esm/pds-chip.entry.js +3 -3
- package/dist/esm/pds-chip.entry.js.map +1 -1
- package/dist/esm/pds-combobox.entry.js +398 -40
- package/dist/esm/pds-combobox.entry.js.map +1 -1
- package/dist/esm/pds-copytext.entry.js +4 -4
- package/dist/esm/pds-copytext.entry.js.map +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
- package/dist/esm/pds-filter.entry.js +4 -4
- package/dist/esm/pds-filter.entry.js.map +1 -1
- package/dist/esm/pds-input.entry.js +3 -3
- package/dist/esm/pds-input.entry.js.map +1 -1
- package/dist/esm/pds-link.entry.js +1 -1
- package/dist/esm/pds-modal.entry.js +1 -1
- package/dist/esm/pds-modal.entry.js.map +1 -1
- package/dist/esm/pds-popover.entry.js +118 -13
- package/dist/esm/pds-popover.entry.js.map +1 -1
- package/dist/esm/pds-radio.entry.js +12 -6
- package/dist/esm/pds-radio.entry.js.map +1 -1
- package/dist/esm/pds-select.entry.js +20 -5
- package/dist/esm/pds-select.entry.js.map +1 -1
- package/dist/esm/pds-sortable-item.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +8 -5
- package/dist/esm/pds-switch.entry.js.map +1 -1
- package/dist/esm/pds-tab.entry.js +1 -1
- package/dist/esm/pds-tab.entry.js.map +1 -1
- package/dist/esm/pds-table-cell.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js.map +1 -1
- package/dist/esm/pds-table-head-cell.entry.js +2 -2
- package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-head.entry.js.map +1 -1
- package/dist/esm/pds-table-row.entry.js +1 -1
- package/dist/esm/pds-table-row.entry.js.map +1 -1
- package/dist/esm/pds-table.entry.js +1 -1
- package/dist/esm/pds-table.entry.js.map +1 -1
- package/dist/esm/pds-tabs.entry.js +14 -4
- package/dist/esm/pds-tabs.entry.js.map +1 -1
- package/dist/esm/pds-textarea.entry.js +10 -7
- package/dist/esm/pds-textarea.entry.js.map +1 -1
- package/dist/esm/pds-tooltip.entry.js +4 -4
- package/dist/esm/pds-tooltip.entry.js.map +1 -1
- package/dist/esm/pine-core.js +1 -1
- package/dist/esm-es5/form-DwjNklzi.js +2 -0
- package/dist/esm-es5/form-DwjNklzi.js.map +1 -0
- package/dist/esm-es5/{index-D4MkIUXU.js → index-D4zJBIgl.js} +1 -1
- package/dist/esm-es5/index-D4zJBIgl.js.map +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
- package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
- package/dist/esm-es5/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js.map +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
- package/dist/esm-es5/pds-chip.entry.js +1 -1
- package/dist/esm-es5/pds-chip.entry.js.map +1 -1
- package/dist/esm-es5/pds-combobox.entry.js +1 -1
- 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-copytext.entry.js.map +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
- package/dist/esm-es5/pds-filter.entry.js +1 -1
- package/dist/esm-es5/pds-filter.entry.js.map +1 -1
- package/dist/esm-es5/pds-input.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js.map +1 -1
- package/dist/esm-es5/pds-link.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js.map +1 -1
- package/dist/esm-es5/pds-popover.entry.js +1 -1
- package/dist/esm-es5/pds-popover.entry.js.map +1 -1
- package/dist/esm-es5/pds-radio.entry.js +1 -1
- package/dist/esm-es5/pds-radio.entry.js.map +1 -1
- package/dist/esm-es5/pds-select.entry.js +1 -1
- package/dist/esm-es5/pds-select.entry.js.map +1 -1
- package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
- package/dist/esm-es5/pds-switch.entry.js +1 -1
- package/dist/esm-es5/pds-switch.entry.js.map +1 -1
- package/dist/esm-es5/pds-tab.entry.js +1 -1
- package/dist/esm-es5/pds-tab.entry.js.map +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
- package/dist/esm-es5/pds-table-head.entry.js +1 -1
- package/dist/esm-es5/pds-table-head.entry.js.map +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-table.entry.js +1 -1
- package/dist/esm-es5/pds-table.entry.js.map +1 -1
- package/dist/esm-es5/pds-tabs.entry.js +1 -1
- package/dist/esm-es5/pds-tabs.entry.js.map +1 -1
- package/dist/esm-es5/pds-textarea.entry.js +1 -1
- package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
- package/dist/esm-es5/pds-tooltip.entry.js +1 -1
- package/dist/esm-es5/pds-tooltip.entry.js.map +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
- package/dist/pine-core/p-00346c62.system.entry.js +2 -0
- package/dist/pine-core/p-00346c62.system.entry.js.map +1 -0
- package/dist/pine-core/{p-8ded79aa.system.entry.js → p-0486ecc6.system.entry.js} +2 -2
- package/dist/pine-core/{p-8ded79aa.system.entry.js.map → p-0486ecc6.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-af56cb57.entry.js → p-100de2b7.entry.js} +2 -2
- package/dist/pine-core/p-1b932ee3.entry.js +2 -0
- package/dist/pine-core/p-1b932ee3.entry.js.map +1 -0
- package/dist/pine-core/p-20466115.entry.js +2 -0
- package/dist/pine-core/p-20466115.entry.js.map +1 -0
- package/dist/pine-core/{p-72d87dc6.system.entry.js → p-2054b5cb.system.entry.js} +2 -2
- package/dist/pine-core/{p-c0601420.system.entry.js → p-2aab28b1.system.entry.js} +2 -2
- package/dist/pine-core/p-3dce3bc0.system.entry.js +2 -0
- package/dist/pine-core/p-3dce3bc0.system.entry.js.map +1 -0
- package/dist/pine-core/p-45d574f1.system.entry.js +2 -0
- package/dist/pine-core/p-45d574f1.system.entry.js.map +1 -0
- package/dist/pine-core/p-465e3418.system.entry.js +2 -0
- package/dist/pine-core/p-465e3418.system.entry.js.map +1 -0
- package/dist/pine-core/p-4xv5UVkx.system.js.map +1 -0
- package/dist/pine-core/p-538b3902.system.entry.js +2 -0
- package/dist/pine-core/p-538b3902.system.entry.js.map +1 -0
- package/dist/pine-core/p-61a25ab2.entry.js +2 -0
- package/dist/pine-core/p-61a25ab2.entry.js.map +1 -0
- package/dist/pine-core/p-6381a811.system.entry.js +4 -0
- package/dist/pine-core/p-6381a811.system.entry.js.map +1 -0
- package/dist/pine-core/p-6c36cab6.entry.js +2 -0
- package/dist/pine-core/p-6c36cab6.entry.js.map +1 -0
- package/dist/pine-core/p-6ed297cb.entry.js +2 -0
- package/dist/pine-core/p-6ed297cb.entry.js.map +1 -0
- package/dist/pine-core/p-708e963c.system.entry.js +2 -0
- package/dist/pine-core/p-708e963c.system.entry.js.map +1 -0
- package/dist/pine-core/p-7090d42d.system.entry.js +2 -0
- package/dist/pine-core/p-7090d42d.system.entry.js.map +1 -0
- package/dist/pine-core/{p-896e2f1b.entry.js → p-725c350c.entry.js} +2 -2
- package/dist/pine-core/{p-896e2f1b.entry.js.map → p-725c350c.entry.js.map} +1 -1
- package/dist/pine-core/p-75187352.system.entry.js +2 -0
- package/dist/pine-core/p-75187352.system.entry.js.map +1 -0
- package/dist/pine-core/p-79422986.entry.js +2 -0
- package/dist/pine-core/p-79422986.entry.js.map +1 -0
- package/dist/pine-core/p-81bc089e.entry.js +2 -0
- package/dist/pine-core/p-81bc089e.entry.js.map +1 -0
- package/dist/pine-core/p-85c41629.entry.js +2 -0
- package/dist/pine-core/p-85c41629.entry.js.map +1 -0
- package/dist/pine-core/p-86263a62.entry.js +2 -0
- package/dist/pine-core/p-86263a62.entry.js.map +1 -0
- package/dist/pine-core/p-87ed43d5.entry.js +2 -0
- package/dist/pine-core/p-87ed43d5.entry.js.map +1 -0
- package/dist/pine-core/{p-a54d6a53.entry.js → p-88773b86.entry.js} +2 -2
- package/dist/pine-core/p-8b4fb3f0.entry.js +2 -0
- package/dist/pine-core/p-8b4fb3f0.entry.js.map +1 -0
- package/dist/pine-core/p-8b5fc4b4.system.entry.js +2 -0
- package/dist/pine-core/p-8b5fc4b4.system.entry.js.map +1 -0
- package/dist/pine-core/p-94183716.entry.js +2 -0
- package/dist/pine-core/p-94183716.entry.js.map +1 -0
- package/dist/pine-core/p-9766923f.entry.js +2 -0
- package/dist/pine-core/p-9766923f.entry.js.map +1 -0
- package/dist/pine-core/p-9b335a9f.entry.js +2 -0
- package/dist/pine-core/p-9b335a9f.entry.js.map +1 -0
- package/dist/pine-core/p-9c579956.system.entry.js +2 -0
- package/dist/pine-core/p-9c579956.system.entry.js.map +1 -0
- package/dist/pine-core/p-9cf2b7a6.entry.js +2 -0
- package/dist/pine-core/p-9cf2b7a6.entry.js.map +1 -0
- package/dist/pine-core/{p-COwpA8ab.system.js.map → p-B-Doh1Wu.system.js.map} +1 -1
- package/dist/pine-core/{p-BSkbMuB5.system.js → p-BG99uNIQ.system.js} +1 -1
- package/dist/pine-core/p-BG99uNIQ.system.js.map +1 -0
- package/dist/pine-core/p-BHavepTY.system.js +2 -0
- package/dist/pine-core/p-BHavepTY.system.js.map +1 -0
- package/dist/pine-core/p-BLC5kuro.system.js.map +1 -0
- package/dist/pine-core/p-BPjnTOEL.system.js +1 -1
- package/dist/pine-core/{p-X5M4eshC.system.js.map → p-BRIdBthP.system.js.map} +1 -1
- package/dist/pine-core/{p-B57Bybw-.system.js.map → p-BkPtASB1.system.js.map} +1 -1
- package/dist/pine-core/p-Bkfqi7zE.system.js.map +1 -0
- package/dist/pine-core/p-C1KChp5Q.system.js.map +1 -0
- package/dist/pine-core/p-C2W-sHx5.system.js.map +1 -0
- package/dist/pine-core/p-CIBXMJd-.system.js.map +1 -0
- package/dist/pine-core/p-CJNB_wrl.system.js.map +1 -0
- package/dist/pine-core/p-CSa_b_JX.system.js.map +1 -0
- package/dist/pine-core/p-Cid662up.system.js.map +1 -0
- package/dist/pine-core/p-Cqzmj3D8.system.js.map +1 -0
- package/dist/pine-core/p-Cxlv_2hD.system.js.map +1 -0
- package/dist/pine-core/p-D0foS5EP.system.js.map +1 -0
- package/dist/pine-core/{p-D4MkIUXU.js → p-D4zJBIgl.js} +1 -1
- package/dist/pine-core/p-D4zJBIgl.js.map +1 -0
- package/dist/pine-core/p-DCjZr2HA.system.js.map +1 -0
- package/dist/pine-core/p-DN3VK2yy.system.js.map +1 -0
- package/dist/pine-core/{p-DgE9ds9o.system.js.map → p-DOqVoXeA.system.js.map} +1 -1
- package/dist/pine-core/p-DW3lkDNz.system.js.map +1 -0
- package/dist/pine-core/p-DfrSuf6X.system.js.map +1 -0
- package/dist/pine-core/p-DpemOPFJ.system.js.map +1 -0
- package/dist/pine-core/p-DpzRSULT.system.js.map +1 -0
- package/dist/pine-core/p-DtdXdmNp.system.js.map +1 -0
- package/dist/pine-core/p-Dw05F6Xg.system.js.map +1 -0
- package/dist/pine-core/p-DwjNklzi.js +2 -0
- package/dist/pine-core/p-DwjNklzi.js.map +1 -0
- package/dist/pine-core/p-GrmqKqN8.system.js.map +1 -0
- package/dist/pine-core/p-HHZU8rBT.system.js.map +1 -0
- package/dist/pine-core/p-a2708028.entry.js +2 -0
- package/dist/pine-core/p-a2708028.entry.js.map +1 -0
- package/dist/pine-core/{p-46820152.entry.js → p-a3785977.entry.js} +2 -2
- package/dist/pine-core/p-a707a7da.system.entry.js +2 -0
- package/dist/pine-core/p-a707a7da.system.entry.js.map +1 -0
- package/dist/pine-core/p-acd87a10.entry.js +2 -0
- package/dist/pine-core/p-acd87a10.entry.js.map +1 -0
- package/dist/pine-core/p-ae4ec5cf.system.entry.js +2 -0
- package/dist/pine-core/p-ae4ec5cf.system.entry.js.map +1 -0
- package/dist/pine-core/p-b23dd01c.entry.js +2 -0
- package/dist/pine-core/p-b23dd01c.entry.js.map +1 -0
- package/dist/pine-core/p-b9aafec7.system.entry.js +2 -0
- package/dist/pine-core/p-b9aafec7.system.entry.js.map +1 -0
- package/dist/pine-core/p-c3579585.system.entry.js +2 -0
- package/dist/pine-core/p-c3579585.system.entry.js.map +1 -0
- package/dist/pine-core/p-cffc98ae.entry.js +3 -0
- package/dist/pine-core/p-cffc98ae.entry.js.map +1 -0
- package/dist/pine-core/{p-559b4ebc.entry.js → p-d1b27fa4.entry.js} +2 -2
- package/dist/pine-core/p-d2b15290.system.entry.js +2 -0
- package/dist/pine-core/p-d2b15290.system.entry.js.map +1 -0
- package/dist/pine-core/p-d4d22aee.entry.js +2 -0
- package/dist/pine-core/p-d4d22aee.entry.js.map +1 -0
- package/dist/pine-core/{p-c63e7909.system.entry.js → p-dace69e7.system.entry.js} +2 -2
- package/dist/pine-core/p-e34c1224.system.entry.js +2 -0
- package/dist/pine-core/p-e34c1224.system.entry.js.map +1 -0
- package/dist/pine-core/p-e5adbf74.system.entry.js +2 -0
- package/dist/pine-core/p-e5adbf74.system.entry.js.map +1 -0
- package/dist/pine-core/p-e6085566.system.entry.js +2 -0
- package/dist/pine-core/p-e6085566.system.entry.js.map +1 -0
- package/dist/pine-core/p-e683e197.system.entry.js +2 -0
- package/dist/pine-core/p-e683e197.system.entry.js.map +1 -0
- package/dist/pine-core/p-e6b051e8.system.entry.js +2 -0
- package/dist/pine-core/p-e6b051e8.system.entry.js.map +1 -0
- package/dist/pine-core/{p-ab4307c7.system.entry.js → p-e702a8dc.system.entry.js} +2 -2
- package/dist/pine-core/p-f15cd180.entry.js +2 -0
- package/dist/pine-core/p-f15cd180.entry.js.map +1 -0
- package/dist/pine-core/p-f6d0bd39.entry.js +2 -0
- package/dist/pine-core/p-f6d0bd39.entry.js.map +1 -0
- package/dist/pine-core/p-f92d7570.system.entry.js +2 -0
- package/dist/pine-core/p-f92d7570.system.entry.js.map +1 -0
- package/dist/pine-core/{p-d325287b.entry.js.map → p-ozqEY4Zc.system.js.map} +1 -1
- package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-tabs.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-tooltip.entry.esm.js.map +1 -1
- package/dist/pine-core/pine-core.css +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +1 -0
- package/dist/types/components/pds-chip/pds-chip.d.ts +3 -2
- package/dist/types/components/pds-combobox/pds-combobox.d.ts +56 -2
- package/dist/types/components/pds-popover/pds-popover.d.ts +33 -2
- package/dist/types/components/pds-popover/popover-interface.d.ts +8 -0
- package/dist/types/components/pds-radio/pds-radio.d.ts +3 -0
- package/dist/types/components/pds-select/pds-select.d.ts +6 -0
- package/dist/types/components/pds-switch/pds-switch.d.ts +1 -0
- package/dist/types/components/pds-textarea/pds-textarea.d.ts +1 -0
- package/dist/types/components.d.ts +94 -10
- package/dist/types/utils/form.d.ts +9 -0
- package/dist/types/utils/types.d.ts +2 -0
- package/hydrate/index.js +629 -101
- package/hydrate/index.mjs +629 -101
- package/package.json +2 -2
- package/dist/cjs/form-Bx4nzJBo.js.map +0 -1
- package/dist/cjs/index-CTirFLR-.js.map +0 -1
- package/dist/esm/form-DTL_39D_.js +0 -32
- package/dist/esm/form-DTL_39D_.js.map +0 -1
- package/dist/esm/index-D4MkIUXU.js.map +0 -1
- package/dist/esm-es5/form-DTL_39D_.js +0 -2
- package/dist/esm-es5/form-DTL_39D_.js.map +0 -1
- package/dist/esm-es5/index-D4MkIUXU.js.map +0 -1
- package/dist/pine-core/p-0075bbbe.system.entry.js +0 -2
- package/dist/pine-core/p-0075bbbe.system.entry.js.map +0 -1
- package/dist/pine-core/p-0975b749.system.entry.js +0 -2
- package/dist/pine-core/p-0975b749.system.entry.js.map +0 -1
- package/dist/pine-core/p-0befa8f0.entry.js +0 -2
- package/dist/pine-core/p-0befa8f0.entry.js.map +0 -1
- package/dist/pine-core/p-0d18171c.system.entry.js +0 -2
- package/dist/pine-core/p-0d18171c.system.entry.js.map +0 -1
- package/dist/pine-core/p-1773aeac.system.entry.js +0 -2
- package/dist/pine-core/p-1773aeac.system.entry.js.map +0 -1
- package/dist/pine-core/p-265372d3.entry.js +0 -2
- package/dist/pine-core/p-265372d3.entry.js.map +0 -1
- package/dist/pine-core/p-29b2af94.entry.js +0 -2
- package/dist/pine-core/p-29b2af94.entry.js.map +0 -1
- package/dist/pine-core/p-2b452883.system.entry.js +0 -2
- package/dist/pine-core/p-2b452883.system.entry.js.map +0 -1
- package/dist/pine-core/p-30e8c3ea.entry.js +0 -2
- package/dist/pine-core/p-30e8c3ea.entry.js.map +0 -1
- package/dist/pine-core/p-31f6fcc1.entry.js +0 -2
- package/dist/pine-core/p-31f6fcc1.entry.js.map +0 -1
- package/dist/pine-core/p-3b20aa93.system.entry.js +0 -2
- package/dist/pine-core/p-3b20aa93.system.entry.js.map +0 -1
- package/dist/pine-core/p-3e7933bf.entry.js +0 -2
- package/dist/pine-core/p-3e7933bf.entry.js.map +0 -1
- package/dist/pine-core/p-4534e8cc.system.entry.js +0 -2
- package/dist/pine-core/p-4534e8cc.system.entry.js.map +0 -1
- package/dist/pine-core/p-4b3a8cab.entry.js +0 -2
- package/dist/pine-core/p-4b3a8cab.entry.js.map +0 -1
- package/dist/pine-core/p-4c8bebd8.system.entry.js +0 -2
- package/dist/pine-core/p-4c8bebd8.system.entry.js.map +0 -1
- package/dist/pine-core/p-4dda1edf.entry.js +0 -2
- package/dist/pine-core/p-4dda1edf.entry.js.map +0 -1
- package/dist/pine-core/p-4e55730d.entry.js +0 -2
- package/dist/pine-core/p-4e55730d.entry.js.map +0 -1
- package/dist/pine-core/p-56f6f106.entry.js +0 -2
- package/dist/pine-core/p-56f6f106.entry.js.map +0 -1
- package/dist/pine-core/p-5cc0244d.system.entry.js +0 -2
- package/dist/pine-core/p-5cc0244d.system.entry.js.map +0 -1
- package/dist/pine-core/p-74f03e75.entry.js +0 -2
- package/dist/pine-core/p-74f03e75.entry.js.map +0 -1
- package/dist/pine-core/p-7b0517e5.system.entry.js +0 -2
- package/dist/pine-core/p-7b0517e5.system.entry.js.map +0 -1
- package/dist/pine-core/p-7b66bc50.entry.js +0 -3
- package/dist/pine-core/p-7b66bc50.entry.js.map +0 -1
- package/dist/pine-core/p-7eb22880.entry.js +0 -2
- package/dist/pine-core/p-7eb22880.entry.js.map +0 -1
- package/dist/pine-core/p-8501429f.entry.js +0 -2
- package/dist/pine-core/p-8501429f.entry.js.map +0 -1
- package/dist/pine-core/p-94fe15b0.system.entry.js +0 -2
- package/dist/pine-core/p-94fe15b0.system.entry.js.map +0 -1
- package/dist/pine-core/p-95aee0b1.entry.js +0 -2
- package/dist/pine-core/p-95aee0b1.entry.js.map +0 -1
- package/dist/pine-core/p-B02VgXkx.system.js.map +0 -1
- package/dist/pine-core/p-BFiM1S8V.system.js.map +0 -1
- package/dist/pine-core/p-BG7_qxVr.system.js +0 -2
- package/dist/pine-core/p-BG7_qxVr.system.js.map +0 -1
- package/dist/pine-core/p-BJhtHwq5.system.js.map +0 -1
- package/dist/pine-core/p-BQFgzIQT.system.js.map +0 -1
- package/dist/pine-core/p-BSkbMuB5.system.js.map +0 -1
- package/dist/pine-core/p-BigOVPun.system.js.map +0 -1
- package/dist/pine-core/p-BmFGXXkm.system.js.map +0 -1
- package/dist/pine-core/p-CHVzHNgU.system.js.map +0 -1
- package/dist/pine-core/p-CV0Lw9gs.system.js.map +0 -1
- package/dist/pine-core/p-CZqgW7e3.system.js.map +0 -1
- package/dist/pine-core/p-Cc1q-FuD.system.js.map +0 -1
- package/dist/pine-core/p-D3SrjYeb.system.js.map +0 -1
- package/dist/pine-core/p-D4MkIUXU.js.map +0 -1
- package/dist/pine-core/p-D9veIL-g.system.js.map +0 -1
- package/dist/pine-core/p-DGFR-x7P.system.js.map +0 -1
- package/dist/pine-core/p-DTL_39D_.js +0 -2
- package/dist/pine-core/p-DTL_39D_.js.map +0 -1
- package/dist/pine-core/p-DeR0sSWy.system.js.map +0 -1
- package/dist/pine-core/p-Df597YUK.system.js.map +0 -1
- package/dist/pine-core/p-Ek6vvXfI.system.js.map +0 -1
- package/dist/pine-core/p-WO5h6NYA.system.js.map +0 -1
- package/dist/pine-core/p-Z5rOSkoA.system.js.map +0 -1
- package/dist/pine-core/p-a5cf0088.system.entry.js +0 -2
- package/dist/pine-core/p-a5cf0088.system.entry.js.map +0 -1
- package/dist/pine-core/p-aa2782b9.system.entry.js +0 -2
- package/dist/pine-core/p-aa2782b9.system.entry.js.map +0 -1
- package/dist/pine-core/p-b32d34d0.entry.js +0 -2
- package/dist/pine-core/p-b32d34d0.entry.js.map +0 -1
- package/dist/pine-core/p-b378ca03.entry.js +0 -2
- package/dist/pine-core/p-b378ca03.entry.js.map +0 -1
- package/dist/pine-core/p-b699a14f.system.entry.js +0 -2
- package/dist/pine-core/p-b699a14f.system.entry.js.map +0 -1
- package/dist/pine-core/p-c2d2fe64.system.entry.js +0 -2
- package/dist/pine-core/p-c2d2fe64.system.entry.js.map +0 -1
- package/dist/pine-core/p-d325287b.entry.js +0 -2
- package/dist/pine-core/p-d52d96b5.system.entry.js +0 -4
- package/dist/pine-core/p-d52d96b5.system.entry.js.map +0 -1
- package/dist/pine-core/p-d5c63517.system.entry.js +0 -2
- package/dist/pine-core/p-d5c63517.system.entry.js.map +0 -1
- package/dist/pine-core/p-d65d252d.entry.js +0 -2
- package/dist/pine-core/p-d65d252d.entry.js.map +0 -1
- package/dist/pine-core/p-dbe41087.system.entry.js +0 -2
- package/dist/pine-core/p-dbe41087.system.entry.js.map +0 -1
- package/dist/pine-core/p-e03b7f4a.system.entry.js +0 -2
- package/dist/pine-core/p-e03b7f4a.system.entry.js.map +0 -1
- package/dist/pine-core/p-f6b269ac.entry.js +0 -2
- package/dist/pine-core/p-f6b269ac.entry.js.map +0 -1
- package/dist/pine-core/p-f70aef6e.system.entry.js +0 -2
- package/dist/pine-core/p-f70aef6e.system.entry.js.map +0 -1
- package/dist/pine-core/p-fd3d548f.entry.js +0 -2
- package/dist/pine-core/p-fd3d548f.entry.js.map +0 -1
- package/dist/pine-core/p-fddf82f8.entry.js +0 -2
- package/dist/pine-core/p-fddf82f8.entry.js.map +0 -1
- package/dist/pine-core/p-fdf22be1.system.entry.js +0 -2
- package/dist/pine-core/p-fdf22be1.system.entry.js.map +0 -1
- package/dist/pine-core/p-fe7ece91.system.entry.js +0 -2
- package/dist/pine-core/p-fe7ece91.system.entry.js.map +0 -1
- package/dist/pine-core/p-iM8w34Dq.system.js.map +0 -1
- package/dist/pine-core/p-kbAzjMDU.system.js.map +0 -1
- package/dist/pine-core/p-nawkAoxk.system.js.map +0 -1
- package/dist/pine-core/p-oDk-2Jyq.system.js.map +0 -1
- package/dist/pine-core/p-wlxYjeBe.system.js.map +0 -1
- /package/dist/pine-core/{p-af56cb57.entry.js.map → p-100de2b7.entry.js.map} +0 -0
- /package/dist/pine-core/{p-72d87dc6.system.entry.js.map → p-2054b5cb.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c0601420.system.entry.js.map → p-2aab28b1.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-a54d6a53.entry.js.map → p-88773b86.entry.js.map} +0 -0
- /package/dist/pine-core/{p-46820152.entry.js.map → p-a3785977.entry.js.map} +0 -0
- /package/dist/pine-core/{p-559b4ebc.entry.js.map → p-d1b27fa4.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c63e7909.system.entry.js.map → p-dace69e7.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ab4307c7.system.entry.js.map → p-e702a8dc.system.entry.js.map} +0 -0
|
@@ -1338,7 +1338,7 @@ function createDOMPurify() {
|
|
|
1338
1338
|
}
|
|
1339
1339
|
var purify = createDOMPurify();
|
|
1340
1340
|
|
|
1341
|
-
const pdsComboboxCss = ":host{display:block}:host([disabled=true]) .pds-combobox__input-icon{color:var(--pine-color-text-disabled);pointer-events:none}.pds-combobox{position:relative}.pds-combobox__label{display:block;font-size:0.95rem;-webkit-margin-after:var(--pine-dimension-150);margin-block-end:var(--pine-dimension-150)}.pds-combobox__input-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-combobox__input{background:var(--pine-color-background-container);border:1px solid var(--pine-color-border);border-radius:var(--pine-dimension-125);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-active);-ms-flex:1;flex:1;font:var(--pine-typography-body-medium);padding:var(--pine-dimension-xs) var(--pine-dimension-450) var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-transition:border-color 0.2s ease;transition:border-color 0.2s ease;width:100%}.pds-combobox__input:hover:not(:disabled){border-color:var(--pine-color-border-hover)}.pds-combobox__input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-combobox__input:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input-icon{color:var(--pine-color-text-secondary);pointer-events:none;position:absolute;right:var(--pine-dimension-150);z-index:1}.pds-combobox__listbox{background:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:1000}.pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__option[aria-selected=true]{background:var(--pine-color-grey-150)}.pds-combobox__option:focus-visible{outline:0}.pds-combobox__option .pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox__option--highlighted,.pds-combobox__option[selected],.pds-combobox__option--selected{background:var(--pine-color-grey-150)}.pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__group-label{color:var(--pine-color-text-placeholder);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__button-trigger{-ms-flex-align:center;align-items:center;background:var(--color-background-default, var(--pine-color-secondary));border:var(--pine-border);border-radius:var(--pine-border-radius-full);color:var(--color-text-default, #ffffff);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;min-height:var(--pine-dimension-450);outline:none;padding:0 var(--pine-dimension-sm);-webkit-transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, -webkit-box-shadow 0.15s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__button-trigger .pds-combobox__button-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__button-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__button-trigger:focus-visible{border-color:var(--color-border-focus, var(--pine-color-border));-webkit-box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring));box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring))}.pds-combobox__button-trigger:hover{background:var(--color-background-hover, var(--pine-color-secondary-hover));border-color:var(--color-border-hover, var(--pine-color-border-hover))}.pds-combobox__button-trigger[aria-disabled=true],.pds-combobox__button-trigger:disabled{background:var(--color-background-disabled, var(--pine-color-secondary-disabled));border-color:var(--color-border-disabled, var(--pine-color-border-disabled));color:var(--color-text-disabled, var(--pine-color-text-secondary-disabled));cursor:not-allowed;opacity:0.6}.pds-combobox__button-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__button-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__button-trigger--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-border-disabled:var(--pine-color-primary-disabled);--color-border-focus:var(--pine-color-primary);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-border-disabled:var(--pine-color-accent-disabled);--color-border-focus:var(--pine-color-accent);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--secondary{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-default:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-border-disabled:var(--pine-color-danger-disabled);--color-border-focus:var(--pine-color-danger);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[data-layout]{border-radius:var(--pine-dimension-125);padding-block:var(--pine-dimension-xs)}";
|
|
1341
|
+
const pdsComboboxCss = ":host{display:block}:host([disabled=true]) .pds-combobox__input-icon{color:var(--pine-color-text-disabled);pointer-events:none}.pds-combobox{position:relative}.pds-combobox__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-combobox__input-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-combobox__input{background:var(--pine-color-background-container);border:1px solid var(--pine-color-border);border-radius:var(--pine-dimension-125);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-active);-ms-flex:1;flex:1;font:var(--pine-typography-body-medium);padding:var(--pine-dimension-xs) var(--pine-dimension-450) var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-transition:border-color 0.2s ease;transition:border-color 0.2s ease;width:100%}.pds-combobox__input:hover:not(:disabled){border-color:var(--pine-color-border-hover)}.pds-combobox__input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-combobox__input:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input-icon{color:var(--pine-color-text-secondary);pointer-events:none;position:absolute;right:var(--pine-dimension-150);z-index:var(--pine-z-index-raised)}.pds-combobox__listbox{background:var(--pine-color-background-container);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__option[aria-selected=true]{background:var(--pine-color-grey-150)}.pds-combobox__option:focus-visible{outline:0}.pds-combobox__option .pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option .pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox__option--highlighted,.pds-combobox__option[selected],.pds-combobox__option--selected{background:var(--pine-color-grey-150)}.pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__group-label{color:var(--pine-color-text-placeholder);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__button-trigger{-ms-flex-align:center;align-items:center;background:var(--color-background-default, var(--pine-color-secondary));border:var(--pine-border);border-radius:var(--pine-border-radius-full);color:var(--color-text-default, #ffffff);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;min-height:var(--pine-dimension-450);outline:none;padding:0 var(--pine-dimension-sm);-webkit-transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, -webkit-box-shadow 0.15s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__button-trigger .pds-combobox__button-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__button-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__button-trigger:focus-visible{border-color:var(--color-border-focus, var(--pine-color-border));-webkit-box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring));box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring))}.pds-combobox__button-trigger:hover{background:var(--color-background-hover, var(--pine-color-secondary-hover));border-color:var(--color-border-hover, var(--pine-color-border-hover))}.pds-combobox__button-trigger[aria-disabled=true],.pds-combobox__button-trigger:disabled{background:var(--color-background-disabled, var(--pine-color-secondary-disabled));border-color:var(--color-border-disabled, var(--pine-color-border-disabled));color:var(--color-text-disabled, var(--pine-color-text-secondary-disabled));cursor:not-allowed;opacity:0.6}.pds-combobox__button-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__button-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__button-trigger--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-border-disabled:var(--pine-color-primary-disabled);--color-border-focus:var(--pine-color-primary);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-border-disabled:var(--pine-color-accent-disabled);--color-border-focus:var(--pine-color-accent);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--secondary{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-default:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-border-disabled:var(--pine-color-danger-disabled);--color-border-focus:var(--pine-color-danger);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[data-layout]{border-radius:var(--pine-dimension-125);padding-block:var(--pine-dimension-xs)}.pds-combobox__chip-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;outline:none;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150);-webkit-transition:all 0.15s ease;transition:all 0.15s ease;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__chip-trigger .pds-combobox__chip-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__chip-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__chip-trigger:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__chip-trigger[aria-disabled=true]{cursor:not-allowed;opacity:0.6}.pds-combobox__chip-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__chip-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__chip-trigger-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-combobox__chip-trigger--neutral,.pds-combobox__chip-trigger--accent,.pds-combobox__chip-trigger--success,.pds-combobox__chip-trigger--warning,.pds-combobox__chip-trigger--danger,.pds-combobox__chip-trigger--info{background:var(--chip-bg);border:var(--pine-border-width) solid var(--chip-border);color:var(--chip-text)}.pds-combobox__chip-trigger--neutral:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--accent:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--success:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--warning:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--danger:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--info:hover:not([aria-disabled=true]){background:var(--chip-bg-hover)}.pds-combobox__chip-trigger--neutral:focus-visible,.pds-combobox__chip-trigger--accent:focus-visible,.pds-combobox__chip-trigger--success:focus-visible,.pds-combobox__chip-trigger--warning:focus-visible,.pds-combobox__chip-trigger--danger:focus-visible,.pds-combobox__chip-trigger--info:focus-visible{border-color:var(--chip-border)}.pds-combobox__chip-trigger--neutral{--chip-bg:var(--pine-chip-color-neutral);--chip-bg-hover:var(--pine-chip-color-neutral-hover);--chip-border:var(--pine-chip-color-neutral-hover);--chip-text:var(--pine-color-text-neutral)}.pds-combobox__chip-trigger--accent{--chip-bg:var(--pine-chip-color-accent);--chip-bg-hover:var(--pine-chip-color-accent-hover);--chip-border:var(--pine-chip-color-accent-hover);--chip-text:var(--pine-color-text-accent)}.pds-combobox__chip-trigger--success{--chip-bg:var(--pine-chip-color-success);--chip-bg-hover:var(--pine-chip-color-success-hover);--chip-border:var(--pine-chip-color-success-hover);--chip-text:var(--pine-color-text-success)}.pds-combobox__chip-trigger--warning{--chip-bg:var(--pine-chip-color-warning);--chip-bg-hover:var(--pine-chip-color-warning-hover);--chip-border:var(--pine-chip-color-warning-hover);--chip-text:var(--pine-color-text-warning)}.pds-combobox__chip-trigger--danger{--chip-bg:var(--pine-chip-color-danger);--chip-bg-hover:var(--pine-chip-color-danger-hover);--chip-border:var(--pine-chip-color-danger-hover);--chip-text:var(--pine-color-text-danger)}.pds-combobox__chip-trigger--info{--chip-bg:var(--pine-chip-color-info);--chip-bg-hover:var(--pine-chip-color-info-hover);--chip-border:var(--pine-chip-color-info-hover);--chip-text:var(--pine-color-text-info)}.pds-combobox__chip-trigger--brand{background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;color:var(--pine-color-text-neutral);padding:1px;position:relative}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-chevron{position:relative;z-index:1}.pds-combobox__chip-trigger--brand:hover:not([aria-disabled=true]) .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.8)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand){padding:var(--pine-dimension-none)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand) .pds-combobox__chip-trigger-label{padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-combobox__chip-trigger--large .pds-combobox__chip-trigger-label{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-combobox__chip-trigger--dot .pds-combobox__chip-trigger-label::before{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);content:\"\";display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}";
|
|
1342
1342
|
|
|
1343
1343
|
const PdsCombobox = class {
|
|
1344
1344
|
constructor(hostRef) {
|
|
@@ -1382,7 +1382,7 @@ const PdsCombobox = class {
|
|
|
1382
1382
|
*/
|
|
1383
1383
|
this.mode = 'filter';
|
|
1384
1384
|
/**
|
|
1385
|
-
* Determines the combobox trigger: 'input' (editable input)
|
|
1385
|
+
* Determines the combobox trigger: 'input' (editable input), 'button' (button-like, non-editable), or 'chip' (chip-like, non-editable).
|
|
1386
1386
|
* @default 'input'
|
|
1387
1387
|
*/
|
|
1388
1388
|
this.trigger = 'input';
|
|
@@ -1396,10 +1396,29 @@ const PdsCombobox = class {
|
|
|
1396
1396
|
* @default 'secondary'
|
|
1397
1397
|
*/
|
|
1398
1398
|
this.triggerVariant = 'secondary';
|
|
1399
|
+
/**
|
|
1400
|
+
* The sentiment for the chip trigger. Matches Pine chip sentiments.
|
|
1401
|
+
* @default 'neutral'
|
|
1402
|
+
*/
|
|
1403
|
+
this.chipSentiment = 'neutral';
|
|
1404
|
+
/**
|
|
1405
|
+
* Whether the chip trigger should be displayed in a larger size.
|
|
1406
|
+
* @default false
|
|
1407
|
+
*/
|
|
1408
|
+
this.chipLarge = false;
|
|
1409
|
+
/**
|
|
1410
|
+
* Whether a dot should be displayed on the chip trigger.
|
|
1411
|
+
* @default false
|
|
1412
|
+
*/
|
|
1413
|
+
this.chipDot = false;
|
|
1399
1414
|
/**
|
|
1400
1415
|
* The value of the combobox input.
|
|
1401
1416
|
*/
|
|
1402
1417
|
this.value = '';
|
|
1418
|
+
/**
|
|
1419
|
+
* Internal state for the display text shown in the input/trigger
|
|
1420
|
+
*/
|
|
1421
|
+
this.displayText = '';
|
|
1403
1422
|
/**
|
|
1404
1423
|
* Internal state for filtered options and group labels
|
|
1405
1424
|
*/
|
|
@@ -1420,11 +1439,16 @@ const PdsCombobox = class {
|
|
|
1420
1439
|
* Internal state for the sanitized layout content of the selected option
|
|
1421
1440
|
*/
|
|
1422
1441
|
this.selectedOptionLayoutContent = '';
|
|
1442
|
+
/**
|
|
1443
|
+
* Internal state to track chip properties for automatic rendering
|
|
1444
|
+
*/
|
|
1445
|
+
this.selectedOptionChipProps = null;
|
|
1423
1446
|
this.optionEls = [];
|
|
1424
1447
|
this.allItems = [];
|
|
1448
|
+
this.isUpdatingFromSelection = false;
|
|
1425
1449
|
this.handleInput = (e) => {
|
|
1426
1450
|
const target = e.target;
|
|
1427
|
-
this.
|
|
1451
|
+
this.displayText = target.value;
|
|
1428
1452
|
this.isOpen = true;
|
|
1429
1453
|
this.filterOptions();
|
|
1430
1454
|
setTimeout(() => this.openDropdownPositioning(), 0);
|
|
@@ -1434,6 +1458,7 @@ const PdsCombobox = class {
|
|
|
1434
1458
|
if (!this.isOpen) {
|
|
1435
1459
|
this.isOpen = true;
|
|
1436
1460
|
this.filterOptions();
|
|
1461
|
+
this.setInitialHighlightedIndex();
|
|
1437
1462
|
setTimeout(() => this.openDropdownPositioning(), 0);
|
|
1438
1463
|
}
|
|
1439
1464
|
};
|
|
@@ -1443,10 +1468,7 @@ const PdsCombobox = class {
|
|
|
1443
1468
|
this.isOpen = true;
|
|
1444
1469
|
this.filterOptions();
|
|
1445
1470
|
// Set highlighted index immediately for testing
|
|
1446
|
-
|
|
1447
|
-
if (selectableOptions.length > 0) {
|
|
1448
|
-
this.highlightedIndex = 0;
|
|
1449
|
-
}
|
|
1471
|
+
this.setInitialHighlightedIndex();
|
|
1450
1472
|
setTimeout(() => {
|
|
1451
1473
|
this.openDropdownPositioning();
|
|
1452
1474
|
// For input trigger, keep focus on input and use aria-activedescendant
|
|
@@ -1525,6 +1547,13 @@ const PdsCombobox = class {
|
|
|
1525
1547
|
this.restoreFocusToTrigger();
|
|
1526
1548
|
}
|
|
1527
1549
|
break;
|
|
1550
|
+
case ' ':
|
|
1551
|
+
e.preventDefault();
|
|
1552
|
+
if (this.highlightedIndex >= 0 && this.highlightedIndex < selectableOptions.length) {
|
|
1553
|
+
this.handleOptionClick(selectableOptions[this.highlightedIndex]);
|
|
1554
|
+
this.restoreFocusToTrigger();
|
|
1555
|
+
}
|
|
1556
|
+
break;
|
|
1528
1557
|
case 'Escape':
|
|
1529
1558
|
e.preventDefault();
|
|
1530
1559
|
this.isOpen = false;
|
|
@@ -1569,12 +1598,9 @@ const PdsCombobox = class {
|
|
|
1569
1598
|
if (this.isOpen) {
|
|
1570
1599
|
this.filterOptions();
|
|
1571
1600
|
// Set highlighted index and prepare for keyboard navigation
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
// For button trigger, prepare for arrow-key navigation mode
|
|
1576
|
-
this.isArrowKeyNavigationMode = true;
|
|
1577
|
-
}
|
|
1601
|
+
this.setInitialHighlightedIndex();
|
|
1602
|
+
// For button trigger, prepare for arrow-key navigation mode
|
|
1603
|
+
this.isArrowKeyNavigationMode = true;
|
|
1578
1604
|
setTimeout(() => this.openDropdownPositioning(), 0);
|
|
1579
1605
|
}
|
|
1580
1606
|
else {
|
|
@@ -1590,10 +1616,7 @@ const PdsCombobox = class {
|
|
|
1590
1616
|
this.isOpen = true;
|
|
1591
1617
|
this.filterOptions();
|
|
1592
1618
|
// Set highlighted index immediately
|
|
1593
|
-
|
|
1594
|
-
if (selectableOptions.length > 0) {
|
|
1595
|
-
this.highlightedIndex = 0;
|
|
1596
|
-
}
|
|
1619
|
+
this.setInitialHighlightedIndex();
|
|
1597
1620
|
setTimeout(() => {
|
|
1598
1621
|
this.openDropdownPositioning();
|
|
1599
1622
|
// For all button trigger keyboard opening, focus the first option so subsequent navigation works
|
|
@@ -1634,24 +1657,110 @@ const PdsCombobox = class {
|
|
|
1634
1657
|
this.highlightedIndex = -1;
|
|
1635
1658
|
this.isArrowKeyNavigationMode = false; // Reset arrow-key navigation mode
|
|
1636
1659
|
this.updateAriaActiveDescendant(); // Clear aria-activedescendant
|
|
1637
|
-
// If there's a selected option but the
|
|
1638
|
-
if (this.selectedOption && this.
|
|
1639
|
-
this.
|
|
1660
|
+
// If there's a selected option but the display text doesn't match, restore the selected option's display text
|
|
1661
|
+
if (this.selectedOption && this.displayText !== this.getOptionLabel(this.selectedOption)) {
|
|
1662
|
+
this.displayText = this.getOptionLabel(this.selectedOption);
|
|
1663
|
+
// The @Watch('selectedOption') will handle value and form internals if needed
|
|
1640
1664
|
}
|
|
1641
1665
|
}
|
|
1642
1666
|
};
|
|
1643
1667
|
}
|
|
1668
|
+
connectedCallback() {
|
|
1669
|
+
// Initialize ElementInternals for form association
|
|
1670
|
+
if (this.el.attachInternals) {
|
|
1671
|
+
this.internals = this.el.attachInternals();
|
|
1672
|
+
}
|
|
1673
|
+
}
|
|
1644
1674
|
componentWillLoad() {
|
|
1645
1675
|
this.updateOptions();
|
|
1646
1676
|
}
|
|
1677
|
+
componentDidLoad() {
|
|
1678
|
+
var _a, _b, _c;
|
|
1679
|
+
// Check for value-based preselection if no option is selected yet
|
|
1680
|
+
if (!this.selectedOption && this.value && this.optionEls.length > 0) {
|
|
1681
|
+
const matchingOption = this.optionEls.find(opt => opt.value === this.value);
|
|
1682
|
+
if (matchingOption) {
|
|
1683
|
+
this.setSelectedOption(matchingOption);
|
|
1684
|
+
// Update the display text to show the option's text content
|
|
1685
|
+
this.displayText = this.getOptionLabel(matchingOption);
|
|
1686
|
+
// Keep this.value as the actual option value
|
|
1687
|
+
// this.value remains unchanged (already matches matchingOption.value)
|
|
1688
|
+
}
|
|
1689
|
+
}
|
|
1690
|
+
// Initialize form value with current value
|
|
1691
|
+
if (this.internals) {
|
|
1692
|
+
try {
|
|
1693
|
+
this.internals.setFormValue((_c = (_b = (_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : this.value) !== null && _c !== void 0 ? _c : '');
|
|
1694
|
+
}
|
|
1695
|
+
catch (e) {
|
|
1696
|
+
// ElementInternals.setFormValue not available in unit tests
|
|
1697
|
+
}
|
|
1698
|
+
}
|
|
1699
|
+
}
|
|
1647
1700
|
handleValueChange() {
|
|
1648
1701
|
this.filterOptions();
|
|
1702
|
+
// Sync with form internals for form association
|
|
1703
|
+
if (this.internals) {
|
|
1704
|
+
try {
|
|
1705
|
+
this.internals.setFormValue(this.value);
|
|
1706
|
+
}
|
|
1707
|
+
catch (e) {
|
|
1708
|
+
// ElementInternals.setFormValue not available in unit tests
|
|
1709
|
+
}
|
|
1710
|
+
}
|
|
1711
|
+
// Find and select option that matches the value (for external value changes)
|
|
1712
|
+
// Only do this if we're not already updating from a selection
|
|
1713
|
+
if (!this.isUpdatingFromSelection && this.value && this.optionEls.length > 0) {
|
|
1714
|
+
const currentSelectedValue = this.selectedOption ? this.selectedOption.value : null;
|
|
1715
|
+
// If the value doesn't match the currently selected option's value, we need to update
|
|
1716
|
+
if (this.value !== currentSelectedValue) {
|
|
1717
|
+
const matchingOption = this.optionEls.find(opt => opt.value === this.value);
|
|
1718
|
+
if (matchingOption) {
|
|
1719
|
+
this.isUpdatingFromSelection = true;
|
|
1720
|
+
this.setSelectedOption(matchingOption);
|
|
1721
|
+
// Update the display text to show the option's text content
|
|
1722
|
+
this.displayText = this.getOptionLabel(matchingOption);
|
|
1723
|
+
// Keep this.value as the actual option value (already correct)
|
|
1724
|
+
this.isUpdatingFromSelection = false;
|
|
1725
|
+
}
|
|
1726
|
+
}
|
|
1727
|
+
}
|
|
1649
1728
|
}
|
|
1650
1729
|
handleSelectedOptionChange() {
|
|
1651
1730
|
// Update the layout content when selected option changes
|
|
1652
1731
|
this.selectedOptionLayoutContent = this.selectedOption && this.isOptionLayout(this.selectedOption)
|
|
1653
1732
|
? this.getOptionLayoutContent(this.selectedOption)
|
|
1654
1733
|
: '';
|
|
1734
|
+
// Update chip properties for automatic rendering when selected option changes
|
|
1735
|
+
this.selectedOptionChipProps = this.selectedOption && this.isOptionChip(this.selectedOption)
|
|
1736
|
+
? this.getOptionChipProps(this.selectedOption)
|
|
1737
|
+
: null;
|
|
1738
|
+
// Update display text when selected option changes
|
|
1739
|
+
if (this.selectedOption) {
|
|
1740
|
+
this.displayText = this.getOptionLabel(this.selectedOption);
|
|
1741
|
+
this.value = this.selectedOption.value;
|
|
1742
|
+
// Update form internals with the actual option value
|
|
1743
|
+
if (this.internals) {
|
|
1744
|
+
try {
|
|
1745
|
+
this.internals.setFormValue(this.selectedOption.value);
|
|
1746
|
+
}
|
|
1747
|
+
catch (e) {
|
|
1748
|
+
// ElementInternals.setFormValue not available in unit tests
|
|
1749
|
+
}
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
else {
|
|
1753
|
+
this.displayText = '';
|
|
1754
|
+
this.value = '';
|
|
1755
|
+
if (this.internals) {
|
|
1756
|
+
try {
|
|
1757
|
+
this.internals.setFormValue('');
|
|
1758
|
+
}
|
|
1759
|
+
catch (e) {
|
|
1760
|
+
// ElementInternals.setFormValue not available in unit tests
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
}
|
|
1655
1764
|
}
|
|
1656
1765
|
updateOptions() {
|
|
1657
1766
|
var _a;
|
|
@@ -1682,9 +1791,29 @@ const PdsCombobox = class {
|
|
|
1682
1791
|
this.allItems.push(el);
|
|
1683
1792
|
}
|
|
1684
1793
|
});
|
|
1685
|
-
// Set initial selected option
|
|
1686
|
-
|
|
1687
|
-
|
|
1794
|
+
// Set initial selected option based on value property
|
|
1795
|
+
let initialSelected = null;
|
|
1796
|
+
// Check if value property matches any option
|
|
1797
|
+
if (this.value) {
|
|
1798
|
+
initialSelected = this.optionEls.find(opt => opt.value === this.value) || null;
|
|
1799
|
+
if (initialSelected) {
|
|
1800
|
+
// Update the display text to show the option's text content
|
|
1801
|
+
this.displayText = this.getOptionLabel(initialSelected);
|
|
1802
|
+
// Keep this.value as the actual option value (already correct)
|
|
1803
|
+
}
|
|
1804
|
+
}
|
|
1805
|
+
// For chip triggers, ensure we always have a selected option
|
|
1806
|
+
if (!initialSelected && this.trigger === 'chip' && this.optionEls.length > 0) {
|
|
1807
|
+
initialSelected = this.optionEls[0]; // Select first option as default
|
|
1808
|
+
this.value = initialSelected.value;
|
|
1809
|
+
this.displayText = this.getOptionLabel(initialSelected);
|
|
1810
|
+
console.warn('PDS Combobox: Chip triggers should always have a selected option. Automatically selected the first option.');
|
|
1811
|
+
}
|
|
1812
|
+
// Update selection if we found a different selected option or if we don't have one
|
|
1813
|
+
if (initialSelected && initialSelected !== this.selectedOption) {
|
|
1814
|
+
this.setSelectedOption(initialSelected);
|
|
1815
|
+
}
|
|
1816
|
+
else if (!this.selectedOption && initialSelected) {
|
|
1688
1817
|
this.setSelectedOption(initialSelected);
|
|
1689
1818
|
}
|
|
1690
1819
|
this.filterOptions();
|
|
@@ -1734,6 +1863,22 @@ const PdsCombobox = class {
|
|
|
1734
1863
|
isOptionLayout(option) {
|
|
1735
1864
|
return this.customOptionLayouts && option.hasAttribute('data-layout');
|
|
1736
1865
|
}
|
|
1866
|
+
// Helper method to check if option has chip attributes (new automatic approach)
|
|
1867
|
+
isOptionChip(option) {
|
|
1868
|
+
return option.hasAttribute('chip-sentiment') ||
|
|
1869
|
+
option.hasAttribute('chip-large') ||
|
|
1870
|
+
option.hasAttribute('chip-icon') ||
|
|
1871
|
+
option.hasAttribute('chip-dot');
|
|
1872
|
+
}
|
|
1873
|
+
// Helper method to get chip properties from option attributes
|
|
1874
|
+
getOptionChipProps(option) {
|
|
1875
|
+
return {
|
|
1876
|
+
sentiment: option.getAttribute('chip-sentiment') || 'neutral',
|
|
1877
|
+
large: option.hasAttribute('chip-large'),
|
|
1878
|
+
icon: option.getAttribute('chip-icon') || undefined,
|
|
1879
|
+
dot: option.hasAttribute('chip-dot')
|
|
1880
|
+
};
|
|
1881
|
+
}
|
|
1737
1882
|
// Helper method to check if option is selected (single source of truth)
|
|
1738
1883
|
isOptionSelected(option) {
|
|
1739
1884
|
return this.selectedOption === option;
|
|
@@ -1741,6 +1886,13 @@ const PdsCombobox = class {
|
|
|
1741
1886
|
// Helper method to set selected option (centralized state management)
|
|
1742
1887
|
setSelectedOption(option) {
|
|
1743
1888
|
this.selectedOption = option;
|
|
1889
|
+
// Immediately update chip properties for automatic rendering to ensure reactivity
|
|
1890
|
+
if (option && this.isOptionChip(option)) {
|
|
1891
|
+
this.selectedOptionChipProps = this.getOptionChipProps(option);
|
|
1892
|
+
}
|
|
1893
|
+
else {
|
|
1894
|
+
this.selectedOptionChipProps = null;
|
|
1895
|
+
}
|
|
1744
1896
|
}
|
|
1745
1897
|
filterOptions() {
|
|
1746
1898
|
// Ensure allItems includes optionEls if not already populated (for edge cases)
|
|
@@ -1751,7 +1903,7 @@ const PdsCombobox = class {
|
|
|
1751
1903
|
this.filteredItems = [...this.allItems];
|
|
1752
1904
|
}
|
|
1753
1905
|
else {
|
|
1754
|
-
const val = this.
|
|
1906
|
+
const val = this.displayText.toLowerCase();
|
|
1755
1907
|
const filteredOptions = this.optionEls.filter(option => {
|
|
1756
1908
|
// For layout options, search both text content and data-search-text attribute
|
|
1757
1909
|
if (this.isOptionLayout(option)) {
|
|
@@ -1805,7 +1957,7 @@ const PdsCombobox = class {
|
|
|
1805
1957
|
left: `${x}px`,
|
|
1806
1958
|
top: `${y}px`,
|
|
1807
1959
|
position: 'absolute',
|
|
1808
|
-
zIndex:
|
|
1960
|
+
zIndex: 'var(--pine-z-index-raised)',
|
|
1809
1961
|
});
|
|
1810
1962
|
});
|
|
1811
1963
|
}
|
|
@@ -1822,6 +1974,27 @@ const PdsCombobox = class {
|
|
|
1822
1974
|
(_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
1823
1975
|
}
|
|
1824
1976
|
}
|
|
1977
|
+
/**
|
|
1978
|
+
* Sets the initial highlighted index when dropdown opens.
|
|
1979
|
+
* If there's a selected option, highlight it. Otherwise, highlight the first option.
|
|
1980
|
+
*/
|
|
1981
|
+
setInitialHighlightedIndex() {
|
|
1982
|
+
const selectableOptions = this.filteredItems.filter(item => item.tagName === 'OPTION');
|
|
1983
|
+
if (selectableOptions.length === 0) {
|
|
1984
|
+
this.highlightedIndex = -1;
|
|
1985
|
+
return;
|
|
1986
|
+
}
|
|
1987
|
+
// If there's a selected option, find its index in the filtered options
|
|
1988
|
+
if (this.selectedOption) {
|
|
1989
|
+
const selectedIndex = selectableOptions.findIndex(option => option === this.selectedOption);
|
|
1990
|
+
if (selectedIndex >= 0) {
|
|
1991
|
+
this.highlightedIndex = selectedIndex;
|
|
1992
|
+
return;
|
|
1993
|
+
}
|
|
1994
|
+
}
|
|
1995
|
+
// No selected option or selected option not in filtered results, highlight first option
|
|
1996
|
+
this.highlightedIndex = 0;
|
|
1997
|
+
}
|
|
1825
1998
|
/**
|
|
1826
1999
|
* Focus management helper - moves focus to the first option when dropdown opens
|
|
1827
2000
|
*/
|
|
@@ -1829,7 +2002,7 @@ const PdsCombobox = class {
|
|
|
1829
2002
|
if (this.isOpen) {
|
|
1830
2003
|
const selectableOptions = this.filteredItems.filter(item => item.tagName === 'OPTION');
|
|
1831
2004
|
if (selectableOptions.length > 0) {
|
|
1832
|
-
this.
|
|
2005
|
+
this.setInitialHighlightedIndex();
|
|
1833
2006
|
// DON'T focus the option elements - keep focus on trigger and use aria-activedescendant
|
|
1834
2007
|
// This prevents the focusout event that was closing the dropdown
|
|
1835
2008
|
// But still call updateOptionFocus for scrolling
|
|
@@ -1848,20 +2021,20 @@ const PdsCombobox = class {
|
|
|
1848
2021
|
this.isArrowKeyNavigationMode = true;
|
|
1849
2022
|
const selectableOptions = this.filteredItems.filter(item => item.tagName === 'OPTION');
|
|
1850
2023
|
if (selectableOptions.length > 0) {
|
|
1851
|
-
this.
|
|
1852
|
-
// For arrow key navigation, actually focus the
|
|
2024
|
+
this.setInitialHighlightedIndex();
|
|
2025
|
+
// For arrow key navigation, actually focus the highlighted option
|
|
1853
2026
|
if (this.listboxEl) {
|
|
1854
2027
|
const optionElements = this.listboxEl.querySelectorAll('[role="option"]');
|
|
1855
|
-
const
|
|
1856
|
-
if (
|
|
2028
|
+
const highlightedOption = optionElements[this.highlightedIndex];
|
|
2029
|
+
if (highlightedOption) {
|
|
1857
2030
|
// Remove tabindex from all options first
|
|
1858
2031
|
optionElements.forEach(option => {
|
|
1859
2032
|
option.setAttribute('tabindex', '-1');
|
|
1860
2033
|
});
|
|
1861
|
-
// Set tabindex and focus on
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
2034
|
+
// Set tabindex and focus on highlighted option
|
|
2035
|
+
highlightedOption.setAttribute('tabindex', '0');
|
|
2036
|
+
highlightedOption.focus();
|
|
2037
|
+
highlightedOption.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
|
|
1865
2038
|
}
|
|
1866
2039
|
}
|
|
1867
2040
|
// Update aria-activedescendant on trigger
|
|
@@ -1927,7 +2100,7 @@ const PdsCombobox = class {
|
|
|
1927
2100
|
}
|
|
1928
2101
|
// Get the label of the selected option
|
|
1929
2102
|
get selectedLabel() {
|
|
1930
|
-
return this.
|
|
2103
|
+
return this.displayText || '';
|
|
1931
2104
|
}
|
|
1932
2105
|
// Get the layout content of the selected option for button trigger
|
|
1933
2106
|
get selectedLayoutContent() {
|
|
@@ -1937,10 +2110,110 @@ const PdsCombobox = class {
|
|
|
1937
2110
|
get selectedHasLayout() {
|
|
1938
2111
|
return this.selectedOption ? this.isOptionLayout(this.selectedOption) : false;
|
|
1939
2112
|
}
|
|
2113
|
+
// Extract chip sentiment from selected option's attributes, layout content, or slotted trigger content
|
|
2114
|
+
get selectedChipSentiment() {
|
|
2115
|
+
// First priority: Check selected option's chip attributes (new automatic approach)
|
|
2116
|
+
if (this.selectedOption && this.isOptionChip(this.selectedOption)) {
|
|
2117
|
+
const sentiment = this.selectedOption.getAttribute('chip-sentiment');
|
|
2118
|
+
if (sentiment)
|
|
2119
|
+
return sentiment;
|
|
2120
|
+
}
|
|
2121
|
+
// Second priority: Check selected option's layout content (existing custom layout approach)
|
|
2122
|
+
if (this.selectedOption && this.isOptionLayout(this.selectedOption)) {
|
|
2123
|
+
const chipElement = this.selectedOption.querySelector('pds-chip');
|
|
2124
|
+
const sentiment = chipElement === null || chipElement === void 0 ? void 0 : chipElement.getAttribute('sentiment');
|
|
2125
|
+
if (sentiment)
|
|
2126
|
+
return sentiment;
|
|
2127
|
+
}
|
|
2128
|
+
// Third priority: Check if we have custom trigger content with a chip (initial state)
|
|
2129
|
+
if (this.customTriggerContent) {
|
|
2130
|
+
const slottedChip = this.el.querySelector('pds-chip[slot="trigger-content"]');
|
|
2131
|
+
if (slottedChip) {
|
|
2132
|
+
const sentiment = slottedChip.getAttribute('sentiment');
|
|
2133
|
+
if (sentiment)
|
|
2134
|
+
return sentiment;
|
|
2135
|
+
}
|
|
2136
|
+
}
|
|
2137
|
+
// Fallback: Use component props
|
|
2138
|
+
return this.chipSentiment;
|
|
2139
|
+
}
|
|
2140
|
+
// Extract chip large from selected option's attributes, layout content, or slotted trigger content
|
|
2141
|
+
get selectedChipLarge() {
|
|
2142
|
+
// First priority: Check selected option's chip attributes (new automatic approach)
|
|
2143
|
+
if (this.selectedOption && this.isOptionChip(this.selectedOption)) {
|
|
2144
|
+
if (this.selectedOption.hasAttribute('chip-large'))
|
|
2145
|
+
return true;
|
|
2146
|
+
}
|
|
2147
|
+
// Second priority: Check selected option's layout content (existing custom layout approach)
|
|
2148
|
+
if (this.selectedOption && this.isOptionLayout(this.selectedOption)) {
|
|
2149
|
+
const chipElement = this.selectedOption.querySelector('pds-chip');
|
|
2150
|
+
if (chipElement === null || chipElement === void 0 ? void 0 : chipElement.hasAttribute('large'))
|
|
2151
|
+
return true;
|
|
2152
|
+
}
|
|
2153
|
+
// Third priority: Check if we have custom trigger content with a chip (initial state)
|
|
2154
|
+
if (this.customTriggerContent) {
|
|
2155
|
+
const slottedChip = this.el.querySelector('pds-chip[slot="trigger-content"]');
|
|
2156
|
+
if (slottedChip && slottedChip.hasAttribute('large')) {
|
|
2157
|
+
return true;
|
|
2158
|
+
}
|
|
2159
|
+
}
|
|
2160
|
+
// Fallback: Use component props
|
|
2161
|
+
return this.chipLarge;
|
|
2162
|
+
}
|
|
2163
|
+
// Extract chip icon from selected option's attributes, layout content, or slotted trigger content
|
|
2164
|
+
get selectedChipIcon() {
|
|
2165
|
+
// First priority: Check selected option's chip attributes (new automatic approach)
|
|
2166
|
+
if (this.selectedOption && this.isOptionChip(this.selectedOption)) {
|
|
2167
|
+
const icon = this.selectedOption.getAttribute('chip-icon');
|
|
2168
|
+
if (icon)
|
|
2169
|
+
return icon;
|
|
2170
|
+
}
|
|
2171
|
+
// Second priority: Check selected option's layout content (existing custom layout approach)
|
|
2172
|
+
if (this.selectedOption && this.isOptionLayout(this.selectedOption)) {
|
|
2173
|
+
const chipElement = this.selectedOption.querySelector('pds-chip');
|
|
2174
|
+
const icon = chipElement === null || chipElement === void 0 ? void 0 : chipElement.getAttribute('icon');
|
|
2175
|
+
if (icon)
|
|
2176
|
+
return icon;
|
|
2177
|
+
}
|
|
2178
|
+
// Third priority: Check if we have custom trigger content with a chip (initial state)
|
|
2179
|
+
if (this.customTriggerContent) {
|
|
2180
|
+
const slottedChip = this.el.querySelector('pds-chip[slot="trigger-content"]');
|
|
2181
|
+
if (slottedChip) {
|
|
2182
|
+
const icon = slottedChip.getAttribute('icon');
|
|
2183
|
+
if (icon)
|
|
2184
|
+
return icon;
|
|
2185
|
+
}
|
|
2186
|
+
}
|
|
2187
|
+
// Fallback: Use component props
|
|
2188
|
+
return this.chipIcon;
|
|
2189
|
+
}
|
|
2190
|
+
// Extract chip dot from selected option's attributes, layout content, or slotted trigger content
|
|
2191
|
+
get selectedChipDot() {
|
|
2192
|
+
// First priority: Check selected option's chip attributes (new automatic approach)
|
|
2193
|
+
if (this.selectedOption && this.isOptionChip(this.selectedOption)) {
|
|
2194
|
+
if (this.selectedOption.hasAttribute('chip-dot'))
|
|
2195
|
+
return true;
|
|
2196
|
+
}
|
|
2197
|
+
// Second priority: Check selected option's layout content (existing custom layout approach)
|
|
2198
|
+
if (this.selectedOption && this.isOptionLayout(this.selectedOption)) {
|
|
2199
|
+
const chipElement = this.selectedOption.querySelector('pds-chip');
|
|
2200
|
+
if (chipElement === null || chipElement === void 0 ? void 0 : chipElement.hasAttribute('dot'))
|
|
2201
|
+
return true;
|
|
2202
|
+
}
|
|
2203
|
+
// Third priority: Check if we have custom trigger content with a chip (initial state)
|
|
2204
|
+
if (this.customTriggerContent) {
|
|
2205
|
+
const slottedChip = this.el.querySelector('pds-chip[slot="trigger-content"]');
|
|
2206
|
+
if (slottedChip && slottedChip.hasAttribute('dot')) {
|
|
2207
|
+
return true;
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
// Fallback: Use component props
|
|
2211
|
+
return this.chipDot;
|
|
2212
|
+
}
|
|
1940
2213
|
handleOptionClick(option) {
|
|
1941
2214
|
// Update reactive state - single source of truth
|
|
2215
|
+
// The @Watch('selectedOption') will handle displayText, value, and form internals
|
|
1942
2216
|
this.setSelectedOption(option);
|
|
1943
|
-
this.value = this.getOptionLabel(option);
|
|
1944
2217
|
this.isOpen = false;
|
|
1945
2218
|
this.pdsComboboxChange.emit({ value: option.value });
|
|
1946
2219
|
}
|
|
@@ -1964,12 +2237,14 @@ const PdsCombobox = class {
|
|
|
1964
2237
|
const isSelected = this.isOptionSelected(option);
|
|
1965
2238
|
const isHighlighted = this.highlightedIndex === optionIndex;
|
|
1966
2239
|
const isLayout = this.isOptionLayout(option);
|
|
2240
|
+
const isChip = this.isOptionChip(option);
|
|
1967
2241
|
const currentOptionIndex = optionIndex++;
|
|
1968
|
-
return (index.h("li", { key: option.value, id: `pds-combobox-option-${currentOptionIndex}`, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-setsize": selectableOptions.length, "aria-posinset": currentOptionIndex + 1, "aria-label": isLayout ? option.getAttribute('aria-label') || this.getOptionLabel(option) : undefined, tabindex: isHighlighted ? '0' : '-1', class: {
|
|
2242
|
+
return (index.h("li", { key: option.value, id: `pds-combobox-option-${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: isHighlighted ? '0' : '-1', class: {
|
|
1969
2243
|
'pds-combobox__option': true,
|
|
1970
2244
|
'pds-combobox__option--highlighted': isHighlighted,
|
|
1971
2245
|
'pds-combobox__option--layout': isLayout,
|
|
1972
|
-
|
|
2246
|
+
'pds-combobox__option--chip': isChip,
|
|
2247
|
+
}, "data-option-index": currentOptionIndex, onMouseDown: this.onOptionMouseDown, onClick: this.onOptionClick, onMouseEnter: this.onOptionMouseEnter, onKeyDown: this.onOptionKeyDown }, isLayout ? (index.h("pds-box", { class: "pds-combobox__option-layout-wrapper", innerHTML: this.getOptionLayoutContent(option) })) : isChip ? (this.renderOptionChip(option)) : (this.getOptionLabel(option)), isSelected && index.h("pds-icon", { icon: "check", size: "regular", class: "pds-combobox__option-check" })));
|
|
1973
2248
|
}
|
|
1974
2249
|
return null;
|
|
1975
2250
|
})));
|
|
@@ -1990,6 +2265,23 @@ const PdsCombobox = class {
|
|
|
1990
2265
|
shouldShowLayoutContent() {
|
|
1991
2266
|
return this.selectedHasLayout && !!this.selectedLayoutContent;
|
|
1992
2267
|
}
|
|
2268
|
+
// Helper method to build chip trigger CSS classes
|
|
2269
|
+
getChipTriggerClass() {
|
|
2270
|
+
const classes = ['pds-combobox__chip-trigger'];
|
|
2271
|
+
// Add sentiment class
|
|
2272
|
+
classes.push(`pds-combobox__chip-trigger--${this.selectedChipSentiment}`);
|
|
2273
|
+
// Always use dropdown variant for chip triggers
|
|
2274
|
+
classes.push('pds-combobox__chip-trigger--dropdown');
|
|
2275
|
+
// Add large class if needed
|
|
2276
|
+
if (this.selectedChipLarge) {
|
|
2277
|
+
classes.push('pds-combobox__chip-trigger--large');
|
|
2278
|
+
}
|
|
2279
|
+
// Add dot class if needed
|
|
2280
|
+
if (this.selectedChipDot) {
|
|
2281
|
+
classes.push('pds-combobox__chip-trigger--dot');
|
|
2282
|
+
}
|
|
2283
|
+
return classes.join(' ');
|
|
2284
|
+
}
|
|
1993
2285
|
renderButtonTriggerContent() {
|
|
1994
2286
|
// Case 1: Custom trigger content with layout priority
|
|
1995
2287
|
if (this.customTriggerContent) {
|
|
@@ -2006,13 +2298,79 @@ const PdsCombobox = class {
|
|
|
2006
2298
|
// Case 3: Standard mode with default text content
|
|
2007
2299
|
return [this.renderDefaultContent(), this.renderCaretIcon()];
|
|
2008
2300
|
}
|
|
2301
|
+
renderChipTriggerContent() {
|
|
2302
|
+
// Case 1: Custom trigger content with layout priority
|
|
2303
|
+
if (this.customTriggerContent) {
|
|
2304
|
+
if (this.shouldShowLayoutContent()) {
|
|
2305
|
+
// When using custom layouts, the chip handles its own dropdown arrow
|
|
2306
|
+
return this.renderChipTriggerLayoutContent();
|
|
2307
|
+
}
|
|
2308
|
+
// Fall back to slot content when no layout is available - chip handles its own dropdown arrow
|
|
2309
|
+
return index.h("slot", { name: "trigger-content" });
|
|
2310
|
+
}
|
|
2311
|
+
// Case 2: Standard mode with layout content
|
|
2312
|
+
if (this.shouldShowLayoutContent()) {
|
|
2313
|
+
// When using custom layouts, the chip handles its own dropdown arrow
|
|
2314
|
+
return this.renderChipTriggerLayoutContent();
|
|
2315
|
+
}
|
|
2316
|
+
// Case 3: Automatic chip mode - selected option has chip attributes
|
|
2317
|
+
if (this.selectedOption && this.selectedOptionChipProps) {
|
|
2318
|
+
// Render as chip automatically - chip handles its own dropdown arrow
|
|
2319
|
+
return this.renderSelectedOptionAsChip();
|
|
2320
|
+
}
|
|
2321
|
+
// Case 4: Standard mode with default text content
|
|
2322
|
+
return [
|
|
2323
|
+
this.renderChipTriggerDefaultContent(),
|
|
2324
|
+
this.renderCaretIcon()
|
|
2325
|
+
];
|
|
2326
|
+
}
|
|
2327
|
+
// Helper method to render selected option as chip for trigger (automatic approach)
|
|
2328
|
+
renderSelectedOptionAsChip() {
|
|
2329
|
+
if (!this.selectedOption || !this.selectedOptionChipProps)
|
|
2330
|
+
return null;
|
|
2331
|
+
return (index.h("pds-chip", { sentiment: this.selectedOptionChipProps.sentiment, variant: "dropdown" // Always use dropdown variant for triggers
|
|
2332
|
+
,
|
|
2333
|
+
large: this.selectedOptionChipProps.large, icon: this.selectedOptionChipProps.icon, dot: this.selectedOptionChipProps.dot, class: "pds-combobox__chip-trigger-auto" }, this.getOptionLabel(this.selectedOption)));
|
|
2334
|
+
}
|
|
2335
|
+
// Helper method to render chip trigger layout content
|
|
2336
|
+
renderChipTriggerLayoutContent() {
|
|
2337
|
+
return (index.h("div", { class: "pds-combobox__chip-trigger-layout-wrapper", innerHTML: this.getModifiedLayoutContentForTrigger() }));
|
|
2338
|
+
}
|
|
2339
|
+
// Helper method to modify layout content for trigger use (ensure dropdown variant)
|
|
2340
|
+
getModifiedLayoutContentForTrigger() {
|
|
2341
|
+
let content = this.selectedLayoutContent;
|
|
2342
|
+
// If the content contains a pds-chip, ensure it has variant="dropdown"
|
|
2343
|
+
if (content.includes('<pds-chip')) {
|
|
2344
|
+
// Use a temporary div to parse and modify the HTML
|
|
2345
|
+
const tempDiv = document.createElement('div');
|
|
2346
|
+
tempDiv.innerHTML = content;
|
|
2347
|
+
const chipElement = tempDiv.querySelector('pds-chip');
|
|
2348
|
+
if (chipElement) {
|
|
2349
|
+
chipElement.setAttribute('variant', 'dropdown');
|
|
2350
|
+
content = tempDiv.innerHTML;
|
|
2351
|
+
}
|
|
2352
|
+
}
|
|
2353
|
+
return content;
|
|
2354
|
+
}
|
|
2355
|
+
// Helper method to render chip trigger default content
|
|
2356
|
+
renderChipTriggerDefaultContent() {
|
|
2357
|
+
return (index.h("span", { class: "pds-combobox__chip-trigger-label" }, this.selectedChipIcon && index.h("pds-icon", { icon: this.selectedChipIcon, class: "pds-combobox__chip-trigger-icon" }), this.selectedLabel || this.placeholder));
|
|
2358
|
+
}
|
|
2359
|
+
// Helper method to render option as chip (new automatic approach)
|
|
2360
|
+
renderOptionChip(option) {
|
|
2361
|
+
const chipProps = this.getOptionChipProps(option);
|
|
2362
|
+
return (index.h("pds-chip", { sentiment: chipProps.sentiment, variant: "text" // Dropdown options use text variant, not dropdown
|
|
2363
|
+
,
|
|
2364
|
+
large: chipProps.large, icon: chipProps.icon, dot: chipProps.dot, class: "pds-combobox__option-chip" }, this.getOptionLabel(option)));
|
|
2365
|
+
}
|
|
2009
2366
|
render() {
|
|
2010
2367
|
const triggerClass = `pds-combobox__button-trigger pds-combobox__button-trigger--${this.triggerVariant}`;
|
|
2011
|
-
return (index.h(index.Host, { key: '
|
|
2368
|
+
return (index.h(index.Host, { key: 'd62992abd6eae05cfff52cfc0272490ca6370291' }, index.h("div", { key: 'affff971535065b7352daee494742bf7b65a61f4', class: "pds-combobox", tabIndex: -1, onFocusout: this.onComboboxFocusOut }, this.label && (index.h("label", { key: 'c27f88928932bc4535698cb88595b1559cb22e55', htmlFor: this.componentId, class: "pds-combobox__label" }, index.h("span", { key: '0b65e67897735819cb2a4dc7d6d7d355af2f28d5', class: this.hideLabel ? 'visually-hidden' : '' }, this.label))), this.trigger === 'input' ? (index.h("div", { class: "pds-combobox__input-wrapper", style: { width: this.triggerWidth } }, index.h("input", { ref: el => {
|
|
2012
2369
|
this.inputEl = el;
|
|
2013
2370
|
this.triggerEl = el;
|
|
2014
|
-
}, class: "pds-combobox__input", type: "text", role: "combobox", "aria-autocomplete": "list", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${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.
|
|
2371
|
+
}, class: "pds-combobox__input", type: "text", role: "combobox", "aria-autocomplete": "list", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${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" }), index.h("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (index.h("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${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())) : (index.h("div", { class: triggerClass, style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": "pds-combobox-listbox", "aria-activedescendant": this.isOpen && this.highlightedIndex >= 0 ? `pds-combobox-option-${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())), index.h("div", { key: '47c259c2bc5b6f4f1d249d9bddd476b11c5a90fe', style: { display: 'none' } }, index.h("slot", { key: '83355a804fe978b6fb58838b4174bc815cf2f933', onSlotchange: () => this.updateOptions() })), this.renderDropdown())));
|
|
2015
2372
|
}
|
|
2373
|
+
static get formAssociated() { return true; }
|
|
2016
2374
|
get el() { return index.getElement(this); }
|
|
2017
2375
|
static get watchers() { return {
|
|
2018
2376
|
"value": ["handleValueChange"],
|