@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.mjs
CHANGED
|
@@ -132,6 +132,204 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
|
|
|
132
132
|
const NAMESPACE = 'pine-core';
|
|
133
133
|
const BUILD = /* pine-core */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", slotRelocation: true, state: true, updatable: true};
|
|
134
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Whether a class is one Stencil itself puts on a host: its default `hydratedFlag` (Pine doesn't
|
|
137
|
+
* change it), or a scoped component's own scope classes (`sc-pds-radio`, `sc-pds-radio-h`,
|
|
138
|
+
* `sc-pds-radio-s`), which its CSS needs. Only the host's own: another `sc-` class may be a
|
|
139
|
+
* consumer's (styled-components ids).
|
|
140
|
+
* @param el - Host element
|
|
141
|
+
* @param name - Class name
|
|
142
|
+
*/
|
|
143
|
+
const isStencilClass = (el, name) => {
|
|
144
|
+
const scope = `sc-${el.localName}`;
|
|
145
|
+
return name === 'hydrated' || name === scope || name === `${scope}-h` || name === `${scope}-s`;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* The class names in a rendered `class` value: a string, or Stencil's `{ name: boolean }` form.
|
|
149
|
+
*/
|
|
150
|
+
const classNamesOf = (classes) => typeof classes === 'string'
|
|
151
|
+
? classes.split(/\s+/).filter(Boolean)
|
|
152
|
+
: Object.keys(classes).filter((name) => classes[name]);
|
|
153
|
+
// Each restore that writes something counts. A real strip costs one, but a script that undoes the
|
|
154
|
+
// restore as soon as it lands (from a MutationObserver) keeps both going forever, all in
|
|
155
|
+
// microtasks, so the page never renders or takes input. More writes than this before the next task
|
|
156
|
+
// means that kind of fight. A script that undoes it from a timer or animation frame gets a fresh
|
|
157
|
+
// budget each task; the page stays responsive then, so that fight isn't capped.
|
|
158
|
+
const MAX_RESTORES_PER_TASK = 5;
|
|
159
|
+
// Callbacks waiting for the next task, all run by one message. A MessageChannel message isn't slowed
|
|
160
|
+
// down like a timer is in a background tab (or frozen by test fake timers); a timer is the fallback
|
|
161
|
+
// where it's missing. One message for all of them, so a morph that strips many hosts doesn't open a
|
|
162
|
+
// channel for each.
|
|
163
|
+
const nextTaskCallbacks = new Set();
|
|
164
|
+
const runNextTaskCallbacks = () => {
|
|
165
|
+
const callbacks = Array.from(nextTaskCallbacks);
|
|
166
|
+
nextTaskCallbacks.clear();
|
|
167
|
+
callbacks.forEach((callback) => callback());
|
|
168
|
+
};
|
|
169
|
+
const onNextTask = (callback) => {
|
|
170
|
+
nextTaskCallbacks.add(callback);
|
|
171
|
+
if (nextTaskCallbacks.size > 1)
|
|
172
|
+
return;
|
|
173
|
+
if (typeof MessageChannel === 'undefined') {
|
|
174
|
+
setTimeout(runNextTaskCallbacks);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const channel = new MessageChannel();
|
|
178
|
+
channel.port1.onmessage = () => {
|
|
179
|
+
channel.port1.close();
|
|
180
|
+
runNextTaskCallbacks();
|
|
181
|
+
};
|
|
182
|
+
channel.port2.postMessage(null);
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* The restore kind for a host's own classes, styles and attributes, shared by a component's own
|
|
186
|
+
* host restore and `keepPineHydrated`: one fight on a host's classes stops both, and warns once.
|
|
187
|
+
*/
|
|
188
|
+
const HOST_RESTORE = 'host';
|
|
189
|
+
/**
|
|
190
|
+
* Remembers the Stencil classes an element has had, and returns all of them. A restore can't read
|
|
191
|
+
* them from the latest mutation alone: after a script's last strip they're gone from its old value
|
|
192
|
+
* too, and the next change would restore nothing.
|
|
193
|
+
*/
|
|
194
|
+
const stencilClassesOf = (seen, el, oldValue) => {
|
|
195
|
+
[...classNamesOf(oldValue !== null && oldValue !== void 0 ? oldValue : ''), ...Array.from(el.classList)]
|
|
196
|
+
.filter((name) => isStencilClass(el, name))
|
|
197
|
+
.forEach((name) => seen.add(name));
|
|
198
|
+
return Array.from(seen);
|
|
199
|
+
};
|
|
200
|
+
// What each element has already been warned about, by kind of restore. A host with its own restore
|
|
201
|
+
// is also watched for its Stencil classes, so one fight on its classes stops both and needs one
|
|
202
|
+
// warning; a fight over a trigger's ARIA is a different kind, and warns on its own. On the global
|
|
203
|
+
// object, like `OBSERVER` below, so two copies of Pine on a page share it.
|
|
204
|
+
const WARNED = Symbol.for('@pine-ds/core/restoreWarnings');
|
|
205
|
+
const warnedKinds = () => {
|
|
206
|
+
var _a;
|
|
207
|
+
const store = globalThis;
|
|
208
|
+
return ((_a = store[WARNED]) !== null && _a !== void 0 ? _a : (store[WARNED] = new WeakMap()));
|
|
209
|
+
};
|
|
210
|
+
/** Whether `el` was already warned about for `kind`; records it if not. */
|
|
211
|
+
const alreadyWarned = (el, kind) => {
|
|
212
|
+
var _a;
|
|
213
|
+
const kinds = (_a = warnedKinds().get(el)) !== null && _a !== void 0 ? _a : new Set();
|
|
214
|
+
warnedKinds().set(el, kinds);
|
|
215
|
+
if (kinds.has(kind))
|
|
216
|
+
return true;
|
|
217
|
+
kinds.add(kind);
|
|
218
|
+
return false;
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Wraps a restore callback, which returns whether it wrote anything, so that it writes at most
|
|
222
|
+
* `MAX_RESTORES_PER_TASK` times before the next task (until the message posted after its first write
|
|
223
|
+
* runs). Past that, another script is undoing every restore as soon as it lands, so it stops and
|
|
224
|
+
* lets that script win rather than hang the page. What that script left stays until something
|
|
225
|
+
* changes the element again: the count resets on the next task, so a later change is restored, but
|
|
226
|
+
* nothing is restored on its own. The first give-up warns, logging `el` so it can be found in
|
|
227
|
+
* devtools; later ones, and other restores of the same `kind` giving up on the same element, are
|
|
228
|
+
* silent.
|
|
229
|
+
* @param restore - Puts back what something removed; returns `true` if it wrote anything
|
|
230
|
+
* @param warning - What the console warning says was given up
|
|
231
|
+
* @param el - The element being restored, logged with the warning
|
|
232
|
+
* @param kind - What's being restored; one warning per element for each kind
|
|
233
|
+
*/
|
|
234
|
+
const limitRestores = (restore, warning, el, kind = warning) => {
|
|
235
|
+
let writes = 0;
|
|
236
|
+
let warned = false;
|
|
237
|
+
return (...args) => {
|
|
238
|
+
if (writes >= MAX_RESTORES_PER_TASK) {
|
|
239
|
+
if (!warned) {
|
|
240
|
+
warned = true;
|
|
241
|
+
if (el && alreadyWarned(el, kind))
|
|
242
|
+
return;
|
|
243
|
+
// The warning as an argument, not the format string: it carries the tag name, which the HTML
|
|
244
|
+
// parser lets contain `%`.
|
|
245
|
+
console.warn('%s', warning, el);
|
|
246
|
+
}
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
if (!restore(...args))
|
|
250
|
+
return;
|
|
251
|
+
if (writes === 0)
|
|
252
|
+
onNextTask(() => (writes = 0));
|
|
253
|
+
writes += 1;
|
|
254
|
+
};
|
|
255
|
+
};
|
|
256
|
+
// On the global object, not in this module, so a page with two copies of Pine (the CDN build and a
|
|
257
|
+
// bundled `@pine-ds/react`) still has one observer.
|
|
258
|
+
const OBSERVER = Symbol.for('@pine-ds/core/keepPineHydrated');
|
|
259
|
+
/**
|
|
260
|
+
* Puts Stencil's own classes back on any Pine component that loses them. Stencil hides a component
|
|
261
|
+
* until it has `hydrated`, so a DOM morph that strips a host's `class` makes it vanish, and nothing
|
|
262
|
+
* rewrites it. One observer on the whole document covers every component, including the ones with no
|
|
263
|
+
* host restore of their own. It only restores classes the element had, so it never runs ahead of
|
|
264
|
+
* Stencil. It can't see inside shadow roots, which a morph doesn't reach either.
|
|
265
|
+
*
|
|
266
|
+
* A script that removes `hydrated` on purpose sees it come back. One that removes it every time it
|
|
267
|
+
* appears (from a `MutationObserver`, say) wins after a few rounds, and the component logs a console
|
|
268
|
+
* warning. The component then stays hidden, as that script left it, until its class changes again.
|
|
269
|
+
*
|
|
270
|
+
* Pine's global script calls this, so the CDN and `dist` builds get it on load. The custom-elements
|
|
271
|
+
* build (`@pine-ds/core/components/*`, `@pine-ds/react`) has no global script: call it once yourself.
|
|
272
|
+
* Calling it again does nothing, and without `MutationObserver` (server rendering) neither does the
|
|
273
|
+
* first call.
|
|
274
|
+
*/
|
|
275
|
+
const keepPineHydrated = () => {
|
|
276
|
+
if (typeof MutationObserver === 'undefined' || typeof document === 'undefined')
|
|
277
|
+
return;
|
|
278
|
+
const store = globalThis;
|
|
279
|
+
if (store[OBSERVER])
|
|
280
|
+
return;
|
|
281
|
+
// One capped restore per element, so a script fighting one component doesn't stop the others,
|
|
282
|
+
// and the Stencil classes each one has had.
|
|
283
|
+
const restores = new WeakMap();
|
|
284
|
+
const seen = new WeakMap();
|
|
285
|
+
const restoreFor = (el) => {
|
|
286
|
+
let restore = restores.get(el);
|
|
287
|
+
if (!restore) {
|
|
288
|
+
restore = limitRestores((names) => {
|
|
289
|
+
const missing = names.filter((name) => !el.classList.contains(name));
|
|
290
|
+
if (missing.length > 0)
|
|
291
|
+
el.classList.add(...missing);
|
|
292
|
+
return missing.length > 0;
|
|
293
|
+
}, `${el.localName}: stopped putting back its hydrated and scope classes, as another script keeps removing them.`, el, HOST_RESTORE);
|
|
294
|
+
restores.set(el, restore);
|
|
295
|
+
}
|
|
296
|
+
return restore;
|
|
297
|
+
};
|
|
298
|
+
const observer = new MutationObserver((records) => {
|
|
299
|
+
records.forEach(({ target, oldValue }) => {
|
|
300
|
+
const el = target;
|
|
301
|
+
if (!el.localName.startsWith('pds-'))
|
|
302
|
+
return;
|
|
303
|
+
// No old value is a `class` being added. Stencil's first `hydrated` arrives that way, which
|
|
304
|
+
// needs nothing; for an element already seen, it's the class coming back after a removal.
|
|
305
|
+
if (oldValue == null && !seen.has(el))
|
|
306
|
+
return;
|
|
307
|
+
if (!seen.has(el))
|
|
308
|
+
seen.set(el, new Set());
|
|
309
|
+
const names = stencilClassesOf(seen.get(el), el, oldValue);
|
|
310
|
+
if (names.length > 0)
|
|
311
|
+
restoreFor(el)(names);
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
// The document rather than its root element, so replacing `<html>` doesn't end the watch.
|
|
315
|
+
observer.observe(document, {
|
|
316
|
+
subtree: true,
|
|
317
|
+
attributes: true,
|
|
318
|
+
attributeFilter: ['class'],
|
|
319
|
+
attributeOldValue: true,
|
|
320
|
+
});
|
|
321
|
+
store[OBSERVER] = observer;
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
// Stencil runs this when the loader loads, before any component is defined, and again for each
|
|
325
|
+
// server-rendered document, where it does nothing.
|
|
326
|
+
var pineGlobal = () => {
|
|
327
|
+
keepPineHydrated();
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
const appGlobalScript = pineGlobal || (() => {});
|
|
331
|
+
const globalScripts = appGlobalScript;
|
|
332
|
+
|
|
135
333
|
/*
|
|
136
334
|
Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
|
|
137
335
|
*/
|
|
@@ -5169,6 +5367,7 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
|
|
|
5169
5367
|
};
|
|
5170
5368
|
tmrId = globalThis.setTimeout(timeoutExceeded, opts.timeout);
|
|
5171
5369
|
plt.$resourcesUrl$ = new URL(opts.resourcesUrl || "./", win2.document.baseURI).href;
|
|
5370
|
+
globalScripts();
|
|
5172
5371
|
patchChild2(win2.document.body);
|
|
5173
5372
|
waitLoop2().then(hydratedComplete).catch(hydratedError);
|
|
5174
5373
|
} catch (e) {
|
|
@@ -5531,7 +5730,7 @@ class MockPdsModal {
|
|
|
5531
5730
|
'pds-modal__backdrop': true,
|
|
5532
5731
|
'open': this.open,
|
|
5533
5732
|
};
|
|
5534
|
-
return (hAsync("div", { key: '
|
|
5733
|
+
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" })))));
|
|
5535
5734
|
}
|
|
5536
5735
|
get el() { return getElement(this); }
|
|
5537
5736
|
static get style() { return pdsModalCss$1(); }
|
|
@@ -5553,7 +5752,7 @@ class MockPdsModal {
|
|
|
5553
5752
|
}; }
|
|
5554
5753
|
}
|
|
5555
5754
|
|
|
5556
|
-
/* pds-icons v10.
|
|
5755
|
+
/* pds-icons v10.6.0, ES Modules */
|
|
5557
5756
|
|
|
5558
5757
|
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>";
|
|
5559
5758
|
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>";
|
|
@@ -5998,7 +6197,7 @@ const debounce = (func, wait = 0) => {
|
|
|
5998
6197
|
* @param options.semanticMap - Optional mapping of semantic names to CSS variables
|
|
5999
6198
|
* @returns Normalized color value or undefined for invalid inputs
|
|
6000
6199
|
*/
|
|
6001
|
-
const normalizeColorValue = (value, options) => {
|
|
6200
|
+
const normalizeColorValue$1 = (value, options) => {
|
|
6002
6201
|
if (!value)
|
|
6003
6202
|
return undefined;
|
|
6004
6203
|
const trimmed = value.trim();
|
|
@@ -6042,7 +6241,7 @@ const setColor = (color, customColors) => {
|
|
|
6042
6241
|
// Merge defaults with any custom overrides so defaults are preserved
|
|
6043
6242
|
const semanticMap = Object.assign(Object.assign({}, defaultColors), (customColors || {}));
|
|
6044
6243
|
// Use the shared normalizer so components accept semantic names, raw tokens, var(...), or literals
|
|
6045
|
-
const resolved = normalizeColorValue(color, { semanticMap });
|
|
6244
|
+
const resolved = normalizeColorValue$1(color, { semanticMap });
|
|
6046
6245
|
// Ensure we never return an undefined style value; if unresolved, omit the property
|
|
6047
6246
|
if (!resolved)
|
|
6048
6247
|
return {};
|
|
@@ -6058,24 +6257,15 @@ const setColor = (color, customColors) => {
|
|
|
6058
6257
|
* @param attributes - Attribute names and the values they should have
|
|
6059
6258
|
*/
|
|
6060
6259
|
const setAttributesIfChanged = (el, attributes) => {
|
|
6260
|
+
let wrote = false;
|
|
6061
6261
|
Object.entries(attributes).forEach(([name, value]) => {
|
|
6062
|
-
if (el.getAttribute(name) !== value)
|
|
6262
|
+
if (el.getAttribute(name) !== value) {
|
|
6063
6263
|
el.setAttribute(name, value);
|
|
6264
|
+
wrote = true;
|
|
6265
|
+
}
|
|
6064
6266
|
});
|
|
6267
|
+
return wrote;
|
|
6065
6268
|
};
|
|
6066
|
-
// Classes Stencil itself puts on a host: its default `hydratedFlag` (Pine doesn't change it), and a
|
|
6067
|
-
// scoped component's own scope classes (`sc-pds-radio`, `sc-pds-radio-h`, `sc-pds-radio-s`), which
|
|
6068
|
-
// its CSS needs. Only the host's own: another `sc-` class may be a consumer's (styled-components ids).
|
|
6069
|
-
const isStencilClass = (el, name) => {
|
|
6070
|
-
const scope = `sc-${el.localName}`;
|
|
6071
|
-
return name === 'hydrated' || name === scope || name === `${scope}-h` || name === `${scope}-s`;
|
|
6072
|
-
};
|
|
6073
|
-
/**
|
|
6074
|
-
* The class names in a rendered `class` value: a string, or Stencil's `{ name: boolean }` form.
|
|
6075
|
-
*/
|
|
6076
|
-
const classNamesOf = (classes) => typeof classes === 'string'
|
|
6077
|
-
? classes.split(/\s+/).filter(Boolean)
|
|
6078
|
-
: Object.keys(classes).filter((name) => classes[name]);
|
|
6079
6269
|
/**
|
|
6080
6270
|
* Puts back any of `expected`'s classes or style properties that are missing from `el`. It only
|
|
6081
6271
|
* adds what's missing, never rewrites a value that's there, because browsers normalize some style
|
|
@@ -6087,10 +6277,9 @@ const restoreHostStyling = (el, { classes, styles }) => {
|
|
|
6087
6277
|
const missing = classes.filter((name) => !el.classList.contains(name));
|
|
6088
6278
|
if (missing.length > 0)
|
|
6089
6279
|
el.classList.add(...missing);
|
|
6090
|
-
Object.entries(styles).
|
|
6091
|
-
|
|
6092
|
-
|
|
6093
|
-
});
|
|
6280
|
+
const missingStyles = Object.entries(styles).filter(([name, value]) => value && el.style.getPropertyValue(name) === '');
|
|
6281
|
+
missingStyles.forEach(([name, value]) => el.style.setProperty(name, value));
|
|
6282
|
+
return missing.length > 0 || missingStyles.length > 0;
|
|
6094
6283
|
};
|
|
6095
6284
|
/**
|
|
6096
6285
|
* Watches a component's own host and puts back what it rendered when something strips it. A DOM
|
|
@@ -6107,15 +6296,18 @@ const restoreHostStyling = (el, { classes, styles }) => {
|
|
|
6107
6296
|
const keepHostStyling = (el, expected) => {
|
|
6108
6297
|
if (typeof MutationObserver === 'undefined')
|
|
6109
6298
|
return null;
|
|
6110
|
-
const
|
|
6299
|
+
const tag = el.tagName.toLowerCase();
|
|
6300
|
+
const seenStencilClasses = new Set();
|
|
6301
|
+
const observer = new MutationObserver(limitRestores((records) => {
|
|
6111
6302
|
const styling = expected();
|
|
6112
6303
|
// A strip takes Stencil's own classes too: without `hydrated` Stencil hides the component, and
|
|
6113
6304
|
// without its scope classes a scoped component's CSS stops matching. Put back only the ones that
|
|
6114
|
-
// were there, so this never runs ahead of Stencil.
|
|
6305
|
+
// were there, so this never runs ahead of Stencil. `keepPineHydrated` does the same for every
|
|
6306
|
+
// component, but the custom-elements build only runs it if the consumer calls it, so keep this.
|
|
6115
6307
|
const stencilClasses = records
|
|
6116
|
-
.filter((record) => record.attributeName === 'class'
|
|
6117
|
-
.flatMap((record) =>
|
|
6118
|
-
restoreHostStyling(el, Object.assign(Object.assign({}, styling), { classes: [...styling.classes, ...stencilClasses] }));
|
|
6308
|
+
.filter((record) => record.attributeName === 'class')
|
|
6309
|
+
.flatMap((record) => stencilClassesOf(seenStencilClasses, el, record.oldValue));
|
|
6310
|
+
let wrote = restoreHostStyling(el, Object.assign(Object.assign({}, styling), { classes: [...styling.classes, ...stencilClasses] }));
|
|
6119
6311
|
// An attribute the component still renders comes back with the value it had, which is what
|
|
6120
6312
|
// Stencil wrote (a boolean `true` lands as an empty value). One it stopped rendering stays
|
|
6121
6313
|
// removed, since that was Stencil's own write.
|
|
@@ -6125,8 +6317,10 @@ const keepHostStyling = (el, expected) => {
|
|
|
6125
6317
|
if (oldValue == null || rendered == null || rendered === false || el.hasAttribute(name))
|
|
6126
6318
|
return;
|
|
6127
6319
|
el.setAttribute(name, oldValue);
|
|
6320
|
+
wrote = true;
|
|
6128
6321
|
});
|
|
6129
|
-
|
|
6322
|
+
return wrote;
|
|
6323
|
+
}, `${tag}: stopped restoring its host, as another script keeps changing it. Use props instead.`, el, HOST_RESTORE));
|
|
6130
6324
|
observer.observe(el, { attributes: true, attributeOldValue: true });
|
|
6131
6325
|
return observer;
|
|
6132
6326
|
};
|
|
@@ -6384,8 +6578,8 @@ class PdsBox {
|
|
|
6384
6578
|
this.sizeXl == undefined ? 'pds-box' : ''}
|
|
6385
6579
|
`;
|
|
6386
6580
|
// Normalize so pds-box accepts --token, var(--token), or literals (no semantic names)
|
|
6387
|
-
const normalizedBackground = normalizeColorValue(this.backgroundColor);
|
|
6388
|
-
const normalizedBorder = normalizeColorValue(this.borderColor);
|
|
6581
|
+
const normalizedBackground = normalizeColorValue$1(this.backgroundColor);
|
|
6582
|
+
const normalizedBorder = normalizeColorValue$1(this.borderColor);
|
|
6389
6583
|
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 }));
|
|
6390
6584
|
this.hostKeeper.record(boxClasses, boxInlineStyles);
|
|
6391
6585
|
return (hAsync(Host, { key: 'dc4d939daf38b24ecbfa0eb0a95ab67b97a85665', class: boxClasses, style: boxInlineStyles }));
|
|
@@ -9173,11 +9367,11 @@ class PdsChip {
|
|
|
9173
9367
|
}
|
|
9174
9368
|
// Custom properties rather than inline colors on the dot/icon, so a
|
|
9175
9369
|
// consumer's ::part(dot) or ::part(icon) rule still wins over the prop.
|
|
9176
|
-
const dotColor = normalizeColorValue(this.dotColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9370
|
+
const dotColor = normalizeColorValue$1(this.dotColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9177
9371
|
if (dotColor !== undefined) {
|
|
9178
9372
|
styles['--pds-chip-dot-color'] = dotColor;
|
|
9179
9373
|
}
|
|
9180
|
-
const iconColor = normalizeColorValue(this.iconColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9374
|
+
const iconColor = normalizeColorValue$1(this.iconColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9181
9375
|
if (iconColor !== undefined) {
|
|
9182
9376
|
styles['--pds-chip-icon-color'] = iconColor;
|
|
9183
9377
|
}
|
|
@@ -10674,7 +10868,14 @@ const PINE_ICON_NAME$1 = /^[a-z0-9-]+$/i;
|
|
|
10674
10868
|
* only ever passed to `pds-icon` as `name`.
|
|
10675
10869
|
*/
|
|
10676
10870
|
function groupIconOf(optgroup) {
|
|
10677
|
-
|
|
10871
|
+
return iconOf(optgroup);
|
|
10872
|
+
}
|
|
10873
|
+
/** An option's `data-icon` when it's a Pine icon name, or null; the same check as a group's. */
|
|
10874
|
+
function optionIconOf(option) {
|
|
10875
|
+
return iconOf(option);
|
|
10876
|
+
}
|
|
10877
|
+
function iconOf(element) {
|
|
10878
|
+
const icon = element.getAttribute('data-icon');
|
|
10678
10879
|
return icon !== null && PINE_ICON_NAME$1.test(icon) ? icon : null;
|
|
10679
10880
|
}
|
|
10680
10881
|
/** An option is disabled by its own `disabled` or its optgroup's, as in a native select. */
|
|
@@ -10692,8 +10893,12 @@ function isGroupDisabled(group) {
|
|
|
10692
10893
|
* Groups the combobox's filtered items for the panel: each optgroup becomes one entry holding its
|
|
10693
10894
|
* options, and ungrouped options stay where they are. Indexes count options in list order, the
|
|
10694
10895
|
* same as the inline listbox, so `data-option-index` means the same thing in every mode.
|
|
10896
|
+
*
|
|
10897
|
+
* `position`, when given, orders the entries instead: an ungrouped option or an optgroup it knows
|
|
10898
|
+
* goes where it reports, and the rest keep their place after those. Options from the `options` prop
|
|
10899
|
+
* use it, so a row the data lists between two groups is drawn between them.
|
|
10695
10900
|
*/
|
|
10696
|
-
function buildPanelEntries(items) {
|
|
10901
|
+
function buildPanelEntries(items, position) {
|
|
10697
10902
|
const entries = [];
|
|
10698
10903
|
const groups = new Map();
|
|
10699
10904
|
let index = 0;
|
|
@@ -10715,7 +10920,14 @@ function buildPanelEntries(items) {
|
|
|
10715
10920
|
entries.push({ kind: 'option', option, index: index++ });
|
|
10716
10921
|
}
|
|
10717
10922
|
});
|
|
10718
|
-
|
|
10923
|
+
if (position === undefined)
|
|
10924
|
+
return entries;
|
|
10925
|
+
const at = (entry) => { var _a; return (_a = position(entry.kind === 'group' ? entry.group.optgroup : entry.option)) !== null && _a !== void 0 ? _a : Infinity; };
|
|
10926
|
+
// Array.prototype.sort is stable, so entries with no position keep their order.
|
|
10927
|
+
return entries.sort((a, b) => {
|
|
10928
|
+
const [first, second] = [at(a), at(b)];
|
|
10929
|
+
return first === second ? 0 : first < second ? -1 : 1;
|
|
10930
|
+
});
|
|
10719
10931
|
}
|
|
10720
10932
|
/** The label of the optgroup an option sits in, or null for an ungrouped option. */
|
|
10721
10933
|
function groupLabelOf(option) {
|
|
@@ -10923,7 +11135,7 @@ class FlyoutController {
|
|
|
10923
11135
|
}
|
|
10924
11136
|
}
|
|
10925
11137
|
|
|
10926
|
-
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)}`;
|
|
11138
|
+
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)}`;
|
|
10927
11139
|
|
|
10928
11140
|
/**
|
|
10929
11141
|
* @slot option - Option elements for the combobox dropdown
|
|
@@ -11131,6 +11343,17 @@ class PdsCombobox {
|
|
|
11131
11343
|
this.highlightedGroup = null;
|
|
11132
11344
|
/** The keys, not the pointer, moved the highlight last; the focus ring shows only then. */
|
|
11133
11345
|
this.keyboardNavigating = false;
|
|
11346
|
+
/**
|
|
11347
|
+
* A drill-in group row the first arrow showed rather than moved past. `aria-activedescendant`
|
|
11348
|
+
* already pointed at it, so the status region says it instead.
|
|
11349
|
+
*/
|
|
11350
|
+
this.revealedGroupLabel = null;
|
|
11351
|
+
/**
|
|
11352
|
+
* The pointer in the panel can hover: a mouse or pen, not touch. Touch browsers keep a tapped row
|
|
11353
|
+
* hovered, so group rows shade on `:hover` only for a pointer that can hover. Checked on the
|
|
11354
|
+
* pointer itself rather than `(hover: hover)`, which a touch-first device with a trackpad fails.
|
|
11355
|
+
*/
|
|
11356
|
+
this.pointerCanHover = true;
|
|
11134
11357
|
/**
|
|
11135
11358
|
* What's typed in the dropdown's own search field (`panelSearch`).
|
|
11136
11359
|
*/
|
|
@@ -11175,6 +11398,11 @@ class PdsCombobox {
|
|
|
11175
11398
|
});
|
|
11176
11399
|
/** The groups in the flyout panel's last render, so a row's index finds its optgroup. */
|
|
11177
11400
|
this.renderedGroups = [];
|
|
11401
|
+
/**
|
|
11402
|
+
* Where each ungrouped option and optgroup built from the `options` prop came in the data, so
|
|
11403
|
+
* the flyout and drill-in panels draw them in that order. Slotted markup is already in order.
|
|
11404
|
+
*/
|
|
11405
|
+
this.panelPositions = new WeakMap();
|
|
11178
11406
|
/** Room for a flyout was checked for this open. */
|
|
11179
11407
|
this.flyoutRoomChecked = false;
|
|
11180
11408
|
/** The highlighted option sits in a flyout that hasn't rendered yet; focus it after the next render. */
|
|
@@ -11188,10 +11416,14 @@ class PdsCombobox {
|
|
|
11188
11416
|
* the list shows every option until the user types (then normal filtering applies).
|
|
11189
11417
|
*/
|
|
11190
11418
|
this.expandFilterListWhileOpen = false;
|
|
11419
|
+
this.onPanelPointer = (event) => {
|
|
11420
|
+
const canHover = event.pointerType !== 'touch';
|
|
11421
|
+
if (this.pointerCanHover !== canHover)
|
|
11422
|
+
this.pointerCanHover = canHover;
|
|
11423
|
+
};
|
|
11191
11424
|
this.onDrillAnimationEnd = (event) => {
|
|
11192
|
-
var _a;
|
|
11193
11425
|
// Only the slide's own end: slotted consumer content can animate inside the list too.
|
|
11194
|
-
if (
|
|
11426
|
+
if (event.animationName === 'pds-combobox-drill')
|
|
11195
11427
|
this.drillDirection = null;
|
|
11196
11428
|
};
|
|
11197
11429
|
/** `<label for>` only works on the input trigger; for a div trigger a click on the label focuses it. */
|
|
@@ -11610,6 +11842,31 @@ class PdsCombobox {
|
|
|
11610
11842
|
this.focusPanel(panelFocusEl);
|
|
11611
11843
|
}
|
|
11612
11844
|
}
|
|
11845
|
+
/**
|
|
11846
|
+
* Scrolls just enough to show `el`, as `scrollIntoView({ block: 'nearest' })` does. In the drill-in
|
|
11847
|
+
* panel it scrolls the list alone, and never sideways: while a drill-in slide offsets a row past
|
|
11848
|
+
* the list's edge, `scrollIntoView` also scrolls the list horizontally to reach it, which eats most
|
|
11849
|
+
* of the slide. There it keeps clear of the sticky row back, through the scroll padding set for it,
|
|
11850
|
+
* but doesn't scroll the page or a scrolling ancestor.
|
|
11851
|
+
*/
|
|
11852
|
+
scrollIntoViewNearest(el, smooth) {
|
|
11853
|
+
const behavior = smooth ? 'smooth' : 'auto';
|
|
11854
|
+
if (!this.showsGroupedPanel || this.effectiveGroupDisplay !== 'drill-in') {
|
|
11855
|
+
el.scrollIntoView({ block: 'nearest', behavior });
|
|
11856
|
+
return;
|
|
11857
|
+
}
|
|
11858
|
+
const list = this.usesPanelSearch ? this.panelTreeEl : this.listboxEl;
|
|
11859
|
+
if (!list)
|
|
11860
|
+
return;
|
|
11861
|
+
const offset = el.getBoundingClientRect().top - list.getBoundingClientRect().top - list.clientTop;
|
|
11862
|
+
// The padding keeps rows clear of the sticky row back; the row back itself doesn't need it.
|
|
11863
|
+
const padding = el.classList.contains('pds-combobox__group-back-trigger') ? 0 : parseFloat(list.style.scrollPaddingBlockStart) || 0;
|
|
11864
|
+
const top = list.scrollTop + offset - padding;
|
|
11865
|
+
const bottom = list.scrollTop + offset + el.offsetHeight - list.clientHeight;
|
|
11866
|
+
const target = top < list.scrollTop ? top : bottom > list.scrollTop ? bottom : null;
|
|
11867
|
+
if (target !== null)
|
|
11868
|
+
list.scrollTo({ top: target, behavior });
|
|
11869
|
+
}
|
|
11613
11870
|
focusPanel(el) {
|
|
11614
11871
|
var _a, _b;
|
|
11615
11872
|
this.panelFocusEl = el;
|
|
@@ -11630,6 +11887,7 @@ class PdsCombobox {
|
|
|
11630
11887
|
}
|
|
11631
11888
|
openGroupChanged(next, previous) {
|
|
11632
11889
|
this.handPanelFocusToList();
|
|
11890
|
+
this.revealedGroupLabel = null;
|
|
11633
11891
|
// Only moves between the drill-in panel's views slide; search results don't.
|
|
11634
11892
|
if (!this.isOpen || this.effectiveGroupDisplay !== 'drill-in' || !this.showsGroupedPanel)
|
|
11635
11893
|
return;
|
|
@@ -11652,6 +11910,7 @@ class PdsCombobox {
|
|
|
11652
11910
|
}
|
|
11653
11911
|
isOpenChanged(isOpen) {
|
|
11654
11912
|
if (!isOpen) {
|
|
11913
|
+
this.revealedGroupLabel = null;
|
|
11655
11914
|
this.drillDirection = null;
|
|
11656
11915
|
this.openGroup = null;
|
|
11657
11916
|
this.highlightedGroup = null;
|
|
@@ -11930,20 +12189,25 @@ class PdsCombobox {
|
|
|
11930
12189
|
// slotted markup would be, so grouping, filtering and labels work the same either way. Each
|
|
11931
12190
|
// group is listed where it first appears with all of its options, even when the data
|
|
11932
12191
|
// interleaves groups, so an option never renders under another group's label. Ungrouped
|
|
11933
|
-
// options come first, so none reads as part of the group above it.
|
|
12192
|
+
// options come first, so none reads as part of the group above it. The flyout and drill-in
|
|
12193
|
+
// panels draw groups as rows, where that can't happen, so they keep the data's order instead.
|
|
11934
12194
|
const asyncOptions = this.options || this.internalOptions;
|
|
11935
12195
|
const groups = new Map();
|
|
11936
12196
|
const ungrouped = [];
|
|
11937
12197
|
const groupEntries = [];
|
|
11938
|
-
|
|
12198
|
+
this.panelPositions = new WeakMap();
|
|
12199
|
+
asyncOptions.forEach((opt, position) => {
|
|
11939
12200
|
const optionEl = document.createElement('option');
|
|
11940
12201
|
optionEl.value = String(opt.id);
|
|
11941
12202
|
optionEl.textContent = opt.text;
|
|
11942
12203
|
if (opt.disabled === true)
|
|
11943
12204
|
optionEl.setAttribute('disabled', '');
|
|
11944
12205
|
// Only strings group an option or name an icon; anything else from JS is ignored, not coerced.
|
|
12206
|
+
if (typeof opt.icon === 'string' && opt.icon !== '')
|
|
12207
|
+
optionEl.setAttribute('data-icon', opt.icon);
|
|
11945
12208
|
if (typeof opt.group !== 'string' || opt.group === '') {
|
|
11946
12209
|
ungrouped.push(optionEl);
|
|
12210
|
+
this.panelPositions.set(optionEl, position);
|
|
11947
12211
|
return;
|
|
11948
12212
|
}
|
|
11949
12213
|
let optgroup = groups.get(opt.group);
|
|
@@ -11952,6 +12216,7 @@ class PdsCombobox {
|
|
|
11952
12216
|
optgroup.label = opt.group;
|
|
11953
12217
|
groups.set(opt.group, optgroup);
|
|
11954
12218
|
groupEntries.push(optgroup);
|
|
12219
|
+
this.panelPositions.set(optgroup, position);
|
|
11955
12220
|
}
|
|
11956
12221
|
if (!optgroup.hasAttribute('data-icon') && typeof opt.groupIcon === 'string' && opt.groupIcon !== '') {
|
|
11957
12222
|
optgroup.setAttribute('data-icon', opt.groupIcon);
|
|
@@ -12416,6 +12681,7 @@ class PdsCombobox {
|
|
|
12416
12681
|
handleGroupedPanelKey(e) {
|
|
12417
12682
|
if (!this.showsGroupedPanel)
|
|
12418
12683
|
return false;
|
|
12684
|
+
const highlightShown = this.keyboardNavigating;
|
|
12419
12685
|
this.keyboardNavigating = true;
|
|
12420
12686
|
// In the input trigger, Left and Right still move the caret through typed text, and Space,
|
|
12421
12687
|
// Home and End edit it, as they do in the panel's search field.
|
|
@@ -12425,23 +12691,32 @@ class PdsCombobox {
|
|
|
12425
12691
|
if (e.key === ' ' || e.key === 'Home' || e.key === 'End')
|
|
12426
12692
|
return false;
|
|
12427
12693
|
}
|
|
12428
|
-
const entries =
|
|
12694
|
+
const entries = this.panelEntries();
|
|
12429
12695
|
const drilledIn = this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null;
|
|
12430
12696
|
const current = this.currentPanelItem();
|
|
12431
12697
|
const column = panelColumn(entries, this.openGroup, current, drilledIn);
|
|
12432
12698
|
if (column.length === 0)
|
|
12433
12699
|
return false;
|
|
12434
12700
|
const position = current === null ? -1 : column.indexOf(current);
|
|
12701
|
+
// Drill-in doesn't shade a group row the pointer or a click-open highlighted, so the first Up or
|
|
12702
|
+
// Down shows that row rather than moving past one the user never saw.
|
|
12703
|
+
const unseenRow = !highlightShown && this.effectiveGroupDisplay === 'drill-in' && current !== null && typeof current !== 'number' && current !== this.openGroup;
|
|
12435
12704
|
const moveTo = (to) => {
|
|
12436
12705
|
e.preventDefault();
|
|
12437
12706
|
this.highlightPanelItem(column[Math.max(0, Math.min(column.length - 1, to))]);
|
|
12707
|
+
this.revealedGroupLabel = null;
|
|
12708
|
+
return true;
|
|
12709
|
+
};
|
|
12710
|
+
const reveal = () => {
|
|
12711
|
+
e.preventDefault();
|
|
12712
|
+
this.revealedGroupLabel = current.label;
|
|
12438
12713
|
return true;
|
|
12439
12714
|
};
|
|
12440
12715
|
switch (e.key) {
|
|
12441
12716
|
case 'ArrowDown':
|
|
12442
|
-
return moveTo(position < 0 ? 0 : position + 1);
|
|
12717
|
+
return unseenRow ? reveal() : moveTo(position < 0 ? 0 : position + 1);
|
|
12443
12718
|
case 'ArrowUp':
|
|
12444
|
-
return moveTo(position < 0 ? column.length - 1 : position - 1);
|
|
12719
|
+
return unseenRow ? reveal() : moveTo(position < 0 ? column.length - 1 : position - 1);
|
|
12445
12720
|
case 'Home':
|
|
12446
12721
|
return moveTo(0);
|
|
12447
12722
|
case 'End':
|
|
@@ -12574,7 +12849,7 @@ class PdsCombobox {
|
|
|
12574
12849
|
// In the grouped panel, the first row with something to choose: a group stays closed until
|
|
12575
12850
|
// it's opened.
|
|
12576
12851
|
if (this.showsGroupedPanel) {
|
|
12577
|
-
const first =
|
|
12852
|
+
const first = this.panelEntries().find(entry => entry.kind === 'group' ? !isGroupDisabled(entry.group) : !isOptionDisabled(entry.option));
|
|
12578
12853
|
this.highlightedIndex = (first === null || first === void 0 ? void 0 : first.kind) === 'option' ? first.index : -1;
|
|
12579
12854
|
this.highlightedGroup = (first === null || first === void 0 ? void 0 : first.kind) === 'group' ? first.group.optgroup : null;
|
|
12580
12855
|
return;
|
|
@@ -12639,8 +12914,13 @@ class PdsCombobox {
|
|
|
12639
12914
|
}
|
|
12640
12915
|
// Matched by id, not a selector: componentId is consumer text and may not be selector-safe.
|
|
12641
12916
|
const id = this.groupDomId(groupRow);
|
|
12642
|
-
|
|
12643
|
-
.find(
|
|
12917
|
+
const row = Array.from(this.listboxEl.querySelectorAll('[role="treeitem"]'))
|
|
12918
|
+
.find(item => item.id === id);
|
|
12919
|
+
// The row's trigger, not its item: the row back's item wraps the group's options, and showing
|
|
12920
|
+
// all of a group taller than the list would scroll the row back itself out of view.
|
|
12921
|
+
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'));
|
|
12922
|
+
if (trigger)
|
|
12923
|
+
this.scrollIntoViewNearest(trigger, false);
|
|
12644
12924
|
this.updateAriaActiveDescendant();
|
|
12645
12925
|
return;
|
|
12646
12926
|
}
|
|
@@ -12691,7 +12971,7 @@ class PdsCombobox {
|
|
|
12691
12971
|
this.flyout.reveal(flyout, currentOption);
|
|
12692
12972
|
}
|
|
12693
12973
|
else {
|
|
12694
|
-
|
|
12974
|
+
this.scrollIntoViewNearest(currentOption, true);
|
|
12695
12975
|
}
|
|
12696
12976
|
}
|
|
12697
12977
|
// Always update aria-activedescendant on the trigger element
|
|
@@ -12788,6 +13068,8 @@ class PdsCombobox {
|
|
|
12788
13068
|
this.highlightedIndex = -1;
|
|
12789
13069
|
this.highlightedGroup = group;
|
|
12790
13070
|
this.keyboardNavigating = false;
|
|
13071
|
+
// So revealing this row again later is announced again.
|
|
13072
|
+
this.revealedGroupLabel = null;
|
|
12791
13073
|
}
|
|
12792
13074
|
// Get the label of the selected option
|
|
12793
13075
|
get selectedLabel() {
|
|
@@ -12943,7 +13225,8 @@ class PdsCombobox {
|
|
|
12943
13225
|
'pds-combobox__listbox--grouped': this.groupDisplay !== 'inline',
|
|
12944
13226
|
'pds-combobox__listbox--drill-in': this.drillDirection === 'in',
|
|
12945
13227
|
'pds-combobox__listbox--drill-out': this.drillDirection === 'out',
|
|
12946
|
-
|
|
13228
|
+
'pds-combobox__listbox--pointer-hover': this.pointerCanHover,
|
|
13229
|
+
}, 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",
|
|
12947
13230
|
// Focusable but out of the tab order with panel search, so it can take focus when a
|
|
12948
13231
|
// drilled-in group hides the field. Dropping it while focused would blur the list and close.
|
|
12949
13232
|
tabIndex: withSearch ? -1 : undefined, "aria-activedescendant": listTakesFocus ? this.activeDescendantId : undefined, onKeyDown: withSearch ? this.onPanelTreeKeyDown : undefined, ref: el => {
|
|
@@ -13109,7 +13392,21 @@ class PdsCombobox {
|
|
|
13109
13392
|
'pds-combobox__option--layout': isLayout,
|
|
13110
13393
|
'pds-combobox__option--chip': isChip,
|
|
13111
13394
|
'pds-combobox__option--disabled': isDisabled,
|
|
13112
|
-
}, "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.
|
|
13395
|
+
}, "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" })));
|
|
13396
|
+
}
|
|
13397
|
+
/** An option's text, after its `data-icon` when it has one. */
|
|
13398
|
+
renderOptionLabel(option) {
|
|
13399
|
+
const icon = optionIconOf(option);
|
|
13400
|
+
if (icon === null)
|
|
13401
|
+
return this.getOptionLabel(option);
|
|
13402
|
+
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)));
|
|
13403
|
+
}
|
|
13404
|
+
/** The grouped panel's rows, in the order the panel draws them and the keyboard moves through. */
|
|
13405
|
+
panelEntries() {
|
|
13406
|
+
// Slotted markup is already in order; only options from data record positions.
|
|
13407
|
+
if (this.options === undefined && !this.asyncUrl)
|
|
13408
|
+
return buildPanelEntries(this.filteredItems);
|
|
13409
|
+
return buildPanelEntries(this.filteredItems, element => this.panelPositions.get(element));
|
|
13113
13410
|
}
|
|
13114
13411
|
/**
|
|
13115
13412
|
* `flyout`: one row per group, its options in a flyout beside it. `drill-in`: the same rows, and
|
|
@@ -13117,7 +13414,7 @@ class PdsCombobox {
|
|
|
13117
13414
|
* it's a tree: the rows and ungrouped options are level 1, a group's options level 2.
|
|
13118
13415
|
*/
|
|
13119
13416
|
renderGroupedPanel() {
|
|
13120
|
-
const entries =
|
|
13417
|
+
const entries = this.panelEntries();
|
|
13121
13418
|
const setsize = entries.length;
|
|
13122
13419
|
if (this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null) {
|
|
13123
13420
|
const position = entries.findIndex(entry => entry.kind === 'group' && entry.group.optgroup === this.openGroup);
|
|
@@ -13148,22 +13445,26 @@ class PdsCombobox {
|
|
|
13148
13445
|
return (hAsync("li", { key: "group-back", id: id, class: {
|
|
13149
13446
|
'pds-combobox__group-back': true,
|
|
13150
13447
|
'pds-combobox__group-back--disabled': disabled,
|
|
13151
|
-
|
|
13448
|
+
// As the group rows: shaded for the keys, and by `:hover` for the pointer.
|
|
13449
|
+
'pds-combobox__group-back--highlighted': this.keyboardNavigating && this.highlightedGroupRow === group.optgroup,
|
|
13152
13450
|
'pds-combobox__group-back--keyboard': this.keyboardNavigating && this.highlightedGroupRow === group.optgroup,
|
|
13153
13451
|
}, 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))));
|
|
13154
13452
|
}
|
|
13155
13453
|
renderGroupRow(group, groupIndex, { posinset, setsize }) {
|
|
13156
13454
|
const flyout = this.effectiveGroupDisplay === 'flyout';
|
|
13157
13455
|
const isOpen = flyout && this.openGroup === group.optgroup;
|
|
13158
|
-
|
|
13456
|
+
// Drill-in shades a group row only for the keys: not for the group holding the selection, or the
|
|
13457
|
+
// row the pointer or a click-open left highlighted, which read as picked. `:hover` covers the pointer.
|
|
13458
|
+
const hasSelection = flyout && group.options.some(({ option }) => this.isOptionSelected(option));
|
|
13459
|
+
const isCurrent = this.highlightedGroupRow === group.optgroup;
|
|
13159
13460
|
const disabled = isGroupDisabled(group);
|
|
13160
13461
|
const id = this.groupDomId(group.optgroup);
|
|
13161
13462
|
return (hAsync("li", { key: `group-${groupIndex}`, id: id, class: {
|
|
13162
13463
|
'pds-combobox__group-row': true,
|
|
13163
13464
|
'pds-combobox__group-row--open': isOpen,
|
|
13164
13465
|
'pds-combobox__group-row--has-selection': hasSelection,
|
|
13165
|
-
'pds-combobox__group-row--highlighted':
|
|
13166
|
-
'pds-combobox__group-row--keyboard':
|
|
13466
|
+
'pds-combobox__group-row--highlighted': isCurrent && (flyout || this.keyboardNavigating),
|
|
13467
|
+
'pds-combobox__group-row--keyboard': isCurrent && this.keyboardNavigating,
|
|
13167
13468
|
'pds-combobox__group-row--disabled': disabled,
|
|
13168
13469
|
}, 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 && (
|
|
13169
13470
|
// `name`, not `icon`: `icon` also loads URLs and data: SVGs, unsanitized.
|
|
@@ -13179,7 +13480,23 @@ class PdsCombobox {
|
|
|
13179
13480
|
}
|
|
13180
13481
|
// Helper method to render default text content
|
|
13181
13482
|
renderDefaultContent() {
|
|
13182
|
-
|
|
13483
|
+
const icon = this.selectedIcon;
|
|
13484
|
+
return (hAsync("span", { class: {
|
|
13485
|
+
'pds-combobox__button-trigger-label': true,
|
|
13486
|
+
'pds-combobox__button-trigger-label--placeholder': !this.selectedLabel,
|
|
13487
|
+
'pds-combobox__button-trigger-label--with-icon': icon !== null,
|
|
13488
|
+
} }, icon !== null && (
|
|
13489
|
+
// `name`, not `icon`: `icon` also loads URLs and data: SVGs, unsanitized.
|
|
13490
|
+
hAsync("pds-icon", { name: icon, size: "regular", "aria-hidden": "true", class: "pds-combobox__button-trigger-icon" })), this.selectedLabel || this.placeholder));
|
|
13491
|
+
}
|
|
13492
|
+
/** The selection's icon for the button trigger: the option's own, or else its group's. */
|
|
13493
|
+
get selectedIcon() {
|
|
13494
|
+
var _a;
|
|
13495
|
+
const option = this.selectedOption;
|
|
13496
|
+
if (!option)
|
|
13497
|
+
return null;
|
|
13498
|
+
const optgroup = parentOptgroupOf(option);
|
|
13499
|
+
return (_a = optionIconOf(option)) !== null && _a !== void 0 ? _a : (optgroup !== null ? groupIconOf(optgroup) : null);
|
|
13183
13500
|
}
|
|
13184
13501
|
// Helper method to check if we should show layout content
|
|
13185
13502
|
shouldShowLayoutContent() {
|
|
@@ -13297,6 +13614,7 @@ class PdsCombobox {
|
|
|
13297
13614
|
];
|
|
13298
13615
|
}
|
|
13299
13616
|
render() {
|
|
13617
|
+
var _a;
|
|
13300
13618
|
const triggerClass = [
|
|
13301
13619
|
'pds-combobox__button-trigger',
|
|
13302
13620
|
`pds-combobox__button-trigger--${this.triggerVariant}`,
|
|
@@ -13304,13 +13622,18 @@ class PdsCombobox {
|
|
|
13304
13622
|
]
|
|
13305
13623
|
.filter(Boolean)
|
|
13306
13624
|
.join(' ');
|
|
13307
|
-
return (hAsync(Host, { key: '
|
|
13625
|
+
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 => {
|
|
13308
13626
|
this.inputEl = el;
|
|
13309
13627
|
this.triggerEl = el;
|
|
13310
13628
|
}, class: {
|
|
13311
13629
|
'pds-combobox__input': true,
|
|
13312
13630
|
'pds-combobox__input--invalid': this.isInvalid(),
|
|
13313
|
-
}, 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: '
|
|
13631
|
+
}, 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' && [
|
|
13632
|
+
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 : ''),
|
|
13633
|
+
// Its own region: sharing one, revealing a row then opening it would leave the text the
|
|
13634
|
+
// same, and opening the group would go unannounced.
|
|
13635
|
+
hAsync("span", { key: "reveal-status", class: "visually-hidden", role: "status", "aria-live": "polite" }, this.isOpen ? (_a = this.revealedGroupLabel) !== null && _a !== void 0 ? _a : '' : ''),
|
|
13636
|
+
])));
|
|
13314
13637
|
}
|
|
13315
13638
|
static get formAssociated() { return true; }
|
|
13316
13639
|
get el() { return getElement(this); }
|
|
@@ -13393,6 +13716,8 @@ class PdsCombobox {
|
|
|
13393
13716
|
"drillDirection": [32],
|
|
13394
13717
|
"highlightedGroup": [32],
|
|
13395
13718
|
"keyboardNavigating": [32],
|
|
13719
|
+
"revealedGroupLabel": [32],
|
|
13720
|
+
"pointerCanHover": [32],
|
|
13396
13721
|
"panelQuery": [32],
|
|
13397
13722
|
"flyoutFallback": [32],
|
|
13398
13723
|
"selectedOption": [32],
|
|
@@ -13440,7 +13765,7 @@ class PdsContainer {
|
|
|
13440
13765
|
hostStyle['--pine-container-max-width'] = customSize;
|
|
13441
13766
|
if (!this.centered)
|
|
13442
13767
|
hostStyle['margin-inline'] = '0';
|
|
13443
|
-
return (hAsync(Host, { key: '
|
|
13768
|
+
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' }))));
|
|
13444
13769
|
}
|
|
13445
13770
|
static get style() { return pdsContainerCss(); }
|
|
13446
13771
|
static get cmpMeta() { return {
|
|
@@ -13560,7 +13885,7 @@ class PdsCopytext {
|
|
|
13560
13885
|
render() {
|
|
13561
13886
|
const hostClass = this.classNames();
|
|
13562
13887
|
this.hostKeeper.record(hostClass);
|
|
13563
|
-
return (hAsync(Host, { key: '
|
|
13888
|
+
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" }))));
|
|
13564
13889
|
}
|
|
13565
13890
|
get el() { return getElement(this); }
|
|
13566
13891
|
static get watchers() { return {
|
|
@@ -14254,7 +14579,7 @@ function clockFor(locale) {
|
|
|
14254
14579
|
return { hour12, am: (_a = period(1)) !== null && _a !== void 0 ? _a : 'AM', pm: (_b = period(13)) !== null && _b !== void 0 ? _b : 'PM' };
|
|
14255
14580
|
}
|
|
14256
14581
|
|
|
14257
|
-
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}`;
|
|
14582
|
+
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}`;
|
|
14258
14583
|
|
|
14259
14584
|
const FULL_DATE = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
|
|
14260
14585
|
const DEFAULT_START_TIME = '00:00';
|
|
@@ -15562,14 +15887,14 @@ class PdsDatepicker {
|
|
|
15562
15887
|
}
|
|
15563
15888
|
render() {
|
|
15564
15889
|
const locale = this.resolvedLocale;
|
|
15565
|
-
return (hAsync(Host, { key: '
|
|
15890
|
+
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", {
|
|
15566
15891
|
// Keyed, as is the calendar button: when Clear appears after a pick, the focused
|
|
15567
15892
|
// calendar button must stay that button rather than be reused as Clear.
|
|
15568
15893
|
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,
|
|
15569
15894
|
// Out of the tab order, as a native search field's clear button is: Tab from a field
|
|
15570
15895
|
// just emptied would land on it as the change removes it, dropping focus to the page.
|
|
15571
15896
|
tabindex: "-1", onMouseDown: this.onClearMouseDown, onClick: this.onClearClick
|
|
15572
|
-
}, hAsync("pds-icon", { key: '
|
|
15897
|
+
}, 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)));
|
|
15573
15898
|
}
|
|
15574
15899
|
static get formAssociated() { return true; }
|
|
15575
15900
|
get el() { return getElement(this); }
|
|
@@ -15711,7 +16036,7 @@ class PdsDivider {
|
|
|
15711
16036
|
return classNames.join(' ');
|
|
15712
16037
|
}
|
|
15713
16038
|
render() {
|
|
15714
|
-
return (hAsync(Host, { key: '
|
|
16039
|
+
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() }))));
|
|
15715
16040
|
}
|
|
15716
16041
|
static get style() { return pdsDividerCss(); }
|
|
15717
16042
|
static get cmpMeta() { return {
|
|
@@ -15893,11 +16218,11 @@ class PdsDrawer {
|
|
|
15893
16218
|
this.open = false;
|
|
15894
16219
|
}
|
|
15895
16220
|
render() {
|
|
15896
|
-
return (hAsync(Host, { key: '
|
|
16221
|
+
return (hAsync(Host, { key: 'ae7e67ed196ef95a39c2b729e859712ce5c41144', class: {
|
|
15897
16222
|
'pds-drawer': true,
|
|
15898
16223
|
[`pds-drawer--${this.side}`]: true,
|
|
15899
16224
|
[`pds-drawer--${this.size}`]: true,
|
|
15900
|
-
} }, hAsync("pds-modal", { key: '
|
|
16225
|
+
} }, 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' }))));
|
|
15901
16226
|
}
|
|
15902
16227
|
get el() { return getElement(this); }
|
|
15903
16228
|
static get style() { return pdsDrawerCss(); }
|
|
@@ -15937,7 +16262,7 @@ class PdsDrawerContent {
|
|
|
15937
16262
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer-content'), '.pds-drawer-content');
|
|
15938
16263
|
}
|
|
15939
16264
|
render() {
|
|
15940
|
-
return (hAsync("div", { key: '
|
|
16265
|
+
return (hAsync("div", { key: 'f307939ab0a94f6a0d8a3675c658def0ded68b98', class: "pds-drawer-content" }, hAsync("slot", { key: 'dadac08ac15bb8ded98ea982511e2d57bea9bdca' })));
|
|
15941
16266
|
}
|
|
15942
16267
|
get el() { return getElement(this); }
|
|
15943
16268
|
static get style() { return pdsDrawerContentCss(); }
|
|
@@ -15965,7 +16290,7 @@ class PdsDrawerFooter {
|
|
|
15965
16290
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer__footer'), '.pds-drawer__footer');
|
|
15966
16291
|
}
|
|
15967
16292
|
render() {
|
|
15968
|
-
return (hAsync("footer", { key: '
|
|
16293
|
+
return (hAsync("footer", { key: 'b58c68d88b467e8baa3682d16f97076d06ea2414', class: "pds-drawer__footer" }, hAsync("slot", { key: 'ff2306202c14029b397d40b5bb3d672a8aa571c0' })));
|
|
15969
16294
|
}
|
|
15970
16295
|
get el() { return getElement(this); }
|
|
15971
16296
|
static get style() { return pdsDrawerFooterCss(); }
|
|
@@ -15993,7 +16318,7 @@ class PdsDrawerHeader {
|
|
|
15993
16318
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer__header'), '.pds-drawer__header');
|
|
15994
16319
|
}
|
|
15995
16320
|
render() {
|
|
15996
|
-
return (hAsync("header", { key: '
|
|
16321
|
+
return (hAsync("header", { key: '280e6ca734317d5733e4c595431c8070eff13d58', class: "pds-drawer__header" }, hAsync("slot", { key: 'cc6af6084600c4dc60d7bd99e040376abdf5ffe3' })));
|
|
15997
16322
|
}
|
|
15998
16323
|
get el() { return getElement(this); }
|
|
15999
16324
|
static get style() { return pdsDrawerHeaderCss(); }
|
|
@@ -16007,9 +16332,10 @@ class PdsDrawerHeader {
|
|
|
16007
16332
|
}; }
|
|
16008
16333
|
}
|
|
16009
16334
|
|
|
16010
|
-
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}`;
|
|
16335
|
+
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}`;
|
|
16011
16336
|
|
|
16012
16337
|
/**
|
|
16338
|
+
* @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.
|
|
16013
16339
|
* @part menu-panel - Exposes the dropdown menu container for styling.
|
|
16014
16340
|
*/
|
|
16015
16341
|
class PdsDropdownMenu {
|
|
@@ -16020,6 +16346,7 @@ class PdsDropdownMenu {
|
|
|
16020
16346
|
this.cleanupAutoUpdate = null;
|
|
16021
16347
|
this.triggerObserver = null;
|
|
16022
16348
|
this.currentFocusIndex = -1;
|
|
16349
|
+
this.hasHeader = false;
|
|
16023
16350
|
/**
|
|
16024
16351
|
* The placement of the dropdown panel relative to the trigger.
|
|
16025
16352
|
*/
|
|
@@ -16038,8 +16365,11 @@ class PdsDropdownMenu {
|
|
|
16038
16365
|
// Writes the trigger's ARIA from the menu's state, so the observer's own callback doesn't loop.
|
|
16039
16366
|
this.syncTriggerAria = () => {
|
|
16040
16367
|
if (!this.triggerEl)
|
|
16041
|
-
return;
|
|
16042
|
-
setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
|
|
16368
|
+
return false;
|
|
16369
|
+
return setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
|
|
16370
|
+
};
|
|
16371
|
+
this.handleHeaderSlotChange = (event) => {
|
|
16372
|
+
this.hasHeader = event.target.assignedElements().length > 0;
|
|
16043
16373
|
};
|
|
16044
16374
|
this.handleSlotChange = (event) => {
|
|
16045
16375
|
this.slotEl = event.target;
|
|
@@ -16118,6 +16448,9 @@ class PdsDropdownMenu {
|
|
|
16118
16448
|
this.toggleDropdown();
|
|
16119
16449
|
};
|
|
16120
16450
|
}
|
|
16451
|
+
componentWillLoad() {
|
|
16452
|
+
this.hasHeader = Array.from(this.host.children).some(el => el.getAttribute('slot') === 'header');
|
|
16453
|
+
}
|
|
16121
16454
|
componentDidRender() {
|
|
16122
16455
|
var _a;
|
|
16123
16456
|
this.panelEl = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box');
|
|
@@ -16146,7 +16479,8 @@ class PdsDropdownMenu {
|
|
|
16146
16479
|
this.triggerObserver = null;
|
|
16147
16480
|
if (!this.triggerEl || typeof MutationObserver === 'undefined')
|
|
16148
16481
|
return;
|
|
16149
|
-
|
|
16482
|
+
// Capped against a script that keeps undoing it; opening and closing still write it directly.
|
|
16483
|
+
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));
|
|
16150
16484
|
this.triggerObserver.observe(this.triggerEl, {
|
|
16151
16485
|
attributes: true,
|
|
16152
16486
|
attributeFilter: ['aria-haspopup', 'aria-expanded'],
|
|
@@ -16352,7 +16686,7 @@ class PdsDropdownMenu {
|
|
|
16352
16686
|
}
|
|
16353
16687
|
}
|
|
16354
16688
|
render() {
|
|
16355
|
-
return (hAsync(Host, { key: '
|
|
16689
|
+
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 })))));
|
|
16356
16690
|
}
|
|
16357
16691
|
get host() { return getElement(this); }
|
|
16358
16692
|
static get style() { return pdsDropdownMenuCss(); }
|
|
@@ -16362,7 +16696,8 @@ class PdsDropdownMenu {
|
|
|
16362
16696
|
"$members$": {
|
|
16363
16697
|
"componentId": [1, "component-id"],
|
|
16364
16698
|
"placement": [1],
|
|
16365
|
-
"currentFocusIndex": [32]
|
|
16699
|
+
"currentFocusIndex": [32],
|
|
16700
|
+
"hasHeader": [32]
|
|
16366
16701
|
},
|
|
16367
16702
|
"$listeners$": [[8, "keydown", "handleKeyDown"], [8, "click", "handleWindowClick"]],
|
|
16368
16703
|
"$lazyBundleId$": "-",
|
|
@@ -16447,7 +16782,7 @@ class PdsDropdownMenuItem {
|
|
|
16447
16782
|
}, 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)));
|
|
16448
16783
|
}
|
|
16449
16784
|
render() {
|
|
16450
|
-
return (hAsync(Host, { key: '
|
|
16785
|
+
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()));
|
|
16451
16786
|
}
|
|
16452
16787
|
get host() { return getElement(this); }
|
|
16453
16788
|
static get style() { return pdsDropdownMenuItemCss(); }
|
|
@@ -16483,7 +16818,7 @@ class PdsDropdownMenuSeparator {
|
|
|
16483
16818
|
this.disabled = false;
|
|
16484
16819
|
}
|
|
16485
16820
|
render() {
|
|
16486
|
-
return (hAsync(Host, { key: '
|
|
16821
|
+
return (hAsync(Host, { key: '60407a2edc8b4667d39cbd1ba9a859d09b0b8ff1', id: this.componentId }, hAsync("hr", { key: '8485d1c8508c5fe5e3635505f25e278f45f45b82' })));
|
|
16487
16822
|
}
|
|
16488
16823
|
static get style() { return pdsDropdownMenuSeparatorCss(); }
|
|
16489
16824
|
static get cmpMeta() { return {
|
|
@@ -17063,7 +17398,7 @@ class PdsFilter {
|
|
|
17063
17398
|
return null;
|
|
17064
17399
|
}
|
|
17065
17400
|
render() {
|
|
17066
|
-
return (hAsync(Host, { key: '
|
|
17401
|
+
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' })))));
|
|
17067
17402
|
}
|
|
17068
17403
|
get el() { return getElement(this); }
|
|
17069
17404
|
static get style() { return pdsFilterCss(); }
|
|
@@ -17095,7 +17430,7 @@ class PdsFilters {
|
|
|
17095
17430
|
registerInstance(this, hostRef);
|
|
17096
17431
|
}
|
|
17097
17432
|
render() {
|
|
17098
|
-
return (hAsync(Host, { key: '
|
|
17433
|
+
return (hAsync(Host, { key: '8688235fe7cdea1b4fc540156ff21bb9711b41b6', id: this.componentId }, hAsync("div", { key: 'e51a37977df8c31f99b28d8c7e4bedb0d63e53c6', class: "pds-filters" }, hAsync("slot", { key: '8ce936da4d3f0213408090bc3eeb011920f9aa6c' }))));
|
|
17099
17434
|
}
|
|
17100
17435
|
static get style() { return pdsFiltersCss(); }
|
|
17101
17436
|
static get cmpMeta() { return {
|
|
@@ -17224,6 +17559,28 @@ const isRTL = (hostEl) => {
|
|
|
17224
17559
|
const isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
|
|
17225
17560
|
const isStr = (val) => typeof val === 'string'; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
17226
17561
|
const toLower = (val) => val.toLowerCase();
|
|
17562
|
+
/**
|
|
17563
|
+
* Normalizes a color value for use as a CSS custom property value: a bare
|
|
17564
|
+
* design token (--pine-color-foo) is wrapped in var(...), an already-wrapped
|
|
17565
|
+
* var(--token) is passed through unchanged, and anything else (a literal CSS
|
|
17566
|
+
* color, or currentColor) is passed through as-is. Mirrors the equivalent
|
|
17567
|
+
* utility in the `pine` repo's `libs/core/src/utils/utils.ts`
|
|
17568
|
+
* (`normalizeColorValue`) — duplicated here rather than imported because
|
|
17569
|
+
* `@pine-ds/core` already depends on `@pine-ds/icons`, so the reverse
|
|
17570
|
+
* dependency would be circular.
|
|
17571
|
+
*/
|
|
17572
|
+
const normalizeColorValue = (value) => {
|
|
17573
|
+
if (!isStr(value))
|
|
17574
|
+
return undefined;
|
|
17575
|
+
const trimmed = value.trim();
|
|
17576
|
+
if (trimmed === '')
|
|
17577
|
+
return undefined;
|
|
17578
|
+
if (trimmed.startsWith('var('))
|
|
17579
|
+
return trimmed;
|
|
17580
|
+
if (trimmed.startsWith('--'))
|
|
17581
|
+
return `var(${trimmed})`;
|
|
17582
|
+
return trimmed;
|
|
17583
|
+
};
|
|
17227
17584
|
/**
|
|
17228
17585
|
* Elements inside of web components sometimes need to inherit global attributes
|
|
17229
17586
|
* set on the host. For example, the inner input in `pds-input` should inherit
|
|
@@ -17385,9 +17742,10 @@ class PdsIcon {
|
|
|
17385
17742
|
this.setupInitialAriaLabel();
|
|
17386
17743
|
}
|
|
17387
17744
|
setCSSVariables() {
|
|
17745
|
+
var _a;
|
|
17388
17746
|
this.el.style.setProperty(`--dimension-icon-height`, this.iconSize());
|
|
17389
17747
|
this.el.style.setProperty(`--dimension-icon-width`, this.iconSize());
|
|
17390
|
-
this.el.style.setProperty(`--color-icon-fill`,
|
|
17748
|
+
this.el.style.setProperty(`--color-icon-fill`, (_a = normalizeColorValue(this.color)) !== null && _a !== void 0 ? _a : 'currentColor');
|
|
17391
17749
|
}
|
|
17392
17750
|
connectedCallback() {
|
|
17393
17751
|
// Handle re-connection during client-side navigation
|
|
@@ -17432,7 +17790,7 @@ class PdsIcon {
|
|
|
17432
17790
|
const shouldFlip = flipRtl || shouldIconAutoFlip;
|
|
17433
17791
|
// Use inherited aria-label if provided, otherwise fall back to auto-generated one
|
|
17434
17792
|
const finalAriaLabel = inheritedAttributes['aria-label'] || ariaLabel;
|
|
17435
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
17793
|
+
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" }))));
|
|
17436
17794
|
}
|
|
17437
17795
|
/*****
|
|
17438
17796
|
* Private Methods
|
|
@@ -17568,9 +17926,9 @@ class PdsImage {
|
|
|
17568
17926
|
this.loading = 'eager';
|
|
17569
17927
|
}
|
|
17570
17928
|
render() {
|
|
17571
|
-
return (hAsync(Host, { key: '
|
|
17929
|
+
return (hAsync(Host, { key: '1e8bb3882c2a629004ce1441e85d5c5a75a84e98', class: {
|
|
17572
17930
|
'pds-image': true,
|
|
17573
|
-
}, id: this.componentId }, hAsync("img", { key: '
|
|
17931
|
+
}, 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 })));
|
|
17574
17932
|
}
|
|
17575
17933
|
static get style() { return pdsImageCss(); }
|
|
17576
17934
|
static get cmpMeta() { return {
|
|
@@ -17890,10 +18248,10 @@ class PdsInput {
|
|
|
17890
18248
|
'has-prepend': this.hasPrepend,
|
|
17891
18249
|
'has-append': this.hasAppend,
|
|
17892
18250
|
};
|
|
17893
|
-
return (hAsync(Host, { key: '
|
|
18251
|
+
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: {
|
|
17894
18252
|
'pds-input__label-wrapper': true,
|
|
17895
18253
|
'visually-hidden': this.hideLabel,
|
|
17896
|
-
} }, hAsync("label", { key: '
|
|
18254
|
+
} }, 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)))));
|
|
17897
18255
|
}
|
|
17898
18256
|
static get formAssociated() { return true; }
|
|
17899
18257
|
get el() { return getElement(this); }
|
|
@@ -18005,8 +18363,8 @@ class PdsLink {
|
|
|
18005
18363
|
const targetValue = this.target || (this.external ? '_blank' : undefined);
|
|
18006
18364
|
const showExternalIcon = this.external;
|
|
18007
18365
|
const relValue = targetValue === '_blank' ? 'noopener noreferrer' : undefined;
|
|
18008
|
-
return (hAsync("a", { key: '
|
|
18009
|
-
hAsync("pds-icon", { key: '
|
|
18366
|
+
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 &&
|
|
18367
|
+
hAsync("pds-icon", { key: '9553a8256b6811296ea4b762e32662c1a2f4aecf', icon: launch, size: this.fontSize })));
|
|
18010
18368
|
}
|
|
18011
18369
|
static get style() { return pdsLinkCss(); }
|
|
18012
18370
|
static get cmpMeta() { return {
|
|
@@ -18105,7 +18463,7 @@ class PdsLoader {
|
|
|
18105
18463
|
'aria-live': 'polite',
|
|
18106
18464
|
};
|
|
18107
18465
|
this.hostKeeper.record(hostClass, {}, hostAttributes);
|
|
18108
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
18466
|
+
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..."))));
|
|
18109
18467
|
}
|
|
18110
18468
|
get el() { return getElement(this); }
|
|
18111
18469
|
static get watchers() { return {
|
|
@@ -18652,14 +19010,14 @@ class PdsModal {
|
|
|
18652
19010
|
}
|
|
18653
19011
|
render() {
|
|
18654
19012
|
const [sizeClass = 'md', customSize] = this.resolveSize();
|
|
18655
|
-
return (hAsync("dialog", { key: '
|
|
19013
|
+
return (hAsync("dialog", { key: '12ea38928ea287f16ffa33e246caa2bfde6fc130', class: {
|
|
18656
19014
|
'pds-modal__backdrop': true,
|
|
18657
19015
|
'open': this.open
|
|
18658
|
-
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, hAsync("div", { key: '
|
|
19016
|
+
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, hAsync("div", { key: 'b9d83cabda56c315d9115f7030e3bdbcf923ec08', class: {
|
|
18659
19017
|
'pds-modal': true,
|
|
18660
19018
|
[`pds-modal--${sizeClass}`]: true,
|
|
18661
19019
|
'pds-modal--scrollable': this.scrollable
|
|
18662
|
-
}, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, hAsync("slot", { key: '
|
|
19020
|
+
}, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, hAsync("slot", { key: '3c5edad1482cb124e503197adf411890573b076d' }))));
|
|
18663
19021
|
}
|
|
18664
19022
|
get el() { return getElement(this); }
|
|
18665
19023
|
static get watchers() { return {
|
|
@@ -18876,10 +19234,10 @@ class PdsModalContent {
|
|
|
18876
19234
|
render() {
|
|
18877
19235
|
// Only apply max-height style if it's not 'none'
|
|
18878
19236
|
const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
|
|
18879
|
-
return (hAsync(Host, { key: '
|
|
19237
|
+
return (hAsync(Host, { key: 'd41d5632eb6a2dafe921546af60f835d3545cc4f' }, hAsync("div", { key: '741ac9f28149039ecf5051142a939ab62ef26a87', class: {
|
|
18880
19238
|
'pds-modal-content': true,
|
|
18881
19239
|
[`pds-modal-content--border-${this.border}`]: true
|
|
18882
|
-
}, style: styleObj, tabindex: "-1" }, hAsync("slot", { key: '
|
|
19240
|
+
}, style: styleObj, tabindex: "-1" }, hAsync("slot", { key: '090a52e9425d4df61c2d8216cc19f0925babdffe' }))));
|
|
18883
19241
|
}
|
|
18884
19242
|
get el() { return getElement(this); }
|
|
18885
19243
|
static get style() { return pdsModalContentCss(); }
|
|
@@ -18910,7 +19268,7 @@ class PdsModalFooter {
|
|
|
18910
19268
|
unwrapReconnectedContent(this.el.querySelector('.pds-modal__footer'), '.pds-modal__footer');
|
|
18911
19269
|
}
|
|
18912
19270
|
render() {
|
|
18913
|
-
return (hAsync("footer", { key: '
|
|
19271
|
+
return (hAsync("footer", { key: '030153b84f1ea1cb133c9ccec3ad86583995974f', class: "pds-modal__footer" }, hAsync("slot", { key: '3a479e7047f3e845a65c37d60539648c8ff78602' })));
|
|
18914
19272
|
}
|
|
18915
19273
|
get el() { return getElement(this); }
|
|
18916
19274
|
static get style() { return pdsModalFooterCss(); }
|
|
@@ -18938,7 +19296,7 @@ class PdsModalHeader {
|
|
|
18938
19296
|
unwrapReconnectedContent(this.el.querySelector('.pds-modal__header'), '.pds-modal__header');
|
|
18939
19297
|
}
|
|
18940
19298
|
render() {
|
|
18941
|
-
return (hAsync("header", { key: '
|
|
19299
|
+
return (hAsync("header", { key: 'ee3ac5fb9b00a943aa86c3434ea07291b74d776c', class: "pds-modal__header" }, hAsync("slot", { key: '0b0f7ff257635723099c536648a826be8dcc05e7' })));
|
|
18942
19300
|
}
|
|
18943
19301
|
get el() { return getElement(this); }
|
|
18944
19302
|
static get style() { return pdsModalHeaderCss(); }
|
|
@@ -20186,10 +20544,10 @@ class PdsMultiselect {
|
|
|
20186
20544
|
}
|
|
20187
20545
|
render() {
|
|
20188
20546
|
const hasSelections = this.selectedItems.length > 0;
|
|
20189
|
-
return (hAsync(Host, { key: '
|
|
20547
|
+
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: {
|
|
20190
20548
|
'pds-multiselect__label': true,
|
|
20191
20549
|
'visually-hidden': this.hideLabel,
|
|
20192
|
-
} }, this.label)), hAsync("div", { key: '
|
|
20550
|
+
} }, 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: {
|
|
20193
20551
|
'pds-multiselect__trigger': true,
|
|
20194
20552
|
'pds-multiselect__trigger--open': this.isOpen,
|
|
20195
20553
|
'pds-multiselect__trigger--disabled': this.disabled,
|
|
@@ -20205,7 +20563,7 @@ class PdsMultiselect {
|
|
|
20205
20563
|
}, 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: {
|
|
20206
20564
|
'pds-multiselect__trigger-text': true,
|
|
20207
20565
|
'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
|
|
20208
|
-
} }, 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: '
|
|
20566
|
+
} }, 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' })))));
|
|
20209
20567
|
}
|
|
20210
20568
|
static get formAssociated() { return true; }
|
|
20211
20569
|
get el() { return getElement(this); }
|
|
@@ -20301,6 +20659,48 @@ class PdsMultiselect {
|
|
|
20301
20659
|
}; }
|
|
20302
20660
|
}
|
|
20303
20661
|
|
|
20662
|
+
/**
|
|
20663
|
+
* Escapes a string so it's safe to interpolate into a CSS identifier (an id selector like `#${id}`)
|
|
20664
|
+
* or into CSS text (a stylesheet rule referencing that id). Equivalent to the native `CSS.escape`,
|
|
20665
|
+
* reimplemented because Stencil's unit-test DOM (`newSpecPage`'s mock-doc) doesn't provide it.
|
|
20666
|
+
* @param value - The string to escape, e.g. a consumer-supplied id
|
|
20667
|
+
*/
|
|
20668
|
+
const cssEscape = (value) => {
|
|
20669
|
+
const string = String(value);
|
|
20670
|
+
const length = string.length;
|
|
20671
|
+
const firstCodeUnit = string.charCodeAt(0);
|
|
20672
|
+
let result = '';
|
|
20673
|
+
for (let index = 0; index < length; index++) {
|
|
20674
|
+
const codeUnit = string.charCodeAt(index);
|
|
20675
|
+
if (codeUnit === 0x0000) {
|
|
20676
|
+
result += '�';
|
|
20677
|
+
continue;
|
|
20678
|
+
}
|
|
20679
|
+
if ((codeUnit >= 0x0001 && codeUnit <= 0x001f) ||
|
|
20680
|
+
codeUnit === 0x007f ||
|
|
20681
|
+
(index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
|
|
20682
|
+
(index === 1 && codeUnit >= 0x0030 && codeUnit <= 0x0039 && firstCodeUnit === 0x002d)) {
|
|
20683
|
+
result += `\\${codeUnit.toString(16)} `;
|
|
20684
|
+
continue;
|
|
20685
|
+
}
|
|
20686
|
+
if (index === 0 && length === 1 && codeUnit === 0x002d) {
|
|
20687
|
+
result += `\\${string.charAt(index)}`;
|
|
20688
|
+
continue;
|
|
20689
|
+
}
|
|
20690
|
+
if (codeUnit >= 0x0080 ||
|
|
20691
|
+
codeUnit === 0x002d ||
|
|
20692
|
+
codeUnit === 0x005f ||
|
|
20693
|
+
(codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
|
|
20694
|
+
(codeUnit >= 0x0041 && codeUnit <= 0x005a) ||
|
|
20695
|
+
(codeUnit >= 0x0061 && codeUnit <= 0x007a)) {
|
|
20696
|
+
result += string.charAt(index);
|
|
20697
|
+
continue;
|
|
20698
|
+
}
|
|
20699
|
+
result += `\\${string.charAt(index)}`;
|
|
20700
|
+
}
|
|
20701
|
+
return result;
|
|
20702
|
+
};
|
|
20703
|
+
|
|
20304
20704
|
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}`;
|
|
20305
20705
|
|
|
20306
20706
|
/**
|
|
@@ -20470,7 +20870,8 @@ class PdsPopover {
|
|
|
20470
20870
|
this.triggerObserver = null;
|
|
20471
20871
|
if (this.triggerEl == null || typeof MutationObserver === 'undefined')
|
|
20472
20872
|
return;
|
|
20473
|
-
|
|
20873
|
+
// Capped against a script that keeps undoing it; opening and closing still write it directly.
|
|
20874
|
+
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));
|
|
20474
20875
|
this.triggerObserver.observe(this.triggerEl, {
|
|
20475
20876
|
attributes: true,
|
|
20476
20877
|
attributeFilter: ['aria-expanded', 'aria-controls'],
|
|
@@ -20480,9 +20881,9 @@ class PdsPopover {
|
|
|
20480
20881
|
// This mirrors the native Popover API's accessibility behavior
|
|
20481
20882
|
linkTriggerToPortal() {
|
|
20482
20883
|
if (this.triggerEl == null || this.portalEl == null)
|
|
20483
|
-
return;
|
|
20884
|
+
return false;
|
|
20484
20885
|
// Skips values already in place, so the trigger observer's own callback doesn't loop.
|
|
20485
|
-
setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
20886
|
+
return setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
20486
20887
|
}
|
|
20487
20888
|
// componentDidLoad doesn't run again when a popover comes back, so rebuild whatever
|
|
20488
20889
|
// disconnectedCallback tore down. Each step is a no-op when nothing was.
|
|
@@ -20589,22 +20990,25 @@ class PdsPopover {
|
|
|
20589
20990
|
if (!this.portalEl)
|
|
20590
20991
|
return;
|
|
20591
20992
|
const portalId = this.portalEl.id;
|
|
20993
|
+
// componentId comes from the consumer, so it can carry characters cssEscape needs to
|
|
20994
|
+
// neutralize before the id is used as a selector or interpolated into stylesheet text.
|
|
20995
|
+
const escapedPortalId = cssEscape(portalId);
|
|
20592
20996
|
// Check if style element already exists
|
|
20593
|
-
const existingStyle = document.querySelector(`style[data-pds-popover-focus="${
|
|
20997
|
+
const existingStyle = document.querySelector(`style[data-pds-popover-focus="${escapedPortalId}"]`);
|
|
20594
20998
|
if (existingStyle)
|
|
20595
20999
|
return;
|
|
20596
21000
|
// Create style element with Pine's focus ring styles and dark mode border
|
|
20597
21001
|
const styleEl = document.createElement('style');
|
|
20598
21002
|
styleEl.setAttribute('data-pds-popover-focus', portalId);
|
|
20599
21003
|
styleEl.textContent = `
|
|
20600
|
-
#${
|
|
21004
|
+
#${escapedPortalId}:focus {
|
|
20601
21005
|
outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;
|
|
20602
21006
|
outline-offset: var(--pine-border-width, 1px);
|
|
20603
21007
|
}
|
|
20604
|
-
#${
|
|
21008
|
+
#${escapedPortalId}:focus:not(:focus-visible) {
|
|
20605
21009
|
outline: none;
|
|
20606
21010
|
}
|
|
20607
|
-
[data-theme="dark"] #${
|
|
21011
|
+
[data-theme="dark"] #${escapedPortalId} {
|
|
20608
21012
|
border: var(--pine-border);
|
|
20609
21013
|
}
|
|
20610
21014
|
`;
|
|
@@ -20663,7 +21067,7 @@ class PdsPopover {
|
|
|
20663
21067
|
}
|
|
20664
21068
|
// Remove the associated focus style element
|
|
20665
21069
|
const portalId = this.portalEl.id;
|
|
20666
|
-
const styleEl = document.querySelector(`style[data-pds-popover-focus="${portalId}"]`);
|
|
21070
|
+
const styleEl = document.querySelector(`style[data-pds-popover-focus="${cssEscape(portalId)}"]`);
|
|
20667
21071
|
if (styleEl && styleEl.parentNode) {
|
|
20668
21072
|
styleEl.parentNode.removeChild(styleEl);
|
|
20669
21073
|
}
|
|
@@ -20939,7 +21343,7 @@ class PdsPopover {
|
|
|
20939
21343
|
}, 16); // ~1 frame at 60fps
|
|
20940
21344
|
}
|
|
20941
21345
|
render() {
|
|
20942
|
-
return (hAsync(Host, { key: '
|
|
21346
|
+
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 }))));
|
|
20943
21347
|
}
|
|
20944
21348
|
get el() { return getElement(this); }
|
|
20945
21349
|
static get watchers() { return {
|
|
@@ -21001,10 +21405,10 @@ class PdsProgress {
|
|
|
21001
21405
|
this.hostKeeper.disconnect();
|
|
21002
21406
|
}
|
|
21003
21407
|
render() {
|
|
21004
|
-
const normalizedFillColor = normalizeColorValue(this.fillColor);
|
|
21408
|
+
const normalizedFillColor = normalizeColorValue$1(this.fillColor);
|
|
21005
21409
|
const hostClass = this.animated ? { 'is-animated': this.animated } : '';
|
|
21006
21410
|
this.hostKeeper.record(hostClass);
|
|
21007
|
-
return (hAsync(Host, { key: '
|
|
21411
|
+
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, "%")));
|
|
21008
21412
|
}
|
|
21009
21413
|
get el() { return getElement(this); }
|
|
21010
21414
|
static get style() { return pdsProgressCss(); }
|
|
@@ -21039,7 +21443,7 @@ class PdsProperty {
|
|
|
21039
21443
|
this.icon = 'star';
|
|
21040
21444
|
}
|
|
21041
21445
|
render() {
|
|
21042
|
-
return (hAsync(Host, { key: '
|
|
21446
|
+
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' }))));
|
|
21043
21447
|
}
|
|
21044
21448
|
static get style() { return pdsPropertyCss(); }
|
|
21045
21449
|
static get cmpMeta() { return {
|
|
@@ -21158,13 +21562,13 @@ class PdsRadio {
|
|
|
21158
21562
|
}
|
|
21159
21563
|
render() {
|
|
21160
21564
|
const renderLabelAndMessages = () => [
|
|
21161
|
-
hAsync("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, hAsync("input", { key: '
|
|
21565
|
+
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)),
|
|
21162
21566
|
this.helperMessage && (hAsync("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
|
|
21163
|
-
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: '
|
|
21567
|
+
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))
|
|
21164
21568
|
];
|
|
21165
21569
|
const hostClass = this.classNames();
|
|
21166
21570
|
this.hostKeeper.record(hostClass);
|
|
21167
|
-
return (hAsync(Host, { key: '
|
|
21571
|
+
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())));
|
|
21168
21572
|
}
|
|
21169
21573
|
get el() { return getElement(this); }
|
|
21170
21574
|
static get style() { return labelCss$3() + pdsRadioCss(); }
|
|
@@ -21356,13 +21760,13 @@ class PdsRadioGroup {
|
|
|
21356
21760
|
render() {
|
|
21357
21761
|
const gapValue = this.getGapValue();
|
|
21358
21762
|
const ariaDescribedBy = this.getAriaDescribedBy();
|
|
21359
|
-
return (hAsync(Host, { key: '
|
|
21763
|
+
return (hAsync(Host, { key: 'bf8063c1a99e272bb3f6bc647998a6ef103f8a71', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
|
|
21360
21764
|
'--pds-radio-group-gap': gapValue,
|
|
21361
|
-
} }, this.groupLabel && (hAsync("div", { key: '
|
|
21765
|
+
} }, this.groupLabel && (hAsync("div", { key: '8564ed3f8f99cdc1a0e5b189aacc6960923eb5f7', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '2309c9373790182cde030c1dbda88fa3bdcaaf12', class: {
|
|
21362
21766
|
'pds-radio-group__radios': true,
|
|
21363
21767
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
21364
21768
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
21365
|
-
} }, hAsync("slot", { key: '
|
|
21769
|
+
} }, 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))));
|
|
21366
21770
|
}
|
|
21367
21771
|
get el() { return getElement(this); }
|
|
21368
21772
|
static get watchers() { return {
|
|
@@ -21471,7 +21875,7 @@ class PdsRow {
|
|
|
21471
21875
|
'min-height': this.minHeight,
|
|
21472
21876
|
}));
|
|
21473
21877
|
this.hostKeeper.record(`pds-row ${rowClasses}`, rowInlineStyles);
|
|
21474
|
-
return hAsync(Host, { key: '
|
|
21878
|
+
return hAsync(Host, { key: '78a505fef7132f9545916155d2485a6d2df8f4a5', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
|
|
21475
21879
|
}
|
|
21476
21880
|
get el() { return getElement(this); }
|
|
21477
21881
|
static get style() { return pdsRowCss(); }
|
|
@@ -21743,7 +22147,7 @@ class PdsSelect {
|
|
|
21743
22147
|
'has-action': hasAction && !this.hideLabel ? 'true' : null,
|
|
21744
22148
|
};
|
|
21745
22149
|
this.hostKeeper.record(hostClass, {}, hostAttributes);
|
|
21746
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22150
|
+
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 }))));
|
|
21747
22151
|
}
|
|
21748
22152
|
static get formAssociated() { return true; }
|
|
21749
22153
|
get el() { return getElement(this); }
|
|
@@ -24502,7 +24906,7 @@ class PdsSortable {
|
|
|
24502
24906
|
render() {
|
|
24503
24907
|
const classNames = this.classNames();
|
|
24504
24908
|
this.hostKeeper.record(classNames);
|
|
24505
|
-
return (hAsync(Host, { key: '
|
|
24909
|
+
return (hAsync(Host, { key: 'a0e532d31561748b4632a6be9163562f990af804', class: classNames, id: this.componentId }, hAsync("slot", { key: 'd1b0defb683f841e6708374fff4bf62eb7fd5080' })));
|
|
24506
24910
|
}
|
|
24507
24911
|
get el() { return getElement(this); }
|
|
24508
24912
|
static get watchers() { return {
|
|
@@ -24577,7 +24981,7 @@ class PdsSortableItem {
|
|
|
24577
24981
|
}
|
|
24578
24982
|
render() {
|
|
24579
24983
|
this.hostKeeper.record('pds-sortable-item');
|
|
24580
|
-
return (hAsync(Host, { key: '
|
|
24984
|
+
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" })))));
|
|
24581
24985
|
}
|
|
24582
24986
|
get el() { return getElement(this); }
|
|
24583
24987
|
static get style() { return pdsSortableItemCss(); }
|
|
@@ -24700,9 +25104,9 @@ class PdsSwitch {
|
|
|
24700
25104
|
const hostClass = this.switchClassNames();
|
|
24701
25105
|
const ariaDisabled = this.disabled ? 'true' : null;
|
|
24702
25106
|
this.hostKeeper.record(hostClass, {}, { 'aria-disabled': ariaDisabled });
|
|
24703
|
-
return (hAsync(Host, { key: '
|
|
24704
|
-
hAsync("div", { key: '
|
|
24705
|
-
hAsync("div", { key: '
|
|
25107
|
+
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 &&
|
|
25108
|
+
hAsync("div", { key: 'c8196fa2ce832de3a8c6d987a78fd65d791c4c59', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
25109
|
+
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)));
|
|
24706
25110
|
}
|
|
24707
25111
|
static get formAssociated() { return true; }
|
|
24708
25112
|
get el() { return getElement(this); }
|
|
@@ -24744,6 +25148,7 @@ class PdsTab {
|
|
|
24744
25148
|
constructor(hostRef) {
|
|
24745
25149
|
registerInstance(this, hostRef);
|
|
24746
25150
|
this.pdsTabClick = createEvent(this, "pdsTabClick");
|
|
25151
|
+
this.hostKeeper = new HostStylingKeeper();
|
|
24747
25152
|
/**
|
|
24748
25153
|
* Determines the tab's disabled state.
|
|
24749
25154
|
* @defaultValue false
|
|
@@ -24762,6 +25167,12 @@ class PdsTab {
|
|
|
24762
25167
|
/** @internal */
|
|
24763
25168
|
this.selected = false;
|
|
24764
25169
|
}
|
|
25170
|
+
connectedCallback() {
|
|
25171
|
+
this.hostKeeper.connect(this.el);
|
|
25172
|
+
}
|
|
25173
|
+
disconnectedCallback() {
|
|
25174
|
+
this.hostKeeper.disconnect();
|
|
25175
|
+
}
|
|
24765
25176
|
// Unwraps a nested <a>/<button> left by a page-cache (Turbo, bfcache) reconnect.
|
|
24766
25177
|
componentDidRender() {
|
|
24767
25178
|
unwrapReconnectedContent(this.el.querySelector('.pds-tab__content'), 'a.pds-tab, button.pds-tab', '.pds-tab__content');
|
|
@@ -24797,6 +25208,9 @@ class PdsTab {
|
|
|
24797
25208
|
return classes.filter(Boolean).join(' ');
|
|
24798
25209
|
}
|
|
24799
25210
|
render() {
|
|
25211
|
+
// The docs show consumers omitting `slot`, so server HTML doesn't carry it — a DOM morph
|
|
25212
|
+
// that strips it leaves this tab unslotted, and pds-tabs has no default slot. Put it back.
|
|
25213
|
+
this.hostKeeper.record('', {}, { slot: 'tabs' });
|
|
24800
25214
|
const availabilityTabEdgeInlineStart = (hAsync("span", { class: "pds-tab-edge", role: "presentation" }));
|
|
24801
25215
|
const availabilityTabEdgeInlineEnd = (hAsync("span", { class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
|
|
24802
25216
|
const content = (hAsync(Fragment, null, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, hAsync("div", { class: "pds-tab__content" }, hAsync("slot", null))));
|
|
@@ -25116,7 +25530,7 @@ class PdsTableBody {
|
|
|
25116
25530
|
registerInstance(this, hostRef);
|
|
25117
25531
|
}
|
|
25118
25532
|
render() {
|
|
25119
|
-
return (hAsync(Host, { key: '
|
|
25533
|
+
return (hAsync(Host, { key: '817532e93c8f91ef64cd0f90aa6c4372c3b7d83f', role: "rowgroup", part: "body" }, hAsync("slot", { key: '296ba876c6716e85252a06008bd55d59624223e3' })));
|
|
25120
25534
|
}
|
|
25121
25535
|
static get style() { return pdsTableBodyCss(); }
|
|
25122
25536
|
static get cmpMeta() { return {
|
|
@@ -25254,11 +25668,11 @@ class PdsTableCell {
|
|
|
25254
25668
|
return classNames.join(' ');
|
|
25255
25669
|
}
|
|
25256
25670
|
render() {
|
|
25257
|
-
return (hAsync(Host, { key: '
|
|
25671
|
+
return (hAsync(Host, { key: 'bedaeeb5723299656f872a760ed1dd80c7fe8793', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
|
|
25258
25672
|
this.tableRef.fixedColumn &&
|
|
25259
25673
|
this.tableRef.selectable
|
|
25260
25674
|
? { '--fixed-cell-position': '40px' }
|
|
25261
|
-
: {} }, hAsync("slot", { key: '
|
|
25675
|
+
: {} }, hAsync("slot", { key: '45182ee3e004097660432f552780b3d27671bd46' })));
|
|
25262
25676
|
}
|
|
25263
25677
|
get hostElement() { return getElement(this); }
|
|
25264
25678
|
static get watchers() { return {
|
|
@@ -25327,7 +25741,7 @@ class PdsTableHead {
|
|
|
25327
25741
|
}
|
|
25328
25742
|
}
|
|
25329
25743
|
render() {
|
|
25330
|
-
return (hAsync(Host, { key: '
|
|
25744
|
+
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' })));
|
|
25331
25745
|
}
|
|
25332
25746
|
get hostElement() { return getElement(this); }
|
|
25333
25747
|
static get style() { return pdsTableHeadCss(); }
|
|
@@ -25548,11 +25962,11 @@ class PdsTableHeadCell {
|
|
|
25548
25962
|
return classNames.join(' ');
|
|
25549
25963
|
}
|
|
25550
25964
|
render() {
|
|
25551
|
-
return (hAsync(Host, { key: '
|
|
25965
|
+
return (hAsync(Host, { key: '13de42d136c5b037cd1545cd5b789b4660e23b87', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
|
|
25552
25966
|
this.tableRef.fixedColumn &&
|
|
25553
25967
|
this.tableRef.selectable
|
|
25554
25968
|
? { '--fixed-cell-position': '40px' }
|
|
25555
|
-
: {} }, hAsync("slot", { key: '
|
|
25969
|
+
: {} }, hAsync("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (hAsync("pds-icon", { key: 'cba838fa029b280561676c2b57af7f8f00055511', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
|
|
25556
25970
|
}
|
|
25557
25971
|
get hostElement() { return getElement(this); }
|
|
25558
25972
|
static get style() { return pdsTableHeadCellCss(); }
|
|
@@ -25718,7 +26132,7 @@ class PdsTableRow {
|
|
|
25718
26132
|
}
|
|
25719
26133
|
}
|
|
25720
26134
|
render() {
|
|
25721
|
-
return (hAsync(Host, { key: '
|
|
26135
|
+
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' })));
|
|
25722
26136
|
}
|
|
25723
26137
|
get hostElement() { return getElement(this); }
|
|
25724
26138
|
static get style() { return pdsTableRowCss(); }
|
|
@@ -25745,6 +26159,7 @@ const pdsTabpanelCss = () => `:host{display:block}:host(.pds-tabpanel--stretch-a
|
|
|
25745
26159
|
class PdsTabpanel {
|
|
25746
26160
|
constructor(hostRef) {
|
|
25747
26161
|
registerInstance(this, hostRef);
|
|
26162
|
+
this.hostKeeper = new HostStylingKeeper();
|
|
25748
26163
|
/**
|
|
25749
26164
|
* Keeps track of the tabpanel selected state, this property is passed by parent component
|
|
25750
26165
|
*/
|
|
@@ -25756,12 +26171,22 @@ class PdsTabpanel {
|
|
|
25756
26171
|
/** @internal */
|
|
25757
26172
|
this.stretch = false;
|
|
25758
26173
|
}
|
|
26174
|
+
connectedCallback() {
|
|
26175
|
+
this.hostKeeper.connect(this.el);
|
|
26176
|
+
}
|
|
26177
|
+
disconnectedCallback() {
|
|
26178
|
+
this.hostKeeper.disconnect();
|
|
26179
|
+
}
|
|
25759
26180
|
// Unwraps a nested .pds-tabpanel left by a page-cache (Turbo, bfcache) reconnect.
|
|
25760
26181
|
componentDidRender() {
|
|
25761
26182
|
unwrapReconnectedContent(this.el.querySelector('.pds-tabpanel'), '.pds-tabpanel');
|
|
25762
26183
|
}
|
|
25763
26184
|
render() {
|
|
25764
|
-
|
|
26185
|
+
const hostClass = this.stretch && this.selected ? "pds-tabpanel--stretch-active" : "";
|
|
26186
|
+
// The docs show consumers omitting `slot`, so server HTML doesn't carry it — a DOM morph
|
|
26187
|
+
// that strips it (and the stretch-active class) leaves this panel unslotted. Put both back.
|
|
26188
|
+
this.hostKeeper.record(hostClass, {}, { slot: 'tabpanels' });
|
|
26189
|
+
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' }))));
|
|
25765
26190
|
}
|
|
25766
26191
|
get el() { return getElement(this); }
|
|
25767
26192
|
static get style() { return pdsTabpanelCss(); }
|
|
@@ -25792,6 +26217,35 @@ class PdsTabs {
|
|
|
25792
26217
|
constructor(hostRef) {
|
|
25793
26218
|
registerInstance(this, hostRef);
|
|
25794
26219
|
this.hostKeeper = new HostStylingKeeper();
|
|
26220
|
+
this.slotChangeScheduled = false;
|
|
26221
|
+
// The tab that most recently had focus, tracked continuously via `focusin` rather
|
|
26222
|
+
// than sampled inside handleSlotChange: removing a focused element blurs it to
|
|
26223
|
+
// <body> synchronously, but slotchange only fires later (a microtask checkpoint),
|
|
26224
|
+
// by which point the sample would already read <body>.
|
|
26225
|
+
this.lastFocusedTab = null;
|
|
26226
|
+
this.handleFocusIn = (event) => {
|
|
26227
|
+
var _a;
|
|
26228
|
+
const tab = (_a = event.target) === null || _a === void 0 ? void 0 : _a.closest('pds-tab');
|
|
26229
|
+
if (tab && tab.closest('pds-tabs') === this.el) {
|
|
26230
|
+
this.lastFocusedTab = tab;
|
|
26231
|
+
}
|
|
26232
|
+
};
|
|
26233
|
+
// Focus that leaves a tab forgets it, so replacing the tab later doesn't pull focus back,
|
|
26234
|
+
// including focus that moves into a panel. Focus moving to another tab is tracked again
|
|
26235
|
+
// by focusin, which follows focusout. Removing a focused tab also fires focusout (with no
|
|
26236
|
+
// relatedTarget), while the tab is still connected, so that case is checked a microtask
|
|
26237
|
+
// later: a tab that's gone by then was removed, and is kept so its focus can be restored.
|
|
26238
|
+
this.handleFocusOut = (event) => {
|
|
26239
|
+
const tab = this.lastFocusedTab;
|
|
26240
|
+
if (event.relatedTarget) {
|
|
26241
|
+
this.lastFocusedTab = null;
|
|
26242
|
+
return;
|
|
26243
|
+
}
|
|
26244
|
+
queueMicrotask(() => {
|
|
26245
|
+
if (this.lastFocusedTab === tab && (tab === null || tab === void 0 ? void 0 : tab.isConnected))
|
|
26246
|
+
this.lastFocusedTab = null;
|
|
26247
|
+
});
|
|
26248
|
+
};
|
|
25795
26249
|
/**
|
|
25796
26250
|
* Adds a divider rule beneath the tab list.
|
|
25797
26251
|
* @defaultValue false
|
|
@@ -25811,12 +26265,44 @@ class PdsTabs {
|
|
|
25811
26265
|
* @defaultValue false
|
|
25812
26266
|
*/
|
|
25813
26267
|
this.nav = false;
|
|
26268
|
+
// The tabs and tabpanels slots fire slotchange separately, even for the same morph
|
|
26269
|
+
// (both swapped together). Coalesce same-tick firings into one re-collection pass
|
|
26270
|
+
// with a microtask, the way a single DOM mutation already only triggers one event.
|
|
26271
|
+
this.handleSlotChange = () => {
|
|
26272
|
+
if (this.slotChangeScheduled)
|
|
26273
|
+
return;
|
|
26274
|
+
this.slotChangeScheduled = true;
|
|
26275
|
+
this.activeTabNameBeforeSlotChange = this.activeTabName;
|
|
26276
|
+
queueMicrotask(() => {
|
|
26277
|
+
this.slotChangeScheduled = false;
|
|
26278
|
+
this.recollectAfterSlotChange();
|
|
26279
|
+
});
|
|
26280
|
+
};
|
|
25814
26281
|
}
|
|
25815
26282
|
connectedCallback() {
|
|
25816
26283
|
this.hostKeeper.connect(this.el);
|
|
26284
|
+
this.el.addEventListener('focusin', this.handleFocusIn);
|
|
26285
|
+
this.el.addEventListener('focusout', this.handleFocusOut);
|
|
26286
|
+
// componentDidLoad only runs once, so a reconnect (the element moved in the DOM) re-attaches
|
|
26287
|
+
// the slotchange listeners disconnectedCallback removed. Before the first render the slots
|
|
26288
|
+
// don't exist yet, so this is a no-op and componentDidLoad attaches them.
|
|
26289
|
+
const isReconnect = this.tabsSlot != null;
|
|
26290
|
+
this.setupSlotChangeListeners();
|
|
26291
|
+
// Content can change while detached, with no listener to see it — re-collect now
|
|
26292
|
+
// instead of waiting on a slotchange that may never come if nothing changes again.
|
|
26293
|
+
if (isReconnect)
|
|
26294
|
+
this.handleSlotChange();
|
|
25817
26295
|
}
|
|
25818
26296
|
disconnectedCallback() {
|
|
26297
|
+
var _a, _b;
|
|
25819
26298
|
this.hostKeeper.disconnect();
|
|
26299
|
+
this.el.removeEventListener('focusin', this.handleFocusIn);
|
|
26300
|
+
this.el.removeEventListener('focusout', this.handleFocusOut);
|
|
26301
|
+
(_a = this.tabsSlot) === null || _a === void 0 ? void 0 : _a.removeEventListener('slotchange', this.handleSlotChange);
|
|
26302
|
+
(_b = this.tabPanelsSlot) === null || _b === void 0 ? void 0 : _b.removeEventListener('slotchange', this.handleSlotChange);
|
|
26303
|
+
}
|
|
26304
|
+
componentDidLoad() {
|
|
26305
|
+
this.setupSlotChangeListeners();
|
|
25820
26306
|
}
|
|
25821
26307
|
tabClickHandler(event) {
|
|
25822
26308
|
if (this.componentId === event.detail[1]) {
|
|
@@ -25844,8 +26330,8 @@ class PdsTabs {
|
|
|
25844
26330
|
// Navigation mode is an explicit, single source of truth: `nav` drives both the
|
|
25845
26331
|
// container (<nav> of links vs role=tablist of buttons) and every child tab (via
|
|
25846
26332
|
// `navMode`), so the tabs present when the strip initializes can't mix the two.
|
|
25847
|
-
//
|
|
25848
|
-
//
|
|
26333
|
+
// Unlike child discovery (re-run on slotchange), `nav` itself isn't watched — it's
|
|
26334
|
+
// a load-time mode switch, not something a consumer is expected to toggle live.
|
|
25849
26335
|
get isNav() {
|
|
25850
26336
|
return !!this.nav;
|
|
25851
26337
|
}
|
|
@@ -25898,9 +26384,52 @@ class PdsTabs {
|
|
|
25898
26384
|
this.tabs = allTabs.filter(tab => tab.closest('pds-tabs') === this.el);
|
|
25899
26385
|
this.tabPanels = allTabPanels.filter(panel => panel.closest('pds-tabs') === this.el);
|
|
25900
26386
|
}
|
|
26387
|
+
// The initial collection (componentWillLoad) only sees tabs/panels present at load.
|
|
26388
|
+
// A tab or panel added, removed or replaced afterwards — including by a DOM morph
|
|
26389
|
+
// swapping in a fresh copy — needs to be re-collected the same way pds-dropdown-menu,
|
|
26390
|
+
// pds-select and pds-multiselect already do for their own slotted content.
|
|
26391
|
+
setupSlotChangeListeners() {
|
|
26392
|
+
var _a, _b, _c, _d;
|
|
26393
|
+
this.tabsSlot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="tabs"]');
|
|
26394
|
+
this.tabPanelsSlot = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('slot[name="tabpanels"]');
|
|
26395
|
+
(_c = this.tabsSlot) === null || _c === void 0 ? void 0 : _c.addEventListener('slotchange', this.handleSlotChange);
|
|
26396
|
+
(_d = this.tabPanelsSlot) === null || _d === void 0 ? void 0 : _d.addEventListener('slotchange', this.handleSlotChange);
|
|
26397
|
+
}
|
|
26398
|
+
recollectAfterSlotChange() {
|
|
26399
|
+
const previousActiveTabName = this.activeTabNameBeforeSlotChange;
|
|
26400
|
+
// A removed node stays referenced but disconnected — checked before
|
|
26401
|
+
// findAllChildren() re-collects, since that doesn't affect this either way.
|
|
26402
|
+
const focusedTabWasRemoved = !this.isNav && this.lastFocusedTab != null && !this.lastFocusedTab.isConnected;
|
|
26403
|
+
this.findAllChildren();
|
|
26404
|
+
this.warnOnNavConfig();
|
|
26405
|
+
// Keep the current selection if it still exists. Otherwise clear it so
|
|
26406
|
+
// passPropsToChildren() falls back to the first enabled tab, the same way
|
|
26407
|
+
// it does when a consumer never set activeTabName in the first place.
|
|
26408
|
+
if (previousActiveTabName != null && !this.tabs.some((tab) => tab.name === previousActiveTabName)) {
|
|
26409
|
+
this.activeTabName = undefined;
|
|
26410
|
+
}
|
|
26411
|
+
this.passPropsToChildren();
|
|
26412
|
+
// If the tab that last had focus was removed (e.g. replaced by a fresh copy),
|
|
26413
|
+
// the browser already silently dropped focus to <body> — restore it to the new
|
|
26414
|
+
// active tab's button so keyboard/screen-reader users don't lose their place.
|
|
26415
|
+
// Deferred a frame since a freshly-created pds-tab's button doesn't exist until
|
|
26416
|
+
// its own render completes; re-checked then in case focus moved on its own, to
|
|
26417
|
+
// the tabs or anywhere else — only focus the removal dropped to <body> is restored.
|
|
26418
|
+
if (focusedTabWasRemoved) {
|
|
26419
|
+
this.lastFocusedTab = null;
|
|
26420
|
+
requestAnimationFrame(() => {
|
|
26421
|
+
var _a;
|
|
26422
|
+
const active = document.activeElement;
|
|
26423
|
+
if (active && active !== document.body)
|
|
26424
|
+
return;
|
|
26425
|
+
const newActiveTab = this.tabs.find((tab) => tab.name === this.activeTabName);
|
|
26426
|
+
(_a = newActiveTab === null || newActiveTab === void 0 ? void 0 : newActiveTab.querySelector('button')) === null || _a === void 0 ? void 0 : _a.focus();
|
|
26427
|
+
});
|
|
26428
|
+
}
|
|
26429
|
+
}
|
|
25901
26430
|
propGeneration(child, index = 0) {
|
|
25902
26431
|
child.parentComponentId = this.componentId.toString();
|
|
25903
|
-
child.variant = this.variant
|
|
26432
|
+
child.variant = this.variant;
|
|
25904
26433
|
child.selected = (this.activeTabName === child.name) ? true : false;
|
|
25905
26434
|
child['index'] = index;
|
|
25906
26435
|
}
|
|
@@ -25956,7 +26485,7 @@ class PdsTabs {
|
|
|
25956
26485
|
// Only the classes: `active-tab-name` backs the mutable activeTabName prop, so a morph that drops
|
|
25957
26486
|
// it is a prop change, not a strip.
|
|
25958
26487
|
this.hostKeeper.record(hostClass);
|
|
25959
|
-
return (hAsync(Host, { key: '
|
|
26488
|
+
return (hAsync(Host, { key: '91a9a5cf4348b73ef5ec21430db20468fb67906c', "active-tab-name": this.activeTabName, class: hostClass, id: this.componentId }, tabList, hAsync("slot", { key: 'f0ec002e513f3e91956e905c23e35dae0e6328ad', name: "tabpanels" })));
|
|
25960
26489
|
}
|
|
25961
26490
|
get el() { return getElement(this); }
|
|
25962
26491
|
static get style() { return pdsTabsCss(); }
|
|
@@ -26082,7 +26611,7 @@ class PdsText {
|
|
|
26082
26611
|
? `pds-text--decoration-${this.decoration}`
|
|
26083
26612
|
: ''}
|
|
26084
26613
|
`;
|
|
26085
|
-
return (hAsync(Tag, { key: '
|
|
26614
|
+
return (hAsync(Tag, { key: '6ae89af63963745cd4e8fa734a62f37bc27c59ac', ref: (el) => (this.contentEl = el), style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '008f5852aeb4b43cff1a2fea9be9d8fbba9f7934' })));
|
|
26086
26615
|
}
|
|
26087
26616
|
get el() { return getElement(this); }
|
|
26088
26617
|
static get watchers() { return {
|
|
@@ -26428,10 +26957,10 @@ class PdsTextarea {
|
|
|
26428
26957
|
}
|
|
26429
26958
|
render() {
|
|
26430
26959
|
const value = this.getValue();
|
|
26431
|
-
return (hAsync(Host, { key: '
|
|
26432
|
-
hAsync("div", { key: '
|
|
26433
|
-
hAsync("p", { key: '
|
|
26434
|
-
hAsync("p", { key: '
|
|
26960
|
+
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 &&
|
|
26961
|
+
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 &&
|
|
26962
|
+
hAsync("p", { key: 'dcb36f21443d2a782c25b7c29c4ce6215f3b212b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
|
|
26963
|
+
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))));
|
|
26435
26964
|
}
|
|
26436
26965
|
static get formAssociated() { return true; }
|
|
26437
26966
|
get el() { return getElement(this); }
|
|
@@ -26605,13 +27134,13 @@ class PdsToast {
|
|
|
26605
27134
|
return this.icon && hAsync("pds-icon", { name: this.icon, class: "pds-toast__icon" });
|
|
26606
27135
|
}
|
|
26607
27136
|
render() {
|
|
26608
|
-
return (hAsync(Host, { key: '
|
|
27137
|
+
return (hAsync(Host, { key: '754a4583cefca47a3d3fea7dab036c06ea8aabcd', hidden: !this.isVisible }, hAsync("div", { key: '8ac294344ca459202c0883e724e09a4218342cc4', class: {
|
|
26609
27138
|
'pds-toast': true,
|
|
26610
27139
|
[`pds-toast--${this.type}`]: this.type !== 'default',
|
|
26611
27140
|
'pds-toast--animating-out': this.isAnimatingOut
|
|
26612
|
-
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: '
|
|
27141
|
+
}, 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: () => {
|
|
26613
27142
|
this.dismiss();
|
|
26614
|
-
}, "aria-label": this.dismissLabel }, hAsync("pds-icon", { key: '
|
|
27143
|
+
}, "aria-label": this.dismissLabel }, hAsync("pds-icon", { key: '623a0e4d56e30781fb31bcd085511c17a4777edc', name: "remove" }))))));
|
|
26615
27144
|
}
|
|
26616
27145
|
get el() { return getElement(this); }
|
|
26617
27146
|
static get watchers() { return {
|
|
@@ -26986,9 +27515,9 @@ class PdsTooltip {
|
|
|
26986
27515
|
}
|
|
26987
27516
|
render() {
|
|
26988
27517
|
const hostId = this.componentId || undefined;
|
|
26989
|
-
return (hAsync(Host, { key: '
|
|
27518
|
+
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,
|
|
26990
27519
|
/* focusin/out bubble; ensure keyboard users see tooltips */
|
|
26991
|
-
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: '
|
|
27520
|
+
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" }))));
|
|
26992
27521
|
}
|
|
26993
27522
|
get el() { return getElement(this); }
|
|
26994
27523
|
static get watchers() { return {
|