@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pdsFilterCss","PdsFilter","constructor","hostRef","this","scrollRAF","lastScrollTime","variant","isOpen","handleNativePopoverToggle","event","target","id","componentId","isCurrentlyOpen","matches","error","style","display","setTimeout","adjustPopoverPosition","pdsFilterOpen","emit","text","pdsFilterClose","handleKeyDown","key","preventDefault","handleClick","pdsFilterClear","closeOtherPopovers","supportsPopoverAPI","HTMLElement","prototype","showPopover","navigator","userAgent","includes","popoverEl","classList","add","remove","disconnectedCallback","cancelAnimationFrame","removeEventListener","hidePopover","componentDidRender","addEventListener","handleWindowResize","handleWindowScroll","supportsAnchorPositioning","document","documentElement","now","performance","throttleMs","requestAnimationFrame","el","isConnected","allFilters","querySelectorAll","forEach","filter","popover","_a","shadowRoot","querySelector","isPopoverOpen","triggerEl","triggerRect","getBoundingClientRect","viewportWidth","window","innerWidth","viewportHeight","innerHeight","popoverWidth","popoverHeight","height","bufferSpace","wouldOverflowRight","left","wouldOverflowBottom","bottom","top","transformOrigin","actualPopoverWidth","width","right","replace","cssText","showFilter","console","warn","hideFilter","handlePopoverToggle","handleDocumentClick","contains","popoverIsClosed","handleEscapeKey","getIcon","trash","icon","getTriggerClasses","classes","push","join","renderIcon","iconToRender","h","size","part","renderDropdownIcon","enlarge","class","render","Host","type","popoverTarget","undefined","popoverTargetAction","onKeyDown","onClick","ref"],"sources":["src/components/pds-filters/pds-filter/pds-filter.scss?tag=pds-filter&encapsulation=shadow","src/components/pds-filters/pds-filter/pds-filter.tsx"],"sourcesContent":[":host {\n --box-shadow-focus: 0 0 0 1px var(--pine-color-white), 0 0 0 3px var(--pine-color-focus-ring);\n\n display: inline-block;\n position: relative;\n}\n\n.pds-filter__trigger {\n align-items: center;\n /* stylelint-disable-next-line property-no-unknown */\n anchor-name: --filter-trigger;\n background: var(--pine-color-background-container);\n border: var(--pine-border-width-thin) solid var(--pine-color-border);\n border-radius: var(--pine-dimension-100);\n box-shadow: var(--pine-box-shadow-050);\n box-sizing: border-box;\n color: var(--pine-color-text-placeholder);\n cursor: pointer;\n display: inline-flex;\n font-family: var(--pine-font-family-inter);\n font-size: var(--pine-font-size-100);\n font-weight: var(--pine-font-weight-400);\n gap: var(--pine-dimension-050);\n letter-spacing: var(--pine-letter-spacing-114);\n line-height: var(--pine-line-height-150);\n padding: var(--pine-dimension-025) var(--pine-dimension-125);\n position: relative;\n transition: all 0.2s ease;\n\n pds-icon {\n block-size: var(--pine-font-size-100);\n color: var(--pine-color-grey-800);\n flex-shrink: 0;\n inline-size: var(--pine-font-size-100);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-grey-100);\n border-color: var(--pine-color-grey-400);\n color: var(--pine-color-text-hover);\n\n pds-icon {\n color: var(--pine-color-grey-800);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n}\n\n.pds-filter__trigger--selected {\n background-color: var(--pine-color-purple-050);\n border-color: var(--pine-color-purple-500);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-purple-100);\n border-color: var(--pine-color-purple-500);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__trigger--more {\n background-color: var(--pine-color-grey-050);\n border: var(--pine-border-width-thin) dashed var(--pine-color-grey-300);\n color: var(--pine-color-text-placeholder);\n\n pds-icon {\n color: var(--pine-color-grey-800);\n }\n\n &:hover,\n &.pds-filter__trigger--open {\n background-color: var(--pine-color-grey-100);\n border-color: var(--pine-color-grey-400);\n color: var(--pine-color-text-hover);\n\n pds-icon {\n color: var(--pine-color-grey-800);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__trigger--clear {\n background: transparent;\n border: var(--pine-border-width-thin) solid transparent;\n border-radius: var(--pine-dimension-100);\n box-shadow: none;\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n\n &:hover {\n background-color: var(--pine-color-purple-100);\n border-color: var(--pine-color-purple-100);\n color: var(--pine-color-purple-600);\n\n pds-icon {\n color: var(--pine-color-purple-600);\n }\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n.pds-filter__button-content {\n align-items: center;\n display: inline-flex;\n gap: var(--pine-dimension-050);\n max-inline-size: 148px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-filter__button-text {\n line-height: var(--pine-line-height-150);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-filter__dropdown-icon {\n block-size: var(--pine-dimension-200);\n flex-shrink: 0;\n inline-size: var(--pine-dimension-200);\n}\n\n\n.pds-filter__popover {\n background-color: var(--pine-color-background-container);\n border: 0;\n border-radius: var(--pine-dimension-100);\n box-shadow: var(--pine-box-shadow-100);\n display: none;\n inline-size: 228px;\n inset: unset;\n padding: var(--pine-dimension-100);\n z-index: 1000;\n\n /* stylelint-disable-next-line selector-pseudo-class-no-unknown */\n &:popover-open,\n &.is-open {\n display: block;\n }\n\n /* Modern browsers: CSS anchor positioning with JavaScript-controlled flipping */\n @supports (anchor-name: --test) {\n inset-block-start: calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));\n inset-inline-start: anchor(--filter-trigger left);\n position: fixed; /* Anchor positioning requires fixed positioning */\n /* stylelint-disable-next-line property-no-unknown */\n position-anchor: --filter-trigger;\n\n /* CSS position-try disabled for precise JavaScript-controlled flipping */\n\n /* Flipping classes applied by JavaScript for precise control */\n &.popover-flip-horizontal {\n inset-inline-start: anchor(--filter-trigger right);\n transform: translateX(-100%);\n }\n\n &.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n transform: translateY(calc(-100% - var(--pine-dimension-100)));\n }\n\n &.popover-flip-horizontal.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n inset-inline-start: anchor(--filter-trigger right);\n transform: translate(-100%, calc(-100% - var(--pine-dimension-100)));\n }\n\n /* Ensure fallback class works with flipping in modern browsers */\n &.is-open.popover-flip-horizontal {\n inset-inline-start: anchor(--filter-trigger right);\n transform: translateX(-100%);\n }\n\n &.is-open.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n transform: translateY(calc(-100% - var(--pine-dimension-100)));\n }\n\n &.is-open.popover-flip-horizontal.popover-flip-vertical {\n inset-block-start: anchor(--filter-trigger top);\n inset-inline-start: anchor(--filter-trigger right);\n transform: translate(-100%, calc(-100% - var(--pine-dimension-100)));\n }\n\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, State, Method, Listen } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport type { PdsFilterOpenEventDetail, PdsFilterCloseEventDetail, PdsFilterClearEventDetail, PdsFilterVariant } from './filter-interface';\n\nimport { enlarge, trash } from '@pine-ds/icons/icons';\n\n/**\n * Individual filter component with cross-browser popover positioning.\n *\n * Uses a hybrid approach for optimal cross-browser compatibility:\n * - Modern browsers: CSS anchor positioning + JavaScript flip classes\n * - Fallback browsers: JavaScript positioning with viewport boundary detection\n *\n * @part button - Exposes the trigger button element for styling.\n * @part button-content - Exposes the button content container for styling.\n * @part button-text - Exposes the button text for styling.\n * @part icon - Exposes the icon component for styling.\n * @part popover - Exposes the popover container for styling.\n * @slot (default) - Popover content that will be displayed when the filter is open.\n */\n\n@Component({\n tag: 'pds-filter',\n styleUrl: 'pds-filter.scss',\n shadow: true,\n})\nexport class PdsFilter implements BasePdsProps {\n @Element() el!: HTMLPdsFilterElement;\n\n private popoverEl: HTMLElement;\n private scrollRAF: number | null = null;\n private lastScrollTime = 0;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * The variant style of the filter trigger.\n * @defaultValue 'default'\n */\n @Prop() variant: PdsFilterVariant = 'default';\n\n /**\n * The name of the icon to display in the trigger button.\n * For 'clear' variant, this is ignored as it always shows trash icon.\n */\n @Prop() icon?: string;\n\n /**\n * The text content displayed in the trigger button.\n */\n @Prop() text?: string;\n\n\n /**\n * State to track if the popover is open.\n */\n @State() isOpen = false;\n\n /**\n * Event emitted when the filter popover is opened.\n */\n @Event() pdsFilterOpen: EventEmitter<PdsFilterOpenEventDetail>;\n\n /**\n * Event emitted when the filter popover is closed.\n */\n @Event() pdsFilterClose: EventEmitter<PdsFilterCloseEventDetail>;\n\n /**\n * Event emitted when the clear variant is clicked.\n */\n @Event() pdsFilterClear: EventEmitter<PdsFilterClearEventDetail>;\n\n\n /**\n * Component lifecycle: Clean up when disconnected from DOM.\n * Prevents memory leaks by canceling pending operations and closing popovers.\n */\n disconnectedCallback() {\n // Cancel pending animation frames\n if (this.scrollRAF) {\n cancelAnimationFrame(this.scrollRAF);\n this.scrollRAF = null;\n }\n\n this.lastScrollTime = 0;\n\n // Clean up native popover event listeners\n if (this.popoverEl) {\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n if (supportsPopoverAPI) {\n this.popoverEl.removeEventListener('toggle', this.handleNativePopoverToggle);\n }\n }\n\n // Ensure popover is closed\n if (this.isOpen && this.popoverEl) {\n try {\n this.popoverEl.hidePopover();\n } catch (error) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n }\n }\n\n\n componentDidRender() {\n // Note: popoverEl is set via ref callback in render method\n // For browsers with native popover API, we need direct element listeners\n // since the document listener may not capture native popover toggle events\n if (this.popoverEl) {\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n if (supportsPopoverAPI) {\n // Remove any existing listeners to avoid duplicates\n this.popoverEl.removeEventListener('toggle', this.handleNativePopoverToggle);\n // Add direct listener for native popover events\n this.popoverEl.addEventListener('toggle', this.handleNativePopoverToggle);\n }\n }\n }\n\n /**\n * Handle native popover toggle events directly on the element\n * This is needed for browsers with native Popover API support\n */\n private handleNativePopoverToggle = (event: Event) => {\n const target = event.target as HTMLElement;\n\n if (target && target.id === `${this.componentId}-popover`) {\n // Check current popover state\n let isCurrentlyOpen = false;\n try {\n isCurrentlyOpen = target.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isCurrentlyOpen = target.style.display === 'block';\n }\n\n // Update state\n this.isOpen = isCurrentlyOpen;\n\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 0);\n\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n };\n\n /**\n * Reposition popovers on window resize.\n */\n @Listen('resize', { target: 'window' })\n handleWindowResize() {\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 16);\n }\n }\n\n /**\n * Reposition popovers on scroll with performance throttling.\n */\n @Listen('scroll', { target: 'window', passive: true })\n handleWindowScroll() {\n if (this.isOpen) {\n const supportsAnchorPositioning = \"anchorName\" in document.documentElement.style;\n const now = performance.now();\n\n const throttleMs = supportsAnchorPositioning ? 66 : 33;\n if (now - this.lastScrollTime < throttleMs) {\n return;\n }\n\n this.lastScrollTime = now;\n\n if (this.scrollRAF) {\n cancelAnimationFrame(this.scrollRAF);\n }\n\n this.scrollRAF = requestAnimationFrame(() => {\n if (this.isOpen && this.popoverEl && this.el.isConnected) {\n this.adjustPopoverPosition();\n }\n this.scrollRAF = null;\n });\n }\n }\n\n /**\n * Closes other open filter popovers to ensure only one is open at a time.\n */\n private closeOtherPopovers() {\n const allFilters = document.querySelectorAll('pds-filter');\n\n allFilters.forEach((filter) => {\n if (filter === this.el) return;\n\n const popover = filter.shadowRoot?.querySelector('.pds-filter__popover') as HTMLElement;\n\n if (popover) {\n // Check for popover API support to avoid crashes\n let isPopoverOpen = false;\n try {\n isPopoverOpen = popover.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isPopoverOpen = popover.style.display === 'block';\n }\n\n if (isPopoverOpen) {\n try {\n popover.hidePopover();\n } catch (error) {\n popover.style.display = 'none';\n popover.classList.remove('is-open');\n }\n }\n }\n });\n }\n\n /**\n * Adjusts popover position to keep it within viewport bounds.\n * Uses CSS anchor positioning for modern browsers, JavaScript for fallback browsers.\n */\n private adjustPopoverPosition() {\n if (!this.popoverEl || this.variant === 'clear') return;\n\n const triggerEl = this.el.shadowRoot?.querySelector('.pds-filter__trigger') as HTMLElement;\n if (!triggerEl) return;\n\n const triggerRect = triggerEl.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n const supportsAnchorPositioning = \"anchorName\" in document.documentElement.style;\n\n // Get dimensions for boundary detection\n const popoverWidth = 228;\n const popoverHeight = this.popoverEl.getBoundingClientRect().height || 200;\n\n // Boundary detection for flipping\n const bufferSpace = 20;\n const wouldOverflowRight = (triggerRect.left + popoverWidth + bufferSpace) > viewportWidth;\n const wouldOverflowBottom = (triggerRect.bottom + 8 + popoverHeight + bufferSpace) > viewportHeight;\n\n if (supportsAnchorPositioning) {\n // Modern browsers: CSS anchor positioning + JavaScript-controlled flipping\n this.popoverEl.classList.remove('popover-flip-horizontal', 'popover-flip-vertical');\n\n if (wouldOverflowRight) {\n this.popoverEl.classList.add('popover-flip-horizontal');\n }\n\n if (wouldOverflowBottom) {\n this.popoverEl.classList.add('popover-flip-vertical');\n }\n\n } else {\n // Fallback browsers: JavaScript positioning with boundary detection\n let left = triggerRect.left;\n let top = triggerRect.bottom + 8;\n let transformOrigin = 'top left';\n\n // Apply horizontal flipping if needed\n if (wouldOverflowRight) {\n const actualPopoverWidth = this.popoverEl.getBoundingClientRect().width || popoverWidth;\n left = triggerRect.right - actualPopoverWidth;\n transformOrigin = 'top right';\n }\n\n // Apply vertical flipping if needed\n if (wouldOverflowBottom) {\n top = triggerRect.top - popoverHeight - 8;\n transformOrigin = transformOrigin.replace('top', 'bottom');\n }\n\n // Apply positioning in single DOM write for performance\n this.popoverEl.style.cssText = `\n position: fixed;\n left: ${left}px;\n top: ${top}px;\n z-index: 1000;\n transform-origin: ${transformOrigin};\n `;\n }\n }\n\n /**\n * Opens the filter popover programmatically.\n * Note: Clear variant does not support popover functionality.\n */\n @Method()\n async showFilter() {\n if (this.variant === 'clear') {\n console.warn('Clear variant does not support showFilter method');\n return;\n }\n\n if (this.popoverEl != null) {\n try {\n this.popoverEl.showPopover();\n } catch (error) {\n // Fallback for testing environment where showPopover is not available\n this.popoverEl.style.display = 'block';\n this.popoverEl.classList.add('is-open');\n }\n }\n }\n\n /**\n * Closes the filter popover programmatically.\n * Note: Clear variant does not support popover functionality.\n */\n @Method()\n async hideFilter() {\n if (this.variant === 'clear') {\n console.warn('Clear variant does not support hideFilter method');\n return;\n }\n\n if (this.popoverEl != null) {\n try {\n this.popoverEl.hidePopover();\n } catch (error) {\n // Fallback for testing environment where hidePopover is not available\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n }\n }\n\n /**\n * Listen for popover toggle events for browsers without native Popover API (fallback).\n * Native API browsers use direct element listeners to avoid conflicts.\n */\n @Listen('toggle', { target: 'document' })\n handlePopoverToggle(event: Event) {\n const target = event.target as HTMLElement;\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n // Only handle events for fallback browsers (Firefox) to avoid duplicate handling\n if (!supportsPopoverAPI && target && target.id === `${this.componentId}-popover`) {\n // Check for popover API support to avoid crashes\n let isCurrentlyOpen = false;\n try {\n isCurrentlyOpen = target.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n isCurrentlyOpen = target.style.display === 'block';\n }\n\n // Update state\n this.isOpen = isCurrentlyOpen;\n\n if (this.isOpen) {\n setTimeout(() => this.adjustPopoverPosition(), 0);\n\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }\n\n /**\n * Listen for clicks to detect outside dismissal.\n */\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: Event) {\n // Check if click is outside and popover gets closed\n if (!this.el.contains(event.target as Node) && this.isOpen && this.variant !== 'clear') {\n setTimeout(() => {\n if (this.popoverEl && this.isOpen) {\n // Check for popover API support to avoid crashes\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n let popoverIsClosed = false;\n if (supportsPopoverAPI) {\n try {\n popoverIsClosed = !this.popoverEl.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n popoverIsClosed = this.popoverEl.style.display !== 'block';\n }\n } else {\n // Manual fallback - assume popover was closed by outside click\n popoverIsClosed = true;\n }\n\n if (popoverIsClosed) {\n this.isOpen = false;\n if (!supportsPopoverAPI) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n }\n\n /**\n * Listen for Escape key to ensure close event fires.\n */\n @Listen('keydown', { target: 'document' })\n handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.isOpen && this.variant !== 'clear') {\n // Check if popover was closed by Escape\n setTimeout(() => {\n if (this.popoverEl && this.isOpen) {\n // Check for popover API support to avoid crashes\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n let popoverIsClosed = false;\n if (supportsPopoverAPI) {\n try {\n popoverIsClosed = !this.popoverEl.matches(':popover-open');\n } catch (error) {\n // Fallback if :popover-open selector isn't supported\n popoverIsClosed = this.popoverEl.style.display !== 'block';\n }\n } else {\n // Manual fallback - assume popover was closed by Escape\n popoverIsClosed = true;\n }\n\n if (popoverIsClosed) {\n this.isOpen = false;\n if (!supportsPopoverAPI) {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n }\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n }\n\n /**\n * Handle keyboard interactions for clear variant only.\n */\n private handleKeyDown = (event: KeyboardEvent) => {\n // Only handle clear variant manually, let native API handle everything else\n if (this.variant === 'clear' && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n this.handleClick();\n }\n };\n\n /**\n * Handle trigger button click. Clear variant emits event, others toggle popover.\n */\n private handleClick = (event?: Event) => {\n if (this.variant === 'clear') {\n this.pdsFilterClear.emit({\n componentId: this.componentId,\n text: this.text,\n });\n return;\n }\n\n this.closeOtherPopovers();\n\n // Check for popover API support\n const supportsPopoverAPI = HTMLElement.prototype.showPopover && !navigator.userAgent.includes('Firefox');\n\n if (!supportsPopoverAPI) {\n // Manual fallback for browsers without popover API support\n // Prevent default to avoid conflicts with any native behavior\n if (event) {\n event.preventDefault();\n }\n\n setTimeout(() => {\n if (this.popoverEl != null) {\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.popoverEl.style.display = 'block';\n this.popoverEl.classList.add('is-open');\n this.adjustPopoverPosition();\n this.pdsFilterOpen.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n } else {\n this.popoverEl.style.display = 'none';\n this.popoverEl.classList.remove('is-open');\n this.pdsFilterClose.emit({\n componentId: this.componentId,\n variant: this.variant,\n text: this.text,\n });\n }\n }\n }, 0);\n }\n // For browsers with native popover API, let the native behavior handle the toggle\n // The toggle event listener will capture the state change and emit events\n };\n\n /**\n * Get the appropriate icon for the variant.\n */\n private getIcon() {\n if (this.variant === 'clear') {\n return trash;\n }\n return this.icon;\n }\n\n /**\n * Get CSS classes for the trigger button.\n */\n private getTriggerClasses() {\n const classes = ['pds-filter__trigger'];\n classes.push(`pds-filter__trigger--${this.variant}`);\n\n if (this.isOpen && this.variant !== 'clear') {\n classes.push('pds-filter__trigger--open');\n }\n\n return classes.join(' ');\n }\n\n /**\n * Render the trigger icon.\n */\n private renderIcon() {\n const iconToRender = this.getIcon();\n if (iconToRender == null || iconToRender === '') return null;\n\n return (\n <pds-icon\n icon={iconToRender}\n size=\"var(--pine-font-size-100)\"\n aria-hidden=\"true\"\n part=\"icon\"\n />\n );\n }\n\n /**\n * Render the dropdown icon for selected variant.\n */\n private renderDropdownIcon() {\n if (this.variant === 'selected') {\n return (\n <pds-icon\n icon={enlarge}\n size=\"var(--pine-dimension-200)\"\n aria-hidden=\"true\"\n class=\"pds-filter__dropdown-icon\"\n part=\"icon\"\n />\n );\n }\n return null;\n }\n\n render() {\n return (\n <Host id={this.componentId}>\n <button\n class={this.getTriggerClasses()}\n type=\"button\"\n popoverTarget={this.variant !== 'clear' ? `${this.componentId}-popover` : undefined}\n popoverTargetAction={this.variant !== 'clear' ? 'toggle' : undefined}\n onKeyDown={this.variant === 'clear' ? this.handleKeyDown : undefined}\n onClick={(event) => this.handleClick(event)}\n part=\"button\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-haspopup={this.variant !== 'clear' ? 'true' : undefined}\n aria-controls={this.variant !== 'clear' ? `${this.componentId}-popover` : undefined}\n >\n <span class=\"pds-filter__button-content\" part=\"button-content\">\n {this.renderIcon()}\n {this.text && (\n <span class=\"pds-filter__button-text\" part=\"button-text\">\n {this.text}\n </span>\n )}\n {this.renderDropdownIcon()}\n </span>\n </button>\n\n {this.variant !== 'clear' && (\n <div\n ref={el => this.popoverEl = el}\n id={`${this.componentId}-popover`}\n class=\"pds-filter__popover\"\n popover=\"auto\"\n part=\"popover\"\n >\n <slot />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
System.register(["./p-Cxvdulqq.system.js","./p-BOmQOnQe.system.js"],(function(i){"use strict";var t,e,n,s,r,o,a,d;return{setters:[function(i){t=i.r;e=i.h;n=i.H;s=i.g},function(i){r=i.c;o=i.o;a=i.f;d=i.s}],execute:function(){var h=":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:absolute;z-index:9999}";var u=i("pds_dropdown_menu",function(){function i(i){var e=this;t(this,i);this.isOpen=false;this.menuItems=[];this.currentFocusIndex=-1;this.placement="bottom-start";this.handleTriggerSlotChange=function(i){e.slotEl=i.target;var t=e.slotEl.assignedElements();e.triggerEl=t[0];e.triggerEl.onclick=e.handleClick;e.triggerEl.setAttribute("aria-haspopup","menu");e.triggerEl.setAttribute("aria-expanded","false")};this.handleSlotChange=function(i){e.slotEl=i.target;var t=e.slotEl.assignedElements();var n=t.filter((function(i){return i.tagName.toLowerCase()!=="pds-dropdown-menu-item"&&i.tagName.toLowerCase()!=="pds-dropdown-menu-separator"}));if(n.length>0){throw new Error("pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements")}e.menuItems=t.filter((function(i){return i.tagName.toLowerCase()==="pds-dropdown-menu-item"}))};this.toggleDropdown=function(){e.isOpen=!e.isOpen;if(e.isOpen){e.openDropdown()}else{e.closeDropdown()}};this.openDropdown=function(){var i;r(e.triggerEl,e.panelEl,{placement:e.placement,middleware:[o(6),a(),d({padding:5})]}).then((function(i){var t=i.x,n=i.y;Object.assign(e.panelEl.style,{left:"".concat(t,"px"),top:"".concat(n,"px")})}));(i=e.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.remove("is-hidden");e.isOpen=true;e.triggerEl.setAttribute("aria-expanded","true")};this.closeDropdown=function(){var i;(i=e.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.add("is-hidden");e.isOpen=false;e.triggerEl.setAttribute("aria-expanded","false");e.currentFocusIndex=-1;e.triggerEl.focus()};this.handleClick=function(){e.toggleDropdown()}}i.prototype.componentDidRender=function(){var i;this.panelEl=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box")};i.prototype.getFocusedItemIndex=function(){var i=document.activeElement;if(!i)return-1;return this.menuItems.findIndex((function(t){return t===i}))};i.prototype.focusItemByIndex=function(i){var t,e,n,s;if(i>=0&&i<this.menuItems.length){this.currentFocusIndex=i;var r=this.menuItems[i];var o=(t=r.shadowRoot)===null||t===void 0?void 0:t.querySelector("button");var a=(s=(n=(e=r.shadowRoot)===null||e===void 0?void 0:e.querySelector("pds-link"))===null||n===void 0?void 0:n.shadowRoot)===null||s===void 0?void 0:s.querySelector("a");if(o){return o.focus()}else if(a){return a.focus()}else{r.focus()}}};i.prototype.focusNextItem=function(){var i=(this.currentFocusIndex+1)%this.menuItems.length;var t=0;var e=this.menuItems.length;while(t<e&&this.menuItems[i].disabled){i=(i+1)%this.menuItems.length;t++}if(t<e){this.focusItemByIndex(i)}};i.prototype.focusPreviousItem=function(){var i=this.currentFocusIndex<=0?this.menuItems.length-1:this.currentFocusIndex-1;var t=0;var e=this.menuItems.length;while(t<e&&this.menuItems[i].disabled){i=i<=0?this.menuItems.length-1:i-1;t++}if(t<e){this.focusItemByIndex(i)}};i.prototype.handleKeyDown=function(i){if(!this.isOpen)return;switch(i.key){case"Escape":i.preventDefault();this.closeDropdown();break;case"ArrowDown":i.preventDefault();this.focusNextItem();break;case"ArrowUp":i.preventDefault();this.focusPreviousItem();break;case"Home":i.preventDefault();if(this.menuItems.length>0){var t=0;while(t<this.menuItems.length&&this.menuItems[t].disabled){t++}if(t<this.menuItems.length){this.focusItemByIndex(t)}}break;case"End":i.preventDefault();if(this.menuItems.length>0){var e=this.menuItems.length-1;while(e>=0&&this.menuItems[e].disabled){e--}if(e>=0){this.focusItemByIndex(e)}}break;case"Tab":if(i.shiftKey){var n=this.getFocusedItemIndex();if(n>0){i.preventDefault();this.focusPreviousItem()}}else{var s=document.activeElement;var r=s===this.triggerEl;var n=this.getFocusedItemIndex();if(r&&this.menuItems.length>0){i.preventDefault();var o=0;while(o<this.menuItems.length&&this.menuItems[o].disabled){o++}if(o<this.menuItems.length){this.focusItemByIndex(o)}}else if(n===-1&&this.menuItems.length>0){i.preventDefault();var o=0;while(o<this.menuItems.length&&this.menuItems[o].disabled){o++}if(o<this.menuItems.length){this.focusItemByIndex(o)}}else if(n!==-1){i.preventDefault();this.focusNextItem()}}break}};i.prototype.handleWindowClick=function(i){if(this.isOpen&&!this.host.contains(i.target)&&i.target!==this.triggerEl){this.closeDropdown()}};i.prototype.render=function(){return e(n,{key:"1e4384c8ab3fb3ca73221dd7a7f156846e9b8274",id:this.componentId},e("slot",{key:"0b3b532a025580b36bbe06f86bdb776d99e0c896",name:"trigger",onSlotchange:this.handleTriggerSlotChange}),e("pds-box",{key:"20229e833fa45ff5ce730d3a38e8faab582335c6","border-radius":"sm",display:"flex",direction:"column",class:"pds-dropdown-menu--panel is-hidden",shadow:"100",role:"menu","aria-orientation":"vertical"},e("slot",{key:"47cad78c2e1b5150be13a399820fe64d09955e9d",onSlotchange:this.handleSlotChange})))};Object.defineProperty(i.prototype,"host",{get:function(){return s(this)},enumerable:false,configurable:true});return i}());u.style=h}}}));
|
|
2
|
-
//# sourceMappingURL=p-dbe41087.system.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pdsDropdownMenuCss","PdsDropdownMenu","exports","class_1","hostRef","_this","this","isOpen","menuItems","currentFocusIndex","placement","handleTriggerSlotChange","event","slotEl","target","assignedElements","triggerEl","onclick","handleClick","setAttribute","handleSlotChange","invalidElements","filter","el","tagName","toLowerCase","length","Error","toggleDropdown","openDropdown","closeDropdown","computePosition","panelEl","middleware","offset","flip","shift","padding","then","_e","x","y","Object","assign","style","left","concat","top","_a","host","shadowRoot","querySelector","classList","remove","add","focus","prototype","componentDidRender","getFocusedItemIndex","activeElement","document","findIndex","item","focusItemByIndex","index","menuItem","innerButton","innerLink","_d","_c","_b","focusNextItem","nextIndex","attempts","maxAttempts","disabled","focusPreviousItem","prevIndex","handleKeyDown","key","preventDefault","firstIndex","lastIndex","shiftKey","currentIndex","isTriggerFocused","firstFocusableIndex","handleWindowClick","contains","render","h","Host","id","componentId","name","onSlotchange","display","direction","class","shadow","role"],"sources":["src/components/pds-dropdown-menu/pds-dropdown-menu.scss?tag=pds-dropdown-menu&encapsulation=shadow","src/components/pds-dropdown-menu/pds-dropdown-menu.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.is-hidden {\n display: none;\n}\n\n.pds-dropdown-menu--panel {\n background-color: var(--pine-color-background-container);\n left: var(--pine-dimension-none);\n min-width: 170px;\n padding: var(--pine-dimension-xs);\n position: absolute;\n z-index: 9999;\n}\n","import { Component, Element, Host, h, Prop, Listen, State } from '@stencil/core';\nimport type { BasePdsProps } from '@utils/interfaces';\nimport { PlacementType } from '@utils/types';\nimport { computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\n\n@Component({\n tag: 'pds-dropdown-menu',\n styleUrl: 'pds-dropdown-menu.scss',\n shadow: true,\n})\nexport class PdsDropdownMenu implements BasePdsProps {\n private slotEl: HTMLSlotElement;\n private triggerEl: HTMLElement;\n private panelEl: HTMLPdsBoxElement;\n private isOpen: boolean = false;\n private menuItems: HTMLPdsDropdownMenuItemElement[] = [];\n\n @Element() host: HTMLPdsDropdownMenuElement;\n\n @State() currentFocusIndex: number = -1;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * The placement of the dropdown panel relative to the trigger.\n */\n @Prop() placement: PlacementType = 'bottom-start';\n\n componentDidRender() {\n this.panelEl = this.host.shadowRoot?.querySelector('pds-box') as HTMLPdsBoxElement;\n }\n\n private handleTriggerSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n this.triggerEl = assignedElements[0] as HTMLElement;\n this.triggerEl.onclick = this.handleClick;\n\n // Add accessibility attributes to trigger\n this.triggerEl.setAttribute('aria-haspopup', 'menu');\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n private handleSlotChange = (event: Event) => {\n this.slotEl = event.target as HTMLSlotElement;\n\n // Get all elements assigned to this slot\n const assignedElements = this.slotEl.assignedElements();\n\n // ensure assignedElements only contains pds-dropdown-menu-item or pds-dropdown-menu-separator\n // if there are other elements, throw an error\n const invalidElements = assignedElements.filter(el => el.tagName.toLowerCase() !== 'pds-dropdown-menu-item' && el.tagName.toLowerCase() !== 'pds-dropdown-menu-separator');\n if (invalidElements.length > 0) {\n throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`);\n }\n\n // Store all menu items for keyboard navigation\n this.menuItems = assignedElements.filter(\n el => el.tagName.toLowerCase() === 'pds-dropdown-menu-item'\n ) as HTMLPdsDropdownMenuItemElement[];\n }\n\n // Toggle dropdown open/closed\n private toggleDropdown = () => {\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n }\n\n // Open the dropdown and position it\n private openDropdown = () => {\n computePosition(this.triggerEl, this.panelEl, {\n placement: this.placement,\n middleware: [offset(6), flip(), shift({padding: 5})],\n }).then(({ x, y }) => {\n Object.assign(this.panelEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n });\n\n this.host.shadowRoot?.querySelector('pds-box').classList.remove('is-hidden');\n this.isOpen = true;\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Close the dropdown\n private closeDropdown = () => {\n this.host.shadowRoot?.querySelector('pds-box').classList.add('is-hidden');\n this.isOpen = false;\n\n // Update ARIA attributes\n this.triggerEl.setAttribute('aria-expanded', 'false');\n\n // Reset focus index\n this.currentFocusIndex = -1;\n\n // Return focus to trigger\n this.triggerEl.focus();\n }\n\n // Handle click on the trigger element\n private handleClick = () => {\n this.toggleDropdown();\n }\n\n // Get the index of the currently focused menu item\n private getFocusedItemIndex(): number {\n const activeElement = document.activeElement as HTMLPdsDropdownMenuItemElement | null;\n if (!activeElement) return -1;\n return this.menuItems.findIndex(item => item === activeElement);\n }\n\n // Focus a specific menu item by index\n private focusItemByIndex(index: number): void {\n if (index >= 0 && index < this.menuItems.length) {\n this.currentFocusIndex = index;\n\n // Focus the inner button/link instead of the host element\n const menuItem = this.menuItems[index];\n const innerButton = menuItem.shadowRoot?.querySelector('button');\n const innerLink = menuItem.shadowRoot?.querySelector('pds-link')?.shadowRoot?.querySelector('a');\n\n if (innerButton) {\n return innerButton.focus();\n } else if (innerLink) {\n return innerLink.focus();\n } else {\n // Fallback to focusing the host if we can't find the inner element\n menuItem.focus();\n }\n }\n }\n\n // Focus the next menu item\n private focusNextItem(): void {\n let nextIndex = (this.currentFocusIndex + 1) % this.menuItems.length;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.menuItems[nextIndex].disabled) {\n nextIndex = (nextIndex + 1) % this.menuItems.length;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(nextIndex);\n }\n }\n\n // Focus the previous menu item\n private focusPreviousItem(): void {\n let prevIndex = this.currentFocusIndex <= 0\n ? this.menuItems.length - 1\n : this.currentFocusIndex - 1;\n\n // Skip disabled items\n let attempts = 0;\n const maxAttempts = this.menuItems.length;\n\n while (attempts < maxAttempts && this.menuItems[prevIndex].disabled) {\n prevIndex = prevIndex <= 0 ? this.menuItems.length - 1 : prevIndex - 1;\n attempts++;\n }\n\n // Only focus if we found a non-disabled item\n if (attempts < maxAttempts) {\n this.focusItemByIndex(prevIndex);\n }\n }\n\n // Handle keyboard events for the dropdown\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem();\n break;\n\n case 'Home':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find first non-disabled item\n let firstIndex = 0;\n while (firstIndex < this.menuItems.length && this.menuItems[firstIndex].disabled) {\n firstIndex++;\n }\n if (firstIndex < this.menuItems.length) {\n this.focusItemByIndex(firstIndex);\n }\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (this.menuItems.length > 0) {\n // Find last non-disabled item\n let lastIndex = this.menuItems.length - 1;\n while (lastIndex >= 0 && this.menuItems[lastIndex].disabled) {\n lastIndex--;\n }\n if (lastIndex >= 0) {\n this.focusItemByIndex(lastIndex);\n }\n }\n break;\n\n case 'Tab':\n if (event.shiftKey) {\n // Let Shift+Tab navigate naturally from first item to trigger\n // For all other items, move to previous item\n const currentIndex = this.getFocusedItemIndex();\n\n if (currentIndex > 0) {\n // If not on first item, prevent default and go to previous item\n event.preventDefault();\n this.focusPreviousItem(); // Use our method that skips disabled items\n }\n // If on first item or no item, let natural tab order move back to trigger\n } else {\n // Forward Tab navigation\n const activeElement = document.activeElement;\n const isTriggerFocused = activeElement === this.triggerEl;\n const currentIndex = this.getFocusedItemIndex();\n\n if (isTriggerFocused && this.menuItems.length > 0) {\n // If trigger is focused, move to first non-disabled menu item\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex === -1 && this.menuItems.length > 0) {\n // If no menu item is focused, focus the first non-disabled one\n event.preventDefault();\n\n // Find the first non-disabled item\n let firstFocusableIndex = 0;\n while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {\n firstFocusableIndex++;\n }\n\n if (firstFocusableIndex < this.menuItems.length) {\n this.focusItemByIndex(firstFocusableIndex);\n }\n } else if (currentIndex !== -1) {\n // Use our method that skips disabled items\n event.preventDefault();\n this.focusNextItem();\n }\n }\n break;\n }\n }\n\n // Handle clicks outside the dropdown to close it\n @Listen('click', { target: 'window' })\n handleWindowClick(event: MouseEvent) {\n if (this.isOpen && !this.host.contains(event.target as Node) && event.target !== this.triggerEl) {\n this.closeDropdown();\n }\n }\n\n\n render() {\n return (\n <Host id={this.componentId}>\n <slot\n name=\"trigger\"\n onSlotchange={this.handleTriggerSlotChange}\n ></slot>\n <pds-box\n border-radius=\"sm\"\n display=\"flex\"\n direction=\"column\"\n class=\"pds-dropdown-menu--panel is-hidden\"\n shadow=\"100\"\n role=\"menu\"\n aria-orientation=\"vertical\"\n >\n <slot onSlotchange={this.handleSlotChange}></slot>\n </pds-box>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,r,i,n){function t(e){return e instanceof i?e:new i((function(r){r(e)}))}return new(i||(i=Promise))((function(i,s){function o(e){try{a(n.next(e))}catch(e){s(e)}}function d(e){try{a(n["throw"](e))}catch(e){s(e)}}function a(e){e.done?i(e.value):t(e.value).then(o,d)}a((n=n.apply(e,r||[])).next())}))};var __generator=this&&this.__generator||function(e,r){var i={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,t,s,o;return o={next:d(0),throw:d(1),return:d(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function d(e){return function(r){return a([e,r])}}function a(d){if(n)throw new TypeError("Generator is already executing.");while(o&&(o=0,d[0]&&(i=0)),i)try{if(n=1,t&&(s=d[0]&2?t["return"]:d[0]?t["throw"]||((s=t["return"])&&s.call(t),0):t.next)&&!(s=s.call(t,d[1])).done)return s;if(t=0,s)d=[d[0]&2,s.value];switch(d[0]){case 0:case 1:s=d;break;case 4:i.label++;return{value:d[1],done:false};case 5:i.label++;t=d[1];d=[0];continue;case 7:d=i.ops.pop();i.trys.pop();continue;default:if(!(s=i.trys,s=s.length>0&&s[s.length-1])&&(d[0]===6||d[0]===2)){i=0;continue}if(d[0]===3&&(!s||d[1]>s[0]&&d[1]<s[3])){i.label=d[1];break}if(d[0]===6&&i.label<s[1]){i.label=s[1];s=d;break}if(s&&i.label<s[2]){i.label=s[2];i.ops.push(d);break}if(s[2])i.ops.pop();i.trys.pop();continue}d=r.call(e,i)}catch(e){d=[6,e];t=0}finally{n=s=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:true}}};System.register(["./p-Cxvdulqq.system.js","./p-BG7_qxVr.system.js","./p-BhQhw0S3.system.js","./p-BG6uGRQj.system.js","./p-BSkbMuB5.system.js"],(function(e){"use strict";var r,i,n,t,s,o,d,a,p,l;return{setters:[function(e){r=e.r;i=e.c;n=e.h;t=e.H;s=e.g},function(e){o=e.a;d=e.m},function(e){a=e.i},function(e){p=e.d},function(e){l=e.i}],execute:function(){var u=":host{--pine-input-color-background-danger:var(--pine-color-red-050)}";var c=":host{display:inline-block}:host([aria-disabled=true]) label{color:var(--pine-color-text-label-disabled)}:host([aria-readonly=true]) label{color:var(--pine-color-text-label-readonly)}label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";var h=":host{--pds-input-background:var(--pine-color-background-container);--pds-input-border-color:var(--pine-color-border);--pds-input-border-color-hover:var(--pine-color-border-hover);--pds-input-border-color-disabled:var(--pine-color-border-disabled);--pds-input-border-radius:var(--pine-dimension-125);--pds-input-border-width:var(--pine-border-width-thin);--pds-input-padding-x:var(--pine-dimension-150);--pds-input-padding-y:calc(var(--pine-dimension-xs) - var(--pine-border-width));--pds-input-font:var(--pine-typography-body);--pds-input-text-color:var(--pine-color-text-active);--pds-input-placeholder-color:var(--pine-color-text-placeholder);--pds-input-icon-color:var(--pine-color-text-secondary);--pds-input-disabled-background:var(--pine-color-background-container-disabled);--pds-input-disabled-text-color:var(--pine-color-text-disabled);--pds-input-error-color:var(--pine-color-text-message-danger);--pds-input-error-background:var(--pine-input-color-background-danger);--pds-input-error-border:var(--pine-color-border-danger);--pds-input-error-border-hover:var(--pine-color-border-danger-hover);--pds-input-addon-background:var(--pine-color-background-subtle);--pds-input-addon-color:var(--pine-color-text-secondary);--pds-input-field-min-height:var(--pine-dimension-450);--box-shadow-focus:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);--box-shadow-focus-error:0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger);display:inline}:host pds-select::part(select){background-color:var(--pds-input-error-background);border-color:var(--pds-input-error-border)}:host::part(prefix),:host::part(suffix){-ms-flex-align:center;align-items:center;color:var(--pine-color-text-label-readonly);display:-ms-flexbox;display:flex;height:100%;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);white-space:nowrap;z-index:1}:host::part(prefix){border-end-start-radius:var(--pds-input-border-radius);-webkit-border-end:var(--pine-border-width-none);border-inline-end:var(--pine-border-width-none);border-start-start-radius:var(--pds-input-border-radius);left:var(--pds-input-padding-x)}:host::part(suffix){border-end-end-radius:var(--pds-input-border-radius);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);border-start-end-radius:var(--pds-input-border-radius);right:var(--pds-input-padding-x)}:host::part(prepend),:host::part(append){-ms-flex-align:center;align-items:center;background-color:var(--pds-input-addon-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color);color:var(--pds-input-addon-color);display:-ms-flexbox;display:flex}:host::part(prepend){border-end-start-radius:var(--pds-input-border-radius);-webkit-border-end:var(--pine-border-width-none);border-inline-end:var(--pine-border-width-none);border-start-start-radius:var(--pds-input-border-radius)}:host::part(append){border-end-end-radius:var(--pds-input-border-radius);-webkit-border-start:var(--pine-border-width-none);border-inline-start:var(--pine-border-width-none);border-start-end-radius:var(--pds-input-border-radius)}:host([has-prepend]) ::slotted(pds-button[slot=prepend]){--pds-button-background:var(--pds-input-addon-background);--pds-button-border:var(--pine-border-width-none);--pds-button-border-radius-end-end:var(--pine-dimension-none);--pds-button-border-radius-start-end:var(--pine-dimension-none);--pds-button-min-height:var(--pine-dimension-450)}:host([has-append]) ::slotted(pds-button[slot=append]){--pds-button-background:var(--pds-input-addon-background);--pds-button-border:var(--pine-border-width-none);--pds-button-border-radius-end-start:var(--pine-dimension-none);--pds-button-border-radius-start-start:var(--pine-dimension-none);--pds-button-min-height:var(--pine-dimension-450)}:host([has-prepend]) ::slotted(pds-select[slot=prepend]){--pds-select-background:var(--pds-input-addon-background);--pds-select-border:var(--pine-border-width-none);--pds-select-border-radius-end-end:var(--pine-dimension-none);--pds-select-border-radius-start-end:var(--pine-dimension-none);--pds-select-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)))}:host([has-append]) ::slotted(pds-select[slot=append]){--pds-select-background:var(--pds-input-addon-background);--pds-select-border:var(--pine-border-width-none);--pds-select-border-radius-end-start:var(--pine-dimension-none);--pds-select-border-radius-start-start:var(--pine-dimension-none);--pds-select-min-height:calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)))}:host([aria-readonly=true]) input{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}:host([disabled=true])::part(prepend),:host([disabled=true])::part(append){background-color:var(--pds-input-disabled-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color-disabled)}:host([full-width=true]){width:100%}:host([invalid=true])::part(prepend),:host([invalid=true])::part(append){background-color:var(--pds-input-error-background);border:var(--pds-input-border-width) solid var(--pds-input-error-border)}.pds-input{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.pds-input__label-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-input__label{color:var(--pine-color-text-active);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-input__label-wrapper .pds-input__label{-webkit-margin-after:0;margin-block-end:0}.pds-input__action{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}.pds-input__field-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-input__field-wrapper.has-prefix .pds-input__field{-webkit-padding-start:calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em));padding-inline-start:calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em))}.pds-input__field-wrapper.has-suffix .pds-input__field{-webkit-padding-end:calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em));padding-inline-end:calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em))}.pds-input__field-wrapper.has-prepend .pds-input__field{border-end-start-radius:var(--pine-dimension-none);border-start-start-radius:var(--pine-dimension-none)}.pds-input__field-wrapper.has-append .pds-input__field{border-end-end-radius:var(--pine-dimension-none);border-start-end-radius:var(--pine-dimension-none)}.pds-input__field{background:var(--pds-input-background);border:var(--pds-input-border-width) solid var(--pds-input-border-color);border-radius:var(--pds-input-border-radius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pds-input-text-color);-ms-flex:1;flex:1;font:var(--pds-input-font);letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-input-field-min-height);min-width:var(--pine-dimension-none);padding:var(--pds-input-padding-y) var(--pds-input-padding-x);-webkit-transition:border-color 0.2s ease;transition:border-color 0.2s ease;width:100%}.pds-input__field:hover:not(:disabled){border-color:var(--pds-input-border-color-hover)}.pds-input__field:disabled{background:var(--pds-input-disabled-background);border-color:var(--pine-color-border-disabled);color:var(--pds-input-disabled-text-color);cursor:not-allowed}.pds-input__field:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-input__field:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.has-error .pds-input__field:hover:not(:disabled){border-color:var(--pds-input-error-border-hover)}.pds-input__field:focus-visible:not(.has-error){border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host([has-prepend]) .pds-input__field:focus-visible:not(.has-error),:host([has-append]) .pds-input__field:focus-visible:not(.has-error),:host([has-prefix]) .pds-input__field:focus-visible:not(.has-error),:host([has-suffix]) .pds-input__field:focus-visible:not(.has-error){outline-offset:var(--pine-dimension-none)}.pds-input__field::-webkit-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::-moz-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field:-ms-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::-ms-input-placeholder{color:var(--pds-input-placeholder-color)}.pds-input__field::placeholder{color:var(--pds-input-placeholder-color)}.has-error .pds-input__field{background-color:var(--pds-input-error-background);border-color:var(--pds-input-error-border)}.has-error .pds-input__field:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-input__error-message,.pds-input__helper-message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm);-webkit-margin-after:var(--pine-dimension-none);margin-block-end:var(--pine-dimension-none);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-input__error-message{-ms-flex-align:center;align-items:center;color:var(--pds-input-error-color);display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.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}";var f=e("pds_input",function(){function e(e){var n=this;r(this,e);this.pdsBlur=i(this,"pdsBlur");this.pdsChange=i(this,"pdsChange");this.pdsFocus=i(this,"pdsFocus");this.pdsInput=i(this,"pdsInput");this.inheritedAttributes={};this.isComposing=false;this.hasPrefix=false;this.hasSuffix=false;this.hasPrepend=false;this.hasAppend=false;this.hasAction=false;this.type="text";this.value="";this.hasFocus=false;this.onInputEvent=function(e){var r=e.target;if(r){n.value=r.value||""}n.emitInputChange(e)};this.onChangeEvent=function(e){n.emitValueChange(e)};this.onBlurEvent=function(e){n.hasFocus=false;if(n.focusedValue!==n.value){n.emitValueChange(e)}n.pdsBlur.emit(e)};this.onFocusEvent=function(e){n.hasFocus=true;n.focusedValue=n.value;n.pdsFocus.emit(e)};this.onCompositionStart=function(){n.isComposing=true};this.onCompositionEnd=function(){n.isComposing=false}}e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.nativeInput){this.nativeInput.focus()}return[2]}))}))};e.prototype.updateAddonWidths=function(){var e=this;requestAnimationFrame((function(){if(e.prefixEl){var r=e.prefixEl.offsetWidth;e.el.style.setProperty("--prefix-width","".concat(r,"px"))}if(e.suffixEl){var i=e.suffixEl.offsetWidth;e.el.style.setProperty("--suffix-width","".concat(i,"px"))}}))};e.prototype.renderPrefix=function(){var e=this;var r=this.el.querySelector('[slot="prefix"]')!==null;if(r){return n("div",{class:"pds-input__prefix",part:"prefix",ref:function(r){return e.prefixEl=r}},n("slot",{name:"prefix",onSlotchange:function(){return e.updateAddonWidths()}}))}return null};e.prototype.renderSuffix=function(){var e=this;var r=this.el.querySelector('[slot="suffix"]')!==null;if(r){return n("div",{class:"pds-input__suffix",part:"suffix",ref:function(r){return e.suffixEl=r}},n("slot",{name:"suffix",onSlotchange:function(){return e.updateAddonWidths()}}))}return null};e.prototype.renderPrepend=function(){var e=this.el.querySelector('[slot="prepend"]')!==null;if(e){return n("div",{class:"pds-input__prepend",part:"prepend"},n("slot",{name:"prepend"}))}return null};e.prototype.renderAppend=function(){var e=this.el.querySelector('[slot="append"]')!==null;if(e){return n("div",{class:"pds-input__append",part:"append"},n("slot",{name:"append"}))}return null};e.prototype.renderAction=function(){var e=this.el.querySelector('[slot="action"]')!==null;if(e){return n("div",{class:"pds-input__action",part:"action"},n("slot",{name:"action"}))}return null};e.prototype.componentWillLoad=function(){this.inheritedAttributes=Object.assign({},a(this.el));this.hasPrefix=this.el.querySelector('[slot="prefix"]')!==null;this.hasSuffix=this.el.querySelector('[slot="suffix"]')!==null;this.hasPrepend=this.el.querySelector('[slot="prepend"]')!==null;this.hasAppend=this.el.querySelector('[slot="append"]')!==null;this.hasAction=this.el.querySelector('[slot="action"]')!==null;this.originalPdsInput=this.pdsInput};e.prototype.connectedCallback=function(){if(this.el.attachInternals){this.internals=this.el.attachInternals()}};e.prototype.componentDidLoad=function(){this.debounceChanged();this.updateAddonWidths();this.updateFormValue()};e.prototype.componentDidUpdate=function(){this.updateAddonWidths()};e.prototype.debounceChanged=function(){var e=this,r=e.pdsInput,i=e.debounce,n=e.originalPdsInput;this.pdsInput=i===undefined?n!==null&&n!==void 0?n:r:p(r,i)};e.prototype.valueChanged=function(){var e=this.nativeInput;var r=this.getValue();if(e&&e.value!==r&&!this.isComposing){e.value=r}this.updateFormValue()};e.prototype.getValue=function(){return typeof this.value==="number"?this.value.toString():(this.value||"").toString()};e.prototype.emitValueChange=function(e){var r=this.value;var i=r==null?r:r.toString();this.focusedValue=i;this.pdsChange.emit({value:i,event:e})};e.prototype.emitInputChange=function(e){var r=this.value;var i=r==null?r:r.toString();this.pdsInput.emit({value:i,event:e})};e.prototype.updateFormValue=function(){if(this.internals&&this.internals.setFormValue){var e=this.getValue();this.internals.setFormValue(e||null);if(this.nativeInput&&this.internals&&this.internals.setValidity){this.internals.setValidity(this.nativeInput.validity,this.nativeInput.validationMessage,this.nativeInput)}}};e.prototype.formResetCallback=function(){this.value="";this.updateFormValue()};e.prototype.formDisabledCallback=function(e){this.disabled=e};e.prototype.formStateRestoreCallback=function(e){if(typeof e==="string"){this.value=e}else if(e instanceof FormData&&this.name){var r=e.get(this.name);if(typeof r==="string"){this.value=r}}};e.prototype.render=function(){var e=this;var r=this,i=r.componentId,s=r.disabled,a=r.errorMessage,p=r.helperMessage,u=r.invalid,c=u===void 0?false:u,h=r.label;var f=this.getValue();var b={"pds-input__field-wrapper":true,"has-focus":this.hasFocus,"has-error":c||!!a,"is-disabled":s,"has-prefix":this.hasPrefix,"has-suffix":this.hasSuffix,"has-prepend":this.hasPrepend,"has-append":this.hasAppend};return n(t,{key:"354d45806da5e4b1c7a40f08f78d969b67e590ec","aria-disabled":this.disabled?"true":null,"aria-readonly":this.readonly?"true":null,"has-prefix":this.hasPrefix?"true":null,"has-suffix":this.hasSuffix?"true":null,"has-prepend":this.hasPrepend?"true":null,"has-append":this.hasAppend?"true":null,"has-action":this.hasAction&&!this.hideLabel?"true":null,"full-width":this.fullWidth?"true":null},n("div",{key:"9298d99d233733fd4da14ae3e47f9f111539b976",class:"pds-input"},h&&n("div",{key:"ade5fa1c70587487d62f5c3f8f50c3c567ca1f76",class:"pds-input__label-wrapper"},n("label",{key:"86a3a890317e2bf4e8d0b0cdc2d4ea10c8656a9f",htmlFor:i,class:"pds-input__label"},n("span",{key:"279a7b4540cd984a7c99a083f18b7a1854415ef1",class:this.hideLabel?"visually-hidden":""},h,this.required&&n("span",{key:"a12223c985ae3a6474a1ea6cb850a500c38af4e4",class:"pds-input__required-indicator"}," *"))),!this.hideLabel&&this.renderAction()),n("div",{key:"1b618690bbe9178b9b4c917fb7894ec2c17ac563",class:b},this.renderPrepend(),this.renderPrefix(),n("input",Object.assign({key:"171361ec863409965e71b96a636c6c5450047bf6",ref:function(r){return e.nativeInput=r},class:"pds-input__field","aria-describedby":o(i,c,p),"aria-invalid":c?"true":undefined,autocomplete:this.autocomplete,disabled:s,id:i,max:this.max,maxlength:this.maxlength,min:this.min,minlength:this.minlength,name:this.name,pattern:this.pattern,placeholder:this.placeholder,readOnly:this.readonly,required:this.required,step:this.step,type:this.type,value:f,onInput:this.onInputEvent,onChange:this.onChangeEvent,onBlur:this.onBlurEvent,onFocus:this.onFocusEvent,onCompositionstart:this.onCompositionStart,onCompositionend:this.onCompositionEnd},this.inheritedAttributes)),this.renderSuffix(),this.renderAppend()),p&&n("p",{key:"22f2f1d5efe8c9178bb2eecba072de728826f0c0",class:"pds-input__helper-message",id:d(i,"helper")},p),a&&n("p",{key:"d13ca2940f42cfaac744db106dbd5c6442fdd7e0",class:"pds-input__error-message",id:d(i,"error")},n("pds-icon",{key:"a1622ddd2868470683a2413893cb87d7479acde1",icon:l,size:"small"}),a)))};Object.defineProperty(e,"formAssociated",{get:function(){return true},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"el",{get:function(){return s(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{debounce:["debounceChanged"],value:["valueChanged"]}},enumerable:false,configurable:true});return e}());f.style=u+(c+h)}}}));
|
|
2
|
-
//# sourceMappingURL=p-e03b7f4a.system.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pdsInputTokensCss","labelCss","pdsInputCss","PdsInput","exports","class_1","hostRef","_this","this","inheritedAttributes","isComposing","hasPrefix","hasSuffix","hasPrepend","hasAppend","hasAction","type","value","hasFocus","onInputEvent","ev","input","target","emitInputChange","onChangeEvent","emitValueChange","onBlurEvent","focusedValue","pdsBlur","emit","onFocusEvent","pdsFocus","onCompositionStart","onCompositionEnd","prototype","setFocus","nativeInput","focus","updateAddonWidths","requestAnimationFrame","prefixEl","prefixWidth","offsetWidth","el","style","setProperty","concat","suffixEl","suffixWidth","renderPrefix","querySelector","h","class","part","ref","name","onSlotchange","renderSuffix","renderPrepend","renderAppend","renderAction","componentWillLoad","Object","assign","inheritAriaAttributes","originalPdsInput","pdsInput","connectedCallback","attachInternals","internals","componentDidLoad","debounceChanged","updateFormValue","componentDidUpdate","_a","debounce","undefined","debounceEvent","valueChanged","getValue","toString","event","newValue","pdsChange","setFormValue","setValidity","validity","validationMessage","formResetCallback","formDisabledCallback","disabled","formStateRestoreCallback","state","FormData","get","render","componentId","errorMessage","helperMessage","_b","invalid","label","inputWrapperClasses","Host","key","readonly","hideLabel","fullWidth","htmlFor","required","assignDescription","autocomplete","id","max","maxlength","min","minlength","pattern","placeholder","readOnly","step","onInput","onChange","onBlur","onFocus","onCompositionstart","onCompositionend","messageId","icon","danger","size"],"sources":["src/components/pds-input/pds-input.tokens.scss?tag=pds-input&encapsulation=shadow","src/global/styles/utils/label.scss?tag=pds-input&encapsulation=shadow","src/components/pds-input/pds-input.scss?tag=pds-input&encapsulation=shadow","src/components/pds-input/pds-input.tsx"],"sourcesContent":["@use '~@kajabi-ui/styles/dist/pine/components/pds-input/pds-input.tokens'\n",":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n",":host {\n --pds-input-background: var(--pine-color-background-container);\n --pds-input-border-color: var(--pine-color-border);\n --pds-input-border-color-hover: var(--pine-color-border-hover);\n --pds-input-border-color-disabled: var(--pine-color-border-disabled);\n\n --pds-input-border-radius: var(--pine-dimension-125);\n --pds-input-border-width: var(--pine-border-width-thin);\n --pds-input-padding-x: var(--pine-dimension-150);\n --pds-input-padding-y: calc(var(--pine-dimension-xs) - var(--pine-border-width));\n --pds-input-font: var(--pine-typography-body);\n --pds-input-text-color: var(--pine-color-text-active);\n --pds-input-placeholder-color: var(--pine-color-text-placeholder);\n --pds-input-icon-color: var(--pine-color-text-secondary);\n --pds-input-disabled-background: var(--pine-color-background-container-disabled);\n --pds-input-disabled-text-color: var(--pine-color-text-disabled);\n --pds-input-error-color: var(--pine-color-text-message-danger);\n --pds-input-error-background: var(--pine-input-color-background-danger);\n --pds-input-error-border: var(--pine-color-border-danger);\n --pds-input-error-border-hover: var(--pine-color-border-danger-hover);\n --pds-input-addon-background: var(--pine-color-background-subtle);\n --pds-input-addon-color: var(--pine-color-text-secondary);\n --pds-input-field-min-height: var(--pine-dimension-450);\n --box-shadow-focus: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring);\n --box-shadow-focus-error: 0 0 0 1px #ffffff, 0 0 0 3px var(--pine-color-focus-ring-danger);\n\n display: inline;\n\n pds-select::part(select) {\n background-color: var(--pds-input-error-background);\n border-color: var(--pds-input-error-border);\n }\n\n &::part(prefix),\n &::part(suffix) {\n align-items: center;\n color: var(--pine-color-text-label-readonly);\n display: flex;\n height: 100%;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n white-space: nowrap;\n z-index: 1;\n }\n\n &::part(prefix) {\n border-end-start-radius: var(--pds-input-border-radius);\n border-inline-end: var(--pine-border-width-none);\n border-start-start-radius: var(--pds-input-border-radius);\n left: var(--pds-input-padding-x);\n }\n\n &::part(suffix) {\n border-end-end-radius: var(--pds-input-border-radius);\n border-inline-start: var(--pine-border-width-none);\n border-start-end-radius: var(--pds-input-border-radius);\n right: var(--pds-input-padding-x);\n }\n\n &::part(prepend),\n &::part(append) {\n align-items: center;\n background-color: var(--pds-input-addon-background);\n border: var(--pds-input-border-width) solid var(--pds-input-border-color);\n color: var(--pds-input-addon-color);\n display: flex;\n }\n\n &::part(prepend) {\n border-end-start-radius: var(--pds-input-border-radius);\n border-inline-end: var(--pine-border-width-none);\n border-start-start-radius: var(--pds-input-border-radius);\n }\n\n &::part(append) {\n border-end-end-radius: var(--pds-input-border-radius);\n border-inline-start: var(--pine-border-width-none);\n border-start-end-radius: var(--pds-input-border-radius);\n }\n}\n\n/* stylelint-disable-next-line */\n:host([has-prepend]) ::slotted(pds-button[slot=\"prepend\"]) {\n --pds-button-background: var(--pds-input-addon-background);\n --pds-button-border: var(--pine-border-width-none);\n --pds-button-border-radius-end-end: var(--pine-dimension-none);\n --pds-button-border-radius-start-end: var(--pine-dimension-none);\n --pds-button-min-height: var(--pine-dimension-450);\n}\n\n/* stylelint-disable-next-line */\n:host([has-append]) ::slotted(pds-button[slot=\"append\"]) {\n --pds-button-background: var(--pds-input-addon-background);\n --pds-button-border: var(--pine-border-width-none);\n --pds-button-border-radius-end-start: var(--pine-dimension-none);\n --pds-button-border-radius-start-start: var(--pine-dimension-none);\n --pds-button-min-height: var(--pine-dimension-450);\n}\n\n/* stylelint-disable-next-line */\n:host([has-prepend]) ::slotted(pds-select[slot=\"prepend\"]) {\n --pds-select-background: var(--pds-input-addon-background);\n --pds-select-border: var(--pine-border-width-none);\n --pds-select-border-radius-end-end: var(--pine-dimension-none);\n --pds-select-border-radius-start-end: var(--pine-dimension-none);\n --pds-select-min-height: calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)));\n}\n\n/* stylelint-disable-next-line */\n:host([has-append]) ::slotted(pds-select[slot=\"append\"]) {\n --pds-select-background: var(--pds-input-addon-background);\n --pds-select-border: var(--pine-border-width-none);\n --pds-select-border-radius-end-start: var(--pine-dimension-none);\n --pds-select-border-radius-start-start: var(--pine-dimension-none);\n --pds-select-min-height: calc(var(--pine-dimension-450) - calc(2 * var(--pine-border-width)));\n}\n\n:host([aria-readonly=\"true\"]) {\n input {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n}\n\n:host([disabled=\"true\"]) {\n &::part(prepend),\n &::part(append) {\n background-color: var(--pds-input-disabled-background);\n border: var(--pds-input-border-width) solid var(--pds-input-border-color-disabled);\n }\n}\n\n:host([full-width=\"true\"]) {\n width: 100%;\n}\n\n:host([invalid=\"true\"]) {\n &::part(prepend),\n &::part(append) {\n background-color: var(--pds-input-error-background);\n border: var(--pds-input-border-width) solid var(--pds-input-error-border);\n }\n}\n\n.pds-input {\n display: flex;\n flex-direction: column;\n}\n\n.pds-input__label-wrapper {\n align-items: center;\n display: flex;\n justify-content: space-between;\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n.pds-input__label {\n color: var(--pine-color-text-active);\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n// When label is inside wrapper, remove its margin\n.pds-input__label-wrapper .pds-input__label {\n margin-block-end: 0;\n}\n\n.pds-input__action {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-xs);\n margin-inline-start: var(--pine-dimension-xs);\n}\n\n.pds-input__field-wrapper {\n align-items: center;\n display: flex;\n position: relative;\n width: 100%;\n\n &.has-prefix .pds-input__field {\n padding-inline-start: calc(2 * var(--pds-input-padding-x) + var(--prefix-width, 1em));\n }\n\n &.has-suffix .pds-input__field {\n padding-inline-end: calc(2 * var(--pds-input-padding-x) + var(--suffix-width, 1em));\n }\n\n &.has-prepend .pds-input__field {\n border-end-start-radius: var(--pine-dimension-none);\n border-start-start-radius: var(--pine-dimension-none);\n }\n\n &.has-append .pds-input__field {\n border-end-end-radius: var(--pine-dimension-none);\n border-start-end-radius: var(--pine-dimension-none);\n }\n}\n\n.pds-input__field {\n background: var(--pds-input-background);\n border: var(--pds-input-border-width) solid var(--pds-input-border-color);\n border-radius: var(--pds-input-border-radius);\n box-sizing: border-box;\n color: var(--pds-input-text-color);\n flex: 1;\n font: var(--pds-input-font);\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pds-input-field-min-height);\n min-width: var(--pine-dimension-none);\n padding: var(--pds-input-padding-y) var(--pds-input-padding-x);\n transition: border-color 0.2s ease;\n width: 100%;\n\n &:hover:not(:disabled) {\n border-color: var(--pds-input-border-color-hover);\n }\n\n &:disabled {\n background: var(--pds-input-disabled-background);\n border-color: var(--pine-color-border-disabled);\n color: var(--pds-input-disabled-text-color);\n cursor: not-allowed;\n\n &::placeholder {\n color: var(--pine-color-text-placeholder-disabled);\n }\n }\n\n .has-error &:hover:not(:disabled) {\n border-color: var(--pds-input-error-border-hover);\n }\n\n &:focus-visible:not(.has-error) {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n\n :host([has-prepend]) &,\n :host([has-append]) &,\n :host([has-prefix]) &,\n :host([has-suffix]) & {\n outline-offset: var(--pine-dimension-none);\n }\n }\n\n &::placeholder {\n color: var(--pds-input-placeholder-color);\n }\n\n .has-error & {\n background-color: var(--pds-input-error-background);\n border-color: var(--pds-input-error-border);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n.pds-input__error-message,\n.pds-input__helper-message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm);\n margin-block-end: var(--pine-dimension-none);\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n.pds-input__error-message {\n align-items: center;\n color: var(--pds-input-error-color);\n display: flex;\n gap: var(--pine-dimension-2xs);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { inheritAriaAttributes } from '@utils/attributes';\nimport type { Attributes } from '@utils/attributes';\nimport { InputChangeEventDetail, InputInputEventDetail } from './input-interface';\nimport { debounceEvent } from '@utils/utils';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot append - Content to be displayed after the input field\n * @slot prefix - Content that is displayed visually within the input field before the input field\n * @slot prepend - Content to be displayed before the input field\n * @slot suffix - Content that is displayed visually within the input field after the input field\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-input',\n styleUrls: ['pds-input.tokens.scss', '../../global/styles/utils/label.scss', 'pds-input.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsInput {\n\n private nativeInput?: HTMLInputElement;\n private inheritedAttributes: Attributes = {};\n private isComposing = false;\n private prefixEl?: HTMLElement;\n private suffixEl?: HTMLElement;\n private focusedValue?: string | number | null;\n private originalPdsInput?: EventEmitter<InputInputEventDetail>;\n private internals?: ElementInternals;\n\n @Element() el!: HTMLPdsInputElement;\n\n /**\n * If true, the input has prefix content (non-focusable)\n */\n @State() hasPrefix = false;\n\n /**\n * If true, the input has suffix content (non-focusable)\n */\n @State() hasSuffix = false;\n\n /**\n * If true, the input has prepend content (focusable)\n */\n @State() hasPrepend = false;\n\n /**\n * If true, the input has append content (focusable)\n */\n @State() hasAppend = false;\n\n /**\n * If true, the input has action content in the label area\n */\n @State() hasAction = false;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the value has changed.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsChange!: EventEmitter<InputChangeEventDetail>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n */\n @Event() pdsInput: EventEmitter<InputInputEventDetail>;\n\n /**\n * Sets focus on the native `input` in the `pds-input`. Use this method instead of the global\n * `input.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets the number of milliseconds to wait before updating the value.\n */\n @Prop() debounce?: number;\n\n /**\n * Determines whether or not the input field is disabled.\n */\n @Prop() disabled?: boolean;\n\n /**\n * Specifies the error message and provides an error-themed treatment to the field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the input field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the input field is invalid or throws an error.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the input label.\n */\n @Prop() label?: string;\n\n /**\n * Visually hides the label text for instances where only the input should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Specifies the maximum value for the input field.\n */\n @Prop() max?: string;\n\n /**\n * Specifies the maximum number of characters allowed in the input field.\n */\n @Prop() maxlength?: string;\n\n /**\n * Specifies the minimum value for the input field.\n */\n @Prop() min?: string;\n\n /**\n * Specifies the minimum number of characters allowed in the input field.\n */\n @Prop() minlength?: string;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Specifies the regular expression that the input value is checked against.\n */\n @Prop() pattern?: string;\n\n /**\n * Specifies a short hint that describes the expected value of the input field.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the input field is readonly.\n */\n @Prop() readonly?: boolean;\n\n /**\n * Determines whether or not the input field is required.\n */\n @Prop() required?: boolean;\n\n /**\n * Works with the `min` and `max` attributes to define increments for the input field.\n */\n @Prop() step?: string;\n\n /**\n * Determines the type of control that will be displayed\n * `'email'`, `'number'`, `'password'`, `'tel'`, `'text'`, `'url'`\n * @defaultValue \"text\"\n */\n @Prop() type = 'text';\n\n /**\n * The value of the input.\n */\n @Prop({mutable: true}) value?: string | number | null = '';\n\n /**\n * Determines whether or not the input field takes full width of its container.\n */\n @Prop() fullWidth?: boolean;\n\n /**\n * Determines if the input has focus.\n */\n @State() hasFocus = false;\n\n private updateAddonWidths() {\n requestAnimationFrame(() => {\n if (this.prefixEl) {\n const prefixWidth = this.prefixEl.offsetWidth;\n this.el.style.setProperty('--prefix-width', `${prefixWidth}px`);\n }\n\n if (this.suffixEl) {\n const suffixWidth = this.suffixEl.offsetWidth;\n this.el.style.setProperty('--suffix-width', `${suffixWidth}px`);\n }\n });\n }\n\n private renderPrefix() {\n const hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n if (hasPrefix) {\n return (\n <div class=\"pds-input__prefix\" part=\"prefix\" ref={(el) => this.prefixEl = el as HTMLElement}>\n <slot name=\"prefix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderSuffix() {\n const hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n if (hasSuffix) {\n return (\n <div class=\"pds-input__suffix\" part=\"suffix\" ref={(el) => this.suffixEl = el as HTMLElement}>\n <slot name=\"suffix\" onSlotchange={() => this.updateAddonWidths()}></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderPrepend() {\n const hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n if (hasPrepend) {\n return (\n <div class=\"pds-input__prepend\" part=\"prepend\">\n <slot name=\"prepend\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAppend() {\n const hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n if (hasAppend) {\n return (\n <div class=\"pds-input__append\" part=\"append\">\n <slot name=\"append\"></slot>\n </div>\n );\n }\n return null;\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-input__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el)\n };\n this.hasPrefix = this.el.querySelector('[slot=\"prefix\"]') !== null;\n this.hasSuffix = this.el.querySelector('[slot=\"suffix\"]') !== null;\n this.hasPrepend = this.el.querySelector('[slot=\"prepend\"]') !== null;\n this.hasAppend = this.el.querySelector('[slot=\"append\"]') !== null;\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n\n // Store the original pdsInput event emitter\n this.originalPdsInput = this.pdsInput;\n }\n\n connectedCallback() {\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentDidLoad() {\n this.debounceChanged();\n this.updateAddonWidths();\n // Set initial form value\n this.updateFormValue();\n }\n\n componentDidUpdate() {\n this.updateAddonWidths();\n }\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n /**\n * If debounce is undefined, we have to manually revert the pdsInput emitter in case\n * debounce used to be set to a number. Otherwise, the event would stay debounced.\n */\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n @Watch('value')\n protected valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n\n if (nativeInput && nativeInput.value !== value && !this.isComposing) {\n nativeInput.value = value;\n }\n\n // Update form value when value changes\n this.updateFormValue();\n }\n\n private getValue(): string {\n return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();\n }\n\n private onInputEvent = (ev: Event) => {\n const input = ev.target as HTMLInputElement | null;\n if (input) {\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n };\n\n private onChangeEvent = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onBlurEvent = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n /**\n * Emits the `pdsChange` event when the input value\n * is different than the value when the input was focused.\n */\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocusEvent = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onCompositionStart = () => {\n this.isComposing = true;\n }\n\n private onCompositionEnd = () => {\n this.isComposing = false;\n }\n\n /**\n * Emits a pdsChange event\n */\n private emitValueChange(event?: Event) {\n const { value } = this;\n const newValue = value == null ? value : value.toString();\n\n this.focusedValue = newValue;\n this.pdsChange.emit({ value: newValue, event });\n }\n\n /**\n * Emits a `pdsInput` event\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n\n this.pdsInput.emit({ value: newValue, event });\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native input validation\n if (this.nativeInput && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeInput.validity,\n this.nativeInput.validationMessage,\n this.nativeInput\n );\n }\n }\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the input's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\n }\n\n render() {\n const {\n componentId,\n disabled,\n errorMessage,\n helperMessage,\n invalid = false,\n label,\n } = this;\n\n const value = this.getValue();\n\n const inputWrapperClasses = {\n 'pds-input__field-wrapper': true,\n 'has-focus': this.hasFocus,\n 'has-error': invalid || !!errorMessage,\n 'is-disabled': disabled,\n 'has-prefix': this.hasPrefix,\n 'has-suffix': this.hasSuffix,\n 'has-prepend': this.hasPrepend,\n 'has-append': this.hasAppend,\n };\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-prefix={this.hasPrefix ? 'true' : null}\n has-suffix={this.hasSuffix ? 'true' : null}\n has-prepend={this.hasPrepend ? 'true' : null}\n has-append={this.hasAppend ? 'true' : null}\n has-action={this.hasAction && !this.hideLabel ? 'true' : null}\n full-width={this.fullWidth ? 'true' : null}\n >\n <div class=\"pds-input\">\n {label && (\n <div class=\"pds-input__label-wrapper\">\n <label htmlFor={componentId} class=\"pds-input__label\">\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {label}\n {this.required && <span class=\"pds-input__required-indicator\"> *</span>}\n </span>\n </label>\n {!this.hideLabel && this.renderAction()}\n </div>\n )}\n\n <div class={inputWrapperClasses}>\n {this.renderPrepend()}\n {this.renderPrefix()}\n <input\n ref={(input) => (this.nativeInput = input)}\n class=\"pds-input__field\"\n aria-describedby={assignDescription(componentId, invalid, helperMessage)}\n aria-invalid={invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n disabled={disabled}\n id={componentId}\n max={this.max}\n maxlength={this.maxlength}\n min={this.min}\n minlength={this.minlength}\n name={this.name}\n pattern={this.pattern}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n step={this.step}\n type={this.type}\n value={value}\n onInput={this.onInputEvent}\n onChange={this.onChangeEvent}\n onBlur={this.onBlurEvent}\n onFocus={this.onFocusEvent}\n onCompositionstart={this.onCompositionStart}\n onCompositionend={this.onCompositionEnd}\n {...this.inheritedAttributes}\n />\n {this.renderSuffix()}\n {this.renderAppend()}\n </div>\n\n {helperMessage && (\n <p class=\"pds-input__helper-message\" id={messageId(componentId, 'helper')}>\n {helperMessage}\n </p>\n )}\n\n {errorMessage && (\n <p class=\"pds-input__error-message\" id={messageId(componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {errorMessage}\n </p>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as i,c as e,h as r,H as a}from"./p-Bf1dou5H.js";import{m as s,a as o}from"./p-DTL_39D_.js";import{i as d}from"./p-D4MkIUXU.js";const n=".sc-pds-radio-h{display:inline-block}[aria-disabled=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-disabled)}[aria-readonly=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-readonly)}label.sc-pds-radio{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";const c='.sc-pds-radio-h{--sizing-check-size:6px;--sizing-input-size:var(--pine-dimension-sm);--sizing-margin-block-start:6px;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.is-invalid.sc-pds-radio-h input.sc-pds-radio{border-color:var(--pine-color-border-danger)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:checked{background:var(--pine-color-border-danger)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:checked:hover{background:var(--pine-color-border-danger-hover);border-color:var(--pine-color-border-danger-hover)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.is-invalid.sc-pds-radio-h label.sc-pds-radio,.is-invalid.sc-pds-radio-h .pds-radio__message--error.sc-pds-radio{color:var(--pine-color-text-message-danger)}input.sc-pds-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-border-radius-full);-ms-flex:none;flex:none;height:var(--sizing-input-size);margin:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025);position:relative;width:var(--sizing-input-size)}input.sc-pds-radio:hover{background:var(--pine-color-background-container-hover);border:var(--pine-border-hover)}input.sc-pds-radio:checked{background:var(--pine-color-accent);border-color:var(--pine-color-accent)}input.sc-pds-radio:checked:hover{background:var(--pine-color-accent-hover);border-color:var(--pine-color-accent-hover)}input.sc-pds-radio:checked::after{background:var(--pine-color-background-container);border-radius:var(--pine-border-radius-full);content:"";display:block;height:var(--sizing-check-size);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:var(--sizing-check-size)}input.sc-pds-radio:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);cursor:not-allowed}input.sc-pds-radio:disabled:checked{background-color:var(--pine-color-accent-disabled);border-color:var(--pine-color-border-disabled)}input.sc-pds-radio:disabled:checked::after{border-color:var(--pine-color-border-disabled)}input.sc-pds-radio:disabled+label.sc-pds-radio{cursor:not-allowed}input.sc-pds-radio:disabled~.pds-radio__message.sc-pds-radio{color:var(--pine-color-text-message-disabled)}input.sc-pds-radio:focus-visible{outline:var(--pine-outline-focus)}label.sc-pds-radio{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.visually-hidden.sc-pds-radio{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}.pds-radio__message.sc-pds-radio{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--sizing-margin-block-start);margin-block-start:var(--sizing-margin-block-start);-webkit-margin-start:var(--pine-dimension-md);margin-inline-start:var(--pine-dimension-md);width:100%}.pds-radio__message--error.sc-pds-radio{display:-ms-flexbox;display:flex;font-size:var(--pine-font-size-body-sm);gap:var(--pine-dimension-2xs)}.pds-radio__message--error.sc-pds-radio pds-icon.sc-pds-radio{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}';const t=class{constructor(r){i(this,r);this.pdsRadioChange=e(this,"pdsRadioChange");this.checked=false;this.disabled=false;this.invalid=false;this.required=false;this.handleRadioChange=i=>{if(this.disabled){return}const e=i.target;const r=e.checked;this.pdsRadioChange.emit(r)}}classNames(){const i=[];if(this.invalid){i.push("is-invalid")}if(this.disabled){i.push("is-disabled")}return i.join(" ")}render(){return r(a,{key:"d898e84535e8280a1bec120b0e0b85e6aed57b26",class:this.classNames()},r("label",{key:"c5731c63d8a177258d6e68b63904e348ee063590",htmlFor:this.componentId},r("input",{key:"30bc1cbdaba793c5e2dc85e662c21cb3cf1eded1","aria-describedby":o(this.componentId,this.invalid,this.helperMessage),"aria-invalid":this.invalid?"true":undefined,type:"radio",id:this.componentId,name:this.name,value:this.value,checked:this.checked,required:this.required,disabled:this.disabled,onChange:this.handleRadioChange}),r("span",{key:"c349c5b2397acdf1e2d3cf665570c986e0ca0377",class:this.hideLabel?"visually-hidden":""},this.label)),this.helperMessage&&r("div",{key:"3348ae72477cc9ea7f202b458bbcc6e2cc6b2854",class:"pds-radio__message",id:s(this.componentId,"helper")},this.helperMessage),this.errorMessage&&r("div",{key:"1b698ac0ee37a89f4ced06f9fd5da4a40dbff5a2",class:`pds-radio__message pds-radio__message--error`,id:s(this.componentId,"error"),"aria-live":"assertive"},r("pds-icon",{key:"2b28cedb3277d98bc458b8fe7ac5e49efd28cf1e",icon:d,size:"small"}),this.errorMessage))}};t.style=n+c;export{t as pds_radio};
|
|
2
|
-
//# sourceMappingURL=p-f6b269ac.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["labelCss","pdsRadioCss","PdsRadio","constructor","hostRef","this","checked","disabled","invalid","required","handleRadioChange","e","target","isChecked","pdsRadioChange","emit","classNames","push","join","render","h","Host","key","class","htmlFor","componentId","assignDescription","helperMessage","undefined","type","id","name","value","onChange","hideLabel","label","messageId","errorMessage","icon","danger","size"],"sources":["src/global/styles/utils/label.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n",":host {\n --sizing-check-size: 6px;\n --sizing-input-size: var(--pine-dimension-sm);\n --sizing-margin-block-start: 6px;\n\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n}\n\n:host(.is-invalid) {\n input {\n border-color: var(--pine-color-border-danger);\n\n &:checked {\n background: var(--pine-color-border-danger);\n\n &:hover {\n background: var(--pine-color-border-danger-hover);\n border-color: var(--pine-color-border-danger-hover);\n }\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n\n label,\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\ninput {\n appearance: none;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n flex: none;\n height: var(--sizing-input-size);\n margin: 0;\n margin-block-start: var(--pine-dimension-025);\n position: relative;\n width: var(--sizing-input-size);\n\n &:hover {\n background: var(--pine-color-background-container-hover);\n border: var(--pine-border-hover);\n }\n\n &:checked {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent);\n\n &:hover {\n background: var(--pine-color-accent-hover);\n border-color: var(--pine-color-accent-hover);\n }\n\n &::after {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-border-radius-full);\n content: \"\";\n display: block;\n height: var(--sizing-check-size);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--sizing-check-size);\n }\n }\n\n &:disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n &:checked {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-border-disabled);\n\n &::after {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n + label {\n cursor: not-allowed;\n }\n\n ~ .pds-radio__message {\n color: var(--pine-color-text-message-disabled);\n }\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-xs);\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.pds-radio__message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--sizing-margin-block-start);\n margin-inline-start: var(--pine-dimension-md);\n width: 100%;\n}\n\n.pds-radio__message--error {\n display: flex;\n font-size: var(--pine-font-size-body-sm);\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-radio',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-radio.scss'],\n scoped: true,\n})\nexport class PdsRadio {\n /**\n * Determines whether or not the radio is checked.\n * @defaultValue false\n */\n @Prop() checked = false;\n\n /**\n * A unique identifier used for the underlying component `id` attribute and the label `for` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines whether or not the radio is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Displays error message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Displays helper message text below radio.\n */\n @Prop() helperMessage: string;\n\n /**\n * Determines whether or not the radio is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * String used for label text next to radio.\n */\n @Prop() label: string;\n\n /**\n * Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * String used for radio `name` attribute.\n */\n @Prop() name: string;\n\n /**\n * Determines whether or not the radio is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * The value of the radio that is submitted with a form.\n */\n @Prop() value: string;\n\n /**\n * Emits a boolean indicating whether the checkbox is currently checked or unchecked.\n */\n @Event() pdsRadioChange: EventEmitter<boolean>;\n\n private handleRadioChange = (e: Event) => {\n if (this.disabled) {\n return;\n }\n\n const target = e.target as HTMLInputElement;\n const isChecked = target.checked;\n\n this.pdsRadioChange.emit(isChecked);\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) {\n classNames.push('is-invalid');\n }\n if (this.disabled) {\n classNames.push('is-disabled');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host class={this.classNames()}>\n <label htmlFor={this.componentId}>\n <input\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n type=\"radio\"\n id={this.componentId}\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleRadioChange}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {this.helperMessage &&\n <div\n class={'pds-radio__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n }\n {this.errorMessage &&\n <div\n class={`pds-radio__message pds-radio__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </div>\n }\n </Host>\n );\n }\n}\n"],"mappings":"wIAAA,MAAMA,EAAW,sXCAjB,MAAMC,EAAc,s4G,MCSPC,EAAQ,MALrB,WAAAC,CAAAC,G,uDAUUC,KAAOC,QAAG,MAWVD,KAAQE,SAAG,MAgBTF,KAAOG,QAAG,MAqBZH,KAAQI,SAAG,MAYXJ,KAAAK,kBAAqBC,IAC3B,GAAIN,KAAKE,SAAU,CACjB,M,CAGF,MAAMK,EAASD,EAAEC,OACjB,MAAMC,EAAYD,EAAON,QAEzBD,KAAKS,eAAeC,KAAKF,EAAU,CAyDtC,CAtDS,UAAAG,GACN,MAAMA,EAAa,GAEnB,GAAIX,KAAKG,QAAS,CAChBQ,EAAWC,KAAK,a,CAElB,GAAIZ,KAAKE,SAAU,CACjBS,EAAWC,KAAK,c,CAGlB,OAAOD,EAAWE,KAAK,K,CAGzB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,MAAOlB,KAAKW,cAChBI,EAAA,SAAAE,IAAA,2CAAOE,QAASnB,KAAKoB,aACnBL,EAAA,SAAAE,IAAA,8DACoBI,EAAkBrB,KAAKoB,YAAapB,KAAKG,QAASH,KAAKsB,eAAc,eACzEtB,KAAKG,QAAU,OAASoB,UACtCC,KAAK,QACLC,GAAIzB,KAAKoB,YACTM,KAAM1B,KAAK0B,KACXC,MAAO3B,KAAK2B,MACZ1B,QAASD,KAAKC,QACdG,SAAUJ,KAAKI,SACfF,SAAUF,KAAKE,SACf0B,SAAU5B,KAAKK,oBAEjBU,EAAA,QAAAE,IAAA,2CAAMC,MAAOlB,KAAK6B,UAAY,kBAAoB,IAC/C7B,KAAK8B,QAGT9B,KAAKsB,eACJP,EAAA,OAAAE,IAAA,2CACEC,MAAO,qBACPO,GAAIM,EAAU/B,KAAKoB,YAAa,WAE/BpB,KAAKsB,eAGTtB,KAAKgC,cACJjB,EAAA,OAAAE,IAAA,2CACEC,MAAO,+CACPO,GAAIM,EAAU/B,KAAKoB,YAAa,SAAQ,YAC9B,aAEVL,EAAA,YAAAE,IAAA,2CAAUgB,KAAMC,EAAQC,KAAK,UAC5BnC,KAAKgC,c","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
System.register(["./p-Cxvdulqq.system.js"],(function(i){"use strict";var t,s,a,e;return{setters:[function(i){t=i.r;s=i.h;a=i.H;e=i.g}],execute:function(){var n=":host{--tabs-dimension-panel-margin-top:var(--pine-dimension-none);--tabs-dimension-panel-padding:0;display:block}.pds-tabs__tablist{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-md)}:host(.pds-tabs--availability) .pds-tabs__tablist{gap:var(--pine-dimension-xs)}:host(.pds-tabs--filter) .pds-tabs__tablist{gap:var(--pine-dimension-sm)}:host(.pds-tabs--pill) .pds-tabs__tablist{background-color:var(--pine-color-grey-100);border:var(--pine-border-width-thin) solid var(--pine-color-grey-200);border-radius:var(--pine-dimension-100);display:-ms-inline-flexbox;display:inline-flex;display:-ms-flexbox;display:flex;gap:0;height:var(--pine-dimension-450)}";var r=i("pds_tabs",function(){function i(i){t(this,i)}i.prototype.tabClickHandler=function(i){if(this.componentId===i.detail[1]){this.activeTabIndex=i.detail[0];this.activeTabName=this.tabs[this.activeTabIndex].name}};i.prototype.handleKeyDown=function(i){var t=["ArrowLeft","ArrowRight","Home","End"];if(t.includes(i.key)){i.preventDefault();this.moveActiveTab(i.key)}};i.prototype.moveActiveTab=function(i){var t=0;var s=this.tabs.length-1;var a=null;switch(i){case"ArrowLeft":a=this.activeTabIndex===t?s:this.activeTabIndex+-1;break;case"ArrowRight":a=this.activeTabIndex===s?t:this.activeTabIndex+1;break;case"Home":a=t;break;case"End":a=s;break}this.tabs[a].children[0].focus();this.activeTabName=this.tabs[a].name;this.activeTabIndex=a};i.prototype.findAllChildren=function(){this.tabs=this.el.querySelectorAll("pds-tab");this.tabPanels=this.el.querySelectorAll("pds-tabpanel")};i.prototype.propGeneration=function(i,t){if(t===void 0){t=0}i.parentComponentId=this.componentId.toString();i.variant=this.variant.toString();i.selected=this.activeTabName===i.name?true:false;i["index"]=t};i.prototype.passPropsToChildren=function(){var i=this;this.tabs.forEach((function(t,s){if(i.activeTabName===t.name)i.activeTabIndex=s;i.propGeneration(t,s)}));this.tabPanels.forEach((function(t){i.propGeneration(t)}))};i.prototype.classNames=function(){var i="pds-tabs";if(this.variant&&this.variant!="primary"){var t="pds-tabs--".concat(this.variant);i+=" "+t}return i};i.prototype.componentWillLoad=function(){this.findAllChildren()};i.prototype.componentWillRender=function(){this.passPropsToChildren()};i.prototype.render=function(){return s(a,{key:"46ae07c28f9fb645e0e4a8165b5c3d2b0b9bdc4a","active-tab-name":this.activeTabName,class:this.classNames(),id:this.componentId},s("div",{key:"ab3ea42f6998356ea4a089e07bbe49c6f8e45d54",class:"pds-tabs__tablist",role:"tablist","aria-label":this.tablistLabel,part:"tab-list"},s("slot",{key:"e63be406b7d26ba2eff737d31fbc0d3bf959c99f",name:"tabs"})),s("slot",{key:"cacce277c237acfff91b879ea90ba134cf7e2b80",name:"tabpanels"}))};Object.defineProperty(i.prototype,"el",{get:function(){return e(this)},enumerable:false,configurable:true});return i}());r.style=n}}}));
|
|
2
|
-
//# sourceMappingURL=p-f70aef6e.system.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pdsTabsCss","PdsTabs","exports","class_1","prototype","tabClickHandler","event","this","componentId","detail","activeTabIndex","activeTabName","tabs","name","handleKeyDown","ev","keySet","includes","key","preventDefault","moveActiveTab","firstTabNumber","lastTabNumber","length","moveFocusTo","children","focus","findAllChildren","el","querySelectorAll","tabPanels","propGeneration","child","index","parentComponentId","toString","variant","selected","passPropsToChildren","_this","forEach","classNames","className","variantClassName","concat","componentWillLoad","componentWillRender","render","h","Host","class","id","role","tablistLabel","part"],"sources":["src/components/pds-tabs/pds-tabs.scss?tag=pds-tabs&encapsulation=shadow","src/components/pds-tabs/pds-tabs.tsx"],"sourcesContent":[":host {\n /**\n * @prop --tabs-dimension-panel-margin-top: Optional margin-top for panels\n */\n --tabs-dimension-panel-margin-top: var(--pine-dimension-none);\n /**\n * @prop --tabs-dimension-panel-padding: Optional padding for panels\n */\n --tabs-dimension-panel-padding: 0;\n\n display: block;\n}\n\n.pds-tabs__tablist {\n display: flex;\n flex-wrap: wrap;\n gap: var(--pine-dimension-md);\n}\n\n:host(.pds-tabs--availability) .pds-tabs__tablist {\n gap: var(--pine-dimension-xs);\n}\n\n:host(.pds-tabs--filter) .pds-tabs__tablist {\n gap: var(--pine-dimension-sm);\n}\n\n:host(.pds-tabs--pill) .pds-tabs__tablist {\n background-color: var(--pine-color-grey-100);\n border: var(--pine-border-width-thin) solid var(--pine-color-grey-200);\n border-radius: var(--pine-dimension-100);\n display: inline-flex;\n display: flex;\n gap: 0;\n height: var(--pine-dimension-450);\n}\n","import { Component, Element, Host, h, Prop, Listen } from '@stencil/core';\n\n /**\n * @slot tabs - Content is placed within the `div[role=\"tablist\"]` element as children\n * @slot tabpanels - Content is placed directly after the `div[role=\"tablist\"]` element as siblings\n * @part tab-list - Exposes the container element that holds all the tab buttons for styling.\n */\n@Component({\n tag: 'pds-tabs',\n styleUrls: ['pds-tabs.scss'],\n shadow: true,\n})\nexport class PdsTabs {\n private tabs;\n private tabPanels;\n\n @Element() el: HTMLPdsTabsElement;\n\n /**\n * Sets the aria-label attached to the tablist element\n */\n @Prop() tablistLabel!: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets tabs variant styles as outlined in Figma documentation\n */\n @Prop() variant!: 'primary' | 'availability' | 'filter' | 'pill';\n\n /**\n * Sets the starting active tab name and maintains the name as the component re-renders\n */\n @Prop({mutable: true}) activeTabName!: string;\n\n /**\n * Sets the starting active tab index number and maintains the index number as the component re-renders\n */\n /** @internal */\n @Prop({mutable: true}) activeTabIndex: number;\n\n @Listen('pdsTabClick', {\n target: 'body',\n })\n tabClickHandler(event: CustomEvent<any>) {\n if (this.componentId === event.detail[1]) {\n this.activeTabIndex = event.detail[0];\n this.activeTabName = this.tabs[this.activeTabIndex].name;\n }\n }\n\n @Listen('keydown', {})\n handleKeyDown(ev: KeyboardEvent) {\n const keySet = [\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"];\n\n if (keySet.includes(ev.key)) {\n ev.preventDefault();\n this.moveActiveTab(ev.key);\n }\n }\n\n private moveActiveTab(key: string) {\n const firstTabNumber = 0;\n const lastTabNumber = this.tabs.length - 1;\n\n let moveFocusTo = null;\n\n switch (key) {\n case 'ArrowLeft':\n moveFocusTo = (this.activeTabIndex === firstTabNumber) ? lastTabNumber : (this.activeTabIndex + (-1));\n break;\n case 'ArrowRight':\n moveFocusTo = (this.activeTabIndex === lastTabNumber) ? firstTabNumber : (this.activeTabIndex + 1);\n break;\n case 'Home':\n moveFocusTo = firstTabNumber;\n break;\n case 'End':\n moveFocusTo = lastTabNumber;\n break;\n }\n\n // Move focus to the button element within `pds-tab`\n this.tabs[moveFocusTo].children[0].focus();\n this.activeTabName = this.tabs[moveFocusTo].name;\n this.activeTabIndex = moveFocusTo;\n }\n\n private findAllChildren() {\n this.tabs = this.el.querySelectorAll('pds-tab');\n this.tabPanels = this.el.querySelectorAll('pds-tabpanel');\n }\n\n private propGeneration(child, index = 0) {\n child.parentComponentId = this.componentId.toString();\n child.variant = this.variant.toString();\n child.selected = (this.activeTabName === child.name) ? true : false;\n child['index'] = index;\n }\n\n private passPropsToChildren() {\n this.tabs.forEach((child, index) => {\n if (this.activeTabName === child.name) this.activeTabIndex = index;\n this.propGeneration(child, index);\n });\n\n this.tabPanels.forEach((child) => {\n this.propGeneration(child);\n });\n }\n\n private classNames() {\n let className = `pds-tabs`;\n if (this.variant && this.variant != 'primary') {\n const variantClassName = `pds-tabs--${this.variant}`;\n className += ' ' + variantClassName;\n }\n\n return className;\n };\n\n componentWillLoad() {\n this.findAllChildren();\n }\n\n componentWillRender() {\n this.passPropsToChildren();\n }\n\n render() {\n return (\n <Host active-tab-name={this.activeTabName} class={this.classNames()} id={this.componentId}>\n <div class=\"pds-tabs__tablist\" role=\"tablist\" aria-label={this.tablistLabel} part=\"tab-list\">\n <slot name=\"tabs\" />\n </div>\n <slot name=\"tabpanels\" />\n </Host>\n );\n }\n}\n"],"mappings":"0JAAA,IAAMA,EAAa,2rB,ICYNC,EAAOC,EAAA,sB,wBAmClBC,EAAAC,UAAAC,gBAAA,SAAgBC,GACd,GAAIC,KAAKC,cAAgBF,EAAMG,OAAO,GAAI,CACxCF,KAAKG,eAAiBJ,EAAMG,OAAO,GACnCF,KAAKI,cAAgBJ,KAAKK,KAAKL,KAAKG,gBAAgBG,I,GAKxDV,EAAAC,UAAAU,cAAA,SAAcC,GACZ,IAAMC,EAAS,CAAC,YAAa,aAAc,OAAQ,OAEnD,GAAIA,EAAOC,SAASF,EAAGG,KAAM,CAC3BH,EAAGI,iBACHZ,KAAKa,cAAcL,EAAGG,I,GAIlBf,EAAAC,UAAAgB,cAAA,SAAcF,GACpB,IAAMG,EAAiB,EACvB,IAAMC,EAAgBf,KAAKK,KAAKW,OAAS,EAEzC,IAAIC,EAAc,KAElB,OAAQN,GACN,IAAK,YACHM,EAAejB,KAAKG,iBAAmBW,EAAkBC,EAAiBf,KAAKG,gBAAkB,EACjG,MACF,IAAK,aACHc,EAAejB,KAAKG,iBAAmBY,EAAiBD,EAAkBd,KAAKG,eAAiB,EAChG,MACF,IAAK,OACHc,EAAcH,EACd,MACF,IAAK,MACHG,EAAcF,EACd,MAIJf,KAAKK,KAAKY,GAAaC,SAAS,GAAGC,QACnCnB,KAAKI,cAAgBJ,KAAKK,KAAKY,GAAaX,KAC5CN,KAAKG,eAAiBc,C,EAGhBrB,EAAAC,UAAAuB,gBAAA,WACNpB,KAAKK,KAAOL,KAAKqB,GAAGC,iBAAiB,WACrCtB,KAAKuB,UAAYvB,KAAKqB,GAAGC,iBAAiB,e,EAGpC1B,EAAAC,UAAA2B,eAAA,SAAeC,EAAOC,GAAA,GAAAA,SAAA,GAAAA,EAAA,CAAS,CACrCD,EAAME,kBAAoB3B,KAAKC,YAAY2B,WAC3CH,EAAMI,QAAU7B,KAAK6B,QAAQD,WAC7BH,EAAMK,SAAY9B,KAAKI,gBAAkBqB,EAAMnB,KAAQ,KAAO,MAC9DmB,EAAM,SAAWC,C,EAGX9B,EAAAC,UAAAkC,oBAAA,eAAAC,EAAAhC,KACNA,KAAKK,KAAK4B,SAAQ,SAACR,EAAOC,GACxB,GAAIM,EAAK5B,gBAAkBqB,EAAMnB,KAAM0B,EAAK7B,eAAiBuB,EAC7DM,EAAKR,eAAeC,EAAOC,EAC7B,IAEA1B,KAAKuB,UAAUU,SAAQ,SAACR,GACtBO,EAAKR,eAAeC,EACtB,G,EAGM7B,EAAAC,UAAAqC,WAAA,WACN,IAAIC,EAAY,WAChB,GAAInC,KAAK6B,SAAW7B,KAAK6B,SAAW,UAAW,CAC7C,IAAMO,EAAmB,aAAAC,OAAarC,KAAK6B,SAC3CM,GAAa,IAAMC,C,CAGrB,OAAOD,C,EAGTvC,EAAAC,UAAAyC,kBAAA,WACEtC,KAAKoB,iB,EAGPxB,EAAAC,UAAA0C,oBAAA,WACEvC,KAAK+B,qB,EAGPnC,EAAAC,UAAA2C,OAAA,WACE,OACEC,EAACC,EAAI,CAAA/B,IAAA,6DAAkBX,KAAKI,cAAeuC,MAAO3C,KAAKkC,aAAcU,GAAI5C,KAAKC,aAC5EwC,EAAA,OAAA9B,IAAA,2CAAKgC,MAAM,oBAAoBE,KAAK,UAAsB,aAAA7C,KAAK8C,aAAcC,KAAK,YAChFN,EAAA,QAAA9B,IAAA,2CAAML,KAAK,UAEbmC,EAAA,QAAA9B,IAAA,2CAAML,KAAK,c,uHA9HC,I","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as a}from"./p-Bf1dou5H.js";import{g as o,d as l}from"./p-D4MkIUXU.js";const n=":host{--border-head-cell-default:var(--pine-border-width-thin) solid var(--pine-color-grey-100);--box-shadow-default:3px 3px 6px -2px rgba(0, 0, 0, 0.1);-webkit-border-after:var(--border-head-cell-default);border-block-end:var(--border-head-cell-default);color:var(--pine-color-text);display:table-cell;font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-regular);line-height:var(--pine-line-height-body);padding:var(--pine-dimension-150);position:relative;text-align:start;vertical-align:inherit}:host(.is-compact){padding-block:var(--pine-dimension-2xs)}:host(.is-fixed){background:var(--pine-color-background-container);left:var(--pine-dimension-none);position:-webkit-sticky;position:sticky;z-index:1}:host(.has-scrolled.is-fixed){-webkit-box-shadow:var(--box-shadow-default);box-shadow:var(--box-shadow-default)}:host(.is-sortable){cursor:pointer}:host(.is-sortable) pds-icon{-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs);-webkit-padding-before:2px;padding-block-start:2px;position:absolute}:host(.is-sortable:hover),:host(.is-active){color:var(--pine-color-text-active)}:host(.pds-table-head-cell--align-start){text-align:start}:host(.pds-table-head-cell--align-center){text-align:center}:host(.pds-table-head-cell--align-end){text-align:end}:host(.pds-table-head-cell--align-justify){text-align:justify}";const r=class{constructor(s){t(this,s);this.pdsTableSort=i(this,"pdsTableSort");this.scrollContainer=null;this.setupRetries=0;this.sortingDirection="asc";this.tableScrolling=false;this.isSelected=false;this.handleScroll=()=>{if(!this.scrollContainer){return}try{this.tableScrolling=this.scrollContainer.scrollLeft>0}catch(t){console.warn("Scroll handler error:",t)}};this.toggleSort=()=>{if(this.sortable){const t=this.hostElement.innerText.trim();this.sortingDirection=this.sortingDirection==="asc"?"desc":"asc";this.tableRef.querySelectorAll("pds-table-head-cell").forEach((t=>{t.classList.remove("is-active")}));this.hostElement.classList.toggle("is-active");this.pdsTableSort.emit({column:t,direction:this.sortingDirection})}}}componentWillRender(){this.tableRef=this.hostElement.closest("pds-table")}componentDidLoad(){if(this.tableRef&&this.tableRef.responsive&&this.tableRef.fixedColumn){this.setupScrollListener()}}disconnectedCallback(){this.cleanupScrollListener()}setupScrollListener(){var t;if(!this.tableRef)return;const i=(t=this.tableRef.shadowRoot)===null||t===void 0?void 0:t.querySelector(".pds-table-responsive-container");if(i){this.scrollContainer=i;this.scrollContainer.addEventListener("scroll",this.handleScroll,{passive:true});this.handleScroll();this.setupRetries=0}else{this.setupTimer=window.setTimeout((()=>{if(this.scrollContainer)return;this.setupRetries=(this.setupRetries||0)+1;if(this.setupRetries<=50){this.setupScrollListener()}else{console.warn("Failed to find responsive container after 50 attempts")}}),100)}}cleanupScrollListener(){if(this.scrollContainer){this.scrollContainer.removeEventListener("scroll",this.handleScroll);this.scrollContainer=null}if(this.setupTimer!==undefined){window.clearTimeout(this.setupTimer);this.setupTimer=undefined}this.setupRetries=0}classNames(){const t=[];if(this.tableRef&&this.tableRef.compact){t.push("is-compact")}if(this.cellAlign){t.push(`pds-table-head-cell--align-${this.cellAlign}`)}if(this.sortable){t.push("is-sortable")}if(this.sortable&&this.sortingDirection!==null){t.push("sort-"+this.sortingDirection)}if(this.tableRef&&this.tableRef.fixedColumn&&this.tableScrolling){t.push("has-scrolled")}return t.join(" ")}render(){return s(e,{key:"3d950a2997ef4c095d08f9c4e67b9a963fea093d",class:this.classNames(),role:"columnheader",onClick:this.toggleSort,part:"head-cell",style:this.tableRef&&this.tableRef.fixedColumn&&this.tableRef.selectable?{"--fixed-cell-position":"40px"}:{}},s("slot",{key:"8ca7d4d169612e5ba237691d9a5ec9ed35610230"}),this.sortable&&s("pds-icon",{key:"e2e214b39a1706d887bb34a0d4fc3f632e752306",icon:this.sortingDirection==="asc"?o:l,part:"sort-icon"}))}get hostElement(){return a(this)}};r.style=n;export{r as pds_table_head_cell};
|
|
2
|
-
//# sourceMappingURL=p-fd3d548f.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pdsTableHeadCellCss","PdsTableHeadCell","constructor","hostRef","this","scrollContainer","setupRetries","sortingDirection","tableScrolling","isSelected","handleScroll","scrollLeft","error","console","warn","toggleSort","sortable","column","hostElement","innerText","trim","tableRef","querySelectorAll","forEach","headCell","classList","remove","toggle","pdsTableSort","emit","direction","componentWillRender","closest","componentDidLoad","responsive","fixedColumn","setupScrollListener","disconnectedCallback","cleanupScrollListener","container","_a","shadowRoot","querySelector","addEventListener","passive","setupTimer","window","setTimeout","removeEventListener","undefined","clearTimeout","classNames","compact","push","cellAlign","join","render","h","Host","key","class","role","onClick","part","style","selectable","icon","upSmall","downSmall"],"sources":["src/components/pds-table/pds-table-head-cell/pds-table-head-cell.scss?tag=pds-table-head-cell&encapsulation=shadow","src/components/pds-table/pds-table-head-cell/pds-table-head-cell.tsx"],"sourcesContent":[":host {\n --border-head-cell-default: var(--pine-border-width-thin) solid var(--pine-color-grey-100);\n\n --box-shadow-default: 3px 3px 6px -2px rgba(0, 0, 0, 0.1);\n\n border-block-end: var(--border-head-cell-default);\n color: var(--pine-color-text);\n display: table-cell;\n font-family: var(--pine-font-family-body);\n font-size: var(--pine-font-size);\n font-weight: var(--pine-font-weight-regular);\n line-height: var(--pine-line-height-body);\n padding: var(--pine-dimension-150);\n position: relative;\n text-align: start;\n vertical-align: inherit;\n}\n\n:host(.is-compact) {\n padding-block: var(--pine-dimension-2xs)\n}\n\n:host(.is-fixed) {\n background: var(--pine-color-background-container);\n left: var(--pine-dimension-none);\n position: sticky;\n z-index: 1;\n}\n\n// box shadow when table has scrolled and cell is fixed\n:host(.has-scrolled.is-fixed) {\n box-shadow: var(--box-shadow-default);\n}\n\n:host(.is-sortable) {\n cursor: pointer;\n\n pds-icon {\n margin-inline-start: var(--pine-dimension-2xs);\n padding-block-start: 2px;\n position: absolute;\n }\n}\n\n:host(.is-sortable:hover),\n:host(.is-active) {\n color: var(--pine-color-text-active);\n}\n\n// Text Alignment\n:host(.pds-table-head-cell--align-start) {\n text-align: start;\n}\n\n:host(.pds-table-head-cell--align-center) {\n text-align: center;\n}\n\n:host(.pds-table-head-cell--align-end) {\n text-align: end;\n}\n\n:host(.pds-table-head-cell--align-justify) {\n text-align: justify;\n}\n","import { Component, Element, Host, Prop, h, Event, EventEmitter, State } from '@stencil/core';\n\nimport { downSmall, upSmall } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-table-head-cell',\n styleUrls: ['pds-table-head-cell.scss'],\n shadow: true,\n})\nexport class PdsTableHeadCell {\n @Element() hostElement: HTMLPdsTableHeadCellElement;\n private tableRef: HTMLPdsTableElement;\n private scrollContainer: HTMLElement | null = null;\n private setupTimer: number | undefined;\n private setupRetries: number = 0;\n\n /**\n * Sets the text alignment within the head cell.\n */\n @Prop() cellAlign?: 'start' | 'center' | 'end' | 'justify';\n\n /**\n * Determines whether the table column is sortable when set to `true`.\n */\n @Prop() sortable: boolean;\n\n /**\n * Event emitted to signal that a table column header has been sorted, providing information about the sorted column's name and sorting direction.\n */\n @Event() pdsTableSort: EventEmitter<{ column: string; direction: string }>;\n\n /**\n * The direction of sorting.\n */\n @State() private sortingDirection: 'asc' | 'desc' = 'asc';\n\n /**\n * Determines if the table is currently scrolling.\n * @defaultValue false\n */\n @State() private tableScrolling: boolean = false;\n\n /**\n * Determines if the table row is currently selected.\n * @defaultValue false\n */\n @State() isSelected: boolean = false;\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n\n componentDidLoad() {\n if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {\n // For responsive tables with fixed columns, set up scroll detection\n // This enables the first column header to show a shadow when the table is scrolled horizontally\n this.setupScrollListener();\n }\n }\n\n disconnectedCallback() {\n this.cleanupScrollListener();\n }\n\n private setupScrollListener() {\n if (!this.tableRef) return;\n\n // Query shadowRoot once and cache the container\n const container = this.tableRef.shadowRoot?.querySelector('.pds-table-responsive-container') as HTMLElement;\n\n if (container) {\n // Container available immediately\n this.scrollContainer = container;\n this.scrollContainer.addEventListener('scroll', this.handleScroll, { passive: true });\n this.handleScroll(); // Initial check\n this.setupRetries = 0; // Reset counter on success\n } else {\n // Container not ready, set up timer for retry with bounds\n this.setupTimer = window.setTimeout(() => {\n if (this.scrollContainer) return; // Already found\n this.setupRetries = (this.setupRetries || 0) + 1;\n if (this.setupRetries <= 50) {\n this.setupScrollListener();\n } else {\n console.warn('Failed to find responsive container after 50 attempts');\n }\n }, 100);\n }\n }\n\n private cleanupScrollListener() {\n if (this.scrollContainer) {\n this.scrollContainer.removeEventListener('scroll', this.handleScroll);\n this.scrollContainer = null;\n }\n\n if (this.setupTimer !== undefined) {\n window.clearTimeout(this.setupTimer);\n this.setupTimer = undefined;\n }\n\n this.setupRetries = 0; // Reset retry counter\n }\n\n /**\n * Handles scroll events to update fixed column shadow state.\n * Updates the tableScrolling state to control CSS classes for fixed column shadows.\n * @private\n */\n private handleScroll = () => {\n if (!this.scrollContainer) {\n return;\n }\n\n try {\n this.tableScrolling = this.scrollContainer.scrollLeft > 0;\n } catch (error) {\n console.warn('Scroll handler error:', error);\n }\n };\n\n private toggleSort = () => {\n if (this.sortable) {\n const column = this.hostElement.innerText.trim();\n this.sortingDirection = this.sortingDirection === 'asc' ? 'desc' : 'asc';\n\n this.tableRef.querySelectorAll('pds-table-head-cell').forEach((headCell) => {\n headCell.classList.remove('is-active');\n });\n\n this.hostElement.classList.toggle('is-active');\n this.pdsTableSort.emit({ column, direction: this.sortingDirection });\n }\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.tableRef && this.tableRef.compact) {\n classNames.push('is-compact');\n }\n\n if (this.cellAlign) {\n classNames.push(`pds-table-head-cell--align-${this.cellAlign}`);\n }\n\n if (this.sortable) {\n classNames.push('is-sortable');\n }\n\n if (this.sortable && this.sortingDirection !== null) {\n classNames.push('sort-' + this.sortingDirection);\n }\n\n if (this.tableRef && this.tableRef.fixedColumn && this.tableScrolling) {\n classNames.push('has-scrolled');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"columnheader\"\n onClick={this.toggleSort}\n part=\"head-cell\"\n style={\n this.tableRef &&\n this.tableRef.fixedColumn &&\n this.tableRef.selectable\n ? { '--fixed-cell-position': '40px' }\n : {}\n }\n >\n <slot></slot>\n {this.sortable && (\n <pds-icon icon={this.sortingDirection === 'asc' ? upSmall : downSmall} part=\"sort-icon\" />\n )}\n </Host>\n );\n }\n}\n"],"mappings":"2GAAA,MAAMA,EAAsB,w4C,MCSfC,EAAgB,MAL7B,WAAAC,CAAAC,G,mDAQUC,KAAeC,gBAAuB,KAEtCD,KAAYE,aAAW,EAoBdF,KAAgBG,iBAAmB,MAMnCH,KAAcI,eAAY,MAMlCJ,KAAUK,WAAY,MA+DvBL,KAAYM,aAAG,KACrB,IAAKN,KAAKC,gBAAiB,CACzB,M,CAGF,IACED,KAAKI,eAAiBJ,KAAKC,gBAAgBM,WAAa,C,CACxD,MAAOC,GACPC,QAAQC,KAAK,wBAAyBF,E,GAIlCR,KAAUW,WAAG,KACnB,GAAIX,KAAKY,SAAU,CACjB,MAAMC,EAASb,KAAKc,YAAYC,UAAUC,OAC1ChB,KAAKG,iBAAmBH,KAAKG,mBAAqB,MAAQ,OAAS,MAEnEH,KAAKiB,SAASC,iBAAiB,uBAAuBC,SAASC,IAC7DA,EAASC,UAAUC,OAAO,YAAY,IAGxCtB,KAAKc,YAAYO,UAAUE,OAAO,aAClCvB,KAAKwB,aAAaC,KAAK,CAAEZ,SAAQa,UAAW1B,KAAKG,kB,EAoDtD,CAvIC,mBAAAwB,GACE3B,KAAKiB,SAAWjB,KAAKc,YAAYc,QAAQ,Y,CAG3C,gBAAAC,GACE,GAAI7B,KAAKiB,UAAYjB,KAAKiB,SAASa,YAAc9B,KAAKiB,SAASc,YAAa,CAG1E/B,KAAKgC,qB,EAIT,oBAAAC,GACEjC,KAAKkC,uB,CAGC,mBAAAF,G,MACN,IAAKhC,KAAKiB,SAAU,OAGpB,MAAMkB,GAAYC,EAAApC,KAAKiB,SAASoB,cAAY,MAAAD,SAAA,SAAAA,EAAAE,cAAc,mCAE1D,GAAIH,EAAW,CAEbnC,KAAKC,gBAAkBkC,EACvBnC,KAAKC,gBAAgBsC,iBAAiB,SAAUvC,KAAKM,aAAc,CAAEkC,QAAS,OAC9ExC,KAAKM,eACLN,KAAKE,aAAe,C,KACf,CAELF,KAAKyC,WAAaC,OAAOC,YAAW,KAClC,GAAI3C,KAAKC,gBAAiB,OAC1BD,KAAKE,cAAgBF,KAAKE,cAAgB,GAAK,EAC/C,GAAIF,KAAKE,cAAgB,GAAI,CAC3BF,KAAKgC,qB,KACA,CACLvB,QAAQC,KAAK,wD,IAEd,I,EAIC,qBAAAwB,GACN,GAAIlC,KAAKC,gBAAiB,CACxBD,KAAKC,gBAAgB2C,oBAAoB,SAAU5C,KAAKM,cACxDN,KAAKC,gBAAkB,I,CAGzB,GAAID,KAAKyC,aAAeI,UAAW,CACjCH,OAAOI,aAAa9C,KAAKyC,YACzBzC,KAAKyC,WAAaI,S,CAGpB7C,KAAKE,aAAe,C,CAkCd,UAAA6C,GACN,MAAMA,EAAa,GAEnB,GAAI/C,KAAKiB,UAAYjB,KAAKiB,SAAS+B,QAAS,CAC1CD,EAAWE,KAAK,a,CAGlB,GAAIjD,KAAKkD,UAAW,CAClBH,EAAWE,KAAK,8BAA8BjD,KAAKkD,Y,CAGrD,GAAIlD,KAAKY,SAAU,CACjBmC,EAAWE,KAAK,c,CAGlB,GAAIjD,KAAKY,UAAYZ,KAAKG,mBAAqB,KAAM,CACnD4C,EAAWE,KAAK,QAAUjD,KAAKG,iB,CAGjC,GAAIH,KAAKiB,UAAYjB,KAAKiB,SAASc,aAAe/B,KAAKI,eAAgB,CACrE2C,EAAWE,KAAK,e,CAGlB,OAAOF,EAAWI,KAAK,I,CAGzB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAOxD,KAAK+C,aACZU,KAAK,eACLC,QAAS1D,KAAKW,WACdgD,KAAK,YACLC,MACE5D,KAAKiB,UACLjB,KAAKiB,SAASc,aACd/B,KAAKiB,SAAS4C,WACV,CAAE,wBAAyB,QAC3B,IAGNR,EAAa,QAAAE,IAAA,6CACZvD,KAAKY,UACJyC,EAAU,YAAAE,IAAA,2CAAAO,KAAM9D,KAAKG,mBAAqB,MAAQ4D,EAAUC,EAAWL,KAAK,c","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as o}from"./p-Bf1dou5H.js";const r='@charset "UTF-8";:host{--color-background-default:var(--pine-color-white);background:var(--color-background-default);border-collapse:separate;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;display:table;width:100%}:host(:focus-visible){outline:var(--pine-outline-focus)}:host(.pds-table-responsive-host){border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;max-width:100% !important;overflow:hidden !important;position:relative !important;width:100% !important}.pds-table-responsive-container{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;overflow-x:auto !important;overflow-y:visible !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper .pds-table{display:table !important;min-width:-webkit-max-content !important;min-width:-moz-max-content !important;min-width:max-content !important;table-layout:auto !important;white-space:nowrap !important;width:100% !important}.scroll-shadow-left,.scroll-shadow-right{height:100%;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transition:opacity 0.1s ease;transition:opacity 0.1s ease;width:4px;z-index:10}.scroll-shadow-left{background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);border-bottom-left-radius:inherit;border-top-left-radius:inherit;left:0}.scroll-shadow-right{background:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);border-bottom-right-radius:inherit;border-top-right-radius:inherit;right:0}';const n=class{constructor(s){t(this,s);this.pdsTableSelect=i(this,"pdsTableSelect");this.pdsTableSelectAll=i(this,"pdsTableSelectAll");this.scrollContainer=null;this._responsiveHandleScroll=null;this._responsiveHandleResize=null;this._responsiveResizeObserver=null;this._teardownResponsive=null;this.sortingColumn=null;this.sortingDirection="asc"}componentWillLoad(){this.sortingColumn=null}componentDidLoad(){if(this.responsive){this.setupResponsiveScrolling()}}disconnectedCallback(){if(this._teardownResponsive){this._teardownResponsive();this._teardownResponsive=null}}setupResponsiveScrolling(){var t,i,s;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".pds-table-responsive-container");const o=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".scroll-shadow-left");const r=(s=this.el.shadowRoot)===null||s===void 0?void 0:s.querySelector(".scroll-shadow-right");if(!e||!o||!r)return;this.scrollContainer=e;this._responsiveHandleScroll=()=>{if(!this.scrollContainer)return;const t=this.scrollContainer.scrollLeft;const i=this.scrollContainer.scrollWidth-this.scrollContainer.clientWidth;o.style.opacity=t>0&&!this.fixedColumn?"1":"0";r.style.opacity=i>0&&t<i-1?"1":"0"};this.scrollContainer.addEventListener("scroll",this._responsiveHandleScroll,{passive:true});if(typeof window!=="undefined"&&window.ResizeObserver){try{this._responsiveResizeObserver=new ResizeObserver((()=>{var t;(t=this._responsiveHandleScroll)===null||t===void 0?void 0:t.call(this)}));this._responsiveResizeObserver.observe(this.scrollContainer)}catch(t){}}if(typeof window!=="undefined"){this._responsiveHandleResize=()=>{var t;(t=this._responsiveHandleScroll)===null||t===void 0?void 0:t.call(this)};window.addEventListener("resize",this._responsiveHandleResize)}this._teardownResponsive=()=>{if(this.scrollContainer&&this._responsiveHandleScroll){this.scrollContainer.removeEventListener("scroll",this._responsiveHandleScroll);this.scrollContainer=null}if(this._responsiveResizeObserver){this._responsiveResizeObserver.disconnect();this._responsiveResizeObserver=null}if(typeof window!=="undefined"&&this._responsiveHandleResize){window.removeEventListener("resize",this._responsiveHandleResize);this._responsiveHandleResize=null}this._responsiveHandleScroll=null};this._responsiveHandleScroll()}classNames(){const t=["pds-table"];if(this.compact){t.push("is-compact")}if(this.responsive){t.push("is-responsive")}return t.join(" ")}sortTable(t,i){const s=this.el.querySelector("pds-table-body");const e=Array.from(s.querySelectorAll("pds-table-row"));const o=Array.from(this.el.querySelectorAll("pds-table-head-cell[sortable]"));const r=o.find((i=>i.innerText.trim()===t));if(!r){console.warn(`Column "${t}" not found.`);return}const n=o.indexOf(r);e.sort(((t,s)=>{const e=t.querySelector(`pds-table-cell:nth-child(${n+1})`).textContent.trim();const o=s.querySelector(`pds-table-cell:nth-child(${n+1})`).textContent.trim();if(i==="asc"){return e.localeCompare(o,undefined,{sensitivity:"base"})}else{return o.localeCompare(e,undefined,{sensitivity:"base"})}}));s.innerHTML="";e.forEach((t=>{s.appendChild(t)}))}handleTableSort(t){const{direction:i}=t.detail;this.sortTable(t.detail.column,i);this.sortingColumn=t.detail.column;this.sortingDirection=i}handleTableSelectAll(t){if(t.defaultPrevented)return;const i=this.el.querySelector("pds-table-body");const s=Array.from(i.querySelectorAll("pds-table-row"));s.forEach((i=>{i.isSelected=t.detail.isSelected}))}async handleTableSelect(t){if(t.defaultPrevented)return;const i=this.el.querySelectorAll("pds-table-row");const s=Array.from(i).every((t=>t.isSelected));const e=Array.from(i).every((t=>!t.isSelected));const o=this.el.querySelector("pds-table-head");if(!o)return;const r=o.shadowRoot.querySelector("pds-checkbox");r.checked=s;r.indeterminate=!s&&!e}render(){if(this.responsive){return s(e,{class:"pds-table is-responsive pds-table-responsive-host",id:this.componentId,role:"grid",selectable:this.selectable,tabindex:"0",part:"table responsive-table"},s("div",{class:"scroll-shadow-left",part:"scroll-shadow-left"}),s("div",{class:"scroll-shadow-right",part:"scroll-shadow-right"}),s("div",{class:"pds-table-responsive-container",part:"responsive-container"},s("div",{class:"pds-table-responsive-wrapper",part:"responsive-wrapper"},s("div",{class:this.classNames(),part:"table-inner"},s("slot",null)))))}return s(e,{class:this.classNames(),id:this.componentId,role:"grid",selectable:this.selectable,tabindex:"0",part:"table"},s("slot",null))}get el(){return o(this)}};n.style=r;export{n as pds_table};
|
|
2
|
-
//# sourceMappingURL=p-fddf82f8.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pdsTableCss","PdsTable","constructor","hostRef","this","scrollContainer","_responsiveHandleScroll","_responsiveHandleResize","_responsiveResizeObserver","_teardownResponsive","sortingColumn","sortingDirection","componentWillLoad","componentDidLoad","responsive","setupResponsiveScrolling","disconnectedCallback","container","_a","el","shadowRoot","querySelector","leftShadow","_b","rightShadow","_c","scrollLeft","maxScrollLeft","scrollWidth","clientWidth","style","opacity","fixedColumn","addEventListener","passive","window","ResizeObserver","call","observe","error","removeEventListener","disconnect","classNames","compact","push","join","sortTable","column","direction","tableBody","tableRows","Array","from","querySelectorAll","columnHeaderCells","columnHeaderCell","find","cell","innerText","trim","console","warn","columnIndex","indexOf","sort","a","b","valueA","textContent","valueB","localeCompare","undefined","sensitivity","innerHTML","forEach","row","appendChild","handleTableSort","event","detail","handleTableSelectAll","defaultPrevented","pdsTableBody","isSelected","handleTableSelect","allTableRows","allSelectedRows","every","noneSelectedRows","pdsTableHead","headerCheckbox","checked","indeterminate","render","h","Host","class","id","componentId","role","selectable","tabindex","part"],"sources":["src/components/pds-table/pds-table.scss?tag=pds-table&encapsulation=shadow","src/components/pds-table/pds-table.tsx"],"sourcesContent":[":host {\n --color-background-default: var(--pine-color-white);\n\n background: var(--color-background-default);\n border-collapse: separate;\n border-radius: inherit;\n box-sizing: border-box;\n display: table;\n width: 100%;\n}\n\n:host(:focus-visible) {\n outline: var(--pine-outline-focus);\n}\n\n/*\n * Responsive Table Architecture\n *\n * When responsive=true, the table uses a nested structure to provide horizontal scrolling\n * while maintaining proper width behavior and scroll shadows:\n *\n * Host (.pds-table-responsive-host)\n * ├── Shadow Left (positioned fixed to left edge)\n * ├── Shadow Right (positioned fixed to right edge)\n * └── Container (.pds-table-responsive-container)\n * └── Wrapper (.pds-table-responsive-wrapper)\n * └── Table (.pds-table)\n *\n * - Host: Constrains everything to parent width, clips shadows to border-radius\n * - Shadows: Stay fixed during scroll, provide visual scroll indicators\n * - Container: Handles horizontal scrolling (overflow-x: auto)\n * - Table: Expands to full width or scrolls based on content\n */\n:host(.pds-table-responsive-host) {\n border-radius: inherit;\n box-sizing: border-box !important;\n display: block !important;\n max-width: 100% !important;\n overflow: hidden !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-container {\n border-radius: inherit;\n box-sizing: border-box !important;\n overflow-x: auto !important;\n overflow-y: visible !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-wrapper {\n border-radius: inherit;\n box-sizing: border-box !important;\n display: block !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-wrapper .pds-table {\n display: table !important;\n min-width: max-content !important;\n table-layout: auto !important;\n white-space: nowrap !important;\n width: 100% !important;\n}\n\n/* Shadows positioned relative to host (non-scrolling), covering container edges */\n.scroll-shadow-left,\n.scroll-shadow-right {\n height: 100%;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n transition: opacity 0.1s ease;\n width: 4px;\n z-index: 10;\n}\n\n.scroll-shadow-left {\n background: linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);\n border-bottom-left-radius: inherit;\n border-top-left-radius: inherit;\n left: 0;\n}\n\n.scroll-shadow-right {\n background: linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);\n border-bottom-right-radius: inherit;\n border-top-right-radius: inherit;\n right: 0;\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, State, Listen } from '@stencil/core';\n\n@Component({\n tag: 'pds-table',\n styleUrls: ['pds-table.scss'],\n shadow: true,\n})\nexport class PdsTable {\n @Element() el: HTMLPdsTableElement;\n private scrollContainer: HTMLElement | null = null;\n private _responsiveHandleScroll: (() => void) | null = null;\n private _responsiveHandleResize: (() => void) | null = null;\n private _responsiveResizeObserver: ResizeObserver | null = null;\n private _teardownResponsive: (() => void) | null = null;\n\n /**\n * Determines if the table displays with reduced table cell padding.\n */\n @Prop() compact: boolean;\n\n /**\n * A unique identifier used for the table `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Enables the table to be responsive by horizontally scrolling on smaller screens.\n */\n @Prop() responsive: boolean;\n\n /**\n * Determines if the should display a fixed first column.\n */\n @Prop() fixedColumn: boolean;\n\n /**\n * Determines if the table displays checkboxes for selectable rows.\n */\n @Prop() selectable: boolean;\n\n /**\n * The name of the column being sorted.\n * @defaultValue null\n */\n @State() sortingColumn: string | null = null;\n\n /**\n * The direction of sorting.\n * @defaultValue 'asc'\n */\n @State() sortingDirection: 'asc' | 'desc' = 'asc';\n\n\n /**\n * Event that is emitted when the checkbox is clicked, carrying the rowIndex and selected value.\n */\n @Event() pdsTableSelect: EventEmitter<{ rowIndex: number; isSelected: boolean }>;\n\n /**\n * Event that is emitted when the select all checkbox is clicked, carrying the selected value.\n */\n @Event() pdsTableSelectAll: EventEmitter<{ isSelected: boolean }>;\n\n componentWillLoad() {\n this.sortingColumn = null;\n }\n\n componentDidLoad() {\n if (this.responsive) {\n this.setupResponsiveScrolling();\n }\n }\n\n disconnectedCallback() {\n if (this._teardownResponsive) {\n this._teardownResponsive();\n this._teardownResponsive = null;\n }\n }\n\n /**\n * Sets up responsive scrolling behavior for the table.\n *\n * This method creates a horizontal scrolling system where:\n * - The table content can scroll horizontally when it exceeds the container width\n * - Scroll shadows appear at the left/right edges to indicate scrollable content\n * - Fixed columns remain sticky during horizontal scrolling\n * - Shadows respect border-radius and don't appear when there's nothing to scroll\n *\n * Architecture:\n * - Host element: Contains everything, respects parent constraints\n * - Container element: Handles horizontal scrolling (overflow-x: auto)\n * - Shadow elements: Positioned fixed relative to host, show scroll indicators\n *\n * @private\n */\n private setupResponsiveScrolling() {\n const container = this.el.shadowRoot?.querySelector('.pds-table-responsive-container') as HTMLElement;\n const leftShadow = this.el.shadowRoot?.querySelector('.scroll-shadow-left') as HTMLElement;\n const rightShadow = this.el.shadowRoot?.querySelector('.scroll-shadow-right') as HTMLElement;\n\n if (!container || !leftShadow || !rightShadow) return;\n\n // Store container reference for cleanup\n this.scrollContainer = container;\n\n /**\n * Updates the visibility of scroll shadows based on current scroll position.\n * Left shadow: Shows when scrolled away from start (hidden if fixedColumn is enabled)\n * Right shadow: Shows when there's content to scroll and not at the end\n */\n this._responsiveHandleScroll = () => {\n if (!this.scrollContainer) return;\n\n const scrollLeft = this.scrollContainer.scrollLeft;\n const maxScrollLeft = this.scrollContainer.scrollWidth - this.scrollContainer.clientWidth;\n\n // Show left shadow when scrolled away from start, but not if there's a fixed column\n leftShadow.style.opacity = (scrollLeft > 0 && !this.fixedColumn) ? '1' : '0';\n\n // Show right shadow only if there's content to scroll AND not at end\n rightShadow.style.opacity = (maxScrollLeft > 0 && scrollLeft < maxScrollLeft - 1) ? '1' : '0';\n };\n\n // Add scroll event listener to container element\n this.scrollContainer.addEventListener('scroll', this._responsiveHandleScroll, { passive: true });\n\n // Add resize observer to update shadows when container size changes\n if (typeof window !== 'undefined' && window.ResizeObserver) {\n try {\n this._responsiveResizeObserver = new ResizeObserver(() => {\n this._responsiveHandleScroll?.();\n });\n this._responsiveResizeObserver.observe(this.scrollContainer);\n } catch (error) {\n // ResizeObserver not available in some environments (e.g., tests)\n // Fall back to window resize listener only\n }\n }\n\n // Listen for window resize as fallback\n if (typeof window !== 'undefined') {\n this._responsiveHandleResize = () => {\n this._responsiveHandleScroll?.();\n };\n window.addEventListener('resize', this._responsiveHandleResize);\n }\n\n // Create teardown function for cleanup\n this._teardownResponsive = () => {\n if (this.scrollContainer && this._responsiveHandleScroll) {\n this.scrollContainer.removeEventListener('scroll', this._responsiveHandleScroll);\n this.scrollContainer = null;\n }\n\n if (this._responsiveResizeObserver) {\n this._responsiveResizeObserver.disconnect();\n this._responsiveResizeObserver = null;\n }\n\n if (typeof window !== 'undefined' && this._responsiveHandleResize) {\n window.removeEventListener('resize', this._responsiveHandleResize);\n this._responsiveHandleResize = null;\n }\n\n this._responsiveHandleScroll = null;\n };\n\n // Initial check after setup\n this._responsiveHandleScroll();\n }\n\n\n private classNames() {\n const classNames = ['pds-table'];\n\n if (this.compact) {\n classNames.push('is-compact');\n }\n\n if (this.responsive) {\n classNames.push('is-responsive');\n }\n\n return classNames.join(' ');\n }\n\n private sortTable(column: string, direction: 'asc' | 'desc') {\n const tableBody = this.el.querySelector('pds-table-body');\n\n // Get the rows in the table body\n const tableRows = Array.from(tableBody.querySelectorAll('pds-table-row'));\n\n // Find the column index based on the column name\n const columnHeaderCells: HTMLElement[] = Array.from(\n this.el.querySelectorAll('pds-table-head-cell[sortable]')\n );\n\n const columnHeaderCell = columnHeaderCells.find(\n (cell) => cell.innerText.trim() === column\n );\n\n if (!columnHeaderCell) {\n console.warn(`Column \"${column}\" not found.`);\n return;\n }\n\n const columnIndex = columnHeaderCells.indexOf(columnHeaderCell);\n\n // Sort the rows based on the content of the specified column\n tableRows.sort((a, b) => {\n const valueA = a.querySelector(`pds-table-cell:nth-child(${columnIndex + 1})`).textContent.trim();\n const valueB = b.querySelector(`pds-table-cell:nth-child(${columnIndex + 1})`).textContent.trim();\n\n if (direction === 'asc') {\n return valueA.localeCompare(valueB, undefined, { sensitivity: 'base' });\n } else {\n return valueB.localeCompare(valueA, undefined, { sensitivity: 'base' });\n }\n });\n\n // Clear and append the sorted rows back to the table body\n tableBody.innerHTML = '';\n tableRows.forEach((row) => {\n tableBody.appendChild(row);\n });\n }\n\n @Listen('pdsTableSort')\n handleTableSort(event: CustomEvent<{ column: string; direction: 'asc' | 'desc' }>) {\n const { direction } = event.detail;\n this.sortTable(event.detail.column, direction);\n this.sortingColumn = event.detail.column;\n this.sortingDirection = direction;\n }\n\n @Listen('pdsTableSelectAll')\n handleTableSelectAll(event: CustomEvent<{ isSelected: boolean }>) {\n if (event.defaultPrevented) return;\n\n const pdsTableBody = this.el.querySelector('pds-table-body');\n const tableRows = Array.from(pdsTableBody.querySelectorAll('pds-table-row'));\n\n tableRows.forEach((row) => {\n row.isSelected = event.detail.isSelected;\n });\n }\n\n @Listen('pdsTableRowSelected')\n async handleTableSelect(event: CustomEvent<{ rowIndex: number; isSelected: boolean }>) {\n if (event.defaultPrevented) return;\n\n const allTableRows = this.el.querySelectorAll('pds-table-row');\n const allSelectedRows = Array.from(allTableRows).every((row) => row.isSelected);\n const noneSelectedRows = Array.from(allTableRows).every((row) => !row.isSelected);\n const pdsTableHead = this.el.querySelector('pds-table-head');\n if (!pdsTableHead) return;\n\n const headerCheckbox = pdsTableHead.shadowRoot.querySelector('pds-checkbox');\n headerCheckbox.checked = allSelectedRows;\n headerCheckbox.indeterminate = !allSelectedRows && !noneSelectedRows;\n }\n\n render() {\n if (this.responsive) {\n return (\n <Host\n class=\"pds-table is-responsive pds-table-responsive-host\"\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n part=\"table responsive-table\"\n >\n <div class=\"scroll-shadow-left\" part=\"scroll-shadow-left\"></div>\n <div class=\"scroll-shadow-right\" part=\"scroll-shadow-right\"></div>\n <div class=\"pds-table-responsive-container\" part=\"responsive-container\">\n <div class=\"pds-table-responsive-wrapper\" part=\"responsive-wrapper\">\n <div class={this.classNames()} part=\"table-inner\">\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n return (\n <Host\n class={this.classNames()}\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n part=\"table\"\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,t,a,i){function r(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,o){function d(e){try{n(i.next(e))}catch(e){o(e)}}function s(e){try{n(i["throw"](e))}catch(e){o(e)}}function n(e){e.done?a(e.value):r(e.value).then(d,s)}n((i=i.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var a={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,r,o,d;return d={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(d[Symbol.iterator]=function(){return this}),d;function s(e){return function(t){return n([e,t])}}function n(s){if(i)throw new TypeError("Generator is already executing.");while(d&&(d=0,s[0]&&(a=0)),a)try{if(i=1,r&&(o=s[0]&2?r["return"]:s[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;if(r=0,o)s=[s[0]&2,o.value];switch(s[0]){case 0:case 1:o=s;break;case 4:a.label++;return{value:s[1],done:false};case 5:a.label++;r=s[1];s=[0];continue;case 7:s=a.ops.pop();a.trys.pop();continue;default:if(!(o=a.trys,o=o.length>0&&o[o.length-1])&&(s[0]===6||s[0]===2)){a=0;continue}if(s[0]===3&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(s[0]===6&&a.label<o[1]){a.label=o[1];o=s;break}if(o&&a.label<o[2]){a.label=o[2];a.ops.push(s);break}if(o[2])a.ops.pop();a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e];r=0}finally{i=o=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};System.register(["./p-Cxvdulqq.system.js"],(function(e){"use strict";var t,a,i,r;return{setters:[function(e){t=e.r;a=e.c;i=e.h;r=e.g}],execute:function(){var o=".pds-modal__backdrop{-ms-flex-align:start;align-items:flex-start;background-color:rgba(0, 0, 0, 0.4);border:0;display:-ms-flexbox;display:flex;height:100%;inset:0;-ms-flex-pack:center;justify-content:center;margin:0;max-height:100%;max-width:100%;opacity:0;padding:0;position:fixed;-webkit-transition:opacity 0.2s ease, visibility 0.2s ease;transition:opacity 0.2s ease, visibility 0.2s ease;visibility:hidden;width:100%;z-index:1000}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}pds-modal .pds-modal__backdrop{z-index:1001}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop.open{opacity:1;visibility:visible}.pds-modal{background:var(--pine-color-background-container);border-radius:var(--pine-dimension-sm);-webkit-box-shadow:var(--pine-box-shadow-400);box-shadow:var(--pine-box-shadow-400);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:var(--pine-dimension-md);max-height:none;width:100%}.pds-modal.pds-modal--scrollable{max-height:calc(100vh - (5vh + 96px))}@supports (height: 100dvh){.pds-modal.pds-modal--scrollable{max-height:calc(100dvh - (5dvh + 96px))}}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:6dvh;margin-block-start:6dvh}}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:8dvh;margin-block-start:8dvh}}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}@supports (height: 100dvh){.pds-modal--fullscreen{max-height:100dvh}}.pds-modal--fullscreen.pds-modal--scrollable{max-height:100vh}@supports (height: 100dvh){.pds-modal--fullscreen.pds-modal--scrollable{max-height:100dvh}}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}.pds-modal--scrollable pds-modal-content{-webkit-border-after:1px solid transparent;border-block-end:1px solid transparent;-webkit-border-before:1px solid transparent;border-block-start:1px solid transparent;overflow-y:auto}.pds-modal:not(.pds-modal--scrollable) pds-modal-content{overflow-y:visible}";var d=e("mock_pds_modal",function(){function e(e){t(this,e);this.pdsModalOpen=a(this,"pdsModalOpen");this.pdsModalClose=a(this,"pdsModalClose");this.pdsModalBackdropClick=a(this,"pdsModalBackdropClick");this.size="md";this.scrollable=true;this.backdropDismiss=true;this.open=false}e.prototype.showModal=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.open=true;this.pdsModalOpen.emit();return[2]}))}))};e.prototype.hideModal=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.open=false;this.pdsModalClose.emit();return[2]}))}))};e.prototype.handleBackdropClick=function(e){var t=this.el.querySelector(".pds-modal__backdrop");if(e.target===t&&this.backdropDismiss===true){this.pdsModalBackdropClick.emit();this.hideModal()}};e.prototype.handleKeyDown=function(e){if(e.key==="Escape"&&this.open===true){this.hideModal()}};e.prototype.componentDidLoad=function(){};e.prototype.render=function(){var e;var t=(e={"pds-modal":true},e["pds-modal--".concat(this.size)]=true,e["pds-modal--scrollable"]=this.scrollable,e);var a={"pds-modal__backdrop":true,open:this.open};return i("div",{key:"f8f3e1da60eb943d8f857755e2dbd2c08264f2cf",class:a},i("div",{key:"0f7454db09265e84962a24cf412ca77b4005a5fd",class:t,role:"dialog","aria-modal":"true","aria-labelledby":this.componentId?"".concat(this.componentId,"-heading"):null},i("div",{key:"78e9988c584c6c4d0947722468f730f537acb933",class:"pds-modal__header"},i("slot",{key:"40f16731657da0112b0ef1954101304e9a3a8bdc",name:"header"})),i("div",{key:"f5bd52f05b1d34d747f34e7d1a28aec90019630a",class:"pds-modal-content"},i("slot",{key:"bf8812eb47a747d897889a91a997b5fd5b57c3d9"})),i("div",{key:"70e9b90cce8108b71afe434610b09624d9b4037a",class:"pds-modal__footer"},i("slot",{key:"283e94934656711f12b9d75e29520ee8d04bb5d8",name:"footer"}))))};Object.defineProperty(e.prototype,"el",{get:function(){return r(this)},enumerable:false,configurable:true});return e}());d.style=o}}}));
|
|
2
|
-
//# sourceMappingURL=p-fdf22be1.system.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pdsModalCss","MockPdsModal","exports","class_1","hostRef","this","size","scrollable","backdropDismiss","open","prototype","showModal","pdsModalOpen","emit","hideModal","pdsModalClose","handleBackdropClick","event","backdrop","el","querySelector","target","pdsModalBackdropClick","handleKeyDown","key","componentDidLoad","render","modalClasses","_a","concat","backdropClasses","h","class","role","componentId","name"],"sources":["src/components/pds-modal/pds-modal.scss?tag=mock-pds-modal","src/components/pds-modal/test/mock-pds-modal.tsx"],"sourcesContent":[".pds-modal__backdrop {\n align-items: flex-start;\n background-color: rgba(0, 0, 0, 0.4);\n border: 0;\n display: flex;\n height: 100%;\n inset: 0;\n justify-content: center;\n margin: 0;\n max-height: 100%;\n max-width: 100%;\n opacity: 0;\n padding: 0;\n position: fixed;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n visibility: hidden;\n width: 100%;\n z-index: 1000;\n\n @supports (backdrop-filter: blur(3px)) {\n backdrop-filter: blur(3px);\n }\n\n // Increase z-index for nested modals\n pds-modal & {\n z-index: 1001;\n }\n\n &::backdrop {\n background: transparent;\n }\n\n &.open {\n opacity: 1;\n visibility: visible;\n }\n}\n\n.pds-modal {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-dimension-sm);\n box-shadow: var(--pine-box-shadow-400);\n display: flex;\n flex-direction: column;\n margin: var(--pine-dimension-md);\n max-height: none;\n width: 100%;\n\n &.pds-modal--scrollable {\n max-height: calc(100vh - (calc(5vh + 96px)));\n\n @supports (height: 100dvh) {\n max-height: calc(100dvh - (calc(5dvh + 96px)));\n }\n }\n\n @media (min-width: 992px) {\n margin-block-start: 6vh;\n\n @supports (height: 100dvh) {\n margin-block-start: 6dvh;\n }\n }\n\n @media (min-width: 1200px) {\n margin-block-start: 8vh;\n\n @supports (height: 100dvh) {\n margin-block-start: 8dvh;\n }\n }\n}\n\n.pds-modal--sm {\n max-width: 520px;\n}\n\n.pds-modal--md {\n max-width: 700px;\n}\n\n.pds-modal--lg {\n max-width: 900px;\n}\n\n.pds-modal--fullscreen {\n border-radius: 0;\n height: 100%;\n margin: 0;\n max-height: 100vh;\n max-width: 100%;\n\n @supports (height: 100dvh) {\n max-height: 100dvh;\n }\n\n &.pds-modal--scrollable {\n max-height: 100vh;\n\n @supports (height: 100dvh) {\n max-height: 100dvh;\n }\n }\n}\n\n.pds-modal-content {\n .pds-modal--fullscreen & {\n flex: 1;\n }\n}\n\n// Scrollable modal styles (default behavior)\n.pds-modal--scrollable {\n pds-modal-content {\n border-block-end: 1px solid transparent;\n border-block-start: 1px solid transparent;\n overflow-y: auto;\n }\n}\n\n// Non-scrollable modal styles\n.pds-modal:not(.pds-modal--scrollable) {\n pds-modal-content {\n overflow-y: visible;\n }\n}\n\n","import { Component, Prop, Event, EventEmitter, Method, Element, h } from '@stencil/core';\n\n// Define the element interface for the mock component\ninterface HTMLMockPdsModalElement extends HTMLElement {\n open: boolean;\n showModal: () => Promise<void>;\n hideModal: () => Promise<void>;\n handleBackdropClick: (event: MouseEvent) => void;\n handleKeyDown: (event: KeyboardEvent) => void;\n}\n\n/**\n * Mock PdsModal component for testing purposes\n * This component mimics the real PdsModal but without using the Popover API\n */\n@Component({\n tag: 'mock-pds-modal',\n styleUrl: '../pds-modal.scss',\n shadow: false,\n})\nexport class MockPdsModal {\n @Element() el!: HTMLMockPdsModalElement;\n\n /**\n * The ID of the modal component\n */\n @Prop() componentId?: string;\n\n /**\n * The size of the modal\n */\n @Prop() size: 'sm' | 'md' | 'lg' | 'fullscreen' = 'md';\n\n /**\n * Whether the modal content should be scrollable\n * @default true\n */\n @Prop() scrollable = true;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n */\n @Prop() backdropDismiss = true;\n\n // Native dialog element always closes on Escape key press, so no closeOnEsc property is needed\n\n /**\n * Whether the modal is open\n */\n @Prop({ mutable: true }) open = false;\n\n // No need for modalRef in the mock implementation\n\n /**\n * Event emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter;\n\n /**\n * Event emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter;\n\n /**\n * Event emitted when the backdrop is clicked\n */\n @Event() pdsModalBackdropClick: EventEmitter;\n\n /**\n * Shows the modal\n */\n @Method()\n async showModal() {\n this.open = true;\n this.pdsModalOpen.emit();\n }\n\n /**\n * Hides the modal\n */\n @Method()\n async hideModal() {\n this.open = false;\n this.pdsModalClose.emit();\n }\n\n /**\n * Listen for click events on the backdrop\n */\n // Using direct method instead of @Listen to avoid ESLint warning\n handleBackdropClick(event: MouseEvent) {\n const backdrop = this.el.querySelector('.pds-modal__backdrop');\n // Check if the click was directly on the backdrop (not on a child element)\n if (event.target === backdrop && this.backdropDismiss === true) {\n this.pdsModalBackdropClick.emit();\n this.hideModal();\n }\n }\n\n /**\n * Listen for keydown events to handle Escape key\n * Native dialog element always closes on Escape key press\n */\n // Using direct method instead of @Listen to avoid ESLint warning\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open === true) {\n this.hideModal();\n }\n }\n\n componentDidLoad() {\n // No need to do anything in componentDidLoad for the mock\n }\n\n render() {\n const modalClasses = {\n 'pds-modal': true,\n [`pds-modal--${this.size}`]: true,\n 'pds-modal--scrollable': this.scrollable\n };\n\n const backdropClasses = {\n 'pds-modal__backdrop': true,\n 'open': this.open,\n };\n\n return (\n <div class={backdropClasses}>\n <div\n class={modalClasses}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={this.componentId ? `${this.componentId}-heading` : null}\n >\n <div class=\"pds-modal__header\">\n <slot name=\"header\"></slot>\n </div>\n <div class=\"pds-modal-content\">\n <slot></slot>\n </div>\n <div class=\"pds-modal__footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"wmDAAA,IAAMA,EAAc,27E,ICoBPC,EAAYC,EAAA,4BALzB,SAAAC,EAAAC,G,yJAgBUC,KAAIC,KAAsC,KAM1CD,KAAUE,WAAG,KAKbF,KAAeG,gBAAG,KAODH,KAAII,KAAG,KAkGjC,CA3EON,EAAAO,UAAAC,UAAN,W,qFACEN,KAAKI,KAAO,KACZJ,KAAKO,aAAaC,O,iBAOdV,EAAAO,UAAAI,UAAN,W,qFACET,KAAKI,KAAO,MACZJ,KAAKU,cAAcF,O,iBAOrBV,EAAAO,UAAAM,oBAAA,SAAoBC,GAClB,IAAMC,EAAWb,KAAKc,GAAGC,cAAc,wBAEvC,GAAIH,EAAMI,SAAWH,GAAYb,KAAKG,kBAAoB,KAAM,CAC9DH,KAAKiB,sBAAsBT,OAC3BR,KAAKS,W,GASTX,EAAAO,UAAAa,cAAA,SAAcN,GACZ,GAAIA,EAAMO,MAAQ,UAAYnB,KAAKI,OAAS,KAAM,CAChDJ,KAAKS,W,GAITX,EAAAO,UAAAe,iBAAA,W,EAIAtB,EAAAO,UAAAgB,OAAA,W,MACE,IAAMC,GAAYC,EAAA,CAChB,YAAa,MACbA,EAAC,cAAAC,OAAcxB,KAAKC,OAAS,KAC7BsB,EAAA,yBAAyBvB,KAAKE,W,GAGhC,IAAMuB,EAAkB,CACtB,sBAAuB,KACvBrB,KAAQJ,KAAKI,MAGf,OACEsB,EAAA,OAAAP,IAAA,2CAAKQ,MAAOF,GACVC,EACE,OAAAP,IAAA,2CAAAQ,MAAOL,EACPM,KAAK,SAAQ,aACF,OAAM,kBACA5B,KAAK6B,YAAc,GAAAL,OAAGxB,KAAK6B,YAAW,YAAa,MAEpEH,EAAK,OAAAP,IAAA,2CAAAQ,MAAM,qBACTD,EAAA,QAAAP,IAAA,2CAAMW,KAAK,YAEbJ,EAAK,OAAAP,IAAA,2CAAAQ,MAAM,qBACTD,EAAA,QAAAP,IAAA,8CAEFO,EAAK,OAAAP,IAAA,2CAAAQ,MAAM,qBACTD,EAAM,QAAAP,IAAA,2CAAAW,KAAK,a,uHAzHE,I","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(t,e,i,r){function a(t){return t instanceof i?t:new i((function(e){e(t)}))}return new(i||(i=Promise))((function(i,n){function o(t){try{d(r.next(t))}catch(t){n(t)}}function s(t){try{d(r["throw"](t))}catch(t){n(t)}}function d(t){t.done?i(t.value):a(t.value).then(o,s)}d((r=r.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var i={label:0,sent:function(){if(n[0]&1)throw n[1];return n[1]},trys:[],ops:[]},r,a,n,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(t){return function(e){return d([t,e])}}function d(s){if(r)throw new TypeError("Generator is already executing.");while(o&&(o=0,s[0]&&(i=0)),i)try{if(r=1,a&&(n=s[0]&2?a["return"]:s[0]?a["throw"]||((n=a["return"])&&n.call(a),0):a.next)&&!(n=n.call(a,s[1])).done)return n;if(a=0,n)s=[s[0]&2,n.value];switch(s[0]){case 0:case 1:n=s;break;case 4:i.label++;return{value:s[1],done:false};case 5:i.label++;a=s[1];s=[0];continue;case 7:s=i.ops.pop();i.trys.pop();continue;default:if(!(n=i.trys,n=n.length>0&&n[n.length-1])&&(s[0]===6||s[0]===2)){i=0;continue}if(s[0]===3&&(!n||s[1]>n[0]&&s[1]<n[3])){i.label=s[1];break}if(s[0]===6&&i.label<n[1]){i.label=n[1];n=s;break}if(n&&i.label<n[2]){i.label=n[2];i.ops.push(s);break}if(n[2])i.ops.pop();i.trys.pop();continue}s=e.call(t,i)}catch(t){s=[6,t];a=0}finally{r=n=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};System.register(["./p-Cxvdulqq.system.js"],(function(t){"use strict";var e,i,r,a;return{setters:[function(t){e=t.r;i=t.c;r=t.h;a=t.g}],execute:function(){var n=".pds-modal__backdrop{-ms-flex-align:start;align-items:flex-start;background-color:rgba(0, 0, 0, 0.4);border:0;display:-ms-flexbox;display:flex;height:100%;inset:0;-ms-flex-pack:center;justify-content:center;margin:0;max-height:100%;max-width:100%;opacity:0;padding:0;position:fixed;-webkit-transition:opacity 0.2s ease, visibility 0.2s ease;transition:opacity 0.2s ease, visibility 0.2s ease;visibility:hidden;width:100%;z-index:1000}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}pds-modal .pds-modal__backdrop{z-index:1001}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop.open{opacity:1;visibility:visible}.pds-modal{background:var(--pine-color-background-container);border-radius:var(--pine-dimension-sm);-webkit-box-shadow:var(--pine-box-shadow-400);box-shadow:var(--pine-box-shadow-400);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:var(--pine-dimension-md);max-height:none;width:100%}.pds-modal.pds-modal--scrollable{max-height:calc(100vh - (5vh + 96px))}@supports (height: 100dvh){.pds-modal.pds-modal--scrollable{max-height:calc(100dvh - (5dvh + 96px))}}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:6dvh;margin-block-start:6dvh}}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:8dvh;margin-block-start:8dvh}}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}@supports (height: 100dvh){.pds-modal--fullscreen{max-height:100dvh}}.pds-modal--fullscreen.pds-modal--scrollable{max-height:100vh}@supports (height: 100dvh){.pds-modal--fullscreen.pds-modal--scrollable{max-height:100dvh}}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}.pds-modal--scrollable pds-modal-content{-webkit-border-after:1px solid transparent;border-block-end:1px solid transparent;-webkit-border-before:1px solid transparent;border-block-start:1px solid transparent;overflow-y:auto}.pds-modal:not(.pds-modal--scrollable) pds-modal-content{overflow-y:visible}";var o=t("pds_modal",function(){function t(t){var r=this;e(this,t);this.pdsModalOpen=i(this,"pdsModalOpen");this.pdsModalClose=i(this,"pdsModalClose");this.focusableElements=[];this.backdropDismiss=true;this.open=false;this.size="md";this.scrollable=true;this.focusableElementsArray=[];this.handleBackdropClick=function(t){if(!r.backdropDismiss||!r.open)return;if(t.target.classList.contains("pds-modal__backdrop")){t.stopPropagation();if(r.isInnermostModal()){r.hideModal()}}};this.handleKeyDown=function(t){if(!r.open)return;if(t.key==="Escape"){if(r.isInnermostModal()){t.preventDefault();r.hideModal()}return}if(t.key==="Tab"){if(r.focusableElements.length===0)return;var e=r.focusableElements[0];var i=r.focusableElements[r.focusableElements.length-1];var a=document.activeElement;var n=a===e||e.contains(a);var o=a===i||i.contains(a);if(t.shiftKey&&n){t.preventDefault();r.focusElement(i)}else if(!t.shiftKey&&o){t.preventDefault();r.focusElement(e)}}}}t.prototype.componentDidLoad=function(){this.modalRef=this.el.querySelector(".pds-modal__backdrop");document.addEventListener("keydown",this.handleKeyDown)};t.prototype.disconnectedCallback=function(){document.removeEventListener("keydown",this.handleKeyDown)};t.prototype.handleOpenChange=function(t){if(t){this.showModal()}else{this.hideModal()}};t.prototype.updateFocusableElements=function(){if(!this.modalRef)return;var t=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])',"pds-button:not([disabled])","pds-link:not([disabled])","pds-input:not([disabled])","pds-checkbox:not([disabled])","pds-radio:not([disabled])","pds-switch:not([disabled])","pds-select:not([disabled])"].join(",");this.focusableElements=Array.from(this.modalRef.querySelectorAll(t));this.focusableElements=this.focusableElements.filter((function(t){var e=window.getComputedStyle(t);return e.display!=="none"&&e.visibility!=="hidden"}))};t.prototype.setInitialFocus=function(){if(this.focusableElements.length===0)return;var t=this.focusableElements[0];this.focusElement(t)};t.prototype.focusElement=function(t){if(!t)return;try{t.focus();setTimeout((function(){if(document.activeElement!==t){if(t.shadowRoot){var e=t.shadowRoot.querySelector("button, [tabindex], input, a[href]");if(e){e.focus()}}}}),0)}catch(t){console.error("Error focusing element:",t)}};t.prototype.showModal=function(){return __awaiter(this,void 0,void 0,(function(){var t=this;return __generator(this,(function(e){if(this.modalRef){try{this.previousActiveElement=document.activeElement;this.modalRef.showModal();this.open=true;setTimeout((function(){t.updateFocusableElements();t.setInitialFocus();t.pdsModalOpen.emit()}),100)}catch(t){console.error("Failed to show modal:",t)}}return[2]}))}))};t.prototype.hideModal=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(this.modalRef){try{this.modalRef.close();this.open=false;if(this.previousActiveElement&&typeof this.previousActiveElement.focus==="function"){this.previousActiveElement.focus()}this.pdsModalClose.emit()}catch(t){console.error("Failed to hide modal:",t)}}return[2]}))}))};t.prototype.getBackdropZIndex=function(t){var e=t.querySelector(".pds-modal__backdrop");return e?parseInt(getComputedStyle(e).zIndex,10):-1};t.prototype.isInnermostModal=function(){var t=this;var e=Array.from(document.querySelectorAll("pds-modal")).filter((function(t){return t.open}));if(e.length===0)return false;var i=this.el.querySelector(".pds-modal__backdrop");if(!i)return false;var r=e.map((function(e){return t.getBackdropZIndex(e)}));var a=Math.max.apply(Math,r);var n=this.getBackdropZIndex(this.el);return n===a};t.prototype.render=function(){var t;return r("dialog",{key:"ca1fe22c9f9aa26e74234e5195c007760cbbf818",class:{"pds-modal__backdrop":true,open:this.open},"aria-modal":"true","aria-labelledby":"".concat(this.componentId,"-heading"),onClick:this.handleBackdropClick},r("div",{key:"d0f297574d53dc1718277a58c2ade00a5451f96b",class:(t={"pds-modal":true},t["pds-modal--".concat(this.size)]=true,t["pds-modal--scrollable"]=this.scrollable,t)},r("slot",{key:"37bb5abda88b4db9304884532951980ea8b9eaf8"})))};Object.defineProperty(t.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{open:["handleOpenChange"]}},enumerable:false,configurable:true});return t}());o.style=n}}}));
|
|
2
|
-
//# sourceMappingURL=p-fe7ece91.system.entry.js.map
|