@pine-ds/core 3.26.4 → 3.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/attributes.js +1 -85
- package/components/closest.js +1 -12
- package/components/floating-ui.dom.js +1 -1631
- package/components/form.js +1 -62
- package/components/index.d.ts +1 -0
- package/components/index.js +1 -54
- package/components/index2.js +1 -20
- package/components/mock-pds-modal.js +1 -119
- package/components/pds-accordion.js +1 -74
- package/components/pds-alert.js +1 -115
- package/components/pds-avatar.js +1 -141
- package/components/pds-box.js +1 -9
- package/components/pds-box2.js +1 -283
- package/components/pds-button.js +1 -9
- package/components/pds-button2.js +1 -250
- package/components/pds-checkbox.js +1 -9
- package/components/pds-checkbox2.js +1 -150
- package/components/pds-chip.js +1 -9
- package/components/pds-chip2.js +1 -167
- package/components/pds-combobox.js +2 -2958
- package/components/pds-container.js +1 -61
- package/components/pds-copytext.js +1 -154
- package/components/pds-divider.js +1 -58
- package/components/pds-dropdown-menu-item.js +1 -128
- package/components/pds-dropdown-menu-separator.js +1 -46
- package/components/pds-dropdown-menu.js +1 -349
- package/components/pds-filter.js +1 -524
- package/components/pds-filters.js +1 -40
- package/components/pds-icon.js +1 -9
- package/components/pds-icon2.js +1 -601
- package/components/pds-image.js +1 -61
- package/components/pds-input.js +1 -372
- package/components/pds-link.js +1 -9
- package/components/pds-link2.js +1 -93
- package/components/pds-loader.js +1 -9
- package/components/pds-loader2.js +1 -79
- package/components/pds-modal-content.js +1 -214
- package/components/pds-modal-footer.js +1 -37
- package/components/pds-modal-header.js +1 -37
- package/components/pds-modal.js +1 -291
- package/components/pds-multiselect.js +1 -1087
- package/components/pds-popover.js +1 -602
- package/components/pds-progress.js +1 -60
- package/components/pds-property.js +1 -57
- package/components/pds-radio-group.js +1 -211
- package/components/pds-radio.js +1 -138
- package/components/pds-row.js +1 -99
- package/components/pds-select.js +1 -291
- package/components/pds-sortable-item.js +1 -67
- package/components/pds-sortable.js +2 -2747
- package/components/pds-switch.js +1 -147
- package/components/pds-tab.js +1 -71
- package/components/pds-table-body.js +1 -38
- package/components/pds-table-cell.js +1 -9
- package/components/pds-table-cell2.js +1 -169
- package/components/pds-table-head-cell.js +1 -9
- package/components/pds-table-head-cell2.js +1 -254
- package/components/pds-table-head.js +1 -102
- package/components/pds-table-row.js +1 -197
- package/components/pds-table.js +1 -291
- package/components/pds-tabpanel.js +1 -48
- package/components/pds-tabs.js +1 -126
- package/components/pds-text.js +1 -9
- package/components/pds-text2.js +1 -110
- package/components/pds-textarea.js +1 -376
- package/components/pds-toast.js +1 -175
- package/components/pds-tooltip.js +1 -362
- package/components/scroll.js +1 -78
- package/components/truncation-tooltip.js +1 -247
- package/components/utils.js +1 -74
- package/dist/cjs/attributes-oNMnBEnP.js +0 -3
- package/dist/cjs/closest-BZXvuB_Y.js +0 -3
- package/dist/cjs/floating-ui.dom-BZk7Blsu.js +0 -3
- package/dist/cjs/form-CpM5Z8q7.js +0 -3
- package/dist/cjs/{index-BUvWX8u2.js → index-DBhfI2Jq.js} +567 -387
- package/dist/cjs/index-DGBoDsAL.js +0 -3
- package/dist/cjs/index.cjs.js +0 -1
- package/dist/cjs/loader.cjs.js +2 -3
- package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -4
- package/dist/cjs/pds-accordion.cjs.entry.js +7 -6
- package/dist/cjs/pds-alert.cjs.entry.js +4 -5
- package/dist/cjs/pds-avatar.cjs.entry.js +3 -4
- package/dist/cjs/pds-box.cjs.entry.js +3 -4
- package/dist/cjs/pds-button.cjs.entry.js +3 -4
- package/dist/cjs/pds-checkbox.cjs.entry.js +9 -6
- package/dist/cjs/pds-chip.cjs.entry.js +4 -5
- package/dist/cjs/pds-combobox.cjs.entry.js +18 -9
- package/dist/cjs/pds-container.cjs.entry.js +3 -4
- package/dist/cjs/pds-copytext.cjs.entry.js +10 -7
- package/dist/cjs/pds-divider.cjs.entry.js +3 -4
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +3 -4
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -4
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +3 -4
- package/dist/cjs/pds-filter.cjs.entry.js +3 -4
- package/dist/cjs/pds-filters.cjs.entry.js +3 -4
- package/dist/cjs/pds-icon.cjs.entry.js +18 -9
- package/dist/cjs/pds-image.cjs.entry.js +3 -4
- package/dist/cjs/pds-input.cjs.entry.js +12 -9
- package/dist/cjs/pds-link.cjs.entry.js +5 -6
- package/dist/cjs/pds-loader.cjs.entry.js +3 -4
- package/dist/cjs/pds-modal-content.cjs.entry.js +3 -4
- package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -4
- package/dist/cjs/pds-modal-header.cjs.entry.js +3 -4
- package/dist/cjs/pds-modal.cjs.entry.js +6 -5
- package/dist/cjs/pds-multiselect.cjs.entry.js +15 -8
- package/dist/cjs/pds-popover.cjs.entry.js +3 -4
- package/dist/cjs/pds-progress.cjs.entry.js +3 -4
- package/dist/cjs/pds-property.cjs.entry.js +3 -4
- package/dist/cjs/pds-radio-group.cjs.entry.js +15 -8
- package/dist/cjs/pds-radio.cjs.entry.js +4 -5
- package/dist/cjs/pds-row.cjs.entry.js +3 -4
- package/dist/cjs/pds-select.cjs.entry.js +13 -10
- package/dist/cjs/pds-sortable-item.cjs.entry.js +4 -5
- package/dist/cjs/pds-sortable.cjs.entry.js +6 -5
- package/dist/cjs/pds-switch.cjs.entry.js +7 -6
- package/dist/cjs/pds-tab.cjs.entry.js +3 -4
- package/dist/cjs/pds-table-body.cjs.entry.js +3 -4
- package/dist/cjs/pds-table-cell.cjs.entry.js +6 -5
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -4
- package/dist/cjs/pds-table-head.cjs.entry.js +3 -4
- package/dist/cjs/pds-table-row.cjs.entry.js +3 -4
- package/dist/cjs/pds-table.cjs.entry.js +3 -4
- package/dist/cjs/pds-tabpanel.cjs.entry.js +3 -4
- package/dist/cjs/pds-tabs.cjs.entry.js +3 -4
- package/dist/cjs/pds-text.cjs.entry.js +46 -6
- package/dist/cjs/pds-textarea.cjs.entry.js +14 -9
- package/dist/cjs/pds-toast.cjs.entry.js +6 -5
- package/dist/cjs/pds-tooltip.cjs.entry.js +6 -5
- package/dist/cjs/pine-core.cjs.js +3 -4
- package/dist/cjs/scroll-2XcoE_6Q.js +0 -3
- package/dist/cjs/truncation-tooltip-CVzAha5B.js +0 -3
- package/dist/cjs/utils-7jx8T2mW.js +0 -3
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/_internal/pds-label/pds-label.js +0 -1
- package/dist/collection/components/pds-accordion/pds-accordion.js +1 -2
- package/dist/collection/components/pds-alert/pds-alert.js +0 -1
- package/dist/collection/components/pds-avatar/pds-avatar.js +0 -1
- package/dist/collection/components/pds-box/pds-box.js +206 -134
- package/dist/collection/components/pds-button/pds-button.css +74 -74
- package/dist/collection/components/pds-button/pds-button.js +2 -2
- package/dist/collection/components/pds-checkbox/checkbox-interface.js +0 -1
- package/dist/collection/components/pds-checkbox/pds-checkbox.js +4 -3
- package/dist/collection/components/pds-chip/pds-chip.js +6 -4
- package/dist/collection/components/pds-combobox/combobox-interface.js +0 -1
- package/dist/collection/components/pds-combobox/pds-combobox.css +3 -0
- package/dist/collection/components/pds-combobox/pds-combobox.js +10 -6
- package/dist/collection/components/pds-container/pds-container.js +0 -1
- package/dist/collection/components/pds-copytext/pds-copytext.js +1 -2
- package/dist/collection/components/pds-divider/pds-divider.js +0 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +0 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +0 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +2 -2
- package/dist/collection/components/pds-filters/pds-filter/filter-interface.js +0 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +8 -5
- package/dist/collection/components/pds-filters/pds-filters.js +0 -1
- package/dist/collection/components/pds-image/pds-image.js +0 -1
- package/dist/collection/components/pds-input/input-interface.js +0 -1
- package/dist/collection/components/pds-input/pds-input.js +5 -4
- package/dist/collection/components/pds-link/pds-link.js +154 -3
- package/dist/collection/components/pds-loader/pds-loader.js +0 -1
- package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +0 -1
- package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +0 -1
- package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +0 -1
- package/dist/collection/components/pds-modal/pds-modal.js +0 -1
- package/dist/collection/components/pds-modal/test/mock-pds-modal.js +0 -1
- package/dist/collection/components/pds-multiselect/multiselect-interface.js +0 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.css +1 -0
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +12 -7
- package/dist/collection/components/pds-popover/pds-popover.js +6 -4
- package/dist/collection/components/pds-popover/popover-interface.js +0 -1
- package/dist/collection/components/pds-progress/pds-progress.js +0 -1
- package/dist/collection/components/pds-property/pds-property.js +0 -1
- package/dist/collection/components/pds-radio/pds-radio.js +0 -1
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +2 -2
- package/dist/collection/components/pds-radio-group/radio-group-interface.js +0 -1
- package/dist/collection/components/pds-row/pds-row.js +9 -7
- package/dist/collection/components/pds-select/pds-select.js +2 -3
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -2
- package/dist/collection/components/pds-sortable/pds-sortable.js +2 -2
- package/dist/collection/components/pds-sortable/sortable-interface.js +0 -1
- package/dist/collection/components/pds-switch/pds-switch.js +0 -1
- package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +0 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +0 -1
- package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +0 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +0 -1
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +0 -1
- package/dist/collection/components/pds-table/pds-table.css +1 -0
- package/dist/collection/components/pds-table/pds-table.js +0 -1
- package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +0 -1
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +0 -1
- package/dist/collection/components/pds-tabs/pds-tabs.js +0 -1
- package/dist/collection/components/pds-text/pds-text.js +31 -4
- package/dist/collection/components/pds-textarea/pds-textarea.js +4 -3
- package/dist/collection/components/pds-textarea/textarea-interface.js +0 -1
- package/dist/collection/components/pds-toast/pds-toast.js +0 -1
- package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
- package/dist/collection/global/pine-ui-global.js +0 -1
- package/dist/collection/index.js +0 -1
- package/dist/collection/utils/attributes.js +0 -1
- package/dist/collection/utils/closest.js +0 -1
- package/dist/collection/utils/form.js +0 -1
- package/dist/collection/utils/interfaces.js +0 -1
- package/dist/collection/utils/overlay.js +0 -1
- package/dist/collection/utils/scroll.js +0 -1
- package/dist/collection/utils/test/axe.js +9 -4
- package/dist/collection/utils/truncation-tooltip.js +0 -1
- package/dist/collection/utils/types.js +18 -2
- package/dist/collection/utils/utils.js +0 -1
- package/dist/docs.d.ts +37 -0
- package/dist/docs.json +2335 -1965
- package/dist/esm/attributes-C0M1gTKv.js +0 -3
- package/dist/esm/closest-DnUJodVd.js +0 -3
- package/dist/esm/floating-ui.dom-DDtwbwIl.js +0 -3
- package/dist/esm/form-C3xDZBme.js +0 -3
- package/dist/esm/{index-B2f84Zog.js → index-CaRgVPt7.js} +567 -387
- package/dist/esm/index-D4ys0pep.js +0 -3
- package/dist/esm/index.js +0 -1
- package/dist/esm/loader.js +3 -4
- package/dist/esm/mock-pds-modal.entry.js +3 -4
- package/dist/esm/pds-accordion.entry.js +7 -6
- package/dist/esm/pds-alert.entry.js +4 -5
- package/dist/esm/pds-avatar.entry.js +3 -4
- package/dist/esm/pds-box.entry.js +3 -4
- package/dist/esm/pds-button.entry.js +3 -4
- package/dist/esm/pds-checkbox.entry.js +9 -6
- package/dist/esm/pds-chip.entry.js +4 -5
- package/dist/esm/pds-combobox.entry.js +18 -9
- package/dist/esm/pds-container.entry.js +3 -4
- package/dist/esm/pds-copytext.entry.js +10 -7
- package/dist/esm/pds-divider.entry.js +3 -4
- package/dist/esm/pds-dropdown-menu-item.entry.js +3 -4
- package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -4
- package/dist/esm/pds-dropdown-menu.entry.js +3 -4
- package/dist/esm/pds-filter.entry.js +3 -4
- package/dist/esm/pds-filters.entry.js +3 -4
- package/dist/esm/pds-icon.entry.js +18 -9
- package/dist/esm/pds-image.entry.js +3 -4
- package/dist/esm/pds-input.entry.js +12 -9
- package/dist/esm/pds-link.entry.js +5 -6
- package/dist/esm/pds-loader.entry.js +3 -4
- package/dist/esm/pds-modal-content.entry.js +3 -4
- package/dist/esm/pds-modal-footer.entry.js +3 -4
- package/dist/esm/pds-modal-header.entry.js +3 -4
- package/dist/esm/pds-modal.entry.js +6 -5
- package/dist/esm/pds-multiselect.entry.js +15 -8
- package/dist/esm/pds-popover.entry.js +3 -4
- package/dist/esm/pds-progress.entry.js +3 -4
- package/dist/esm/pds-property.entry.js +3 -4
- package/dist/esm/pds-radio-group.entry.js +15 -8
- package/dist/esm/pds-radio.entry.js +4 -5
- package/dist/esm/pds-row.entry.js +3 -4
- package/dist/esm/pds-select.entry.js +13 -10
- package/dist/esm/pds-sortable-item.entry.js +4 -5
- package/dist/esm/pds-sortable.entry.js +6 -5
- package/dist/esm/pds-switch.entry.js +7 -6
- package/dist/esm/pds-tab.entry.js +3 -4
- package/dist/esm/pds-table-body.entry.js +3 -4
- package/dist/esm/pds-table-cell.entry.js +6 -5
- package/dist/esm/pds-table-head-cell.entry.js +3 -4
- package/dist/esm/pds-table-head.entry.js +3 -4
- package/dist/esm/pds-table-row.entry.js +3 -4
- package/dist/esm/pds-table.entry.js +3 -4
- package/dist/esm/pds-tabpanel.entry.js +3 -4
- package/dist/esm/pds-tabs.entry.js +3 -4
- package/dist/esm/pds-text.entry.js +46 -6
- package/dist/esm/pds-textarea.entry.js +14 -9
- package/dist/esm/pds-toast.entry.js +6 -5
- package/dist/esm/pds-tooltip.entry.js +6 -5
- package/dist/esm/pine-core.js +4 -5
- package/dist/esm/scroll-DtgUQhjl.js +0 -3
- package/dist/esm/truncation-tooltip-Blk4GigP.js +0 -3
- package/dist/esm/utils-tJa4KYNO.js +0 -3
- package/dist/esm-es5/attributes-C0M1gTKv.js +1 -2
- package/dist/esm-es5/closest-DnUJodVd.js +1 -2
- package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js +1 -2
- package/dist/esm-es5/form-C3xDZBme.js +1 -2
- package/dist/esm-es5/index-CaRgVPt7.js +2 -0
- package/dist/esm-es5/index-D4ys0pep.js +1 -2
- package/dist/esm-es5/index.js +0 -2
- package/dist/esm-es5/loader.js +1 -2
- package/dist/esm-es5/mock-pds-modal.entry.js +1 -2
- package/dist/esm-es5/pds-accordion.entry.js +1 -2
- package/dist/esm-es5/pds-alert.entry.js +1 -2
- package/dist/esm-es5/pds-avatar.entry.js +1 -2
- package/dist/esm-es5/pds-box.entry.js +1 -2
- package/dist/esm-es5/pds-button.entry.js +1 -2
- package/dist/esm-es5/pds-checkbox.entry.js +1 -2
- package/dist/esm-es5/pds-chip.entry.js +1 -2
- package/dist/esm-es5/pds-combobox.entry.js +2 -3
- package/dist/esm-es5/pds-container.entry.js +1 -2
- package/dist/esm-es5/pds-copytext.entry.js +1 -2
- package/dist/esm-es5/pds-divider.entry.js +1 -2
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -2
- package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -2
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -2
- package/dist/esm-es5/pds-filter.entry.js +1 -2
- package/dist/esm-es5/pds-filters.entry.js +1 -2
- package/dist/esm-es5/pds-icon.entry.js +1 -2
- package/dist/esm-es5/pds-image.entry.js +1 -2
- package/dist/esm-es5/pds-input.entry.js +1 -2
- package/dist/esm-es5/pds-link.entry.js +1 -2
- package/dist/esm-es5/pds-loader.entry.js +1 -2
- package/dist/esm-es5/pds-modal-content.entry.js +1 -2
- package/dist/esm-es5/pds-modal-footer.entry.js +1 -2
- package/dist/esm-es5/pds-modal-header.entry.js +1 -2
- package/dist/esm-es5/pds-modal.entry.js +1 -2
- package/dist/esm-es5/pds-multiselect.entry.js +1 -2
- package/dist/esm-es5/pds-popover.entry.js +1 -2
- package/dist/esm-es5/pds-progress.entry.js +1 -2
- package/dist/esm-es5/pds-property.entry.js +1 -2
- package/dist/esm-es5/pds-radio-group.entry.js +1 -2
- package/dist/esm-es5/pds-radio.entry.js +1 -2
- package/dist/esm-es5/pds-row.entry.js +1 -2
- package/dist/esm-es5/pds-select.entry.js +1 -2
- package/dist/esm-es5/pds-sortable-item.entry.js +1 -2
- package/dist/esm-es5/pds-sortable.entry.js +2 -3
- package/dist/esm-es5/pds-switch.entry.js +1 -2
- package/dist/esm-es5/pds-tab.entry.js +1 -2
- package/dist/esm-es5/pds-table-body.entry.js +1 -2
- package/dist/esm-es5/pds-table-cell.entry.js +1 -2
- package/dist/esm-es5/pds-table-head-cell.entry.js +1 -2
- package/dist/esm-es5/pds-table-head.entry.js +1 -2
- package/dist/esm-es5/pds-table-row.entry.js +1 -2
- package/dist/esm-es5/pds-table.entry.js +1 -2
- package/dist/esm-es5/pds-tabpanel.entry.js +1 -2
- package/dist/esm-es5/pds-tabs.entry.js +1 -2
- package/dist/esm-es5/pds-text.entry.js +1 -2
- package/dist/esm-es5/pds-textarea.entry.js +1 -2
- package/dist/esm-es5/pds-toast.entry.js +1 -2
- package/dist/esm-es5/pds-tooltip.entry.js +1 -2
- package/dist/esm-es5/pine-core.js +1 -2
- package/dist/esm-es5/scroll-DtgUQhjl.js +1 -2
- package/dist/esm-es5/truncation-tooltip-Blk4GigP.js +1 -2
- package/dist/esm-es5/utils-tJa4KYNO.js +1 -2
- package/dist/pine-core/index.esm.js +0 -2
- package/dist/pine-core/p-002c420f.system.entry.js +1 -0
- package/dist/pine-core/p-003f91b1.system.entry.js +1 -0
- package/dist/pine-core/p-006398c3.system.entry.js +1 -0
- package/dist/pine-core/p-01dba061.entry.js +1 -0
- package/dist/pine-core/p-0451fdf7.entry.js +1 -0
- package/dist/pine-core/p-04f8b32a.entry.js +1 -0
- package/dist/pine-core/p-0bf56f61.entry.js +1 -0
- package/dist/pine-core/p-13ec2343.entry.js +1 -0
- package/dist/pine-core/p-190ba1df.entry.js +1 -0
- package/dist/pine-core/p-1e1804ed.system.entry.js +1 -0
- package/dist/pine-core/p-1e3beca4.system.entry.js +1 -0
- package/dist/pine-core/p-20f39b93.system.entry.js +1 -0
- package/dist/pine-core/p-22bfa998.entry.js +1 -0
- package/dist/pine-core/p-27ac77c3.entry.js +1 -0
- package/dist/pine-core/p-2b0cb8c4.system.entry.js +1 -0
- package/dist/pine-core/p-334b7c30.entry.js +1 -0
- package/dist/pine-core/p-3876b9be.entry.js +1 -0
- package/dist/pine-core/p-3a1b7302.system.entry.js +1 -0
- package/dist/pine-core/p-3ad9bcef.system.entry.js +1 -0
- package/dist/pine-core/p-3ba36512.system.entry.js +1 -0
- package/dist/pine-core/p-3f19666c.entry.js +1 -0
- package/dist/pine-core/p-3fa80c5a.system.entry.js +1 -0
- package/dist/pine-core/p-44388b8f.system.entry.js +1 -0
- package/dist/pine-core/p-44f58d33.system.entry.js +1 -0
- package/dist/pine-core/p-46de2438.entry.js +1 -0
- package/dist/pine-core/p-4abec102.system.entry.js +3 -0
- package/dist/pine-core/p-4e49712d.entry.js +1 -0
- package/dist/pine-core/p-52e9ec4f.entry.js +1 -0
- package/dist/pine-core/p-52f7115b.entry.js +1 -0
- package/dist/pine-core/p-5584a56b.entry.js +1 -0
- package/dist/pine-core/p-568bb210.system.entry.js +1 -0
- package/dist/pine-core/p-571d6bef.system.entry.js +1 -0
- package/dist/pine-core/p-587a15ee.system.entry.js +1 -0
- package/dist/pine-core/p-59a5dd77.system.entry.js +1 -0
- package/dist/pine-core/p-59c60e5b.entry.js +1 -0
- package/dist/pine-core/p-5a2df1e2.entry.js +1 -0
- package/dist/pine-core/p-5c6c2f79.system.entry.js +1 -0
- package/dist/pine-core/p-618ba6d5.system.entry.js +1 -0
- package/dist/pine-core/p-638e9cb3.entry.js +1 -0
- package/dist/pine-core/p-63e0d4a5.system.entry.js +1 -0
- package/dist/pine-core/p-65fb166c.system.entry.js +1 -0
- package/dist/pine-core/p-68121613.system.entry.js +1 -0
- package/dist/pine-core/p-6a2373d0.system.entry.js +1 -0
- package/dist/pine-core/p-6c5aacad.entry.js +1 -0
- package/dist/pine-core/p-71ca8845.system.entry.js +1 -0
- package/dist/pine-core/p-7247fb4f.entry.js +2 -0
- package/dist/pine-core/p-73b81009.entry.js +1 -0
- package/dist/pine-core/p-73dd2a2b.entry.js +1 -0
- package/dist/pine-core/p-74e06c8d.system.entry.js +1 -0
- package/dist/pine-core/p-7520a715.system.entry.js +1 -0
- package/dist/pine-core/p-7766e970.entry.js +1 -0
- package/dist/pine-core/p-7874fe2b.entry.js +1 -0
- package/dist/pine-core/p-791d357a.entry.js +1 -0
- package/dist/pine-core/p-7a4da839.entry.js +1 -0
- package/dist/pine-core/p-7aca41d9.system.entry.js +1 -0
- package/dist/pine-core/p-7b71f1bf.system.entry.js +1 -0
- package/dist/pine-core/p-7b954dbf.entry.js +1 -0
- package/dist/pine-core/p-8065c732.entry.js +1 -0
- package/dist/pine-core/p-829c52dc.entry.js +1 -0
- package/dist/pine-core/p-835d9f18.system.entry.js +1 -0
- package/dist/pine-core/p-83eb33d4.entry.js +1 -0
- package/dist/pine-core/p-855dfc31.system.entry.js +1 -0
- package/dist/pine-core/p-889fce8a.entry.js +7 -0
- package/dist/pine-core/p-974bf0c5.entry.js +1 -0
- package/dist/pine-core/p-9865431f.system.entry.js +1 -0
- package/dist/pine-core/p-B1u-QvFn.system.js +1 -2
- package/dist/pine-core/p-BG6uGRQj.system.js +1 -2
- package/dist/pine-core/p-BNSGedhN.js +1 -2
- package/dist/pine-core/p-BhQhw0S3.system.js +1 -2
- package/dist/pine-core/p-BrLs99ML.system.js +1 -2
- package/dist/pine-core/p-C0M1gTKv.js +1 -2
- package/dist/pine-core/p-C3xDZBme.js +1 -2
- package/dist/pine-core/p-C61CFP22.system.js +1 -0
- package/dist/pine-core/p-C62JIZmE.system.js +1 -2
- package/dist/pine-core/p-CRCxGYgw.system.js +1 -2
- package/dist/pine-core/p-CaRgVPt7.js +2 -0
- package/dist/pine-core/p-CdwliqhD.system.js +2 -0
- package/dist/pine-core/p-D4ys0pep.js +1 -2
- package/dist/pine-core/p-DDtwbwIl.js +1 -2
- package/dist/pine-core/p-DVra397g.system.js +1 -2
- package/dist/pine-core/p-DnUJodVd.js +1 -2
- package/dist/pine-core/p-DtgUQhjl.js +1 -2
- package/dist/pine-core/p-YWpyar7R.system.js +1 -2
- package/dist/pine-core/p-a1750a54.entry.js +1 -0
- package/dist/pine-core/p-a659cce1.entry.js +1 -0
- package/dist/pine-core/p-a739bdfa.entry.js +1 -0
- package/dist/pine-core/p-a982ac91.system.entry.js +1 -0
- package/dist/pine-core/p-ab957ace.system.entry.js +1 -0
- package/dist/pine-core/p-ae2b466a.system.entry.js +1 -0
- package/dist/pine-core/p-ae840ec4.entry.js +1 -0
- package/dist/pine-core/p-b0b6acdb.system.entry.js +1 -0
- package/dist/pine-core/p-b1b317a5.entry.js +1 -0
- package/dist/pine-core/p-b88be8be.entry.js +1 -0
- package/dist/pine-core/p-ba88ff60.system.entry.js +1 -0
- package/dist/pine-core/p-babd0607.system.entry.js +1 -0
- package/dist/pine-core/p-bdf18687.entry.js +1 -0
- package/dist/pine-core/p-c273210a.entry.js +1 -0
- package/dist/pine-core/p-c3a99f39.entry.js +1 -0
- package/dist/pine-core/p-ccb889d8.system.entry.js +1 -0
- package/dist/pine-core/p-cce6dcf0.system.entry.js +1 -0
- package/dist/pine-core/p-cce83ef0.entry.js +1 -0
- package/dist/pine-core/p-d09ae46d.system.entry.js +1 -0
- package/dist/pine-core/p-d5c1f85e.system.entry.js +1 -0
- package/dist/pine-core/p-db1572a3.entry.js +1 -0
- package/dist/pine-core/p-e0cfb931.system.entry.js +1 -0
- package/dist/pine-core/p-e291db30.entry.js +1 -0
- package/dist/pine-core/p-e620e492.system.entry.js +1 -0
- package/dist/pine-core/p-e70c9002.entry.js +1 -0
- package/dist/pine-core/p-e77c5c08.system.entry.js +1 -0
- package/dist/pine-core/p-edf4e4eb.system.entry.js +1 -0
- package/dist/pine-core/p-ee6f914c.entry.js +1 -0
- package/dist/pine-core/{p-85e889c3.system.entry.js → p-ef71710b.system.entry.js} +2 -3
- package/dist/pine-core/p-f2315f2a.entry.js +1 -0
- package/dist/pine-core/p-f2cf8e76.entry.js +1 -0
- package/dist/pine-core/p-f366f064.entry.js +1 -0
- package/dist/pine-core/p-f928817f.system.entry.js +1 -0
- package/dist/pine-core/p-fa81009f.system.entry.js +1 -0
- package/dist/pine-core/p-fb68e503.system.entry.js +1 -0
- package/dist/pine-core/p-kYMYDfJY.system.js +1 -2
- package/dist/pine-core/p-tJa4KYNO.js +1 -2
- package/dist/pine-core/pine-core.esm.js +1 -2
- package/dist/pine-core/pine-core.js +1 -1
- package/dist/scripts/vscode-custom-data-generator.js +0 -1
- package/dist/types/components/pds-link/pds-link.d.ts +40 -0
- package/dist/types/components/pds-text/pds-text.d.ts +4 -1
- package/dist/types/components.d.ts +768 -123
- package/dist/types/stencil-public-runtime.d.ts +110 -5
- package/dist/types/utils/test/axe.d.ts +5 -4
- package/dist/types/utils/types.d.ts +2 -0
- package/hydrate/index.d.ts +12 -0
- package/hydrate/index.js +5209 -1055
- package/hydrate/index.mjs +5208 -1056
- package/package.json +11 -11
- package/components/attributes.js.map +0 -1
- package/components/closest.js.map +0 -1
- package/components/floating-ui.dom.js.map +0 -1
- package/components/form.js.map +0 -1
- package/components/index.js.map +0 -1
- package/components/index2.js.map +0 -1
- package/components/mock-pds-modal.js.map +0 -1
- package/components/pds-accordion.js.map +0 -1
- package/components/pds-alert.js.map +0 -1
- package/components/pds-avatar.js.map +0 -1
- package/components/pds-box.js.map +0 -1
- package/components/pds-box2.js.map +0 -1
- package/components/pds-button.js.map +0 -1
- package/components/pds-button2.js.map +0 -1
- package/components/pds-checkbox.js.map +0 -1
- package/components/pds-checkbox2.js.map +0 -1
- package/components/pds-chip.js.map +0 -1
- package/components/pds-chip2.js.map +0 -1
- package/components/pds-combobox.js.map +0 -1
- package/components/pds-container.js.map +0 -1
- package/components/pds-copytext.js.map +0 -1
- package/components/pds-divider.js.map +0 -1
- package/components/pds-dropdown-menu-item.js.map +0 -1
- package/components/pds-dropdown-menu-separator.js.map +0 -1
- package/components/pds-dropdown-menu.js.map +0 -1
- package/components/pds-filter.js.map +0 -1
- package/components/pds-filters.js.map +0 -1
- package/components/pds-icon.js.map +0 -1
- package/components/pds-icon2.js.map +0 -1
- package/components/pds-image.js.map +0 -1
- package/components/pds-input.js.map +0 -1
- package/components/pds-link.js.map +0 -1
- package/components/pds-link2.js.map +0 -1
- package/components/pds-loader.js.map +0 -1
- package/components/pds-loader2.js.map +0 -1
- package/components/pds-modal-content.js.map +0 -1
- package/components/pds-modal-footer.js.map +0 -1
- package/components/pds-modal-header.js.map +0 -1
- package/components/pds-modal.js.map +0 -1
- package/components/pds-multiselect.js.map +0 -1
- package/components/pds-popover.js.map +0 -1
- package/components/pds-progress.js.map +0 -1
- package/components/pds-property.js.map +0 -1
- package/components/pds-radio-group.js.map +0 -1
- package/components/pds-radio.js.map +0 -1
- package/components/pds-row.js.map +0 -1
- package/components/pds-select.js.map +0 -1
- package/components/pds-sortable-item.js.map +0 -1
- package/components/pds-sortable.js.map +0 -1
- package/components/pds-switch.js.map +0 -1
- package/components/pds-tab.js.map +0 -1
- package/components/pds-table-body.js.map +0 -1
- package/components/pds-table-cell.js.map +0 -1
- package/components/pds-table-cell2.js.map +0 -1
- package/components/pds-table-head-cell.js.map +0 -1
- package/components/pds-table-head-cell2.js.map +0 -1
- package/components/pds-table-head.js.map +0 -1
- package/components/pds-table-row.js.map +0 -1
- package/components/pds-table.js.map +0 -1
- package/components/pds-tabpanel.js.map +0 -1
- package/components/pds-tabs.js.map +0 -1
- package/components/pds-text.js.map +0 -1
- package/components/pds-text2.js.map +0 -1
- package/components/pds-textarea.js.map +0 -1
- package/components/pds-toast.js.map +0 -1
- package/components/pds-tooltip.js.map +0 -1
- package/components/scroll.js.map +0 -1
- package/components/truncation-tooltip.js.map +0 -1
- package/components/utils.js.map +0 -1
- package/dist/cjs/attributes-oNMnBEnP.js.map +0 -1
- package/dist/cjs/closest-BZXvuB_Y.js.map +0 -1
- package/dist/cjs/floating-ui.dom-BZk7Blsu.js.map +0 -1
- package/dist/cjs/form-CpM5Z8q7.js.map +0 -1
- package/dist/cjs/index-BUvWX8u2.js.map +0 -1
- package/dist/cjs/index-DGBoDsAL.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/mock-pds-modal.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-accordion.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-alert.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-avatar.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-box.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-button.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-checkbox.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-chip.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-combobox.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-container.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-copytext.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-divider.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-dropdown-menu-separator.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-filter.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-filters.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-icon.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-image.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-input.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-link.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-loader.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-modal-content.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-modal-footer.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-modal-header.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-modal.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-multiselect.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-popover.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-progress.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-property.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-radio-group.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-radio.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-row.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-select.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-sortable-item.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-sortable.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-switch.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-tab.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-table-body.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-table-cell.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-table-head.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-table-row.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-table.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-tabpanel.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-tabs.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-text.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-textarea.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-toast.entry.cjs.js.map +0 -1
- package/dist/cjs/pds-tooltip.entry.cjs.js.map +0 -1
- package/dist/cjs/pine-core.cjs.js.map +0 -1
- package/dist/cjs/scroll-2XcoE_6Q.js.map +0 -1
- package/dist/cjs/truncation-tooltip-CVzAha5B.js.map +0 -1
- package/dist/cjs/utils-7jx8T2mW.js.map +0 -1
- package/dist/collection/components/_internal/pds-label/pds-label.js.map +0 -1
- package/dist/collection/components/pds-accordion/pds-accordion.js.map +0 -1
- package/dist/collection/components/pds-alert/pds-alert.js.map +0 -1
- package/dist/collection/components/pds-avatar/pds-avatar.js.map +0 -1
- package/dist/collection/components/pds-box/pds-box.js.map +0 -1
- package/dist/collection/components/pds-button/pds-button.js.map +0 -1
- package/dist/collection/components/pds-checkbox/checkbox-interface.js.map +0 -1
- package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +0 -1
- package/dist/collection/components/pds-chip/pds-chip.js.map +0 -1
- package/dist/collection/components/pds-combobox/combobox-interface.js.map +0 -1
- package/dist/collection/components/pds-combobox/pds-combobox.js.map +0 -1
- package/dist/collection/components/pds-container/pds-container.js.map +0 -1
- package/dist/collection/components/pds-copytext/pds-copytext.js.map +0 -1
- package/dist/collection/components/pds-divider/pds-divider.js.map +0 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +0 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js.map +0 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +0 -1
- package/dist/collection/components/pds-filters/pds-filter/filter-interface.js.map +0 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +0 -1
- package/dist/collection/components/pds-filters/pds-filters.js.map +0 -1
- package/dist/collection/components/pds-image/pds-image.js.map +0 -1
- package/dist/collection/components/pds-input/input-interface.js.map +0 -1
- package/dist/collection/components/pds-input/pds-input.js.map +0 -1
- package/dist/collection/components/pds-link/pds-link.js.map +0 -1
- package/dist/collection/components/pds-loader/pds-loader.js.map +0 -1
- package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +0 -1
- package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js.map +0 -1
- package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js.map +0 -1
- package/dist/collection/components/pds-modal/pds-modal.js.map +0 -1
- package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +0 -1
- package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +0 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +0 -1
- package/dist/collection/components/pds-popover/pds-popover.js.map +0 -1
- package/dist/collection/components/pds-popover/popover-interface.js.map +0 -1
- package/dist/collection/components/pds-progress/pds-progress.js.map +0 -1
- package/dist/collection/components/pds-property/pds-property.js.map +0 -1
- package/dist/collection/components/pds-radio/pds-radio.js.map +0 -1
- package/dist/collection/components/pds-radio-group/pds-radio-group.js.map +0 -1
- package/dist/collection/components/pds-radio-group/radio-group-interface.js.map +0 -1
- package/dist/collection/components/pds-row/pds-row.js.map +0 -1
- package/dist/collection/components/pds-select/pds-select.js.map +0 -1
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js.map +0 -1
- package/dist/collection/components/pds-sortable/pds-sortable.js.map +0 -1
- package/dist/collection/components/pds-sortable/sortable-interface.js.map +0 -1
- package/dist/collection/components/pds-switch/pds-switch.js.map +0 -1
- package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js.map +0 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +0 -1
- package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +0 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +0 -1
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +0 -1
- package/dist/collection/components/pds-table/pds-table.js.map +0 -1
- package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +0 -1
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js.map +0 -1
- package/dist/collection/components/pds-tabs/pds-tabs.js.map +0 -1
- package/dist/collection/components/pds-text/pds-text.js.map +0 -1
- package/dist/collection/components/pds-textarea/pds-textarea.js.map +0 -1
- package/dist/collection/components/pds-textarea/textarea-interface.js.map +0 -1
- package/dist/collection/components/pds-toast/pds-toast.js.map +0 -1
- package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +0 -1
- package/dist/collection/global/pine-ui-global.js.map +0 -1
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/utils/attributes.js.map +0 -1
- package/dist/collection/utils/closest.js.map +0 -1
- package/dist/collection/utils/form.js.map +0 -1
- package/dist/collection/utils/interfaces.js.map +0 -1
- package/dist/collection/utils/overlay.js.map +0 -1
- package/dist/collection/utils/scroll.js.map +0 -1
- package/dist/collection/utils/test/axe.js.map +0 -1
- package/dist/collection/utils/truncation-tooltip.js.map +0 -1
- package/dist/collection/utils/types.js.map +0 -1
- package/dist/collection/utils/utils.js.map +0 -1
- package/dist/esm/attributes-C0M1gTKv.js.map +0 -1
- package/dist/esm/closest-DnUJodVd.js.map +0 -1
- package/dist/esm/floating-ui.dom-DDtwbwIl.js.map +0 -1
- package/dist/esm/form-C3xDZBme.js.map +0 -1
- package/dist/esm/index-B2f84Zog.js.map +0 -1
- package/dist/esm/index-D4ys0pep.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/mock-pds-modal.entry.js.map +0 -1
- package/dist/esm/pds-accordion.entry.js.map +0 -1
- package/dist/esm/pds-alert.entry.js.map +0 -1
- package/dist/esm/pds-avatar.entry.js.map +0 -1
- package/dist/esm/pds-box.entry.js.map +0 -1
- package/dist/esm/pds-button.entry.js.map +0 -1
- package/dist/esm/pds-checkbox.entry.js.map +0 -1
- package/dist/esm/pds-chip.entry.js.map +0 -1
- package/dist/esm/pds-combobox.entry.js.map +0 -1
- package/dist/esm/pds-container.entry.js.map +0 -1
- package/dist/esm/pds-copytext.entry.js.map +0 -1
- package/dist/esm/pds-divider.entry.js.map +0 -1
- package/dist/esm/pds-dropdown-menu-item.entry.js.map +0 -1
- package/dist/esm/pds-dropdown-menu-separator.entry.js.map +0 -1
- package/dist/esm/pds-dropdown-menu.entry.js.map +0 -1
- package/dist/esm/pds-filter.entry.js.map +0 -1
- package/dist/esm/pds-filters.entry.js.map +0 -1
- package/dist/esm/pds-icon.entry.js.map +0 -1
- package/dist/esm/pds-image.entry.js.map +0 -1
- package/dist/esm/pds-input.entry.js.map +0 -1
- package/dist/esm/pds-link.entry.js.map +0 -1
- package/dist/esm/pds-loader.entry.js.map +0 -1
- package/dist/esm/pds-modal-content.entry.js.map +0 -1
- package/dist/esm/pds-modal-footer.entry.js.map +0 -1
- package/dist/esm/pds-modal-header.entry.js.map +0 -1
- package/dist/esm/pds-modal.entry.js.map +0 -1
- package/dist/esm/pds-multiselect.entry.js.map +0 -1
- package/dist/esm/pds-popover.entry.js.map +0 -1
- package/dist/esm/pds-progress.entry.js.map +0 -1
- package/dist/esm/pds-property.entry.js.map +0 -1
- package/dist/esm/pds-radio-group.entry.js.map +0 -1
- package/dist/esm/pds-radio.entry.js.map +0 -1
- package/dist/esm/pds-row.entry.js.map +0 -1
- package/dist/esm/pds-select.entry.js.map +0 -1
- package/dist/esm/pds-sortable-item.entry.js.map +0 -1
- package/dist/esm/pds-sortable.entry.js.map +0 -1
- package/dist/esm/pds-switch.entry.js.map +0 -1
- package/dist/esm/pds-tab.entry.js.map +0 -1
- package/dist/esm/pds-table-body.entry.js.map +0 -1
- package/dist/esm/pds-table-cell.entry.js.map +0 -1
- package/dist/esm/pds-table-head-cell.entry.js.map +0 -1
- package/dist/esm/pds-table-head.entry.js.map +0 -1
- package/dist/esm/pds-table-row.entry.js.map +0 -1
- package/dist/esm/pds-table.entry.js.map +0 -1
- package/dist/esm/pds-tabpanel.entry.js.map +0 -1
- package/dist/esm/pds-tabs.entry.js.map +0 -1
- package/dist/esm/pds-text.entry.js.map +0 -1
- package/dist/esm/pds-textarea.entry.js.map +0 -1
- package/dist/esm/pds-toast.entry.js.map +0 -1
- package/dist/esm/pds-tooltip.entry.js.map +0 -1
- package/dist/esm/pine-core.js.map +0 -1
- package/dist/esm/scroll-DtgUQhjl.js.map +0 -1
- package/dist/esm/truncation-tooltip-Blk4GigP.js.map +0 -1
- package/dist/esm/utils-tJa4KYNO.js.map +0 -1
- package/dist/esm-es5/attributes-C0M1gTKv.js.map +0 -1
- package/dist/esm-es5/closest-DnUJodVd.js.map +0 -1
- package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js.map +0 -1
- package/dist/esm-es5/form-C3xDZBme.js.map +0 -1
- package/dist/esm-es5/index-B2f84Zog.js +0 -3
- package/dist/esm-es5/index-B2f84Zog.js.map +0 -1
- package/dist/esm-es5/index-D4ys0pep.js.map +0 -1
- package/dist/esm-es5/index.js.map +0 -1
- package/dist/esm-es5/loader.js.map +0 -1
- package/dist/esm-es5/mock-pds-modal.entry.js.map +0 -1
- package/dist/esm-es5/pds-accordion.entry.js.map +0 -1
- package/dist/esm-es5/pds-alert.entry.js.map +0 -1
- package/dist/esm-es5/pds-avatar.entry.js.map +0 -1
- package/dist/esm-es5/pds-box.entry.js.map +0 -1
- package/dist/esm-es5/pds-button.entry.js.map +0 -1
- package/dist/esm-es5/pds-checkbox.entry.js.map +0 -1
- package/dist/esm-es5/pds-chip.entry.js.map +0 -1
- package/dist/esm-es5/pds-combobox.entry.js.map +0 -1
- package/dist/esm-es5/pds-container.entry.js.map +0 -1
- package/dist/esm-es5/pds-copytext.entry.js.map +0 -1
- package/dist/esm-es5/pds-divider.entry.js.map +0 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +0 -1
- package/dist/esm-es5/pds-dropdown-menu-separator.entry.js.map +0 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js.map +0 -1
- package/dist/esm-es5/pds-filter.entry.js.map +0 -1
- package/dist/esm-es5/pds-filters.entry.js.map +0 -1
- package/dist/esm-es5/pds-icon.entry.js.map +0 -1
- package/dist/esm-es5/pds-image.entry.js.map +0 -1
- package/dist/esm-es5/pds-input.entry.js.map +0 -1
- package/dist/esm-es5/pds-link.entry.js.map +0 -1
- package/dist/esm-es5/pds-loader.entry.js.map +0 -1
- package/dist/esm-es5/pds-modal-content.entry.js.map +0 -1
- package/dist/esm-es5/pds-modal-footer.entry.js.map +0 -1
- package/dist/esm-es5/pds-modal-header.entry.js.map +0 -1
- package/dist/esm-es5/pds-modal.entry.js.map +0 -1
- package/dist/esm-es5/pds-multiselect.entry.js.map +0 -1
- package/dist/esm-es5/pds-popover.entry.js.map +0 -1
- package/dist/esm-es5/pds-progress.entry.js.map +0 -1
- package/dist/esm-es5/pds-property.entry.js.map +0 -1
- package/dist/esm-es5/pds-radio-group.entry.js.map +0 -1
- package/dist/esm-es5/pds-radio.entry.js.map +0 -1
- package/dist/esm-es5/pds-row.entry.js.map +0 -1
- package/dist/esm-es5/pds-select.entry.js.map +0 -1
- package/dist/esm-es5/pds-sortable-item.entry.js.map +0 -1
- package/dist/esm-es5/pds-sortable.entry.js.map +0 -1
- package/dist/esm-es5/pds-switch.entry.js.map +0 -1
- package/dist/esm-es5/pds-tab.entry.js.map +0 -1
- package/dist/esm-es5/pds-table-body.entry.js.map +0 -1
- package/dist/esm-es5/pds-table-cell.entry.js.map +0 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js.map +0 -1
- package/dist/esm-es5/pds-table-head.entry.js.map +0 -1
- package/dist/esm-es5/pds-table-row.entry.js.map +0 -1
- package/dist/esm-es5/pds-table.entry.js.map +0 -1
- package/dist/esm-es5/pds-tabpanel.entry.js.map +0 -1
- package/dist/esm-es5/pds-tabs.entry.js.map +0 -1
- package/dist/esm-es5/pds-text.entry.js.map +0 -1
- package/dist/esm-es5/pds-textarea.entry.js.map +0 -1
- package/dist/esm-es5/pds-toast.entry.js.map +0 -1
- package/dist/esm-es5/pds-tooltip.entry.js.map +0 -1
- package/dist/esm-es5/pine-core.js.map +0 -1
- package/dist/esm-es5/scroll-DtgUQhjl.js.map +0 -1
- package/dist/esm-es5/truncation-tooltip-Blk4GigP.js.map +0 -1
- package/dist/esm-es5/utils-tJa4KYNO.js.map +0 -1
- package/dist/pine-core/index.esm.js.map +0 -1
- package/dist/pine-core/loader.esm.js.map +0 -1
- package/dist/pine-core/mock-pds-modal.entry.esm.js.map +0 -1
- package/dist/pine-core/p-037dbdcd.system.entry.js +0 -2
- package/dist/pine-core/p-037dbdcd.system.entry.js.map +0 -1
- package/dist/pine-core/p-06713f25.entry.js +0 -2
- package/dist/pine-core/p-06713f25.entry.js.map +0 -1
- package/dist/pine-core/p-0977b2dd.entry.js +0 -2
- package/dist/pine-core/p-0977b2dd.entry.js.map +0 -1
- package/dist/pine-core/p-099e9f9b.system.entry.js +0 -2
- package/dist/pine-core/p-099e9f9b.system.entry.js.map +0 -1
- package/dist/pine-core/p-0a7115f0.entry.js +0 -2
- package/dist/pine-core/p-0a7115f0.entry.js.map +0 -1
- package/dist/pine-core/p-0c1ab384.system.entry.js +0 -2
- package/dist/pine-core/p-0c1ab384.system.entry.js.map +0 -1
- package/dist/pine-core/p-0dee7449.system.entry.js +0 -2
- package/dist/pine-core/p-0dee7449.system.entry.js.map +0 -1
- package/dist/pine-core/p-102d0dd6.system.entry.js +0 -2
- package/dist/pine-core/p-102d0dd6.system.entry.js.map +0 -1
- package/dist/pine-core/p-10ebecc5.entry.js +0 -2
- package/dist/pine-core/p-10ebecc5.entry.js.map +0 -1
- package/dist/pine-core/p-1598f3af.entry.js +0 -2
- package/dist/pine-core/p-1598f3af.entry.js.map +0 -1
- package/dist/pine-core/p-1c32102e.system.entry.js +0 -2
- package/dist/pine-core/p-1c32102e.system.entry.js.map +0 -1
- package/dist/pine-core/p-2258b31b.system.entry.js +0 -2
- package/dist/pine-core/p-2258b31b.system.entry.js.map +0 -1
- package/dist/pine-core/p-275fa74c.system.entry.js +0 -2
- package/dist/pine-core/p-275fa74c.system.entry.js.map +0 -1
- package/dist/pine-core/p-27fc0737.system.entry.js +0 -2
- package/dist/pine-core/p-27fc0737.system.entry.js.map +0 -1
- package/dist/pine-core/p-32ad2807.system.entry.js +0 -2
- package/dist/pine-core/p-32ad2807.system.entry.js.map +0 -1
- package/dist/pine-core/p-33544ed1.system.entry.js +0 -2
- package/dist/pine-core/p-33544ed1.system.entry.js.map +0 -1
- package/dist/pine-core/p-34763aae.system.entry.js +0 -2
- package/dist/pine-core/p-34763aae.system.entry.js.map +0 -1
- package/dist/pine-core/p-36070380.system.entry.js +0 -2
- package/dist/pine-core/p-36070380.system.entry.js.map +0 -1
- package/dist/pine-core/p-3625bc45.entry.js +0 -2
- package/dist/pine-core/p-3625bc45.entry.js.map +0 -1
- package/dist/pine-core/p-3b087f24.entry.js +0 -2
- package/dist/pine-core/p-3b087f24.entry.js.map +0 -1
- package/dist/pine-core/p-3f66c070.entry.js +0 -2
- package/dist/pine-core/p-3f66c070.entry.js.map +0 -1
- package/dist/pine-core/p-407aad2b.system.entry.js +0 -2
- package/dist/pine-core/p-407aad2b.system.entry.js.map +0 -1
- package/dist/pine-core/p-44ca9b92.entry.js +0 -2
- package/dist/pine-core/p-44ca9b92.entry.js.map +0 -1
- package/dist/pine-core/p-476db791.entry.js +0 -2
- package/dist/pine-core/p-476db791.entry.js.map +0 -1
- package/dist/pine-core/p-4780403d.system.entry.js +0 -2
- package/dist/pine-core/p-4780403d.system.entry.js.map +0 -1
- package/dist/pine-core/p-48ac6873.entry.js +0 -2
- package/dist/pine-core/p-48ac6873.entry.js.map +0 -1
- package/dist/pine-core/p-4FBDaIH3.system.js.map +0 -1
- package/dist/pine-core/p-4ede20e6.entry.js +0 -2
- package/dist/pine-core/p-4ede20e6.entry.js.map +0 -1
- package/dist/pine-core/p-4f2a48cb.system.entry.js +0 -2
- package/dist/pine-core/p-4f2a48cb.system.entry.js.map +0 -1
- package/dist/pine-core/p-4f440dd4.entry.js +0 -2
- package/dist/pine-core/p-4f440dd4.entry.js.map +0 -1
- package/dist/pine-core/p-4jrX5aRd.system.js.map +0 -1
- package/dist/pine-core/p-51e47e6e.system.entry.js +0 -2
- package/dist/pine-core/p-51e47e6e.system.entry.js.map +0 -1
- package/dist/pine-core/p-52411757.system.entry.js +0 -2
- package/dist/pine-core/p-52411757.system.entry.js.map +0 -1
- package/dist/pine-core/p-557005a0.entry.js +0 -2
- package/dist/pine-core/p-557005a0.entry.js.map +0 -1
- package/dist/pine-core/p-5e117b98.entry.js +0 -2
- package/dist/pine-core/p-5e117b98.entry.js.map +0 -1
- package/dist/pine-core/p-639012b9.system.entry.js +0 -2
- package/dist/pine-core/p-639012b9.system.entry.js.map +0 -1
- package/dist/pine-core/p-643b01ad.entry.js +0 -2
- package/dist/pine-core/p-643b01ad.entry.js.map +0 -1
- package/dist/pine-core/p-6623b257.system.entry.js +0 -2
- package/dist/pine-core/p-6623b257.system.entry.js.map +0 -1
- package/dist/pine-core/p-74ff4d96.system.entry.js +0 -2
- package/dist/pine-core/p-74ff4d96.system.entry.js.map +0 -1
- package/dist/pine-core/p-77327e1b.system.entry.js +0 -2
- package/dist/pine-core/p-77327e1b.system.entry.js.map +0 -1
- package/dist/pine-core/p-774ecbd4.entry.js +0 -2
- package/dist/pine-core/p-774ecbd4.entry.js.map +0 -1
- package/dist/pine-core/p-7926dc93.entry.js +0 -2
- package/dist/pine-core/p-7926dc93.entry.js.map +0 -1
- package/dist/pine-core/p-7a3eccef.entry.js +0 -2
- package/dist/pine-core/p-7a3eccef.entry.js.map +0 -1
- package/dist/pine-core/p-7acb131c.system.entry.js +0 -2
- package/dist/pine-core/p-7acb131c.system.entry.js.map +0 -1
- package/dist/pine-core/p-81a3e32b.entry.js +0 -2
- package/dist/pine-core/p-81a3e32b.entry.js.map +0 -1
- package/dist/pine-core/p-848763b6.system.entry.js +0 -2
- package/dist/pine-core/p-848763b6.system.entry.js.map +0 -1
- package/dist/pine-core/p-85e889c3.system.entry.js.map +0 -1
- package/dist/pine-core/p-8669e0e3.system.entry.js +0 -2
- package/dist/pine-core/p-8669e0e3.system.entry.js.map +0 -1
- package/dist/pine-core/p-8735cb58.entry.js +0 -2
- package/dist/pine-core/p-8735cb58.entry.js.map +0 -1
- package/dist/pine-core/p-8b3aeaf9.system.entry.js +0 -2
- package/dist/pine-core/p-8b3aeaf9.system.entry.js.map +0 -1
- package/dist/pine-core/p-8b7aa53d.entry.js +0 -2
- package/dist/pine-core/p-8b7aa53d.entry.js.map +0 -1
- package/dist/pine-core/p-8c97fcb1.entry.js +0 -2
- package/dist/pine-core/p-8c97fcb1.entry.js.map +0 -1
- package/dist/pine-core/p-8c9f8ca6.entry.js +0 -2
- package/dist/pine-core/p-8c9f8ca6.entry.js.map +0 -1
- package/dist/pine-core/p-904e8d9d.system.entry.js +0 -2
- package/dist/pine-core/p-904e8d9d.system.entry.js.map +0 -1
- package/dist/pine-core/p-91bea052.entry.js +0 -2
- package/dist/pine-core/p-91bea052.entry.js.map +0 -1
- package/dist/pine-core/p-9230df2a.system.entry.js +0 -2
- package/dist/pine-core/p-9230df2a.system.entry.js.map +0 -1
- package/dist/pine-core/p-94a09b06.entry.js +0 -2
- package/dist/pine-core/p-94a09b06.entry.js.map +0 -1
- package/dist/pine-core/p-94d4d1de.entry.js +0 -3
- package/dist/pine-core/p-94d4d1de.entry.js.map +0 -1
- package/dist/pine-core/p-984db3fc.entry.js +0 -2
- package/dist/pine-core/p-984db3fc.entry.js.map +0 -1
- package/dist/pine-core/p-988d1723.system.entry.js +0 -2
- package/dist/pine-core/p-988d1723.system.entry.js.map +0 -1
- package/dist/pine-core/p-98dabbbf.entry.js +0 -2
- package/dist/pine-core/p-98dabbbf.entry.js.map +0 -1
- package/dist/pine-core/p-9a3c9d15.system.entry.js +0 -2
- package/dist/pine-core/p-9a3c9d15.system.entry.js.map +0 -1
- package/dist/pine-core/p-9b3aedeb.system.entry.js +0 -2
- package/dist/pine-core/p-9b3aedeb.system.entry.js.map +0 -1
- package/dist/pine-core/p-9ce56712.system.entry.js +0 -2
- package/dist/pine-core/p-9ce56712.system.entry.js.map +0 -1
- package/dist/pine-core/p-9e48d1ea.system.entry.js +0 -2
- package/dist/pine-core/p-9e48d1ea.system.entry.js.map +0 -1
- package/dist/pine-core/p-9e5c58c6.entry.js +0 -8
- package/dist/pine-core/p-9e5c58c6.entry.js.map +0 -1
- package/dist/pine-core/p-B-I9BXj1.system.js.map +0 -1
- package/dist/pine-core/p-B-nnQT8K.system.js.map +0 -1
- package/dist/pine-core/p-B1u-QvFn.system.js.map +0 -1
- package/dist/pine-core/p-B2f84Zog.js +0 -3
- package/dist/pine-core/p-B2f84Zog.js.map +0 -1
- package/dist/pine-core/p-BC7kndqW.system.js.map +0 -1
- package/dist/pine-core/p-BFAhunk3.system.js.map +0 -1
- package/dist/pine-core/p-BG6uGRQj.system.js.map +0 -1
- package/dist/pine-core/p-BJQiqlL7.system.js.map +0 -1
- package/dist/pine-core/p-BLg534X3.system.js.map +0 -1
- package/dist/pine-core/p-BNSGedhN.js.map +0 -1
- package/dist/pine-core/p-BT-iITx_.system.js.map +0 -1
- package/dist/pine-core/p-BTsajr3h.system.js.map +0 -1
- package/dist/pine-core/p-BcCpTdwz.system.js.map +0 -1
- package/dist/pine-core/p-BhQhw0S3.system.js.map +0 -1
- package/dist/pine-core/p-Bkk7A0W9.system.js.map +0 -1
- package/dist/pine-core/p-BmOvsRx7.system.js.map +0 -1
- package/dist/pine-core/p-BrLs99ML.system.js.map +0 -1
- package/dist/pine-core/p-BtfqzsXS.system.js.map +0 -1
- package/dist/pine-core/p-BvJkwltO.system.js.map +0 -1
- package/dist/pine-core/p-BvV4-w8H.system.js.map +0 -1
- package/dist/pine-core/p-C0M1gTKv.js.map +0 -1
- package/dist/pine-core/p-C3TuSlI7.system.js.map +0 -1
- package/dist/pine-core/p-C3xDZBme.js.map +0 -1
- package/dist/pine-core/p-C5jXV4WJ.system.js.map +0 -1
- package/dist/pine-core/p-C5qxTQb1.system.js.map +0 -1
- package/dist/pine-core/p-C62JIZmE.system.js.map +0 -1
- package/dist/pine-core/p-C6yvFUy3.system.js.map +0 -1
- package/dist/pine-core/p-CCRLZO4N.system.js.map +0 -1
- package/dist/pine-core/p-CD-PjU09.system.js.map +0 -1
- package/dist/pine-core/p-CI-oL5TR.system.js.map +0 -1
- package/dist/pine-core/p-CIbXcB4O.system.js.map +0 -1
- package/dist/pine-core/p-CIe6-SsT.system.js.map +0 -1
- package/dist/pine-core/p-CRCxGYgw.system.js.map +0 -1
- package/dist/pine-core/p-CSVND2Gt.system.js.map +0 -1
- package/dist/pine-core/p-CUEE9EMe.system.js.map +0 -1
- package/dist/pine-core/p-CXImmjF5.system.js.map +0 -1
- package/dist/pine-core/p-C_g3FnvJ.system.js.map +0 -1
- package/dist/pine-core/p-CmNZDo8q.system.js.map +0 -1
- package/dist/pine-core/p-Cn98QWqb.system.js.map +0 -1
- package/dist/pine-core/p-Cqgvmo2o.system.js +0 -2
- package/dist/pine-core/p-Cqgvmo2o.system.js.map +0 -1
- package/dist/pine-core/p-Cu24FhMY.system.js.map +0 -1
- package/dist/pine-core/p-CwEjYXkp.system.js.map +0 -1
- package/dist/pine-core/p-D4ys0pep.js.map +0 -1
- package/dist/pine-core/p-DA3fC_kX.system.js.map +0 -1
- package/dist/pine-core/p-DDtwbwIl.js.map +0 -1
- package/dist/pine-core/p-DG_z5J3G.system.js.map +0 -1
- package/dist/pine-core/p-DL3JCnpO.system.js.map +0 -1
- package/dist/pine-core/p-DSlRwx2e.system.js.map +0 -1
- package/dist/pine-core/p-DVra397g.system.js.map +0 -1
- package/dist/pine-core/p-DYlgS5d7.system.js +0 -3
- package/dist/pine-core/p-DYlgS5d7.system.js.map +0 -1
- package/dist/pine-core/p-DeVgpUr5.system.js.map +0 -1
- package/dist/pine-core/p-DnUJodVd.js.map +0 -1
- package/dist/pine-core/p-DtgUQhjl.js.map +0 -1
- package/dist/pine-core/p-Dxrjs-vy.system.js.map +0 -1
- package/dist/pine-core/p-H7VDsgsr.system.js.map +0 -1
- package/dist/pine-core/p-JwuGXyPc.system.js.map +0 -1
- package/dist/pine-core/p-U1PewsWZ.system.js.map +0 -1
- package/dist/pine-core/p-UILRZV99.system.js.map +0 -1
- package/dist/pine-core/p-V-ORMWaS.system.js.map +0 -1
- package/dist/pine-core/p-W7E5TRNL.system.js.map +0 -1
- package/dist/pine-core/p-YWpyar7R.system.js.map +0 -1
- package/dist/pine-core/p-Yfy85hdp.system.js.map +0 -1
- package/dist/pine-core/p-ZrPaY2bh.system.js.map +0 -1
- package/dist/pine-core/p-a30b386f.entry.js +0 -2
- package/dist/pine-core/p-a30b386f.entry.js.map +0 -1
- package/dist/pine-core/p-a5014407.system.entry.js +0 -2
- package/dist/pine-core/p-a5014407.system.entry.js.map +0 -1
- package/dist/pine-core/p-a695ff4c.system.entry.js +0 -2
- package/dist/pine-core/p-a695ff4c.system.entry.js.map +0 -1
- package/dist/pine-core/p-a8c49f8e.entry.js +0 -2
- package/dist/pine-core/p-a8c49f8e.entry.js.map +0 -1
- package/dist/pine-core/p-ae74a4b6.system.entry.js +0 -2
- package/dist/pine-core/p-ae74a4b6.system.entry.js.map +0 -1
- package/dist/pine-core/p-b1cde22a.entry.js +0 -2
- package/dist/pine-core/p-b1cde22a.entry.js.map +0 -1
- package/dist/pine-core/p-b9340fb1.system.entry.js +0 -2
- package/dist/pine-core/p-b9340fb1.system.entry.js.map +0 -1
- package/dist/pine-core/p-b9fcc3f8.system.entry.js +0 -2
- package/dist/pine-core/p-b9fcc3f8.system.entry.js.map +0 -1
- package/dist/pine-core/p-bIvjoz7p.system.js.map +0 -1
- package/dist/pine-core/p-bc8f61d1.entry.js +0 -2
- package/dist/pine-core/p-bc8f61d1.entry.js.map +0 -1
- package/dist/pine-core/p-bea013d1.entry.js +0 -2
- package/dist/pine-core/p-bea013d1.entry.js.map +0 -1
- package/dist/pine-core/p-c026479a.system.entry.js +0 -2
- package/dist/pine-core/p-c026479a.system.entry.js.map +0 -1
- package/dist/pine-core/p-c9784d20.system.entry.js +0 -4
- package/dist/pine-core/p-c9784d20.system.entry.js.map +0 -1
- package/dist/pine-core/p-c9b06db1.system.entry.js +0 -2
- package/dist/pine-core/p-c9b06db1.system.entry.js.map +0 -1
- package/dist/pine-core/p-cab14421.entry.js +0 -2
- package/dist/pine-core/p-cab14421.entry.js.map +0 -1
- package/dist/pine-core/p-d5fcdcdd.entry.js +0 -2
- package/dist/pine-core/p-d5fcdcdd.entry.js.map +0 -1
- package/dist/pine-core/p-d86e20b5.system.entry.js +0 -2
- package/dist/pine-core/p-d86e20b5.system.entry.js.map +0 -1
- package/dist/pine-core/p-d9354ad3.system.entry.js +0 -2
- package/dist/pine-core/p-d9354ad3.system.entry.js.map +0 -1
- package/dist/pine-core/p-dab76f15.entry.js +0 -2
- package/dist/pine-core/p-dab76f15.entry.js.map +0 -1
- package/dist/pine-core/p-db16d1fe.entry.js +0 -2
- package/dist/pine-core/p-db16d1fe.entry.js.map +0 -1
- package/dist/pine-core/p-db63f83b.system.entry.js +0 -2
- package/dist/pine-core/p-db63f83b.system.entry.js.map +0 -1
- package/dist/pine-core/p-dd3ea74e.system.entry.js +0 -2
- package/dist/pine-core/p-dd3ea74e.system.entry.js.map +0 -1
- package/dist/pine-core/p-ddb48534.entry.js +0 -2
- package/dist/pine-core/p-ddb48534.entry.js.map +0 -1
- package/dist/pine-core/p-de9f43b6.entry.js +0 -2
- package/dist/pine-core/p-de9f43b6.entry.js.map +0 -1
- package/dist/pine-core/p-e25da259.entry.js +0 -2
- package/dist/pine-core/p-e25da259.entry.js.map +0 -1
- package/dist/pine-core/p-e288dc89.system.entry.js +0 -2
- package/dist/pine-core/p-e288dc89.system.entry.js.map +0 -1
- package/dist/pine-core/p-ea5c42b8.system.entry.js +0 -2
- package/dist/pine-core/p-ea5c42b8.system.entry.js.map +0 -1
- package/dist/pine-core/p-ed5d5be6.entry.js +0 -2
- package/dist/pine-core/p-ed5d5be6.entry.js.map +0 -1
- package/dist/pine-core/p-ef081f0f.entry.js +0 -2
- package/dist/pine-core/p-ef081f0f.entry.js.map +0 -1
- package/dist/pine-core/p-f09c5021.entry.js +0 -2
- package/dist/pine-core/p-f09c5021.entry.js.map +0 -1
- package/dist/pine-core/p-f201cf57.entry.js +0 -2
- package/dist/pine-core/p-f201cf57.entry.js.map +0 -1
- package/dist/pine-core/p-f20ab351.entry.js +0 -2
- package/dist/pine-core/p-f20ab351.entry.js.map +0 -1
- package/dist/pine-core/p-f2798581.entry.js +0 -2
- package/dist/pine-core/p-f2798581.entry.js.map +0 -1
- package/dist/pine-core/p-f2ca0cf8.entry.js +0 -2
- package/dist/pine-core/p-f2ca0cf8.entry.js.map +0 -1
- package/dist/pine-core/p-f77fad86.system.entry.js +0 -2
- package/dist/pine-core/p-f77fad86.system.entry.js.map +0 -1
- package/dist/pine-core/p-ff472f7c.system.entry.js +0 -2
- package/dist/pine-core/p-ff472f7c.system.entry.js.map +0 -1
- package/dist/pine-core/p-ff5b2c90.entry.js +0 -2
- package/dist/pine-core/p-ff5b2c90.entry.js.map +0 -1
- package/dist/pine-core/p-g4mFEadi.system.js.map +0 -1
- package/dist/pine-core/p-kYMYDfJY.system.js.map +0 -1
- package/dist/pine-core/p-tJa4KYNO.js.map +0 -1
- package/dist/pine-core/p-vLxlRu4_.system.js.map +0 -1
- package/dist/pine-core/p-ziMh7dwl.system.js.map +0 -1
- package/dist/pine-core/pds-accordion.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-alert.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-avatar.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-box.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-button.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-checkbox.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-chip.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-combobox.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-container.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-copytext.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-divider.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-dropdown-menu-separator.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-filter.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-filters.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-icon.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-image.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-input.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-link.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-loader.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-modal-content.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-modal-footer.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-modal-header.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-modal.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-multiselect.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-popover.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-progress.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-property.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-radio-group.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-radio.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-row.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-select.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-sortable-item.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-sortable.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-switch.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-tab.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-table-body.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-table-cell.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-table-head.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-table-row.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-table.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-tabpanel.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-tabs.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-text.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-textarea.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-toast.entry.esm.js.map +0 -1
- package/dist/pine-core/pds-tooltip.entry.esm.js.map +0 -1
- package/dist/pine-core/pine-core.esm.js.map +0 -1
- package/dist/scripts/vscode-custom-data-generator.js.map +0 -1
- package/dist/vscode.html-data.json +0 -10551
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-modal.js","mappings":"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","names":["PdsModal","__stencil_proxyCustomElement"],"sources":["src/components/pds-modal/pds-modal.scss?tag=pds-modal","src/components/pds-modal/pds-modal.tsx"],"sourcesContent":[".pds-modal__backdrop {\n align-items: flex-start;\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\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 var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);\n visibility: hidden;\n width: 100%;\n z-index: var(--pine-z-index-modal);\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: var(--pine-z-index-priority);\n }\n\n &::backdrop {\n background: transparent;\n }\n\n &.open {\n opacity: 1;\n transition-timing-function: var(--pine-motion-easing-out);\n visibility: visible;\n }\n}\n\n.pds-modal {\n background: var(--pine-color-background-overlay);\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, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal',\n styleUrl: 'pds-modal.scss',\n shadow: false\n})\nexport class PdsModal {\n private modalRef: HTMLDialogElement;\n private previousActiveElement: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n\n @Element() el: HTMLPdsModalElement;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n * @default true\n */\n @Prop() backdropDismiss = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Whether the modal is open\n * @default false\n */\n @Prop({ mutable: true }) open = false;\n\n /**\n * The size of the modal\n * @default 'md'\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 * Emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter<void>;\n\n /**\n * Emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter<void>;\n\n /**\n * Stores the list of focusable elements in the modal\n */\n @State() focusableElementsArray: HTMLElement[] = [];\n\n componentDidLoad() {\n this.modalRef = this.el.querySelector('.pds-modal__backdrop') as HTMLDialogElement;\n // Add keyboard event listener\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n // Clean up event listener\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n @Watch('open')\n handleOpenChange(newValue: boolean) {\n if (newValue) {\n this.showModal();\n } else {\n this.hideModal();\n }\n }\n\n /**\n * Updates the list of focusable elements in the modal\n */\n private updateFocusableElements() {\n if (!this.modalRef) return;\n\n // Get all focusable elements within the modal\n const selector = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'pds-button:not([disabled])',\n 'pds-link:not([disabled])',\n 'pds-input:not([disabled])',\n 'pds-checkbox:not([disabled])',\n 'pds-radio:not([disabled])',\n 'pds-switch:not([disabled])',\n 'pds-select:not([disabled])',\n ].join(',');\n\n this.focusableElements = Array.from(\n this.modalRef.querySelectorAll(selector)\n ) as HTMLElement[];\n\n // Filter out elements with display: none or visibility: hidden\n this.focusableElements = this.focusableElements.filter(el => {\n const style = window.getComputedStyle(el);\n return style.display !== 'none' && style.visibility !== 'hidden';\n });\n }\n\n /**\n * Sets focus to the first focusable element in the modal\n */\n private setInitialFocus() {\n if (this.focusableElements.length === 0) return;\n\n // Focus the first focusable element\n const firstElement = this.focusableElements[0];\n\n // For web components, we need to ensure they're properly focused\n this.focusElement(firstElement);\n }\n\n /**\n * Helper method to focus an element, with special handling for web components\n */\n private focusElement(element: HTMLElement) {\n if (!element) return;\n\n try {\n // Try standard focus first\n element.focus();\n\n // Check if focus worked\n setTimeout(() => {\n if (document.activeElement !== element) {\n // For web components, try to find a focusable element inside\n if (element.shadowRoot) {\n const focusableInShadow = element.shadowRoot.querySelector(\n 'button, [tabindex], input, a[href]'\n ) as HTMLElement;\n\n if (focusableInShadow) {\n focusableInShadow.focus();\n }\n }\n }\n }, 0);\n } catch (error) {\n console.error('Error focusing element:', error);\n }\n }\n\n /**\n * Opens the modal\n */\n @Method()\n async showModal() {\n if (this.modalRef) {\n try {\n // Store the currently focused element to restore focus when modal closes\n this.previousActiveElement = document.activeElement as HTMLElement;\n\n // Use native dialog showModal method which makes the rest of the page inert\n this.modalRef.showModal();\n this.open = true;\n\n // Update focusable elements and set initial focus\n // Using a longer timeout to ensure all components are fully rendered\n setTimeout(() => {\n this.updateFocusableElements();\n this.setInitialFocus();\n this.pdsModalOpen.emit();\n }, 100);\n } catch (error) {\n console.error('Failed to show modal:', error);\n }\n }\n }\n\n /**\n * Closes the modal\n */\n @Method()\n async hideModal() {\n if (this.modalRef) {\n try {\n this.modalRef.close();\n this.open = false;\n\n // Restore focus to the element that was focused before the modal was opened\n if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {\n this.previousActiveElement.focus();\n }\n\n this.pdsModalClose.emit();\n } catch (error) {\n console.error('Failed to hide modal:', error);\n }\n }\n }\n\n private handleBackdropClick = (e: MouseEvent) => {\n if (!this.backdropDismiss || !this.open) return;\n\n if ((e.target as HTMLElement).classList.contains('pds-modal__backdrop')) {\n e.stopPropagation();\n\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n this.hideModal();\n }\n }\n };\n\n /**\n * Gets the z-index of a modal's backdrop element\n */\n private getBackdropZIndex(modal: Element): number {\n const backdrop = modal.querySelector('.pds-modal__backdrop');\n return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;\n }\n\n /**\n * Checks if this modal is the innermost (highest z-index) modal\n */\n private isInnermostModal(): boolean {\n // Find all open modals\n const openModals = Array.from(document.querySelectorAll('pds-modal')).filter(\n modal => modal.open\n );\n\n if (openModals.length === 0) return false;\n\n // Get this modal's backdrop element\n const thisBackdrop = this.el.querySelector('.pds-modal__backdrop');\n if (!thisBackdrop) return false;\n\n // Get computed z-index of all open modal backdrops\n const modalZIndexes = openModals.map(modal => this.getBackdropZIndex(modal));\n\n // Get the highest z-index\n const maxZIndex = Math.max(...modalZIndexes);\n\n // Check if this modal's backdrop has the highest z-index\n const thisZIndex = this.getBackdropZIndex(this.el);\n return thisZIndex === maxZIndex;\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n // If the modal is not open, don't handle any keyboard events\n if (!this.open) return;\n\n // Handle Escape key to close the modal\n if (e.key === 'Escape') {\n // Always prevent native dialog close behavior\n e.preventDefault();\n // Only close if backdropDismiss is enabled and this is the innermost modal\n if (this.backdropDismiss && this.isInnermostModal()) {\n this.hideModal();\n }\n return;\n }\n\n // Handle Tab key for focus trapping\n if (e.key === 'Tab') {\n // If there are no focusable elements, do nothing\n if (this.focusableElements.length === 0) return;\n\n // Get the first and last focusable elements\n const firstFocusableElement = this.focusableElements[0];\n const lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];\n\n // Get the current active element\n const activeElement = document.activeElement;\n\n // Check if we need to wrap focus\n const isFirstElement = activeElement === firstFocusableElement ||\n firstFocusableElement.contains(activeElement as Node);\n\n const isLastElement = activeElement === lastFocusableElement ||\n lastFocusableElement.contains(activeElement as Node);\n\n // If shift + tab is pressed and focus is on the first element, move to the last element\n if (e.shiftKey && isFirstElement) {\n e.preventDefault();\n this.focusElement(lastFocusableElement);\n }\n // If tab is pressed and focus is on the last element, move to the first element\n else if (!e.shiftKey && isLastElement) {\n e.preventDefault();\n this.focusElement(firstFocusableElement);\n }\n }\n };\n\n render() {\n return (\n <dialog\n class={{\n 'pds-modal__backdrop': true,\n 'open': this.open\n }}\n aria-modal=\"true\"\n aria-labelledby={`${this.componentId}-heading`}\n onClick={this.handleBackdropClick}\n >\n <div\n class={{\n 'pds-modal': true,\n [`pds-modal--${this.size}`]: true,\n 'pds-modal--scrollable': this.scrollable\n }}\n part=\"modal\"\n >\n <slot></slot>\n </div>\n </dialog>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-multiselect.js","mappings":"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","names":["PdsMultiselect","__stencil_proxyCustomElement"],"sources":["src/components/pds-multiselect/pds-multiselect.scss?tag=pds-multiselect&encapsulation=shadow","src/components/pds-multiselect/pds-multiselect.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n:host([aria-disabled=\"true\"]) {\n .pds-multiselect__trigger {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n .pds-multiselect__icon {\n color: var(--pine-color-text-disabled);\n }\n}\n\n.pds-multiselect {\n position: relative;\n}\n\n.pds-multiselect__label {\n color: var(--pine-color-text-label);\n display: block;\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n.pds-multiselect__wrapper {\n position: relative;\n}\n\n.pds-multiselect__trigger {\n align-items: center;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n cursor: pointer;\n display: flex;\n font: var(--pine-typography-body-medium);\n gap: var(--pine-dimension-xs);\n justify-content: space-between;\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pine-dimension-450);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n position: relative;\n text-align: start;\n transition: border-color var(--pine-motion-duration-base) ease, box-shadow var(--pine-motion-duration-base) ease;\n width: 100%;\n\n &:hover:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-hover);\n }\n\n &:focus:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &.pds-multiselect__trigger--open {\n border-color: var(--pine-color-border-active);\n }\n\n &.pds-multiselect__trigger--invalid {\n background-color: var(--pine-color-red-050);\n border-color: var(--pine-color-border-danger);\n\n &:focus {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n\n &.pds-multiselect__trigger--disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n}\n\n.pds-multiselect__trigger-text {\n color: var(--pine-color-text-strong);\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &.pds-multiselect__trigger-text--placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n .pds-multiselect__trigger--disabled & {\n color: var(--pine-color-text-disabled);\n }\n}\n\n.pds-multiselect__icon {\n color: var(--pine-color-icon);\n flex-shrink: var(--pine-dimension-none);\n}\n\n// Pill list — shared base\n.pds-multiselect__pill-list {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: var(--pine-dimension-2xs);\n}\n\n// Inline: lives inside the trigger\n.pds-multiselect__pill-list--inline {\n flex: 1;\n min-width: 0;\n}\n\n// Below: outside the trigger\n.pds-multiselect__pill-list--below {\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n// Overflow badge\n.pds-multiselect__pill-overflow {\n color: var(--pine-color-text-muted);\n font: var(--pine-typography-body-sm-medium);\n white-space: nowrap;\n}\n\n// Pill-inline trigger modifier — supports wrapping chips\n.pds-multiselect__trigger--pill-inline {\n align-items: center;\n box-sizing: border-box;\n flex-wrap: wrap;\n gap: var(--pine-dimension-2xs);\n min-height: var(--pine-dimension-450);\n padding: var(--pine-dimension-2xs) var(--pine-dimension-sm);\n\n &.pds-multiselect__trigger--open {\n border-color: var(--pine-color-border-active);\n }\n\n // Focus ring via :focus-within — the native button inside receives focus\n &:focus-within:not(.pds-multiselect__trigger--disabled) {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &.pds-multiselect__trigger--invalid:focus-within {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n}\n\n// Toggle button inside pill-inline trigger — wraps only the chevron icon\n.pds-multiselect__pill-toggle {\n align-items: center;\n appearance: none;\n background: none;\n border-width: 0;\n cursor: pointer;\n display: flex;\n padding: 0;\n\n &:focus {\n outline: 3px solid transparent; // Focus ring displayed on parent wrapper via :focus-within\n }\n\n .pds-multiselect__trigger--disabled & {\n cursor: not-allowed;\n pointer-events: none;\n }\n}\n\n.pds-multiselect__panel {\n background: var(--pine-color-background-overlay);\n border-radius: var(--pine-dimension-125);\n box-shadow: var(--pine-box-shadow);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n position: absolute;\n z-index: var(--pine-z-index-raised);\n}\n\n.pds-multiselect__search {\n align-items: center;\n border-block-end: var(--pine-border);\n border-block-end-color: var(--pine-color-border-subtle);\n display: flex;\n gap: var(--pine-dimension-xs);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n\n pds-icon {\n color: var(--pine-color-text-muted);\n flex-shrink: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__search-input {\n background: transparent;\n border: var(--pine-dimension-none);\n color: var(--pine-color-text-strong);\n flex: 1;\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n min-width: var(--pine-dimension-none);\n outline: none;\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n}\n\n.pds-multiselect__selected-section {\n border-block-end: var(--pine-border);\n border-block-end-color: var(--pine-color-border-subtle);\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__selected-list {\n list-style: none;\n margin: var(--pine-dimension-none);\n padding: var(--pine-dimension-none);\n}\n\n.pds-multiselect__selected-item {\n color: var(--pine-color-text-strong);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n overflow: hidden;\n padding: var(--pine-dimension-2xs) var(--pine-dimension-xs);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pds-multiselect__listbox {\n background: transparent;\n border: var(--pine-dimension-none);\n box-sizing: border-box;\n list-style: none;\n margin: var(--pine-dimension-none);\n overflow-y: auto;\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__group-header {\n color: var(--pine-color-text-muted);\n display: block;\n font: var(--pine-typography-body-sm-medium);\n letter-spacing: var(--pine-letter-spacing);\n padding: var(--pine-dimension-sm) var(--pine-dimension-xs) var(--pine-dimension-2xs);\n text-transform: uppercase;\n}\n\n// First group sits directly under search; slightly tighter top padding than subsequent groups\n.pds-multiselect__listbox > li:first-child > .pds-multiselect__group-header {\n padding-block-start: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__group-list {\n list-style: none;\n margin: var(--pine-dimension-none);\n padding: var(--pine-dimension-none);\n}\n\n.pds-multiselect__option {\n align-items: center;\n background: transparent;\n border-radius: var(--pine-dimension-xs);\n cursor: pointer;\n display: flex;\n padding: var(--pine-dimension-2xs) var(--pine-dimension-xs);\n transition: background 0.15s;\n\n // Prevent checkbox label from triggering double events\n pds-checkbox {\n pointer-events: none;\n width: 100%;\n }\n\n &:hover:not(.pds-multiselect__option--disabled),\n &.pds-multiselect__option--highlighted:not(.pds-multiselect__option--disabled) {\n background: var(--pine-color-background-muted);\n }\n\n &.pds-multiselect__option--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n &:focus-visible {\n outline: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__create-option {\n color: var(--pine-color-text-strong);\n width: 100%;\n\n pds-icon {\n color: var(--pine-color-text-muted);\n flex-shrink: var(--pine-dimension-none);\n }\n}\n\n.pds-multiselect__empty,\n.pds-multiselect__loading {\n align-items: center;\n color: var(--pine-color-text-muted);\n display: flex;\n font: var(--pine-typography-body);\n justify-content: center;\n padding: var(--pine-dimension-sm);\n}\n\n.pds-multiselect__load-more {\n align-items: center;\n display: flex;\n justify-content: center;\n padding: var(--pine-dimension-xs);\n}\n\n.pds-multiselect__helper {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm);\n margin-block-start: var(--pine-dimension-2xs);\n margin-inline-start: var(--pine-dimension-none);\n}\n\n.pds-multiselect__error {\n align-items: flex-start;\n color: var(--pine-color-text-message-danger);\n display: flex;\n font: var(--pine-typography-body-sm);\n gap: var(--pine-dimension-2xs);\n margin-block-start: var(--pine-dimension-2xs);\n margin-inline-start: var(--pine-dimension-none);\n\n pds-icon {\n flex-shrink: var(--pine-dimension-none);\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n.visually-hidden {\n border: var(--pine-dimension-none);\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: var(--pine-dimension-none);\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport { computePosition, flip, offset, shift, size, autoUpdate } from '@floating-ui/dom';\nimport { debounceEvent } from '@utils/utils';\nimport { isSpecTest, messageId, assignDescription } from '../../utils/form';\nimport { danger, enlarge } from '@pine-ds/icons/icons';\nimport type {\n MultiselectOption,\n MultiselectChangeEventDetail,\n MultiselectSearchEventDetail,\n MultiselectLoadOptionsEventDetail,\n MultiselectCreateEventDetail,\n AsyncResponse,\n CreateResponse,\n} from './multiselect-interface';\n\n/**\n * @slot (default) - Static option elements for the multiselect\n * @slot empty - Custom empty state message when no options match\n * @slot loading - Custom loading indicator\n * @part trigger - The trigger surface that opens the dropdown panel\n * @part pill-toggle - The chevron button inside the inline pill trigger\n */\n@Component({\n tag: 'pds-multiselect',\n styleUrl: 'pds-multiselect.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class PdsMultiselect {\n private triggerEl?: HTMLButtonElement | HTMLDivElement;\n private pillInlineTriggerEl?: HTMLDivElement;\n private searchInputEl?: HTMLInputElement;\n private containerEl?: HTMLElement;\n private listboxEl?: HTMLElement;\n private panelEl?: HTMLElement;\n private internals?: ElementInternals;\n private abortController?: AbortController;\n private fetchDebounceTimer?: number;\n private fetchTimeoutTimer?: number;\n private observer?: MutationObserver;\n private cleanupAutoUpdate?: () => void;\n\n @Element() el!: HTMLPdsMultiselectElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Text to be displayed as the multiselect label.\n */\n @Prop() label?: string;\n\n /**\n * Placeholder text for the input field.\n */\n @Prop() placeholder?: string = 'Select...';\n\n /**\n * Placeholder text for the search input inside the dropdown panel.\n * @default 'Find...'\n */\n @Prop() searchPlaceholder: string = 'Find...';\n\n /**\n * Whether to close the panel after an option is selected.\n * Defaults to `false` (panel stays open for multi-select).\n */\n @Prop() closePanelOnSelect: boolean = false;\n\n /**\n * Specifies the name. Submitted with the form as part of a name/value pair.\n */\n @Prop() name?: string;\n\n /**\n * Array of selected option values.\n */\n @Prop({ mutable: true }) value: string[] = [];\n\n /**\n * Determines whether or not the multiselect is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * URL endpoint for async data fetching.\n */\n @Prop() asyncUrl?: string;\n\n /**\n * HTTP method for async requests.\n */\n @Prop() asyncMethod: 'GET' | 'POST' = 'GET';\n\n /**\n * Debounce delay in milliseconds for search/fetch.\n */\n @Prop() debounce: number = 300;\n\n /**\n * Timeout in milliseconds for async fetch requests.\n */\n @Prop() fetchTimeout: number = 30000;\n\n /**\n * Maximum number of selections allowed.\n */\n @Prop() maxSelections?: number;\n\n /**\n * Maximum height of the dropdown before scrolling.\n */\n @Prop() maxHeight: string = '300px';\n\n /**\n * Width of the trigger button (and reference for dropdown positioning).\n */\n @Prop() triggerWidth: string = '100%';\n\n /**\n * Minimum width of the dropdown panel.\n */\n @Prop() minWidth: string = '250px';\n\n /**\n * Width of the dropdown panel. Defaults to the trigger width.\n */\n @Prop() panelWidth?: string;\n\n /**\n * Visually hides the label but keeps it accessible.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * Hides the selected items summary section in the dropdown panel.\n */\n @Prop() hideSelectedItems: boolean = false;\n\n /**\n * Display mode for selected items outside the dropdown panel.\n * `'count'` shows \"N item(s)\" text in the trigger (default). `'pill'` renders\n * selected items as dismissible pds-chip tags.\n * @default 'count'\n */\n @Prop() selectedDisplay: 'count' | 'pill' = 'count';\n\n /**\n * Position of pill chips when `selectedDisplay` is `'pill'`.\n * `'inline'` places chips inside the trigger; `'below'` places chips in a\n * flex-wrap row directly below the trigger.\n * @default 'inline'\n */\n @Prop() pillPosition: 'inline' | 'below' = 'inline';\n\n /**\n * Maximum chips shown inline before collapsing to a \"+N more\" badge.\n * Only applies when `selectedDisplay='pill'` and `pillPosition='inline'`.\n * @default 3\n */\n @Prop() maxInlinePills: number = 3;\n\n /**\n * Error message to display.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Helper message to display below the input.\n */\n @Prop() helperMessage?: string;\n\n /**\n * If true, the multiselect is in an invalid state.\n */\n @Prop() invalid?: boolean;\n\n /**\n * If true, the multiselect is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the component is currently loading async options.\n */\n @Prop({ mutable: true }) loading: boolean = false;\n\n /**\n * Options provided externally (for consumer-managed async).\n * When using `group` on options, keep each group block contiguous in the array.\n * The same `group` label appearing again after other items produces a separate header (same as native `<optgroup>`).\n */\n @Prop() options?: MultiselectOption[];\n\n /**\n * Function to format async results. Receives raw API response item.\n */\n @Prop() formatResult?: (item: unknown) => MultiselectOption;\n\n /**\n * URL endpoint for creating new options. When set, shows \"Add\" option when no matches found.\n */\n @Prop() createUrl?: string;\n\n /**\n * CSRF token for authenticated requests. If not provided, attempts to read from meta tag.\n */\n @Prop() csrfToken?: string;\n\n /**\n * CSRF header name for authenticated requests. Defaults to `X-CSRF-Token`.\n */\n @Prop() csrfHeaderName?: string = 'X-CSRF-Token';\n\n // Internal state\n @State() isOpen: boolean = false;\n @State() searchQuery: string = '';\n @State() highlightedIndex: number = -1;\n @State() internalOptions: MultiselectOption[] = [];\n @State() selectedItems: MultiselectOption[] = [];\n @State() currentPage: number = 1;\n @State() hasMore: boolean = false;\n @State() creating: boolean = false;\n @State() private removalAnnouncement: string = '';\n\n // Flag to prevent focusout from closing during open transition\n private isOpening: boolean = false;\n // Flag to suppress dismiss event when panel closes due to selection (not user dismissal)\n private isClosingViaSelection: boolean = false;\n // Flag to track if initial async fetch has been triggered (prevents double fetch)\n private initialAsyncFetchTriggered: boolean = false;\n // Flag to track if value changed during loading and needs resolution after fetch completes\n private pendingUnresolvedFetch: boolean = false;\n\n /**\n * Emitted when selection changes.\n */\n @Event() pdsMultiselectChange!: EventEmitter<MultiselectChangeEventDetail>;\n\n /**\n * Emitted on search input (for consumer-managed async).\n */\n @Event() pdsMultiselectSearch!: EventEmitter<MultiselectSearchEventDetail>;\n\n /**\n * Emitted to request more options (pagination).\n */\n @Event() pdsMultiselectLoadOptions!: EventEmitter<MultiselectLoadOptionsEventDetail>;\n\n /**\n * Emitted when a new option is created.\n */\n @Event() pdsMultiselectCreate!: EventEmitter<MultiselectCreateEventDetail>;\n\n /**\n * Emitted when the dropdown is dismissed via Escape key or click outside.\n *\n * This event fires only when the user explicitly dismisses the panel without making a selection:\n * - ✅ Fires: Pressing Escape key while dropdown is open\n * - ✅ Fires: Clicking outside the component while dropdown is open\n * - ❌ Does NOT fire: When panel closes due to selection (including when `closePanelOnSelect` is true)\n * - ❌ Does NOT fire: When panel closes programmatically via `closeDropdown()`\n *\n * Equivalent to Sage's `onEscapeHook`. Use this to restore parent UI state or run cleanup when the user cancels their interaction.\n */\n @Event() pdsMultiselectDismiss!: EventEmitter<void>;\n\n private originalSearchEmitter?: EventEmitter<MultiselectSearchEventDetail>;\n\n connectedCallback() {\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n componentWillLoad() {\n this.originalSearchEmitter = this.pdsMultiselectSearch;\n this.syncSelectedItems();\n }\n\n componentDidLoad() {\n this.setupDebounce();\n this.setupMutationObserver();\n this.setupSlotChangeListener();\n this.updateFormValue();\n\n // Ensure preselected values sync after DOM is fully ready\n // This handles cases where slot content loads after initial render (e.g., in docs/MDX)\n requestAnimationFrame(() => {\n this.updateOptionsFromSlot();\n this.syncSelectedItems();\n });\n\n // If we have preselected values and asyncUrl, fetch options to resolve them\n // This ensures the trigger shows \"X items\" instead of placeholder on initial render\n if (this.asyncUrl && this.ensureValueArray().length > 0) {\n this.initialAsyncFetchTriggered = true;\n this.fetchOptions('', 1);\n }\n }\n\n private setupSlotChangeListener() {\n const slot = this.el.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot) {\n slot.addEventListener('slotchange', () => {\n this.updateOptionsFromSlot();\n this.syncSelectedItems();\n });\n // Also call it immediately in case content is already slotted\n this.updateOptionsFromSlot();\n }\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n this.cleanupAutoUpdate?.();\n this.clearAsyncFetchState();\n }\n\n @Watch('debounce')\n protected setupDebounce() {\n const { pdsMultiselectSearch, debounce, originalSearchEmitter } = this;\n this.pdsMultiselectSearch = debounce === undefined\n ? originalSearchEmitter ?? pdsMultiselectSearch\n : debounceEvent(pdsMultiselectSearch, debounce);\n }\n\n @Watch('value')\n protected valueChanged(newValue: string[] | string) {\n // Handle JSON string values (from HTML attributes)\n if (typeof newValue === 'string') {\n try {\n const parsed = JSON.parse(newValue);\n if (Array.isArray(parsed)) {\n this.value = parsed;\n return; // The assignment will trigger this watcher again with the array\n }\n } catch {\n // Not valid JSON, treat as single value\n this.value = newValue ? [newValue] : [];\n return;\n }\n }\n this.syncSelectedItems();\n this.updateFormValue();\n\n // If using asyncUrl and some values couldn't be resolved, fetch options\n // This handles programmatic value changes where the options aren't loaded yet\n if (this.asyncUrl) {\n const valueArray = this.ensureValueArray();\n const hasUnresolvedValues = valueArray.length > 0 && this.selectedItems.length < valueArray.length;\n if (hasUnresolvedValues) {\n if (this.loading) {\n // Mark that we need to re-check after current fetch completes\n this.pendingUnresolvedFetch = true;\n } else {\n this.fetchOptions('', 1);\n }\n }\n }\n }\n\n @Watch('options')\n protected optionsChanged() {\n if (this.options) {\n this.internalOptions = [...this.options];\n }\n }\n\n @Watch('internalOptions')\n protected internalOptionsChanged() {\n // Re-sync selected items when options become available\n // This handles the case where value is set before options are loaded (e.g., from slot)\n this.syncSelectedItems();\n }\n\n /**\n * Sets focus on the trigger button.\n */\n @Method()\n async setFocus() {\n this.triggerEl?.focus();\n }\n\n /**\n * Clears all selected values and resets the component.\n */\n @Method()\n async clear() {\n const hadValues = this.value.length > 0 || this.searchQuery !== '';\n this.value = [];\n this.searchQuery = '';\n this.syncSelectedItems();\n this.updateFormValue();\n if (hadValues) {\n this.pdsMultiselectChange.emit({ values: [], items: [] });\n }\n }\n\n /**\n * Handle global keyboard events for accessibility.\n * Closes dropdown on Escape key press regardless of focus location.\n */\n @Listen('keydown', { target: 'window' })\n handleWindowKeyDown(event: KeyboardEvent) {\n if (!this.isOpen) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.pdsMultiselectDismiss.emit();\n this.closeDropdown();\n this.triggerEl?.focus();\n }\n }\n\n private setupMutationObserver() {\n this.observer = new MutationObserver(() => {\n this.updateOptionsFromSlot();\n });\n\n this.observer.observe(this.el, {\n childList: true,\n subtree: true,\n });\n }\n\n private updateOptionsFromSlot() {\n const slot = this.el.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (!slot) return;\n\n const options: MultiselectOption[] = [];\n\n slot.assignedElements({ flatten: true }).forEach(el => {\n if (el.tagName === 'OPTGROUP') {\n const optgroup = el as HTMLOptGroupElement;\n const groupLabel = optgroup.label;\n const groupDisabled = optgroup.disabled;\n optgroup.querySelectorAll('option').forEach((opt: HTMLOptionElement) => {\n const option: MultiselectOption = {\n id: opt.value,\n text: opt.textContent?.trim() || opt.value,\n disabled: opt.disabled || groupDisabled || undefined,\n };\n if (groupLabel) {\n option.group = groupLabel;\n }\n options.push(option);\n });\n } else if (el.tagName === 'OPTION') {\n const opt = el as HTMLOptionElement;\n options.push({\n id: opt.value,\n text: opt.textContent?.trim() || opt.value,\n disabled: opt.disabled || undefined,\n });\n }\n });\n\n // Only update if we actually found options AND we're not using async/external options\n // Don't clear internalOptions if slot returns empty (might be mid-DOM-update)\n if (options.length > 0 && !this.asyncUrl && !this.options) {\n this.internalOptions = options;\n }\n }\n\n private clearAsyncFetchState() {\n if (this.fetchDebounceTimer !== undefined) {\n window.clearTimeout(this.fetchDebounceTimer);\n this.fetchDebounceTimer = undefined;\n }\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n this.abortController?.abort();\n this.abortController = undefined;\n }\n\n private debouncedFetchAsyncOptions(query: string, page: number = 1) {\n if (!this.asyncUrl) return;\n\n if (this.fetchDebounceTimer !== undefined) {\n window.clearTimeout(this.fetchDebounceTimer);\n }\n\n const delay = Math.max(0, this.debounce ?? 0);\n this.fetchDebounceTimer = window.setTimeout(() => {\n this.fetchDebounceTimer = undefined;\n this.fetchOptions(query, page);\n }, delay);\n }\n\n private syncSelectedItems() {\n // Ensure value is an array (may be string from HTML attribute)\n const valueArray = this.ensureValueArray();\n const allOptions = this.getAllOptions();\n\n // Map values to options, preserving existing selectedItems for values not yet in options\n const newSelectedItems: MultiselectOption[] = [];\n const existingItemsMap = new Map(this.selectedItems.map(item => [String(item.id), item]));\n\n valueArray.forEach(val => {\n // First try to find in available options\n const option = allOptions.find(opt => String(opt.id) === String(val));\n\n if (option) {\n newSelectedItems.push(option);\n } else if (existingItemsMap.has(String(val))) {\n // If not in options but exists in current selectedItems, preserve it\n // This handles the case where async data hasn't loaded yet or newly created items\n newSelectedItems.push(existingItemsMap.get(String(val))!);\n }\n // Note: We don't create placeholders for values without matching options.\n // This ensures selectedItems remains empty until options are actually loaded,\n // which matches the expected behavior for preselected values.\n });\n\n this.selectedItems = newSelectedItems;\n }\n\n private ensureValueArray(): string[] {\n // Handle JSON string values passed via HTML attribute\n if (typeof this.value === 'string') {\n try {\n const parsed = JSON.parse(this.value as unknown as string);\n if (Array.isArray(parsed)) {\n this.value = parsed;\n return parsed;\n }\n } catch {\n // Not valid JSON, treat as single value\n const singleValue = this.value as unknown as string;\n this.value = singleValue ? [singleValue] : [];\n return this.value;\n }\n }\n return Array.isArray(this.value) ? this.value : [];\n }\n\n private getAllOptions(): MultiselectOption[] {\n return this.options || this.internalOptions;\n }\n\n\n private getFilteredOptions(): MultiselectOption[] {\n const allOptions = this.getAllOptions();\n const query = this.searchQuery.toLowerCase();\n\n const filtered = allOptions.filter(opt => {\n // Filter by search query only - don't filter out selected items\n if (query) {\n return opt.text.toLowerCase().includes(query);\n }\n return true;\n });\n\n // Add create option if enabled and no matches found\n if (this.createUrl && this.searchQuery.trim() && filtered.length === 0) {\n return [{\n id: '__create__',\n text: this.searchQuery.trim(),\n isCreateOption: true,\n }];\n }\n\n return filtered;\n }\n\n private updateFormValue() {\n if (isSpecTest()) return;\n\n if (this.internals?.setFormValue) {\n // Ensure value is an array before iterating\n const valueArray = this.ensureValueArray();\n\n // Submit as multiple values with same name (native select multiple behavior)\n const formData = new FormData();\n valueArray.forEach(val => {\n if (this.name) {\n formData.append(this.name, val);\n }\n });\n this.internals.setFormValue(formData);\n\n // Update validity state for required validation\n if (this.required && valueArray.length === 0) {\n this.internals.setValidity(\n { valueMissing: true },\n 'Please select at least one option.',\n this.triggerEl\n );\n } else {\n this.internals.setValidity({});\n }\n }\n }\n\n private getCsrfToken(): string | null {\n // Use provided token if available\n if (this.csrfToken) {\n return this.csrfToken;\n }\n\n // Try to read from meta tag\n const metaTag = document.querySelector('meta[name=\"csrf-token\"]') as HTMLMetaElement;\n return metaTag?.content || null;\n }\n\n private async fetchOptions(query: string, page: number = 1) {\n if (!this.asyncUrl) return;\n\n // Abort any pending request and clear existing timeout\n this.abortController?.abort();\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n this.abortController = new AbortController();\n this.loading = true;\n\n // Set up timeout for fetch request\n this.fetchTimeoutTimer = window.setTimeout(() => {\n this.abortController?.abort();\n this.fetchTimeoutTimer = undefined;\n }, this.fetchTimeout);\n\n try {\n // Guard against malformed asyncUrl\n let url: URL;\n try {\n url = new URL(this.asyncUrl, window.location.origin);\n } catch (urlError) {\n throw new TypeError(`Invalid asyncUrl: ${this.asyncUrl}`);\n }\n\n if (this.asyncMethod === 'GET') {\n url.searchParams.set('search', query);\n url.searchParams.set('page', String(page));\n }\n\n const csrfToken = this.getCsrfToken();\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n };\n\n if (csrfToken) {\n const headerName = this.csrfHeaderName || 'X-CSRF-Token';\n headers[headerName] = csrfToken;\n }\n\n const response = await fetch(url.toString(), {\n method: this.asyncMethod,\n signal: this.abortController.signal,\n headers,\n ...(this.asyncMethod === 'POST' && {\n body: JSON.stringify({ search: query, page }),\n }),\n });\n\n // Clear timeout on successful response\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n if (!response.ok) throw new Error('Failed to fetch options');\n\n const data: AsyncResponse = await response.json();\n\n const formattedResults = data.results.map(item => {\n // If formatResult is provided, use it\n if (this.formatResult) {\n return this.formatResult(item);\n }\n\n // Defensive check: ensure item is an object before spreading\n if (typeof item === 'object' && item !== null) {\n return {\n id: item.id,\n text: item.text,\n ...item,\n } as MultiselectOption;\n }\n\n // Handle primitives by converting to safe shape\n return {\n id: String(item),\n text: String(item),\n } as MultiselectOption;\n });\n\n if (page === 1) {\n this.internalOptions = formattedResults;\n } else {\n this.internalOptions = [...this.internalOptions, ...formattedResults];\n }\n\n this.hasMore = data.totalCount ? this.internalOptions.length < data.totalCount : false;\n this.currentPage = page;\n\n } catch (error) {\n // Clear timeout on error\n if (this.fetchTimeoutTimer !== undefined) {\n window.clearTimeout(this.fetchTimeoutTimer);\n this.fetchTimeoutTimer = undefined;\n }\n\n if ((error as Error).name !== 'AbortError') {\n console.error('PdsMultiselect: Failed to fetch options', error);\n }\n } finally {\n this.loading = false;\n\n // Check if value changed during loading and still has unresolved values\n if (this.pendingUnresolvedFetch) {\n this.pendingUnresolvedFetch = false;\n const valueArray = this.ensureValueArray();\n const hasUnresolvedValues = valueArray.length > 0 && this.selectedItems.length < valueArray.length;\n if (hasUnresolvedValues) {\n this.fetchOptions('', 1);\n }\n }\n }\n }\n\n private async createOption(query: string) {\n if (!this.createUrl || !query.trim()) return;\n\n // Reentrancy guard: prevent duplicate POSTs if creation is already in-flight\n if (this.creating) return;\n\n this.creating = true;\n\n try {\n const url = new URL(this.createUrl, window.location.origin);\n\n const csrfToken = this.getCsrfToken();\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n };\n\n if (csrfToken) {\n const headerName = this.csrfHeaderName || 'X-CSRF-Token';\n headers[headerName] = csrfToken;\n }\n\n const response = await fetch(url.toString(), {\n method: 'POST',\n headers,\n body: JSON.stringify({ text: query.trim() }),\n });\n\n if (!response.ok) throw new Error('Failed to create option');\n\n const data: CreateResponse = await response.json();\n\n const newOption: MultiselectOption = {\n id: data.id,\n text: data.text,\n ...data,\n };\n\n // Add to internal options first\n this.internalOptions = [...this.internalOptions, newOption];\n\n // Select the new option\n this.value = [...this.value, String(newOption.id)];\n\n // Sync selected items to update display with new option\n this.syncSelectedItems();\n\n // Emit create event\n this.pdsMultiselectCreate.emit({\n query: query.trim(),\n newOption,\n });\n\n // Emit change event with synced items\n this.pdsMultiselectChange.emit({\n values: this.value,\n items: this.selectedItems,\n });\n\n // Clear search and keep dropdown open\n this.searchQuery = '';\n this.highlightedIndex = -1;\n\n // Focus back on search input\n requestAnimationFrame(() => {\n this.searchInputEl?.focus();\n });\n\n } catch (error) {\n console.error('PdsMultiselect: Failed to create option', error);\n } finally {\n this.creating = false;\n }\n }\n\n private handleTriggerClick = (e?: MouseEvent) => {\n if (this.disabled) return;\n // In inline-pill mode, ignore clicks that originated inside a pds-chip.\n // Chip close-button clicks are handled by handlePillRemove; chip body clicks should not toggle the panel.\n if (e && this.selectedDisplay === 'pill' && this.pillPosition === 'inline') {\n const fromChip = e.composedPath().some(\n el => (el as { tagName?: string }).tagName?.toLowerCase() === 'pds-chip'\n );\n if (fromChip) return;\n }\n\n if (this.isOpen) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n private handleTriggerKeyDown = (e: KeyboardEvent) => {\n // Ignore keydown events that bubbled from child elements (e.g. chip close buttons).\n // Only handle keys when the trigger itself is the event target.\n if (e.target !== this.triggerEl) return;\n switch (e.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!this.isOpen) {\n this.openDropdown();\n }\n break;\n }\n };\n\n private handleSearchInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.searchQuery = target.value;\n this.highlightedIndex = -1;\n\n // Emit search event for consumer-managed async\n this.pdsMultiselectSearch.emit({ query: this.searchQuery });\n\n // Fetch from async URL if configured\n if (this.asyncUrl) {\n this.debouncedFetchAsyncOptions(this.searchQuery, 1);\n }\n };\n\n private handleSearchInputKeyDown = (e: KeyboardEvent) => {\n const filteredOptions = this.getFilteredOptions();\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n let nextIndex = this.highlightedIndex + 1;\n while (nextIndex < filteredOptions.length && filteredOptions[nextIndex]?.disabled) {\n nextIndex++;\n }\n if (nextIndex < filteredOptions.length) {\n this.highlightedIndex = nextIndex;\n this.scrollOptionIntoView();\n }\n break;\n }\n\n case 'ArrowUp': {\n e.preventDefault();\n // Clamp to 0 so ArrowUp from uninitialised state (-1) attempts the first option;\n // stays at -1 if that option is disabled.\n let prevIndex = Math.max(this.highlightedIndex - 1, 0);\n while (prevIndex > 0 && filteredOptions[prevIndex]?.disabled) {\n prevIndex--;\n }\n if (!filteredOptions[prevIndex]?.disabled) {\n this.highlightedIndex = prevIndex;\n this.scrollOptionIntoView();\n }\n break;\n }\n\n case 'Enter':\n e.preventDefault();\n if (this.highlightedIndex >= 0) {\n const option = filteredOptions[this.highlightedIndex];\n if (option) {\n this.selectOption(option);\n }\n }\n break;\n\n // Escape is handled by the global @Listen('keydown') handler\n\n case 'Tab':\n this.closeDropdown();\n break;\n }\n };\n\n private handleContainerFocusOut = () => {\n // Use setTimeout to delay the check - this allows click events and focus transitions to complete\n // before we decide to close the dropdown\n setTimeout(() => {\n // Don't close if we're in the middle of opening, already closed,\n // or closing due to a selection (not a user dismissal)\n if (!this.isOpen || this.isOpening || this.isClosingViaSelection) return;\n\n const activeElement = document.activeElement;\n\n // Check if focus is within our component's shadow root\n const isInShadowRoot = this.el.shadowRoot?.contains(activeElement);\n\n // Also check if focus is on the host element itself\n const isOnHost = activeElement === this.el;\n\n if (!isInShadowRoot && !isOnHost) {\n this.pdsMultiselectDismiss.emit();\n this.closeDropdown();\n }\n }, 0);\n };\n\n private openDropdown() {\n if (this.disabled) return;\n\n this.isOpening = true;\n this.isOpen = true;\n this.highlightedIndex = -1;\n\n // Trigger initial fetch if async (skip if already fetching from componentDidLoad)\n if (this.asyncUrl && this.internalOptions.length === 0 && !this.initialAsyncFetchTriggered) {\n this.debouncedFetchAsyncOptions(this.searchQuery, 1);\n }\n // Reset the flag so subsequent opens can fetch if needed\n this.initialAsyncFetchTriggered = false;\n\n requestAnimationFrame(() => {\n this.positionDropdown();\n // Focus the search input after the panel is positioned\n this.searchInputEl?.focus();\n // Clear the opening flag after focus has moved\n setTimeout(() => {\n this.isOpening = false;\n }, 50);\n });\n }\n\n private closeDropdown() {\n this.isOpen = false;\n this.highlightedIndex = -1;\n this.searchQuery = '';\n\n // Reset the selection-close guard after the focusout handler's setTimeout has resolved\n if (this.isClosingViaSelection) {\n setTimeout(() => {\n this.isClosingViaSelection = false;\n }, 0);\n }\n\n // Clean up auto-update\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = undefined;\n }\n }\n\n private positionDropdown() {\n if (!this.containerEl || !this.panelEl) return;\n // In inline pill mode, triggerEl is the small chevron button — use the full-width\n // wrapper div as the Floating UI reference so the panel aligns with the whole trigger.\n const referenceEl = this.pillInlineTriggerEl || this.triggerEl || this.containerEl;\n\n const { minWidth, panelWidth } = this;\n\n const updatePosition = () => {\n computePosition(referenceEl!, this.panelEl!, {\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n offset(12),\n flip(),\n shift({ padding: 8 }),\n size({\n apply: ({ rects, elements }) => {\n Object.assign(elements.floating.style, {\n width: panelWidth ?? `${rects.reference.width}px`,\n minWidth,\n });\n },\n }),\n ],\n }).then(({ x, y }) => {\n if (this.panelEl) {\n this.panelEl.style.left = `${x}px`;\n this.panelEl.style.top = `${y}px`;\n }\n });\n };\n\n // Initial position\n updatePosition();\n\n // Set up auto-update for window resize and scroll\n const cleanupAutoUpdate = autoUpdate(\n referenceEl!,\n this.panelEl,\n updatePosition\n );\n this.cleanupAutoUpdate = () => {\n cleanupAutoUpdate();\n this.clearAsyncFetchState();\n };\n }\n\n private scrollOptionIntoView() {\n requestAnimationFrame(() => {\n const highlighted = this.listboxEl?.querySelector(`[data-index=\"${this.highlightedIndex}\"]`) as HTMLElement;\n highlighted?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n });\n }\n\n private toggleOption(option: MultiselectOption) {\n if (option.disabled) return;\n\n // Handle create option\n if (option.isCreateOption) {\n // Prevent multiple create calls while one is in-flight\n if (!this.creating) {\n this.createOption(this.searchQuery);\n }\n return;\n }\n\n const optionId = String(option.id);\n const isSelected = this.value.includes(optionId);\n\n if (isSelected) {\n // Remove from selection\n this.value = this.value.filter(v => v !== optionId);\n } else {\n // Add to selection\n if (this.maxSelections && this.value.length >= this.maxSelections) {\n return;\n }\n\n this.value = [...this.value, optionId];\n }\n\n // Sync selected items to ensure no duplicates and accurate state\n this.syncSelectedItems();\n\n // Emit change event with synced items\n this.pdsMultiselectChange.emit({\n values: this.value,\n items: this.selectedItems,\n });\n\n if (this.closePanelOnSelect) {\n this.isClosingViaSelection = true;\n this.closeDropdown();\n this.triggerEl?.focus();\n } else {\n // Keep focus on search input, don't close dropdown\n this.searchInputEl?.focus();\n }\n }\n\n private selectOption(option: MultiselectOption) {\n // For keyboard navigation - toggle the option\n this.toggleOption(option);\n }\n\n private handleOptionMouseDown = (option: MultiselectOption) => (e: MouseEvent) => {\n e.preventDefault(); // Prevent focus change\n this.toggleOption(option);\n };\n\n private handleOptionMouseEnter = (index: number, option: MultiselectOption) => () => {\n if (option.disabled) return;\n this.highlightedIndex = index;\n };\n\n\n private handleScroll = (e: Event) => {\n if (!this.asyncUrl || !this.hasMore || this.loading) return;\n\n const target = e.target as HTMLElement;\n const scrollBottom = target.scrollHeight - target.scrollTop - target.clientHeight;\n\n // Load more when near bottom (within 50px)\n if (scrollBottom < 50) {\n this.pdsMultiselectLoadOptions.emit({\n query: this.searchQuery,\n page: this.currentPage + 1,\n });\n this.debouncedFetchAsyncOptions(this.searchQuery, this.currentPage + 1);\n }\n };\n\n\n private getGroupedRenderItems(filteredOptions: MultiselectOption[]): Array<\n | { type: 'group'; group: string; options: Array<{ option: MultiselectOption; index: number }> }\n | { type: 'option'; option: MultiselectOption; index: number }\n > {\n type GroupItem = { type: 'group'; group: string; options: Array<{ option: MultiselectOption; index: number }> };\n type OptionItem = { type: 'option'; option: MultiselectOption; index: number };\n const items: Array<GroupItem | OptionItem> = [];\n let currentGroup: GroupItem | null = null;\n\n filteredOptions.forEach((option, index) => {\n const group = option.group;\n if (group !== undefined) {\n if (!currentGroup || currentGroup.group !== group) {\n currentGroup = { type: 'group', group, options: [] };\n items.push(currentGroup);\n }\n currentGroup.options.push({ option, index });\n } else {\n currentGroup = null;\n items.push({ type: 'option', option, index });\n }\n });\n\n return items;\n }\n\n private renderOption(option: MultiselectOption, index: number, valueArray: string[]) {\n const isSelected = valueArray.includes(String(option.id));\n const isCreateOption = option.isCreateOption;\n const isDisabled = option.disabled;\n const isHighlighted = index === this.highlightedIndex && !isCreateOption;\n const optionId = `${this.componentId}-option-${index}`;\n const isCreateDisabled = isCreateOption && this.creating;\n\n return (\n <li\n key={String(option.id)}\n id={optionId}\n class={{\n 'pds-multiselect__option': true,\n 'pds-multiselect__option--highlighted': isHighlighted,\n 'pds-multiselect__option--selected': isSelected,\n 'pds-multiselect__option--create': isCreateOption,\n 'pds-multiselect__option--disabled': isDisabled || isCreateDisabled,\n }}\n role=\"option\"\n aria-selected={isSelected ? 'true' : 'false'}\n aria-disabled={isDisabled || isCreateDisabled ? 'true' : undefined}\n aria-label={isCreateOption ? `Create new tag: ${option.text}` : undefined}\n data-index={index}\n onMouseDown={this.handleOptionMouseDown(option)}\n onMouseEnter={this.handleOptionMouseEnter(index, option)}\n >\n {isCreateOption ? (\n <pds-box class=\"pds-multiselect__create-option\" align-items=\"center\" gap=\"xs\">\n <pds-icon name=\"add\" size=\"small\" />\n <pds-text>Add \"{option.text}\"</pds-text>\n </pds-box>\n ) : (\n <pds-checkbox\n componentId={`${this.componentId}-checkbox-${index}`}\n checked={isSelected}\n label={option.text}\n disabled={isDisabled}\n style={{ pointerEvents: 'none' }}\n />\n )}\n </li>\n );\n }\n\n private renderSelectedItemsList() {\n if (this.hideSelectedItems || this.selectedItems.length === 0) return null;\n\n return (\n <div class=\"pds-multiselect__selected-section\">\n <ul class=\"pds-multiselect__selected-list\" role=\"list\">\n {this.selectedItems.map(item => (\n <li key={String(item.id)} class=\"pds-multiselect__selected-item\">\n {item.text}\n </li>\n ))}\n </ul>\n </div>\n );\n }\n\n private renderDropdown() {\n if (!this.isOpen) return null;\n\n const filteredOptions = this.getFilteredOptions();\n const valueArray = this.ensureValueArray();\n const hasSlottedEmpty = !!this.el.querySelector('[slot=\"empty\"]');\n const hasSlottedLoading = !!this.el.querySelector('[slot=\"loading\"]');\n\n return (\n <div\n class=\"pds-multiselect__panel\"\n ref={el => (this.panelEl = el)}\n style={{ minWidth: this.minWidth }}\n >\n {/* Search input */}\n <div class=\"pds-multiselect__search\">\n <pds-icon name=\"search\" size=\"small\" />\n <input\n ref={el => (this.searchInputEl = el)}\n type=\"text\"\n class=\"pds-multiselect__search-input\"\n placeholder={this.searchPlaceholder}\n value={this.searchQuery}\n aria-label=\"Search options\"\n aria-controls={`${this.componentId}-listbox`}\n aria-activedescendant={this.highlightedIndex >= 0 ? `${this.componentId}-option-${this.highlightedIndex}` : undefined}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"true\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n onInput={this.handleSearchInputChange}\n onKeyDown={this.handleSearchInputKeyDown}\n />\n </div>\n\n {/* Selected items section */}\n {this.renderSelectedItemsList()}\n\n {/* Options list */}\n <ul\n class=\"pds-multiselect__listbox\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-label={this.label || 'Options'}\n id={`${this.componentId}-listbox`}\n ref={el => (this.listboxEl = el)}\n style={{ maxHeight: this.maxHeight }}\n onScroll={this.handleScroll}\n >\n {this.loading && (\n <li class=\"pds-multiselect__loading\" role=\"presentation\">\n {hasSlottedLoading ? (\n <slot name=\"loading\" />\n ) : (\n <pds-loader size=\"small\" />\n )}\n </li>\n )}\n\n {!this.loading && filteredOptions.length === 0 && (\n <li class=\"pds-multiselect__empty\" role=\"presentation\">\n {hasSlottedEmpty ? (\n <slot name=\"empty\" />\n ) : (\n <span>No options found</span>\n )}\n </li>\n )}\n\n {this.getGroupedRenderItems(filteredOptions).map((item, itemIndex) => {\n if (item.type === 'group') {\n return (\n <li\n key={`group-${itemIndex}`}\n role=\"group\"\n aria-label={item.group}\n class=\"pds-multiselect__group\"\n >\n <span class=\"pds-multiselect__group-header\" aria-hidden=\"true\">\n {item.group}\n </span>\n <ul class=\"pds-multiselect__group-list\" role=\"presentation\">\n {item.options.map(({ option, index }) => this.renderOption(option, index, valueArray))}\n </ul>\n </li>\n );\n }\n\n return this.renderOption(item.option, item.index, valueArray);\n })}\n\n {this.hasMore && !this.loading && (\n <li class=\"pds-multiselect__load-more\" role=\"presentation\">\n <pds-loader size=\"small\" />\n </li>\n )}\n </ul>\n </div>\n );\n }\n\n private handlePillRemove = (item: MultiselectOption) => () => {\n if (this.disabled) return;\n const optionId = String(item.id);\n this.value = this.value.filter(v => v !== optionId);\n this.syncSelectedItems();\n this.pdsMultiselectChange.emit({ values: this.value, items: this.selectedItems });\n // Clear first so screen readers re-announce even when the same item is removed twice\n this.removalAnnouncement = '';\n queueMicrotask(() => { this.removalAnnouncement = `${item.text} removed`; });\n this.isClosingViaSelection = true;\n if (this.isOpen) {\n this.searchInputEl?.focus();\n } else {\n this.triggerEl?.focus();\n }\n setTimeout(() => { this.isClosingViaSelection = false; }, 0);\n };\n\n private renderInlinePills() {\n const hasSelections = this.selectedItems.length > 0;\n if (!hasSelections) {\n return (\n <span class=\"pds-multiselect__trigger-text pds-multiselect__trigger-text--placeholder\">\n {this.placeholder || 'Select...'}\n </span>\n );\n }\n const variant = this.disabled ? 'text' : 'tag';\n const visibleItems = this.selectedItems.slice(0, Math.max(1, this.maxInlinePills));\n const overflowCount = this.selectedItems.length - visibleItems.length;\n return (\n <div\n class=\"pds-multiselect__pill-list pds-multiselect__pill-list--inline\"\n aria-label=\"Selected items\"\n >\n {visibleItems.map(item => (\n <pds-chip\n key={String(item.id)}\n component-id={`${this.componentId}-pill-${item.id}`}\n variant={variant}\n size=\"sm\"\n sentiment=\"neutral\"\n onPdsTagCloseClick={this.handlePillRemove(item)}\n >{item.text}</pds-chip>\n ))}\n {overflowCount > 0 && (\n <span class=\"pds-multiselect__pill-overflow\">+{overflowCount}</span>\n )}\n </div>\n );\n }\n\n private renderBelowPills() {\n if (this.selectedItems.length === 0) return null;\n const variant = this.disabled ? 'text' : 'tag';\n return (\n <div\n class=\"pds-multiselect__pill-list pds-multiselect__pill-list--below\"\n aria-label=\"Selected items\"\n >\n {this.selectedItems.map(item => (\n <pds-chip\n key={String(item.id)}\n component-id={`${this.componentId}-pill-${item.id}`}\n variant={variant}\n size=\"md\"\n sentiment=\"neutral\"\n onPdsTagCloseClick={this.handlePillRemove(item)}\n >{item.text}</pds-chip>\n ))}\n </div>\n );\n }\n\n private getTriggerText(): string {\n const count = this.selectedItems.length;\n if (count === 0 || (this.selectedDisplay === 'pill' && this.pillPosition === 'below')) {\n return this.placeholder || 'Select...';\n }\n return `${count} item${count === 1 ? '' : 's'}`;\n }\n\n render() {\n const hasSelections = this.selectedItems.length > 0;\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n >\n <div class=\"pds-multiselect\" onFocusout={this.handleContainerFocusOut}>\n {this.label && (\n <label\n id={`${this.componentId}-label`}\n htmlFor={this.componentId}\n class={{\n 'pds-multiselect__label': true,\n 'visually-hidden': this.hideLabel,\n }}\n >\n {this.label}\n </label>\n )}\n\n <div\n class=\"pds-multiselect__wrapper\"\n ref={el => (this.containerEl = el)}\n style={{ width: this.triggerWidth }}\n >\n {this.selectedDisplay === 'pill' && this.pillPosition === 'inline' ? (\n <div\n ref={el => (this.pillInlineTriggerEl = el || undefined)}\n part=\"trigger\"\n class={{\n 'pds-multiselect__trigger': true,\n 'pds-multiselect__trigger--open': this.isOpen,\n 'pds-multiselect__trigger--disabled': this.disabled,\n 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,\n 'pds-multiselect__trigger--has-value': hasSelections,\n 'pds-multiselect__trigger--pill-inline': true,\n }}\n onClick={this.handleTriggerClick}\n >\n {this.renderInlinePills()}\n <button\n ref={el => (this.triggerEl = el)}\n type=\"button\"\n id={this.componentId}\n part=\"pill-toggle\"\n class=\"pds-multiselect__pill-toggle\"\n disabled={this.disabled}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-labelledby={this.label ? `${this.componentId}-label` : undefined}\n aria-required={this.required ? 'true' : undefined}\n aria-describedby={assignDescription(\n this.componentId,\n this.invalid || !!this.errorMessage,\n this.errorMessage || this.helperMessage\n )}\n aria-invalid={this.invalid || !!this.errorMessage ? 'true' : undefined}\n onKeyDown={this.handleTriggerKeyDown}\n >\n <pds-icon class=\"pds-multiselect__icon\" icon={enlarge} />\n </button>\n </div>\n ) : (\n <button\n ref={el => (this.triggerEl = el)}\n type=\"button\"\n part=\"trigger\"\n class={{\n 'pds-multiselect__trigger': true,\n 'pds-multiselect__trigger--open': this.isOpen,\n 'pds-multiselect__trigger--disabled': this.disabled,\n 'pds-multiselect__trigger--invalid': this.invalid || !!this.errorMessage,\n 'pds-multiselect__trigger--has-value': hasSelections,\n }}\n id={this.componentId}\n disabled={this.disabled}\n aria-required={this.required ? 'true' : undefined}\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n aria-describedby={assignDescription(\n this.componentId,\n this.invalid || !!this.errorMessage,\n this.errorMessage || this.helperMessage\n )}\n aria-invalid={this.invalid || !!this.errorMessage ? 'true' : undefined}\n onClick={this.handleTriggerClick}\n onKeyDown={this.handleTriggerKeyDown}\n >\n <span class={{\n 'pds-multiselect__trigger-text': true,\n 'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),\n }}>\n {this.getTriggerText()}\n </span>\n <pds-icon class=\"pds-multiselect__icon\" icon={enlarge} />\n </button>\n )}\n\n {this.renderDropdown()}\n </div>\n\n {this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills()}\n\n <span\n class=\"visually-hidden\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {this.removalAnnouncement}\n </span>\n\n {this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (\n <p class=\"pds-multiselect__helper\" id={messageId(this.componentId, 'helper')}>\n {this.helperMessage}\n </p>\n )}\n\n {this.errorMessage && (\n <p class=\"pds-multiselect__error\" id={messageId(this.componentId, 'error')}>\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n )}\n\n {/* Hidden slot for static options */}\n <div style={{ display: 'none' }}>\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-popover.js","mappings":"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","names":["PdsPopover","__stencil_proxyCustomElement"],"sources":["src/components/pds-popover/pds-popover.scss?tag=pds-popover&encapsulation=shadow","src/components/pds-popover/pds-popover.tsx"],"sourcesContent":[":host {\n --sizing-max-width-default: 352px;\n\n display: inline-block;\n\n // Trigger wrapper for slotted content\n .pds-popover__trigger-wrapper {\n display: inline-block;\n }\n\n // Content slot wrapper is hidden (content is rendered in portal)\n .pds-popover__content-slot-wrapper {\n display: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State } from '@stencil/core';\nimport { PlacementType } from '@utils/types';\nimport { PdsPopoverEventDetail } from './popover-interface';\n\n/**\n * @slot trigger - The trigger element for the popover\n * @slot (default) - The content to display inside the popover\n */\n@Component({\n tag: 'pds-popover',\n styleUrl: 'pds-popover.scss',\n shadow: true,\n})\nexport class PdsPopover {\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsPopoverElement;\n\n /**\n * Determines when the popover is active\n * @defaultValue false\n */\n @State() active = false;\n\n /**\n * Tracks if the component is still mounted to prevent memory leaks\n */\n private isComponentMounted = true;\n\n /**\n * Reference to the trigger element\n */\n private triggerEl: HTMLElement | null = null;\n\n /**\n * Portal element rendered in document.body\n */\n private portalEl: HTMLElement | null = null;\n\n /**\n * Guard to prevent repositioning loops\n */\n private isRepositioning = false;\n\n /**\n * Debounce timers for performance optimization\n */\n private scrollDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n private resizeDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Track moved nodes and their placeholders for restoration\n */\n private movedNodes: Array<{ node: Node; placeholder: Comment }> = [];\n\n /**\n * Timestamp when popover was opened (for preventing immediate close)\n */\n private openTimestamp = 0;\n\n /**\n * Instance counter for unique IDs\n */\n private static instanceCounter = 0;\n\n /**\n * Bound handlers for cleanup\n */\n private boundClickOutsideHandler: (event: MouseEvent) => void;\n private boundEscapeKeyHandler: (event: KeyboardEvent) => void;\n private boundScrollHandler: () => void;\n private boundResizeHandler: () => void;\n\n /**\n * Emitted when the popover is opened\n */\n @Event() pdsPopoverOpen: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Emitted when the popover is closed\n */\n @Event() pdsPopoverClose: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.\n * @defaultValue \"show\"\n */\n @Prop() popoverTargetAction: 'show' | 'toggle' | 'hide' = 'show';\n\n /**\n * Determines the type of popover. Auto popovers can be \"light dismissed\" by clicking outside of the popover.\n * Manual popovers require the consumer to handle the visibility of the popover.\n */\n @Prop() popoverType: 'auto' | 'manual' = 'auto';\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Sets the maximum width of the popover content\n * @defaultValue 352\n */\n @Prop() maxWidth?: number = 352;\n\n /**\n * Determines the preferred position of the popover\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement: PlacementType = 'right';\n\n componentDidLoad() {\n // Bind event handlers for cleanup\n this.boundClickOutsideHandler = this.handleClickOutside.bind(this);\n this.boundEscapeKeyHandler = this.handleEscapeKey.bind(this);\n this.boundScrollHandler = this.handleScroll.bind(this);\n this.boundResizeHandler = this.handleResize.bind(this);\n\n // Create portal element\n this.createPortal();\n\n // Initialize trigger element by calling slot change handler\n // This is a fallback for environments where slot change might not fire reliably\n const triggerSlot = this.el.shadowRoot?.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement;\n if (triggerSlot && this.triggerEl == null) {\n const CustomEvent = (typeof window !== 'undefined' ? window.Event : global.Event) as any;\n const slotChangeEvent = new CustomEvent('slotchange');\n Object.defineProperty(slotChangeEvent, 'target', { value: triggerSlot, enumerable: true });\n this.handleTriggerSlotChange(slotChangeEvent);\n }\n }\n\n /**\n * Handles changes to the trigger slot\n */\n private handleTriggerSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n const assignedElements = slot.assignedElements();\n\n // Clean up previous trigger's event listener if it exists\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n if (assignedElements.length > 0) {\n // Use the first assigned element as the trigger\n this.triggerEl = assignedElements[0] as HTMLElement;\n\n // Set ARIA attributes to establish relationship between trigger and popover\n // This mirrors the native Popover API's accessibility behavior\n if (this.portalEl) {\n this.triggerEl.setAttribute('aria-expanded', String(this.active));\n this.triggerEl.setAttribute('aria-controls', this.portalEl.id);\n }\n\n // Attach click listener to handle popover visibility\n this.triggerEl.addEventListener('click', this.handleTriggerClick);\n } else {\n this.triggerEl = null;\n }\n };\n\n /**\n * Handles changes to the default slot (popover content)\n * When the popover is active, re-sync content with portal to handle dynamic updates\n */\n private handleContentSlotChange = () => {\n if (!this.active) return;\n this.updatePortalContent();\n };\n\n /**\n * Handles clicks on the trigger element\n */\n private handleTriggerClick = (event: Event) => {\n // Only prevent default if the trigger is not an anchor with href\n // This allows link navigation while still controlling popover visibility\n const composedPath = event.composedPath();\n const anchorWithHref = composedPath.find(\n (el) => el instanceof HTMLAnchorElement && (el as HTMLAnchorElement).href\n );\n\n if (!anchorWithHref) {\n event.preventDefault();\n }\n\n // Execute the appropriate action based on popoverTargetAction prop\n switch (this.popoverTargetAction) {\n case 'show':\n this.show();\n break;\n case 'hide':\n this.hide();\n break;\n case 'toggle':\n default:\n this.toggle();\n break;\n }\n };\n\n disconnectedCallback() {\n this.isComponentMounted = false;\n\n // Clean up trigger click event listener\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n // Clean up all event listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending debounce timers\n this.clearDebounceTimers();\n\n // Remove portal from DOM\n this.removePortal();\n }\n\n /**\n * Clears any pending debounce timers\n */\n private clearDebounceTimers() {\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n this.scrollDebounceTimer = null;\n }\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n this.resizeDebounceTimer = null;\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = 'pds-popover';\n\n // Apply all styles inline since portal is outside shadow DOM\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = 'var(--pine-z-index-raised)';\n this.portalEl.style.maxWidth = `${this.maxWidth}px`;\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n this.portalEl.style.backgroundColor = 'var(--pine-color-background-overlay)';\n this.portalEl.style.borderRadius = 'var(--pine-dimension-125)';\n this.portalEl.style.boxShadow = 'var(--pine-box-shadow-200)';\n this.portalEl.style.margin = 'var(--pine-dimension-none)';\n this.portalEl.style.padding = 'var(--pine-dimension-md)';\n\n // Generate unique ID\n if (!this.componentId) {\n const suffix = PdsPopover.instanceCounter++;\n this.portalEl.id = `pds-popover-portal-${suffix}`;\n } else {\n this.portalEl.id = `${this.componentId}-portal`;\n }\n\n // Add accessibility attributes for screen readers\n // Note: Native Popover API doesn't add a specific role, keeping semantic HTML\n this.portalEl.setAttribute('aria-modal', 'false'); // Not a modal, can interact with rest of page\n\n // Append to body\n document.body.appendChild(this.portalEl);\n\n // Add global focus styles to match Pine design system\n // This is done after appending to ensure it's part of the document and can access CSS variables\n this.addPortalFocusStyles();\n }\n\n /**\n * Adds Pine design system focus styles and dark mode border to the portal element\n * Uses CSS variables from Pine's design tokens\n */\n private addPortalFocusStyles() {\n if (!this.portalEl) return;\n\n const portalId = this.portalEl.id;\n\n // Check if style element already exists\n const existingStyle = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (existingStyle) return;\n\n // Create style element with Pine's focus ring styles and dark mode border\n const styleEl = document.createElement('style');\n styleEl.setAttribute('data-pds-popover-focus', portalId);\n styleEl.textContent = `\n #${portalId}:focus {\n outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;\n outline-offset: var(--pine-border-width, 1px);\n }\n #${portalId}:focus:not(:focus-visible) {\n outline: none;\n }\n [data-theme=\"dark\"] #${portalId} {\n border: var(--pine-border);\n }\n `;\n\n document.head.appendChild(styleEl);\n }\n\n /**\n * Moves slot content into portal (preserves event handlers and component instances)\n */\n private updatePortalContent() {\n if (!this.portalEl) return;\n\n const contentSlotWrapper = this.el.shadowRoot?.querySelector('.pds-popover__content-slot-wrapper');\n const defaultSlot = contentSlotWrapper?.querySelector('slot');\n\n if (defaultSlot) {\n const assignedNodes = defaultSlot.assignedNodes();\n\n // Move each node into portal and track with placeholder for restoration\n assignedNodes.forEach(node => {\n // Skip if node is already in the portal or already tracked\n const isAlreadyInPortal = node.parentNode === this.portalEl;\n const isAlreadyTracked = this.movedNodes.some(moved => moved.node === node);\n\n if (isAlreadyInPortal || isAlreadyTracked) {\n return;\n }\n\n // Create a placeholder comment to mark original position\n const placeholder = document.createComment('pds-popover-placeholder');\n\n // Insert placeholder before moving the node\n node.parentNode?.insertBefore(placeholder, node);\n\n // Move the actual node to portal (preserves all handlers and state)\n this.portalEl!.appendChild(node);\n\n // Track for restoration\n this.movedNodes.push({ node, placeholder });\n });\n }\n }\n\n /**\n * Restores moved nodes back to their original positions\n */\n private restorePortalContent() {\n // Restore each moved node to its original position\n this.movedNodes.forEach(({ node, placeholder }) => {\n if (placeholder.parentNode) {\n placeholder.parentNode.insertBefore(node, placeholder);\n placeholder.parentNode.removeChild(placeholder);\n }\n });\n\n // Clear tracking array\n this.movedNodes = [];\n }\n\n private removePortal() {\n if (this.portalEl) {\n // Remove the portal element from DOM\n if (this.portalEl.parentNode) {\n this.portalEl.parentNode.removeChild(this.portalEl);\n }\n\n // Remove the associated focus style element\n const portalId = this.portalEl.id;\n const styleEl = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (styleEl && styleEl.parentNode) {\n styleEl.parentNode.removeChild(styleEl);\n }\n }\n this.portalEl = null;\n }\n\n /**\n * Opens the popover programmatically\n */\n @Method()\n async show() {\n if (this.active || !this.portalEl) return;\n\n this.active = true;\n\n // Record open timestamp to prevent immediate close from opening click\n this.openTimestamp = Date.now();\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Update portal content with latest slot content\n this.updatePortalContent();\n\n // Show portal\n this.portalEl.style.display = 'block';\n this.portalEl.style.opacity = '1';\n this.portalEl.style.visibility = 'visible';\n\n // Position the popover\n requestAnimationFrame(() => {\n if (!this.isComponentMounted) return;\n this.handlePopoverPositioning();\n });\n\n // Add scroll and resize listeners for repositioning (always)\n this.addScrollAndResizeListeners();\n\n // Add document listeners for light dismiss and escape key (auto type only)\n if (this.popoverType === 'auto') {\n this.addLightDismissListeners();\n }\n\n // Emit open event\n this.pdsPopoverOpen.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover programmatically\n */\n @Method()\n async hide() {\n if (!this.active || !this.portalEl) return;\n\n this.active = false;\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n // Restore content back to original slot positions\n this.restorePortalContent();\n\n // Hide portal\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n\n // Return focus to trigger for keyboard accessibility\n // This mirrors native Popover API behavior on close\n this.returnFocusToTrigger();\n\n // Remove all listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending timers\n this.clearDebounceTimers();\n\n // Emit close event\n this.pdsPopoverClose.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Toggles the popover open/closed state programmatically\n */\n @Method()\n async toggle() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Adds light dismiss listeners (click outside and escape key)\n */\n private addLightDismissListeners() {\n // Add listeners immediately - handleClickOutside will check timestamp\n document.addEventListener('click', this.boundClickOutsideHandler, true);\n document.addEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Removes light dismiss listeners\n */\n private removeLightDismissListeners() {\n document.removeEventListener('click', this.boundClickOutsideHandler, true);\n document.removeEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Adds scroll and resize listeners for repositioning\n */\n private addScrollAndResizeListeners() {\n window.addEventListener('scroll', this.boundScrollHandler, true);\n window.addEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Removes scroll and resize listeners\n */\n private removeScrollAndResizeListeners() {\n window.removeEventListener('scroll', this.boundScrollHandler, true);\n window.removeEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Handles clicks outside the popover for light dismiss (auto type only)\n */\n private handleClickOutside(event: MouseEvent) {\n // Ignore events that occurred at or before the popover opened\n // This prevents the opening click from immediately closing the popover\n // Convert event.timeStamp (DOMHighResTimeStamp from performance.now()) to epoch time\n // by calculating: currentEpochTime - (currentPerfTime - eventPerfTime)\n const eventTime = event.timeStamp\n ? Date.now() - (performance.now() - event.timeStamp)\n : Date.now();\n\n if (eventTime <= this.openTimestamp) {\n return;\n }\n\n const target = event.target as Node;\n\n // Check if click is outside both the popover portal and the trigger\n const clickedInsidePopover = this.portalEl?.contains(target);\n const clickedInsideTrigger = this.triggerEl?.contains(target);\n\n if (!clickedInsidePopover && !clickedInsideTrigger) {\n this.hide();\n }\n }\n\n /**\n * Returns focus to the trigger element with visible focus indicator\n * This ensures focus rings/outlines are shown as they would be with keyboard navigation\n */\n private returnFocusToTrigger() {\n if (!this.triggerEl) return;\n\n // Focus immediately while still in keyboard event context\n // This ensures the browser treats it as keyboard-initiated and shows focus ring\n this.triggerEl.focus({ preventScroll: true });\n }\n\n /**\n * Handles escape key press to close the popover\n * Mirrors native Popover API: Escape closes and returns focus to trigger\n */\n private handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n // Prevent default Escape behavior and stop propagation\n // This mirrors native Popover API which handles Escape exclusively\n event.preventDefault();\n event.stopPropagation();\n\n // Close popover and return focus to trigger\n this.hide();\n }\n }\n\n /**\n * Handles scroll events to reposition the popover (debounced for performance)\n */\n private handleScroll() {\n if (!this.active) return;\n\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n }\n\n this.scrollDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.scrollDebounceTimer = null;\n }, 10); // 10ms debounce for smooth repositioning\n }\n\n /**\n * Handles resize events to reposition the popover (debounced for performance)\n */\n private handleResize() {\n if (!this.active) return;\n\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n }\n\n this.resizeDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.resizeDebounceTimer = null;\n }, 100); // 100ms debounce for resize\n }\n\n /**\n * Positions the popover relative to its trigger element\n */\n private handlePopoverPositioning() {\n // Prevent repositioning loops\n if (this.isRepositioning) {\n return;\n }\n\n this.isRepositioning = true;\n\n if (this.triggerEl == null || this.portalEl == null) {\n this.isRepositioning = false;\n return;\n }\n\n const triggerRect = this.triggerEl.getBoundingClientRect();\n const popoverRect = this.portalEl.getBoundingClientRect();\n\n // Safety check: ensure trigger has valid dimensions (is rendered and visible)\n if (triggerRect.width === 0 || triggerRect.height === 0) {\n this.isRepositioning = false;\n return;\n }\n\n let top = 0;\n let left = 0;\n const offset = 8;\n\n switch (this.placement) {\n case 'top':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'top-start':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left;\n break;\n case 'top-end':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'right':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.right + offset;\n break;\n case 'right-start':\n top = triggerRect.top;\n left = triggerRect.right + offset;\n break;\n case 'right-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.right + offset;\n break;\n case 'bottom':\n top = triggerRect.bottom + offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'bottom-start':\n top = triggerRect.bottom + offset;\n left = triggerRect.left;\n break;\n case 'bottom-end':\n top = triggerRect.bottom + offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'left':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-start':\n top = triggerRect.top;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n }\n\n this.portalEl.style.top = `${top}px`;\n this.portalEl.style.left = `${left}px`;\n\n // Reset the repositioning guard after a short delay\n setTimeout(() => {\n this.isRepositioning = false;\n }, 16); // ~1 frame at 60fps\n }\n\n render() {\n return (\n <Host id={this.componentId}>\n <span class=\"pds-popover__trigger-wrapper\">\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange}></slot>\n </span>\n\n <div class=\"pds-popover__content-slot-wrapper\">\n <slot onSlotchange={this.handleContentSlotChange}></slot>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-progress.js","mappings":";;AAAA,MAAM,cAAc,GAAG,2hDAA2hD;;MCOriDA,aAAW,iBAAAC,kBAAA,CAAA,MAAA,WAAA,SAAA,WAAA,CAAA;AALxB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAME;;;AAGE;AACM,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAkBxB;;;AAGE;AACM,QAAA,IAAO,CAAA,OAAA,GAAG,CAAC;AAEnB;;;AAGE;AACM,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK;AAqB5B;IAnBC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAA,EAChE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvB,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAC,qBAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EACzD,IAAI,CAAC,KAAK,CACL,EACR,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,GAAG,EAAC,KAAK,EACT,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,uBAAuB,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,EACxE,KAAK,EAAE,IAAI,CAAC,OAAO,GAEV,CACP,EACL,IAAI,CAAC,WAAW,IAAI,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EAAE,IAAI,CAAC,OAAO,EAAQ,GAAA,CAAA,CAC3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PdsProgress","__stencil_proxyCustomElement"],"sources":["src/components/pds-progress/pds-progress.scss?tag=pds-progress&encapsulation=shadow","src/components/pds-progress/pds-progress.tsx"],"sourcesContent":[":host {\n --color-progress-fill: var(--pine-color-primary);\n\n --sizing-progress-bar-width: 100%;\n\n align-items: center;\n display: flex;\n width: var(--sizing-progress-bar-width);\n}\n\n@keyframes progressBar {\n 0% {\n width: 0\n }\n\n 100% {\n width: var(--sizing-progress-bar-width);\n }\n}\n\n.pds-progress {\n align-items: center;\n background-color: var(--pine-color-background-muted);\n border-radius: var(--pine-dimension-2xs);\n display: flex;\n flex-direction: row;\n height: var(--pine-dimension-xs);\n position: relative;\n width: 100%;\n}\n\n:host(.is-animated) progress,\n:host(.is-animated) progress::-webkit-progress-bar {\n animation: progressBar 3s ease;\n animation-fill-mode: forwards;\n}\n\nprogress,\nprogress::-webkit-progress-bar {\n background-color: transparent;\n border: 0;\n height: var(--pine-dimension-xs);\n width: 100%;\n}\n\nprogress::-webkit-progress-value {\n background: var(--color-progress-fill, var(--pine-color-primary));\n border-radius: var(--pine-dimension-2xs);\n}\n\nprogress::-moz-progress-bar {\n background: var(--color-progress-fill, var(--pine-color-primary));\n border-radius: var(--pine-dimension-2xs);\n}\n\n.pds-progress__label {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.pds-progress__percentage {\n font-weight: var(--pine-font-weight-medium);\n margin-inline-start: calc(var(--pine-dimension-md) / 2);\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-progress',\n styleUrls: ['pds-progress.scss'],\n shadow: true,\n})\nexport class PdsProgress {\n /**\n * Determines whether or not progress is animated.\n * @defaultValue false\n */\n @Prop() animated = 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 * Sets the progress fill color. Accepts a color token or a [valid color value](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).\n * @defaultValue 'var(--pine-color-blue-300)'\n */\n @Prop() fillColor: string;\n\n /**\n * String used for label text. Label is visually hidden but required for better accessibility.\n */\n @Prop() label!: string;\n\n /**\n * Sets the progress fill pecentage and visually displayed when `show-percentage=true`.\n * @defaultValue 0\n */\n @Prop() percent = 0;\n\n /**\n * Determines whether or not the percent value should be displayed as text.\n * @defaultValue false\n */\n @Prop() showPercent = false;\n\n render() {\n return (\n <Host class={this.animated ? { 'is-animated': this.animated } : ''}>\n <div class=\"pds-progress\">\n <label class=\"pds-progress__label\" htmlFor={this.componentId}>\n {this.label}\n </label>\n <progress\n id={this.componentId}\n max=\"100\"\n style={this.fillColor ? { '--color-progress-fill': this.fillColor } : {}}\n value={this.percent}\n >\n </progress>\n </div>\n {this.showPercent && <div class=\"pds-progress__percentage\">{this.percent}%</div>}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-property.js","mappings":";;;;AAAA,MAAM,cAAc,GAAG,qFAAqF;;MCW/FA,aAAW,iBAAAC,kBAAA,CAAA,MAAA,WAAA,SAAA,WAAA,CAAA;AALxB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAWE;;AAEG;AACK,QAAA,IAAI,CAAA,IAAA,GAAW,MAAM;AAY9B;IAVC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAA,EACxB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,aAAA,EAAqB,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAA,EACpC,CAAU,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,0BAA0B,EAAa,aAAA,EAAA,MAAM,EAAY,CAAA,EACzF,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACA,CACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PdsProperty","__stencil_proxyCustomElement"],"sources":["src/components/pds-property/pds-property.scss?tag=pds-property&encapsulation=shadow","src/components/pds-property/pds-property.tsx"],"sourcesContent":[":host {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-medium);\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n/**\n * @slot (default) - The property text content.\n */\n\n@Component({\n tag: 'pds-property',\n styleUrls: ['pds-property.scss'],\n shadow: true,\n})\nexport class PdsProperty {\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * The name of the icon to display before the property text.\n */\n @Prop() icon: string = 'star';\n\n render() {\n return (\n <Host id={this.componentId}>\n <pds-box align-items=\"center\" gap=\"xs\">\n <pds-icon icon={this.icon} size=\"var(--pine-dimension-sm)\" aria-hidden=\"true\"></pds-icon>\n <slot />\n </pds-box>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-radio-group.js","mappings":";;;;;AAAA,MAAM,gBAAgB,GAAG,2wCAA2wC;;MCavxCA,eAAa,iBAAAC,kBAAA,CAAA,MAAA,aAAA,SAAA,WAAA,CAAA;AAL1B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAmBE;;;AAGG;AACK,QAAA,IAAS,CAAA,SAAA,GAAqB,QAAQ;AAY9C;;;AAGG;AACK,QAAA,IAAG,CAAA,GAAA,GAAW,IAAI;AAE1B;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAExB;;;AAGG;AACK,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK;AAavB;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAoLzB;IAzKC,iBAAiB,GAAA;QACf,IAAI,CAAC,iBAAiB,EAAE;;AAI1B,IAAA,iBAAiB,CAAC,KAAY,EAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;;AAG/C,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YAC3B;;;AAIF,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAwB;YACvE,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,oBAAA,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,YAAY,CAAC,KAAK;oBACzB,WAAW,EAAE,YAAY,CAAC,WAAW;AACtC,iBAAA,CAAC;;;;IAKA,iBAAiB,GAAA;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACpD,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACvB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;iBAChC;AACL,gBAAA,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;;AAE/B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC;;iBACjC;AACL,gBAAA,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC;;AAEnC,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;;iBAChC;AACL,gBAAA,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC;;AAElC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC;;iBACjC;AACL,gBAAA,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC;;AAErC,SAAC,CAAC;;IAGJ,iBAAiB,GAAA;;;AAGf,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW;;aAC3B;;YAEL,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACvD,kBAAE,MAAM,CAAC,UAAU;kBACjB,CAAG,EAAA,IAAI,CAAC,GAAG,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;AACjE,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAe,YAAA,EAAA,QAAQ,EAAE;;;IAI7C,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC;;QAE7F,IAAI,CAAC,iBAAiB,EAAE;;IAGlB,UAAU,GAAA;QAChB,MAAM,UAAU,GAAG,EAAE;AAErB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;;;;AAM/B,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;IAGrB,WAAW,GAAA;;AAEjB,QAAA,MAAM,MAAM,GAA2B;AACrC,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,GAAG,EAAE,2BAA2B;AAChC,YAAA,EAAE,EAAE,0BAA0B;AAC9B,YAAA,EAAE,EAAE,0BAA0B;AAC9B,YAAA,EAAE,EAAE,0BAA0B;AAC9B,YAAA,EAAE,EAAE,0BAA0B;AAC9B,YAAA,EAAE,EAAE,0BAA0B;AAC9B,YAAA,GAAG,EAAE,2BAA2B;SACjC;;AAGD,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;;;AAIzB,QAAA,OAAO,CAAwB,qBAAA,EAAA,IAAI,CAAC,GAAG,GAAG;;IAGpC,kBAAkB,GAAA;QACxB,MAAM,UAAU,GAAa,EAAE;AAE/B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;;AAGpD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;;AAGrD,QAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS;;IAGjE,MAAM,GAAA;AACJ,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AACnC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAEjD,QAAA,QACE,CAAC,CAAA,IAAI,EACH,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAC,OAAO,EACM,kBAAA,EAAA,eAAe,EACjC,KAAK,EAAE;AACL,gBAAA,uBAAuB,EAAE,QAAQ;AAClC,aAAA,EAAA,EAEA,IAAI,CAAC,UAAU,KACd,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,wBAAwB,EAChC,EAAA,IAAI,CAAC,UAAU,CACZ,CACP,EACD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE;AACV,gBAAA,yBAAyB,EAAE,IAAI;AAC/B,gBAAA,8BAA8B,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK;AACxD,gBAAA,iCAAiC,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ;aAC/D,EAAA,EACC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,YAAY,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA,CAAI,CAClD,EACL,IAAI,CAAC,aAAa,KACjB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,0BAA0B,EAChC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAErC,IAAI,CAAC,aAAa,CACf,CACP,EACA,IAAI,CAAC,YAAY,KAChB,4DACE,KAAK,EAAC,0DAA0D,EAChE,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,eAC3B,WAAW,EAAA,EAErB,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAU,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,OAAO,EAAG,CAAA,EACtC,IAAI,CAAC,YAAY,CACd,CACP,CACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PdsRadioGroup","__stencil_proxyCustomElement"],"sources":["src/components/pds-radio-group/pds-radio-group.scss?tag=pds-radio-group&encapsulation=scoped","src/components/pds-radio-group/pds-radio-group.tsx"],"sourcesContent":[":host {\n display: flex;\n flex-direction: column;\n gap: var(--pine-dimension-sm);\n}\n\n:host(.is-invalid) {\n .pds-radio-group__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\n.pds-radio-group__label {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-heading-6);\n font-weight: var(--pine-font-weight-medium);\n letter-spacing: var(--pine-letter-spacing-heading-6);\n}\n\n.pds-radio-group__radios {\n display: flex;\n gap: var(--pds-radio-group-gap, var(--pine-dimension-xs));\n}\n\n.pds-radio-group__radios--row {\n align-items: flex-start; // Align radios to the left\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.pds-radio-group__radios--column {\n flex-direction: column;\n}\n\n.pds-radio-group__message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body);\n width: 100%;\n}\n\n.pds-radio-group__message--error {\n display: flex;\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-050);\n }\n}\n\n","import { Component, Host, h, Prop, Element, Watch, Event, EventEmitter, Listen } from '@stencil/core';\nimport { messageId } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\nimport { RadioGroupChangeEventDetail } from './radio-group-interface';\n\n/**\n * @slot (default) - Child pds-radio components\n */\n@Component({\n tag: 'pds-radio-group',\n styleUrls: ['pds-radio-group.scss'],\n scoped: true,\n})\nexport class PdsRadioGroup {\n @Element() el: HTMLPdsRadioGroupElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Stable group ID generated once during component initialization.\n * Used to maintain DOM stability and accessibility relationships across re-renders.\n */\n private _groupId: string;\n\n /**\n * Layout direction for the radio group.\n * @defaultValue column\n */\n @Prop() direction: 'row' | 'column' = 'column';\n\n /**\n * Displays error message text describing an invalid state for the entire group.\n */\n @Prop() errorMessage: string;\n\n /**\n * Displays helper message text below the radio group.\n */\n @Prop() helperMessage: string;\n\n /**\n * Spacing between radio items. Accepts t-shirt sizes (none, xxs, xs, sm, md, lg, xl, xxl) or core spacing tokens (025, 050, 100, etc.).\n * @defaultValue xs\n */\n @Prop() gap: string = 'xs';\n\n /**\n * Determines whether or not the radio group is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Determines whether or not the radio group is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * String used for group label/heading.\n */\n @Prop() groupLabel: string;\n\n /**\n * String used for radio `name` attribute. Applied to all child radios.\n * Required for proper radio group behavior (mutual exclusivity and form submission).\n */\n @Prop() name: string;\n\n /**\n * Determines whether or not the radio group is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Emits when a radio in the group is selected, providing the selected value and component ID.\n */\n @Event() pdsRadioGroupChange: EventEmitter<RadioGroupChangeEventDetail>;\n\n @Watch('name')\n @Watch('disabled')\n @Watch('invalid')\n @Watch('required')\n handlePropsChange() {\n this.updateChildRadios();\n }\n\n @Listen('change')\n handleRadioChange(event: Event) {\n const target = event.target as HTMLInputElement;\n\n // Only handle events from radio inputs\n if (target.type !== 'radio') {\n return;\n }\n\n // Only emit if the radio is being checked (not unchecked)\n if (target.checked) {\n const radioElement = target.closest('pds-radio') as HTMLPdsRadioElement;\n if (radioElement) {\n this.pdsRadioGroupChange.emit({\n checked: true,\n value: radioElement.value,\n componentId: radioElement.componentId,\n });\n }\n }\n }\n\n private updateChildRadios() {\n const radios = this.el.querySelectorAll('pds-radio');\n radios.forEach((radio) => {\n if (this.name) {\n radio.setAttribute('name', this.name);\n } else {\n radio.removeAttribute('name');\n }\n if (this.disabled) {\n radio.setAttribute('disabled', 'true');\n } else {\n radio.removeAttribute('disabled');\n }\n if (this.invalid) {\n radio.setAttribute('invalid', 'true');\n } else {\n radio.removeAttribute('invalid');\n }\n if (this.required) {\n radio.setAttribute('required', 'true');\n } else {\n radio.removeAttribute('required');\n }\n });\n }\n\n componentWillLoad() {\n // Generate stable group ID once during initialization\n // This ensures DOM stability and accessibility relationships remain consistent across re-renders\n if (this.componentId) {\n this._groupId = this.componentId;\n } else {\n // Generate unique ID with fallback for test environments where crypto.randomUUID may not be available\n const uniqueId = typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID()\n : `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n this._groupId = `radio-group-${uniqueId}`;\n }\n }\n\n componentDidLoad() {\n if (!this.name) {\n console.warn('pds-radio-group: name prop is required for proper radio group functionality');\n }\n this.updateChildRadios();\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) {\n classNames.push('is-invalid');\n }\n // The host always uses flex-direction: column, so the label stays above.\n // The direction prop now only affects the .pds-radio-group__radios container.\n // No class needed on host for direction.\n\n return classNames.join(' ');\n }\n\n private getGapValue(): string {\n // Map t-shirt sizes to dimension tokens\n const gapMap: Record<string, string> = {\n none: '0',\n xxs: 'var(--pine-dimension-xxs)',\n xs: 'var(--pine-dimension-xs)',\n sm: 'var(--pine-dimension-sm)',\n md: 'var(--pine-dimension-md)',\n lg: 'var(--pine-dimension-lg)',\n xl: 'var(--pine-dimension-xl)',\n xxl: 'var(--pine-dimension-xxl)',\n };\n\n // If it's a t-shirt size, use the mapped value\n if (gapMap[this.gap]) {\n return gapMap[this.gap];\n }\n\n // Otherwise, assume it's a dimension token like \"100\", \"200\", etc.\n return `var(--pine-dimension-${this.gap})`;\n }\n\n private getAriaDescribedBy(): string | undefined {\n const messageIds: string[] = [];\n\n if (this.errorMessage) {\n messageIds.push(messageId(this._groupId, 'error'));\n }\n\n if (this.helperMessage) {\n messageIds.push(messageId(this._groupId, 'helper'));\n }\n\n return messageIds.length > 0 ? messageIds.join(' ') : undefined;\n }\n\n render() {\n const gapValue = this.getGapValue();\n const ariaDescribedBy = this.getAriaDescribedBy();\n\n return (\n <Host\n class={this.classNames()}\n id={this._groupId}\n role=\"group\"\n aria-describedby={ariaDescribedBy}\n style={{\n '--pds-radio-group-gap': gapValue,\n }}\n >\n {this.groupLabel && (\n <div class=\"pds-radio-group__label\">\n {this.groupLabel}\n </div>\n )}\n <div class={{\n 'pds-radio-group__radios': true,\n 'pds-radio-group__radios--row': this.direction === 'row',\n 'pds-radio-group__radios--column': this.direction === 'column',\n }}>\n <slot onSlotchange={() => this.updateChildRadios()} />\n </div>\n {this.helperMessage && (\n <div\n class=\"pds-radio-group__message\"\n id={messageId(this._groupId, 'helper')}\n >\n {this.helperMessage}\n </div>\n )}\n {this.errorMessage && (\n <div\n class=\"pds-radio-group__message pds-radio-group__message--error\"\n id={messageId(this._groupId, '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\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-radio.js","mappings":"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","names":["PdsRadio","__stencil_proxyCustomElement"],"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 position: relative;\n}\n\n:host(.is-invalid) {\n // Invalid state only affects error message styling, not the radio itself\n // This allows radio-group to handle error display without red radios\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\n:host(.has-border) {\n align-items: flex-start;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n flex-direction: column;\n padding: var(--pine-dimension-md);\n\n // On small screens, ensure full width when in a row layout\n @media (max-width: 767px) {\n box-sizing: border-box;\n flex: 1 1 100%;\n max-width: 100%;\n min-width: 0;\n }\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n font-weight: var(--pine-font-weight-semi-bold);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n // Disabled state for bordered radios\n &:has(input:disabled) {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n label {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n }\n }\n\n // Invalid state for bordered radios - no red styling, only error message\n &.is-invalid {\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\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 /* stylelint-disable-next-line selector-no-qualifying-type */\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 &: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 /* stylelint-disable-next-line pine-design-system/prefer-semantic-tokens */\n background: var(--pine-color-white);\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\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// Disabled label styling\nlabel:has(input:disabled) {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n}\n\n// Disabled message styling\n:host:has(input:disabled) .pds-radio__message {\n color: var(--pine-color-text-label-disabled);\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 flex-basis: 100%; // Ensure message wraps to new line in flex container\n font: var(--pine-typography-body);\n margin-inline-start: var(--pine-dimension-md);\n width: 100%;\n}\n\n.pds-radio__message--error {\n display: flex;\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n// Image-based radio styles - matches bordered layout\n:host(.has-image) {\n align-items: center;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n padding: var(--pine-dimension-md);\n\n // On small screens, ensure full width when in a row layout\n @media (max-width: 767px) {\n box-sizing: border-box;\n flex: 1 1 100%;\n max-width: 100%;\n min-width: 0;\n }\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n display: flex;\n font-weight: var(--pine-font-weight-semi-bold);\n gap: var(--pine-dimension-xs);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n .pds-radio__image-container {\n align-items: center;\n align-self: center;\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n cursor: pointer;\n display: flex;\n flex: none;\n grid-area: image;\n justify-content: center;\n overflow: hidden;\n position: relative;\n transition: all var(--pine-motion-duration-base) ease;\n\n &:hover {\n border-color: var(--pine-color-border-hover);\n }\n\n .pds-radio__image {\n height: 100%;\n object-fit: cover;\n width: 100%;\n }\n }\n\n .pds-radio__message {\n grid-area: message;\n margin-block-start: 0;\n margin-inline-start: 0;\n }\n\n // Disabled state\n &.is-disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n .pds-radio__image-container {\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n opacity: 0.5;\n\n &:hover {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n label {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n }\n\n .pds-radio__message {\n color: var(--pine-color-text-label-disabled);\n }\n }\n\n // Invalid state - no red styling, only error message\n &.is-invalid {\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State } from '@stencil/core';\nimport { assignDescription, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot image - Custom image content to display instead of the default radio input\n * @part image-container - The container for the image\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 private readonly _type = 'radio' as const;\n\n @Element() el: HTMLPdsRadioElement;\n\n @State() private _hasImage = false;\n\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 * Adds a border around the radio component for better visual separation.\n * @defaultValue false\n */\n @Prop() hasBorder = false;\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 /**\n * Emits a boolean indicating whether the radio 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 // If this radio is inside a pds-radio-group, don't emit the individual event\n // The group will handle emitting its own event\n if (this.el.closest('pds-radio-group')) {\n return;\n }\n\n this.pdsRadioChange.emit(isChecked);\n }\n\n private hasImageSlot(): boolean {\n const imageSlot = this.el.querySelector('[slot=\"image\"]');\n return !!imageSlot;\n }\n\n private hasImage(): boolean {\n return this._hasImage;\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 if (this.hasBorder) {\n classNames.push('has-border');\n }\n if (this.hasImage()) {\n classNames.push('has-image');\n }\n\n return classNames.join(' ');\n }\n\n componentWillLoad() {\n this._hasImage = this.hasImageSlot();\n }\n\n connectedCallback() {\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n render() {\n const renderLabelAndMessages = () => [\n <label htmlFor={this.componentId} key={`${this.componentId}-label`}>\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 class={this.hasImage() ? 'visually-hidden' : ''}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>,\n this.helperMessage && (\n <div\n key={`${this.componentId}-helper`}\n class={'pds-radio__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n ),\n this.errorMessage && (\n <div\n key={`${this.componentId}-error`}\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 ];\n\n return (\n <Host class={this.classNames()}>\n {this.hasImage() && (\n <div class=\"pds-radio__image-container\" part=\"image-container\">\n <slot name=\"image\" onSlotchange={() => (this._hasImage = this.hasImageSlot())} />\n </div>\n )}\n {this.hasImage() ? (\n <div class=\"pds-radio__content-wrapper\">\n {renderLabelAndMessages()}\n </div>\n ) : (\n renderLabelAndMessages()\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-row.js","mappings":"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","names":["PdsRow","__stencil_proxyCustomElement"],"sources":["src/components/pds-row/pds-row.scss?tag=pds-row","src/components/pds-row/pds-row.tsx"],"sourcesContent":[":host {\n --row-gap-y: var(--pine-dimension-125);\n --row-gap-x: var(--pine-dimension-125);\n\n display: block;\n margin-block-end: calc(var(--row-gap-y) * -1);\n margin-block-start: calc(var(--row-gap-y) * -1);\n margin-inline-end: calc(var(--row-gap-x) * -0.5);\n margin-inline-start: calc(var(--row-gap-x) * -0.5);\n}\n\n.pds-row {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n margin-block-end: calc(var(--row-gap-y) * -1);\n margin-block-start: calc(var(--row-gap-y) * -1);\n margin-inline-end: calc(var(--row-gap-x) * -1);\n margin-inline-start: calc(var(--row-gap-x) * -1);\n\n @layer layout {\n > * {\n padding-block-end: calc(var(--row-gap-y));\n padding-block-start: calc(var(--row-gap-y));\n padding-inline-end: calc(var(--row-gap-x));\n padding-inline-start: calc(var(--row-gap-x));\n }\n }\n}\n\n.pds-row--no-wrap {\n flex-wrap: nowrap;\n}\n\n.pds-row--border {\n border: var(--pine-border);\n}\n\n// Justify Content helpers\n.pds-justify-content-start {\n justify-content: start;\n}\n\n.pds-justify-content-center {\n justify-content: center;\n}\n\n.pds-justify-content-end {\n justify-content: end;\n}\n\n.pds-justify-content-space-between {\n justify-content: space-between;\n}\n\n.pds-justify-content-space-around {\n justify-content: space-around;\n}\n\n.pds-justify-content-space-evenly {\n justify-content: space-evenly;\n}\n\n// Align Items helpers\n.pds-align-items-start {\n align-items: start;\n}\n\n.pds-align-items-center {\n align-items: center;\n}\n\n.pds-align-items-end {\n align-items: end;\n}\n\n.pds-align-items-stretch {\n align-items: stretch;\n}\n\n.pds-align-items-baseline {\n align-items: baseline;\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\nimport { BoxSpacingType } from '../../utils/types';\n\n@Component({\n tag: 'pds-row',\n styleUrl: 'pds-row.scss',\n})\nexport class PdsRow {\n /**\n * Defines the vertical alignment of the row items.\n * @defaultValue start\n */\n @Prop() alignItems?: `start` | `center` | `end` | `baseline` | `stretch`;\n\n /**\n * If `true`, the row will have a border.\n */\n @Prop() border? = false;\n\n /**\n * Defines the spacing between the row items.\n */\n @Prop() colGap?: BoxSpacingType | null;\n\n /**\n * Defines the spacing between the row items vertically.\n */\n @Prop() colGapBlock?: BoxSpacingType | null;\n\n /**\n * Defines the spacing between the row items horizontally.\n */\n @Prop() colGapInline?: BoxSpacingType | null;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Defines the horizontal alignment of the row items.\n * @defaultValue start\n */\n @Prop() justifyContent?: `start` | `center` | `end` | `space-between` | `space-around`;\n\n /**\n * The minimum height of the row. Used in conjunction with alignment props\n */\n @Prop() minHeight?: string;\n\n /**\n * If `true`, the row items will not wrap to the next line if horizontal space is not available.\n */\n @Prop() noWrap? = false;\n\n private colGapMap: { [key in BoxSpacingType]: string } = {\n none: '0',\n xxs: '.25rem',\n xs: '.5rem',\n sm: '1rem',\n md: '1.5rem',\n lg: '2.25rem',\n xl: '3rem',\n xxl: '4rem',\n '025': 'var(--pine-dimension-025)',\n '050': 'var(--pine-dimension-050)',\n '100': 'var(--pine-dimension-100)',\n '125': 'var(--pine-dimension-125)',\n '150': 'var(--pine-dimension-150)',\n '200': 'var(--pine-dimension-200)',\n '250': 'var(--pine-dimension-250)',\n '300': 'var(--pine-dimension-300)',\n '350': 'var(--pine-dimension-350)',\n '400': 'var(--pine-dimension-400)',\n '450': 'var(--pine-dimension-450)',\n '500': 'var(--pine-dimension-500)',\n '550': 'var(--pine-dimension-550)',\n '600': 'var(--pine-dimension-600)',\n '650': 'var(--pine-dimension-650)',\n '700': 'var(--pine-dimension-700)',\n '750': 'var(--pine-dimension-750)',\n '800': 'var(--pine-dimension-800)'\n };\n\n render() {\n const rowClasses = `\n ${this.alignItems !== undefined && this.alignItems.trim() !== '' ? `pds-align-items-${this.alignItems}` : ''}\n ${this.border ? 'pds-row--border' : ''}\n ${this.justifyContent !== undefined && this.justifyContent.trim() !== '' ? `pds-justify-content-${this.justifyContent}` : ''}\n ${this.noWrap ? 'pds-row--no-wrap' : ''}\n `;\n\n const rowInlineStyles = {\n ...(this.colGap && {\n '--row-gap-x': this.colGap !== undefined && this.colGap.trim() !== '' ? this.colGapMap[this.colGap] : '',\n '--row-gap-y': this.colGap !== undefined && this.colGap.trim() !== '' ? this.colGapMap[this.colGap] : '',\n }),\n ...(this.colGapBlock && {\n '--row-gap-y': this.colGapBlock !== undefined && this.colGapBlock.trim() !== '' ? this.colGapMap[this.colGapBlock] : '',\n }),\n ...(this.colGapInline && {\n '--row-gap-x': this.colGapInline !== undefined && this.colGapInline.trim() !== '' ? this.colGapMap[this.colGapInline] : '',\n }),\n ...(this.minHeight && {\n 'min-height': this.minHeight,\n }),\n };\n\n return <Host class={`pds-row ${rowClasses}`} style={rowInlineStyles}></Host>;\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-select.js","mappings":"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","names":["PdsSelect","__stencil_proxyCustomElement"],"sources":["src/components/pds-select/pds-select.tokens.scss?tag=pds-select&encapsulation=shadow","src/global/styles/utils/label.scss?tag=pds-select&encapsulation=shadow","src/components/pds-select/pds-select.scss?tag=pds-select&encapsulation=shadow","src/components/pds-select/pds-select.tsx"],"sourcesContent":["@use '~@kajabi-ui/styles/dist/pine/components/pds-select/pds-select.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-select-background: var(--pine-color-background-container);\n --pds-select-border: var(--pine-border);\n --pds-select-border-radius: var(--pine-dimension-125);\n --pds-select-border-radius-start-end: var(--pine-dimension-125);\n --pds-select-border-radius-start-start: var(--pine-dimension-125);\n --pds-select-border-radius-end-end: var(--pine-dimension-125);\n --pds-select-border-radius-end-start: var(--pine-dimension-125);\n --pds-select-min-height: 36px;\n --box-shadow-focus: 0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring);\n --box-shadow-focus-error: 0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring-danger);\n\n .hidden,\n :host([hidden]) {\n display: none;\n }\n}\n\n.pds-select {\n color: var(--pine-color-text);\n display: grid;\n flex-direction: column;\n grid-template-areas:\n 'label label'\n 'field field'\n 'message message';\n grid-template-columns: 1fr minmax(2rem, min-content);\n grid-template-rows: min-content min-content min-content;\n position: relative;\n width: 100%;\n}\n\n.pds-select__label-wrapper {\n align-items: center;\n display: flex;\n grid-area: label;\n justify-content: space-between;\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n.pds-select__action {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-xs);\n margin-inline-start: var(--pine-dimension-xs);\n}\n\nlabel {\n margin-block-end: var(--pine-dimension-2xs);\n}\n\n// When label is inside wrapper, remove its margin\n.pds-select__label-wrapper label {\n margin-block-end: 0;\n}\n\nselect {\n appearance: none;\n background-color: var(--pds-select-background);\n border: var(--pds-select-border);\n border-end-end-radius: var(--pds-select-border-radius-end-end, var(--pds-select-border-radius));\n border-end-start-radius: var(--pds-select-border-radius-end-start, var(--pds-select-border-radius));\n border-start-end-radius: var(--pds-select-border-radius-start-end, var(--pds-select-border-radius));\n border-start-start-radius: var(--pds-select-border-radius-start-start, var(--pds-select-border-radius));\n color: var(--pine-color-text);\n font: var(--pine-typography-body);\n grid-area: field;\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--pds-select-min-height);\n padding: calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150);\n padding-inline-end: var(--pine-dimension-450);\n position: relative;\n\n &:hover {\n border-color: var(--pine-color-border-hover);\n cursor: pointer;\n }\n\n &:focus-visible {\n border-color: var(--pine-color-border-active);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &:disabled {\n background-color: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n &:has(~ .pds-select__message .pds-select__error-message) {\n background-color: var(--pine-select-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n :host-context([data-theme=\"dark\"]) & {\n background-color: var(--pine-color-red-950);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n:host(.is-disabled) {\n .pds-select__select-icon {\n color: var(--pine-color-text-disabled);\n }\n}\n\n:host(.is-invalid) {\n select {\n background-color: var(--pine-select-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n :host-context([data-theme=\"dark\"]) & {\n background-color: var(--pine-color-red-950);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n:host([highlight]:not(.is-disabled):not(.is-invalid)) {\n select {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-accent);\n color: var(--pine-color-text-accent);\n\n &:hover:not(:disabled) {\n border-color: var(--pine-color-accent-hover);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring);\n }\n }\n\n .pds-select__select-icon {\n color: var(--pine-color-text-accent);\n }\n}\n\n.pds-select__error-message,\n.pds-select__helper-message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-end: 0;\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n.pds-select__error-message {\n color: var(--pine-color-text-message-danger);\n display: flex;\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n.pds-select__message {\n grid-area: message;\n}\n\n.pds-select__select-icon {\n align-items: center;\n display: flex;\n grid-column: -1 / -2;\n grid-row: 2 / 3;\n height: var(--pds-select-min-height);\n pointer-events: none;\n position: relative;\n z-index: var(--pine-z-index-raised);\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","import { Component, Element, Event, EventEmitter, Host, h, Prop, Watch } from '@stencil/core';\nimport { isSpecTest, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger, enlarge } from '@pine-ds/icons/icons';\n\n/**\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-select',\n styleUrls: ['pds-select.tokens.scss', '../../global/styles/utils/label.scss', 'pds-select.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsSelect {\n\n private selectEl!: HTMLSelectElement;\n private slotContainer!: HTMLDivElement;\n private internals?: ElementInternals;\n private _type: 'select-one' | 'select-multiple' = 'select-one';\n\n @Element() el: HTMLPdsSelectElement;\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 * Indicates whether or not the select field 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 * Visually hides the label text for instances where only the select 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 * Displays helper message text below select.\n */\n @Prop() helperMessage: string;\n\n /**\n * Determines whether or not the select is invalid.\n */\n @Prop() invalid?: boolean;\n\n /**\n * Text to be displayed as the select label.\n */\n @Prop() label?: string;\n\n /**\n * Indicates whether multiple options can be selected.\n * @defaultValue false\n */\n @Prop() multiple = false;\n\n /**\n * Specifies the name. Submitted with the form name/value pair.\n */\n @Prop() name!: string;\n\n /**\n * Indicates whether or not the select field is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Applies highlight styling to the select field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\n\n /**\n * The value(s) of the selected option(s).\n *\n */\n @Prop({ mutable: true }) value?: string | string[];\n\n\n /**\n * Emitted when the select value changes.\n */\n @Event() pdsSelectChange: EventEmitter<InputEvent>;\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the select gains focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a key is pressed down in the select.\n */\n @Event() pdsKeyDown!: EventEmitter<KeyboardEvent>;\n\n @Watch('value')\n /**\n * Handles the change in the value of the select component.\n * This method is called whenever the value of the select component changes.\n * It updates the selected option accordingly.\n */\n valueChanged() {\n this.updateSelectedOption();\n this.updateFormValue();\n }\n\n @Watch('multiple')\n /**\n * Updates the type property when multiple changes to match native select behavior.\n */\n multipleChanged() {\n this.updateType();\n }\n\n private updateType() {\n this._type = this.multiple ? 'select-multiple' : 'select-one';\n }\n\n connectedCallback() {\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n componentWillLoad() {\n // Set initial type based on multiple prop\n this.updateType();\n this.updateSelectedOption();\n }\n\n componentDidLoad() {\n // Set initial form value\n this.updateFormValue();\n }\n\n /**\n * Updates the selected option in the select element based on the current value.\n *\n * This method iterates through all the options of the select element and sets the\n * 'selected' attribute on the option that matches the current value. If an option\n * does not match the current value, the 'selected' attribute is removed.\n *\n * @private\n * @returns {void}\n */\n private updateSelectedOption() {\n if (this.selectEl) {\n const options = this.selectEl.options;\n\n // Update the selected attribute for all options.\n Array.from(options).map((option: HTMLOptionElement) => {\n if (Array.isArray(this.value)) {\n option.selected = this.value.includes(option.value);\n } else {\n option.selected = this.value === option.value;\n }\n });\n };\n }\n\n /**\n * Emits an event on input change.\n */\n private onSelectUpdate = (e: Event) => {\n const target = e.target as HTMLSelectElement\n\n const values = Array.from(target.options)\n .filter((option) => ( option.selected))\n .map((option) => ( option.value));\n\n if (values.length === 1 && !this.multiple) {\n this.value = values[0];\n } else {\n this.value = values;\n }\n\n this.pdsSelectChange.emit(e as InputEvent);\n };\n\n private onBlur = (ev: FocusEvent) => {\n this.pdsBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.pdsFocus.emit(ev);\n };\n\n private onKeyDown = (ev: KeyboardEvent) => {\n this.pdsKeyDown.emit(ev);\n };\n\n /**\n * Handles the change event for the slot element.\n * This method is triggered when the slot content changes.\n * It updates the inner HTML of the select element by cloning and appending\n * the assigned <option> elements from the slot.\n */\n private handleSlotChange = () => {\n const slot = this.slotContainer.querySelector('slot') as HTMLSlotElement;\n\n this.selectEl.innerHTML = '';\n const assignedElements = slot.assignedElements({ flatten: true }) as (HTMLOptionElement | HTMLOptGroupElement)[];\n\n assignedElements.forEach((item) => {\n if ( ['OPTION', 'OPTGROUP'].includes(item.tagName)) {\n const clonedItem = item.cloneNode(true) as HTMLOptionElement | HTMLOptGroupElement;\n if (clonedItem.tagName === 'OPTION' && (clonedItem as HTMLOptionElement).value === this.value) {\n (clonedItem as HTMLOptionElement).selected = true;\n }\n this.selectEl.appendChild(clonedItem);\n }\n });\n\n this.updateSelectedOption();\n };\n\n private getHelperMessage() {\n return this.helperMessage && (\n <p class=\"pds-select__helper-message\" id={messageId(this.componentId, 'helper')}>\n {this.helperMessage}\n </p>\n );\n }\n\n private getErrorMessage() {\n return this.errorMessage && (\n <p class=\"pds-select__error-message\" id={messageId(this.componentId, 'error')} aria-live=\"assertive\">\n <pds-icon icon={danger} size=\"small\"></pds-icon>\n {this.errorMessage}\n </p>\n );\n }\n\n private renderMessages() {\n if (!this.helperMessage && !this.errorMessage) return null;\n\n return (\n <div class=\"pds-select__message\">\n {this.getHelperMessage()}\n {this.getErrorMessage()}\n </div>\n );\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) { classNames.push('is-invalid'); }\n if (this.disabled) { classNames.push('is-disabled'); }\n\n return classNames.join(' ');\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-select__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (isSpecTest()) return;\n\n if (this.internals && this.internals.setFormValue) {\n const value = this.value;\n\n // Handle multi-select arrays by converting to FormData or comma-separated string\n if (Array.isArray(value)) {\n if (value.length > 1) {\n // For multiple values, create FormData with multiple entries\n const formData = new FormData();\n value.forEach(val => formData.append(this.name || '', val));\n this.internals.setFormValue(formData);\n } else {\n // Single value in array, use the string value\n this.internals.setFormValue(value[0] || null);\n }\n } else {\n // Single string value\n this.internals.setFormValue(value || null);\n }\n\n // Set validity based on native select validation\n if (this.selectEl && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.selectEl.validity,\n this.selectEl.validationMessage,\n this.selectEl\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(s) from FormData using the select's name\n const values = state.getAll(this.name);\n if (values.length > 1) {\n // Multi-select: convert to string array\n this.value = values.filter(v => typeof v === 'string') as string[];\n } else if (values.length === 1 && typeof values[0] === 'string') {\n // Single select: use string value\n this.value = values[0];\n }\n }\n }\n\n render() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n\n return (\n <Host aria-disabled={this.disabled ? 'true' : null} class={this.classNames()} has-action={hasAction && !this.hideLabel ? 'true' : null}>\n <div class=\"pds-select\">\n {!this.hideLabel && (\n <div class=\"pds-select__label-wrapper\">\n <label htmlFor={this.componentId}>\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {hasAction && this.renderAction()}\n </div>\n )}\n <select\n aria-label={this.hideLabel ? this.label : undefined}\n autocomplete={this.autocomplete || undefined}\n class=\"pds-select__field\"\n disabled={this.disabled}\n id={this.componentId}\n multiple={this.multiple}\n name={this.name}\n onBlur={this.onBlur}\n onChange={this.onSelectUpdate}\n onFocus={this.onFocus}\n onKeyDown={this.onKeyDown}\n part=\"select\"\n required={this.required}\n ref={(el) => (this.selectEl = el as HTMLSelectElement)}\n ></select>\n <div aria-hidden=\"true\" class=\"hidden\" ref={(el) => (this.slotContainer = el)}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n {this.renderMessages()}\n {!this.multiple && <pds-icon class=\"pds-select__select-icon\" icon={enlarge} />}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"pds-sortable-item.js","mappings":";;;;AAAA,MAAM,kBAAkB,GAAG,y9EAAy9E;;MCWv+EA,iBAAe,iBAAAC,kBAAA,CAAA,MAAA,eAAA,SAAA,WAAA,CAAA;AAL5B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAQE;;;AAGG;AACK,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK;AAO7B;;;AAGG;AACsB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK;AA6B5C;IA3BC,mBAAmB,GAAA;;;QAGjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAA2B;AAE5E,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,KAAK,QAAQ,EAAE;AAChE,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;;IAI1B,MAAM,GAAA;QACJ,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAC,mBAAmB,EAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAA,EACjD,IAAI,CAAC,UAAU,KACd,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAA,EACpC,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAU,IAAI,EAAEC,MAAU,EAAA,CAAa,CACnC,CACP,EACD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACZ,IAAI,CAAC,aAAa,KACjB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,4BAA4B,EAAA,EACrC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,uBAAuB,EAAA,CAAG,CACjC,CACP,CACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PdsSortableItem","__stencil_proxyCustomElement","handleIcon"],"sources":["src/components/pds-sortable/pds-sortable-item/pds-sortable-item.scss?tag=pds-sortable-item&encapsulation=scoped","src/components/pds-sortable/pds-sortable-item/pds-sortable-item.tsx"],"sourcesContent":[":host(.pds-sortable-item) {\n align-items: center;\n display: flex;\n padding-block: var(--pine-dimension-xs);\n padding-inline: var(--pine-dimension-md);\n\n .pds-sortable-item__actions {\n margin-inline-start: auto;\n padding-inline-start: var(--pine-dimension-md);\n }\n\n .pds-sortable-item__handle {\n line-height: 1;\n margin-inline-end: var(--pine-dimension-md);\n }\n\n // styles when sortable is bordered\n .pds-sortable--bordered & {\n &:first-child {\n border-start-end-radius: calc(var(--pine-dimension-xs) * 1.25);\n border-start-start-radius: calc(var(--pine-dimension-xs) * 1.25);\n }\n\n &:last-child {\n border-end-end-radius: calc(var(--pine-dimension-xs) * 1.25);\n border-end-start-radius: calc(var(--pine-dimension-xs) * 1.25);\n }\n }\n\n // styles when sortable is divided\n .pds-sortable--divided & {\n border-block-end: var(--pine-border);\n\n &:last-child {\n border-block-end: 0;\n }\n }\n\n // cursor styles based on handle-type\n .pds-sortable--handle-type-row & {\n cursor: grab;\n }\n\n .pds-sortable--handle-type-handle & {\n .pds-sortable-item__handle {\n cursor: grab;\n }\n }\n\n // styles when sortable is disabled\n .pds-sortable--disabled & {\n cursor: not-allowed;\n opacity: 0.5;\n\n .pds-sortable-item__handle {\n cursor: not-allowed;\n }\n }\n}\n\n:host(.pds-sortable-item):hover {\n .pds-sortable--disabled & {\n background-color: transparent;\n }\n\n .pds-sortable:not(.pds-sortable--disabled) & {\n background-color: var(--pine-color-background-container-hover);\n\n pds-icon {\n color: var(--pine-color-info)\n }\n }\n}\n\n:host(.pds-sortable-item--drag) {\n background-color: var(--pine-color-background-container);\n border-radius: 0;\n box-shadow: var(--pine-box-shadow-400);\n opacity: 1;\n}\n\n:host(.pds-sortable-item--ghost) {\n background-color: var(--pine-color-background-container-hover);\n border-radius: 0;\n}\n","import { Component, Element, Host, h, Prop } from '@stencil/core';\n\nimport { handle as handleIcon } from '@pine-ds/icons/icons';\n/**\n * @slot sortable-item-actions - Content is placed within the `pds-sortable-item__actions` element as children. This slot is only rendered if `actions` is set to `true`.\n */\n@Component({\n tag: 'pds-sortable-item',\n styleUrl: 'pds-sortable-item.scss',\n scoped: true,\n})\nexport class PdsSortableItem {\n @Element() el: HTMLPdsSortableItemElement;\n sortableRef: HTMLPdsSortableElement;\n /**\n * Determines whether `sortable-item-actions` slot should be enabled.\n * @defaultValue false\n */\n @Prop() enableActions = false;\n\n /**\n * A unique identifier used for the sortable item `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether `sortable-item` should have a handle.\n * @defaultValue false\n */\n @Prop({ mutable: true }) showHandle = false;\n\n componentWillRender() {\n // When the parent sortable has a type of 'handle', the sortable items\n // will automatically set showHandle to 'true'.\n this.sortableRef = this.el.closest('pds-sortable') as HTMLPdsSortableElement;\n\n if (this.sortableRef && this.sortableRef.handleType === 'handle') {\n this.showHandle = true;\n }\n }\n\n render() {\n return (\n <Host class=\"pds-sortable-item\" id={this.componentId}>\n {this.showHandle && (\n <div class=\"pds-sortable-item__handle\">\n <pds-icon icon={handleIcon}></pds-icon>\n </div>\n )}\n <slot></slot>\n {this.enableActions && (\n <div class=\"pds-sortable-item__actions\">\n <slot name=\"sortable-item-actions\" />\n </div>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|