@pine-ds/core 4.4.4 → 4.6.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 -1
- package/components/index.js +1 -1
- package/components/mock-pds-modal.js +1 -1
- package/components/pds-combobox.js +1 -1
- package/components/pds-container.js +1 -1
- package/components/pds-copytext.js +1 -1
- package/components/pds-datepicker.js +1 -1
- package/components/pds-divider.js +1 -1
- package/components/pds-drawer-content.js +1 -1
- package/components/pds-drawer-footer.js +1 -1
- package/components/pds-drawer-header.js +1 -1
- package/components/pds-drawer.js +1 -1
- package/components/pds-dropdown-menu-item.js +1 -1
- package/components/pds-dropdown-menu-separator.js +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-filter.js +1 -1
- package/components/pds-filters.js +1 -1
- package/components/pds-icon2.js +1 -1
- package/components/pds-image.js +1 -1
- package/components/pds-input2.js +1 -1
- package/components/pds-link2.js +1 -1
- package/components/pds-loader2.js +1 -1
- package/components/pds-modal-content.js +1 -1
- package/components/pds-modal-footer.js +1 -1
- package/components/pds-modal-header.js +1 -1
- package/components/pds-modal2.js +1 -1
- package/components/pds-multiselect.js +1 -1
- package/components/pds-popover.js +1 -1
- package/components/pds-progress.js +1 -1
- package/components/pds-property.js +1 -1
- package/components/pds-radio-group.js +1 -1
- package/components/pds-radio.js +1 -1
- package/components/pds-row.js +1 -1
- package/components/pds-select.js +1 -1
- package/components/pds-sortable-item.js +1 -1
- package/components/pds-sortable.js +1 -1
- package/components/pds-switch.js +1 -1
- package/components/pds-tab.js +1 -1
- package/components/pds-table-body.js +1 -1
- package/components/pds-table-cell2.js +1 -1
- package/components/pds-table-head-cell2.js +1 -1
- package/components/pds-table-head.js +1 -1
- package/components/pds-table-row.js +1 -1
- package/components/pds-tabpanel.js +1 -1
- package/components/pds-tabs.js +1 -1
- package/components/pds-text2.js +1 -1
- package/components/pds-textarea.js +1 -1
- package/components/pds-toast.js +1 -1
- package/components/pds-tooltip.js +1 -1
- package/dist/cjs/{attributes-DrQqSEv4.js → attributes-BJ7KBHql.js} +22 -25
- package/dist/cjs/{index-D-QQKB0y.js → index-5Azb8EQG.js} +1 -1
- package/dist/cjs/{index-D8Gl0bIB.js → index-jl_Q819j.js} +10 -1
- package/dist/cjs/index.cjs.js +3 -0
- package/dist/cjs/keep-hydrated-CiXgkEYd.js +196 -0
- package/dist/cjs/loader.cjs.js +3 -2
- package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -2
- package/dist/cjs/pds-accordion.cjs.entry.js +3 -2
- package/dist/cjs/pds-alert.cjs.entry.js +2 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +3 -2
- package/dist/cjs/pds-box.cjs.entry.js +3 -2
- package/dist/cjs/pds-button.cjs.entry.js +3 -2
- package/dist/cjs/pds-checkbox.cjs.entry.js +4 -3
- package/dist/cjs/pds-chip.cjs.entry.js +4 -3
- package/dist/cjs/pds-combobox.cjs.entry.js +156 -26
- package/dist/cjs/pds-container.cjs.entry.js +3 -2
- package/dist/cjs/pds-copytext.cjs.entry.js +5 -4
- package/dist/cjs/pds-datepicker.cjs.entry.js +6 -5
- package/dist/cjs/pds-divider.cjs.entry.js +3 -2
- package/dist/cjs/pds-drawer-content.cjs.entry.js +3 -2
- package/dist/cjs/pds-drawer-footer.cjs.entry.js +3 -2
- package/dist/cjs/pds-drawer-header.cjs.entry.js +3 -2
- package/dist/cjs/pds-drawer.cjs.entry.js +4 -3
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +3 -2
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -2
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +16 -7
- package/dist/cjs/pds-filter.cjs.entry.js +4 -3
- package/dist/cjs/pds-filters.cjs.entry.js +3 -2
- package/dist/cjs/pds-icon.cjs.entry.js +27 -3
- package/dist/cjs/pds-image.cjs.entry.js +4 -3
- package/dist/cjs/pds-input.cjs.entry.js +6 -5
- package/dist/cjs/pds-link.cjs.entry.js +5 -4
- package/dist/cjs/pds-loader.cjs.entry.js +4 -3
- package/dist/cjs/pds-modal-content.cjs.entry.js +4 -3
- package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -2
- package/dist/cjs/pds-modal-header.cjs.entry.js +3 -2
- package/dist/cjs/pds-modal.cjs.entry.js +5 -4
- package/dist/cjs/pds-multiselect.cjs.entry.js +6 -5
- package/dist/cjs/pds-popover.cjs.entry.js +58 -11
- package/dist/cjs/pds-progress.cjs.entry.js +4 -3
- package/dist/cjs/pds-property.cjs.entry.js +3 -2
- package/dist/cjs/pds-radio-group.cjs.entry.js +6 -5
- package/dist/cjs/pds-radio.cjs.entry.js +7 -6
- package/dist/cjs/pds-row.cjs.entry.js +4 -3
- package/dist/cjs/pds-select.cjs.entry.js +5 -4
- package/dist/cjs/pds-sortable-item.cjs.entry.js +5 -4
- package/dist/cjs/pds-sortable.cjs.entry.js +4 -3
- package/dist/cjs/pds-switch.cjs.entry.js +7 -6
- package/dist/cjs/pds-tab.cjs.entry.js +13 -1
- package/dist/cjs/pds-table-body.cjs.entry.js +3 -2
- package/dist/cjs/pds-table-cell.cjs.entry.js +4 -3
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +5 -4
- package/dist/cjs/pds-table-head.cjs.entry.js +3 -2
- package/dist/cjs/pds-table-row.cjs.entry.js +3 -2
- package/dist/cjs/pds-table.cjs.entry.js +2 -1
- package/dist/cjs/pds-tabpanel.cjs.entry.js +15 -2
- package/dist/cjs/pds-tabs.cjs.entry.js +111 -6
- package/dist/cjs/pds-text.cjs.entry.js +3 -2
- package/dist/cjs/pds-textarea.cjs.entry.js +8 -7
- package/dist/cjs/pds-toast.cjs.entry.js +5 -4
- package/dist/cjs/pds-tooltip.cjs.entry.js +4 -3
- package/dist/cjs/pine-core.cjs.js +3 -2
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/pds-combobox/grouped-options-panel.js +21 -3
- package/dist/collection/components/pds-combobox/pds-combobox.css +42 -13
- package/dist/collection/components/pds-combobox/pds-combobox.js +135 -22
- package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +45 -0
- package/dist/collection/components/pds-container/pds-container.js +1 -1
- package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
- package/dist/collection/components/pds-datepicker/pds-datepicker.css +4 -2
- package/dist/collection/components/pds-datepicker/pds-datepicker.js +2 -2
- package/dist/collection/components/pds-divider/pds-divider.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer.js +2 -2
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +19 -5
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +16 -5
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
- package/dist/collection/components/pds-filters/pds-filters.js +1 -1
- package/dist/collection/components/pds-image/pds-image.js +2 -2
- package/dist/collection/components/pds-input/pds-input.js +2 -2
- package/dist/collection/components/pds-link/pds-link.js +2 -2
- package/dist/collection/components/pds-loader/pds-loader.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
- package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal.js +3 -3
- package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +3 -3
- package/dist/collection/components/pds-popover/pds-popover.js +15 -9
- package/dist/collection/components/pds-progress/pds-progress.js +1 -1
- package/dist/collection/components/pds-property/pds-property.js +1 -1
- package/dist/collection/components/pds-radio/pds-radio.js +3 -3
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
- package/dist/collection/components/pds-row/pds-row.js +1 -1
- package/dist/collection/components/pds-select/pds-select.js +1 -1
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
- package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
- package/dist/collection/components/pds-switch/pds-switch.js +3 -3
- package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
- package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
- package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +11 -0
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +13 -1
- package/dist/collection/components/pds-tabs/pds-tabs.js +111 -7
- package/dist/collection/components/pds-text/pds-text.js +1 -1
- package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
- package/dist/collection/components/pds-toast/pds-toast.js +3 -3
- package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
- package/dist/collection/global/pine-global.js +6 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/attributes.js +20 -24
- package/dist/collection/utils/css.js +41 -0
- package/dist/collection/utils/keep-hydrated.js +188 -0
- package/dist/docs.json +15 -6
- package/dist/esm/{attributes-myrJDwbR.js → attributes-WXw_I_uJ.js} +21 -24
- package/dist/esm/{index-DxI-61GK.js → index-BJXk71tO.js} +1 -1
- package/dist/esm/{index-bLhIfh0N.js → index-Cw9J31qd.js} +10 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/keep-hydrated-BLG6RDBt.js +190 -0
- package/dist/esm/loader.js +4 -3
- package/dist/esm/mock-pds-modal.entry.js +3 -2
- package/dist/esm/pds-accordion.entry.js +3 -2
- package/dist/esm/pds-alert.entry.js +2 -1
- package/dist/esm/pds-avatar.entry.js +3 -2
- package/dist/esm/pds-box.entry.js +3 -2
- package/dist/esm/pds-button.entry.js +3 -2
- package/dist/esm/pds-checkbox.entry.js +4 -3
- package/dist/esm/pds-chip.entry.js +4 -3
- package/dist/esm/pds-combobox.entry.js +156 -26
- package/dist/esm/pds-container.entry.js +3 -2
- package/dist/esm/pds-copytext.entry.js +5 -4
- package/dist/esm/pds-datepicker.entry.js +6 -5
- package/dist/esm/pds-divider.entry.js +3 -2
- package/dist/esm/pds-drawer-content.entry.js +3 -2
- package/dist/esm/pds-drawer-footer.entry.js +3 -2
- package/dist/esm/pds-drawer-header.entry.js +3 -2
- package/dist/esm/pds-drawer.entry.js +4 -3
- package/dist/esm/pds-dropdown-menu-item.entry.js +3 -2
- package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -2
- package/dist/esm/pds-dropdown-menu.entry.js +16 -7
- package/dist/esm/pds-filter.entry.js +4 -3
- package/dist/esm/pds-filters.entry.js +3 -2
- package/dist/esm/pds-icon.entry.js +27 -3
- package/dist/esm/pds-image.entry.js +4 -3
- package/dist/esm/pds-input.entry.js +6 -5
- package/dist/esm/pds-link.entry.js +5 -4
- package/dist/esm/pds-loader.entry.js +4 -3
- package/dist/esm/pds-modal-content.entry.js +4 -3
- package/dist/esm/pds-modal-footer.entry.js +3 -2
- package/dist/esm/pds-modal-header.entry.js +3 -2
- package/dist/esm/pds-modal.entry.js +5 -4
- package/dist/esm/pds-multiselect.entry.js +6 -5
- package/dist/esm/pds-popover.entry.js +58 -11
- package/dist/esm/pds-progress.entry.js +4 -3
- package/dist/esm/pds-property.entry.js +3 -2
- package/dist/esm/pds-radio-group.entry.js +6 -5
- package/dist/esm/pds-radio.entry.js +7 -6
- package/dist/esm/pds-row.entry.js +4 -3
- package/dist/esm/pds-select.entry.js +5 -4
- package/dist/esm/pds-sortable-item.entry.js +5 -4
- package/dist/esm/pds-sortable.entry.js +4 -3
- package/dist/esm/pds-switch.entry.js +7 -6
- package/dist/esm/pds-tab.entry.js +13 -1
- package/dist/esm/pds-table-body.entry.js +3 -2
- package/dist/esm/pds-table-cell.entry.js +4 -3
- package/dist/esm/pds-table-head-cell.entry.js +5 -4
- package/dist/esm/pds-table-head.entry.js +3 -2
- package/dist/esm/pds-table-row.entry.js +3 -2
- package/dist/esm/pds-table.entry.js +2 -1
- package/dist/esm/pds-tabpanel.entry.js +15 -2
- package/dist/esm/pds-tabs.entry.js +111 -6
- package/dist/esm/pds-text.entry.js +3 -2
- package/dist/esm/pds-textarea.entry.js +8 -7
- package/dist/esm/pds-toast.entry.js +5 -4
- package/dist/esm/pds-tooltip.entry.js +4 -3
- package/dist/esm/pine-core.js +4 -3
- package/dist/esm-es5/attributes-WXw_I_uJ.js +1 -0
- package/dist/esm-es5/{index-bLhIfh0N.js → index-Cw9J31qd.js} +2 -2
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/keep-hydrated-BLG6RDBt.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-alert.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-box.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js +1 -1
- package/dist/esm-es5/pds-chip.entry.js +1 -1
- package/dist/esm-es5/pds-combobox.entry.js +2 -2
- package/dist/esm-es5/pds-container.entry.js +1 -1
- package/dist/esm-es5/pds-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-datepicker.entry.js +1 -1
- package/dist/esm-es5/pds-divider.entry.js +1 -1
- package/dist/esm-es5/pds-drawer-content.entry.js +1 -1
- package/dist/esm-es5/pds-drawer-footer.entry.js +1 -1
- package/dist/esm-es5/pds-drawer-header.entry.js +1 -1
- package/dist/esm-es5/pds-drawer.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm-es5/pds-filter.entry.js +1 -1
- package/dist/esm-es5/pds-filters.entry.js +1 -1
- package/dist/esm-es5/pds-icon.entry.js +1 -1
- package/dist/esm-es5/pds-image.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js +1 -1
- package/dist/esm-es5/pds-link.entry.js +1 -1
- package/dist/esm-es5/pds-loader.entry.js +1 -1
- package/dist/esm-es5/pds-modal-content.entry.js +1 -1
- package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
- package/dist/esm-es5/pds-modal-header.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js +1 -1
- package/dist/esm-es5/pds-popover.entry.js +1 -1
- package/dist/esm-es5/pds-progress.entry.js +1 -1
- package/dist/esm-es5/pds-property.entry.js +1 -1
- package/dist/esm-es5/pds-radio-group.entry.js +1 -1
- package/dist/esm-es5/pds-radio.entry.js +1 -1
- package/dist/esm-es5/pds-row.entry.js +1 -1
- package/dist/esm-es5/pds-select.entry.js +1 -1
- package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
- package/dist/esm-es5/pds-sortable.entry.js +2 -2
- package/dist/esm-es5/pds-switch.entry.js +1 -1
- package/dist/esm-es5/pds-tab.entry.js +1 -1
- package/dist/esm-es5/pds-table-body.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-head.entry.js +1 -1
- package/dist/esm-es5/pds-table-row.entry.js +1 -1
- package/dist/esm-es5/pds-table.entry.js +1 -1
- package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
- package/dist/esm-es5/pds-tabs.entry.js +1 -1
- package/dist/esm-es5/pds-text.entry.js +1 -1
- package/dist/esm-es5/pds-textarea.entry.js +1 -1
- package/dist/esm-es5/pds-toast.entry.js +1 -1
- package/dist/esm-es5/pds-tooltip.entry.js +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/pine-core/index.esm.js +1 -1
- package/dist/pine-core/p-0092444c.system.entry.js +1 -0
- package/dist/pine-core/p-01aa382c.system.entry.js +1 -0
- package/dist/pine-core/p-01c9b8f3.entry.js +1 -0
- package/dist/pine-core/p-02088776.entry.js +1 -0
- package/dist/pine-core/p-049f126a.entry.js +1 -0
- package/dist/pine-core/p-080cb087.system.entry.js +1 -0
- package/dist/pine-core/p-0913f696.system.entry.js +1 -0
- package/dist/pine-core/p-0a84d220.entry.js +1 -0
- package/dist/pine-core/{p-f3188c57.system.entry.js → p-0b71ecb6.system.entry.js} +2 -2
- package/dist/pine-core/p-1437585e.system.entry.js +1 -0
- package/dist/pine-core/p-1ee86d87.system.entry.js +1 -0
- package/dist/pine-core/p-208c7dbf.entry.js +1 -0
- package/dist/pine-core/p-258770cf.system.entry.js +1 -0
- package/dist/pine-core/p-258d5e83.entry.js +1 -0
- package/dist/pine-core/p-26642718.entry.js +1 -0
- package/dist/pine-core/p-2ac2457b.system.entry.js +1 -0
- package/dist/pine-core/p-2cb5483a.system.entry.js +1 -0
- package/dist/pine-core/p-341c38f1.system.entry.js +1 -0
- package/dist/pine-core/p-3a959459.system.entry.js +1 -0
- package/dist/pine-core/p-3c27088f.system.entry.js +1 -0
- package/dist/pine-core/p-432d5ec7.entry.js +1 -0
- package/dist/pine-core/p-4849fda7.entry.js +1 -0
- package/dist/pine-core/p-4d03d1e2.system.entry.js +1 -0
- package/dist/pine-core/p-4de8f333.entry.js +1 -0
- package/dist/pine-core/p-4f94b4f1.system.entry.js +1 -0
- package/dist/pine-core/p-4fa63723.system.entry.js +1 -0
- package/dist/pine-core/p-4fd454f6.entry.js +1 -0
- package/dist/pine-core/p-5442d983.system.entry.js +1 -0
- package/dist/pine-core/p-550c2fd3.entry.js +1 -0
- package/dist/pine-core/p-55224683.entry.js +1 -0
- package/dist/pine-core/p-57a2f927.entry.js +1 -0
- package/dist/pine-core/p-5870b092.system.entry.js +1 -0
- package/dist/pine-core/p-5c90091e.system.entry.js +1 -0
- package/dist/pine-core/p-602c197f.entry.js +1 -0
- package/dist/pine-core/p-646afbca.system.entry.js +1 -0
- package/dist/pine-core/p-6bf853c9.entry.js +1 -0
- package/dist/pine-core/p-6d3610f9.entry.js +1 -0
- package/dist/pine-core/p-6eec23a7.system.entry.js +1 -0
- package/dist/pine-core/p-72865997.entry.js +1 -0
- package/dist/pine-core/p-73eb47fa.entry.js +1 -0
- package/dist/pine-core/p-75ee0403.entry.js +1 -0
- package/dist/pine-core/p-77395d62.system.entry.js +1 -0
- package/dist/pine-core/p-7a287635.system.entry.js +1 -0
- package/dist/pine-core/p-7a5b21d2.system.entry.js +1 -0
- package/dist/pine-core/p-7bf6563a.system.entry.js +1 -0
- package/dist/pine-core/p-7f367db4.system.entry.js +1 -0
- package/dist/pine-core/p-8191498f.system.entry.js +1 -0
- package/dist/pine-core/p-82cf4ec6.entry.js +1 -0
- package/dist/pine-core/p-84e9b7da.entry.js +1 -0
- package/dist/pine-core/p-86040cac.system.entry.js +1 -0
- package/dist/pine-core/p-875b0436.system.entry.js +1 -0
- package/dist/pine-core/p-8c8cc079.system.entry.js +1 -0
- package/dist/pine-core/p-8cc302aa.system.entry.js +1 -0
- package/dist/pine-core/p-8d292b48.entry.js +1 -0
- package/dist/pine-core/p-8f531063.entry.js +1 -0
- package/dist/pine-core/p-9109b90a.entry.js +1 -0
- package/dist/pine-core/p-94593f20.system.entry.js +1 -0
- package/dist/pine-core/p-9880d251.system.entry.js +1 -0
- package/dist/pine-core/p-99459e27.entry.js +1 -0
- package/dist/pine-core/p-9a0083dd.system.entry.js +1 -0
- package/dist/pine-core/p-9ab95438.entry.js +1 -0
- package/dist/pine-core/{p-f83fe305.entry.js → p-9af131d6.system.entry.js} +1 -1
- package/dist/pine-core/p-9dcd2cdb.entry.js +1 -0
- package/dist/pine-core/p-9e0f920a.system.entry.js +1 -0
- package/dist/pine-core/p-BGLP3keB.js +1 -0
- package/dist/pine-core/p-BLG6RDBt.js +1 -0
- package/dist/pine-core/p-BR5nujVX.system.js +1 -0
- package/dist/pine-core/p-CGRdQc49.system.js +2 -0
- package/dist/pine-core/p-CmSJytt1.js +2 -0
- package/dist/pine-core/p-CuSNnuFu.system.js +1 -0
- package/dist/pine-core/p-Cy8cvR7I.system.js +1 -0
- package/dist/pine-core/p-XW4H0W6i.system.js +1 -0
- package/dist/pine-core/p-a0960b3d.system.entry.js +1 -0
- package/dist/pine-core/p-a1230a74.system.entry.js +1 -0
- package/dist/pine-core/p-a19cd59c.entry.js +1 -0
- package/dist/pine-core/p-a3735199.entry.js +1 -0
- package/dist/pine-core/p-a826f290.entry.js +1 -0
- package/dist/pine-core/p-a85a6ab9.system.entry.js +1 -0
- package/dist/pine-core/p-acce8eb2.entry.js +1 -0
- package/dist/pine-core/p-b1548a20.entry.js +1 -0
- package/dist/pine-core/p-b69f04b7.entry.js +1 -0
- package/dist/pine-core/p-b75b0d09.system.entry.js +1 -0
- package/dist/pine-core/p-b8e8a4ce.entry.js +1 -0
- package/dist/pine-core/{p-09d10e9e.entry.js → p-b914dde8.entry.js} +2 -2
- package/dist/pine-core/p-ba1f65c2.system.entry.js +1 -0
- package/dist/pine-core/p-bb68431a.entry.js +1 -0
- package/dist/pine-core/p-bd67156b.system.entry.js +1 -0
- package/dist/pine-core/p-beb23781.entry.js +1 -0
- package/dist/pine-core/p-bf30dec0.entry.js +1 -0
- package/dist/pine-core/p-bf7ee3b7.system.entry.js +1 -0
- package/dist/pine-core/p-c5c9ed36.system.entry.js +1 -0
- package/dist/pine-core/p-cb6a3e4c.system.entry.js +1 -0
- package/dist/pine-core/p-cde8eb81.entry.js +1 -0
- package/dist/pine-core/p-cf08a6dd.system.entry.js +1 -0
- package/dist/pine-core/p-cfd012d4.entry.js +1 -0
- package/dist/pine-core/p-d2c91e7a.entry.js +1 -0
- package/dist/pine-core/p-da103a54.system.entry.js +1 -0
- package/dist/pine-core/p-db17c626.system.entry.js +1 -0
- package/dist/pine-core/p-df539c42.system.entry.js +3 -0
- package/dist/pine-core/p-e0917a26.entry.js +1 -0
- package/dist/pine-core/p-e5420660.entry.js +1 -0
- package/dist/pine-core/p-e800a2b1.entry.js +1 -0
- package/dist/pine-core/p-e836a041.entry.js +1 -0
- package/dist/pine-core/p-e8cb76e8.entry.js +1 -0
- package/dist/pine-core/p-ea4d4741.system.entry.js +1 -0
- package/dist/pine-core/p-eb5465ce.entry.js +1 -0
- package/dist/pine-core/{p-48ab7da8.system.entry.js → p-ebd0bff2.entry.js} +1 -1
- package/dist/pine-core/p-ec5428fb.entry.js +1 -0
- package/dist/pine-core/p-ed4b979e.entry.js +1 -0
- package/dist/pine-core/p-f029b7da.system.entry.js +1 -0
- package/dist/pine-core/p-f0d24298.system.entry.js +1 -0
- package/dist/pine-core/p-f1702281.entry.js +1 -0
- package/dist/pine-core/p-f1f17940.entry.js +2 -0
- package/dist/pine-core/p-f25e4731.system.entry.js +1 -0
- package/dist/pine-core/p-f2c253d8.entry.js +1 -0
- package/dist/pine-core/p-f77905aa.system.entry.js +1 -0
- package/dist/pine-core/p-fc25b956.system.entry.js +1 -0
- package/dist/pine-core/p-ff3de72e.entry.js +1 -0
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/pine-core/pine-core.js +1 -1
- package/dist/types/components/pds-combobox/combobox-interface.d.ts +8 -1
- package/dist/types/components/pds-combobox/grouped-options-panel.d.ts +7 -1
- package/dist/types/components/pds-combobox/pds-combobox.d.ts +31 -0
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +4 -0
- package/dist/types/components/pds-tabs/pds-tab/pds-tab.d.ts +3 -0
- package/dist/types/components/pds-tabs/pds-tabpanel/pds-tabpanel.d.ts +3 -0
- package/dist/types/components/pds-tabs/pds-tabs.d.ts +14 -2
- package/dist/types/components.d.ts +5 -5
- package/dist/types/global/pine-global.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/attributes.d.ts +2 -6
- package/dist/types/utils/css.d.ts +7 -0
- package/dist/types/utils/keep-hydrated.d.ts +56 -0
- package/dist/vscode.html-data.json +2 -2
- package/hydrate/index.js +673 -144
- package/hydrate/index.mjs +673 -144
- package/package.json +2 -2
- package/dist/esm-es5/attributes-myrJDwbR.js +0 -1
- package/dist/pine-core/p-085c92aa.system.entry.js +0 -1
- package/dist/pine-core/p-0bfe152a.entry.js +0 -1
- package/dist/pine-core/p-0ce3bcf2.system.entry.js +0 -1
- package/dist/pine-core/p-1dd395d8.system.entry.js +0 -1
- package/dist/pine-core/p-1feace6a.system.entry.js +0 -1
- package/dist/pine-core/p-2126b4e4.system.entry.js +0 -1
- package/dist/pine-core/p-21abd971.entry.js +0 -1
- package/dist/pine-core/p-2212224a.system.entry.js +0 -1
- package/dist/pine-core/p-23044953.system.entry.js +0 -1
- package/dist/pine-core/p-26d8c4f7.system.entry.js +0 -1
- package/dist/pine-core/p-2806fa55.system.entry.js +0 -1
- package/dist/pine-core/p-28abc253.system.entry.js +0 -1
- package/dist/pine-core/p-2dd3ab72.entry.js +0 -1
- package/dist/pine-core/p-30784d57.entry.js +0 -1
- package/dist/pine-core/p-3088cd66.entry.js +0 -1
- package/dist/pine-core/p-3add97f7.system.entry.js +0 -1
- package/dist/pine-core/p-3e829372.system.entry.js +0 -1
- package/dist/pine-core/p-40928521.system.entry.js +0 -1
- package/dist/pine-core/p-40ebfe59.system.entry.js +0 -1
- package/dist/pine-core/p-44cbdf94.system.entry.js +0 -1
- package/dist/pine-core/p-468f0dab.system.entry.js +0 -1
- package/dist/pine-core/p-4765f7f0.entry.js +0 -1
- package/dist/pine-core/p-478e69d1.entry.js +0 -1
- package/dist/pine-core/p-4af5f936.entry.js +0 -1
- package/dist/pine-core/p-4d3f5098.system.entry.js +0 -1
- package/dist/pine-core/p-5064f007.system.entry.js +0 -1
- package/dist/pine-core/p-5081a96f.entry.js +0 -1
- package/dist/pine-core/p-517e04f6.entry.js +0 -1
- package/dist/pine-core/p-51eb36f4.system.entry.js +0 -3
- package/dist/pine-core/p-5527e825.system.entry.js +0 -1
- package/dist/pine-core/p-563ba784.entry.js +0 -1
- package/dist/pine-core/p-5bf397ca.entry.js +0 -1
- package/dist/pine-core/p-5c7c2ffa.entry.js +0 -1
- package/dist/pine-core/p-5db91557.entry.js +0 -1
- package/dist/pine-core/p-60393d52.entry.js +0 -1
- package/dist/pine-core/p-60a15bf7.system.entry.js +0 -1
- package/dist/pine-core/p-60e687ac.entry.js +0 -1
- package/dist/pine-core/p-61ae5a4b.system.entry.js +0 -1
- package/dist/pine-core/p-62377463.system.entry.js +0 -1
- package/dist/pine-core/p-62974869.entry.js +0 -1
- package/dist/pine-core/p-63644dbd.entry.js +0 -1
- package/dist/pine-core/p-686b526d.entry.js +0 -1
- package/dist/pine-core/p-69f60432.system.entry.js +0 -1
- package/dist/pine-core/p-6d6079f5.entry.js +0 -1
- package/dist/pine-core/p-6eb2070a.entry.js +0 -1
- package/dist/pine-core/p-7386bbdf.system.entry.js +0 -1
- package/dist/pine-core/p-74b1b841.entry.js +0 -1
- package/dist/pine-core/p-74d93179.system.entry.js +0 -1
- package/dist/pine-core/p-7647b568.system.entry.js +0 -1
- package/dist/pine-core/p-7698fcfa.system.entry.js +0 -1
- package/dist/pine-core/p-778a0228.system.entry.js +0 -1
- package/dist/pine-core/p-77e12080.system.entry.js +0 -1
- package/dist/pine-core/p-7a9c687d.system.entry.js +0 -1
- package/dist/pine-core/p-7fbb7037.entry.js +0 -1
- package/dist/pine-core/p-85d77b55.entry.js +0 -1
- package/dist/pine-core/p-86978a51.entry.js +0 -1
- package/dist/pine-core/p-88728d46.system.entry.js +0 -1
- package/dist/pine-core/p-893b02b7.entry.js +0 -1
- package/dist/pine-core/p-8d8512ae.system.entry.js +0 -1
- package/dist/pine-core/p-93341083.system.entry.js +0 -1
- package/dist/pine-core/p-9452adc4.entry.js +0 -1
- package/dist/pine-core/p-95649e1c.entry.js +0 -1
- package/dist/pine-core/p-977db8b2.entry.js +0 -1
- package/dist/pine-core/p-97c04215.system.entry.js +0 -1
- package/dist/pine-core/p-9903eb37.system.entry.js +0 -1
- package/dist/pine-core/p-9b18314c.entry.js +0 -1
- package/dist/pine-core/p-9ca1b473.system.entry.js +0 -1
- package/dist/pine-core/p-BwmzR47K.system.js +0 -1
- package/dist/pine-core/p-CrXTJmBd.system.js +0 -2
- package/dist/pine-core/p-DO9XKAkv.system.js +0 -1
- package/dist/pine-core/p-G3CPPJEt.system.js +0 -1
- package/dist/pine-core/p-a0f8a61a.entry.js +0 -1
- package/dist/pine-core/p-a232dc19.entry.js +0 -1
- package/dist/pine-core/p-a44316ad.entry.js +0 -1
- package/dist/pine-core/p-a8884f2d.system.entry.js +0 -1
- package/dist/pine-core/p-a8f23db0.system.entry.js +0 -1
- package/dist/pine-core/p-a9ea3c9d.entry.js +0 -1
- package/dist/pine-core/p-ae125139.entry.js +0 -1
- package/dist/pine-core/p-af9bce53.entry.js +0 -1
- package/dist/pine-core/p-b15777a2.entry.js +0 -1
- package/dist/pine-core/p-b2901e60.system.entry.js +0 -1
- package/dist/pine-core/p-b82a0693.entry.js +0 -1
- package/dist/pine-core/p-b852c82b.system.entry.js +0 -1
- package/dist/pine-core/p-b979105e.entry.js +0 -1
- package/dist/pine-core/p-bLhIfh0N.js +0 -2
- package/dist/pine-core/p-bb9d158c.system.entry.js +0 -1
- package/dist/pine-core/p-bc7ba7d3.system.entry.js +0 -1
- package/dist/pine-core/p-bd1bdb07.system.entry.js +0 -1
- package/dist/pine-core/p-c497d6c6.entry.js +0 -1
- package/dist/pine-core/p-c971cdb3.entry.js +0 -1
- package/dist/pine-core/p-cbae27a4.system.entry.js +0 -1
- package/dist/pine-core/p-cdd21cbe.entry.js +0 -1
- package/dist/pine-core/p-ce74a47e.entry.js +0 -2
- package/dist/pine-core/p-cf4758a7.entry.js +0 -1
- package/dist/pine-core/p-cfc9d4a8.entry.js +0 -1
- package/dist/pine-core/p-d1b0b372.entry.js +0 -1
- package/dist/pine-core/p-d6002d5b.entry.js +0 -1
- package/dist/pine-core/p-d8a6298c.system.entry.js +0 -1
- package/dist/pine-core/p-d933227e.system.entry.js +0 -1
- package/dist/pine-core/p-d962fc84.entry.js +0 -1
- package/dist/pine-core/p-da7a7cca.entry.js +0 -1
- package/dist/pine-core/p-daaf653f.system.entry.js +0 -1
- package/dist/pine-core/p-dafff7dd.system.entry.js +0 -1
- package/dist/pine-core/p-ea9468fb.entry.js +0 -1
- package/dist/pine-core/p-ed22da0c.system.entry.js +0 -1
- package/dist/pine-core/p-f0632690.system.entry.js +0 -1
- package/dist/pine-core/p-f1c6b23a.entry.js +0 -1
- package/dist/pine-core/p-f279f435.system.entry.js +0 -1
- package/dist/pine-core/p-f33d6417.entry.js +0 -1
- package/dist/pine-core/p-f832dcd9.entry.js +0 -1
- package/dist/pine-core/p-fe09b6fb.system.entry.js +0 -1
- package/dist/pine-core/p-myrJDwbR.js +0 -1
- /package/dist/esm-es5/{index-DxI-61GK.js → index-BJXk71tO.js} +0 -0
- /package/dist/pine-core/{p-DxI-61GK.js → p-BJXk71tO.js} +0 -0
- /package/dist/pine-core/{p-CnO10OxH.system.js → p-n3_ytl_p.system.js} +0 -0
package/hydrate/index.js
CHANGED
|
@@ -134,6 +134,204 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
|
|
|
134
134
|
const NAMESPACE = 'pine-core';
|
|
135
135
|
const BUILD = /* pine-core */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", slotRelocation: true, state: true, updatable: true};
|
|
136
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Whether a class is one Stencil itself puts on a host: its default `hydratedFlag` (Pine doesn't
|
|
139
|
+
* change it), or a scoped component's own scope classes (`sc-pds-radio`, `sc-pds-radio-h`,
|
|
140
|
+
* `sc-pds-radio-s`), which its CSS needs. Only the host's own: another `sc-` class may be a
|
|
141
|
+
* consumer's (styled-components ids).
|
|
142
|
+
* @param el - Host element
|
|
143
|
+
* @param name - Class name
|
|
144
|
+
*/
|
|
145
|
+
const isStencilClass = (el, name) => {
|
|
146
|
+
const scope = `sc-${el.localName}`;
|
|
147
|
+
return name === 'hydrated' || name === scope || name === `${scope}-h` || name === `${scope}-s`;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* The class names in a rendered `class` value: a string, or Stencil's `{ name: boolean }` form.
|
|
151
|
+
*/
|
|
152
|
+
const classNamesOf = (classes) => typeof classes === 'string'
|
|
153
|
+
? classes.split(/\s+/).filter(Boolean)
|
|
154
|
+
: Object.keys(classes).filter((name) => classes[name]);
|
|
155
|
+
// Each restore that writes something counts. A real strip costs one, but a script that undoes the
|
|
156
|
+
// restore as soon as it lands (from a MutationObserver) keeps both going forever, all in
|
|
157
|
+
// microtasks, so the page never renders or takes input. More writes than this before the next task
|
|
158
|
+
// means that kind of fight. A script that undoes it from a timer or animation frame gets a fresh
|
|
159
|
+
// budget each task; the page stays responsive then, so that fight isn't capped.
|
|
160
|
+
const MAX_RESTORES_PER_TASK = 5;
|
|
161
|
+
// Callbacks waiting for the next task, all run by one message. A MessageChannel message isn't slowed
|
|
162
|
+
// down like a timer is in a background tab (or frozen by test fake timers); a timer is the fallback
|
|
163
|
+
// where it's missing. One message for all of them, so a morph that strips many hosts doesn't open a
|
|
164
|
+
// channel for each.
|
|
165
|
+
const nextTaskCallbacks = new Set();
|
|
166
|
+
const runNextTaskCallbacks = () => {
|
|
167
|
+
const callbacks = Array.from(nextTaskCallbacks);
|
|
168
|
+
nextTaskCallbacks.clear();
|
|
169
|
+
callbacks.forEach((callback) => callback());
|
|
170
|
+
};
|
|
171
|
+
const onNextTask = (callback) => {
|
|
172
|
+
nextTaskCallbacks.add(callback);
|
|
173
|
+
if (nextTaskCallbacks.size > 1)
|
|
174
|
+
return;
|
|
175
|
+
if (typeof MessageChannel === 'undefined') {
|
|
176
|
+
setTimeout(runNextTaskCallbacks);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const channel = new MessageChannel();
|
|
180
|
+
channel.port1.onmessage = () => {
|
|
181
|
+
channel.port1.close();
|
|
182
|
+
runNextTaskCallbacks();
|
|
183
|
+
};
|
|
184
|
+
channel.port2.postMessage(null);
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* The restore kind for a host's own classes, styles and attributes, shared by a component's own
|
|
188
|
+
* host restore and `keepPineHydrated`: one fight on a host's classes stops both, and warns once.
|
|
189
|
+
*/
|
|
190
|
+
const HOST_RESTORE = 'host';
|
|
191
|
+
/**
|
|
192
|
+
* Remembers the Stencil classes an element has had, and returns all of them. A restore can't read
|
|
193
|
+
* them from the latest mutation alone: after a script's last strip they're gone from its old value
|
|
194
|
+
* too, and the next change would restore nothing.
|
|
195
|
+
*/
|
|
196
|
+
const stencilClassesOf = (seen, el, oldValue) => {
|
|
197
|
+
[...classNamesOf(oldValue !== null && oldValue !== void 0 ? oldValue : ''), ...Array.from(el.classList)]
|
|
198
|
+
.filter((name) => isStencilClass(el, name))
|
|
199
|
+
.forEach((name) => seen.add(name));
|
|
200
|
+
return Array.from(seen);
|
|
201
|
+
};
|
|
202
|
+
// What each element has already been warned about, by kind of restore. A host with its own restore
|
|
203
|
+
// is also watched for its Stencil classes, so one fight on its classes stops both and needs one
|
|
204
|
+
// warning; a fight over a trigger's ARIA is a different kind, and warns on its own. On the global
|
|
205
|
+
// object, like `OBSERVER` below, so two copies of Pine on a page share it.
|
|
206
|
+
const WARNED = Symbol.for('@pine-ds/core/restoreWarnings');
|
|
207
|
+
const warnedKinds = () => {
|
|
208
|
+
var _a;
|
|
209
|
+
const store = globalThis;
|
|
210
|
+
return ((_a = store[WARNED]) !== null && _a !== void 0 ? _a : (store[WARNED] = new WeakMap()));
|
|
211
|
+
};
|
|
212
|
+
/** Whether `el` was already warned about for `kind`; records it if not. */
|
|
213
|
+
const alreadyWarned = (el, kind) => {
|
|
214
|
+
var _a;
|
|
215
|
+
const kinds = (_a = warnedKinds().get(el)) !== null && _a !== void 0 ? _a : new Set();
|
|
216
|
+
warnedKinds().set(el, kinds);
|
|
217
|
+
if (kinds.has(kind))
|
|
218
|
+
return true;
|
|
219
|
+
kinds.add(kind);
|
|
220
|
+
return false;
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* Wraps a restore callback, which returns whether it wrote anything, so that it writes at most
|
|
224
|
+
* `MAX_RESTORES_PER_TASK` times before the next task (until the message posted after its first write
|
|
225
|
+
* runs). Past that, another script is undoing every restore as soon as it lands, so it stops and
|
|
226
|
+
* lets that script win rather than hang the page. What that script left stays until something
|
|
227
|
+
* changes the element again: the count resets on the next task, so a later change is restored, but
|
|
228
|
+
* nothing is restored on its own. The first give-up warns, logging `el` so it can be found in
|
|
229
|
+
* devtools; later ones, and other restores of the same `kind` giving up on the same element, are
|
|
230
|
+
* silent.
|
|
231
|
+
* @param restore - Puts back what something removed; returns `true` if it wrote anything
|
|
232
|
+
* @param warning - What the console warning says was given up
|
|
233
|
+
* @param el - The element being restored, logged with the warning
|
|
234
|
+
* @param kind - What's being restored; one warning per element for each kind
|
|
235
|
+
*/
|
|
236
|
+
const limitRestores = (restore, warning, el, kind = warning) => {
|
|
237
|
+
let writes = 0;
|
|
238
|
+
let warned = false;
|
|
239
|
+
return (...args) => {
|
|
240
|
+
if (writes >= MAX_RESTORES_PER_TASK) {
|
|
241
|
+
if (!warned) {
|
|
242
|
+
warned = true;
|
|
243
|
+
if (el && alreadyWarned(el, kind))
|
|
244
|
+
return;
|
|
245
|
+
// The warning as an argument, not the format string: it carries the tag name, which the HTML
|
|
246
|
+
// parser lets contain `%`.
|
|
247
|
+
console.warn('%s', warning, el);
|
|
248
|
+
}
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
if (!restore(...args))
|
|
252
|
+
return;
|
|
253
|
+
if (writes === 0)
|
|
254
|
+
onNextTask(() => (writes = 0));
|
|
255
|
+
writes += 1;
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
// On the global object, not in this module, so a page with two copies of Pine (the CDN build and a
|
|
259
|
+
// bundled `@pine-ds/react`) still has one observer.
|
|
260
|
+
const OBSERVER = Symbol.for('@pine-ds/core/keepPineHydrated');
|
|
261
|
+
/**
|
|
262
|
+
* Puts Stencil's own classes back on any Pine component that loses them. Stencil hides a component
|
|
263
|
+
* until it has `hydrated`, so a DOM morph that strips a host's `class` makes it vanish, and nothing
|
|
264
|
+
* rewrites it. One observer on the whole document covers every component, including the ones with no
|
|
265
|
+
* host restore of their own. It only restores classes the element had, so it never runs ahead of
|
|
266
|
+
* Stencil. It can't see inside shadow roots, which a morph doesn't reach either.
|
|
267
|
+
*
|
|
268
|
+
* A script that removes `hydrated` on purpose sees it come back. One that removes it every time it
|
|
269
|
+
* appears (from a `MutationObserver`, say) wins after a few rounds, and the component logs a console
|
|
270
|
+
* warning. The component then stays hidden, as that script left it, until its class changes again.
|
|
271
|
+
*
|
|
272
|
+
* Pine's global script calls this, so the CDN and `dist` builds get it on load. The custom-elements
|
|
273
|
+
* build (`@pine-ds/core/components/*`, `@pine-ds/react`) has no global script: call it once yourself.
|
|
274
|
+
* Calling it again does nothing, and without `MutationObserver` (server rendering) neither does the
|
|
275
|
+
* first call.
|
|
276
|
+
*/
|
|
277
|
+
const keepPineHydrated = () => {
|
|
278
|
+
if (typeof MutationObserver === 'undefined' || typeof document === 'undefined')
|
|
279
|
+
return;
|
|
280
|
+
const store = globalThis;
|
|
281
|
+
if (store[OBSERVER])
|
|
282
|
+
return;
|
|
283
|
+
// One capped restore per element, so a script fighting one component doesn't stop the others,
|
|
284
|
+
// and the Stencil classes each one has had.
|
|
285
|
+
const restores = new WeakMap();
|
|
286
|
+
const seen = new WeakMap();
|
|
287
|
+
const restoreFor = (el) => {
|
|
288
|
+
let restore = restores.get(el);
|
|
289
|
+
if (!restore) {
|
|
290
|
+
restore = limitRestores((names) => {
|
|
291
|
+
const missing = names.filter((name) => !el.classList.contains(name));
|
|
292
|
+
if (missing.length > 0)
|
|
293
|
+
el.classList.add(...missing);
|
|
294
|
+
return missing.length > 0;
|
|
295
|
+
}, `${el.localName}: stopped putting back its hydrated and scope classes, as another script keeps removing them.`, el, HOST_RESTORE);
|
|
296
|
+
restores.set(el, restore);
|
|
297
|
+
}
|
|
298
|
+
return restore;
|
|
299
|
+
};
|
|
300
|
+
const observer = new MutationObserver((records) => {
|
|
301
|
+
records.forEach(({ target, oldValue }) => {
|
|
302
|
+
const el = target;
|
|
303
|
+
if (!el.localName.startsWith('pds-'))
|
|
304
|
+
return;
|
|
305
|
+
// No old value is a `class` being added. Stencil's first `hydrated` arrives that way, which
|
|
306
|
+
// needs nothing; for an element already seen, it's the class coming back after a removal.
|
|
307
|
+
if (oldValue == null && !seen.has(el))
|
|
308
|
+
return;
|
|
309
|
+
if (!seen.has(el))
|
|
310
|
+
seen.set(el, new Set());
|
|
311
|
+
const names = stencilClassesOf(seen.get(el), el, oldValue);
|
|
312
|
+
if (names.length > 0)
|
|
313
|
+
restoreFor(el)(names);
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
// The document rather than its root element, so replacing `<html>` doesn't end the watch.
|
|
317
|
+
observer.observe(document, {
|
|
318
|
+
subtree: true,
|
|
319
|
+
attributes: true,
|
|
320
|
+
attributeFilter: ['class'],
|
|
321
|
+
attributeOldValue: true,
|
|
322
|
+
});
|
|
323
|
+
store[OBSERVER] = observer;
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
// Stencil runs this when the loader loads, before any component is defined, and again for each
|
|
327
|
+
// server-rendered document, where it does nothing.
|
|
328
|
+
var pineGlobal = () => {
|
|
329
|
+
keepPineHydrated();
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
const appGlobalScript = pineGlobal || (() => {});
|
|
333
|
+
const globalScripts = appGlobalScript;
|
|
334
|
+
|
|
137
335
|
/*
|
|
138
336
|
Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
|
|
139
337
|
*/
|
|
@@ -5171,6 +5369,7 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
|
|
|
5171
5369
|
};
|
|
5172
5370
|
tmrId = globalThis.setTimeout(timeoutExceeded, opts.timeout);
|
|
5173
5371
|
plt.$resourcesUrl$ = new URL(opts.resourcesUrl || "./", win2.document.baseURI).href;
|
|
5372
|
+
globalScripts();
|
|
5174
5373
|
patchChild2(win2.document.body);
|
|
5175
5374
|
waitLoop2().then(hydratedComplete).catch(hydratedError);
|
|
5176
5375
|
} catch (e) {
|
|
@@ -5533,7 +5732,7 @@ class MockPdsModal {
|
|
|
5533
5732
|
'pds-modal__backdrop': true,
|
|
5534
5733
|
'open': this.open,
|
|
5535
5734
|
};
|
|
5536
|
-
return (hAsync("div", { key: '
|
|
5735
|
+
return (hAsync("div", { key: '3a526f6883d7e7df35985a145962f656621535c1', class: backdropClasses }, hAsync("div", { key: '3af0487dc8c8831903cd7c22ffbf3e708b067ad7', class: modalClasses, role: "dialog", "aria-modal": "true", "aria-labelledby": this.componentId ? `${this.componentId}-heading` : null, part: "modal" }, hAsync("div", { key: '94e6205042ee91dac0823901cc97b79e93a515f2', class: "pds-modal__header" }, hAsync("slot", { key: 'ca04b575ccceabd431e3f5c57189f17f9aae6089', name: "header" })), hAsync("div", { key: 'f8327a261e70b622add1dd4ee21b5f8e8d91e603', class: "pds-modal-content" }, hAsync("slot", { key: 'a1a9c30d0f5479b0004ace4544e3d96ae87465be' })), hAsync("div", { key: 'af5fa59922047eeec7cbf0a0e1ee4b472b16079c', class: "pds-modal__footer" }, hAsync("slot", { key: '3c469bf94bb3a26dfd8046a5eda481f9d55edca1', name: "footer" })))));
|
|
5537
5736
|
}
|
|
5538
5737
|
get el() { return getElement(this); }
|
|
5539
5738
|
static get style() { return pdsModalCss$1(); }
|
|
@@ -5555,7 +5754,7 @@ class MockPdsModal {
|
|
|
5555
5754
|
}; }
|
|
5556
5755
|
}
|
|
5557
5756
|
|
|
5558
|
-
/* pds-icons v10.
|
|
5757
|
+
/* pds-icons v10.6.0, ES Modules */
|
|
5559
5758
|
|
|
5560
5759
|
const addCircle = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m11-5a1 1 0 0 1 1 1v3h3a1 1 0 1 1 0 2h-3v3a1 1 0 1 1-2 0v-3H8a1 1 0 1 1 0-2h3V8a1 1 0 0 1 1-1'/></svg>";
|
|
5561
5760
|
const calendarSimple = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M8 1a1 1 0 0 1 1 1v1h6V2a1 1 0 1 1 2 0v1.002c.476.003.891.013 1.252.042.562.046 1.079.145 1.564.392a4 4 0 0 1 1.748 1.748c.247.485.346 1.002.392 1.564C22 7.29 22 7.954 22 8.758v8.483c0 .805 0 1.47-.044 2.01-.046.563-.145 1.08-.392 1.565a4 4 0 0 1-1.748 1.748c-.485.247-1.002.346-1.564.392-.541.044-1.206.044-2.01.044H7.758c-.805 0-1.47 0-2.01-.044-.563-.046-1.08-.145-1.565-.392a4 4 0 0 1-1.748-1.748c-.247-.485-.346-1.002-.392-1.564C2 18.71 2 18.046 2 17.242V8.758c0-.805 0-1.47.044-2.01.046-.563.145-1.08.392-1.565a4 4 0 0 1 1.748-1.748c.485-.247 1.002-.346 1.564-.392.361-.03.777-.04 1.252-.042V2a1 1 0 0 1 1-1M7 5.002c-.446.003-.795.012-1.089.036-.438.035-.663.1-.819.18a2 2 0 0 0-.874.874c-.08.156-.145.38-.18.819C4 7.361 4 7.943 4 8.8V9h16v-.2c0-.857 0-1.439-.038-1.889-.035-.438-.1-.663-.18-.819a2 2 0 0 0-.874-.874c-.156-.08-.38-.145-.819-.18A15 15 0 0 0 17 5.002V6a1 1 0 1 1-2 0V5H9v1a1 1 0 1 1-2 0zM20 11H4v6.2c0 .857 0 1.439.038 1.889.035.438.1.663.18.819a2 2 0 0 0 .874.874c.156.08.38.145.819.18C6.361 21 6.943 21 7.8 21h8.4c.857 0 1.439 0 1.889-.038.438-.035.663-.1.819-.18a2 2 0 0 0 .874-.874c.08-.156.145-.38.18-.819.037-.45.038-1.032.038-1.889z'/></svg>";
|
|
@@ -6000,7 +6199,7 @@ const debounce = (func, wait = 0) => {
|
|
|
6000
6199
|
* @param options.semanticMap - Optional mapping of semantic names to CSS variables
|
|
6001
6200
|
* @returns Normalized color value or undefined for invalid inputs
|
|
6002
6201
|
*/
|
|
6003
|
-
const normalizeColorValue = (value, options) => {
|
|
6202
|
+
const normalizeColorValue$1 = (value, options) => {
|
|
6004
6203
|
if (!value)
|
|
6005
6204
|
return undefined;
|
|
6006
6205
|
const trimmed = value.trim();
|
|
@@ -6044,7 +6243,7 @@ const setColor = (color, customColors) => {
|
|
|
6044
6243
|
// Merge defaults with any custom overrides so defaults are preserved
|
|
6045
6244
|
const semanticMap = Object.assign(Object.assign({}, defaultColors), (customColors || {}));
|
|
6046
6245
|
// Use the shared normalizer so components accept semantic names, raw tokens, var(...), or literals
|
|
6047
|
-
const resolved = normalizeColorValue(color, { semanticMap });
|
|
6246
|
+
const resolved = normalizeColorValue$1(color, { semanticMap });
|
|
6048
6247
|
// Ensure we never return an undefined style value; if unresolved, omit the property
|
|
6049
6248
|
if (!resolved)
|
|
6050
6249
|
return {};
|
|
@@ -6060,24 +6259,15 @@ const setColor = (color, customColors) => {
|
|
|
6060
6259
|
* @param attributes - Attribute names and the values they should have
|
|
6061
6260
|
*/
|
|
6062
6261
|
const setAttributesIfChanged = (el, attributes) => {
|
|
6262
|
+
let wrote = false;
|
|
6063
6263
|
Object.entries(attributes).forEach(([name, value]) => {
|
|
6064
|
-
if (el.getAttribute(name) !== value)
|
|
6264
|
+
if (el.getAttribute(name) !== value) {
|
|
6065
6265
|
el.setAttribute(name, value);
|
|
6266
|
+
wrote = true;
|
|
6267
|
+
}
|
|
6066
6268
|
});
|
|
6269
|
+
return wrote;
|
|
6067
6270
|
};
|
|
6068
|
-
// Classes Stencil itself puts on a host: its default `hydratedFlag` (Pine doesn't change it), and a
|
|
6069
|
-
// scoped component's own scope classes (`sc-pds-radio`, `sc-pds-radio-h`, `sc-pds-radio-s`), which
|
|
6070
|
-
// its CSS needs. Only the host's own: another `sc-` class may be a consumer's (styled-components ids).
|
|
6071
|
-
const isStencilClass = (el, name) => {
|
|
6072
|
-
const scope = `sc-${el.localName}`;
|
|
6073
|
-
return name === 'hydrated' || name === scope || name === `${scope}-h` || name === `${scope}-s`;
|
|
6074
|
-
};
|
|
6075
|
-
/**
|
|
6076
|
-
* The class names in a rendered `class` value: a string, or Stencil's `{ name: boolean }` form.
|
|
6077
|
-
*/
|
|
6078
|
-
const classNamesOf = (classes) => typeof classes === 'string'
|
|
6079
|
-
? classes.split(/\s+/).filter(Boolean)
|
|
6080
|
-
: Object.keys(classes).filter((name) => classes[name]);
|
|
6081
6271
|
/**
|
|
6082
6272
|
* Puts back any of `expected`'s classes or style properties that are missing from `el`. It only
|
|
6083
6273
|
* adds what's missing, never rewrites a value that's there, because browsers normalize some style
|
|
@@ -6089,10 +6279,9 @@ const restoreHostStyling = (el, { classes, styles }) => {
|
|
|
6089
6279
|
const missing = classes.filter((name) => !el.classList.contains(name));
|
|
6090
6280
|
if (missing.length > 0)
|
|
6091
6281
|
el.classList.add(...missing);
|
|
6092
|
-
Object.entries(styles).
|
|
6093
|
-
|
|
6094
|
-
|
|
6095
|
-
});
|
|
6282
|
+
const missingStyles = Object.entries(styles).filter(([name, value]) => value && el.style.getPropertyValue(name) === '');
|
|
6283
|
+
missingStyles.forEach(([name, value]) => el.style.setProperty(name, value));
|
|
6284
|
+
return missing.length > 0 || missingStyles.length > 0;
|
|
6096
6285
|
};
|
|
6097
6286
|
/**
|
|
6098
6287
|
* Watches a component's own host and puts back what it rendered when something strips it. A DOM
|
|
@@ -6109,15 +6298,18 @@ const restoreHostStyling = (el, { classes, styles }) => {
|
|
|
6109
6298
|
const keepHostStyling = (el, expected) => {
|
|
6110
6299
|
if (typeof MutationObserver === 'undefined')
|
|
6111
6300
|
return null;
|
|
6112
|
-
const
|
|
6301
|
+
const tag = el.tagName.toLowerCase();
|
|
6302
|
+
const seenStencilClasses = new Set();
|
|
6303
|
+
const observer = new MutationObserver(limitRestores((records) => {
|
|
6113
6304
|
const styling = expected();
|
|
6114
6305
|
// A strip takes Stencil's own classes too: without `hydrated` Stencil hides the component, and
|
|
6115
6306
|
// without its scope classes a scoped component's CSS stops matching. Put back only the ones that
|
|
6116
|
-
// were there, so this never runs ahead of Stencil.
|
|
6307
|
+
// were there, so this never runs ahead of Stencil. `keepPineHydrated` does the same for every
|
|
6308
|
+
// component, but the custom-elements build only runs it if the consumer calls it, so keep this.
|
|
6117
6309
|
const stencilClasses = records
|
|
6118
|
-
.filter((record) => record.attributeName === 'class'
|
|
6119
|
-
.flatMap((record) =>
|
|
6120
|
-
restoreHostStyling(el, Object.assign(Object.assign({}, styling), { classes: [...styling.classes, ...stencilClasses] }));
|
|
6310
|
+
.filter((record) => record.attributeName === 'class')
|
|
6311
|
+
.flatMap((record) => stencilClassesOf(seenStencilClasses, el, record.oldValue));
|
|
6312
|
+
let wrote = restoreHostStyling(el, Object.assign(Object.assign({}, styling), { classes: [...styling.classes, ...stencilClasses] }));
|
|
6121
6313
|
// An attribute the component still renders comes back with the value it had, which is what
|
|
6122
6314
|
// Stencil wrote (a boolean `true` lands as an empty value). One it stopped rendering stays
|
|
6123
6315
|
// removed, since that was Stencil's own write.
|
|
@@ -6127,8 +6319,10 @@ const keepHostStyling = (el, expected) => {
|
|
|
6127
6319
|
if (oldValue == null || rendered == null || rendered === false || el.hasAttribute(name))
|
|
6128
6320
|
return;
|
|
6129
6321
|
el.setAttribute(name, oldValue);
|
|
6322
|
+
wrote = true;
|
|
6130
6323
|
});
|
|
6131
|
-
|
|
6324
|
+
return wrote;
|
|
6325
|
+
}, `${tag}: stopped restoring its host, as another script keeps changing it. Use props instead.`, el, HOST_RESTORE));
|
|
6132
6326
|
observer.observe(el, { attributes: true, attributeOldValue: true });
|
|
6133
6327
|
return observer;
|
|
6134
6328
|
};
|
|
@@ -6386,8 +6580,8 @@ class PdsBox {
|
|
|
6386
6580
|
this.sizeXl == undefined ? 'pds-box' : ''}
|
|
6387
6581
|
`;
|
|
6388
6582
|
// Normalize so pds-box accepts --token, var(--token), or literals (no semantic names)
|
|
6389
|
-
const normalizedBackground = normalizeColorValue(this.backgroundColor);
|
|
6390
|
-
const normalizedBorder = normalizeColorValue(this.borderColor);
|
|
6583
|
+
const normalizedBackground = normalizeColorValue$1(this.backgroundColor);
|
|
6584
|
+
const normalizedBorder = normalizeColorValue$1(this.borderColor);
|
|
6391
6585
|
const boxInlineStyles = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (normalizedBackground && { '--color-background-box': normalizedBackground })), (normalizedBorder && { '--color-border-box': normalizedBorder })), (this.minHeight && { '--sizing-min-height-box': this.minHeight })), (this.minWidth && { '--sizing-min-width-box': this.minWidth })), (this.flex && !['none', 'grow', 'shrink'].includes(this.flex) && { 'flex': this.flex }));
|
|
6392
6586
|
this.hostKeeper.record(boxClasses, boxInlineStyles);
|
|
6393
6587
|
return (hAsync(Host, { key: 'dc4d939daf38b24ecbfa0eb0a95ab67b97a85665', class: boxClasses, style: boxInlineStyles }));
|
|
@@ -9175,11 +9369,11 @@ class PdsChip {
|
|
|
9175
9369
|
}
|
|
9176
9370
|
// Custom properties rather than inline colors on the dot/icon, so a
|
|
9177
9371
|
// consumer's ::part(dot) or ::part(icon) rule still wins over the prop.
|
|
9178
|
-
const dotColor = normalizeColorValue(this.dotColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9372
|
+
const dotColor = normalizeColorValue$1(this.dotColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9179
9373
|
if (dotColor !== undefined) {
|
|
9180
9374
|
styles['--pds-chip-dot-color'] = dotColor;
|
|
9181
9375
|
}
|
|
9182
|
-
const iconColor = normalizeColorValue(this.iconColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9376
|
+
const iconColor = normalizeColorValue$1(this.iconColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9183
9377
|
if (iconColor !== undefined) {
|
|
9184
9378
|
styles['--pds-chip-icon-color'] = iconColor;
|
|
9185
9379
|
}
|
|
@@ -10676,7 +10870,14 @@ const PINE_ICON_NAME$1 = /^[a-z0-9-]+$/i;
|
|
|
10676
10870
|
* only ever passed to `pds-icon` as `name`.
|
|
10677
10871
|
*/
|
|
10678
10872
|
function groupIconOf(optgroup) {
|
|
10679
|
-
|
|
10873
|
+
return iconOf(optgroup);
|
|
10874
|
+
}
|
|
10875
|
+
/** An option's `data-icon` when it's a Pine icon name, or null; the same check as a group's. */
|
|
10876
|
+
function optionIconOf(option) {
|
|
10877
|
+
return iconOf(option);
|
|
10878
|
+
}
|
|
10879
|
+
function iconOf(element) {
|
|
10880
|
+
const icon = element.getAttribute('data-icon');
|
|
10680
10881
|
return icon !== null && PINE_ICON_NAME$1.test(icon) ? icon : null;
|
|
10681
10882
|
}
|
|
10682
10883
|
/** An option is disabled by its own `disabled` or its optgroup's, as in a native select. */
|
|
@@ -10694,8 +10895,12 @@ function isGroupDisabled(group) {
|
|
|
10694
10895
|
* Groups the combobox's filtered items for the panel: each optgroup becomes one entry holding its
|
|
10695
10896
|
* options, and ungrouped options stay where they are. Indexes count options in list order, the
|
|
10696
10897
|
* same as the inline listbox, so `data-option-index` means the same thing in every mode.
|
|
10898
|
+
*
|
|
10899
|
+
* `position`, when given, orders the entries instead: an ungrouped option or an optgroup it knows
|
|
10900
|
+
* goes where it reports, and the rest keep their place after those. Options from the `options` prop
|
|
10901
|
+
* use it, so a row the data lists between two groups is drawn between them.
|
|
10697
10902
|
*/
|
|
10698
|
-
function buildPanelEntries(items) {
|
|
10903
|
+
function buildPanelEntries(items, position) {
|
|
10699
10904
|
const entries = [];
|
|
10700
10905
|
const groups = new Map();
|
|
10701
10906
|
let index = 0;
|
|
@@ -10717,7 +10922,14 @@ function buildPanelEntries(items) {
|
|
|
10717
10922
|
entries.push({ kind: 'option', option, index: index++ });
|
|
10718
10923
|
}
|
|
10719
10924
|
});
|
|
10720
|
-
|
|
10925
|
+
if (position === undefined)
|
|
10926
|
+
return entries;
|
|
10927
|
+
const at = (entry) => { var _a; return (_a = position(entry.kind === 'group' ? entry.group.optgroup : entry.option)) !== null && _a !== void 0 ? _a : Infinity; };
|
|
10928
|
+
// Array.prototype.sort is stable, so entries with no position keep their order.
|
|
10929
|
+
return entries.sort((a, b) => {
|
|
10930
|
+
const [first, second] = [at(a), at(b)];
|
|
10931
|
+
return first === second ? 0 : first < second ? -1 : 1;
|
|
10932
|
+
});
|
|
10721
10933
|
}
|
|
10722
10934
|
/** The label of the optgroup an option sits in, or null for an ungrouped option. */
|
|
10723
10935
|
function groupLabelOf(option) {
|
|
@@ -10925,7 +11137,7 @@ class FlyoutController {
|
|
|
10925
11137
|
}
|
|
10926
11138
|
}
|
|
10927
11139
|
|
|
10928
|
-
const pdsComboboxCss = () => `:host{display:block}:host([aria-disabled=true]) .pds-combobox__input-icon{color:var(--pine-color-text-disabled);pointer-events:none}.pds-combobox{position:relative}.pds-combobox__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-combobox__input-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-combobox__input{background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body-medium);padding:var(--pine-dimension-xs) var(--pine-dimension-450) var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-transition:border-color var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease;width:100%}.pds-combobox__input:hover:not(:disabled){border-color:var(--pine-color-border-hover)}.pds-combobox__input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-combobox__input:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input.pds-combobox__input--invalid{background:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) .pds-combobox__input.pds-combobox__input--invalid{background:var(--pine-color-red-950)}.pds-combobox__input.pds-combobox__input--invalid:hover:not(:disabled){border-color:var(--pine-color-border-danger)}.pds-combobox__input.pds-combobox__input--invalid:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-combobox__input-icon{color:var(--pine-color-text-secondary);inset-inline-end:var(--pine-dimension-150);pointer-events:none;position:absolute;z-index:calc(var(--pine-z-index-raised) - 1)}.pds-combobox__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-combobox__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm-medium);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-combobox__error pds-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.pds-combobox__listbox{background:var(--pine-color-background-overlay);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__option[aria-selected=true]{background:var(--pine-color-background-muted)}.pds-combobox__option:focus-visible{outline:0}.pds-combobox__option.pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option.pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox__option--highlighted,.pds-combobox__option[selected],.pds-combobox__option--selected{background:var(--pine-color-background-muted)}.pds-combobox__option--disabled,.pds-combobox__group-row--disabled>.pds-combobox__group-row-trigger,.pds-combobox__group-back--disabled>.pds-combobox__group-back-trigger,.pds-combobox__group--disabled>.pds-combobox__group-label{color:var(--pine-color-text-disabled)}.pds-combobox__option--disabled{cursor:not-allowed}.pds-combobox__option--disabled .pds-combobox__option-chip,.pds-combobox__option--disabled .pds-combobox__option-layout-wrapper{opacity:0.5}.pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__group-label{color:var(--pine-color-text-tertiary);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__group{list-style:none;-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150)}.pds-combobox__group:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__group-list{list-style:none;margin:0;padding:0}.pds-combobox__listbox--grouped .pds-combobox__group-list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs)}.pds-combobox__group-label--with-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.pds-combobox__group-icon{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__group-row{list-style:none;position:relative}.pds-combobox__group-row-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__group-row--open>.pds-combobox__group-row-trigger,.pds-combobox__group-row--has-selection>.pds-combobox__group-row-trigger,.pds-combobox__group-row--highlighted>.pds-combobox__group-row-trigger,.pds-combobox__group-back--highlighted>.pds-combobox__group-row-trigger,.pds-combobox__group-row-trigger:hover{background:var(--pine-color-background-muted)}.pds-combobox__listbox--drill-in,.pds-combobox__listbox--drill-out{overflow-x:hidden}.pds-combobox__listbox--drill-in>.pds-combobox__group-back{-webkit-animation:pds-combobox-drill-from-end var(--pine-motion-duration-base) var(--pine-motion-easing-out);animation:pds-combobox-drill-from-end var(--pine-motion-duration-base) var(--pine-motion-easing-out)}.pds-combobox__listbox--drill-out>li{-webkit-animation:pds-combobox-drill-from-start var(--pine-motion-duration-base) var(--pine-motion-easing-out);animation:pds-combobox-drill-from-start var(--pine-motion-duration-base) var(--pine-motion-easing-out)}@-webkit-keyframes pds-combobox-drill-from-end{from{opacity:0;-webkit-transform:translateX(var(--pine-dimension-sm));transform:translateX(var(--pine-dimension-sm))}}@keyframes pds-combobox-drill-from-end{from{opacity:0;-webkit-transform:translateX(var(--pine-dimension-sm));transform:translateX(var(--pine-dimension-sm))}}@-webkit-keyframes pds-combobox-drill-from-start{from{opacity:0;-webkit-transform:translateX(calc(var(--pine-dimension-sm) * -1));transform:translateX(calc(var(--pine-dimension-sm) * -1))}}@keyframes pds-combobox-drill-from-start{from{opacity:0;-webkit-transform:translateX(calc(var(--pine-dimension-sm) * -1));transform:translateX(calc(var(--pine-dimension-sm) * -1))}}.pds-combobox__group-row--keyboard>.pds-combobox__group-row-trigger,.pds-combobox__group-back--keyboard>.pds-combobox__group-row-trigger{outline:var(--pine-outline-focus);outline-offset:calc(var(--pine-border-width) * -2)}.pds-combobox__group-row-label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);min-width:0}.pds-combobox__group-row-caret{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__listbox--grouped,.pds-combobox__flyout{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);padding:var(--pine-dimension-2xs)}.pds-combobox__flyout{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;overflow-y:auto;position:fixed;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content;z-index:1}.pds-combobox__listbox--with-search{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:0}.pds-combobox__listbox-options{-ms-flex:1;flex:1;list-style:none;margin:0;min-height:0;overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-combobox__listbox-options.pds-combobox__listbox--grouped{padding:var(--pine-dimension-2xs)}.pds-combobox__panel-search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-sm)}.pds-combobox__panel-search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:0;flex-shrink:0}.pds-combobox__panel-search:focus-within{border-block-end-color:var(--pine-color-border-active)}.pds-combobox__panel-search-input{background:transparent;border:0;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:0;outline:none;padding:0}.pds-combobox__panel-search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__group-back{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);list-style:none}.pds-combobox__group-back-trigger{-ms-flex-pack:start;justify-content:flex-start}.pds-combobox__listbox-options--drilled-in.pds-combobox__listbox--grouped{-webkit-padding-before:0;padding-block-start:0}.pds-combobox__listbox-options--drilled-in:focus{outline:none}.pds-combobox__listbox-options--drilled-in:focus .pds-combobox__group-back-trigger{border-block-end-color:var(--pine-color-border-active)}:where(.pds-combobox__listbox-options--drilled-in) .pds-combobox__group-back-trigger{background-color:var(--pine-color-background-overlay);-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);border-radius:0;color:var(--pine-color-text-strong);font:var(--pine-typography-body);inset-block-start:0;letter-spacing:var(--pine-letter-spacing);margin-inline:calc(var(--pine-dimension-2xs) * -1);padding:var(--pine-dimension-sm);position:-webkit-sticky;position:sticky;z-index:1}.pds-combobox__drill-in-options{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);list-style:none;margin:0;padding:0}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-combobox__loading{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}.pds-combobox__empty{color:var(--pine-color-text-tertiary);padding:var(--pine-dimension-150) var(--pine-dimension-sm);text-align:center}.pds-combobox__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}:host(.pds-combobox-dropdown-portal) .pds-combobox__listbox{position:fixed;z-index:var(--pine-z-index-priority)}.pds-combobox__button-trigger{-ms-flex-align:center;align-items:center;background:var(--color-background-default, var(--pine-color-secondary));border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--color-text-default, var(--pine-color-text-inverse-emphasis));cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;min-height:var(--pine-dimension-450);outline:none;padding:0 var(--pine-dimension-sm);-webkit-transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, -webkit-box-shadow 0.15s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__button-trigger .pds-combobox__button-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__button-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__button-trigger:focus-visible{border-color:var(--color-border-focus, var(--pine-color-border));-webkit-box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring));box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring))}.pds-combobox__button-trigger:hover{background:var(--color-background-hover, var(--pine-color-secondary-hover));border-color:var(--color-border-hover, var(--pine-color-border-hover))}.pds-combobox__button-trigger[aria-disabled=true],.pds-combobox__button-trigger:disabled{background:var(--color-background-disabled, var(--pine-color-secondary-disabled));border-color:var(--color-border-disabled, var(--pine-color-border-disabled));color:var(--color-text-disabled, var(--pine-color-text-secondary-disabled));cursor:not-allowed;opacity:0.6}.pds-combobox__button-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__button-trigger--input-shape{border-radius:var(--pine-dimension-125);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-450);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150)}.pds-combobox__button-trigger--secondary.pds-combobox__button-trigger--input-shape:not([aria-disabled=true]) .pds-combobox__button-trigger-label--placeholder{color:var(--pine-color-text-muted)}.pds-combobox__button-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__button-trigger--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-border-disabled:var(--pine-color-primary-disabled);--color-border-focus:var(--pine-color-primary);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-border-disabled:var(--pine-color-accent-disabled);--color-border-focus:var(--pine-color-accent);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--secondary{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-default:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-border-disabled:var(--pine-color-danger-disabled);--color-border-focus:var(--pine-color-danger);--color-text-default:var(--pine-color-white);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger)}[data-layout]{border-radius:var(--pine-dimension-125);padding-block:var(--pine-dimension-xs)}.pds-combobox__chip-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;outline:none;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150);-webkit-transition:all 0.15s ease;transition:all 0.15s ease;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__chip-trigger .pds-combobox__chip-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__chip-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__chip-trigger:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__chip-trigger[aria-disabled=true]{cursor:not-allowed;opacity:0.6}.pds-combobox__chip-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__chip-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__chip-trigger-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-combobox__chip-trigger--neutral,.pds-combobox__chip-trigger--accent,.pds-combobox__chip-trigger--success,.pds-combobox__chip-trigger--warning,.pds-combobox__chip-trigger--danger,.pds-combobox__chip-trigger--info{background:var(--chip-bg);border:var(--pine-border-width) solid var(--chip-border);color:var(--chip-text)}.pds-combobox__chip-trigger--neutral:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--accent:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--success:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--warning:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--danger:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--info:hover:not([aria-disabled=true]){background:var(--chip-bg-hover)}.pds-combobox__chip-trigger--neutral:focus-visible,.pds-combobox__chip-trigger--accent:focus-visible,.pds-combobox__chip-trigger--success:focus-visible,.pds-combobox__chip-trigger--warning:focus-visible,.pds-combobox__chip-trigger--danger:focus-visible,.pds-combobox__chip-trigger--info:focus-visible{border-color:var(--chip-border)}.pds-combobox__chip-trigger--neutral{--chip-bg:var(--pine-chip-color-neutral);--chip-bg-hover:var(--pine-chip-color-neutral-hover);--chip-border:var(--pine-chip-color-neutral-hover);--chip-text:var(--pine-color-text-neutral)}.pds-combobox__chip-trigger--accent{--chip-bg:var(--pine-chip-color-accent);--chip-bg-hover:var(--pine-chip-color-accent-hover);--chip-border:var(--pine-chip-color-accent-hover);--chip-text:var(--pine-color-text-accent)}.pds-combobox__chip-trigger--success{--chip-bg:var(--pine-chip-color-success);--chip-bg-hover:var(--pine-chip-color-success-hover);--chip-border:var(--pine-chip-color-success-hover);--chip-text:var(--pine-color-text-success)}.pds-combobox__chip-trigger--warning{--chip-bg:var(--pine-chip-color-warning);--chip-bg-hover:var(--pine-chip-color-warning-hover);--chip-border:var(--pine-chip-color-warning-hover);--chip-text:var(--pine-color-text-warning)}.pds-combobox__chip-trigger--danger{--chip-bg:var(--pine-chip-color-danger);--chip-bg-hover:var(--pine-chip-color-danger-hover);--chip-border:var(--pine-chip-color-danger-hover);--chip-text:var(--pine-color-text-danger)}.pds-combobox__chip-trigger--info{--chip-bg:var(--pine-chip-color-info);--chip-bg-hover:var(--pine-chip-color-info-hover);--chip-border:var(--pine-chip-color-info-hover);--chip-text:var(--pine-color-text-info)}.pds-combobox__chip-trigger--brand{background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;color:var(--pine-color-text-neutral);padding:1px;position:relative}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-chevron{position:relative;z-index:1}.pds-combobox__chip-trigger--brand:hover:not([aria-disabled=true]) .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.8)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand){padding:var(--pine-dimension-none)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand) .pds-combobox__chip-trigger-label{padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-combobox__chip-trigger--large .pds-combobox__chip-trigger-label{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-combobox__chip-trigger--dot .pds-combobox__chip-trigger-label::before{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);content:"";display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}`;
|
|
11140
|
+
const pdsComboboxCss = () => `:host{display:block}:host([aria-disabled=true]) .pds-combobox__input-icon{color:var(--pine-color-text-disabled);pointer-events:none}.pds-combobox{position:relative}.pds-combobox__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-combobox__input-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-combobox__input{background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body-medium);padding:var(--pine-dimension-xs) var(--pine-dimension-450) var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-transition:border-color var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease;width:100%}.pds-combobox__input:hover:not(:disabled){border-color:var(--pine-color-border-hover)}.pds-combobox__input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-combobox__input:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input.pds-combobox__input--invalid{background:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) .pds-combobox__input.pds-combobox__input--invalid{background:var(--pine-color-red-950)}.pds-combobox__input.pds-combobox__input--invalid:hover:not(:disabled){border-color:var(--pine-color-border-danger)}.pds-combobox__input.pds-combobox__input--invalid:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-combobox__input-icon{color:var(--pine-color-text-secondary);inset-inline-end:var(--pine-dimension-150);pointer-events:none;position:absolute;z-index:calc(var(--pine-z-index-raised) - 1)}.pds-combobox__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-combobox__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm-medium);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-combobox__error pds-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.pds-combobox__listbox{background:var(--pine-color-background-overlay);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__option[aria-selected=true]{background:var(--pine-color-background-muted)}.pds-combobox__option:focus-visible{outline:0}.pds-combobox__option.pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option.pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox__option--highlighted,.pds-combobox__option[selected],.pds-combobox__option--selected{background:var(--pine-color-background-muted)}.pds-combobox__option--disabled,.pds-combobox__group-row--disabled>.pds-combobox__group-row-trigger,.pds-combobox__group-back--disabled>.pds-combobox__group-back-trigger,.pds-combobox__group--disabled>.pds-combobox__group-label{color:var(--pine-color-text-disabled)}.pds-combobox__option--disabled{cursor:not-allowed}.pds-combobox__option--disabled .pds-combobox__option-chip,.pds-combobox__option--disabled .pds-combobox__option-layout-wrapper{opacity:0.5}.pds-combobox__option-label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);min-width:0;overflow-wrap:anywhere}.pds-combobox__option-icon{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__group-label{color:var(--pine-color-text-tertiary);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__group{list-style:none;-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150)}.pds-combobox__group:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__group-list{list-style:none;margin:0;padding:0}.pds-combobox__listbox--grouped .pds-combobox__group-list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs)}.pds-combobox__group-label--with-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.pds-combobox__group-icon{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__group-row{list-style:none;position:relative}.pds-combobox__group-row-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__group-row--open>.pds-combobox__group-row-trigger,.pds-combobox__group-row--has-selection>.pds-combobox__group-row-trigger,.pds-combobox__group-row--highlighted>.pds-combobox__group-row-trigger,.pds-combobox__group-back--highlighted>.pds-combobox__group-row-trigger{background:var(--pine-color-background-muted)}.pds-combobox__listbox--pointer-hover .pds-combobox__group-row-trigger:hover{background:var(--pine-color-background-muted)}.pds-combobox__listbox--drill-in,.pds-combobox__listbox--drill-out{overflow-x:hidden}.pds-combobox__listbox--drill-in,.pds-combobox__listbox--drill-out:dir(rtl){--pds-combobox-drill-from:var(--pine-dimension-sm)}.pds-combobox__listbox--drill-out,.pds-combobox__listbox--drill-in:dir(rtl){--pds-combobox-drill-from:calc(var(--pine-dimension-sm) * -1)}.pds-combobox__listbox--drill-in .pds-combobox__drill-in-options>li,.pds-combobox__listbox--drill-in .pds-combobox__group-back-trigger,.pds-combobox__listbox--drill-out>li{-webkit-animation:pds-combobox-drill var(--pine-motion-duration-base) var(--pine-motion-easing-out);animation:pds-combobox-drill var(--pine-motion-duration-base) var(--pine-motion-easing-out)}@-webkit-keyframes pds-combobox-drill{from{opacity:0;-webkit-transform:translateX(var(--pds-combobox-drill-from));transform:translateX(var(--pds-combobox-drill-from))}}@keyframes pds-combobox-drill{from{opacity:0;-webkit-transform:translateX(var(--pds-combobox-drill-from));transform:translateX(var(--pds-combobox-drill-from))}}.pds-combobox__group-row--keyboard>.pds-combobox__group-row-trigger,.pds-combobox__group-back--keyboard>.pds-combobox__group-row-trigger{outline:var(--pine-outline-focus);outline-offset:calc(var(--pine-border-width) * -2)}.pds-combobox__group-row-label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);min-width:0}.pds-combobox__group-row-caret{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__listbox--grouped,.pds-combobox__flyout{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);padding:var(--pine-dimension-2xs)}.pds-combobox__flyout{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;overflow-y:auto;position:fixed;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content;z-index:1}.pds-combobox__listbox--with-search{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:0}.pds-combobox__listbox-options{-ms-flex:1;flex:1;list-style:none;margin:0;min-height:0;overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-combobox__listbox-options.pds-combobox__listbox--grouped{padding:var(--pine-dimension-2xs)}.pds-combobox__panel-search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-sm)}.pds-combobox__panel-search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:0;flex-shrink:0}.pds-combobox__panel-search:focus-within{border-block-end-color:var(--pine-color-border-active)}.pds-combobox__panel-search-input{background:transparent;border:0;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:0;outline:none;padding:0}.pds-combobox__panel-search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__group-back{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);list-style:none}.pds-combobox__group-back-trigger{-ms-flex-pack:start;justify-content:flex-start}.pds-combobox__listbox-options--drilled-in.pds-combobox__listbox--grouped{-webkit-padding-before:0;padding-block-start:0}.pds-combobox__listbox-options--drilled-in:focus{outline:none}.pds-combobox__listbox-options--drilled-in:focus .pds-combobox__group-back-trigger{border-block-end-color:var(--pine-color-border-active)}:where(.pds-combobox__listbox-options--drilled-in) .pds-combobox__group-back-trigger{background-color:var(--pine-color-background-overlay);-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);border-radius:0;color:var(--pine-color-text-strong);font:var(--pine-typography-body);inset-block-start:0;letter-spacing:var(--pine-letter-spacing);margin-inline:calc(var(--pine-dimension-2xs) * -1);padding:var(--pine-dimension-sm);position:-webkit-sticky;position:sticky;z-index:1}.pds-combobox__drill-in-options{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);list-style:none;margin:0;padding:0}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-combobox__loading{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}.pds-combobox__empty{color:var(--pine-color-text-tertiary);padding:var(--pine-dimension-150) var(--pine-dimension-sm);text-align:center}.pds-combobox__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}:host(.pds-combobox-dropdown-portal) .pds-combobox__listbox{position:fixed;z-index:var(--pine-z-index-priority)}.pds-combobox__button-trigger{-ms-flex-align:center;align-items:center;background:var(--color-background-default, var(--pine-color-secondary));border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--color-text-default, var(--pine-color-text-inverse-emphasis));cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;min-height:var(--pine-dimension-450);outline:none;padding:0 var(--pine-dimension-sm);-webkit-transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, -webkit-box-shadow 0.15s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__button-trigger .pds-combobox__button-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__button-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__button-trigger:focus-visible{border-color:var(--color-border-focus, var(--pine-color-border));-webkit-box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring));box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring))}.pds-combobox__button-trigger:hover{background:var(--color-background-hover, var(--pine-color-secondary-hover));border-color:var(--color-border-hover, var(--pine-color-border-hover))}.pds-combobox__button-trigger[aria-disabled=true],.pds-combobox__button-trigger:disabled{background:var(--color-background-disabled, var(--pine-color-secondary-disabled));border-color:var(--color-border-disabled, var(--pine-color-border-disabled));color:var(--color-text-disabled, var(--pine-color-text-secondary-disabled));cursor:not-allowed;opacity:0.6}.pds-combobox__button-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;overflow-wrap:anywhere;text-align:start}.pds-combobox__button-trigger-label--with-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.pds-combobox__button-trigger-icon{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__button-trigger--input-shape{border-radius:var(--pine-dimension-125);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-450);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150)}.pds-combobox__button-trigger--secondary.pds-combobox__button-trigger--input-shape:not([aria-disabled=true]) .pds-combobox__button-trigger-label--placeholder{color:var(--pine-color-text-muted)}.pds-combobox__button-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__button-trigger--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-border-disabled:var(--pine-color-primary-disabled);--color-border-focus:var(--pine-color-primary);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-border-disabled:var(--pine-color-accent-disabled);--color-border-focus:var(--pine-color-accent);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--secondary{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-default:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-border-disabled:var(--pine-color-danger-disabled);--color-border-focus:var(--pine-color-danger);--color-text-default:var(--pine-color-white);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger)}[data-layout]{border-radius:var(--pine-dimension-125);padding-block:var(--pine-dimension-xs)}.pds-combobox__chip-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;outline:none;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150);-webkit-transition:all 0.15s ease;transition:all 0.15s ease;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__chip-trigger .pds-combobox__chip-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__chip-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__chip-trigger:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__chip-trigger[aria-disabled=true]{cursor:not-allowed;opacity:0.6}.pds-combobox__chip-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__chip-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__chip-trigger-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-combobox__chip-trigger--neutral,.pds-combobox__chip-trigger--accent,.pds-combobox__chip-trigger--success,.pds-combobox__chip-trigger--warning,.pds-combobox__chip-trigger--danger,.pds-combobox__chip-trigger--info{background:var(--chip-bg);border:var(--pine-border-width) solid var(--chip-border);color:var(--chip-text)}.pds-combobox__chip-trigger--neutral:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--accent:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--success:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--warning:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--danger:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--info:hover:not([aria-disabled=true]){background:var(--chip-bg-hover)}.pds-combobox__chip-trigger--neutral:focus-visible,.pds-combobox__chip-trigger--accent:focus-visible,.pds-combobox__chip-trigger--success:focus-visible,.pds-combobox__chip-trigger--warning:focus-visible,.pds-combobox__chip-trigger--danger:focus-visible,.pds-combobox__chip-trigger--info:focus-visible{border-color:var(--chip-border)}.pds-combobox__chip-trigger--neutral{--chip-bg:var(--pine-chip-color-neutral);--chip-bg-hover:var(--pine-chip-color-neutral-hover);--chip-border:var(--pine-chip-color-neutral-hover);--chip-text:var(--pine-color-text-neutral)}.pds-combobox__chip-trigger--accent{--chip-bg:var(--pine-chip-color-accent);--chip-bg-hover:var(--pine-chip-color-accent-hover);--chip-border:var(--pine-chip-color-accent-hover);--chip-text:var(--pine-color-text-accent)}.pds-combobox__chip-trigger--success{--chip-bg:var(--pine-chip-color-success);--chip-bg-hover:var(--pine-chip-color-success-hover);--chip-border:var(--pine-chip-color-success-hover);--chip-text:var(--pine-color-text-success)}.pds-combobox__chip-trigger--warning{--chip-bg:var(--pine-chip-color-warning);--chip-bg-hover:var(--pine-chip-color-warning-hover);--chip-border:var(--pine-chip-color-warning-hover);--chip-text:var(--pine-color-text-warning)}.pds-combobox__chip-trigger--danger{--chip-bg:var(--pine-chip-color-danger);--chip-bg-hover:var(--pine-chip-color-danger-hover);--chip-border:var(--pine-chip-color-danger-hover);--chip-text:var(--pine-color-text-danger)}.pds-combobox__chip-trigger--info{--chip-bg:var(--pine-chip-color-info);--chip-bg-hover:var(--pine-chip-color-info-hover);--chip-border:var(--pine-chip-color-info-hover);--chip-text:var(--pine-color-text-info)}.pds-combobox__chip-trigger--brand{background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;color:var(--pine-color-text-neutral);padding:1px;position:relative}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-chevron{position:relative;z-index:1}.pds-combobox__chip-trigger--brand:hover:not([aria-disabled=true]) .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.8)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand){padding:var(--pine-dimension-none)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand) .pds-combobox__chip-trigger-label{padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-combobox__chip-trigger--large .pds-combobox__chip-trigger-label{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-combobox__chip-trigger--dot .pds-combobox__chip-trigger-label::before{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);content:"";display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}`;
|
|
10929
11141
|
|
|
10930
11142
|
/**
|
|
10931
11143
|
* @slot option - Option elements for the combobox dropdown
|
|
@@ -11133,6 +11345,17 @@ class PdsCombobox {
|
|
|
11133
11345
|
this.highlightedGroup = null;
|
|
11134
11346
|
/** The keys, not the pointer, moved the highlight last; the focus ring shows only then. */
|
|
11135
11347
|
this.keyboardNavigating = false;
|
|
11348
|
+
/**
|
|
11349
|
+
* A drill-in group row the first arrow showed rather than moved past. `aria-activedescendant`
|
|
11350
|
+
* already pointed at it, so the status region says it instead.
|
|
11351
|
+
*/
|
|
11352
|
+
this.revealedGroupLabel = null;
|
|
11353
|
+
/**
|
|
11354
|
+
* The pointer in the panel can hover: a mouse or pen, not touch. Touch browsers keep a tapped row
|
|
11355
|
+
* hovered, so group rows shade on `:hover` only for a pointer that can hover. Checked on the
|
|
11356
|
+
* pointer itself rather than `(hover: hover)`, which a touch-first device with a trackpad fails.
|
|
11357
|
+
*/
|
|
11358
|
+
this.pointerCanHover = true;
|
|
11136
11359
|
/**
|
|
11137
11360
|
* What's typed in the dropdown's own search field (`panelSearch`).
|
|
11138
11361
|
*/
|
|
@@ -11177,6 +11400,11 @@ class PdsCombobox {
|
|
|
11177
11400
|
});
|
|
11178
11401
|
/** The groups in the flyout panel's last render, so a row's index finds its optgroup. */
|
|
11179
11402
|
this.renderedGroups = [];
|
|
11403
|
+
/**
|
|
11404
|
+
* Where each ungrouped option and optgroup built from the `options` prop came in the data, so
|
|
11405
|
+
* the flyout and drill-in panels draw them in that order. Slotted markup is already in order.
|
|
11406
|
+
*/
|
|
11407
|
+
this.panelPositions = new WeakMap();
|
|
11180
11408
|
/** Room for a flyout was checked for this open. */
|
|
11181
11409
|
this.flyoutRoomChecked = false;
|
|
11182
11410
|
/** The highlighted option sits in a flyout that hasn't rendered yet; focus it after the next render. */
|
|
@@ -11190,10 +11418,14 @@ class PdsCombobox {
|
|
|
11190
11418
|
* the list shows every option until the user types (then normal filtering applies).
|
|
11191
11419
|
*/
|
|
11192
11420
|
this.expandFilterListWhileOpen = false;
|
|
11421
|
+
this.onPanelPointer = (event) => {
|
|
11422
|
+
const canHover = event.pointerType !== 'touch';
|
|
11423
|
+
if (this.pointerCanHover !== canHover)
|
|
11424
|
+
this.pointerCanHover = canHover;
|
|
11425
|
+
};
|
|
11193
11426
|
this.onDrillAnimationEnd = (event) => {
|
|
11194
|
-
var _a;
|
|
11195
11427
|
// Only the slide's own end: slotted consumer content can animate inside the list too.
|
|
11196
|
-
if (
|
|
11428
|
+
if (event.animationName === 'pds-combobox-drill')
|
|
11197
11429
|
this.drillDirection = null;
|
|
11198
11430
|
};
|
|
11199
11431
|
/** `<label for>` only works on the input trigger; for a div trigger a click on the label focuses it. */
|
|
@@ -11612,6 +11844,31 @@ class PdsCombobox {
|
|
|
11612
11844
|
this.focusPanel(panelFocusEl);
|
|
11613
11845
|
}
|
|
11614
11846
|
}
|
|
11847
|
+
/**
|
|
11848
|
+
* Scrolls just enough to show `el`, as `scrollIntoView({ block: 'nearest' })` does. In the drill-in
|
|
11849
|
+
* panel it scrolls the list alone, and never sideways: while a drill-in slide offsets a row past
|
|
11850
|
+
* the list's edge, `scrollIntoView` also scrolls the list horizontally to reach it, which eats most
|
|
11851
|
+
* of the slide. There it keeps clear of the sticky row back, through the scroll padding set for it,
|
|
11852
|
+
* but doesn't scroll the page or a scrolling ancestor.
|
|
11853
|
+
*/
|
|
11854
|
+
scrollIntoViewNearest(el, smooth) {
|
|
11855
|
+
const behavior = smooth ? 'smooth' : 'auto';
|
|
11856
|
+
if (!this.showsGroupedPanel || this.effectiveGroupDisplay !== 'drill-in') {
|
|
11857
|
+
el.scrollIntoView({ block: 'nearest', behavior });
|
|
11858
|
+
return;
|
|
11859
|
+
}
|
|
11860
|
+
const list = this.usesPanelSearch ? this.panelTreeEl : this.listboxEl;
|
|
11861
|
+
if (!list)
|
|
11862
|
+
return;
|
|
11863
|
+
const offset = el.getBoundingClientRect().top - list.getBoundingClientRect().top - list.clientTop;
|
|
11864
|
+
// The padding keeps rows clear of the sticky row back; the row back itself doesn't need it.
|
|
11865
|
+
const padding = el.classList.contains('pds-combobox__group-back-trigger') ? 0 : parseFloat(list.style.scrollPaddingBlockStart) || 0;
|
|
11866
|
+
const top = list.scrollTop + offset - padding;
|
|
11867
|
+
const bottom = list.scrollTop + offset + el.offsetHeight - list.clientHeight;
|
|
11868
|
+
const target = top < list.scrollTop ? top : bottom > list.scrollTop ? bottom : null;
|
|
11869
|
+
if (target !== null)
|
|
11870
|
+
list.scrollTo({ top: target, behavior });
|
|
11871
|
+
}
|
|
11615
11872
|
focusPanel(el) {
|
|
11616
11873
|
var _a, _b;
|
|
11617
11874
|
this.panelFocusEl = el;
|
|
@@ -11632,6 +11889,7 @@ class PdsCombobox {
|
|
|
11632
11889
|
}
|
|
11633
11890
|
openGroupChanged(next, previous) {
|
|
11634
11891
|
this.handPanelFocusToList();
|
|
11892
|
+
this.revealedGroupLabel = null;
|
|
11635
11893
|
// Only moves between the drill-in panel's views slide; search results don't.
|
|
11636
11894
|
if (!this.isOpen || this.effectiveGroupDisplay !== 'drill-in' || !this.showsGroupedPanel)
|
|
11637
11895
|
return;
|
|
@@ -11654,6 +11912,7 @@ class PdsCombobox {
|
|
|
11654
11912
|
}
|
|
11655
11913
|
isOpenChanged(isOpen) {
|
|
11656
11914
|
if (!isOpen) {
|
|
11915
|
+
this.revealedGroupLabel = null;
|
|
11657
11916
|
this.drillDirection = null;
|
|
11658
11917
|
this.openGroup = null;
|
|
11659
11918
|
this.highlightedGroup = null;
|
|
@@ -11932,20 +12191,25 @@ class PdsCombobox {
|
|
|
11932
12191
|
// slotted markup would be, so grouping, filtering and labels work the same either way. Each
|
|
11933
12192
|
// group is listed where it first appears with all of its options, even when the data
|
|
11934
12193
|
// interleaves groups, so an option never renders under another group's label. Ungrouped
|
|
11935
|
-
// options come first, so none reads as part of the group above it.
|
|
12194
|
+
// options come first, so none reads as part of the group above it. The flyout and drill-in
|
|
12195
|
+
// panels draw groups as rows, where that can't happen, so they keep the data's order instead.
|
|
11936
12196
|
const asyncOptions = this.options || this.internalOptions;
|
|
11937
12197
|
const groups = new Map();
|
|
11938
12198
|
const ungrouped = [];
|
|
11939
12199
|
const groupEntries = [];
|
|
11940
|
-
|
|
12200
|
+
this.panelPositions = new WeakMap();
|
|
12201
|
+
asyncOptions.forEach((opt, position) => {
|
|
11941
12202
|
const optionEl = document.createElement('option');
|
|
11942
12203
|
optionEl.value = String(opt.id);
|
|
11943
12204
|
optionEl.textContent = opt.text;
|
|
11944
12205
|
if (opt.disabled === true)
|
|
11945
12206
|
optionEl.setAttribute('disabled', '');
|
|
11946
12207
|
// Only strings group an option or name an icon; anything else from JS is ignored, not coerced.
|
|
12208
|
+
if (typeof opt.icon === 'string' && opt.icon !== '')
|
|
12209
|
+
optionEl.setAttribute('data-icon', opt.icon);
|
|
11947
12210
|
if (typeof opt.group !== 'string' || opt.group === '') {
|
|
11948
12211
|
ungrouped.push(optionEl);
|
|
12212
|
+
this.panelPositions.set(optionEl, position);
|
|
11949
12213
|
return;
|
|
11950
12214
|
}
|
|
11951
12215
|
let optgroup = groups.get(opt.group);
|
|
@@ -11954,6 +12218,7 @@ class PdsCombobox {
|
|
|
11954
12218
|
optgroup.label = opt.group;
|
|
11955
12219
|
groups.set(opt.group, optgroup);
|
|
11956
12220
|
groupEntries.push(optgroup);
|
|
12221
|
+
this.panelPositions.set(optgroup, position);
|
|
11957
12222
|
}
|
|
11958
12223
|
if (!optgroup.hasAttribute('data-icon') && typeof opt.groupIcon === 'string' && opt.groupIcon !== '') {
|
|
11959
12224
|
optgroup.setAttribute('data-icon', opt.groupIcon);
|
|
@@ -12418,6 +12683,7 @@ class PdsCombobox {
|
|
|
12418
12683
|
handleGroupedPanelKey(e) {
|
|
12419
12684
|
if (!this.showsGroupedPanel)
|
|
12420
12685
|
return false;
|
|
12686
|
+
const highlightShown = this.keyboardNavigating;
|
|
12421
12687
|
this.keyboardNavigating = true;
|
|
12422
12688
|
// In the input trigger, Left and Right still move the caret through typed text, and Space,
|
|
12423
12689
|
// Home and End edit it, as they do in the panel's search field.
|
|
@@ -12427,23 +12693,32 @@ class PdsCombobox {
|
|
|
12427
12693
|
if (e.key === ' ' || e.key === 'Home' || e.key === 'End')
|
|
12428
12694
|
return false;
|
|
12429
12695
|
}
|
|
12430
|
-
const entries =
|
|
12696
|
+
const entries = this.panelEntries();
|
|
12431
12697
|
const drilledIn = this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null;
|
|
12432
12698
|
const current = this.currentPanelItem();
|
|
12433
12699
|
const column = panelColumn(entries, this.openGroup, current, drilledIn);
|
|
12434
12700
|
if (column.length === 0)
|
|
12435
12701
|
return false;
|
|
12436
12702
|
const position = current === null ? -1 : column.indexOf(current);
|
|
12703
|
+
// Drill-in doesn't shade a group row the pointer or a click-open highlighted, so the first Up or
|
|
12704
|
+
// Down shows that row rather than moving past one the user never saw.
|
|
12705
|
+
const unseenRow = !highlightShown && this.effectiveGroupDisplay === 'drill-in' && current !== null && typeof current !== 'number' && current !== this.openGroup;
|
|
12437
12706
|
const moveTo = (to) => {
|
|
12438
12707
|
e.preventDefault();
|
|
12439
12708
|
this.highlightPanelItem(column[Math.max(0, Math.min(column.length - 1, to))]);
|
|
12709
|
+
this.revealedGroupLabel = null;
|
|
12710
|
+
return true;
|
|
12711
|
+
};
|
|
12712
|
+
const reveal = () => {
|
|
12713
|
+
e.preventDefault();
|
|
12714
|
+
this.revealedGroupLabel = current.label;
|
|
12440
12715
|
return true;
|
|
12441
12716
|
};
|
|
12442
12717
|
switch (e.key) {
|
|
12443
12718
|
case 'ArrowDown':
|
|
12444
|
-
return moveTo(position < 0 ? 0 : position + 1);
|
|
12719
|
+
return unseenRow ? reveal() : moveTo(position < 0 ? 0 : position + 1);
|
|
12445
12720
|
case 'ArrowUp':
|
|
12446
|
-
return moveTo(position < 0 ? column.length - 1 : position - 1);
|
|
12721
|
+
return unseenRow ? reveal() : moveTo(position < 0 ? column.length - 1 : position - 1);
|
|
12447
12722
|
case 'Home':
|
|
12448
12723
|
return moveTo(0);
|
|
12449
12724
|
case 'End':
|
|
@@ -12576,7 +12851,7 @@ class PdsCombobox {
|
|
|
12576
12851
|
// In the grouped panel, the first row with something to choose: a group stays closed until
|
|
12577
12852
|
// it's opened.
|
|
12578
12853
|
if (this.showsGroupedPanel) {
|
|
12579
|
-
const first =
|
|
12854
|
+
const first = this.panelEntries().find(entry => entry.kind === 'group' ? !isGroupDisabled(entry.group) : !isOptionDisabled(entry.option));
|
|
12580
12855
|
this.highlightedIndex = (first === null || first === void 0 ? void 0 : first.kind) === 'option' ? first.index : -1;
|
|
12581
12856
|
this.highlightedGroup = (first === null || first === void 0 ? void 0 : first.kind) === 'group' ? first.group.optgroup : null;
|
|
12582
12857
|
return;
|
|
@@ -12641,8 +12916,13 @@ class PdsCombobox {
|
|
|
12641
12916
|
}
|
|
12642
12917
|
// Matched by id, not a selector: componentId is consumer text and may not be selector-safe.
|
|
12643
12918
|
const id = this.groupDomId(groupRow);
|
|
12644
|
-
|
|
12645
|
-
.find(
|
|
12919
|
+
const row = Array.from(this.listboxEl.querySelectorAll('[role="treeitem"]'))
|
|
12920
|
+
.find(item => item.id === id);
|
|
12921
|
+
// The row's trigger, not its item: the row back's item wraps the group's options, and showing
|
|
12922
|
+
// all of a group taller than the list would scroll the row back itself out of view.
|
|
12923
|
+
const trigger = Array.from((_a = row === null || row === void 0 ? void 0 : row.children) !== null && _a !== void 0 ? _a : []).find(child => child.classList.contains('pds-combobox__group-row-trigger'));
|
|
12924
|
+
if (trigger)
|
|
12925
|
+
this.scrollIntoViewNearest(trigger, false);
|
|
12646
12926
|
this.updateAriaActiveDescendant();
|
|
12647
12927
|
return;
|
|
12648
12928
|
}
|
|
@@ -12693,7 +12973,7 @@ class PdsCombobox {
|
|
|
12693
12973
|
this.flyout.reveal(flyout, currentOption);
|
|
12694
12974
|
}
|
|
12695
12975
|
else {
|
|
12696
|
-
|
|
12976
|
+
this.scrollIntoViewNearest(currentOption, true);
|
|
12697
12977
|
}
|
|
12698
12978
|
}
|
|
12699
12979
|
// Always update aria-activedescendant on the trigger element
|
|
@@ -12790,6 +13070,8 @@ class PdsCombobox {
|
|
|
12790
13070
|
this.highlightedIndex = -1;
|
|
12791
13071
|
this.highlightedGroup = group;
|
|
12792
13072
|
this.keyboardNavigating = false;
|
|
13073
|
+
// So revealing this row again later is announced again.
|
|
13074
|
+
this.revealedGroupLabel = null;
|
|
12793
13075
|
}
|
|
12794
13076
|
// Get the label of the selected option
|
|
12795
13077
|
get selectedLabel() {
|
|
@@ -12945,7 +13227,8 @@ class PdsCombobox {
|
|
|
12945
13227
|
'pds-combobox__listbox--grouped': this.groupDisplay !== 'inline',
|
|
12946
13228
|
'pds-combobox__listbox--drill-in': this.drillDirection === 'in',
|
|
12947
13229
|
'pds-combobox__listbox--drill-out': this.drillDirection === 'out',
|
|
12948
|
-
|
|
13230
|
+
'pds-combobox__listbox--pointer-hover': this.pointerCanHover,
|
|
13231
|
+
}, onAnimationEnd: this.onDrillAnimationEnd, onPointerMove: this.onPanelPointer, onPointerDown: this.onPanelPointer, role: this.showsGroupedPanel ? 'tree' : 'listbox', id: this.listboxId, "aria-label": this.label || 'Options', "aria-multiselectable": "false",
|
|
12949
13232
|
// Focusable but out of the tab order with panel search, so it can take focus when a
|
|
12950
13233
|
// drilled-in group hides the field. Dropping it while focused would blur the list and close.
|
|
12951
13234
|
tabIndex: withSearch ? -1 : undefined, "aria-activedescendant": listTakesFocus ? this.activeDescendantId : undefined, onKeyDown: withSearch ? this.onPanelTreeKeyDown : undefined, ref: el => {
|
|
@@ -13111,7 +13394,21 @@ class PdsCombobox {
|
|
|
13111
13394
|
'pds-combobox__option--layout': isLayout,
|
|
13112
13395
|
'pds-combobox__option--chip': isChip,
|
|
13113
13396
|
'pds-combobox__option--disabled': isDisabled,
|
|
13114
|
-
}, "data-option-index": index, onMouseDown: this.onOptionMouseDown, onClick: this.onOptionClick, onMouseEnter: this.onOptionMouseEnter, onKeyDown: this.onOptionKeyDown }, isLayout ? (hAsync("pds-box", { class: "pds-combobox__option-layout-wrapper", innerHTML: this.getOptionLayoutContent(option) })) : isChip ? (this.renderOptionChip(option)) : (this.
|
|
13397
|
+
}, "data-option-index": index, onMouseDown: this.onOptionMouseDown, onClick: this.onOptionClick, onMouseEnter: this.onOptionMouseEnter, onKeyDown: this.onOptionKeyDown }, isLayout ? (hAsync("pds-box", { class: "pds-combobox__option-layout-wrapper", innerHTML: this.getOptionLayoutContent(option) })) : isChip ? (this.renderOptionChip(option)) : (this.renderOptionLabel(option)), isSelected && hAsync("pds-icon", { icon: "check", size: "regular", class: "pds-combobox__option-check" })));
|
|
13398
|
+
}
|
|
13399
|
+
/** An option's text, after its `data-icon` when it has one. */
|
|
13400
|
+
renderOptionLabel(option) {
|
|
13401
|
+
const icon = optionIconOf(option);
|
|
13402
|
+
if (icon === null)
|
|
13403
|
+
return this.getOptionLabel(option);
|
|
13404
|
+
return (hAsync("span", { class: "pds-combobox__option-label" }, hAsync("pds-icon", { name: icon, size: "regular", "aria-hidden": "true", class: "pds-combobox__option-icon" }), this.getOptionLabel(option)));
|
|
13405
|
+
}
|
|
13406
|
+
/** The grouped panel's rows, in the order the panel draws them and the keyboard moves through. */
|
|
13407
|
+
panelEntries() {
|
|
13408
|
+
// Slotted markup is already in order; only options from data record positions.
|
|
13409
|
+
if (this.options === undefined && !this.asyncUrl)
|
|
13410
|
+
return buildPanelEntries(this.filteredItems);
|
|
13411
|
+
return buildPanelEntries(this.filteredItems, element => this.panelPositions.get(element));
|
|
13115
13412
|
}
|
|
13116
13413
|
/**
|
|
13117
13414
|
* `flyout`: one row per group, its options in a flyout beside it. `drill-in`: the same rows, and
|
|
@@ -13119,7 +13416,7 @@ class PdsCombobox {
|
|
|
13119
13416
|
* it's a tree: the rows and ungrouped options are level 1, a group's options level 2.
|
|
13120
13417
|
*/
|
|
13121
13418
|
renderGroupedPanel() {
|
|
13122
|
-
const entries =
|
|
13419
|
+
const entries = this.panelEntries();
|
|
13123
13420
|
const setsize = entries.length;
|
|
13124
13421
|
if (this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null) {
|
|
13125
13422
|
const position = entries.findIndex(entry => entry.kind === 'group' && entry.group.optgroup === this.openGroup);
|
|
@@ -13150,22 +13447,26 @@ class PdsCombobox {
|
|
|
13150
13447
|
return (hAsync("li", { key: "group-back", id: id, class: {
|
|
13151
13448
|
'pds-combobox__group-back': true,
|
|
13152
13449
|
'pds-combobox__group-back--disabled': disabled,
|
|
13153
|
-
|
|
13450
|
+
// As the group rows: shaded for the keys, and by `:hover` for the pointer.
|
|
13451
|
+
'pds-combobox__group-back--highlighted': this.keyboardNavigating && this.highlightedGroupRow === group.optgroup,
|
|
13154
13452
|
'pds-combobox__group-back--keyboard': this.keyboardNavigating && this.highlightedGroupRow === group.optgroup,
|
|
13155
13453
|
}, role: "treeitem", "aria-expanded": "true", "aria-disabled": disabled ? 'true' : undefined, "aria-level": 1, "aria-posinset": posinset, "aria-setsize": setsize, "aria-labelledby": `${id}-label` }, hAsync("div", { class: "pds-combobox__group-row-trigger pds-combobox__group-back-trigger", onMouseDown: this.onOptionMouseDown, onMouseEnter: this.onGroupBackMouseEnter, onClick: this.onGroupBackClick }, hAsync("span", { class: "pds-combobox__group-row-label", id: `${id}-label` }, hAsync("pds-icon", { name: "caret-left", size: "regular", "aria-hidden": "true", class: "pds-combobox__group-row-caret" }), hAsync("span", { class: "visually-hidden" }, this.drillInBackLabel, ": "), group.label)), hAsync("ul", { class: "pds-combobox__drill-in-options", role: "group", "aria-label": group.label }, this.renderGroupOptions(group))));
|
|
13156
13454
|
}
|
|
13157
13455
|
renderGroupRow(group, groupIndex, { posinset, setsize }) {
|
|
13158
13456
|
const flyout = this.effectiveGroupDisplay === 'flyout';
|
|
13159
13457
|
const isOpen = flyout && this.openGroup === group.optgroup;
|
|
13160
|
-
|
|
13458
|
+
// Drill-in shades a group row only for the keys: not for the group holding the selection, or the
|
|
13459
|
+
// row the pointer or a click-open left highlighted, which read as picked. `:hover` covers the pointer.
|
|
13460
|
+
const hasSelection = flyout && group.options.some(({ option }) => this.isOptionSelected(option));
|
|
13461
|
+
const isCurrent = this.highlightedGroupRow === group.optgroup;
|
|
13161
13462
|
const disabled = isGroupDisabled(group);
|
|
13162
13463
|
const id = this.groupDomId(group.optgroup);
|
|
13163
13464
|
return (hAsync("li", { key: `group-${groupIndex}`, id: id, class: {
|
|
13164
13465
|
'pds-combobox__group-row': true,
|
|
13165
13466
|
'pds-combobox__group-row--open': isOpen,
|
|
13166
13467
|
'pds-combobox__group-row--has-selection': hasSelection,
|
|
13167
|
-
'pds-combobox__group-row--highlighted':
|
|
13168
|
-
'pds-combobox__group-row--keyboard':
|
|
13468
|
+
'pds-combobox__group-row--highlighted': isCurrent && (flyout || this.keyboardNavigating),
|
|
13469
|
+
'pds-combobox__group-row--keyboard': isCurrent && this.keyboardNavigating,
|
|
13169
13470
|
'pds-combobox__group-row--disabled': disabled,
|
|
13170
13471
|
}, role: "treeitem", "aria-expanded": isOpen ? 'true' : 'false', "aria-disabled": disabled ? 'true' : undefined, "aria-level": 1, "aria-posinset": posinset, "aria-setsize": setsize, "aria-labelledby": `${id}-label`, "data-group-index": groupIndex, onMouseEnter: flyout ? this.onGroupRowMouseEnter : undefined, onMouseLeave: flyout ? this.onGroupRowMouseLeave : undefined }, hAsync("div", { class: "pds-combobox__group-row-trigger", "data-group-index": groupIndex, onMouseDown: this.onOptionMouseDown, onMouseEnter: this.onGroupRowTriggerMouseEnter, onClick: this.onGroupRowClick }, hAsync("span", { class: "pds-combobox__group-row-label", id: `${id}-label` }, group.icon !== null && (
|
|
13171
13472
|
// `name`, not `icon`: `icon` also loads URLs and data: SVGs, unsanitized.
|
|
@@ -13181,7 +13482,23 @@ class PdsCombobox {
|
|
|
13181
13482
|
}
|
|
13182
13483
|
// Helper method to render default text content
|
|
13183
13484
|
renderDefaultContent() {
|
|
13184
|
-
|
|
13485
|
+
const icon = this.selectedIcon;
|
|
13486
|
+
return (hAsync("span", { class: {
|
|
13487
|
+
'pds-combobox__button-trigger-label': true,
|
|
13488
|
+
'pds-combobox__button-trigger-label--placeholder': !this.selectedLabel,
|
|
13489
|
+
'pds-combobox__button-trigger-label--with-icon': icon !== null,
|
|
13490
|
+
} }, icon !== null && (
|
|
13491
|
+
// `name`, not `icon`: `icon` also loads URLs and data: SVGs, unsanitized.
|
|
13492
|
+
hAsync("pds-icon", { name: icon, size: "regular", "aria-hidden": "true", class: "pds-combobox__button-trigger-icon" })), this.selectedLabel || this.placeholder));
|
|
13493
|
+
}
|
|
13494
|
+
/** The selection's icon for the button trigger: the option's own, or else its group's. */
|
|
13495
|
+
get selectedIcon() {
|
|
13496
|
+
var _a;
|
|
13497
|
+
const option = this.selectedOption;
|
|
13498
|
+
if (!option)
|
|
13499
|
+
return null;
|
|
13500
|
+
const optgroup = parentOptgroupOf(option);
|
|
13501
|
+
return (_a = optionIconOf(option)) !== null && _a !== void 0 ? _a : (optgroup !== null ? groupIconOf(optgroup) : null);
|
|
13185
13502
|
}
|
|
13186
13503
|
// Helper method to check if we should show layout content
|
|
13187
13504
|
shouldShowLayoutContent() {
|
|
@@ -13299,6 +13616,7 @@ class PdsCombobox {
|
|
|
13299
13616
|
];
|
|
13300
13617
|
}
|
|
13301
13618
|
render() {
|
|
13619
|
+
var _a;
|
|
13302
13620
|
const triggerClass = [
|
|
13303
13621
|
'pds-combobox__button-trigger',
|
|
13304
13622
|
`pds-combobox__button-trigger--${this.triggerVariant}`,
|
|
@@ -13306,13 +13624,18 @@ class PdsCombobox {
|
|
|
13306
13624
|
]
|
|
13307
13625
|
.filter(Boolean)
|
|
13308
13626
|
.join(' ');
|
|
13309
|
-
return (hAsync(Host, { key: '
|
|
13627
|
+
return (hAsync(Host, { key: 'e934b937916e45f715e6fb54d23a2a5e7c8ce4f6', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: '79d282907c4f218e124b4f9250e0aedb0e9ea51d', class: "pds-combobox", tabIndex: -1, onFocusout: this.onComboboxFocusOut, part: "combobox" }, this.hasVisibleLabel && (hAsync("label", { key: 'd05a4a8fe5362b2b0a684f36115c127689c35c2f', htmlFor: this.trigger === 'input' ? this.componentId : undefined, id: this.labelId, class: "pds-combobox__label", onClick: this.onLabelClick }, this.label)), this.trigger === 'input' ? (hAsync("div", { class: "pds-combobox__input-wrapper", style: { width: this.triggerWidth } }, hAsync("input", { ref: el => {
|
|
13310
13628
|
this.inputEl = el;
|
|
13311
13629
|
this.triggerEl = el;
|
|
13312
13630
|
}, class: {
|
|
13313
13631
|
'pds-combobox__input': true,
|
|
13314
13632
|
'pds-combobox__input--invalid': this.isInvalid(),
|
|
13315
|
-
}, type: "text", role: "combobox", "aria-autocomplete": "list", "aria-haspopup": this.inputPopupRole === 'tree' ? 'tree' : undefined, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), hAsync("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (hAsync("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (hAsync("div", { class: triggerClass, style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), this.renderMessages(), hAsync("div", { key: '
|
|
13633
|
+
}, type: "text", role: "combobox", "aria-autocomplete": "list", "aria-haspopup": this.inputPopupRole === 'tree' ? 'tree' : undefined, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), hAsync("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (hAsync("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (hAsync("div", { class: triggerClass, style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), this.renderMessages(), hAsync("div", { key: '38d9c018d59472ef8b7eb3facb47bea5c73f5f1e', style: { display: 'none' } }, hAsync("slot", { key: '26acb32e5f301b568485d52e29b68e526ef1d525', onSlotchange: () => this.updateOptions() })), this.renderDropdown(), this.groupDisplay !== 'inline' && [
|
|
13634
|
+
hAsync("span", { key: "drill-status", class: "visually-hidden", role: "status", "aria-live": "polite" }, this.isOpen && this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null ? this.openGroup.label : ''),
|
|
13635
|
+
// Its own region: sharing one, revealing a row then opening it would leave the text the
|
|
13636
|
+
// same, and opening the group would go unannounced.
|
|
13637
|
+
hAsync("span", { key: "reveal-status", class: "visually-hidden", role: "status", "aria-live": "polite" }, this.isOpen ? (_a = this.revealedGroupLabel) !== null && _a !== void 0 ? _a : '' : ''),
|
|
13638
|
+
])));
|
|
13316
13639
|
}
|
|
13317
13640
|
static get formAssociated() { return true; }
|
|
13318
13641
|
get el() { return getElement(this); }
|
|
@@ -13395,6 +13718,8 @@ class PdsCombobox {
|
|
|
13395
13718
|
"drillDirection": [32],
|
|
13396
13719
|
"highlightedGroup": [32],
|
|
13397
13720
|
"keyboardNavigating": [32],
|
|
13721
|
+
"revealedGroupLabel": [32],
|
|
13722
|
+
"pointerCanHover": [32],
|
|
13398
13723
|
"panelQuery": [32],
|
|
13399
13724
|
"flyoutFallback": [32],
|
|
13400
13725
|
"selectedOption": [32],
|
|
@@ -13442,7 +13767,7 @@ class PdsContainer {
|
|
|
13442
13767
|
hostStyle['--pine-container-max-width'] = customSize;
|
|
13443
13768
|
if (!this.centered)
|
|
13444
13769
|
hostStyle['margin-inline'] = '0';
|
|
13445
|
-
return (hAsync(Host, { key: '
|
|
13770
|
+
return (hAsync(Host, { key: '8a9b10b5d0e348b73f8a6bd7933083c596df10d8', class: { [`pds-container--${this.size}`]: isNamed }, style: Object.keys(hostStyle).length ? hostStyle : undefined }, hAsync(Tag, { key: '55fb22be49377c4cccf08381e7cf954a3f097d08', part: "container" }, hAsync("slot", { key: '4cd9c4fa74a2c6a056e076ab67a0279c395b5c79' }))));
|
|
13446
13771
|
}
|
|
13447
13772
|
static get style() { return pdsContainerCss(); }
|
|
13448
13773
|
static get cmpMeta() { return {
|
|
@@ -13562,7 +13887,7 @@ class PdsCopytext {
|
|
|
13562
13887
|
render() {
|
|
13563
13888
|
const hostClass = this.classNames();
|
|
13564
13889
|
this.hostKeeper.record(hostClass);
|
|
13565
|
-
return (hAsync(Host, { key: '
|
|
13890
|
+
return (hAsync(Host, { key: 'd9bd40af6e435d606841cb551341eab33c5983b7', class: hostClass, id: this.componentId }, hAsync("pds-button", { key: '7a42b32678fccb2cbe0d7a68a5da6d5fe5276a4a', type: "button", variant: "unstyled", onClick: this.handleClick }, hAsync("span", { key: '732db283b8075ebad8e1daff70692bac2978aade', ref: (el) => this.valueSpanEl = el }, this.value), hAsync("pds-icon", { key: 'ebfd34b9b5a47b78783302ce97d752af09e3f3e3', "aria-hidden": "true", icon: copy, size: "16px" }))));
|
|
13566
13891
|
}
|
|
13567
13892
|
get el() { return getElement(this); }
|
|
13568
13893
|
static get watchers() { return {
|
|
@@ -14256,7 +14581,7 @@ function clockFor(locale) {
|
|
|
14256
14581
|
return { hour12, am: (_a = period(1)) !== null && _a !== void 0 ? _a : 'AM', pm: (_b = period(13)) !== null && _b !== void 0 ? _b : 'PM' };
|
|
14257
14582
|
}
|
|
14258
14583
|
|
|
14259
|
-
const pdsDatepickerCss = () => `:host{--pds-datepicker-day-size:var(--pine-dimension-500);--pds-datepicker-presets-width:200px;display:inline-block}:host([full-width]){display:block}pds-input{display:block}:host(.pds-datepicker--time) pds-input{min-width:220px}:host(.pds-datepicker--range) pds-input{min-width:260px}:host(.pds-datepicker--range.pds-datepicker--time) pds-input{min-width:min(380px, 100%)}.pds-datepicker__trigger,.pds-datepicker__clear{-ms-flex-align:center;align-items:center;background:transparent;border:0;border-radius:var(--pine-border-radius-sm);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-2xs)}.pds-datepicker__trigger:hover:not(:disabled),.pds-datepicker__clear:hover:not(:disabled){background:var(--pine-color-background-muted);color:var(--pine-color-text-strong)}.pds-datepicker__trigger:focus-visible,.pds-datepicker__clear:focus-visible{outline:var(--pine-outline-focus)}.pds-datepicker__trigger:disabled,.pds-datepicker__clear:disabled{color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-datepicker__clear{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-datepicker__nav{-ms-flex-align:center;align-items:center;background:var(--pine-color-secondary);border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;height:var(--pine-dimension-400);-ms-flex-pack:center;justify-content:center;padding:0;width:var(--pine-dimension-400)}.pds-datepicker__nav:hover:not(:disabled){background:var(--pine-color-secondary-hover);border-color:var(--pine-color-border-hover)}.pds-datepicker__nav:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-datepicker__nav:disabled{border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-secondary-disabled);cursor:not-allowed}.pds-datepicker__nav:dir(rtl) pds-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.pds-datepicker__dialog:focus{outline:none}.pds-datepicker__dialog{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-150);-webkit-box-shadow:var(--pine-box-shadow-200);box-shadow:var(--pine-box-shadow-200);-webkit-box-sizing:border-box;box-sizing:border-box;left:0;max-height:calc(100vh - var(--pine-dimension-sm));max-height:calc(100dvh - var(--pine-dimension-sm));max-width:calc(100vw - var(--pine-dimension-sm));overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;padding:var(--pine-dimension-sm);pointer-events:auto;position:fixed;top:0;visibility:hidden;z-index:var(--pine-z-index-priority)}:host-context([data-theme=dark]) .pds-datepicker__dialog{border:var(--pine-border)}.pds-datepicker__header{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-after:var(--pine-dimension-sm);margin-block-end:var(--pine-dimension-sm)}.pds-datepicker__nav-spacer{-ms-flex:none;flex:none;width:var(--pine-dimension-400)}.pds-datepicker__heading{color:var(--pine-color-text);font:var(--pine-typography-heading-5);font-weight:var(--pine-font-weight-semi-bold)}.pds-datepicker__grid{border-collapse:collapse;border-spacing:0}.pds-datepicker__weekday{color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm);height:var(--pds-datepicker-day-size);padding:0;text-align:center;width:var(--pds-datepicker-day-size)}.pds-datepicker__day{border-radius:var(--pine-border-radius-full);color:var(--pine-color-text-secondary);cursor:pointer;font:var(--pine-typography-body);height:var(--pds-datepicker-day-size);padding:0;position:relative;text-align:center;-webkit-transition:background var(--pine-motion-duration-fast) var(--pine-motion-easing-in);transition:background var(--pine-motion-duration-fast) var(--pine-motion-easing-in);width:var(--pds-datepicker-day-size)}.pds-datepicker__day:hover{background:var(--pine-color-background-muted)}.pds-datepicker__day:focus-visible{outline:var(--pine-outline-focus);outline-offset:calc(var(--pine-border-width-thick) * -1)}.pds-datepicker__day--empty{cursor:default;pointer-events:none}.pds-datepicker__day--today::after{background:var(--pine-color-primary);border-radius:var(--pine-border-radius-full);content:"";height:var(--pine-dimension-050);inset-block-end:var(--pine-dimension-050);inset-inline-start:50%;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:var(--pine-dimension-050)}.pds-datepicker__day--selected,.pds-datepicker__day--selected:hover{background:var(--pine-color-primary);border-radius:var(--pine-border-radius-full);color:var(--pine-color-text-primary)}.pds-datepicker__day--selected:focus-visible{outline-offset:var(--pine-border-width)}.pds-datepicker__day--range-start{border-end-end-radius:0;border-start-end-radius:0}.pds-datepicker__day--range-end{border-end-start-radius:0;border-start-start-radius:0}.pds-datepicker__day--range-start.pds-datepicker__day--row-end{border-end-end-radius:var(--pine-border-radius-full);border-start-end-radius:var(--pine-border-radius-full)}.pds-datepicker__day--range-end.pds-datepicker__day--row-start{border-end-start-radius:var(--pine-border-radius-full);border-start-start-radius:var(--pine-border-radius-full)}.pds-datepicker__day--selected.pds-datepicker__day--today::after{background:var(--pine-color-text-primary)}.pds-datepicker__day--in-range,.pds-datepicker__day--in-range:hover{background:var(--pine-color-background-muted);border-radius:0;color:var(--pine-color-text-secondary)}.pds-datepicker__day--row-start{border-end-start-radius:var(--pine-border-radius-full);border-start-start-radius:var(--pine-border-radius-full)}.pds-datepicker__day--row-end{border-end-end-radius:var(--pine-border-radius-full);border-start-end-radius:var(--pine-border-radius-full)}.pds-datepicker__day--disabled,.pds-datepicker__day--disabled:hover{background:transparent;color:var(--pine-color-text-disabled);cursor:not-allowed;text-decoration:line-through}.pds-datepicker__day--in-range:hover{background:var(--pine-color-background-inset)}.pds-datepicker__dialog--range{display:-ms-flexbox;display:flex;padding:0}.pds-datepicker__panel{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0}.pds-datepicker__dialog--range .pds-datepicker__panel{padding:var(--pine-dimension-sm)}.pds-datepicker__months{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-lg)}.pds-datepicker__presets-column{-webkit-border-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-inline-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);-ms-flex:none;flex:none;position:relative;width:var(--pds-datepicker-presets-width)}.pds-datepicker__presets{-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);inset:0;list-style:none;margin:0;overflow-y:auto;padding:var(--pine-dimension-150);position:absolute}.pds-datepicker__preset{-ms-flex-align:center;align-items:center;background:transparent;border:0;border-radius:var(--pine-border-radius-md);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);text-align:start;-webkit-transition:background var(--pine-motion-duration-fast) var(--pine-motion-easing-in);transition:background var(--pine-motion-duration-fast) var(--pine-motion-easing-in);width:100%}.pds-datepicker__preset:hover:not(:disabled){background:var(--pine-color-background-muted)}.pds-datepicker__preset:focus-visible{outline:var(--pine-outline-focus)}.pds-datepicker__preset:disabled{color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-datepicker__preset--selected{background:var(--pine-color-background-muted);color:var(--pine-color-text-active)}.pds-datepicker__footer{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-overlay);-webkit-border-before:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-start:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-xs);inset-block-end:calc(var(--pine-dimension-sm) * -1);-ms-flex-pack:end;justify-content:flex-end;margin-block:var(--pine-dimension-sm) calc(var(--pine-dimension-sm) * -1);padding-block:var(--pine-dimension-sm);position:-webkit-sticky;position:sticky}.pds-datepicker__selection{color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm-medium);-webkit-margin-end:auto;margin-inline-end:auto}.pds-datepicker__dropdowns{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-datepicker__select-wrap{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-datepicker__heading-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-border-radius-md);color:var(--pine-color-text);cursor:pointer;field-sizing:content;font:var(--pine-typography-heading-5);font-weight:var(--pine-font-weight-semi-bold);padding-block:var(--pine-dimension-2xs);padding-inline:var(--pine-dimension-xs) calc(var(--pine-dimension-xs) + var(--pine-dimension-sm))}.pds-datepicker__heading-select:hover{background:var(--pine-color-background-muted)}.pds-datepicker__heading-select:focus-visible{outline:var(--pine-outline-focus)}.pds-datepicker__select-caret{color:var(--pine-color-text-secondary);inset-inline-end:var(--pine-dimension-xs);pointer-events:none;position:absolute}.pds-datepicker__time{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-before:var(--pine-dimension-sm);margin-block-start:var(--pine-dimension-sm);padding-inline:var(--pine-dimension-xs)}.pds-datepicker__time-label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium)}.pds-datepicker__time-field{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-border-radius-md);display:-ms-inline-flexbox;display:inline-flex;min-height:var(--pine-dimension-400);padding-inline:var(--pine-dimension-2xs)}.pds-datepicker__time-field:hover{border-color:var(--pine-color-border-hover)}.pds-datepicker__time-field:focus-within{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-datepicker__time-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-border-radius-sm);color:var(--pine-color-text-strong);cursor:pointer;font:var(--pine-typography-body);font-variant-numeric:tabular-nums;padding:var(--pine-dimension-2xs);text-align:center}.pds-datepicker__time-select:focus-visible{background:var(--pine-color-background-muted);outline:none}.pds-datepicker__time-select--period{-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs)}.pds-datepicker__time-separator{color:var(--pine-color-text-secondary)}:host-context([data-theme=dark]) select{color-scheme:dark}.pds-datepicker__action{background:var(--pine-color-secondary);border:var(--pine-border);border-radius:var(--pine-border-radius-full);color:var(--pine-color-text-secondary);cursor:pointer;font:var(--pine-typography-body-medium);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-sm)}.pds-datepicker__action:hover:not(:disabled){background:var(--pine-color-secondary-hover);border-color:var(--pine-color-border-hover)}.pds-datepicker__action:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-datepicker__action:disabled{background:var(--pine-color-secondary-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-secondary-disabled);cursor:not-allowed}.pds-datepicker__action--primary{background:var(--pine-color-primary);border-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-datepicker__action--primary:hover:not(:disabled){background:var(--pine-color-primary-hover);border-color:var(--pine-color-primary-hover)}.pds-datepicker__action--primary:disabled{background:var(--pine-color-primary-disabled);border-color:var(--pine-color-primary-disabled);color:var(--pine-color-text-primary-disabled)}@media (max-width: 600px){.pds-datepicker__dialog--range{-ms-flex-direction:column;flex-direction:column}.pds-datepicker__presets-column{-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);-webkit-border-end:0;border-inline-end:0;width:auto}.pds-datepicker__presets{-ms-flex-direction:row;flex-direction:row;overflow-x:auto;position:static}.pds-datepicker__preset{white-space:nowrap}.pds-datepicker__selection{-ms-flex-preferred-size:100%;flex-basis:100%}}.pds-datepicker__trigger,.pds-datepicker__clear,.pds-datepicker__nav,.pds-datepicker__weekday,.pds-datepicker__day,.pds-datepicker__preset,.pds-datepicker__action{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (forced-colors: active){.pds-datepicker__day--selected,.pds-datepicker__day--selected:hover{background:Highlight;color:HighlightText;forced-color-adjust:none}.pds-datepicker__day--in-range,.pds-datepicker__day--in-range:hover{border-block:var(--pine-border-width-thin) solid Highlight}.pds-datepicker__day--today::after{background:CanvasText;forced-color-adjust:none}.pds-datepicker__day--selected.pds-datepicker__day--today::after{background:HighlightText}.pds-datepicker__day--disabled{color:GrayText}}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
|
|
14584
|
+
const pdsDatepickerCss = () => `:host{--pds-datepicker-day-size:var(--pine-dimension-500);--pds-datepicker-presets-width:200px;display:inline-block}:host([full-width]){display:block}pds-input{display:block}:host(.pds-datepicker--time) pds-input{min-width:220px}:host(.pds-datepicker--range) pds-input{min-width:260px}:host(.pds-datepicker--range.pds-datepicker--time) pds-input{min-width:min(380px, 100%)}.pds-datepicker__trigger,.pds-datepicker__clear{-ms-flex-align:center;align-items:center;background:transparent;border:0;border-radius:var(--pine-border-radius-sm);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-2xs)}.pds-datepicker__trigger:hover:not(:disabled),.pds-datepicker__clear:hover:not(:disabled){background:var(--pine-color-background-muted);color:var(--pine-color-text-strong)}.pds-datepicker__trigger:focus-visible,.pds-datepicker__clear:focus-visible{outline:var(--pine-outline-focus)}.pds-datepicker__trigger:disabled,.pds-datepicker__clear:disabled{color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-datepicker__clear{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-datepicker__nav{-ms-flex-align:center;align-items:center;background:var(--pine-color-secondary);border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;height:var(--pine-dimension-400);-ms-flex-pack:center;justify-content:center;padding:0;width:var(--pine-dimension-400)}.pds-datepicker__nav:hover:not(:disabled){background:var(--pine-color-secondary-hover);border-color:var(--pine-color-border-hover)}.pds-datepicker__nav:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-datepicker__nav:disabled{border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-secondary-disabled);cursor:not-allowed}.pds-datepicker__nav:dir(rtl) pds-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.pds-datepicker__dialog:focus{outline:none}.pds-datepicker__dialog{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-150);-webkit-box-shadow:var(--pine-box-shadow-200);box-shadow:var(--pine-box-shadow-200);-webkit-box-sizing:border-box;box-sizing:border-box;left:0;max-height:calc(100vh - var(--pine-dimension-sm));max-height:calc(100dvh - var(--pine-dimension-sm));max-width:calc(100vw - var(--pine-dimension-sm));overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;padding:var(--pine-dimension-sm);pointer-events:auto;position:fixed;top:0;visibility:hidden;z-index:var(--pine-z-index-priority)}:host-context([data-theme=dark]) .pds-datepicker__dialog{border:var(--pine-border)}.pds-datepicker__header{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-after:var(--pine-dimension-sm);margin-block-end:var(--pine-dimension-sm)}.pds-datepicker__nav-spacer{-ms-flex:none;flex:none;width:var(--pine-dimension-400)}.pds-datepicker__heading{color:var(--pine-color-text);font:var(--pine-typography-heading-5);font-weight:var(--pine-font-weight-semi-bold)}.pds-datepicker__grid{border-collapse:collapse;border-spacing:0}.pds-datepicker__weekday{color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm);height:var(--pds-datepicker-day-size);padding:0;text-align:center;width:var(--pds-datepicker-day-size)}.pds-datepicker__day{border-radius:var(--pine-border-radius-full);color:var(--pine-color-text-secondary);cursor:pointer;font:var(--pine-typography-body);height:var(--pds-datepicker-day-size);padding:0;position:relative;text-align:center;-webkit-transition:background var(--pine-motion-duration-fast) var(--pine-motion-easing-in);transition:background var(--pine-motion-duration-fast) var(--pine-motion-easing-in);width:var(--pds-datepicker-day-size)}.pds-datepicker__day:hover{background:var(--pine-color-background-muted)}.pds-datepicker__day:focus-visible{outline:var(--pine-outline-focus);outline-offset:calc(var(--pine-border-width-thick) * -1)}.pds-datepicker__day--empty{cursor:default;pointer-events:none}.pds-datepicker__day--today::after{background:var(--pine-color-primary);border-radius:var(--pine-border-radius-full);content:"";height:var(--pine-dimension-050);inset-block-end:var(--pine-dimension-050);inset-inline-start:50%;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:var(--pine-dimension-050)}.pds-datepicker__day--selected,.pds-datepicker__day--selected:hover{background:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-datepicker__day--selected:focus-visible{outline-offset:var(--pine-border-width)}.pds-datepicker__day--range-start{border-end-end-radius:0;border-start-end-radius:0}.pds-datepicker__day--range-end{border-end-start-radius:0;border-start-start-radius:0}.pds-datepicker__day--range-start.pds-datepicker__day--row-end{border-end-end-radius:var(--pine-border-radius-full);border-start-end-radius:var(--pine-border-radius-full)}.pds-datepicker__day--range-end.pds-datepicker__day--row-start{border-end-start-radius:var(--pine-border-radius-full);border-start-start-radius:var(--pine-border-radius-full)}.pds-datepicker__day--selected.pds-datepicker__day--today::after{background:var(--pine-color-text-primary)}.pds-datepicker__day--in-range{border-radius:0}.pds-datepicker__day--in-range,.pds-datepicker__day--in-range:hover{background:var(--pine-color-background-muted);color:var(--pine-color-text-secondary)}.pds-datepicker__day--row-start{border-end-start-radius:var(--pine-border-radius-full);border-start-start-radius:var(--pine-border-radius-full)}.pds-datepicker__day--row-end{border-end-end-radius:var(--pine-border-radius-full);border-start-end-radius:var(--pine-border-radius-full)}.pds-datepicker__day--disabled,.pds-datepicker__day--disabled:hover{background:transparent;color:var(--pine-color-text-disabled);cursor:not-allowed;text-decoration:line-through}.pds-datepicker__day--in-range:hover{background:var(--pine-color-background-inset)}.pds-datepicker__dialog--range{display:-ms-flexbox;display:flex;padding:0}.pds-datepicker__panel{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0}.pds-datepicker__dialog--range .pds-datepicker__panel{padding:var(--pine-dimension-sm)}.pds-datepicker__months{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-lg)}.pds-datepicker__presets-column{-webkit-border-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-inline-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);-ms-flex:none;flex:none;position:relative;width:var(--pds-datepicker-presets-width)}.pds-datepicker__presets{-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);inset:0;list-style:none;margin:0;overflow-y:auto;padding:var(--pine-dimension-150);position:absolute}.pds-datepicker__preset{-ms-flex-align:center;align-items:center;background:transparent;border:0;border-radius:var(--pine-border-radius-md);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);text-align:start;-webkit-transition:background var(--pine-motion-duration-fast) var(--pine-motion-easing-in);transition:background var(--pine-motion-duration-fast) var(--pine-motion-easing-in);width:100%}.pds-datepicker__preset:hover:not(:disabled){background:var(--pine-color-background-muted)}.pds-datepicker__preset:focus-visible{outline:var(--pine-outline-focus)}.pds-datepicker__preset:disabled{color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-datepicker__preset--selected{background:var(--pine-color-background-muted);color:var(--pine-color-text-active)}.pds-datepicker__footer{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-overlay);-webkit-border-before:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-start:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-xs);inset-block-end:calc(var(--pine-dimension-sm) * -1);-ms-flex-pack:end;justify-content:flex-end;margin-block:var(--pine-dimension-sm) calc(var(--pine-dimension-sm) * -1);padding-block:var(--pine-dimension-sm);position:-webkit-sticky;position:sticky}.pds-datepicker__selection{color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm-medium);-webkit-margin-end:auto;margin-inline-end:auto}.pds-datepicker__dropdowns{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-datepicker__select-wrap{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-datepicker__heading-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-border-radius-md);color:var(--pine-color-text);cursor:pointer;field-sizing:content;font:var(--pine-typography-heading-5);font-weight:var(--pine-font-weight-semi-bold);padding-block:var(--pine-dimension-2xs);padding-inline:var(--pine-dimension-xs) calc(var(--pine-dimension-xs) + var(--pine-dimension-sm))}.pds-datepicker__heading-select:hover{background:var(--pine-color-background-muted)}.pds-datepicker__heading-select:focus-visible{outline:var(--pine-outline-focus)}.pds-datepicker__select-caret{color:var(--pine-color-text-secondary);inset-inline-end:var(--pine-dimension-xs);pointer-events:none;position:absolute}.pds-datepicker__time{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;-webkit-margin-before:var(--pine-dimension-sm);margin-block-start:var(--pine-dimension-sm);padding-inline:var(--pine-dimension-xs)}.pds-datepicker__time-label{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium)}.pds-datepicker__time-field{-ms-flex-align:center;align-items:center;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-border-radius-md);display:-ms-inline-flexbox;display:inline-flex;min-height:var(--pine-dimension-400);padding-inline:var(--pine-dimension-2xs)}.pds-datepicker__time-field:hover{border-color:var(--pine-color-border-hover)}.pds-datepicker__time-field:focus-within{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-datepicker__time-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-border-radius-sm);color:var(--pine-color-text-strong);cursor:pointer;font:var(--pine-typography-body);font-variant-numeric:tabular-nums;padding:var(--pine-dimension-2xs);text-align:center}.pds-datepicker__time-select:focus-visible{background:var(--pine-color-background-muted);outline:none}.pds-datepicker__time-select--period{-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs)}.pds-datepicker__time-separator{color:var(--pine-color-text-secondary)}:host-context([data-theme=dark]) select{color-scheme:dark}.pds-datepicker__action{background:var(--pine-color-secondary);border:var(--pine-border);border-radius:var(--pine-border-radius-full);color:var(--pine-color-text-secondary);cursor:pointer;font:var(--pine-typography-body-medium);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-sm)}.pds-datepicker__action:hover:not(:disabled){background:var(--pine-color-secondary-hover);border-color:var(--pine-color-border-hover)}.pds-datepicker__action:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-datepicker__action:disabled{background:var(--pine-color-secondary-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-secondary-disabled);cursor:not-allowed}.pds-datepicker__action--primary{background:var(--pine-color-primary);border-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-datepicker__action--primary:hover:not(:disabled){background:var(--pine-color-primary-hover);border-color:var(--pine-color-primary-hover)}.pds-datepicker__action--primary:disabled{background:var(--pine-color-primary-disabled);border-color:var(--pine-color-primary-disabled);color:var(--pine-color-text-primary-disabled)}@media (max-width: 600px){.pds-datepicker__dialog--range{-ms-flex-direction:column;flex-direction:column}.pds-datepicker__presets-column{-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);-webkit-border-end:0;border-inline-end:0;width:auto}.pds-datepicker__presets{-ms-flex-direction:row;flex-direction:row;overflow-x:auto;position:static}.pds-datepicker__preset{white-space:nowrap}.pds-datepicker__selection{-ms-flex-preferred-size:100%;flex-basis:100%}}.pds-datepicker__trigger,.pds-datepicker__clear,.pds-datepicker__nav,.pds-datepicker__weekday,.pds-datepicker__day,.pds-datepicker__preset,.pds-datepicker__action{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (forced-colors: active){.pds-datepicker__day--selected,.pds-datepicker__day--selected:hover{background:Highlight;color:HighlightText;forced-color-adjust:none}.pds-datepicker__day--in-range,.pds-datepicker__day--in-range:hover{border-block:var(--pine-border-width-thin) solid Highlight}.pds-datepicker__day--today::after{background:CanvasText;forced-color-adjust:none}.pds-datepicker__day--selected.pds-datepicker__day--today::after{background:HighlightText}.pds-datepicker__day--disabled{color:GrayText}}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
|
|
14260
14585
|
|
|
14261
14586
|
const FULL_DATE = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
|
|
14262
14587
|
const DEFAULT_START_TIME = '00:00';
|
|
@@ -15564,14 +15889,14 @@ class PdsDatepicker {
|
|
|
15564
15889
|
}
|
|
15565
15890
|
render() {
|
|
15566
15891
|
const locale = this.resolvedLocale;
|
|
15567
|
-
return (hAsync(Host, { key: '
|
|
15892
|
+
return (hAsync(Host, { key: '82ffd88b7741a90edc28b66a7384178eb2a9a86c', class: { 'pds-datepicker--range': this.range, 'pds-datepicker--time': this.timePicker }, "full-width": this.fullWidth ? 'true' : null, onFocusin: this.onHostFocusIn, onFocusout: this.onHostFocusOut }, hAsync("pds-input", { key: 'f2b9aad64d1fe8d94327cc3d4f87cd6904eb3076', ref: (el) => (this.inputEl = el), componentId: this.baseId, label: this.label, hideLabel: this.hideLabel, helperMessage: this.helperMessage, errorMessage: this.errorMessage, invalid: this.invalid || !!this.textError || !!this.valueError(), disabled: this.disabled, readonly: this.readonly, required: this.required, placeholder: this.fieldPlaceholder, fullWidth: this.fullWidth, autocomplete: "off", value: this.text, onClick: this.onFieldClick, onPdsInput: this.onTextInput, onPdsChange: this.onTextChange, onPdsKeyDown: this.onTextKeyDown, onPdsFocus: this.stopInnerEvent, onPdsBlur: this.stopInnerEvent }, this.clearable && !!this.value && this.isInteractive && (hAsync("button", {
|
|
15568
15893
|
// Keyed, as is the calendar button: when Clear appears after a pick, the focused
|
|
15569
15894
|
// calendar button must stay that button rather than be reused as Clear.
|
|
15570
15895
|
key: "clear", slot: "suffix", type: "button", class: "pds-datepicker__clear", ref: (el) => (this.clearEl = el), "aria-label": this.label ? `${this.clearLabel} ${this.label}` : this.clearLabel,
|
|
15571
15896
|
// Out of the tab order, as a native search field's clear button is: Tab from a field
|
|
15572
15897
|
// just emptied would land on it as the change removes it, dropping focus to the page.
|
|
15573
15898
|
tabindex: "-1", onMouseDown: this.onClearMouseDown, onClick: this.onClearClick
|
|
15574
|
-
}, hAsync("pds-icon", { key: '
|
|
15899
|
+
}, hAsync("pds-icon", { key: 'f2c784e9d6577d4900b7641ee58aa43f5922fc75', icon: remove, "aria-hidden": "true" }))), hAsync("button", { key: "trigger", slot: "suffix", type: "button", class: "pds-datepicker__trigger", ref: (el) => (this.triggerEl = el), "aria-label": this.triggerAccessibleName(locale), "aria-haspopup": "dialog", "aria-expanded": this.isOpen ? 'true' : 'false', disabled: !this.isInteractive, onClick: this.onTriggerClick, onKeyDown: this.onTriggerKeyDown }, hAsync("pds-icon", { key: '98b2e773240c8ea2bbd5a1acfa3c9ba74cb7917b', icon: calendarSimple, "aria-hidden": "true" }))), this.isOpen && this.renderCalendar(locale)));
|
|
15575
15900
|
}
|
|
15576
15901
|
static get formAssociated() { return true; }
|
|
15577
15902
|
get el() { return getElement(this); }
|
|
@@ -15713,7 +16038,7 @@ class PdsDivider {
|
|
|
15713
16038
|
return classNames.join(' ');
|
|
15714
16039
|
}
|
|
15715
16040
|
render() {
|
|
15716
|
-
return (hAsync(Host, { key: '
|
|
16041
|
+
return (hAsync(Host, { key: 'ef2a5ee85e8f37036be5b8df490683636ffb66f0', id: this.componentId }, this.hasLabel ? (hAsync("div", { class: this.classNames(), role: "separator", "aria-label": this.label }, hAsync("span", { class: "pds-divider__label", part: "label", "aria-hidden": "true" }, this.label))) : (hAsync("hr", { class: this.classNames() }))));
|
|
15717
16042
|
}
|
|
15718
16043
|
static get style() { return pdsDividerCss(); }
|
|
15719
16044
|
static get cmpMeta() { return {
|
|
@@ -15895,11 +16220,11 @@ class PdsDrawer {
|
|
|
15895
16220
|
this.open = false;
|
|
15896
16221
|
}
|
|
15897
16222
|
render() {
|
|
15898
|
-
return (hAsync(Host, { key: '
|
|
16223
|
+
return (hAsync(Host, { key: 'ae7e67ed196ef95a39c2b729e859712ce5c41144', class: {
|
|
15899
16224
|
'pds-drawer': true,
|
|
15900
16225
|
[`pds-drawer--${this.side}`]: true,
|
|
15901
16226
|
[`pds-drawer--${this.size}`]: true,
|
|
15902
|
-
} }, hAsync("pds-modal", { key: '
|
|
16227
|
+
} }, hAsync("pds-modal", { key: '9b35ce377c84612a844a561d5540e98b08c0e499', class: "pds-drawer__modal", ref: (el) => (this.modalEl = el), componentId: this.componentId, open: this.open, scrollable: this.scrollable, disableTopLayer: true, backdropDismiss: this.lightDismiss, disableInitialFocus: this.initialFocus === 'none' }, hAsync("slot", { key: 'dda01aa40dc41b3d17073238a8cad8d816571e18' }))));
|
|
15903
16228
|
}
|
|
15904
16229
|
get el() { return getElement(this); }
|
|
15905
16230
|
static get style() { return pdsDrawerCss(); }
|
|
@@ -15939,7 +16264,7 @@ class PdsDrawerContent {
|
|
|
15939
16264
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer-content'), '.pds-drawer-content');
|
|
15940
16265
|
}
|
|
15941
16266
|
render() {
|
|
15942
|
-
return (hAsync("div", { key: '
|
|
16267
|
+
return (hAsync("div", { key: 'f307939ab0a94f6a0d8a3675c658def0ded68b98', class: "pds-drawer-content" }, hAsync("slot", { key: 'dadac08ac15bb8ded98ea982511e2d57bea9bdca' })));
|
|
15943
16268
|
}
|
|
15944
16269
|
get el() { return getElement(this); }
|
|
15945
16270
|
static get style() { return pdsDrawerContentCss(); }
|
|
@@ -15967,7 +16292,7 @@ class PdsDrawerFooter {
|
|
|
15967
16292
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer__footer'), '.pds-drawer__footer');
|
|
15968
16293
|
}
|
|
15969
16294
|
render() {
|
|
15970
|
-
return (hAsync("footer", { key: '
|
|
16295
|
+
return (hAsync("footer", { key: 'b58c68d88b467e8baa3682d16f97076d06ea2414', class: "pds-drawer__footer" }, hAsync("slot", { key: 'ff2306202c14029b397d40b5bb3d672a8aa571c0' })));
|
|
15971
16296
|
}
|
|
15972
16297
|
get el() { return getElement(this); }
|
|
15973
16298
|
static get style() { return pdsDrawerFooterCss(); }
|
|
@@ -15995,7 +16320,7 @@ class PdsDrawerHeader {
|
|
|
15995
16320
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer__header'), '.pds-drawer__header');
|
|
15996
16321
|
}
|
|
15997
16322
|
render() {
|
|
15998
|
-
return (hAsync("header", { key: '
|
|
16323
|
+
return (hAsync("header", { key: '280e6ca734317d5733e4c595431c8070eff13d58', class: "pds-drawer__header" }, hAsync("slot", { key: 'cc6af6084600c4dc60d7bd99e040376abdf5ffe3' })));
|
|
15999
16324
|
}
|
|
16000
16325
|
get el() { return getElement(this); }
|
|
16001
16326
|
static get style() { return pdsDrawerHeaderCss(); }
|
|
@@ -16009,9 +16334,10 @@ class PdsDrawerHeader {
|
|
|
16009
16334
|
}; }
|
|
16010
16335
|
}
|
|
16011
16336
|
|
|
16012
|
-
const pdsDropdownMenuCss = () => `:host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}::slotted(a),::slotted(button){-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs) !important;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text) !important;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium) !important;gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px) !important;padding:var(--pine-dimension-xs) !important;text-align:start;text-decoration:none !important;width:calc(100% - (var(--pine-border-width) + 2px) * 2)}::slotted(.destructive){color:var(--pine-color-danger) !important}::slotted([aria-disabled=true]),::slotted([disabled]:not([disabled=false])){cursor:not-allowed;opacity:0.5;pointer-events:none}`;
|
|
16337
|
+
const pdsDropdownMenuCss = () => `:host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}.pds-dropdown-menu__header{-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border);-webkit-margin-after:var(--pine-dimension-xs);margin-block-end:var(--pine-dimension-xs);margin-inline:calc(var(--pine-dimension-xs) * -1);-webkit-padding-after:var(--pine-dimension-xs);padding-block-end:var(--pine-dimension-xs);padding-inline:calc(var(--pine-dimension-xs) * 2 + var(--pine-border-width) + 2px);text-align:start}.pds-dropdown-menu__items{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}::slotted(a:not([slot=header])),::slotted(button:not([slot=header])){-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs) !important;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text) !important;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium) !important;gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px) !important;padding:var(--pine-dimension-xs) !important;text-align:start;text-decoration:none !important;width:calc(100% - (var(--pine-border-width) + 2px) * 2)}::slotted(.destructive:not([slot=header])){color:var(--pine-color-danger) !important}::slotted([aria-disabled=true]:not([slot=header])),::slotted([disabled]:not([disabled=false]):not([slot=header])){cursor:not-allowed;opacity:0.5;pointer-events:none}`;
|
|
16013
16338
|
|
|
16014
16339
|
/**
|
|
16340
|
+
* @slot header - Non-interactive content displayed above the menu items inside the dropdown panel. It renders outside the menu role, so assistive tech reads it as plain content rather than as a menu item.
|
|
16015
16341
|
* @part menu-panel - Exposes the dropdown menu container for styling.
|
|
16016
16342
|
*/
|
|
16017
16343
|
class PdsDropdownMenu {
|
|
@@ -16022,6 +16348,7 @@ class PdsDropdownMenu {
|
|
|
16022
16348
|
this.cleanupAutoUpdate = null;
|
|
16023
16349
|
this.triggerObserver = null;
|
|
16024
16350
|
this.currentFocusIndex = -1;
|
|
16351
|
+
this.hasHeader = false;
|
|
16025
16352
|
/**
|
|
16026
16353
|
* The placement of the dropdown panel relative to the trigger.
|
|
16027
16354
|
*/
|
|
@@ -16040,8 +16367,11 @@ class PdsDropdownMenu {
|
|
|
16040
16367
|
// Writes the trigger's ARIA from the menu's state, so the observer's own callback doesn't loop.
|
|
16041
16368
|
this.syncTriggerAria = () => {
|
|
16042
16369
|
if (!this.triggerEl)
|
|
16043
|
-
return;
|
|
16044
|
-
setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
|
|
16370
|
+
return false;
|
|
16371
|
+
return setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
|
|
16372
|
+
};
|
|
16373
|
+
this.handleHeaderSlotChange = (event) => {
|
|
16374
|
+
this.hasHeader = event.target.assignedElements().length > 0;
|
|
16045
16375
|
};
|
|
16046
16376
|
this.handleSlotChange = (event) => {
|
|
16047
16377
|
this.slotEl = event.target;
|
|
@@ -16120,6 +16450,9 @@ class PdsDropdownMenu {
|
|
|
16120
16450
|
this.toggleDropdown();
|
|
16121
16451
|
};
|
|
16122
16452
|
}
|
|
16453
|
+
componentWillLoad() {
|
|
16454
|
+
this.hasHeader = Array.from(this.host.children).some(el => el.getAttribute('slot') === 'header');
|
|
16455
|
+
}
|
|
16123
16456
|
componentDidRender() {
|
|
16124
16457
|
var _a;
|
|
16125
16458
|
this.panelEl = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box');
|
|
@@ -16148,7 +16481,8 @@ class PdsDropdownMenu {
|
|
|
16148
16481
|
this.triggerObserver = null;
|
|
16149
16482
|
if (!this.triggerEl || typeof MutationObserver === 'undefined')
|
|
16150
16483
|
return;
|
|
16151
|
-
|
|
16484
|
+
// Capped against a script that keeps undoing it; opening and closing still write it directly.
|
|
16485
|
+
this.triggerObserver = new MutationObserver(limitRestores(this.syncTriggerAria, 'pds-dropdown-menu: stopped restoring its trigger ARIA, as another script keeps changing it. It may be wrong until the menu opens or closes.', this.triggerEl));
|
|
16152
16486
|
this.triggerObserver.observe(this.triggerEl, {
|
|
16153
16487
|
attributes: true,
|
|
16154
16488
|
attributeFilter: ['aria-haspopup', 'aria-expanded'],
|
|
@@ -16354,7 +16688,7 @@ class PdsDropdownMenu {
|
|
|
16354
16688
|
}
|
|
16355
16689
|
}
|
|
16356
16690
|
render() {
|
|
16357
|
-
return (hAsync(Host, { key: '
|
|
16691
|
+
return (hAsync(Host, { key: '0dd585168e8fa86378c4812ce54fd09108861d5b', id: this.componentId }, hAsync("slot", { key: 'c7144f8d6aaebe37b585c6c6230102c013230a9e', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '82292e051337141bc9fd83b90292b188b0bb3489', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", part: "menu-panel" }, hAsync("div", { key: 'c0f49dca14df0ba3885865c51562c380155bf8a8', class: { 'pds-dropdown-menu__header': true, 'is-hidden': !this.hasHeader } }, hAsync("slot", { key: 'dc80c97a8dbb79ab4563524b3dea68d144e8570c', name: "header", onSlotchange: this.handleHeaderSlotChange })), hAsync("div", { key: '29cb56bdf28a0438296f33e0fa86c9da7b51902c', class: "pds-dropdown-menu__items", role: "menu", "aria-orientation": "vertical" }, hAsync("slot", { key: '8f91ceeb1eedc4acc79f09032dedc69a2ba1f99a', onSlotchange: this.handleSlotChange })))));
|
|
16358
16692
|
}
|
|
16359
16693
|
get host() { return getElement(this); }
|
|
16360
16694
|
static get style() { return pdsDropdownMenuCss(); }
|
|
@@ -16364,7 +16698,8 @@ class PdsDropdownMenu {
|
|
|
16364
16698
|
"$members$": {
|
|
16365
16699
|
"componentId": [1, "component-id"],
|
|
16366
16700
|
"placement": [1],
|
|
16367
|
-
"currentFocusIndex": [32]
|
|
16701
|
+
"currentFocusIndex": [32],
|
|
16702
|
+
"hasHeader": [32]
|
|
16368
16703
|
},
|
|
16369
16704
|
"$listeners$": [[8, "keydown", "handleKeyDown"], [8, "click", "handleWindowClick"]],
|
|
16370
16705
|
"$lazyBundleId$": "-",
|
|
@@ -16449,7 +16784,7 @@ class PdsDropdownMenuItem {
|
|
|
16449
16784
|
}, tabIndex: this.disabled ? -1 : 0, type: "button", part: "button", onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null }, hAsync("slot", null)));
|
|
16450
16785
|
}
|
|
16451
16786
|
render() {
|
|
16452
|
-
return (hAsync(Host, { key: '
|
|
16787
|
+
return (hAsync(Host, { key: '33bd645d7c9547e3fd07429cf795302e6a482296', id: this.componentId, class: { 'is-disabled': this.disabled, 'destructive': !this.disabled && this.destructive }, onClick: () => !this.disabled && this.handleClick(), role: "none", tabIndex: -1, "aria-disabled": this.disabled ? 'true' : null }, this.renderElement()));
|
|
16453
16788
|
}
|
|
16454
16789
|
get host() { return getElement(this); }
|
|
16455
16790
|
static get style() { return pdsDropdownMenuItemCss(); }
|
|
@@ -16485,7 +16820,7 @@ class PdsDropdownMenuSeparator {
|
|
|
16485
16820
|
this.disabled = false;
|
|
16486
16821
|
}
|
|
16487
16822
|
render() {
|
|
16488
|
-
return (hAsync(Host, { key: '
|
|
16823
|
+
return (hAsync(Host, { key: '60407a2edc8b4667d39cbd1ba9a859d09b0b8ff1', id: this.componentId }, hAsync("hr", { key: '8485d1c8508c5fe5e3635505f25e278f45f45b82' })));
|
|
16489
16824
|
}
|
|
16490
16825
|
static get style() { return pdsDropdownMenuSeparatorCss(); }
|
|
16491
16826
|
static get cmpMeta() { return {
|
|
@@ -17065,7 +17400,7 @@ class PdsFilter {
|
|
|
17065
17400
|
return null;
|
|
17066
17401
|
}
|
|
17067
17402
|
render() {
|
|
17068
|
-
return (hAsync(Host, { key: '
|
|
17403
|
+
return (hAsync(Host, { key: '3cae951aee1f9c75f3e207cf6c68633a23f8f6dc', id: this.componentId }, hAsync("button", { key: 'f4c644710dc936248995be9a49cef8ad13031d61', class: this.getTriggerClasses(), type: "button", popoverTarget: this.variant !== 'clear' ? `${this.componentId}-popover` : undefined, popoverTargetAction: this.variant !== 'clear' ? 'toggle' : undefined, onKeyDown: this.variant === 'clear' ? this.handleKeyDown : undefined, onClick: (event) => this.handleClick(event), part: "button", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": this.variant !== 'clear' ? 'true' : undefined, "aria-controls": this.variant !== 'clear' ? `${this.componentId}-popover` : undefined }, hAsync("span", { key: '2dd87e53f363118becc762051ea1be664258b8b6', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (hAsync("span", { key: '733ceb5e07198e844fbdc1af294d2046c4c571d8', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (hAsync("div", { key: 'beb65a21192c6f5c16703aec7ab9a92ea378ef3c', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, hAsync("slot", { key: '5a481cc6b143b059a5fc33d377abe5ab79aefb4e' })))));
|
|
17069
17404
|
}
|
|
17070
17405
|
get el() { return getElement(this); }
|
|
17071
17406
|
static get style() { return pdsFilterCss(); }
|
|
@@ -17097,7 +17432,7 @@ class PdsFilters {
|
|
|
17097
17432
|
registerInstance(this, hostRef);
|
|
17098
17433
|
}
|
|
17099
17434
|
render() {
|
|
17100
|
-
return (hAsync(Host, { key: '
|
|
17435
|
+
return (hAsync(Host, { key: '8688235fe7cdea1b4fc540156ff21bb9711b41b6', id: this.componentId }, hAsync("div", { key: 'e51a37977df8c31f99b28d8c7e4bedb0d63e53c6', class: "pds-filters" }, hAsync("slot", { key: '8ce936da4d3f0213408090bc3eeb011920f9aa6c' }))));
|
|
17101
17436
|
}
|
|
17102
17437
|
static get style() { return pdsFiltersCss(); }
|
|
17103
17438
|
static get cmpMeta() { return {
|
|
@@ -17226,6 +17561,28 @@ const isRTL = (hostEl) => {
|
|
|
17226
17561
|
const isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
|
|
17227
17562
|
const isStr = (val) => typeof val === 'string'; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
17228
17563
|
const toLower = (val) => val.toLowerCase();
|
|
17564
|
+
/**
|
|
17565
|
+
* Normalizes a color value for use as a CSS custom property value: a bare
|
|
17566
|
+
* design token (--pine-color-foo) is wrapped in var(...), an already-wrapped
|
|
17567
|
+
* var(--token) is passed through unchanged, and anything else (a literal CSS
|
|
17568
|
+
* color, or currentColor) is passed through as-is. Mirrors the equivalent
|
|
17569
|
+
* utility in the `pine` repo's `libs/core/src/utils/utils.ts`
|
|
17570
|
+
* (`normalizeColorValue`) — duplicated here rather than imported because
|
|
17571
|
+
* `@pine-ds/core` already depends on `@pine-ds/icons`, so the reverse
|
|
17572
|
+
* dependency would be circular.
|
|
17573
|
+
*/
|
|
17574
|
+
const normalizeColorValue = (value) => {
|
|
17575
|
+
if (!isStr(value))
|
|
17576
|
+
return undefined;
|
|
17577
|
+
const trimmed = value.trim();
|
|
17578
|
+
if (trimmed === '')
|
|
17579
|
+
return undefined;
|
|
17580
|
+
if (trimmed.startsWith('var('))
|
|
17581
|
+
return trimmed;
|
|
17582
|
+
if (trimmed.startsWith('--'))
|
|
17583
|
+
return `var(${trimmed})`;
|
|
17584
|
+
return trimmed;
|
|
17585
|
+
};
|
|
17229
17586
|
/**
|
|
17230
17587
|
* Elements inside of web components sometimes need to inherit global attributes
|
|
17231
17588
|
* set on the host. For example, the inner input in `pds-input` should inherit
|
|
@@ -17387,9 +17744,10 @@ class PdsIcon {
|
|
|
17387
17744
|
this.setupInitialAriaLabel();
|
|
17388
17745
|
}
|
|
17389
17746
|
setCSSVariables() {
|
|
17747
|
+
var _a;
|
|
17390
17748
|
this.el.style.setProperty(`--dimension-icon-height`, this.iconSize());
|
|
17391
17749
|
this.el.style.setProperty(`--dimension-icon-width`, this.iconSize());
|
|
17392
|
-
this.el.style.setProperty(`--color-icon-fill`,
|
|
17750
|
+
this.el.style.setProperty(`--color-icon-fill`, (_a = normalizeColorValue(this.color)) !== null && _a !== void 0 ? _a : 'currentColor');
|
|
17393
17751
|
}
|
|
17394
17752
|
connectedCallback() {
|
|
17395
17753
|
// Handle re-connection during client-side navigation
|
|
@@ -17434,7 +17792,7 @@ class PdsIcon {
|
|
|
17434
17792
|
const shouldFlip = flipRtl || shouldIconAutoFlip;
|
|
17435
17793
|
// Use inherited aria-label if provided, otherwise fall back to auto-generated one
|
|
17436
17794
|
const finalAriaLabel = inheritedAttributes['aria-label'] || ariaLabel;
|
|
17437
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
17795
|
+
return (hAsync(Host, Object.assign({ key: '3af1c02235a2645bc3bb300831b19779cca78827', "aria-label": finalAriaLabel !== undefined && !this.hasAriaHidden() ? finalAriaLabel : null, alt: "", role: "img", class: Object.assign(Object.assign({}, createColorClasses(this.color)), { 'flip-rtl': shouldFlip, 'icon-rtl': shouldFlip && isRTL(this.el) }) }, inheritedAttributes), (hAsync("div", { class: "icon-inner" }))));
|
|
17438
17796
|
}
|
|
17439
17797
|
/*****
|
|
17440
17798
|
* Private Methods
|
|
@@ -17570,9 +17928,9 @@ class PdsImage {
|
|
|
17570
17928
|
this.loading = 'eager';
|
|
17571
17929
|
}
|
|
17572
17930
|
render() {
|
|
17573
|
-
return (hAsync(Host, { key: '
|
|
17931
|
+
return (hAsync(Host, { key: '1e8bb3882c2a629004ce1441e85d5c5a75a84e98', class: {
|
|
17574
17932
|
'pds-image': true,
|
|
17575
|
-
}, id: this.componentId }, hAsync("img", { key: '
|
|
17933
|
+
}, id: this.componentId }, hAsync("img", { key: 'b50b19d51431d45027c7a918a4ba4c38493741d5', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
|
|
17576
17934
|
}
|
|
17577
17935
|
static get style() { return pdsImageCss(); }
|
|
17578
17936
|
static get cmpMeta() { return {
|
|
@@ -17892,10 +18250,10 @@ class PdsInput {
|
|
|
17892
18250
|
'has-prepend': this.hasPrepend,
|
|
17893
18251
|
'has-append': this.hasAppend,
|
|
17894
18252
|
};
|
|
17895
|
-
return (hAsync(Host, { key: '
|
|
18253
|
+
return (hAsync(Host, { key: '75eb8bc6cda5e947f8677ebefe7995688f03f947', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-prefix": this.hasPrefix ? 'true' : null, "has-suffix": this.hasSuffix ? 'true' : null, "has-prepend": this.hasPrepend ? 'true' : null, "has-append": this.hasAppend ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, hAsync("div", { key: '93d7f90b9a64daccea1533abc08a8cb18825b828', class: "pds-input" }, label && (hAsync("div", { key: '948109b3bfa1a1b8171572da9160425e3e35a7a6', class: {
|
|
17896
18254
|
'pds-input__label-wrapper': true,
|
|
17897
18255
|
'visually-hidden': this.hideLabel,
|
|
17898
|
-
} }, hAsync("label", { key: '
|
|
18256
|
+
} }, hAsync("label", { key: 'bb0e6c6febb97ad4aa3942ac5e67ac42dc1bde0a', htmlFor: componentId, class: "pds-input__label" }, hAsync("span", { key: 'c6a122f829aa3b92ccb715c3f3975f6baadb3028' }, label, this.required && hAsync("span", { key: 'dce7d1a9c010a545992734bd238e9f6a4ca7b4ce', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), hAsync("div", { key: '1b92ab5d649a4a9cf8112ea9b8a8a1095714f6d0', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), hAsync("input", Object.assign({ key: 'bc3c4b907312149d375bb78f9912e4501da59348', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage, errorMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onKeyDown: this.onKeyDownEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (hAsync("p", { key: 'f7bcbafc17a20310d602fce14a0adad522acbcb1', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (hAsync("p", { key: 'bbbd6dc3203b89e5759587147de74d2ce3ce6177', class: "pds-input__error-message", id: messageId(componentId, 'error') }, hAsync("pds-icon", { key: '68a6a92c82c1756ad99f431e0cb56756e3cdf75c', "aria-hidden": "true", icon: danger, size: "small" }), errorMessage)))));
|
|
17899
18257
|
}
|
|
17900
18258
|
static get formAssociated() { return true; }
|
|
17901
18259
|
get el() { return getElement(this); }
|
|
@@ -18007,8 +18365,8 @@ class PdsLink {
|
|
|
18007
18365
|
const targetValue = this.target || (this.external ? '_blank' : undefined);
|
|
18008
18366
|
const showExternalIcon = this.external;
|
|
18009
18367
|
const relValue = targetValue === '_blank' ? 'noopener noreferrer' : undefined;
|
|
18010
|
-
return (hAsync("a", { key: '
|
|
18011
|
-
hAsync("pds-icon", { key: '
|
|
18368
|
+
return (hAsync("a", { key: '3b6f9d19d7f50d0606cf5f3c3a97b85ee4aa63b0', class: this.classNames(), download: this.download, href: this.href, id: this.componentId, part: "link", "aria-current": this.active ? 'page' : undefined, target: targetValue, rel: relValue, style: this.setLinkStyles(), "data-turbo": this.turbo || undefined, "data-turbo-frame": this.turboFrame || undefined, "data-turbo-action": this.turboAction || undefined, "data-turbo-method": this.turboMethod || undefined, "data-turbo-confirm": this.turboConfirm || undefined, "data-turbo-stream": this.turboStream || undefined, "data-turbo-prefetch": this.turboPrefetch || undefined, "data-turbo-preload": this.turboPreload || undefined }, hAsync("slot", { key: 'a265f1c4c9b6ff089b23906d8f650bfd65b25013' }, this.href), showExternalIcon &&
|
|
18369
|
+
hAsync("pds-icon", { key: '9553a8256b6811296ea4b762e32662c1a2f4aecf', icon: launch, size: this.fontSize })));
|
|
18012
18370
|
}
|
|
18013
18371
|
static get style() { return pdsLinkCss(); }
|
|
18014
18372
|
static get cmpMeta() { return {
|
|
@@ -18107,7 +18465,7 @@ class PdsLoader {
|
|
|
18107
18465
|
'aria-live': 'polite',
|
|
18108
18466
|
};
|
|
18109
18467
|
this.hostKeeper.record(hostClass, {}, hostAttributes);
|
|
18110
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
18468
|
+
return (hAsync(Host, Object.assign({ key: 'c42c1aeec5c8db9a1065f35492734a8cb265f3ce', class: hostClass }, hostAttributes), this.variant === 'spinner' && (hAsync("div", { key: 'dc1b7943709d03e02467cca0817fb6a7ad5ed10a', class: "pds-loader--spinner" }, hAsync("svg", { key: 'db38e607541ac1eb91be87b2cd0240341c8fb51d', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, hAsync("defs", { key: 'd734ef70b0039758a25881c22bb3e6453ac40012' }, hAsync("linearGradient", { key: '697627f516c5f7b4cd5351dd39de231c0cb9e429', id: "spinner-secondHalf" }, hAsync("stop", { key: '03082c0ec354685eebf7d0132202d54b083d26df', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), hAsync("stop", { key: '181b661b36aeb44943e20dec513f7265a9487004', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), hAsync("linearGradient", { key: '67f6c51aefe99bcbfdb741290337364501fc4fcb', id: "spinner-firstHalf" }, hAsync("stop", { key: 'cb6adf27ecb06b42ba572a702153de960491b0b6', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), hAsync("stop", { key: 'aeebabfa1ac00391937388feefa120bd0bb4d26c', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), hAsync("g", { key: 'f06ca75e4df171b6db426fce9bc34076cfee5bca', class: "pds-loader__spinner-path" }, hAsync("path", { key: 'a278b37de8f77a1000efecb62b89e3f751712a98', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), hAsync("path", { key: 'a035add4d01b60bcebf7625c8730d6a41ddf40ff', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), hAsync("path", { key: '1189c8299d33a2a6bb6a8345b60f22bf4ad9beee', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (hAsync("div", { key: '39826fae20e8826d9c73cf57ba938583d610e1ea', class: "pds-loader--typing" }, hAsync("span", { key: '8f2b837c79548a1080710a7cc30c3be3a051e1dd' }), hAsync("span", { key: '8efb1193ef51f110950861767eccc3896e90b81e' }), hAsync("span", { key: '366f2d205adbb043691c253cff17d2d29d56a2cc' }))), hAsync("div", { key: 'aeaa4aa12863b34088e84fd2791c2ce32dc05248', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, hAsync("slot", { key: '7a8ec45aed1cd6f9e60f4db2ec5376439fa41c81', name: "label" }, "Loading..."))));
|
|
18111
18469
|
}
|
|
18112
18470
|
get el() { return getElement(this); }
|
|
18113
18471
|
static get watchers() { return {
|
|
@@ -18654,14 +19012,14 @@ class PdsModal {
|
|
|
18654
19012
|
}
|
|
18655
19013
|
render() {
|
|
18656
19014
|
const [sizeClass = 'md', customSize] = this.resolveSize();
|
|
18657
|
-
return (hAsync("dialog", { key: '
|
|
19015
|
+
return (hAsync("dialog", { key: '12ea38928ea287f16ffa33e246caa2bfde6fc130', class: {
|
|
18658
19016
|
'pds-modal__backdrop': true,
|
|
18659
19017
|
'open': this.open
|
|
18660
|
-
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, hAsync("div", { key: '
|
|
19018
|
+
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, hAsync("div", { key: 'b9d83cabda56c315d9115f7030e3bdbcf923ec08', class: {
|
|
18661
19019
|
'pds-modal': true,
|
|
18662
19020
|
[`pds-modal--${sizeClass}`]: true,
|
|
18663
19021
|
'pds-modal--scrollable': this.scrollable
|
|
18664
|
-
}, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, hAsync("slot", { key: '
|
|
19022
|
+
}, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, hAsync("slot", { key: '3c5edad1482cb124e503197adf411890573b076d' }))));
|
|
18665
19023
|
}
|
|
18666
19024
|
get el() { return getElement(this); }
|
|
18667
19025
|
static get watchers() { return {
|
|
@@ -18878,10 +19236,10 @@ class PdsModalContent {
|
|
|
18878
19236
|
render() {
|
|
18879
19237
|
// Only apply max-height style if it's not 'none'
|
|
18880
19238
|
const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
|
|
18881
|
-
return (hAsync(Host, { key: '
|
|
19239
|
+
return (hAsync(Host, { key: 'd41d5632eb6a2dafe921546af60f835d3545cc4f' }, hAsync("div", { key: '741ac9f28149039ecf5051142a939ab62ef26a87', class: {
|
|
18882
19240
|
'pds-modal-content': true,
|
|
18883
19241
|
[`pds-modal-content--border-${this.border}`]: true
|
|
18884
|
-
}, style: styleObj, tabindex: "-1" }, hAsync("slot", { key: '
|
|
19242
|
+
}, style: styleObj, tabindex: "-1" }, hAsync("slot", { key: '090a52e9425d4df61c2d8216cc19f0925babdffe' }))));
|
|
18885
19243
|
}
|
|
18886
19244
|
get el() { return getElement(this); }
|
|
18887
19245
|
static get style() { return pdsModalContentCss(); }
|
|
@@ -18912,7 +19270,7 @@ class PdsModalFooter {
|
|
|
18912
19270
|
unwrapReconnectedContent(this.el.querySelector('.pds-modal__footer'), '.pds-modal__footer');
|
|
18913
19271
|
}
|
|
18914
19272
|
render() {
|
|
18915
|
-
return (hAsync("footer", { key: '
|
|
19273
|
+
return (hAsync("footer", { key: '030153b84f1ea1cb133c9ccec3ad86583995974f', class: "pds-modal__footer" }, hAsync("slot", { key: '3a479e7047f3e845a65c37d60539648c8ff78602' })));
|
|
18916
19274
|
}
|
|
18917
19275
|
get el() { return getElement(this); }
|
|
18918
19276
|
static get style() { return pdsModalFooterCss(); }
|
|
@@ -18940,7 +19298,7 @@ class PdsModalHeader {
|
|
|
18940
19298
|
unwrapReconnectedContent(this.el.querySelector('.pds-modal__header'), '.pds-modal__header');
|
|
18941
19299
|
}
|
|
18942
19300
|
render() {
|
|
18943
|
-
return (hAsync("header", { key: '
|
|
19301
|
+
return (hAsync("header", { key: 'ee3ac5fb9b00a943aa86c3434ea07291b74d776c', class: "pds-modal__header" }, hAsync("slot", { key: '0b0f7ff257635723099c536648a826be8dcc05e7' })));
|
|
18944
19302
|
}
|
|
18945
19303
|
get el() { return getElement(this); }
|
|
18946
19304
|
static get style() { return pdsModalHeaderCss(); }
|
|
@@ -20188,10 +20546,10 @@ class PdsMultiselect {
|
|
|
20188
20546
|
}
|
|
20189
20547
|
render() {
|
|
20190
20548
|
const hasSelections = this.selectedItems.length > 0;
|
|
20191
|
-
return (hAsync(Host, { key: '
|
|
20549
|
+
return (hAsync(Host, { key: '0ef6791666063e0d951d28f980b3bca89cf24287', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: 'f0ccbabfbd2dcf38f6df52f73f2152eb4bd2828e', class: "pds-multiselect", onFocusout: this.handleContainerFocusOut }, this.label && (hAsync("label", { key: '88e01c744644ce1f75c8d5b71dfaeeb79d1ef7df', id: `${this.componentId}-label`, htmlFor: this.componentId, class: {
|
|
20192
20550
|
'pds-multiselect__label': true,
|
|
20193
20551
|
'visually-hidden': this.hideLabel,
|
|
20194
|
-
} }, this.label)), hAsync("div", { key: '
|
|
20552
|
+
} }, this.label)), hAsync("div", { key: '0bf4a3b1378ff18e6d6b449507ebbae1bfb279e4', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), style: { width: this.triggerWidth } }, this.slottedTriggerEl ? (hAsync("slot", { name: "trigger" })) : this.selectedDisplay === 'pill' && this.pillPosition === 'inline' ? (hAsync("div", { ref: el => (this.pillInlineTriggerEl = el || undefined), part: "trigger", class: {
|
|
20195
20553
|
'pds-multiselect__trigger': true,
|
|
20196
20554
|
'pds-multiselect__trigger--open': this.isOpen,
|
|
20197
20555
|
'pds-multiselect__trigger--disabled': this.disabled,
|
|
@@ -20207,7 +20565,7 @@ class PdsMultiselect {
|
|
|
20207
20565
|
}, id: this.componentId, disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-describedby": assignDescription(this.componentId, this.invalid || !!this.errorMessage, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid || !!this.errorMessage ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hAsync("span", { class: {
|
|
20208
20566
|
'pds-multiselect__trigger-text': true,
|
|
20209
20567
|
'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
|
|
20210
|
-
} }, this.getTriggerText()), hAsync("pds-icon", { "aria-hidden": "true", class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), hAsync("span", { key: '
|
|
20568
|
+
} }, this.getTriggerText()), hAsync("pds-icon", { "aria-hidden": "true", class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), hAsync("span", { key: '5202a263b219d06891bda739f98db0162bf33c48', class: "visually-hidden", "aria-live": "polite", "aria-atomic": "true" }, this.removalAnnouncement), this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (hAsync("p", { key: '47f7b55863c5b72d41c4ef1893b9364988fc0b56', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("p", { key: '3930dc30b2df7179d178873c470aa1da0f6f258c', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'e31d55db3fd0173c56faa23e34e0be92371983d4', icon: danger, size: "small" }), this.errorMessage)), hAsync("div", { key: 'b3326cc1a5e5886be05327a066e0a7ddd36ccefc', style: { display: 'none' } }, hAsync("slot", { key: '91559cb9510abce6084348a17516460fd8545ef7' })))));
|
|
20211
20569
|
}
|
|
20212
20570
|
static get formAssociated() { return true; }
|
|
20213
20571
|
get el() { return getElement(this); }
|
|
@@ -20303,6 +20661,48 @@ class PdsMultiselect {
|
|
|
20303
20661
|
}; }
|
|
20304
20662
|
}
|
|
20305
20663
|
|
|
20664
|
+
/**
|
|
20665
|
+
* Escapes a string so it's safe to interpolate into a CSS identifier (an id selector like `#${id}`)
|
|
20666
|
+
* or into CSS text (a stylesheet rule referencing that id). Equivalent to the native `CSS.escape`,
|
|
20667
|
+
* reimplemented because Stencil's unit-test DOM (`newSpecPage`'s mock-doc) doesn't provide it.
|
|
20668
|
+
* @param value - The string to escape, e.g. a consumer-supplied id
|
|
20669
|
+
*/
|
|
20670
|
+
const cssEscape = (value) => {
|
|
20671
|
+
const string = String(value);
|
|
20672
|
+
const length = string.length;
|
|
20673
|
+
const firstCodeUnit = string.charCodeAt(0);
|
|
20674
|
+
let result = '';
|
|
20675
|
+
for (let index = 0; index < length; index++) {
|
|
20676
|
+
const codeUnit = string.charCodeAt(index);
|
|
20677
|
+
if (codeUnit === 0x0000) {
|
|
20678
|
+
result += '�';
|
|
20679
|
+
continue;
|
|
20680
|
+
}
|
|
20681
|
+
if ((codeUnit >= 0x0001 && codeUnit <= 0x001f) ||
|
|
20682
|
+
codeUnit === 0x007f ||
|
|
20683
|
+
(index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
|
|
20684
|
+
(index === 1 && codeUnit >= 0x0030 && codeUnit <= 0x0039 && firstCodeUnit === 0x002d)) {
|
|
20685
|
+
result += `\\${codeUnit.toString(16)} `;
|
|
20686
|
+
continue;
|
|
20687
|
+
}
|
|
20688
|
+
if (index === 0 && length === 1 && codeUnit === 0x002d) {
|
|
20689
|
+
result += `\\${string.charAt(index)}`;
|
|
20690
|
+
continue;
|
|
20691
|
+
}
|
|
20692
|
+
if (codeUnit >= 0x0080 ||
|
|
20693
|
+
codeUnit === 0x002d ||
|
|
20694
|
+
codeUnit === 0x005f ||
|
|
20695
|
+
(codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
|
|
20696
|
+
(codeUnit >= 0x0041 && codeUnit <= 0x005a) ||
|
|
20697
|
+
(codeUnit >= 0x0061 && codeUnit <= 0x007a)) {
|
|
20698
|
+
result += string.charAt(index);
|
|
20699
|
+
continue;
|
|
20700
|
+
}
|
|
20701
|
+
result += `\\${string.charAt(index)}`;
|
|
20702
|
+
}
|
|
20703
|
+
return result;
|
|
20704
|
+
};
|
|
20705
|
+
|
|
20306
20706
|
const pdsPopoverCss = () => `:host{--sizing-max-width-default:352px;display:inline-block}:host .pds-popover__trigger-wrapper{display:inline-block}:host .pds-popover__content-slot-wrapper{display:none}`;
|
|
20307
20707
|
|
|
20308
20708
|
/**
|
|
@@ -20472,7 +20872,8 @@ class PdsPopover {
|
|
|
20472
20872
|
this.triggerObserver = null;
|
|
20473
20873
|
if (this.triggerEl == null || typeof MutationObserver === 'undefined')
|
|
20474
20874
|
return;
|
|
20475
|
-
|
|
20875
|
+
// Capped against a script that keeps undoing it; opening and closing still write it directly.
|
|
20876
|
+
this.triggerObserver = new MutationObserver(limitRestores(() => this.linkTriggerToPortal(), 'pds-popover: stopped restoring its trigger ARIA, as another script keeps changing it. It may be wrong until the popover opens or closes.', this.triggerEl));
|
|
20476
20877
|
this.triggerObserver.observe(this.triggerEl, {
|
|
20477
20878
|
attributes: true,
|
|
20478
20879
|
attributeFilter: ['aria-expanded', 'aria-controls'],
|
|
@@ -20482,9 +20883,9 @@ class PdsPopover {
|
|
|
20482
20883
|
// This mirrors the native Popover API's accessibility behavior
|
|
20483
20884
|
linkTriggerToPortal() {
|
|
20484
20885
|
if (this.triggerEl == null || this.portalEl == null)
|
|
20485
|
-
return;
|
|
20886
|
+
return false;
|
|
20486
20887
|
// Skips values already in place, so the trigger observer's own callback doesn't loop.
|
|
20487
|
-
setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
20888
|
+
return setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
20488
20889
|
}
|
|
20489
20890
|
// componentDidLoad doesn't run again when a popover comes back, so rebuild whatever
|
|
20490
20891
|
// disconnectedCallback tore down. Each step is a no-op when nothing was.
|
|
@@ -20591,22 +20992,25 @@ class PdsPopover {
|
|
|
20591
20992
|
if (!this.portalEl)
|
|
20592
20993
|
return;
|
|
20593
20994
|
const portalId = this.portalEl.id;
|
|
20995
|
+
// componentId comes from the consumer, so it can carry characters cssEscape needs to
|
|
20996
|
+
// neutralize before the id is used as a selector or interpolated into stylesheet text.
|
|
20997
|
+
const escapedPortalId = cssEscape(portalId);
|
|
20594
20998
|
// Check if style element already exists
|
|
20595
|
-
const existingStyle = document.querySelector(`style[data-pds-popover-focus="${
|
|
20999
|
+
const existingStyle = document.querySelector(`style[data-pds-popover-focus="${escapedPortalId}"]`);
|
|
20596
21000
|
if (existingStyle)
|
|
20597
21001
|
return;
|
|
20598
21002
|
// Create style element with Pine's focus ring styles and dark mode border
|
|
20599
21003
|
const styleEl = document.createElement('style');
|
|
20600
21004
|
styleEl.setAttribute('data-pds-popover-focus', portalId);
|
|
20601
21005
|
styleEl.textContent = `
|
|
20602
|
-
#${
|
|
21006
|
+
#${escapedPortalId}:focus {
|
|
20603
21007
|
outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;
|
|
20604
21008
|
outline-offset: var(--pine-border-width, 1px);
|
|
20605
21009
|
}
|
|
20606
|
-
#${
|
|
21010
|
+
#${escapedPortalId}:focus:not(:focus-visible) {
|
|
20607
21011
|
outline: none;
|
|
20608
21012
|
}
|
|
20609
|
-
[data-theme="dark"] #${
|
|
21013
|
+
[data-theme="dark"] #${escapedPortalId} {
|
|
20610
21014
|
border: var(--pine-border);
|
|
20611
21015
|
}
|
|
20612
21016
|
`;
|
|
@@ -20665,7 +21069,7 @@ class PdsPopover {
|
|
|
20665
21069
|
}
|
|
20666
21070
|
// Remove the associated focus style element
|
|
20667
21071
|
const portalId = this.portalEl.id;
|
|
20668
|
-
const styleEl = document.querySelector(`style[data-pds-popover-focus="${portalId}"]`);
|
|
21072
|
+
const styleEl = document.querySelector(`style[data-pds-popover-focus="${cssEscape(portalId)}"]`);
|
|
20669
21073
|
if (styleEl && styleEl.parentNode) {
|
|
20670
21074
|
styleEl.parentNode.removeChild(styleEl);
|
|
20671
21075
|
}
|
|
@@ -20941,7 +21345,7 @@ class PdsPopover {
|
|
|
20941
21345
|
}, 16); // ~1 frame at 60fps
|
|
20942
21346
|
}
|
|
20943
21347
|
render() {
|
|
20944
|
-
return (hAsync(Host, { key: '
|
|
21348
|
+
return (hAsync(Host, { key: 'd804db8c73e0dc2acf0d1bbca20edb77993ff7fd', id: this.componentId }, hAsync("span", { key: '5408d1856c9b13b327ea13b43cffc23af925a82f', class: "pds-popover__trigger-wrapper" }, hAsync("slot", { key: '9d0ff01292c67bdaa88d49114162c3c65ff8a20d', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), hAsync("div", { key: 'cdd38016453ea1838d5718fb8e190cd4304ac8cc', class: "pds-popover__content-slot-wrapper" }, hAsync("slot", { key: '9faf60d7be7a2ff3c5fe6c3e4de374bafadf848a', onSlotchange: this.handleContentSlotChange }))));
|
|
20945
21349
|
}
|
|
20946
21350
|
get el() { return getElement(this); }
|
|
20947
21351
|
static get watchers() { return {
|
|
@@ -21003,10 +21407,10 @@ class PdsProgress {
|
|
|
21003
21407
|
this.hostKeeper.disconnect();
|
|
21004
21408
|
}
|
|
21005
21409
|
render() {
|
|
21006
|
-
const normalizedFillColor = normalizeColorValue(this.fillColor);
|
|
21410
|
+
const normalizedFillColor = normalizeColorValue$1(this.fillColor);
|
|
21007
21411
|
const hostClass = this.animated ? { 'is-animated': this.animated } : '';
|
|
21008
21412
|
this.hostKeeper.record(hostClass);
|
|
21009
|
-
return (hAsync(Host, { key: '
|
|
21413
|
+
return (hAsync(Host, { key: 'a224e1e9bc50433553ab8bf4b0d772f01148ee76', class: hostClass }, hAsync("div", { key: '261742044f3d68c204cbf640cc4447eb6d74df11', class: "pds-progress" }, hAsync("label", { key: 'd686bdc6ab450bf8c14dd56077525a3139593f46', class: "pds-progress__label", htmlFor: this.componentId }, this.label), hAsync("progress", { key: 'c716e977a952a628aec600fa680aa9c3b8d0e996', id: this.componentId, max: "100", style: normalizedFillColor ? { '--color-progress-fill': normalizedFillColor } : {}, value: this.percent })), this.showPercent && hAsync("div", { key: '44176a580b435f69993be4a60ee2e888b87e10fb', class: "pds-progress__percentage" }, this.percent, "%")));
|
|
21010
21414
|
}
|
|
21011
21415
|
get el() { return getElement(this); }
|
|
21012
21416
|
static get style() { return pdsProgressCss(); }
|
|
@@ -21041,7 +21445,7 @@ class PdsProperty {
|
|
|
21041
21445
|
this.icon = 'star';
|
|
21042
21446
|
}
|
|
21043
21447
|
render() {
|
|
21044
|
-
return (hAsync(Host, { key: '
|
|
21448
|
+
return (hAsync(Host, { key: 'd599b62be4bacf1d89afcc26b14fc93bdc9bb3a4', id: this.componentId }, hAsync("pds-box", { key: 'd7f80f6598615c761d672893c8acab09bd9ea33f', "align-items": "center", gap: "xs" }, hAsync("pds-icon", { key: '15a6a6545c2cd2332bd830451106b7b08adc39ff', icon: this.icon, size: "var(--pine-dimension-sm)", "aria-hidden": "true" }), hAsync("slot", { key: '4e5661563b99ec56189447faabcdd1ae631159b2' }))));
|
|
21045
21449
|
}
|
|
21046
21450
|
static get style() { return pdsPropertyCss(); }
|
|
21047
21451
|
static get cmpMeta() { return {
|
|
@@ -21160,13 +21564,13 @@ class PdsRadio {
|
|
|
21160
21564
|
}
|
|
21161
21565
|
render() {
|
|
21162
21566
|
const renderLabelAndMessages = () => [
|
|
21163
|
-
hAsync("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, hAsync("input", { key: '
|
|
21567
|
+
hAsync("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, hAsync("input", { key: 'ccd618855831bcee309e815f2cd2712fd4e8fe1f', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), hAsync("span", { key: '2e372a880c28f48fb804bac2518208082c141fad', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
|
|
21164
21568
|
this.helperMessage && (hAsync("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
|
|
21165
|
-
this.errorMessage && (hAsync("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '
|
|
21569
|
+
this.errorMessage && (hAsync("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '889d502575f6a162f450b6b58d76a6f6f1c74e4b', icon: danger, size: "small" }), this.errorMessage))
|
|
21166
21570
|
];
|
|
21167
21571
|
const hostClass = this.classNames();
|
|
21168
21572
|
this.hostKeeper.record(hostClass);
|
|
21169
|
-
return (hAsync(Host, { key: '
|
|
21573
|
+
return (hAsync(Host, { key: '374003032b28407581a55f1fb0a304c49acf3c16', class: hostClass }, this.hasImage() && (hAsync("div", { key: '7eeb516267de1afcfa85fc7567999db488c2f4f5', class: "pds-radio__image-container", part: "image-container" }, hAsync("slot", { key: 'a312fea06f0c015bffab3bb392ff04d4913fd1c0', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (hAsync("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
|
|
21170
21574
|
}
|
|
21171
21575
|
get el() { return getElement(this); }
|
|
21172
21576
|
static get style() { return labelCss$3() + pdsRadioCss(); }
|
|
@@ -21358,13 +21762,13 @@ class PdsRadioGroup {
|
|
|
21358
21762
|
render() {
|
|
21359
21763
|
const gapValue = this.getGapValue();
|
|
21360
21764
|
const ariaDescribedBy = this.getAriaDescribedBy();
|
|
21361
|
-
return (hAsync(Host, { key: '
|
|
21765
|
+
return (hAsync(Host, { key: 'bf8063c1a99e272bb3f6bc647998a6ef103f8a71', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
|
|
21362
21766
|
'--pds-radio-group-gap': gapValue,
|
|
21363
|
-
} }, this.groupLabel && (hAsync("div", { key: '
|
|
21767
|
+
} }, this.groupLabel && (hAsync("div", { key: '8564ed3f8f99cdc1a0e5b189aacc6960923eb5f7', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '2309c9373790182cde030c1dbda88fa3bdcaaf12', class: {
|
|
21364
21768
|
'pds-radio-group__radios': true,
|
|
21365
21769
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
21366
21770
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
21367
|
-
} }, hAsync("slot", { key: '
|
|
21771
|
+
} }, hAsync("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (hAsync("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: 'd242da328731e55fa52d8e624fdfc750bfa6cce4', icon: danger, size: "small" }), this.errorMessage))));
|
|
21368
21772
|
}
|
|
21369
21773
|
get el() { return getElement(this); }
|
|
21370
21774
|
static get watchers() { return {
|
|
@@ -21473,7 +21877,7 @@ class PdsRow {
|
|
|
21473
21877
|
'min-height': this.minHeight,
|
|
21474
21878
|
}));
|
|
21475
21879
|
this.hostKeeper.record(`pds-row ${rowClasses}`, rowInlineStyles);
|
|
21476
|
-
return hAsync(Host, { key: '
|
|
21880
|
+
return hAsync(Host, { key: '78a505fef7132f9545916155d2485a6d2df8f4a5', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
|
|
21477
21881
|
}
|
|
21478
21882
|
get el() { return getElement(this); }
|
|
21479
21883
|
static get style() { return pdsRowCss(); }
|
|
@@ -21745,7 +22149,7 @@ class PdsSelect {
|
|
|
21745
22149
|
'has-action': hasAction && !this.hideLabel ? 'true' : null,
|
|
21746
22150
|
};
|
|
21747
22151
|
this.hostKeeper.record(hostClass, {}, hostAttributes);
|
|
21748
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22152
|
+
return (hAsync(Host, Object.assign({ key: '343ed671e67dd1d6f9eb284b07e06d59877c64e9', class: hostClass }, hostAttributes), hAsync("div", { key: '650aed0869b02f658feb16ee99f17e1cd22e5a8e', class: "pds-select" }, !this.hideLabel && (hAsync("div", { key: '74739461acbea33c92279ec8ec9042d6af1773c1', class: "pds-select__label-wrapper" }, hAsync("label", { key: '1ad96ffd243000358edfbd79054ee770e1ba97d3', htmlFor: this.componentId }, hAsync("span", { key: 'b832868db4f9cd4fd2f8313054d2e96e106189ab', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), hAsync("select", { key: 'e83c1a1a0a5646fc8abf9e50bc374f52b56be773', "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-label": this.hideLabel ? this.label : undefined, autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onBlur: this.onBlur, onChange: this.onSelectUpdate, onFocus: this.onFocus, onKeyDown: this.onKeyDown, part: "select", required: this.required, ref: (el) => (this.selectEl = el) }), hAsync("div", { key: 'a34880120b88124b5122350856d023368f96abf7', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, hAsync("slot", { key: 'df6abaf6a630761a32b263813181ff3453757e0d', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && hAsync("pds-icon", { key: 'f9197284ef9965d693242a652b583f48bc3d7097', "aria-hidden": "true", class: "pds-select__select-icon", icon: enlarge }))));
|
|
21749
22153
|
}
|
|
21750
22154
|
static get formAssociated() { return true; }
|
|
21751
22155
|
get el() { return getElement(this); }
|
|
@@ -24504,7 +24908,7 @@ class PdsSortable {
|
|
|
24504
24908
|
render() {
|
|
24505
24909
|
const classNames = this.classNames();
|
|
24506
24910
|
this.hostKeeper.record(classNames);
|
|
24507
|
-
return (hAsync(Host, { key: '
|
|
24911
|
+
return (hAsync(Host, { key: 'a0e532d31561748b4632a6be9163562f990af804', class: classNames, id: this.componentId }, hAsync("slot", { key: 'd1b0defb683f841e6708374fff4bf62eb7fd5080' })));
|
|
24508
24912
|
}
|
|
24509
24913
|
get el() { return getElement(this); }
|
|
24510
24914
|
static get watchers() { return {
|
|
@@ -24579,7 +24983,7 @@ class PdsSortableItem {
|
|
|
24579
24983
|
}
|
|
24580
24984
|
render() {
|
|
24581
24985
|
this.hostKeeper.record('pds-sortable-item');
|
|
24582
|
-
return (hAsync(Host, { key: '
|
|
24986
|
+
return (hAsync(Host, { key: '2065ccb474ae4b7032edc3c37aa6855f3048909d', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (hAsync("div", { key: '32385cc94837a3d0bc1c496615135c79274afe35', class: "pds-sortable-item__handle" }, hAsync("pds-icon", { key: 'ea94e28b2867aa20622ca073dc31d3b4a11eebbb', "aria-hidden": "true", icon: handle }))), hAsync("slot", { key: 'fb18aa90be0b8fa3832a5dd2b02a7b571205341f' }), this.enableActions && (hAsync("div", { key: '4c6e59d77a7b2183552533a544f4a70ce0cc7011', class: "pds-sortable-item__actions" }, hAsync("slot", { key: '497b1ff88436175d9365a28032e109b6fa118e44', name: "sortable-item-actions" })))));
|
|
24583
24987
|
}
|
|
24584
24988
|
get el() { return getElement(this); }
|
|
24585
24989
|
static get style() { return pdsSortableItemCss(); }
|
|
@@ -24702,9 +25106,9 @@ class PdsSwitch {
|
|
|
24702
25106
|
const hostClass = this.switchClassNames();
|
|
24703
25107
|
const ariaDisabled = this.disabled ? 'true' : null;
|
|
24704
25108
|
this.hostKeeper.record(hostClass, {}, { 'aria-disabled': ariaDisabled });
|
|
24705
|
-
return (hAsync(Host, { key: '
|
|
24706
|
-
hAsync("div", { key: '
|
|
24707
|
-
hAsync("div", { key: '
|
|
25109
|
+
return (hAsync(Host, { key: 'ee8576e523348ff9eed1b6087626849bb0966608', class: hostClass, "aria-disabled": ariaDisabled }, hAsync("label", { key: '09433b5356d718be65f4f2eb61f35fff1d000e10', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: 'f996a0fad56119674cfb7d95e1444bf411b64396', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), hAsync("span", { key: '4b23305d3cc0f5b37b23c6b79a14cfba57c16816', class: this.hideLabel ? 'visually-hidden' : '' }, hAsync("slot", { key: '258b5ccf0d4b01518df3a37772d694cb37569ffa', name: "label", onSlotchange: this.updateHasLabelSlot }), !this.hasLabelSlot && this.label)), this.helperMessage &&
|
|
25110
|
+
hAsync("div", { key: 'c8196fa2ce832de3a8c6d987a78fd65d791c4c59', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
25111
|
+
hAsync("div", { key: '948894dd2e642689af6cad545a0b31f7c4711d87', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: 'd4b72b49bfd38a396b8f7c0686e1b2ef92d65491', icon: danger, size: "small" }), this.errorMessage)));
|
|
24708
25112
|
}
|
|
24709
25113
|
static get formAssociated() { return true; }
|
|
24710
25114
|
get el() { return getElement(this); }
|
|
@@ -24746,6 +25150,7 @@ class PdsTab {
|
|
|
24746
25150
|
constructor(hostRef) {
|
|
24747
25151
|
registerInstance(this, hostRef);
|
|
24748
25152
|
this.pdsTabClick = createEvent(this, "pdsTabClick");
|
|
25153
|
+
this.hostKeeper = new HostStylingKeeper();
|
|
24749
25154
|
/**
|
|
24750
25155
|
* Determines the tab's disabled state.
|
|
24751
25156
|
* @defaultValue false
|
|
@@ -24764,6 +25169,12 @@ class PdsTab {
|
|
|
24764
25169
|
/** @internal */
|
|
24765
25170
|
this.selected = false;
|
|
24766
25171
|
}
|
|
25172
|
+
connectedCallback() {
|
|
25173
|
+
this.hostKeeper.connect(this.el);
|
|
25174
|
+
}
|
|
25175
|
+
disconnectedCallback() {
|
|
25176
|
+
this.hostKeeper.disconnect();
|
|
25177
|
+
}
|
|
24767
25178
|
// Unwraps a nested <a>/<button> left by a page-cache (Turbo, bfcache) reconnect.
|
|
24768
25179
|
componentDidRender() {
|
|
24769
25180
|
unwrapReconnectedContent(this.el.querySelector('.pds-tab__content'), 'a.pds-tab, button.pds-tab', '.pds-tab__content');
|
|
@@ -24799,6 +25210,9 @@ class PdsTab {
|
|
|
24799
25210
|
return classes.filter(Boolean).join(' ');
|
|
24800
25211
|
}
|
|
24801
25212
|
render() {
|
|
25213
|
+
// The docs show consumers omitting `slot`, so server HTML doesn't carry it — a DOM morph
|
|
25214
|
+
// that strips it leaves this tab unslotted, and pds-tabs has no default slot. Put it back.
|
|
25215
|
+
this.hostKeeper.record('', {}, { slot: 'tabs' });
|
|
24802
25216
|
const availabilityTabEdgeInlineStart = (hAsync("span", { class: "pds-tab-edge", role: "presentation" }));
|
|
24803
25217
|
const availabilityTabEdgeInlineEnd = (hAsync("span", { class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
|
|
24804
25218
|
const content = (hAsync(Fragment, null, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, hAsync("div", { class: "pds-tab__content" }, hAsync("slot", null))));
|
|
@@ -25118,7 +25532,7 @@ class PdsTableBody {
|
|
|
25118
25532
|
registerInstance(this, hostRef);
|
|
25119
25533
|
}
|
|
25120
25534
|
render() {
|
|
25121
|
-
return (hAsync(Host, { key: '
|
|
25535
|
+
return (hAsync(Host, { key: '817532e93c8f91ef64cd0f90aa6c4372c3b7d83f', role: "rowgroup", part: "body" }, hAsync("slot", { key: '296ba876c6716e85252a06008bd55d59624223e3' })));
|
|
25122
25536
|
}
|
|
25123
25537
|
static get style() { return pdsTableBodyCss(); }
|
|
25124
25538
|
static get cmpMeta() { return {
|
|
@@ -25256,11 +25670,11 @@ class PdsTableCell {
|
|
|
25256
25670
|
return classNames.join(' ');
|
|
25257
25671
|
}
|
|
25258
25672
|
render() {
|
|
25259
|
-
return (hAsync(Host, { key: '
|
|
25673
|
+
return (hAsync(Host, { key: 'bedaeeb5723299656f872a760ed1dd80c7fe8793', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
|
|
25260
25674
|
this.tableRef.fixedColumn &&
|
|
25261
25675
|
this.tableRef.selectable
|
|
25262
25676
|
? { '--fixed-cell-position': '40px' }
|
|
25263
|
-
: {} }, hAsync("slot", { key: '
|
|
25677
|
+
: {} }, hAsync("slot", { key: '45182ee3e004097660432f552780b3d27671bd46' })));
|
|
25264
25678
|
}
|
|
25265
25679
|
get hostElement() { return getElement(this); }
|
|
25266
25680
|
static get watchers() { return {
|
|
@@ -25329,7 +25743,7 @@ class PdsTableHead {
|
|
|
25329
25743
|
}
|
|
25330
25744
|
}
|
|
25331
25745
|
render() {
|
|
25332
|
-
return (hAsync(Host, { key: '
|
|
25746
|
+
return (hAsync(Host, { key: 'de3faae735e90f5fde1258b5acb826f5f9dbd170', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-head-cell", { key: 'e590e57c8b37ec0ad18e96077401c4692bbd45a4', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, !this.tableRef.disableSelectAll && (hAsync("pds-checkbox", { key: '44ca7eda63185672939909e121a86e6502080a7d', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" })))), hAsync("slot", { key: '0671df85d7989cff7266bfd3d1b4d62b332d2e81' })));
|
|
25333
25747
|
}
|
|
25334
25748
|
get hostElement() { return getElement(this); }
|
|
25335
25749
|
static get style() { return pdsTableHeadCss(); }
|
|
@@ -25550,11 +25964,11 @@ class PdsTableHeadCell {
|
|
|
25550
25964
|
return classNames.join(' ');
|
|
25551
25965
|
}
|
|
25552
25966
|
render() {
|
|
25553
|
-
return (hAsync(Host, { key: '
|
|
25967
|
+
return (hAsync(Host, { key: '13de42d136c5b037cd1545cd5b789b4660e23b87', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
|
|
25554
25968
|
this.tableRef.fixedColumn &&
|
|
25555
25969
|
this.tableRef.selectable
|
|
25556
25970
|
? { '--fixed-cell-position': '40px' }
|
|
25557
|
-
: {} }, hAsync("slot", { key: '
|
|
25971
|
+
: {} }, hAsync("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (hAsync("pds-icon", { key: 'cba838fa029b280561676c2b57af7f8f00055511', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
|
|
25558
25972
|
}
|
|
25559
25973
|
get hostElement() { return getElement(this); }
|
|
25560
25974
|
static get style() { return pdsTableHeadCellCss(); }
|
|
@@ -25720,7 +26134,7 @@ class PdsTableRow {
|
|
|
25720
26134
|
}
|
|
25721
26135
|
}
|
|
25722
26136
|
render() {
|
|
25723
|
-
return (hAsync(Host, { key: '
|
|
26137
|
+
return (hAsync(Host, { key: '5323521abc5c2464299cf77520fb38ec81297866', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-cell", { key: 'eb94dd282f885d3466b6177b2454cbcc4f932466', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, hAsync("pds-checkbox", { key: '222eaaedd4bebddc18cebf01bf4da81004773a96', componentId: this.generateUniqueId(), onPdsCheckboxChange: this.handleCheckboxChange, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), hAsync("slot", { key: '010f222fa02b1809ff818f7a030c2a12fc3e3abb' })));
|
|
25724
26138
|
}
|
|
25725
26139
|
get hostElement() { return getElement(this); }
|
|
25726
26140
|
static get style() { return pdsTableRowCss(); }
|
|
@@ -25747,6 +26161,7 @@ const pdsTabpanelCss = () => `:host{display:block}:host(.pds-tabpanel--stretch-a
|
|
|
25747
26161
|
class PdsTabpanel {
|
|
25748
26162
|
constructor(hostRef) {
|
|
25749
26163
|
registerInstance(this, hostRef);
|
|
26164
|
+
this.hostKeeper = new HostStylingKeeper();
|
|
25750
26165
|
/**
|
|
25751
26166
|
* Keeps track of the tabpanel selected state, this property is passed by parent component
|
|
25752
26167
|
*/
|
|
@@ -25758,12 +26173,22 @@ class PdsTabpanel {
|
|
|
25758
26173
|
/** @internal */
|
|
25759
26174
|
this.stretch = false;
|
|
25760
26175
|
}
|
|
26176
|
+
connectedCallback() {
|
|
26177
|
+
this.hostKeeper.connect(this.el);
|
|
26178
|
+
}
|
|
26179
|
+
disconnectedCallback() {
|
|
26180
|
+
this.hostKeeper.disconnect();
|
|
26181
|
+
}
|
|
25761
26182
|
// Unwraps a nested .pds-tabpanel left by a page-cache (Turbo, bfcache) reconnect.
|
|
25762
26183
|
componentDidRender() {
|
|
25763
26184
|
unwrapReconnectedContent(this.el.querySelector('.pds-tabpanel'), '.pds-tabpanel');
|
|
25764
26185
|
}
|
|
25765
26186
|
render() {
|
|
25766
|
-
|
|
26187
|
+
const hostClass = this.stretch && this.selected ? "pds-tabpanel--stretch-active" : "";
|
|
26188
|
+
// The docs show consumers omitting `slot`, so server HTML doesn't carry it — a DOM morph
|
|
26189
|
+
// that strips it (and the stretch-active class) leaves this panel unslotted. Put both back.
|
|
26190
|
+
this.hostKeeper.record(hostClass, {}, { slot: 'tabpanels' });
|
|
26191
|
+
return (hAsync(Host, { key: '5d867e31d0f5f14e18f1c81035991c90bb5fe529', slot: "tabpanels", class: hostClass || undefined }, hAsync("div", { key: '255d37a73089904cfb170cd89f7b829756f6295f', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, hAsync("slot", { key: '714d3d0cf0fc6173e243a2b077d9b9918ae4acf9' }))));
|
|
25767
26192
|
}
|
|
25768
26193
|
get el() { return getElement(this); }
|
|
25769
26194
|
static get style() { return pdsTabpanelCss(); }
|
|
@@ -25794,6 +26219,35 @@ class PdsTabs {
|
|
|
25794
26219
|
constructor(hostRef) {
|
|
25795
26220
|
registerInstance(this, hostRef);
|
|
25796
26221
|
this.hostKeeper = new HostStylingKeeper();
|
|
26222
|
+
this.slotChangeScheduled = false;
|
|
26223
|
+
// The tab that most recently had focus, tracked continuously via `focusin` rather
|
|
26224
|
+
// than sampled inside handleSlotChange: removing a focused element blurs it to
|
|
26225
|
+
// <body> synchronously, but slotchange only fires later (a microtask checkpoint),
|
|
26226
|
+
// by which point the sample would already read <body>.
|
|
26227
|
+
this.lastFocusedTab = null;
|
|
26228
|
+
this.handleFocusIn = (event) => {
|
|
26229
|
+
var _a;
|
|
26230
|
+
const tab = (_a = event.target) === null || _a === void 0 ? void 0 : _a.closest('pds-tab');
|
|
26231
|
+
if (tab && tab.closest('pds-tabs') === this.el) {
|
|
26232
|
+
this.lastFocusedTab = tab;
|
|
26233
|
+
}
|
|
26234
|
+
};
|
|
26235
|
+
// Focus that leaves a tab forgets it, so replacing the tab later doesn't pull focus back,
|
|
26236
|
+
// including focus that moves into a panel. Focus moving to another tab is tracked again
|
|
26237
|
+
// by focusin, which follows focusout. Removing a focused tab also fires focusout (with no
|
|
26238
|
+
// relatedTarget), while the tab is still connected, so that case is checked a microtask
|
|
26239
|
+
// later: a tab that's gone by then was removed, and is kept so its focus can be restored.
|
|
26240
|
+
this.handleFocusOut = (event) => {
|
|
26241
|
+
const tab = this.lastFocusedTab;
|
|
26242
|
+
if (event.relatedTarget) {
|
|
26243
|
+
this.lastFocusedTab = null;
|
|
26244
|
+
return;
|
|
26245
|
+
}
|
|
26246
|
+
queueMicrotask(() => {
|
|
26247
|
+
if (this.lastFocusedTab === tab && (tab === null || tab === void 0 ? void 0 : tab.isConnected))
|
|
26248
|
+
this.lastFocusedTab = null;
|
|
26249
|
+
});
|
|
26250
|
+
};
|
|
25797
26251
|
/**
|
|
25798
26252
|
* Adds a divider rule beneath the tab list.
|
|
25799
26253
|
* @defaultValue false
|
|
@@ -25813,12 +26267,44 @@ class PdsTabs {
|
|
|
25813
26267
|
* @defaultValue false
|
|
25814
26268
|
*/
|
|
25815
26269
|
this.nav = false;
|
|
26270
|
+
// The tabs and tabpanels slots fire slotchange separately, even for the same morph
|
|
26271
|
+
// (both swapped together). Coalesce same-tick firings into one re-collection pass
|
|
26272
|
+
// with a microtask, the way a single DOM mutation already only triggers one event.
|
|
26273
|
+
this.handleSlotChange = () => {
|
|
26274
|
+
if (this.slotChangeScheduled)
|
|
26275
|
+
return;
|
|
26276
|
+
this.slotChangeScheduled = true;
|
|
26277
|
+
this.activeTabNameBeforeSlotChange = this.activeTabName;
|
|
26278
|
+
queueMicrotask(() => {
|
|
26279
|
+
this.slotChangeScheduled = false;
|
|
26280
|
+
this.recollectAfterSlotChange();
|
|
26281
|
+
});
|
|
26282
|
+
};
|
|
25816
26283
|
}
|
|
25817
26284
|
connectedCallback() {
|
|
25818
26285
|
this.hostKeeper.connect(this.el);
|
|
26286
|
+
this.el.addEventListener('focusin', this.handleFocusIn);
|
|
26287
|
+
this.el.addEventListener('focusout', this.handleFocusOut);
|
|
26288
|
+
// componentDidLoad only runs once, so a reconnect (the element moved in the DOM) re-attaches
|
|
26289
|
+
// the slotchange listeners disconnectedCallback removed. Before the first render the slots
|
|
26290
|
+
// don't exist yet, so this is a no-op and componentDidLoad attaches them.
|
|
26291
|
+
const isReconnect = this.tabsSlot != null;
|
|
26292
|
+
this.setupSlotChangeListeners();
|
|
26293
|
+
// Content can change while detached, with no listener to see it — re-collect now
|
|
26294
|
+
// instead of waiting on a slotchange that may never come if nothing changes again.
|
|
26295
|
+
if (isReconnect)
|
|
26296
|
+
this.handleSlotChange();
|
|
25819
26297
|
}
|
|
25820
26298
|
disconnectedCallback() {
|
|
26299
|
+
var _a, _b;
|
|
25821
26300
|
this.hostKeeper.disconnect();
|
|
26301
|
+
this.el.removeEventListener('focusin', this.handleFocusIn);
|
|
26302
|
+
this.el.removeEventListener('focusout', this.handleFocusOut);
|
|
26303
|
+
(_a = this.tabsSlot) === null || _a === void 0 ? void 0 : _a.removeEventListener('slotchange', this.handleSlotChange);
|
|
26304
|
+
(_b = this.tabPanelsSlot) === null || _b === void 0 ? void 0 : _b.removeEventListener('slotchange', this.handleSlotChange);
|
|
26305
|
+
}
|
|
26306
|
+
componentDidLoad() {
|
|
26307
|
+
this.setupSlotChangeListeners();
|
|
25822
26308
|
}
|
|
25823
26309
|
tabClickHandler(event) {
|
|
25824
26310
|
if (this.componentId === event.detail[1]) {
|
|
@@ -25846,8 +26332,8 @@ class PdsTabs {
|
|
|
25846
26332
|
// Navigation mode is an explicit, single source of truth: `nav` drives both the
|
|
25847
26333
|
// container (<nav> of links vs role=tablist of buttons) and every child tab (via
|
|
25848
26334
|
// `navMode`), so the tabs present when the strip initializes can't mix the two.
|
|
25849
|
-
//
|
|
25850
|
-
//
|
|
26335
|
+
// Unlike child discovery (re-run on slotchange), `nav` itself isn't watched — it's
|
|
26336
|
+
// a load-time mode switch, not something a consumer is expected to toggle live.
|
|
25851
26337
|
get isNav() {
|
|
25852
26338
|
return !!this.nav;
|
|
25853
26339
|
}
|
|
@@ -25900,9 +26386,52 @@ class PdsTabs {
|
|
|
25900
26386
|
this.tabs = allTabs.filter(tab => tab.closest('pds-tabs') === this.el);
|
|
25901
26387
|
this.tabPanels = allTabPanels.filter(panel => panel.closest('pds-tabs') === this.el);
|
|
25902
26388
|
}
|
|
26389
|
+
// The initial collection (componentWillLoad) only sees tabs/panels present at load.
|
|
26390
|
+
// A tab or panel added, removed or replaced afterwards — including by a DOM morph
|
|
26391
|
+
// swapping in a fresh copy — needs to be re-collected the same way pds-dropdown-menu,
|
|
26392
|
+
// pds-select and pds-multiselect already do for their own slotted content.
|
|
26393
|
+
setupSlotChangeListeners() {
|
|
26394
|
+
var _a, _b, _c, _d;
|
|
26395
|
+
this.tabsSlot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="tabs"]');
|
|
26396
|
+
this.tabPanelsSlot = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('slot[name="tabpanels"]');
|
|
26397
|
+
(_c = this.tabsSlot) === null || _c === void 0 ? void 0 : _c.addEventListener('slotchange', this.handleSlotChange);
|
|
26398
|
+
(_d = this.tabPanelsSlot) === null || _d === void 0 ? void 0 : _d.addEventListener('slotchange', this.handleSlotChange);
|
|
26399
|
+
}
|
|
26400
|
+
recollectAfterSlotChange() {
|
|
26401
|
+
const previousActiveTabName = this.activeTabNameBeforeSlotChange;
|
|
26402
|
+
// A removed node stays referenced but disconnected — checked before
|
|
26403
|
+
// findAllChildren() re-collects, since that doesn't affect this either way.
|
|
26404
|
+
const focusedTabWasRemoved = !this.isNav && this.lastFocusedTab != null && !this.lastFocusedTab.isConnected;
|
|
26405
|
+
this.findAllChildren();
|
|
26406
|
+
this.warnOnNavConfig();
|
|
26407
|
+
// Keep the current selection if it still exists. Otherwise clear it so
|
|
26408
|
+
// passPropsToChildren() falls back to the first enabled tab, the same way
|
|
26409
|
+
// it does when a consumer never set activeTabName in the first place.
|
|
26410
|
+
if (previousActiveTabName != null && !this.tabs.some((tab) => tab.name === previousActiveTabName)) {
|
|
26411
|
+
this.activeTabName = undefined;
|
|
26412
|
+
}
|
|
26413
|
+
this.passPropsToChildren();
|
|
26414
|
+
// If the tab that last had focus was removed (e.g. replaced by a fresh copy),
|
|
26415
|
+
// the browser already silently dropped focus to <body> — restore it to the new
|
|
26416
|
+
// active tab's button so keyboard/screen-reader users don't lose their place.
|
|
26417
|
+
// Deferred a frame since a freshly-created pds-tab's button doesn't exist until
|
|
26418
|
+
// its own render completes; re-checked then in case focus moved on its own, to
|
|
26419
|
+
// the tabs or anywhere else — only focus the removal dropped to <body> is restored.
|
|
26420
|
+
if (focusedTabWasRemoved) {
|
|
26421
|
+
this.lastFocusedTab = null;
|
|
26422
|
+
requestAnimationFrame(() => {
|
|
26423
|
+
var _a;
|
|
26424
|
+
const active = document.activeElement;
|
|
26425
|
+
if (active && active !== document.body)
|
|
26426
|
+
return;
|
|
26427
|
+
const newActiveTab = this.tabs.find((tab) => tab.name === this.activeTabName);
|
|
26428
|
+
(_a = newActiveTab === null || newActiveTab === void 0 ? void 0 : newActiveTab.querySelector('button')) === null || _a === void 0 ? void 0 : _a.focus();
|
|
26429
|
+
});
|
|
26430
|
+
}
|
|
26431
|
+
}
|
|
25903
26432
|
propGeneration(child, index = 0) {
|
|
25904
26433
|
child.parentComponentId = this.componentId.toString();
|
|
25905
|
-
child.variant = this.variant
|
|
26434
|
+
child.variant = this.variant;
|
|
25906
26435
|
child.selected = (this.activeTabName === child.name) ? true : false;
|
|
25907
26436
|
child['index'] = index;
|
|
25908
26437
|
}
|
|
@@ -25958,7 +26487,7 @@ class PdsTabs {
|
|
|
25958
26487
|
// Only the classes: `active-tab-name` backs the mutable activeTabName prop, so a morph that drops
|
|
25959
26488
|
// it is a prop change, not a strip.
|
|
25960
26489
|
this.hostKeeper.record(hostClass);
|
|
25961
|
-
return (hAsync(Host, { key: '
|
|
26490
|
+
return (hAsync(Host, { key: '91a9a5cf4348b73ef5ec21430db20468fb67906c', "active-tab-name": this.activeTabName, class: hostClass, id: this.componentId }, tabList, hAsync("slot", { key: 'f0ec002e513f3e91956e905c23e35dae0e6328ad', name: "tabpanels" })));
|
|
25962
26491
|
}
|
|
25963
26492
|
get el() { return getElement(this); }
|
|
25964
26493
|
static get style() { return pdsTabsCss(); }
|
|
@@ -26084,7 +26613,7 @@ class PdsText {
|
|
|
26084
26613
|
? `pds-text--decoration-${this.decoration}`
|
|
26085
26614
|
: ''}
|
|
26086
26615
|
`;
|
|
26087
|
-
return (hAsync(Tag, { key: '
|
|
26616
|
+
return (hAsync(Tag, { key: '6ae89af63963745cd4e8fa734a62f37bc27c59ac', ref: (el) => (this.contentEl = el), style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '008f5852aeb4b43cff1a2fea9be9d8fbba9f7934' })));
|
|
26088
26617
|
}
|
|
26089
26618
|
get el() { return getElement(this); }
|
|
26090
26619
|
static get watchers() { return {
|
|
@@ -26430,10 +26959,10 @@ class PdsTextarea {
|
|
|
26430
26959
|
}
|
|
26431
26960
|
render() {
|
|
26432
26961
|
const value = this.getValue();
|
|
26433
|
-
return (hAsync(Host, { key: '
|
|
26434
|
-
hAsync("div", { key: '
|
|
26435
|
-
hAsync("p", { key: '
|
|
26436
|
-
hAsync("p", { key: '
|
|
26962
|
+
return (hAsync(Host, { key: '5933dab0c3cd25b1cf2f6851ece8e8064bc7f3b9', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '4f1752514d8e5b0f0e3439515cb9e5f043607da1', class: "pds-textarea" }, this.label &&
|
|
26963
|
+
hAsync("div", { key: 'd4e6df0b381d781b70eeae72ff2f0e9428c0d901', class: "pds-textarea__label-wrapper" }, hAsync("label", { key: '747d82067eb571d02840cfd981865821099f288b', htmlFor: this.componentId }, hAsync("span", { key: 'bfab6e8ede66d0169dd020b7dd97e125aba417b0', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), hAsync("div", { key: 'a18611c03270e7491c1af69f931419c832192c06', class: "pds-textarea__field-wrapper" }, hAsync("textarea", Object.assign({ key: '868382c7b04a4e59c0daa9d98afcdc9048f6224f', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, maxlength: this.maxLength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
|
|
26964
|
+
hAsync("p", { key: 'dcb36f21443d2a782c25b7c29c4ce6215f3b212b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
|
|
26965
|
+
hAsync("p", { key: 'be30fb1a38453296e26b775955389c0ec569df67', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'd93dce10d9d9db5815ac5f331848940aed735ba0', icon: danger, size: "small" }), this.errorMessage))));
|
|
26437
26966
|
}
|
|
26438
26967
|
static get formAssociated() { return true; }
|
|
26439
26968
|
get el() { return getElement(this); }
|
|
@@ -26607,13 +27136,13 @@ class PdsToast {
|
|
|
26607
27136
|
return this.icon && hAsync("pds-icon", { name: this.icon, class: "pds-toast__icon" });
|
|
26608
27137
|
}
|
|
26609
27138
|
render() {
|
|
26610
|
-
return (hAsync(Host, { key: '
|
|
27139
|
+
return (hAsync(Host, { key: '754a4583cefca47a3d3fea7dab036c06ea8aabcd', hidden: !this.isVisible }, hAsync("div", { key: '8ac294344ca459202c0883e724e09a4218342cc4', class: {
|
|
26611
27140
|
'pds-toast': true,
|
|
26612
27141
|
[`pds-toast--${this.type}`]: this.type !== 'default',
|
|
26613
27142
|
'pds-toast--animating-out': this.isAnimatingOut
|
|
26614
|
-
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: '
|
|
27143
|
+
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: 'eaf615d41c138e2c73088d29bac9349f49a63ba7', class: "pds-toast__message" }, hAsync("slot", { key: '33973447154d80b016f5a7954b0473db03228379' })), this.dismissible && (hAsync("button", { key: 'e189834633e1e648282ee43633fd05e53ce38869', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
|
|
26615
27144
|
this.dismiss();
|
|
26616
|
-
}, "aria-label": this.dismissLabel }, hAsync("pds-icon", { key: '
|
|
27145
|
+
}, "aria-label": this.dismissLabel }, hAsync("pds-icon", { key: '623a0e4d56e30781fb31bcd085511c17a4777edc', name: "remove" }))))));
|
|
26617
27146
|
}
|
|
26618
27147
|
get el() { return getElement(this); }
|
|
26619
27148
|
static get watchers() { return {
|
|
@@ -26988,9 +27517,9 @@ class PdsTooltip {
|
|
|
26988
27517
|
}
|
|
26989
27518
|
render() {
|
|
26990
27519
|
const hostId = this.componentId || undefined;
|
|
26991
|
-
return (hAsync(Host, { key: '
|
|
27520
|
+
return (hAsync(Host, { key: '2e28dff93cd22fd3816d71b67e38883061a8b2bc', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, hAsync("span", { key: '9e7ea50427587f61dcea1ea97e10d71f4d0c9d92', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
|
|
26992
27521
|
/* focusin/out bubble; ensure keyboard users see tooltips */
|
|
26993
|
-
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: '
|
|
27522
|
+
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: '08c1ff63c91b97b4df1362eb9b2e42b6fd556b11' })), hAsync("div", { key: '5cfe25e21d1f096b76335570fbb930a7bc8c95f8', class: "pds-tooltip__content-slot-wrapper", hidden: true }, hAsync("slot", { key: 'e7e8728d7c8a0c74933cef070aa38f88a1f53a32', name: "content" }))));
|
|
26994
27523
|
}
|
|
26995
27524
|
get el() { return getElement(this); }
|
|
26996
27525
|
static get watchers() { return {
|