@pine-ds/core 3.7.0 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/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 +1 -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-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-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-BVDuy7iI.system.js.map +1 -0
- 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-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-bac9fcfa.entry.js +2 -0
- package/dist/pine-core/p-bac9fcfa.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-d69f0f51.system.entry.js +2 -0
- package/dist/pine-core/p-d69f0f51.system.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
|
@@ -1336,7 +1336,7 @@ function createDOMPurify() {
|
|
|
1336
1336
|
}
|
|
1337
1337
|
var purify = createDOMPurify();
|
|
1338
1338
|
|
|
1339
|
-
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)}";
|
|
1339
|
+
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)}";
|
|
1340
1340
|
|
|
1341
1341
|
const PdsCombobox = class {
|
|
1342
1342
|
constructor(hostRef) {
|
|
@@ -1380,7 +1380,7 @@ const PdsCombobox = class {
|
|
|
1380
1380
|
*/
|
|
1381
1381
|
this.mode = 'filter';
|
|
1382
1382
|
/**
|
|
1383
|
-
* Determines the combobox trigger: 'input' (editable input)
|
|
1383
|
+
* Determines the combobox trigger: 'input' (editable input), 'button' (button-like, non-editable), or 'chip' (chip-like, non-editable).
|
|
1384
1384
|
* @default 'input'
|
|
1385
1385
|
*/
|
|
1386
1386
|
this.trigger = 'input';
|
|
@@ -1394,10 +1394,29 @@ const PdsCombobox = class {
|
|
|
1394
1394
|
* @default 'secondary'
|
|
1395
1395
|
*/
|
|
1396
1396
|
this.triggerVariant = 'secondary';
|
|
1397
|
+
/**
|
|
1398
|
+
* The sentiment for the chip trigger. Matches Pine chip sentiments.
|
|
1399
|
+
* @default 'neutral'
|
|
1400
|
+
*/
|
|
1401
|
+
this.chipSentiment = 'neutral';
|
|
1402
|
+
/**
|
|
1403
|
+
* Whether the chip trigger should be displayed in a larger size.
|
|
1404
|
+
* @default false
|
|
1405
|
+
*/
|
|
1406
|
+
this.chipLarge = false;
|
|
1407
|
+
/**
|
|
1408
|
+
* Whether a dot should be displayed on the chip trigger.
|
|
1409
|
+
* @default false
|
|
1410
|
+
*/
|
|
1411
|
+
this.chipDot = false;
|
|
1397
1412
|
/**
|
|
1398
1413
|
* The value of the combobox input.
|
|
1399
1414
|
*/
|
|
1400
1415
|
this.value = '';
|
|
1416
|
+
/**
|
|
1417
|
+
* Internal state for the display text shown in the input/trigger
|
|
1418
|
+
*/
|
|
1419
|
+
this.displayText = '';
|
|
1401
1420
|
/**
|
|
1402
1421
|
* Internal state for filtered options and group labels
|
|
1403
1422
|
*/
|
|
@@ -1418,11 +1437,16 @@ const PdsCombobox = class {
|
|
|
1418
1437
|
* Internal state for the sanitized layout content of the selected option
|
|
1419
1438
|
*/
|
|
1420
1439
|
this.selectedOptionLayoutContent = '';
|
|
1440
|
+
/**
|
|
1441
|
+
* Internal state to track chip properties for automatic rendering
|
|
1442
|
+
*/
|
|
1443
|
+
this.selectedOptionChipProps = null;
|
|
1421
1444
|
this.optionEls = [];
|
|
1422
1445
|
this.allItems = [];
|
|
1446
|
+
this.isUpdatingFromSelection = false;
|
|
1423
1447
|
this.handleInput = (e) => {
|
|
1424
1448
|
const target = e.target;
|
|
1425
|
-
this.
|
|
1449
|
+
this.displayText = target.value;
|
|
1426
1450
|
this.isOpen = true;
|
|
1427
1451
|
this.filterOptions();
|
|
1428
1452
|
setTimeout(() => this.openDropdownPositioning(), 0);
|
|
@@ -1432,6 +1456,7 @@ const PdsCombobox = class {
|
|
|
1432
1456
|
if (!this.isOpen) {
|
|
1433
1457
|
this.isOpen = true;
|
|
1434
1458
|
this.filterOptions();
|
|
1459
|
+
this.setInitialHighlightedIndex();
|
|
1435
1460
|
setTimeout(() => this.openDropdownPositioning(), 0);
|
|
1436
1461
|
}
|
|
1437
1462
|
};
|
|
@@ -1441,10 +1466,7 @@ const PdsCombobox = class {
|
|
|
1441
1466
|
this.isOpen = true;
|
|
1442
1467
|
this.filterOptions();
|
|
1443
1468
|
// Set highlighted index immediately for testing
|
|
1444
|
-
|
|
1445
|
-
if (selectableOptions.length > 0) {
|
|
1446
|
-
this.highlightedIndex = 0;
|
|
1447
|
-
}
|
|
1469
|
+
this.setInitialHighlightedIndex();
|
|
1448
1470
|
setTimeout(() => {
|
|
1449
1471
|
this.openDropdownPositioning();
|
|
1450
1472
|
// For input trigger, keep focus on input and use aria-activedescendant
|
|
@@ -1523,6 +1545,13 @@ const PdsCombobox = class {
|
|
|
1523
1545
|
this.restoreFocusToTrigger();
|
|
1524
1546
|
}
|
|
1525
1547
|
break;
|
|
1548
|
+
case ' ':
|
|
1549
|
+
e.preventDefault();
|
|
1550
|
+
if (this.highlightedIndex >= 0 && this.highlightedIndex < selectableOptions.length) {
|
|
1551
|
+
this.handleOptionClick(selectableOptions[this.highlightedIndex]);
|
|
1552
|
+
this.restoreFocusToTrigger();
|
|
1553
|
+
}
|
|
1554
|
+
break;
|
|
1526
1555
|
case 'Escape':
|
|
1527
1556
|
e.preventDefault();
|
|
1528
1557
|
this.isOpen = false;
|
|
@@ -1567,12 +1596,9 @@ const PdsCombobox = class {
|
|
|
1567
1596
|
if (this.isOpen) {
|
|
1568
1597
|
this.filterOptions();
|
|
1569
1598
|
// Set highlighted index and prepare for keyboard navigation
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
// For button trigger, prepare for arrow-key navigation mode
|
|
1574
|
-
this.isArrowKeyNavigationMode = true;
|
|
1575
|
-
}
|
|
1599
|
+
this.setInitialHighlightedIndex();
|
|
1600
|
+
// For button trigger, prepare for arrow-key navigation mode
|
|
1601
|
+
this.isArrowKeyNavigationMode = true;
|
|
1576
1602
|
setTimeout(() => this.openDropdownPositioning(), 0);
|
|
1577
1603
|
}
|
|
1578
1604
|
else {
|
|
@@ -1588,10 +1614,7 @@ const PdsCombobox = class {
|
|
|
1588
1614
|
this.isOpen = true;
|
|
1589
1615
|
this.filterOptions();
|
|
1590
1616
|
// Set highlighted index immediately
|
|
1591
|
-
|
|
1592
|
-
if (selectableOptions.length > 0) {
|
|
1593
|
-
this.highlightedIndex = 0;
|
|
1594
|
-
}
|
|
1617
|
+
this.setInitialHighlightedIndex();
|
|
1595
1618
|
setTimeout(() => {
|
|
1596
1619
|
this.openDropdownPositioning();
|
|
1597
1620
|
// For all button trigger keyboard opening, focus the first option so subsequent navigation works
|
|
@@ -1632,24 +1655,110 @@ const PdsCombobox = class {
|
|
|
1632
1655
|
this.highlightedIndex = -1;
|
|
1633
1656
|
this.isArrowKeyNavigationMode = false; // Reset arrow-key navigation mode
|
|
1634
1657
|
this.updateAriaActiveDescendant(); // Clear aria-activedescendant
|
|
1635
|
-
// If there's a selected option but the
|
|
1636
|
-
if (this.selectedOption && this.
|
|
1637
|
-
this.
|
|
1658
|
+
// If there's a selected option but the display text doesn't match, restore the selected option's display text
|
|
1659
|
+
if (this.selectedOption && this.displayText !== this.getOptionLabel(this.selectedOption)) {
|
|
1660
|
+
this.displayText = this.getOptionLabel(this.selectedOption);
|
|
1661
|
+
// The @Watch('selectedOption') will handle value and form internals if needed
|
|
1638
1662
|
}
|
|
1639
1663
|
}
|
|
1640
1664
|
};
|
|
1641
1665
|
}
|
|
1666
|
+
connectedCallback() {
|
|
1667
|
+
// Initialize ElementInternals for form association
|
|
1668
|
+
if (this.el.attachInternals) {
|
|
1669
|
+
this.internals = this.el.attachInternals();
|
|
1670
|
+
}
|
|
1671
|
+
}
|
|
1642
1672
|
componentWillLoad() {
|
|
1643
1673
|
this.updateOptions();
|
|
1644
1674
|
}
|
|
1675
|
+
componentDidLoad() {
|
|
1676
|
+
var _a, _b, _c;
|
|
1677
|
+
// Check for value-based preselection if no option is selected yet
|
|
1678
|
+
if (!this.selectedOption && this.value && this.optionEls.length > 0) {
|
|
1679
|
+
const matchingOption = this.optionEls.find(opt => opt.value === this.value);
|
|
1680
|
+
if (matchingOption) {
|
|
1681
|
+
this.setSelectedOption(matchingOption);
|
|
1682
|
+
// Update the display text to show the option's text content
|
|
1683
|
+
this.displayText = this.getOptionLabel(matchingOption);
|
|
1684
|
+
// Keep this.value as the actual option value
|
|
1685
|
+
// this.value remains unchanged (already matches matchingOption.value)
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1688
|
+
// Initialize form value with current value
|
|
1689
|
+
if (this.internals) {
|
|
1690
|
+
try {
|
|
1691
|
+
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 : '');
|
|
1692
|
+
}
|
|
1693
|
+
catch (e) {
|
|
1694
|
+
// ElementInternals.setFormValue not available in unit tests
|
|
1695
|
+
}
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1645
1698
|
handleValueChange() {
|
|
1646
1699
|
this.filterOptions();
|
|
1700
|
+
// Sync with form internals for form association
|
|
1701
|
+
if (this.internals) {
|
|
1702
|
+
try {
|
|
1703
|
+
this.internals.setFormValue(this.value);
|
|
1704
|
+
}
|
|
1705
|
+
catch (e) {
|
|
1706
|
+
// ElementInternals.setFormValue not available in unit tests
|
|
1707
|
+
}
|
|
1708
|
+
}
|
|
1709
|
+
// Find and select option that matches the value (for external value changes)
|
|
1710
|
+
// Only do this if we're not already updating from a selection
|
|
1711
|
+
if (!this.isUpdatingFromSelection && this.value && this.optionEls.length > 0) {
|
|
1712
|
+
const currentSelectedValue = this.selectedOption ? this.selectedOption.value : null;
|
|
1713
|
+
// If the value doesn't match the currently selected option's value, we need to update
|
|
1714
|
+
if (this.value !== currentSelectedValue) {
|
|
1715
|
+
const matchingOption = this.optionEls.find(opt => opt.value === this.value);
|
|
1716
|
+
if (matchingOption) {
|
|
1717
|
+
this.isUpdatingFromSelection = true;
|
|
1718
|
+
this.setSelectedOption(matchingOption);
|
|
1719
|
+
// Update the display text to show the option's text content
|
|
1720
|
+
this.displayText = this.getOptionLabel(matchingOption);
|
|
1721
|
+
// Keep this.value as the actual option value (already correct)
|
|
1722
|
+
this.isUpdatingFromSelection = false;
|
|
1723
|
+
}
|
|
1724
|
+
}
|
|
1725
|
+
}
|
|
1647
1726
|
}
|
|
1648
1727
|
handleSelectedOptionChange() {
|
|
1649
1728
|
// Update the layout content when selected option changes
|
|
1650
1729
|
this.selectedOptionLayoutContent = this.selectedOption && this.isOptionLayout(this.selectedOption)
|
|
1651
1730
|
? this.getOptionLayoutContent(this.selectedOption)
|
|
1652
1731
|
: '';
|
|
1732
|
+
// Update chip properties for automatic rendering when selected option changes
|
|
1733
|
+
this.selectedOptionChipProps = this.selectedOption && this.isOptionChip(this.selectedOption)
|
|
1734
|
+
? this.getOptionChipProps(this.selectedOption)
|
|
1735
|
+
: null;
|
|
1736
|
+
// Update display text when selected option changes
|
|
1737
|
+
if (this.selectedOption) {
|
|
1738
|
+
this.displayText = this.getOptionLabel(this.selectedOption);
|
|
1739
|
+
this.value = this.selectedOption.value;
|
|
1740
|
+
// Update form internals with the actual option value
|
|
1741
|
+
if (this.internals) {
|
|
1742
|
+
try {
|
|
1743
|
+
this.internals.setFormValue(this.selectedOption.value);
|
|
1744
|
+
}
|
|
1745
|
+
catch (e) {
|
|
1746
|
+
// ElementInternals.setFormValue not available in unit tests
|
|
1747
|
+
}
|
|
1748
|
+
}
|
|
1749
|
+
}
|
|
1750
|
+
else {
|
|
1751
|
+
this.displayText = '';
|
|
1752
|
+
this.value = '';
|
|
1753
|
+
if (this.internals) {
|
|
1754
|
+
try {
|
|
1755
|
+
this.internals.setFormValue('');
|
|
1756
|
+
}
|
|
1757
|
+
catch (e) {
|
|
1758
|
+
// ElementInternals.setFormValue not available in unit tests
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1761
|
+
}
|
|
1653
1762
|
}
|
|
1654
1763
|
updateOptions() {
|
|
1655
1764
|
var _a;
|
|
@@ -1680,9 +1789,29 @@ const PdsCombobox = class {
|
|
|
1680
1789
|
this.allItems.push(el);
|
|
1681
1790
|
}
|
|
1682
1791
|
});
|
|
1683
|
-
// Set initial selected option
|
|
1684
|
-
|
|
1685
|
-
|
|
1792
|
+
// Set initial selected option based on value property
|
|
1793
|
+
let initialSelected = null;
|
|
1794
|
+
// Check if value property matches any option
|
|
1795
|
+
if (this.value) {
|
|
1796
|
+
initialSelected = this.optionEls.find(opt => opt.value === this.value) || null;
|
|
1797
|
+
if (initialSelected) {
|
|
1798
|
+
// Update the display text to show the option's text content
|
|
1799
|
+
this.displayText = this.getOptionLabel(initialSelected);
|
|
1800
|
+
// Keep this.value as the actual option value (already correct)
|
|
1801
|
+
}
|
|
1802
|
+
}
|
|
1803
|
+
// For chip triggers, ensure we always have a selected option
|
|
1804
|
+
if (!initialSelected && this.trigger === 'chip' && this.optionEls.length > 0) {
|
|
1805
|
+
initialSelected = this.optionEls[0]; // Select first option as default
|
|
1806
|
+
this.value = initialSelected.value;
|
|
1807
|
+
this.displayText = this.getOptionLabel(initialSelected);
|
|
1808
|
+
console.warn('PDS Combobox: Chip triggers should always have a selected option. Automatically selected the first option.');
|
|
1809
|
+
}
|
|
1810
|
+
// Update selection if we found a different selected option or if we don't have one
|
|
1811
|
+
if (initialSelected && initialSelected !== this.selectedOption) {
|
|
1812
|
+
this.setSelectedOption(initialSelected);
|
|
1813
|
+
}
|
|
1814
|
+
else if (!this.selectedOption && initialSelected) {
|
|
1686
1815
|
this.setSelectedOption(initialSelected);
|
|
1687
1816
|
}
|
|
1688
1817
|
this.filterOptions();
|
|
@@ -1732,6 +1861,22 @@ const PdsCombobox = class {
|
|
|
1732
1861
|
isOptionLayout(option) {
|
|
1733
1862
|
return this.customOptionLayouts && option.hasAttribute('data-layout');
|
|
1734
1863
|
}
|
|
1864
|
+
// Helper method to check if option has chip attributes (new automatic approach)
|
|
1865
|
+
isOptionChip(option) {
|
|
1866
|
+
return option.hasAttribute('chip-sentiment') ||
|
|
1867
|
+
option.hasAttribute('chip-large') ||
|
|
1868
|
+
option.hasAttribute('chip-icon') ||
|
|
1869
|
+
option.hasAttribute('chip-dot');
|
|
1870
|
+
}
|
|
1871
|
+
// Helper method to get chip properties from option attributes
|
|
1872
|
+
getOptionChipProps(option) {
|
|
1873
|
+
return {
|
|
1874
|
+
sentiment: option.getAttribute('chip-sentiment') || 'neutral',
|
|
1875
|
+
large: option.hasAttribute('chip-large'),
|
|
1876
|
+
icon: option.getAttribute('chip-icon') || undefined,
|
|
1877
|
+
dot: option.hasAttribute('chip-dot')
|
|
1878
|
+
};
|
|
1879
|
+
}
|
|
1735
1880
|
// Helper method to check if option is selected (single source of truth)
|
|
1736
1881
|
isOptionSelected(option) {
|
|
1737
1882
|
return this.selectedOption === option;
|
|
@@ -1739,6 +1884,13 @@ const PdsCombobox = class {
|
|
|
1739
1884
|
// Helper method to set selected option (centralized state management)
|
|
1740
1885
|
setSelectedOption(option) {
|
|
1741
1886
|
this.selectedOption = option;
|
|
1887
|
+
// Immediately update chip properties for automatic rendering to ensure reactivity
|
|
1888
|
+
if (option && this.isOptionChip(option)) {
|
|
1889
|
+
this.selectedOptionChipProps = this.getOptionChipProps(option);
|
|
1890
|
+
}
|
|
1891
|
+
else {
|
|
1892
|
+
this.selectedOptionChipProps = null;
|
|
1893
|
+
}
|
|
1742
1894
|
}
|
|
1743
1895
|
filterOptions() {
|
|
1744
1896
|
// Ensure allItems includes optionEls if not already populated (for edge cases)
|
|
@@ -1749,7 +1901,7 @@ const PdsCombobox = class {
|
|
|
1749
1901
|
this.filteredItems = [...this.allItems];
|
|
1750
1902
|
}
|
|
1751
1903
|
else {
|
|
1752
|
-
const val = this.
|
|
1904
|
+
const val = this.displayText.toLowerCase();
|
|
1753
1905
|
const filteredOptions = this.optionEls.filter(option => {
|
|
1754
1906
|
// For layout options, search both text content and data-search-text attribute
|
|
1755
1907
|
if (this.isOptionLayout(option)) {
|
|
@@ -1803,7 +1955,7 @@ const PdsCombobox = class {
|
|
|
1803
1955
|
left: `${x}px`,
|
|
1804
1956
|
top: `${y}px`,
|
|
1805
1957
|
position: 'absolute',
|
|
1806
|
-
zIndex:
|
|
1958
|
+
zIndex: 'var(--pine-z-index-raised)',
|
|
1807
1959
|
});
|
|
1808
1960
|
});
|
|
1809
1961
|
}
|
|
@@ -1820,6 +1972,27 @@ const PdsCombobox = class {
|
|
|
1820
1972
|
(_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
1821
1973
|
}
|
|
1822
1974
|
}
|
|
1975
|
+
/**
|
|
1976
|
+
* Sets the initial highlighted index when dropdown opens.
|
|
1977
|
+
* If there's a selected option, highlight it. Otherwise, highlight the first option.
|
|
1978
|
+
*/
|
|
1979
|
+
setInitialHighlightedIndex() {
|
|
1980
|
+
const selectableOptions = this.filteredItems.filter(item => item.tagName === 'OPTION');
|
|
1981
|
+
if (selectableOptions.length === 0) {
|
|
1982
|
+
this.highlightedIndex = -1;
|
|
1983
|
+
return;
|
|
1984
|
+
}
|
|
1985
|
+
// If there's a selected option, find its index in the filtered options
|
|
1986
|
+
if (this.selectedOption) {
|
|
1987
|
+
const selectedIndex = selectableOptions.findIndex(option => option === this.selectedOption);
|
|
1988
|
+
if (selectedIndex >= 0) {
|
|
1989
|
+
this.highlightedIndex = selectedIndex;
|
|
1990
|
+
return;
|
|
1991
|
+
}
|
|
1992
|
+
}
|
|
1993
|
+
// No selected option or selected option not in filtered results, highlight first option
|
|
1994
|
+
this.highlightedIndex = 0;
|
|
1995
|
+
}
|
|
1823
1996
|
/**
|
|
1824
1997
|
* Focus management helper - moves focus to the first option when dropdown opens
|
|
1825
1998
|
*/
|
|
@@ -1827,7 +2000,7 @@ const PdsCombobox = class {
|
|
|
1827
2000
|
if (this.isOpen) {
|
|
1828
2001
|
const selectableOptions = this.filteredItems.filter(item => item.tagName === 'OPTION');
|
|
1829
2002
|
if (selectableOptions.length > 0) {
|
|
1830
|
-
this.
|
|
2003
|
+
this.setInitialHighlightedIndex();
|
|
1831
2004
|
// DON'T focus the option elements - keep focus on trigger and use aria-activedescendant
|
|
1832
2005
|
// This prevents the focusout event that was closing the dropdown
|
|
1833
2006
|
// But still call updateOptionFocus for scrolling
|
|
@@ -1846,20 +2019,20 @@ const PdsCombobox = class {
|
|
|
1846
2019
|
this.isArrowKeyNavigationMode = true;
|
|
1847
2020
|
const selectableOptions = this.filteredItems.filter(item => item.tagName === 'OPTION');
|
|
1848
2021
|
if (selectableOptions.length > 0) {
|
|
1849
|
-
this.
|
|
1850
|
-
// For arrow key navigation, actually focus the
|
|
2022
|
+
this.setInitialHighlightedIndex();
|
|
2023
|
+
// For arrow key navigation, actually focus the highlighted option
|
|
1851
2024
|
if (this.listboxEl) {
|
|
1852
2025
|
const optionElements = this.listboxEl.querySelectorAll('[role="option"]');
|
|
1853
|
-
const
|
|
1854
|
-
if (
|
|
2026
|
+
const highlightedOption = optionElements[this.highlightedIndex];
|
|
2027
|
+
if (highlightedOption) {
|
|
1855
2028
|
// Remove tabindex from all options first
|
|
1856
2029
|
optionElements.forEach(option => {
|
|
1857
2030
|
option.setAttribute('tabindex', '-1');
|
|
1858
2031
|
});
|
|
1859
|
-
// Set tabindex and focus on
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
2032
|
+
// Set tabindex and focus on highlighted option
|
|
2033
|
+
highlightedOption.setAttribute('tabindex', '0');
|
|
2034
|
+
highlightedOption.focus();
|
|
2035
|
+
highlightedOption.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
|
|
1863
2036
|
}
|
|
1864
2037
|
}
|
|
1865
2038
|
// Update aria-activedescendant on trigger
|
|
@@ -1925,7 +2098,7 @@ const PdsCombobox = class {
|
|
|
1925
2098
|
}
|
|
1926
2099
|
// Get the label of the selected option
|
|
1927
2100
|
get selectedLabel() {
|
|
1928
|
-
return this.
|
|
2101
|
+
return this.displayText || '';
|
|
1929
2102
|
}
|
|
1930
2103
|
// Get the layout content of the selected option for button trigger
|
|
1931
2104
|
get selectedLayoutContent() {
|
|
@@ -1935,10 +2108,110 @@ const PdsCombobox = class {
|
|
|
1935
2108
|
get selectedHasLayout() {
|
|
1936
2109
|
return this.selectedOption ? this.isOptionLayout(this.selectedOption) : false;
|
|
1937
2110
|
}
|
|
2111
|
+
// Extract chip sentiment from selected option's attributes, layout content, or slotted trigger content
|
|
2112
|
+
get selectedChipSentiment() {
|
|
2113
|
+
// First priority: Check selected option's chip attributes (new automatic approach)
|
|
2114
|
+
if (this.selectedOption && this.isOptionChip(this.selectedOption)) {
|
|
2115
|
+
const sentiment = this.selectedOption.getAttribute('chip-sentiment');
|
|
2116
|
+
if (sentiment)
|
|
2117
|
+
return sentiment;
|
|
2118
|
+
}
|
|
2119
|
+
// Second priority: Check selected option's layout content (existing custom layout approach)
|
|
2120
|
+
if (this.selectedOption && this.isOptionLayout(this.selectedOption)) {
|
|
2121
|
+
const chipElement = this.selectedOption.querySelector('pds-chip');
|
|
2122
|
+
const sentiment = chipElement === null || chipElement === void 0 ? void 0 : chipElement.getAttribute('sentiment');
|
|
2123
|
+
if (sentiment)
|
|
2124
|
+
return sentiment;
|
|
2125
|
+
}
|
|
2126
|
+
// Third priority: Check if we have custom trigger content with a chip (initial state)
|
|
2127
|
+
if (this.customTriggerContent) {
|
|
2128
|
+
const slottedChip = this.el.querySelector('pds-chip[slot="trigger-content"]');
|
|
2129
|
+
if (slottedChip) {
|
|
2130
|
+
const sentiment = slottedChip.getAttribute('sentiment');
|
|
2131
|
+
if (sentiment)
|
|
2132
|
+
return sentiment;
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2135
|
+
// Fallback: Use component props
|
|
2136
|
+
return this.chipSentiment;
|
|
2137
|
+
}
|
|
2138
|
+
// Extract chip large from selected option's attributes, layout content, or slotted trigger content
|
|
2139
|
+
get selectedChipLarge() {
|
|
2140
|
+
// First priority: Check selected option's chip attributes (new automatic approach)
|
|
2141
|
+
if (this.selectedOption && this.isOptionChip(this.selectedOption)) {
|
|
2142
|
+
if (this.selectedOption.hasAttribute('chip-large'))
|
|
2143
|
+
return true;
|
|
2144
|
+
}
|
|
2145
|
+
// Second priority: Check selected option's layout content (existing custom layout approach)
|
|
2146
|
+
if (this.selectedOption && this.isOptionLayout(this.selectedOption)) {
|
|
2147
|
+
const chipElement = this.selectedOption.querySelector('pds-chip');
|
|
2148
|
+
if (chipElement === null || chipElement === void 0 ? void 0 : chipElement.hasAttribute('large'))
|
|
2149
|
+
return true;
|
|
2150
|
+
}
|
|
2151
|
+
// Third priority: Check if we have custom trigger content with a chip (initial state)
|
|
2152
|
+
if (this.customTriggerContent) {
|
|
2153
|
+
const slottedChip = this.el.querySelector('pds-chip[slot="trigger-content"]');
|
|
2154
|
+
if (slottedChip && slottedChip.hasAttribute('large')) {
|
|
2155
|
+
return true;
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2158
|
+
// Fallback: Use component props
|
|
2159
|
+
return this.chipLarge;
|
|
2160
|
+
}
|
|
2161
|
+
// Extract chip icon from selected option's attributes, layout content, or slotted trigger content
|
|
2162
|
+
get selectedChipIcon() {
|
|
2163
|
+
// First priority: Check selected option's chip attributes (new automatic approach)
|
|
2164
|
+
if (this.selectedOption && this.isOptionChip(this.selectedOption)) {
|
|
2165
|
+
const icon = this.selectedOption.getAttribute('chip-icon');
|
|
2166
|
+
if (icon)
|
|
2167
|
+
return icon;
|
|
2168
|
+
}
|
|
2169
|
+
// Second priority: Check selected option's layout content (existing custom layout approach)
|
|
2170
|
+
if (this.selectedOption && this.isOptionLayout(this.selectedOption)) {
|
|
2171
|
+
const chipElement = this.selectedOption.querySelector('pds-chip');
|
|
2172
|
+
const icon = chipElement === null || chipElement === void 0 ? void 0 : chipElement.getAttribute('icon');
|
|
2173
|
+
if (icon)
|
|
2174
|
+
return icon;
|
|
2175
|
+
}
|
|
2176
|
+
// Third priority: Check if we have custom trigger content with a chip (initial state)
|
|
2177
|
+
if (this.customTriggerContent) {
|
|
2178
|
+
const slottedChip = this.el.querySelector('pds-chip[slot="trigger-content"]');
|
|
2179
|
+
if (slottedChip) {
|
|
2180
|
+
const icon = slottedChip.getAttribute('icon');
|
|
2181
|
+
if (icon)
|
|
2182
|
+
return icon;
|
|
2183
|
+
}
|
|
2184
|
+
}
|
|
2185
|
+
// Fallback: Use component props
|
|
2186
|
+
return this.chipIcon;
|
|
2187
|
+
}
|
|
2188
|
+
// Extract chip dot from selected option's attributes, layout content, or slotted trigger content
|
|
2189
|
+
get selectedChipDot() {
|
|
2190
|
+
// First priority: Check selected option's chip attributes (new automatic approach)
|
|
2191
|
+
if (this.selectedOption && this.isOptionChip(this.selectedOption)) {
|
|
2192
|
+
if (this.selectedOption.hasAttribute('chip-dot'))
|
|
2193
|
+
return true;
|
|
2194
|
+
}
|
|
2195
|
+
// Second priority: Check selected option's layout content (existing custom layout approach)
|
|
2196
|
+
if (this.selectedOption && this.isOptionLayout(this.selectedOption)) {
|
|
2197
|
+
const chipElement = this.selectedOption.querySelector('pds-chip');
|
|
2198
|
+
if (chipElement === null || chipElement === void 0 ? void 0 : chipElement.hasAttribute('dot'))
|
|
2199
|
+
return true;
|
|
2200
|
+
}
|
|
2201
|
+
// Third priority: Check if we have custom trigger content with a chip (initial state)
|
|
2202
|
+
if (this.customTriggerContent) {
|
|
2203
|
+
const slottedChip = this.el.querySelector('pds-chip[slot="trigger-content"]');
|
|
2204
|
+
if (slottedChip && slottedChip.hasAttribute('dot')) {
|
|
2205
|
+
return true;
|
|
2206
|
+
}
|
|
2207
|
+
}
|
|
2208
|
+
// Fallback: Use component props
|
|
2209
|
+
return this.chipDot;
|
|
2210
|
+
}
|
|
1938
2211
|
handleOptionClick(option) {
|
|
1939
2212
|
// Update reactive state - single source of truth
|
|
2213
|
+
// The @Watch('selectedOption') will handle displayText, value, and form internals
|
|
1940
2214
|
this.setSelectedOption(option);
|
|
1941
|
-
this.value = this.getOptionLabel(option);
|
|
1942
2215
|
this.isOpen = false;
|
|
1943
2216
|
this.pdsComboboxChange.emit({ value: option.value });
|
|
1944
2217
|
}
|
|
@@ -1962,12 +2235,14 @@ const PdsCombobox = class {
|
|
|
1962
2235
|
const isSelected = this.isOptionSelected(option);
|
|
1963
2236
|
const isHighlighted = this.highlightedIndex === optionIndex;
|
|
1964
2237
|
const isLayout = this.isOptionLayout(option);
|
|
2238
|
+
const isChip = this.isOptionChip(option);
|
|
1965
2239
|
const currentOptionIndex = optionIndex++;
|
|
1966
|
-
return (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: {
|
|
2240
|
+
return (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: {
|
|
1967
2241
|
'pds-combobox__option': true,
|
|
1968
2242
|
'pds-combobox__option--highlighted': isHighlighted,
|
|
1969
2243
|
'pds-combobox__option--layout': isLayout,
|
|
1970
|
-
|
|
2244
|
+
'pds-combobox__option--chip': isChip,
|
|
2245
|
+
}, "data-option-index": currentOptionIndex, onMouseDown: this.onOptionMouseDown, onClick: this.onOptionClick, onMouseEnter: this.onOptionMouseEnter, onKeyDown: this.onOptionKeyDown }, isLayout ? (h("pds-box", { class: "pds-combobox__option-layout-wrapper", innerHTML: this.getOptionLayoutContent(option) })) : isChip ? (this.renderOptionChip(option)) : (this.getOptionLabel(option)), isSelected && h("pds-icon", { icon: "check", size: "regular", class: "pds-combobox__option-check" })));
|
|
1971
2246
|
}
|
|
1972
2247
|
return null;
|
|
1973
2248
|
})));
|
|
@@ -1988,6 +2263,23 @@ const PdsCombobox = class {
|
|
|
1988
2263
|
shouldShowLayoutContent() {
|
|
1989
2264
|
return this.selectedHasLayout && !!this.selectedLayoutContent;
|
|
1990
2265
|
}
|
|
2266
|
+
// Helper method to build chip trigger CSS classes
|
|
2267
|
+
getChipTriggerClass() {
|
|
2268
|
+
const classes = ['pds-combobox__chip-trigger'];
|
|
2269
|
+
// Add sentiment class
|
|
2270
|
+
classes.push(`pds-combobox__chip-trigger--${this.selectedChipSentiment}`);
|
|
2271
|
+
// Always use dropdown variant for chip triggers
|
|
2272
|
+
classes.push('pds-combobox__chip-trigger--dropdown');
|
|
2273
|
+
// Add large class if needed
|
|
2274
|
+
if (this.selectedChipLarge) {
|
|
2275
|
+
classes.push('pds-combobox__chip-trigger--large');
|
|
2276
|
+
}
|
|
2277
|
+
// Add dot class if needed
|
|
2278
|
+
if (this.selectedChipDot) {
|
|
2279
|
+
classes.push('pds-combobox__chip-trigger--dot');
|
|
2280
|
+
}
|
|
2281
|
+
return classes.join(' ');
|
|
2282
|
+
}
|
|
1991
2283
|
renderButtonTriggerContent() {
|
|
1992
2284
|
// Case 1: Custom trigger content with layout priority
|
|
1993
2285
|
if (this.customTriggerContent) {
|
|
@@ -2004,13 +2296,79 @@ const PdsCombobox = class {
|
|
|
2004
2296
|
// Case 3: Standard mode with default text content
|
|
2005
2297
|
return [this.renderDefaultContent(), this.renderCaretIcon()];
|
|
2006
2298
|
}
|
|
2299
|
+
renderChipTriggerContent() {
|
|
2300
|
+
// Case 1: Custom trigger content with layout priority
|
|
2301
|
+
if (this.customTriggerContent) {
|
|
2302
|
+
if (this.shouldShowLayoutContent()) {
|
|
2303
|
+
// When using custom layouts, the chip handles its own dropdown arrow
|
|
2304
|
+
return this.renderChipTriggerLayoutContent();
|
|
2305
|
+
}
|
|
2306
|
+
// Fall back to slot content when no layout is available - chip handles its own dropdown arrow
|
|
2307
|
+
return h("slot", { name: "trigger-content" });
|
|
2308
|
+
}
|
|
2309
|
+
// Case 2: Standard mode with layout content
|
|
2310
|
+
if (this.shouldShowLayoutContent()) {
|
|
2311
|
+
// When using custom layouts, the chip handles its own dropdown arrow
|
|
2312
|
+
return this.renderChipTriggerLayoutContent();
|
|
2313
|
+
}
|
|
2314
|
+
// Case 3: Automatic chip mode - selected option has chip attributes
|
|
2315
|
+
if (this.selectedOption && this.selectedOptionChipProps) {
|
|
2316
|
+
// Render as chip automatically - chip handles its own dropdown arrow
|
|
2317
|
+
return this.renderSelectedOptionAsChip();
|
|
2318
|
+
}
|
|
2319
|
+
// Case 4: Standard mode with default text content
|
|
2320
|
+
return [
|
|
2321
|
+
this.renderChipTriggerDefaultContent(),
|
|
2322
|
+
this.renderCaretIcon()
|
|
2323
|
+
];
|
|
2324
|
+
}
|
|
2325
|
+
// Helper method to render selected option as chip for trigger (automatic approach)
|
|
2326
|
+
renderSelectedOptionAsChip() {
|
|
2327
|
+
if (!this.selectedOption || !this.selectedOptionChipProps)
|
|
2328
|
+
return null;
|
|
2329
|
+
return (h("pds-chip", { sentiment: this.selectedOptionChipProps.sentiment, variant: "dropdown" // Always use dropdown variant for triggers
|
|
2330
|
+
,
|
|
2331
|
+
large: this.selectedOptionChipProps.large, icon: this.selectedOptionChipProps.icon, dot: this.selectedOptionChipProps.dot, class: "pds-combobox__chip-trigger-auto" }, this.getOptionLabel(this.selectedOption)));
|
|
2332
|
+
}
|
|
2333
|
+
// Helper method to render chip trigger layout content
|
|
2334
|
+
renderChipTriggerLayoutContent() {
|
|
2335
|
+
return (h("div", { class: "pds-combobox__chip-trigger-layout-wrapper", innerHTML: this.getModifiedLayoutContentForTrigger() }));
|
|
2336
|
+
}
|
|
2337
|
+
// Helper method to modify layout content for trigger use (ensure dropdown variant)
|
|
2338
|
+
getModifiedLayoutContentForTrigger() {
|
|
2339
|
+
let content = this.selectedLayoutContent;
|
|
2340
|
+
// If the content contains a pds-chip, ensure it has variant="dropdown"
|
|
2341
|
+
if (content.includes('<pds-chip')) {
|
|
2342
|
+
// Use a temporary div to parse and modify the HTML
|
|
2343
|
+
const tempDiv = document.createElement('div');
|
|
2344
|
+
tempDiv.innerHTML = content;
|
|
2345
|
+
const chipElement = tempDiv.querySelector('pds-chip');
|
|
2346
|
+
if (chipElement) {
|
|
2347
|
+
chipElement.setAttribute('variant', 'dropdown');
|
|
2348
|
+
content = tempDiv.innerHTML;
|
|
2349
|
+
}
|
|
2350
|
+
}
|
|
2351
|
+
return content;
|
|
2352
|
+
}
|
|
2353
|
+
// Helper method to render chip trigger default content
|
|
2354
|
+
renderChipTriggerDefaultContent() {
|
|
2355
|
+
return (h("span", { class: "pds-combobox__chip-trigger-label" }, this.selectedChipIcon && h("pds-icon", { icon: this.selectedChipIcon, class: "pds-combobox__chip-trigger-icon" }), this.selectedLabel || this.placeholder));
|
|
2356
|
+
}
|
|
2357
|
+
// Helper method to render option as chip (new automatic approach)
|
|
2358
|
+
renderOptionChip(option) {
|
|
2359
|
+
const chipProps = this.getOptionChipProps(option);
|
|
2360
|
+
return (h("pds-chip", { sentiment: chipProps.sentiment, variant: "text" // Dropdown options use text variant, not dropdown
|
|
2361
|
+
,
|
|
2362
|
+
large: chipProps.large, icon: chipProps.icon, dot: chipProps.dot, class: "pds-combobox__option-chip" }, this.getOptionLabel(option)));
|
|
2363
|
+
}
|
|
2007
2364
|
render() {
|
|
2008
2365
|
const triggerClass = `pds-combobox__button-trigger pds-combobox__button-trigger--${this.triggerVariant}`;
|
|
2009
|
-
return (h(Host, { key: '
|
|
2366
|
+
return (h(Host, { key: 'd62992abd6eae05cfff52cfc0272490ca6370291' }, h("div", { key: 'affff971535065b7352daee494742bf7b65a61f4', class: "pds-combobox", tabIndex: -1, onFocusout: this.onComboboxFocusOut }, this.label && (h("label", { key: 'c27f88928932bc4535698cb88595b1559cb22e55', htmlFor: this.componentId, class: "pds-combobox__label" }, h("span", { key: '0b65e67897735819cb2a4dc7d6d7d355af2f28d5', class: this.hideLabel ? 'visually-hidden' : '' }, this.label))), this.trigger === 'input' ? (h("div", { class: "pds-combobox__input-wrapper", style: { width: this.triggerWidth } }, h("input", { ref: el => {
|
|
2010
2367
|
this.inputEl = el;
|
|
2011
2368
|
this.triggerEl = el;
|
|
2012
|
-
}, 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.
|
|
2369
|
+
}, 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" }), h("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (h("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: "combobox", "aria-haspopup": "listbox", "aria-controls": "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())) : (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())), h("div", { key: '47c259c2bc5b6f4f1d249d9bddd476b11c5a90fe', style: { display: 'none' } }, h("slot", { key: '83355a804fe978b6fb58838b4174bc815cf2f933', onSlotchange: () => this.updateOptions() })), this.renderDropdown())));
|
|
2013
2370
|
}
|
|
2371
|
+
static get formAssociated() { return true; }
|
|
2014
2372
|
get el() { return getElement(this); }
|
|
2015
2373
|
static get watchers() { return {
|
|
2016
2374
|
"value": ["handleValueChange"],
|