@pine-ds/core 4.5.0 → 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/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-DXvaSETR.js → attributes-BJ7KBHql.js} +18 -11
- package/dist/cjs/{index-D-QQKB0y.js → index-5Azb8EQG.js} +1 -1
- package/dist/cjs/{index-BQjWfQXw.js → index-jl_Q819j.js} +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/keep-hydrated-CiXgkEYd.js +196 -0
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -3
- package/dist/cjs/pds-accordion.cjs.entry.js +3 -3
- package/dist/cjs/pds-alert.cjs.entry.js +2 -2
- package/dist/cjs/pds-avatar.cjs.entry.js +3 -3
- package/dist/cjs/pds-box.cjs.entry.js +3 -3
- package/dist/cjs/pds-button.cjs.entry.js +3 -3
- package/dist/cjs/pds-checkbox.cjs.entry.js +4 -4
- package/dist/cjs/pds-chip.cjs.entry.js +4 -4
- package/dist/cjs/pds-combobox.cjs.entry.js +156 -27
- package/dist/cjs/pds-container.cjs.entry.js +3 -3
- package/dist/cjs/pds-copytext.cjs.entry.js +5 -5
- package/dist/cjs/pds-datepicker.cjs.entry.js +5 -5
- package/dist/cjs/pds-divider.cjs.entry.js +3 -3
- package/dist/cjs/pds-drawer-content.cjs.entry.js +3 -3
- package/dist/cjs/pds-drawer-footer.cjs.entry.js +3 -3
- package/dist/cjs/pds-drawer-header.cjs.entry.js +3 -3
- package/dist/cjs/pds-drawer.cjs.entry.js +4 -4
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +3 -3
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -3
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +16 -8
- package/dist/cjs/pds-filter.cjs.entry.js +4 -4
- package/dist/cjs/pds-filters.cjs.entry.js +3 -3
- package/dist/cjs/pds-icon.cjs.entry.js +27 -4
- package/dist/cjs/pds-image.cjs.entry.js +4 -4
- package/dist/cjs/pds-input.cjs.entry.js +6 -6
- package/dist/cjs/pds-link.cjs.entry.js +5 -5
- package/dist/cjs/pds-loader.cjs.entry.js +4 -4
- package/dist/cjs/pds-modal-content.cjs.entry.js +4 -4
- package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -3
- package/dist/cjs/pds-modal-header.cjs.entry.js +3 -3
- package/dist/cjs/pds-modal.cjs.entry.js +5 -5
- package/dist/cjs/pds-multiselect.cjs.entry.js +6 -6
- package/dist/cjs/pds-popover.cjs.entry.js +58 -12
- package/dist/cjs/pds-progress.cjs.entry.js +4 -4
- package/dist/cjs/pds-property.cjs.entry.js +3 -3
- package/dist/cjs/pds-radio-group.cjs.entry.js +6 -6
- package/dist/cjs/pds-radio.cjs.entry.js +7 -7
- package/dist/cjs/pds-row.cjs.entry.js +4 -4
- package/dist/cjs/pds-select.cjs.entry.js +5 -5
- package/dist/cjs/pds-sortable-item.cjs.entry.js +5 -5
- package/dist/cjs/pds-sortable.cjs.entry.js +4 -4
- package/dist/cjs/pds-switch.cjs.entry.js +7 -7
- package/dist/cjs/pds-tab.cjs.entry.js +13 -2
- package/dist/cjs/pds-table-body.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-cell.cjs.entry.js +4 -4
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +5 -5
- package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
- package/dist/cjs/pds-table.cjs.entry.js +2 -2
- package/dist/cjs/pds-tabpanel.cjs.entry.js +15 -3
- package/dist/cjs/pds-tabs.cjs.entry.js +111 -7
- package/dist/cjs/pds-text.cjs.entry.js +3 -3
- package/dist/cjs/pds-textarea.cjs.entry.js +8 -8
- package/dist/cjs/pds-toast.cjs.entry.js +5 -5
- package/dist/cjs/pds-tooltip.cjs.entry.js +4 -4
- package/dist/cjs/pine-core.cjs.js +3 -3
- 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.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/utils/attributes.js +18 -11
- package/dist/collection/utils/css.js +41 -0
- package/dist/collection/utils/keep-hydrated.js +133 -6
- package/dist/docs.json +15 -6
- package/dist/esm/{attributes-CF5K2pxn.js → attributes-WXw_I_uJ.js} +18 -11
- package/dist/esm/{index-DxI-61GK.js → index-BJXk71tO.js} +1 -1
- package/dist/esm/{index-2HMD-zUO.js → index-Cw9J31qd.js} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/keep-hydrated-BLG6RDBt.js +190 -0
- package/dist/esm/loader.js +4 -4
- package/dist/esm/mock-pds-modal.entry.js +3 -3
- package/dist/esm/pds-accordion.entry.js +3 -3
- package/dist/esm/pds-alert.entry.js +2 -2
- package/dist/esm/pds-avatar.entry.js +3 -3
- package/dist/esm/pds-box.entry.js +3 -3
- package/dist/esm/pds-button.entry.js +3 -3
- package/dist/esm/pds-checkbox.entry.js +4 -4
- package/dist/esm/pds-chip.entry.js +4 -4
- package/dist/esm/pds-combobox.entry.js +156 -27
- package/dist/esm/pds-container.entry.js +3 -3
- package/dist/esm/pds-copytext.entry.js +5 -5
- package/dist/esm/pds-datepicker.entry.js +5 -5
- package/dist/esm/pds-divider.entry.js +3 -3
- package/dist/esm/pds-drawer-content.entry.js +3 -3
- package/dist/esm/pds-drawer-footer.entry.js +3 -3
- package/dist/esm/pds-drawer-header.entry.js +3 -3
- package/dist/esm/pds-drawer.entry.js +4 -4
- package/dist/esm/pds-dropdown-menu-item.entry.js +3 -3
- package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -3
- package/dist/esm/pds-dropdown-menu.entry.js +16 -8
- package/dist/esm/pds-filter.entry.js +4 -4
- package/dist/esm/pds-filters.entry.js +3 -3
- package/dist/esm/pds-icon.entry.js +27 -4
- package/dist/esm/pds-image.entry.js +4 -4
- package/dist/esm/pds-input.entry.js +6 -6
- package/dist/esm/pds-link.entry.js +5 -5
- package/dist/esm/pds-loader.entry.js +4 -4
- package/dist/esm/pds-modal-content.entry.js +4 -4
- package/dist/esm/pds-modal-footer.entry.js +3 -3
- package/dist/esm/pds-modal-header.entry.js +3 -3
- package/dist/esm/pds-modal.entry.js +5 -5
- package/dist/esm/pds-multiselect.entry.js +6 -6
- package/dist/esm/pds-popover.entry.js +58 -12
- package/dist/esm/pds-progress.entry.js +4 -4
- package/dist/esm/pds-property.entry.js +3 -3
- package/dist/esm/pds-radio-group.entry.js +6 -6
- package/dist/esm/pds-radio.entry.js +7 -7
- package/dist/esm/pds-row.entry.js +4 -4
- package/dist/esm/pds-select.entry.js +5 -5
- package/dist/esm/pds-sortable-item.entry.js +5 -5
- package/dist/esm/pds-sortable.entry.js +4 -4
- package/dist/esm/pds-switch.entry.js +7 -7
- package/dist/esm/pds-tab.entry.js +13 -2
- package/dist/esm/pds-table-body.entry.js +3 -3
- package/dist/esm/pds-table-cell.entry.js +4 -4
- package/dist/esm/pds-table-head-cell.entry.js +5 -5
- package/dist/esm/pds-table-head.entry.js +3 -3
- package/dist/esm/pds-table-row.entry.js +3 -3
- package/dist/esm/pds-table.entry.js +2 -2
- package/dist/esm/pds-tabpanel.entry.js +15 -3
- package/dist/esm/pds-tabs.entry.js +111 -7
- package/dist/esm/pds-text.entry.js +3 -3
- package/dist/esm/pds-textarea.entry.js +8 -8
- package/dist/esm/pds-toast.entry.js +5 -5
- package/dist/esm/pds-tooltip.entry.js +4 -4
- package/dist/esm/pine-core.js +4 -4
- package/dist/esm-es5/attributes-WXw_I_uJ.js +1 -0
- package/dist/esm-es5/{index-2HMD-zUO.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-9a7ee7cb.system.entry.js → p-0092444c.system.entry.js} +1 -1
- package/dist/pine-core/{p-d576e542.system.entry.js → p-01aa382c.system.entry.js} +1 -1
- package/dist/pine-core/p-01c9b8f3.entry.js +1 -0
- package/dist/pine-core/{p-d69cfaa4.entry.js → p-02088776.entry.js} +1 -1
- package/dist/pine-core/p-049f126a.entry.js +1 -0
- package/dist/pine-core/{p-8b9d8fb5.system.entry.js → p-080cb087.system.entry.js} +1 -1
- package/dist/pine-core/{p-99317375.system.entry.js → p-0913f696.system.entry.js} +1 -1
- package/dist/pine-core/{p-5737182f.entry.js → p-0a84d220.entry.js} +1 -1
- package/dist/pine-core/{p-4c9cccdb.system.entry.js → p-0b71ecb6.system.entry.js} +2 -2
- package/dist/pine-core/{p-37d73369.system.entry.js → p-1437585e.system.entry.js} +1 -1
- package/dist/pine-core/{p-22f041ee.system.entry.js → p-1ee86d87.system.entry.js} +1 -1
- package/dist/pine-core/{p-5decd81f.entry.js → p-208c7dbf.entry.js} +1 -1
- package/dist/pine-core/{p-51dff046.system.entry.js → p-258770cf.system.entry.js} +1 -1
- package/dist/pine-core/{p-1f2e5958.entry.js → p-258d5e83.entry.js} +1 -1
- package/dist/pine-core/{p-4e05a4f0.entry.js → p-26642718.entry.js} +1 -1
- package/dist/pine-core/{p-1b13f69c.system.entry.js → p-2ac2457b.system.entry.js} +1 -1
- package/dist/pine-core/p-2cb5483a.system.entry.js +1 -0
- package/dist/pine-core/{p-1f263c0b.system.entry.js → p-341c38f1.system.entry.js} +1 -1
- package/dist/pine-core/{p-bd7da23e.system.entry.js → p-3a959459.system.entry.js} +1 -1
- package/dist/pine-core/p-3c27088f.system.entry.js +1 -0
- package/dist/pine-core/{p-1e464117.entry.js → p-432d5ec7.entry.js} +1 -1
- package/dist/pine-core/{p-0de74105.entry.js → p-4849fda7.entry.js} +1 -1
- package/dist/pine-core/{p-f30d6192.system.entry.js → p-4d03d1e2.system.entry.js} +1 -1
- package/dist/pine-core/{p-2cb02706.entry.js → p-4de8f333.entry.js} +1 -1
- package/dist/pine-core/{p-152245fa.system.entry.js → p-4f94b4f1.system.entry.js} +1 -1
- package/dist/pine-core/{p-66cfef6d.system.entry.js → p-4fa63723.system.entry.js} +1 -1
- package/dist/pine-core/p-4fd454f6.entry.js +1 -0
- package/dist/pine-core/{p-70c6f0ed.system.entry.js → p-5442d983.system.entry.js} +1 -1
- package/dist/pine-core/{p-8027db25.entry.js → p-550c2fd3.entry.js} +1 -1
- package/dist/pine-core/{p-7d01e719.entry.js → p-55224683.entry.js} +1 -1
- package/dist/pine-core/{p-65e30a4c.entry.js → p-57a2f927.entry.js} +1 -1
- package/dist/pine-core/{p-721297b5.system.entry.js → p-5870b092.system.entry.js} +1 -1
- package/dist/pine-core/{p-6d83ad2d.system.entry.js → p-5c90091e.system.entry.js} +1 -1
- 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-45fcc5b7.entry.js → p-6bf853c9.entry.js} +1 -1
- package/dist/pine-core/{p-5d014059.entry.js → p-6d3610f9.entry.js} +1 -1
- package/dist/pine-core/{p-343546b1.system.entry.js → p-6eec23a7.system.entry.js} +1 -1
- package/dist/pine-core/{p-5132b8a1.entry.js → p-72865997.entry.js} +1 -1
- package/dist/pine-core/{p-9d33bb05.entry.js → p-73eb47fa.entry.js} +1 -1
- 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-a83a6618.system.entry.js → p-7bf6563a.system.entry.js} +1 -1
- package/dist/pine-core/{p-347ae53c.system.entry.js → p-7f367db4.system.entry.js} +1 -1
- package/dist/pine-core/{p-71e3a89e.system.entry.js → p-8191498f.system.entry.js} +1 -1
- package/dist/pine-core/{p-0166c620.entry.js → p-82cf4ec6.entry.js} +1 -1
- package/dist/pine-core/{p-16c2aa63.entry.js → p-84e9b7da.entry.js} +1 -1
- package/dist/pine-core/{p-bdf68e53.system.entry.js → p-86040cac.system.entry.js} +1 -1
- package/dist/pine-core/p-875b0436.system.entry.js +1 -0
- package/dist/pine-core/{p-87f91e02.system.entry.js → p-8c8cc079.system.entry.js} +1 -1
- package/dist/pine-core/{p-ba1b79c7.system.entry.js → p-8cc302aa.system.entry.js} +1 -1
- package/dist/pine-core/{p-5b7f7760.entry.js → p-8d292b48.entry.js} +1 -1
- package/dist/pine-core/{p-650ccffb.entry.js → p-8f531063.entry.js} +1 -1
- 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-04fe5da7.system.entry.js → p-9880d251.system.entry.js} +1 -1
- package/dist/pine-core/p-99459e27.entry.js +1 -0
- package/dist/pine-core/{p-4414d442.system.entry.js → p-9a0083dd.system.entry.js} +1 -1
- package/dist/pine-core/{p-9835c74b.entry.js → p-9ab95438.entry.js} +1 -1
- package/dist/pine-core/{p-a6d09102.system.entry.js → p-9af131d6.system.entry.js} +1 -1
- package/dist/pine-core/{p-59491f98.entry.js → p-9dcd2cdb.entry.js} +1 -1
- package/dist/pine-core/{p-c00e46a5.system.entry.js → p-9e0f920a.system.entry.js} +1 -1
- 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-BJlg6wq7.system.js → p-CGRdQc49.system.js} +2 -2
- package/dist/pine-core/{p-DeIDZHrg.js → p-CmSJytt1.js} +2 -2
- package/dist/pine-core/p-CuSNnuFu.system.js +1 -0
- package/dist/pine-core/{p-YQa3CeL9.system.js → p-Cy8cvR7I.system.js} +1 -1
- 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-fbea5703.entry.js → p-a19cd59c.entry.js} +1 -1
- 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-1ec4eeaf.system.entry.js → p-a85a6ab9.system.entry.js} +1 -1
- 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-93877d4a.entry.js → p-b69f04b7.entry.js} +1 -1
- package/dist/pine-core/p-b75b0d09.system.entry.js +1 -0
- package/dist/pine-core/{p-02857936.entry.js → p-b8e8a4ce.entry.js} +1 -1
- package/dist/pine-core/{p-622e91e3.entry.js → p-b914dde8.entry.js} +2 -2
- package/dist/pine-core/{p-5bc670be.system.entry.js → p-ba1f65c2.system.entry.js} +1 -1
- package/dist/pine-core/p-bb68431a.entry.js +1 -0
- package/dist/pine-core/{p-c8e89b61.system.entry.js → p-bd67156b.system.entry.js} +1 -1
- package/dist/pine-core/{p-db4319fd.entry.js → p-beb23781.entry.js} +1 -1
- package/dist/pine-core/p-bf30dec0.entry.js +1 -0
- package/dist/pine-core/{p-91f712f4.system.entry.js → p-bf7ee3b7.system.entry.js} +1 -1
- package/dist/pine-core/{p-b5838211.system.entry.js → p-c5c9ed36.system.entry.js} +1 -1
- package/dist/pine-core/{p-21115986.system.entry.js → p-cb6a3e4c.system.entry.js} +1 -1
- package/dist/pine-core/{p-1cf1fced.entry.js → p-cde8eb81.entry.js} +1 -1
- package/dist/pine-core/{p-1d75a9b1.system.entry.js → p-cf08a6dd.system.entry.js} +1 -1
- package/dist/pine-core/p-cfd012d4.entry.js +1 -0
- package/dist/pine-core/{p-5e8d73d4.entry.js → p-d2c91e7a.entry.js} +1 -1
- package/dist/pine-core/{p-7e115d33.system.entry.js → p-da103a54.system.entry.js} +1 -1
- package/dist/pine-core/{p-7bbfb965.system.entry.js → p-db17c626.system.entry.js} +1 -1
- 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-585832b1.entry.js → p-e800a2b1.entry.js} +1 -1
- package/dist/pine-core/{p-8b0fbeb3.entry.js → p-e836a041.entry.js} +1 -1
- package/dist/pine-core/{p-506d3e80.entry.js → p-e8cb76e8.entry.js} +1 -1
- package/dist/pine-core/p-ea4d4741.system.entry.js +1 -0
- package/dist/pine-core/{p-419f57c9.entry.js → p-eb5465ce.entry.js} +1 -1
- package/dist/pine-core/{p-63119d23.entry.js → p-ebd0bff2.entry.js} +1 -1
- package/dist/pine-core/p-ec5428fb.entry.js +1 -0
- package/dist/pine-core/{p-4e67e68e.entry.js → p-ed4b979e.entry.js} +1 -1
- package/dist/pine-core/p-f029b7da.system.entry.js +1 -0
- package/dist/pine-core/{p-e337f32c.system.entry.js → p-f0d24298.system.entry.js} +1 -1
- package/dist/pine-core/{p-9b9f66b7.entry.js → p-f1702281.entry.js} +1 -1
- package/dist/pine-core/p-f1f17940.entry.js +2 -0
- package/dist/pine-core/{p-238e5171.system.entry.js → p-f25e4731.system.entry.js} +1 -1
- package/dist/pine-core/{p-37d95be9.entry.js → p-f2c253d8.entry.js} +1 -1
- package/dist/pine-core/{p-a22091c4.system.entry.js → p-f77905aa.system.entry.js} +1 -1
- package/dist/pine-core/{p-bef04e15.system.entry.js → p-fc25b956.system.entry.js} +1 -1
- package/dist/pine-core/{p-f06ca8df.entry.js → p-ff3de72e.entry.js} +1 -1
- 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/utils/attributes.d.ts +2 -2
- package/dist/types/utils/css.d.ts +7 -0
- package/dist/types/utils/keep-hydrated.d.ts +29 -2
- package/dist/vscode.html-data.json +2 -2
- package/hydrate/index.js +604 -135
- package/hydrate/index.mjs +604 -135
- package/package.json +2 -2
- package/dist/cjs/keep-hydrated-iLS88j1Z.js +0 -67
- package/dist/esm/keep-hydrated-Dv7ssOTc.js +0 -63
- package/dist/esm-es5/attributes-CF5K2pxn.js +0 -1
- package/dist/esm-es5/keep-hydrated-Dv7ssOTc.js +0 -1
- package/dist/pine-core/p-1cd0acf0.system.entry.js +0 -1
- package/dist/pine-core/p-207c94da.entry.js +0 -1
- package/dist/pine-core/p-2357758d.system.entry.js +0 -1
- package/dist/pine-core/p-281efc69.entry.js +0 -1
- package/dist/pine-core/p-2ac9e90a.system.entry.js +0 -1
- package/dist/pine-core/p-2f539379.system.entry.js +0 -3
- package/dist/pine-core/p-34b575b6.entry.js +0 -2
- package/dist/pine-core/p-3b1d8fae.entry.js +0 -1
- package/dist/pine-core/p-539ef98c.entry.js +0 -1
- package/dist/pine-core/p-56576b6e.entry.js +0 -1
- package/dist/pine-core/p-5ac84b2f.entry.js +0 -1
- package/dist/pine-core/p-63854c10.system.entry.js +0 -1
- package/dist/pine-core/p-73bc6e9f.system.entry.js +0 -1
- package/dist/pine-core/p-798839f7.system.entry.js +0 -1
- package/dist/pine-core/p-834c678e.system.entry.js +0 -1
- package/dist/pine-core/p-912487fa.entry.js +0 -1
- package/dist/pine-core/p-969488f5.system.entry.js +0 -1
- package/dist/pine-core/p-9bcdfac2.entry.js +0 -1
- package/dist/pine-core/p-BMFBF3sJ.system.js +0 -1
- package/dist/pine-core/p-D2MUS7JO.js +0 -1
- package/dist/pine-core/p-D2yHYrxQ.system.js +0 -1
- package/dist/pine-core/p-Dv7ssOTc.js +0 -1
- package/dist/pine-core/p-TyevV8iv.system.js +0 -1
- package/dist/pine-core/p-afd5e2d7.entry.js +0 -1
- package/dist/pine-core/p-bde53290.system.entry.js +0 -1
- package/dist/pine-core/p-bf1aea9f.system.entry.js +0 -1
- package/dist/pine-core/p-c9395f43.system.entry.js +0 -1
- package/dist/pine-core/p-d5dd5599.entry.js +0 -1
- package/dist/pine-core/p-dc81ffff.entry.js +0 -1
- package/dist/pine-core/p-e46f7541.system.entry.js +0 -1
- package/dist/pine-core/p-e7ba30dd.system.entry.js +0 -1
- package/dist/pine-core/p-ed3dd3d2.entry.js +0 -1
- package/dist/pine-core/p-eee4f146.entry.js +0 -1
- package/dist/pine-core/p-f01e35e2.entry.js +0 -1
- package/dist/pine-core/p-f2e0da9a.entry.js +0 -1
- package/dist/pine-core/p-fc6ac917.entry.js +0 -1
- package/dist/pine-core/p-ffe276ef.entry.js +0 -1
- /package/dist/esm-es5/{index-DxI-61GK.js → index-BJXk71tO.js} +0 -0
- /package/dist/pine-core/{p-DxI-61GK.js → p-BJXk71tO.js} +0 -0
- /package/dist/pine-core/{p-CnO10OxH.system.js → p-n3_ytl_p.system.js} +0 -0
package/hydrate/index.js
CHANGED
|
@@ -152,6 +152,109 @@ const isStencilClass = (el, name) => {
|
|
|
152
152
|
const classNamesOf = (classes) => typeof classes === 'string'
|
|
153
153
|
? classes.split(/\s+/).filter(Boolean)
|
|
154
154
|
: Object.keys(classes).filter((name) => classes[name]);
|
|
155
|
+
// Each restore that writes something counts. A real strip costs one, but a script that undoes the
|
|
156
|
+
// restore as soon as it lands (from a MutationObserver) keeps both going forever, all in
|
|
157
|
+
// microtasks, so the page never renders or takes input. More writes than this before the next task
|
|
158
|
+
// means that kind of fight. A script that undoes it from a timer or animation frame gets a fresh
|
|
159
|
+
// budget each task; the page stays responsive then, so that fight isn't capped.
|
|
160
|
+
const MAX_RESTORES_PER_TASK = 5;
|
|
161
|
+
// Callbacks waiting for the next task, all run by one message. A MessageChannel message isn't slowed
|
|
162
|
+
// down like a timer is in a background tab (or frozen by test fake timers); a timer is the fallback
|
|
163
|
+
// where it's missing. One message for all of them, so a morph that strips many hosts doesn't open a
|
|
164
|
+
// channel for each.
|
|
165
|
+
const nextTaskCallbacks = new Set();
|
|
166
|
+
const runNextTaskCallbacks = () => {
|
|
167
|
+
const callbacks = Array.from(nextTaskCallbacks);
|
|
168
|
+
nextTaskCallbacks.clear();
|
|
169
|
+
callbacks.forEach((callback) => callback());
|
|
170
|
+
};
|
|
171
|
+
const onNextTask = (callback) => {
|
|
172
|
+
nextTaskCallbacks.add(callback);
|
|
173
|
+
if (nextTaskCallbacks.size > 1)
|
|
174
|
+
return;
|
|
175
|
+
if (typeof MessageChannel === 'undefined') {
|
|
176
|
+
setTimeout(runNextTaskCallbacks);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const channel = new MessageChannel();
|
|
180
|
+
channel.port1.onmessage = () => {
|
|
181
|
+
channel.port1.close();
|
|
182
|
+
runNextTaskCallbacks();
|
|
183
|
+
};
|
|
184
|
+
channel.port2.postMessage(null);
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* The restore kind for a host's own classes, styles and attributes, shared by a component's own
|
|
188
|
+
* host restore and `keepPineHydrated`: one fight on a host's classes stops both, and warns once.
|
|
189
|
+
*/
|
|
190
|
+
const HOST_RESTORE = 'host';
|
|
191
|
+
/**
|
|
192
|
+
* Remembers the Stencil classes an element has had, and returns all of them. A restore can't read
|
|
193
|
+
* them from the latest mutation alone: after a script's last strip they're gone from its old value
|
|
194
|
+
* too, and the next change would restore nothing.
|
|
195
|
+
*/
|
|
196
|
+
const stencilClassesOf = (seen, el, oldValue) => {
|
|
197
|
+
[...classNamesOf(oldValue !== null && oldValue !== void 0 ? oldValue : ''), ...Array.from(el.classList)]
|
|
198
|
+
.filter((name) => isStencilClass(el, name))
|
|
199
|
+
.forEach((name) => seen.add(name));
|
|
200
|
+
return Array.from(seen);
|
|
201
|
+
};
|
|
202
|
+
// What each element has already been warned about, by kind of restore. A host with its own restore
|
|
203
|
+
// is also watched for its Stencil classes, so one fight on its classes stops both and needs one
|
|
204
|
+
// warning; a fight over a trigger's ARIA is a different kind, and warns on its own. On the global
|
|
205
|
+
// object, like `OBSERVER` below, so two copies of Pine on a page share it.
|
|
206
|
+
const WARNED = Symbol.for('@pine-ds/core/restoreWarnings');
|
|
207
|
+
const warnedKinds = () => {
|
|
208
|
+
var _a;
|
|
209
|
+
const store = globalThis;
|
|
210
|
+
return ((_a = store[WARNED]) !== null && _a !== void 0 ? _a : (store[WARNED] = new WeakMap()));
|
|
211
|
+
};
|
|
212
|
+
/** Whether `el` was already warned about for `kind`; records it if not. */
|
|
213
|
+
const alreadyWarned = (el, kind) => {
|
|
214
|
+
var _a;
|
|
215
|
+
const kinds = (_a = warnedKinds().get(el)) !== null && _a !== void 0 ? _a : new Set();
|
|
216
|
+
warnedKinds().set(el, kinds);
|
|
217
|
+
if (kinds.has(kind))
|
|
218
|
+
return true;
|
|
219
|
+
kinds.add(kind);
|
|
220
|
+
return false;
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* Wraps a restore callback, which returns whether it wrote anything, so that it writes at most
|
|
224
|
+
* `MAX_RESTORES_PER_TASK` times before the next task (until the message posted after its first write
|
|
225
|
+
* runs). Past that, another script is undoing every restore as soon as it lands, so it stops and
|
|
226
|
+
* lets that script win rather than hang the page. What that script left stays until something
|
|
227
|
+
* changes the element again: the count resets on the next task, so a later change is restored, but
|
|
228
|
+
* nothing is restored on its own. The first give-up warns, logging `el` so it can be found in
|
|
229
|
+
* devtools; later ones, and other restores of the same `kind` giving up on the same element, are
|
|
230
|
+
* silent.
|
|
231
|
+
* @param restore - Puts back what something removed; returns `true` if it wrote anything
|
|
232
|
+
* @param warning - What the console warning says was given up
|
|
233
|
+
* @param el - The element being restored, logged with the warning
|
|
234
|
+
* @param kind - What's being restored; one warning per element for each kind
|
|
235
|
+
*/
|
|
236
|
+
const limitRestores = (restore, warning, el, kind = warning) => {
|
|
237
|
+
let writes = 0;
|
|
238
|
+
let warned = false;
|
|
239
|
+
return (...args) => {
|
|
240
|
+
if (writes >= MAX_RESTORES_PER_TASK) {
|
|
241
|
+
if (!warned) {
|
|
242
|
+
warned = true;
|
|
243
|
+
if (el && alreadyWarned(el, kind))
|
|
244
|
+
return;
|
|
245
|
+
// The warning as an argument, not the format string: it carries the tag name, which the HTML
|
|
246
|
+
// parser lets contain `%`.
|
|
247
|
+
console.warn('%s', warning, el);
|
|
248
|
+
}
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
if (!restore(...args))
|
|
252
|
+
return;
|
|
253
|
+
if (writes === 0)
|
|
254
|
+
onNextTask(() => (writes = 0));
|
|
255
|
+
writes += 1;
|
|
256
|
+
};
|
|
257
|
+
};
|
|
155
258
|
// On the global object, not in this module, so a page with two copies of Pine (the CDN build and a
|
|
156
259
|
// bundled `@pine-ds/react`) still has one observer.
|
|
157
260
|
const OBSERVER = Symbol.for('@pine-ds/core/keepPineHydrated');
|
|
@@ -162,8 +265,9 @@ const OBSERVER = Symbol.for('@pine-ds/core/keepPineHydrated');
|
|
|
162
265
|
* host restore of their own. It only restores classes the element had, so it never runs ahead of
|
|
163
266
|
* Stencil. It can't see inside shadow roots, which a morph doesn't reach either.
|
|
164
267
|
*
|
|
165
|
-
* A script that removes `hydrated` on purpose sees it come back
|
|
166
|
-
* appears
|
|
268
|
+
* A script that removes `hydrated` on purpose sees it come back. One that removes it every time it
|
|
269
|
+
* appears (from a `MutationObserver`, say) wins after a few rounds, and the component logs a console
|
|
270
|
+
* warning. The component then stays hidden, as that script left it, until its class changes again.
|
|
167
271
|
*
|
|
168
272
|
* Pine's global script calls this, so the CDN and `dist` builds get it on load. The custom-elements
|
|
169
273
|
* build (`@pine-ds/core/components/*`, `@pine-ds/react`) has no global script: call it once yourself.
|
|
@@ -176,14 +280,37 @@ const keepPineHydrated = () => {
|
|
|
176
280
|
const store = globalThis;
|
|
177
281
|
if (store[OBSERVER])
|
|
178
282
|
return;
|
|
283
|
+
// One capped restore per element, so a script fighting one component doesn't stop the others,
|
|
284
|
+
// and the Stencil classes each one has had.
|
|
285
|
+
const restores = new WeakMap();
|
|
286
|
+
const seen = new WeakMap();
|
|
287
|
+
const restoreFor = (el) => {
|
|
288
|
+
let restore = restores.get(el);
|
|
289
|
+
if (!restore) {
|
|
290
|
+
restore = limitRestores((names) => {
|
|
291
|
+
const missing = names.filter((name) => !el.classList.contains(name));
|
|
292
|
+
if (missing.length > 0)
|
|
293
|
+
el.classList.add(...missing);
|
|
294
|
+
return missing.length > 0;
|
|
295
|
+
}, `${el.localName}: stopped putting back its hydrated and scope classes, as another script keeps removing them.`, el, HOST_RESTORE);
|
|
296
|
+
restores.set(el, restore);
|
|
297
|
+
}
|
|
298
|
+
return restore;
|
|
299
|
+
};
|
|
179
300
|
const observer = new MutationObserver((records) => {
|
|
180
301
|
records.forEach(({ target, oldValue }) => {
|
|
181
302
|
const el = target;
|
|
182
|
-
if (
|
|
303
|
+
if (!el.localName.startsWith('pds-'))
|
|
304
|
+
return;
|
|
305
|
+
// No old value is a `class` being added. Stencil's first `hydrated` arrives that way, which
|
|
306
|
+
// needs nothing; for an element already seen, it's the class coming back after a removal.
|
|
307
|
+
if (oldValue == null && !seen.has(el))
|
|
183
308
|
return;
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
309
|
+
if (!seen.has(el))
|
|
310
|
+
seen.set(el, new Set());
|
|
311
|
+
const names = stencilClassesOf(seen.get(el), el, oldValue);
|
|
312
|
+
if (names.length > 0)
|
|
313
|
+
restoreFor(el)(names);
|
|
187
314
|
});
|
|
188
315
|
});
|
|
189
316
|
// The document rather than its root element, so replacing `<html>` doesn't end the watch.
|
|
@@ -5605,7 +5732,7 @@ class MockPdsModal {
|
|
|
5605
5732
|
'pds-modal__backdrop': true,
|
|
5606
5733
|
'open': this.open,
|
|
5607
5734
|
};
|
|
5608
|
-
return (hAsync("div", { key: '
|
|
5735
|
+
return (hAsync("div", { key: '3a526f6883d7e7df35985a145962f656621535c1', class: backdropClasses }, hAsync("div", { key: '3af0487dc8c8831903cd7c22ffbf3e708b067ad7', class: modalClasses, role: "dialog", "aria-modal": "true", "aria-labelledby": this.componentId ? `${this.componentId}-heading` : null, part: "modal" }, hAsync("div", { key: '94e6205042ee91dac0823901cc97b79e93a515f2', class: "pds-modal__header" }, hAsync("slot", { key: 'ca04b575ccceabd431e3f5c57189f17f9aae6089', name: "header" })), hAsync("div", { key: 'f8327a261e70b622add1dd4ee21b5f8e8d91e603', class: "pds-modal-content" }, hAsync("slot", { key: 'a1a9c30d0f5479b0004ace4544e3d96ae87465be' })), hAsync("div", { key: 'af5fa59922047eeec7cbf0a0e1ee4b472b16079c', class: "pds-modal__footer" }, hAsync("slot", { key: '3c469bf94bb3a26dfd8046a5eda481f9d55edca1', name: "footer" })))));
|
|
5609
5736
|
}
|
|
5610
5737
|
get el() { return getElement(this); }
|
|
5611
5738
|
static get style() { return pdsModalCss$1(); }
|
|
@@ -5627,7 +5754,7 @@ class MockPdsModal {
|
|
|
5627
5754
|
}; }
|
|
5628
5755
|
}
|
|
5629
5756
|
|
|
5630
|
-
/* pds-icons v10.
|
|
5757
|
+
/* pds-icons v10.6.0, ES Modules */
|
|
5631
5758
|
|
|
5632
5759
|
const addCircle = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m11-5a1 1 0 0 1 1 1v3h3a1 1 0 1 1 0 2h-3v3a1 1 0 1 1-2 0v-3H8a1 1 0 1 1 0-2h3V8a1 1 0 0 1 1-1'/></svg>";
|
|
5633
5760
|
const calendarSimple = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M8 1a1 1 0 0 1 1 1v1h6V2a1 1 0 1 1 2 0v1.002c.476.003.891.013 1.252.042.562.046 1.079.145 1.564.392a4 4 0 0 1 1.748 1.748c.247.485.346 1.002.392 1.564C22 7.29 22 7.954 22 8.758v8.483c0 .805 0 1.47-.044 2.01-.046.563-.145 1.08-.392 1.565a4 4 0 0 1-1.748 1.748c-.485.247-1.002.346-1.564.392-.541.044-1.206.044-2.01.044H7.758c-.805 0-1.47 0-2.01-.044-.563-.046-1.08-.145-1.565-.392a4 4 0 0 1-1.748-1.748c-.247-.485-.346-1.002-.392-1.564C2 18.71 2 18.046 2 17.242V8.758c0-.805 0-1.47.044-2.01.046-.563.145-1.08.392-1.565a4 4 0 0 1 1.748-1.748c.485-.247 1.002-.346 1.564-.392.361-.03.777-.04 1.252-.042V2a1 1 0 0 1 1-1M7 5.002c-.446.003-.795.012-1.089.036-.438.035-.663.1-.819.18a2 2 0 0 0-.874.874c-.08.156-.145.38-.18.819C4 7.361 4 7.943 4 8.8V9h16v-.2c0-.857 0-1.439-.038-1.889-.035-.438-.1-.663-.18-.819a2 2 0 0 0-.874-.874c-.156-.08-.38-.145-.819-.18A15 15 0 0 0 17 5.002V6a1 1 0 1 1-2 0V5H9v1a1 1 0 1 1-2 0zM20 11H4v6.2c0 .857 0 1.439.038 1.889.035.438.1.663.18.819a2 2 0 0 0 .874.874c.156.08.38.145.819.18C6.361 21 6.943 21 7.8 21h8.4c.857 0 1.439 0 1.889-.038.438-.035.663-.1.819-.18a2 2 0 0 0 .874-.874c.08-.156.145-.38.18-.819.037-.45.038-1.032.038-1.889z'/></svg>";
|
|
@@ -6072,7 +6199,7 @@ const debounce = (func, wait = 0) => {
|
|
|
6072
6199
|
* @param options.semanticMap - Optional mapping of semantic names to CSS variables
|
|
6073
6200
|
* @returns Normalized color value or undefined for invalid inputs
|
|
6074
6201
|
*/
|
|
6075
|
-
const normalizeColorValue = (value, options) => {
|
|
6202
|
+
const normalizeColorValue$1 = (value, options) => {
|
|
6076
6203
|
if (!value)
|
|
6077
6204
|
return undefined;
|
|
6078
6205
|
const trimmed = value.trim();
|
|
@@ -6116,7 +6243,7 @@ const setColor = (color, customColors) => {
|
|
|
6116
6243
|
// Merge defaults with any custom overrides so defaults are preserved
|
|
6117
6244
|
const semanticMap = Object.assign(Object.assign({}, defaultColors), (customColors || {}));
|
|
6118
6245
|
// Use the shared normalizer so components accept semantic names, raw tokens, var(...), or literals
|
|
6119
|
-
const resolved = normalizeColorValue(color, { semanticMap });
|
|
6246
|
+
const resolved = normalizeColorValue$1(color, { semanticMap });
|
|
6120
6247
|
// Ensure we never return an undefined style value; if unresolved, omit the property
|
|
6121
6248
|
if (!resolved)
|
|
6122
6249
|
return {};
|
|
@@ -6132,10 +6259,14 @@ const setColor = (color, customColors) => {
|
|
|
6132
6259
|
* @param attributes - Attribute names and the values they should have
|
|
6133
6260
|
*/
|
|
6134
6261
|
const setAttributesIfChanged = (el, attributes) => {
|
|
6262
|
+
let wrote = false;
|
|
6135
6263
|
Object.entries(attributes).forEach(([name, value]) => {
|
|
6136
|
-
if (el.getAttribute(name) !== value)
|
|
6264
|
+
if (el.getAttribute(name) !== value) {
|
|
6137
6265
|
el.setAttribute(name, value);
|
|
6266
|
+
wrote = true;
|
|
6267
|
+
}
|
|
6138
6268
|
});
|
|
6269
|
+
return wrote;
|
|
6139
6270
|
};
|
|
6140
6271
|
/**
|
|
6141
6272
|
* Puts back any of `expected`'s classes or style properties that are missing from `el`. It only
|
|
@@ -6148,10 +6279,9 @@ const restoreHostStyling = (el, { classes, styles }) => {
|
|
|
6148
6279
|
const missing = classes.filter((name) => !el.classList.contains(name));
|
|
6149
6280
|
if (missing.length > 0)
|
|
6150
6281
|
el.classList.add(...missing);
|
|
6151
|
-
Object.entries(styles).
|
|
6152
|
-
|
|
6153
|
-
|
|
6154
|
-
});
|
|
6282
|
+
const missingStyles = Object.entries(styles).filter(([name, value]) => value && el.style.getPropertyValue(name) === '');
|
|
6283
|
+
missingStyles.forEach(([name, value]) => el.style.setProperty(name, value));
|
|
6284
|
+
return missing.length > 0 || missingStyles.length > 0;
|
|
6155
6285
|
};
|
|
6156
6286
|
/**
|
|
6157
6287
|
* Watches a component's own host and puts back what it rendered when something strips it. A DOM
|
|
@@ -6168,16 +6298,18 @@ const restoreHostStyling = (el, { classes, styles }) => {
|
|
|
6168
6298
|
const keepHostStyling = (el, expected) => {
|
|
6169
6299
|
if (typeof MutationObserver === 'undefined')
|
|
6170
6300
|
return null;
|
|
6171
|
-
const
|
|
6301
|
+
const tag = el.tagName.toLowerCase();
|
|
6302
|
+
const seenStencilClasses = new Set();
|
|
6303
|
+
const observer = new MutationObserver(limitRestores((records) => {
|
|
6172
6304
|
const styling = expected();
|
|
6173
6305
|
// A strip takes Stencil's own classes too: without `hydrated` Stencil hides the component, and
|
|
6174
6306
|
// without its scope classes a scoped component's CSS stops matching. Put back only the ones that
|
|
6175
6307
|
// were there, so this never runs ahead of Stencil. `keepPineHydrated` does the same for every
|
|
6176
6308
|
// component, but the custom-elements build only runs it if the consumer calls it, so keep this.
|
|
6177
6309
|
const stencilClasses = records
|
|
6178
|
-
.filter((record) => record.attributeName === 'class'
|
|
6179
|
-
.flatMap((record) =>
|
|
6180
|
-
restoreHostStyling(el, Object.assign(Object.assign({}, styling), { classes: [...styling.classes, ...stencilClasses] }));
|
|
6310
|
+
.filter((record) => record.attributeName === 'class')
|
|
6311
|
+
.flatMap((record) => stencilClassesOf(seenStencilClasses, el, record.oldValue));
|
|
6312
|
+
let wrote = restoreHostStyling(el, Object.assign(Object.assign({}, styling), { classes: [...styling.classes, ...stencilClasses] }));
|
|
6181
6313
|
// An attribute the component still renders comes back with the value it had, which is what
|
|
6182
6314
|
// Stencil wrote (a boolean `true` lands as an empty value). One it stopped rendering stays
|
|
6183
6315
|
// removed, since that was Stencil's own write.
|
|
@@ -6187,8 +6319,10 @@ const keepHostStyling = (el, expected) => {
|
|
|
6187
6319
|
if (oldValue == null || rendered == null || rendered === false || el.hasAttribute(name))
|
|
6188
6320
|
return;
|
|
6189
6321
|
el.setAttribute(name, oldValue);
|
|
6322
|
+
wrote = true;
|
|
6190
6323
|
});
|
|
6191
|
-
|
|
6324
|
+
return wrote;
|
|
6325
|
+
}, `${tag}: stopped restoring its host, as another script keeps changing it. Use props instead.`, el, HOST_RESTORE));
|
|
6192
6326
|
observer.observe(el, { attributes: true, attributeOldValue: true });
|
|
6193
6327
|
return observer;
|
|
6194
6328
|
};
|
|
@@ -6446,8 +6580,8 @@ class PdsBox {
|
|
|
6446
6580
|
this.sizeXl == undefined ? 'pds-box' : ''}
|
|
6447
6581
|
`;
|
|
6448
6582
|
// Normalize so pds-box accepts --token, var(--token), or literals (no semantic names)
|
|
6449
|
-
const normalizedBackground = normalizeColorValue(this.backgroundColor);
|
|
6450
|
-
const normalizedBorder = normalizeColorValue(this.borderColor);
|
|
6583
|
+
const normalizedBackground = normalizeColorValue$1(this.backgroundColor);
|
|
6584
|
+
const normalizedBorder = normalizeColorValue$1(this.borderColor);
|
|
6451
6585
|
const boxInlineStyles = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (normalizedBackground && { '--color-background-box': normalizedBackground })), (normalizedBorder && { '--color-border-box': normalizedBorder })), (this.minHeight && { '--sizing-min-height-box': this.minHeight })), (this.minWidth && { '--sizing-min-width-box': this.minWidth })), (this.flex && !['none', 'grow', 'shrink'].includes(this.flex) && { 'flex': this.flex }));
|
|
6452
6586
|
this.hostKeeper.record(boxClasses, boxInlineStyles);
|
|
6453
6587
|
return (hAsync(Host, { key: 'dc4d939daf38b24ecbfa0eb0a95ab67b97a85665', class: boxClasses, style: boxInlineStyles }));
|
|
@@ -9235,11 +9369,11 @@ class PdsChip {
|
|
|
9235
9369
|
}
|
|
9236
9370
|
// Custom properties rather than inline colors on the dot/icon, so a
|
|
9237
9371
|
// consumer's ::part(dot) or ::part(icon) rule still wins over the prop.
|
|
9238
|
-
const dotColor = normalizeColorValue(this.dotColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9372
|
+
const dotColor = normalizeColorValue$1(this.dotColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9239
9373
|
if (dotColor !== undefined) {
|
|
9240
9374
|
styles['--pds-chip-dot-color'] = dotColor;
|
|
9241
9375
|
}
|
|
9242
|
-
const iconColor = normalizeColorValue(this.iconColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9376
|
+
const iconColor = normalizeColorValue$1(this.iconColor, { semanticMap: SENTIMENT_DOT_COLORS });
|
|
9243
9377
|
if (iconColor !== undefined) {
|
|
9244
9378
|
styles['--pds-chip-icon-color'] = iconColor;
|
|
9245
9379
|
}
|
|
@@ -10736,7 +10870,14 @@ const PINE_ICON_NAME$1 = /^[a-z0-9-]+$/i;
|
|
|
10736
10870
|
* only ever passed to `pds-icon` as `name`.
|
|
10737
10871
|
*/
|
|
10738
10872
|
function groupIconOf(optgroup) {
|
|
10739
|
-
|
|
10873
|
+
return iconOf(optgroup);
|
|
10874
|
+
}
|
|
10875
|
+
/** An option's `data-icon` when it's a Pine icon name, or null; the same check as a group's. */
|
|
10876
|
+
function optionIconOf(option) {
|
|
10877
|
+
return iconOf(option);
|
|
10878
|
+
}
|
|
10879
|
+
function iconOf(element) {
|
|
10880
|
+
const icon = element.getAttribute('data-icon');
|
|
10740
10881
|
return icon !== null && PINE_ICON_NAME$1.test(icon) ? icon : null;
|
|
10741
10882
|
}
|
|
10742
10883
|
/** An option is disabled by its own `disabled` or its optgroup's, as in a native select. */
|
|
@@ -10754,8 +10895,12 @@ function isGroupDisabled(group) {
|
|
|
10754
10895
|
* Groups the combobox's filtered items for the panel: each optgroup becomes one entry holding its
|
|
10755
10896
|
* options, and ungrouped options stay where they are. Indexes count options in list order, the
|
|
10756
10897
|
* same as the inline listbox, so `data-option-index` means the same thing in every mode.
|
|
10898
|
+
*
|
|
10899
|
+
* `position`, when given, orders the entries instead: an ungrouped option or an optgroup it knows
|
|
10900
|
+
* goes where it reports, and the rest keep their place after those. Options from the `options` prop
|
|
10901
|
+
* use it, so a row the data lists between two groups is drawn between them.
|
|
10757
10902
|
*/
|
|
10758
|
-
function buildPanelEntries(items) {
|
|
10903
|
+
function buildPanelEntries(items, position) {
|
|
10759
10904
|
const entries = [];
|
|
10760
10905
|
const groups = new Map();
|
|
10761
10906
|
let index = 0;
|
|
@@ -10777,7 +10922,14 @@ function buildPanelEntries(items) {
|
|
|
10777
10922
|
entries.push({ kind: 'option', option, index: index++ });
|
|
10778
10923
|
}
|
|
10779
10924
|
});
|
|
10780
|
-
|
|
10925
|
+
if (position === undefined)
|
|
10926
|
+
return entries;
|
|
10927
|
+
const at = (entry) => { var _a; return (_a = position(entry.kind === 'group' ? entry.group.optgroup : entry.option)) !== null && _a !== void 0 ? _a : Infinity; };
|
|
10928
|
+
// Array.prototype.sort is stable, so entries with no position keep their order.
|
|
10929
|
+
return entries.sort((a, b) => {
|
|
10930
|
+
const [first, second] = [at(a), at(b)];
|
|
10931
|
+
return first === second ? 0 : first < second ? -1 : 1;
|
|
10932
|
+
});
|
|
10781
10933
|
}
|
|
10782
10934
|
/** The label of the optgroup an option sits in, or null for an ungrouped option. */
|
|
10783
10935
|
function groupLabelOf(option) {
|
|
@@ -10985,7 +11137,7 @@ class FlyoutController {
|
|
|
10985
11137
|
}
|
|
10986
11138
|
}
|
|
10987
11139
|
|
|
10988
|
-
const pdsComboboxCss = () => `:host{display:block}:host([aria-disabled=true]) .pds-combobox__input-icon{color:var(--pine-color-text-disabled);pointer-events:none}.pds-combobox{position:relative}.pds-combobox__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-combobox__input-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-combobox__input{background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body-medium);padding:var(--pine-dimension-xs) var(--pine-dimension-450) var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-transition:border-color var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease;width:100%}.pds-combobox__input:hover:not(:disabled){border-color:var(--pine-color-border-hover)}.pds-combobox__input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-combobox__input:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input.pds-combobox__input--invalid{background:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) .pds-combobox__input.pds-combobox__input--invalid{background:var(--pine-color-red-950)}.pds-combobox__input.pds-combobox__input--invalid:hover:not(:disabled){border-color:var(--pine-color-border-danger)}.pds-combobox__input.pds-combobox__input--invalid:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-combobox__input-icon{color:var(--pine-color-text-secondary);inset-inline-end:var(--pine-dimension-150);pointer-events:none;position:absolute;z-index:calc(var(--pine-z-index-raised) - 1)}.pds-combobox__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-combobox__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm-medium);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-combobox__error pds-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.pds-combobox__listbox{background:var(--pine-color-background-overlay);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__option[aria-selected=true]{background:var(--pine-color-background-muted)}.pds-combobox__option:focus-visible{outline:0}.pds-combobox__option.pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option.pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox__option--highlighted,.pds-combobox__option[selected],.pds-combobox__option--selected{background:var(--pine-color-background-muted)}.pds-combobox__option--disabled,.pds-combobox__group-row--disabled>.pds-combobox__group-row-trigger,.pds-combobox__group-back--disabled>.pds-combobox__group-back-trigger,.pds-combobox__group--disabled>.pds-combobox__group-label{color:var(--pine-color-text-disabled)}.pds-combobox__option--disabled{cursor:not-allowed}.pds-combobox__option--disabled .pds-combobox__option-chip,.pds-combobox__option--disabled .pds-combobox__option-layout-wrapper{opacity:0.5}.pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__group-label{color:var(--pine-color-text-tertiary);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__group{list-style:none;-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150)}.pds-combobox__group:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__group-list{list-style:none;margin:0;padding:0}.pds-combobox__listbox--grouped .pds-combobox__group-list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs)}.pds-combobox__group-label--with-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.pds-combobox__group-icon{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__group-row{list-style:none;position:relative}.pds-combobox__group-row-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__group-row--open>.pds-combobox__group-row-trigger,.pds-combobox__group-row--has-selection>.pds-combobox__group-row-trigger,.pds-combobox__group-row--highlighted>.pds-combobox__group-row-trigger,.pds-combobox__group-back--highlighted>.pds-combobox__group-row-trigger,.pds-combobox__group-row-trigger:hover{background:var(--pine-color-background-muted)}.pds-combobox__listbox--drill-in,.pds-combobox__listbox--drill-out{overflow-x:hidden}.pds-combobox__listbox--drill-in>.pds-combobox__group-back{-webkit-animation:pds-combobox-drill-from-end var(--pine-motion-duration-base) var(--pine-motion-easing-out);animation:pds-combobox-drill-from-end var(--pine-motion-duration-base) var(--pine-motion-easing-out)}.pds-combobox__listbox--drill-out>li{-webkit-animation:pds-combobox-drill-from-start var(--pine-motion-duration-base) var(--pine-motion-easing-out);animation:pds-combobox-drill-from-start var(--pine-motion-duration-base) var(--pine-motion-easing-out)}@-webkit-keyframes pds-combobox-drill-from-end{from{opacity:0;-webkit-transform:translateX(var(--pine-dimension-sm));transform:translateX(var(--pine-dimension-sm))}}@keyframes pds-combobox-drill-from-end{from{opacity:0;-webkit-transform:translateX(var(--pine-dimension-sm));transform:translateX(var(--pine-dimension-sm))}}@-webkit-keyframes pds-combobox-drill-from-start{from{opacity:0;-webkit-transform:translateX(calc(var(--pine-dimension-sm) * -1));transform:translateX(calc(var(--pine-dimension-sm) * -1))}}@keyframes pds-combobox-drill-from-start{from{opacity:0;-webkit-transform:translateX(calc(var(--pine-dimension-sm) * -1));transform:translateX(calc(var(--pine-dimension-sm) * -1))}}.pds-combobox__group-row--keyboard>.pds-combobox__group-row-trigger,.pds-combobox__group-back--keyboard>.pds-combobox__group-row-trigger{outline:var(--pine-outline-focus);outline-offset:calc(var(--pine-border-width) * -2)}.pds-combobox__group-row-label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);min-width:0}.pds-combobox__group-row-caret{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__listbox--grouped,.pds-combobox__flyout{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);padding:var(--pine-dimension-2xs)}.pds-combobox__flyout{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;overflow-y:auto;position:fixed;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content;z-index:1}.pds-combobox__listbox--with-search{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:0}.pds-combobox__listbox-options{-ms-flex:1;flex:1;list-style:none;margin:0;min-height:0;overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-combobox__listbox-options.pds-combobox__listbox--grouped{padding:var(--pine-dimension-2xs)}.pds-combobox__panel-search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-sm)}.pds-combobox__panel-search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:0;flex-shrink:0}.pds-combobox__panel-search:focus-within{border-block-end-color:var(--pine-color-border-active)}.pds-combobox__panel-search-input{background:transparent;border:0;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:0;outline:none;padding:0}.pds-combobox__panel-search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__group-back{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);list-style:none}.pds-combobox__group-back-trigger{-ms-flex-pack:start;justify-content:flex-start}.pds-combobox__listbox-options--drilled-in.pds-combobox__listbox--grouped{-webkit-padding-before:0;padding-block-start:0}.pds-combobox__listbox-options--drilled-in:focus{outline:none}.pds-combobox__listbox-options--drilled-in:focus .pds-combobox__group-back-trigger{border-block-end-color:var(--pine-color-border-active)}:where(.pds-combobox__listbox-options--drilled-in) .pds-combobox__group-back-trigger{background-color:var(--pine-color-background-overlay);-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);border-radius:0;color:var(--pine-color-text-strong);font:var(--pine-typography-body);inset-block-start:0;letter-spacing:var(--pine-letter-spacing);margin-inline:calc(var(--pine-dimension-2xs) * -1);padding:var(--pine-dimension-sm);position:-webkit-sticky;position:sticky;z-index:1}.pds-combobox__drill-in-options{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);list-style:none;margin:0;padding:0}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-combobox__loading{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}.pds-combobox__empty{color:var(--pine-color-text-tertiary);padding:var(--pine-dimension-150) var(--pine-dimension-sm);text-align:center}.pds-combobox__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}:host(.pds-combobox-dropdown-portal) .pds-combobox__listbox{position:fixed;z-index:var(--pine-z-index-priority)}.pds-combobox__button-trigger{-ms-flex-align:center;align-items:center;background:var(--color-background-default, var(--pine-color-secondary));border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--color-text-default, var(--pine-color-text-inverse-emphasis));cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;min-height:var(--pine-dimension-450);outline:none;padding:0 var(--pine-dimension-sm);-webkit-transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, -webkit-box-shadow 0.15s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__button-trigger .pds-combobox__button-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__button-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__button-trigger:focus-visible{border-color:var(--color-border-focus, var(--pine-color-border));-webkit-box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring));box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring))}.pds-combobox__button-trigger:hover{background:var(--color-background-hover, var(--pine-color-secondary-hover));border-color:var(--color-border-hover, var(--pine-color-border-hover))}.pds-combobox__button-trigger[aria-disabled=true],.pds-combobox__button-trigger:disabled{background:var(--color-background-disabled, var(--pine-color-secondary-disabled));border-color:var(--color-border-disabled, var(--pine-color-border-disabled));color:var(--color-text-disabled, var(--pine-color-text-secondary-disabled));cursor:not-allowed;opacity:0.6}.pds-combobox__button-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__button-trigger--input-shape{border-radius:var(--pine-dimension-125);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-450);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150)}.pds-combobox__button-trigger--secondary.pds-combobox__button-trigger--input-shape:not([aria-disabled=true]) .pds-combobox__button-trigger-label--placeholder{color:var(--pine-color-text-muted)}.pds-combobox__button-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__button-trigger--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-border-disabled:var(--pine-color-primary-disabled);--color-border-focus:var(--pine-color-primary);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-border-disabled:var(--pine-color-accent-disabled);--color-border-focus:var(--pine-color-accent);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--secondary{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-default:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-border-disabled:var(--pine-color-danger-disabled);--color-border-focus:var(--pine-color-danger);--color-text-default:var(--pine-color-white);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger)}[data-layout]{border-radius:var(--pine-dimension-125);padding-block:var(--pine-dimension-xs)}.pds-combobox__chip-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;outline:none;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150);-webkit-transition:all 0.15s ease;transition:all 0.15s ease;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__chip-trigger .pds-combobox__chip-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__chip-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__chip-trigger:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__chip-trigger[aria-disabled=true]{cursor:not-allowed;opacity:0.6}.pds-combobox__chip-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__chip-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__chip-trigger-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-combobox__chip-trigger--neutral,.pds-combobox__chip-trigger--accent,.pds-combobox__chip-trigger--success,.pds-combobox__chip-trigger--warning,.pds-combobox__chip-trigger--danger,.pds-combobox__chip-trigger--info{background:var(--chip-bg);border:var(--pine-border-width) solid var(--chip-border);color:var(--chip-text)}.pds-combobox__chip-trigger--neutral:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--accent:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--success:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--warning:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--danger:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--info:hover:not([aria-disabled=true]){background:var(--chip-bg-hover)}.pds-combobox__chip-trigger--neutral:focus-visible,.pds-combobox__chip-trigger--accent:focus-visible,.pds-combobox__chip-trigger--success:focus-visible,.pds-combobox__chip-trigger--warning:focus-visible,.pds-combobox__chip-trigger--danger:focus-visible,.pds-combobox__chip-trigger--info:focus-visible{border-color:var(--chip-border)}.pds-combobox__chip-trigger--neutral{--chip-bg:var(--pine-chip-color-neutral);--chip-bg-hover:var(--pine-chip-color-neutral-hover);--chip-border:var(--pine-chip-color-neutral-hover);--chip-text:var(--pine-color-text-neutral)}.pds-combobox__chip-trigger--accent{--chip-bg:var(--pine-chip-color-accent);--chip-bg-hover:var(--pine-chip-color-accent-hover);--chip-border:var(--pine-chip-color-accent-hover);--chip-text:var(--pine-color-text-accent)}.pds-combobox__chip-trigger--success{--chip-bg:var(--pine-chip-color-success);--chip-bg-hover:var(--pine-chip-color-success-hover);--chip-border:var(--pine-chip-color-success-hover);--chip-text:var(--pine-color-text-success)}.pds-combobox__chip-trigger--warning{--chip-bg:var(--pine-chip-color-warning);--chip-bg-hover:var(--pine-chip-color-warning-hover);--chip-border:var(--pine-chip-color-warning-hover);--chip-text:var(--pine-color-text-warning)}.pds-combobox__chip-trigger--danger{--chip-bg:var(--pine-chip-color-danger);--chip-bg-hover:var(--pine-chip-color-danger-hover);--chip-border:var(--pine-chip-color-danger-hover);--chip-text:var(--pine-color-text-danger)}.pds-combobox__chip-trigger--info{--chip-bg:var(--pine-chip-color-info);--chip-bg-hover:var(--pine-chip-color-info-hover);--chip-border:var(--pine-chip-color-info-hover);--chip-text:var(--pine-color-text-info)}.pds-combobox__chip-trigger--brand{background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;color:var(--pine-color-text-neutral);padding:1px;position:relative}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-chevron{position:relative;z-index:1}.pds-combobox__chip-trigger--brand:hover:not([aria-disabled=true]) .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.8)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand){padding:var(--pine-dimension-none)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand) .pds-combobox__chip-trigger-label{padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-combobox__chip-trigger--large .pds-combobox__chip-trigger-label{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-combobox__chip-trigger--dot .pds-combobox__chip-trigger-label::before{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);content:"";display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}`;
|
|
11140
|
+
const pdsComboboxCss = () => `:host{display:block}:host([aria-disabled=true]) .pds-combobox__input-icon{color:var(--pine-color-text-disabled);pointer-events:none}.pds-combobox{position:relative}.pds-combobox__label{color:var(--pine-color-text-label);display:block;font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-combobox__input-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;position:relative;width:100%}.pds-combobox__input{background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body-medium);padding:var(--pine-dimension-xs) var(--pine-dimension-450) var(--pine-dimension-xs) var(--pine-dimension-150);-webkit-transition:border-color var(--pine-motion-duration-base) ease;transition:border-color var(--pine-motion-duration-base) ease;width:100%}.pds-combobox__input:hover:not(:disabled){border-color:var(--pine-color-border-hover)}.pds-combobox__input:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-combobox__input:disabled::-webkit-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-moz-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled:-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::-ms-input-placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:disabled::placeholder{color:var(--pine-color-text-placeholder-disabled)}.pds-combobox__input:focus-visible{border-color:var(--pine-color-border-active);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__input.pds-combobox__input--invalid{background:var(--pine-color-red-050);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) .pds-combobox__input.pds-combobox__input--invalid{background:var(--pine-color-red-950)}.pds-combobox__input.pds-combobox__input--invalid:hover:not(:disabled){border-color:var(--pine-color-border-danger)}.pds-combobox__input.pds-combobox__input--invalid:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-combobox__input-icon{color:var(--pine-color-text-secondary);inset-inline-end:var(--pine-dimension-150);pointer-events:none;position:absolute;z-index:calc(var(--pine-z-index-raised) - 1)}.pds-combobox__helper{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-combobox__error{-ms-flex-align:start;align-items:flex-start;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm-medium);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-combobox__error pds-icon{-ms-flex-negative:0;flex-shrink:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.pds-combobox__listbox{background:var(--pine-color-background-overlay);border:0;border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;min-width:220px;overflow-y:auto;padding:var(--pine-dimension-xs);position:absolute;z-index:var(--pine-z-index-raised)}.pds-combobox__option{-ms-flex-align:center;align-items:center;background:transparent;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);position:relative;-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__option[aria-selected=true]{background:var(--pine-color-background-muted)}.pds-combobox__option:focus-visible{outline:0}.pds-combobox__option.pds-combobox__option--layout .pds-combobox__option-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option.pds-combobox__option--chip .pds-combobox__option-chip{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__option:last-child{-webkit-margin-after:0;margin-block-end:0}.pds-combobox__option--highlighted,.pds-combobox__option[selected],.pds-combobox__option--selected{background:var(--pine-color-background-muted)}.pds-combobox__option--disabled,.pds-combobox__group-row--disabled>.pds-combobox__group-row-trigger,.pds-combobox__group-back--disabled>.pds-combobox__group-back-trigger,.pds-combobox__group--disabled>.pds-combobox__group-label{color:var(--pine-color-text-disabled)}.pds-combobox__option--disabled{cursor:not-allowed}.pds-combobox__option--disabled .pds-combobox__option-chip,.pds-combobox__option--disabled .pds-combobox__option-layout-wrapper{opacity:0.5}.pds-combobox__option-label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);min-width:0;overflow-wrap:anywhere}.pds-combobox__option-icon{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__option-check{color:currentColor;font-size:var(--pine-dimension-150);-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__group-label{color:var(--pine-color-text-tertiary);cursor:default;font:var(--pine-typography-heading-caption);-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150);padding:var(--pine-dimension-2xs) var(--pine-dimension-sm);text-transform:uppercase}.pds-combobox__group-label:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__group{list-style:none;-webkit-margin-before:var(--pine-dimension-150);margin-block-start:var(--pine-dimension-150)}.pds-combobox__group:first-child{-webkit-margin-before:0;margin-block-start:0}.pds-combobox__group-list{list-style:none;margin:0;padding:0}.pds-combobox__listbox--grouped .pds-combobox__group-list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs)}.pds-combobox__group-label--with-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.pds-combobox__group-icon{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__group-row{list-style:none;position:relative}.pds-combobox__group-row-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-125);color:var(--pine-color-text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);-ms-flex-pack:justify;justify-content:space-between;padding:var(--pine-dimension-xs) var(--pine-dimension-sm);-webkit-transition:background 0.15s;transition:background 0.15s}.pds-combobox__group-row--open>.pds-combobox__group-row-trigger,.pds-combobox__group-row--has-selection>.pds-combobox__group-row-trigger,.pds-combobox__group-row--highlighted>.pds-combobox__group-row-trigger,.pds-combobox__group-back--highlighted>.pds-combobox__group-row-trigger{background:var(--pine-color-background-muted)}.pds-combobox__listbox--pointer-hover .pds-combobox__group-row-trigger:hover{background:var(--pine-color-background-muted)}.pds-combobox__listbox--drill-in,.pds-combobox__listbox--drill-out{overflow-x:hidden}.pds-combobox__listbox--drill-in,.pds-combobox__listbox--drill-out:dir(rtl){--pds-combobox-drill-from:var(--pine-dimension-sm)}.pds-combobox__listbox--drill-out,.pds-combobox__listbox--drill-in:dir(rtl){--pds-combobox-drill-from:calc(var(--pine-dimension-sm) * -1)}.pds-combobox__listbox--drill-in .pds-combobox__drill-in-options>li,.pds-combobox__listbox--drill-in .pds-combobox__group-back-trigger,.pds-combobox__listbox--drill-out>li{-webkit-animation:pds-combobox-drill var(--pine-motion-duration-base) var(--pine-motion-easing-out);animation:pds-combobox-drill var(--pine-motion-duration-base) var(--pine-motion-easing-out)}@-webkit-keyframes pds-combobox-drill{from{opacity:0;-webkit-transform:translateX(var(--pds-combobox-drill-from));transform:translateX(var(--pds-combobox-drill-from))}}@keyframes pds-combobox-drill{from{opacity:0;-webkit-transform:translateX(var(--pds-combobox-drill-from));transform:translateX(var(--pds-combobox-drill-from))}}.pds-combobox__group-row--keyboard>.pds-combobox__group-row-trigger,.pds-combobox__group-back--keyboard>.pds-combobox__group-row-trigger{outline:var(--pine-outline-focus);outline-offset:calc(var(--pine-border-width) * -2)}.pds-combobox__group-row-label{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);min-width:0}.pds-combobox__group-row-caret{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__listbox--grouped,.pds-combobox__flyout{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);padding:var(--pine-dimension-2xs)}.pds-combobox__flyout{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-125);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);list-style:none;margin:0;overflow-y:auto;position:fixed;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content;z-index:1}.pds-combobox__listbox--with-search{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:0}.pds-combobox__listbox-options{-ms-flex:1;flex:1;list-style:none;margin:0;min-height:0;overflow-y:auto;padding:var(--pine-dimension-xs)}.pds-combobox__listbox-options.pds-combobox__listbox--grouped{padding:var(--pine-dimension-2xs)}.pds-combobox__panel-search{-ms-flex-align:center;align-items:center;-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;gap:var(--pine-dimension-xs);padding:var(--pine-dimension-sm)}.pds-combobox__panel-search pds-icon{color:var(--pine-color-text-muted);-ms-flex-negative:0;flex-shrink:0}.pds-combobox__panel-search:focus-within{border-block-end-color:var(--pine-color-border-active)}.pds-combobox__panel-search-input{background:transparent;border:0;color:var(--pine-color-text-strong);-ms-flex:1;flex:1;font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-width:0;outline:none;padding:0}.pds-combobox__panel-search-input::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__panel-search-input::placeholder{color:var(--pine-color-text-placeholder)}.pds-combobox__group-back{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);list-style:none}.pds-combobox__group-back-trigger{-ms-flex-pack:start;justify-content:flex-start}.pds-combobox__listbox-options--drilled-in.pds-combobox__listbox--grouped{-webkit-padding-before:0;padding-block-start:0}.pds-combobox__listbox-options--drilled-in:focus{outline:none}.pds-combobox__listbox-options--drilled-in:focus .pds-combobox__group-back-trigger{border-block-end-color:var(--pine-color-border-active)}:where(.pds-combobox__listbox-options--drilled-in) .pds-combobox__group-back-trigger{background-color:var(--pine-color-background-overlay);-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border);border-block-end-color:var(--pine-color-border-subtle);border-radius:0;color:var(--pine-color-text-strong);font:var(--pine-typography-body);inset-block-start:0;letter-spacing:var(--pine-letter-spacing);margin-inline:calc(var(--pine-dimension-2xs) * -1);padding:var(--pine-dimension-sm);position:-webkit-sticky;position:sticky;z-index:1}.pds-combobox__drill-in-options{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-2xs);list-style:none;margin:0;padding:0}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-combobox__loading{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}.pds-combobox__empty{color:var(--pine-color-text-tertiary);padding:var(--pine-dimension-150) var(--pine-dimension-sm);text-align:center}.pds-combobox__load-more{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:var(--pine-dimension-150)}:host(.pds-combobox-dropdown-portal) .pds-combobox__listbox{position:fixed;z-index:var(--pine-z-index-priority)}.pds-combobox__button-trigger{-ms-flex-align:center;align-items:center;background:var(--color-background-default, var(--pine-color-secondary));border:var(--pine-border);border-radius:var(--pine-border-radius-full);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--color-text-default, var(--pine-color-text-inverse-emphasis));cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;min-height:var(--pine-dimension-450);outline:none;padding:0 var(--pine-dimension-sm);-webkit-transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, background 0.15s, -webkit-box-shadow 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s;transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, -webkit-box-shadow 0.15s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__button-trigger .pds-combobox__button-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__button-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__button-trigger:focus-visible{border-color:var(--color-border-focus, var(--pine-color-border));-webkit-box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring));box-shadow:0 0 0 2px var(--color-outline, var(--pine-color-focus-ring))}.pds-combobox__button-trigger:hover{background:var(--color-background-hover, var(--pine-color-secondary-hover));border-color:var(--color-border-hover, var(--pine-color-border-hover))}.pds-combobox__button-trigger[aria-disabled=true],.pds-combobox__button-trigger:disabled{background:var(--color-background-disabled, var(--pine-color-secondary-disabled));border-color:var(--color-border-disabled, var(--pine-color-border-disabled));color:var(--color-text-disabled, var(--pine-color-text-secondary-disabled));cursor:not-allowed;opacity:0.6}.pds-combobox__button-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;overflow-wrap:anywhere;text-align:start}.pds-combobox__button-trigger-label--with-icon{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.pds-combobox__button-trigger-icon{-ms-flex-negative:0;flex-shrink:0}.pds-combobox__button-trigger--input-shape{border-radius:var(--pine-dimension-125);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-height:var(--pine-dimension-450);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-150)}.pds-combobox__button-trigger--secondary.pds-combobox__button-trigger--input-shape:not([aria-disabled=true]) .pds-combobox__button-trigger-label--placeholder{color:var(--pine-color-text-muted)}.pds-combobox__button-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__button-trigger--primary{--color-background-default:var(--pine-color-primary);--color-background-hover:var(--pine-color-primary-hover);--color-background-disabled:var(--pine-color-primary-disabled);--color-border-default:var(--pine-color-primary);--color-border-hover:var(--pine-color-primary-hover);--color-border-disabled:var(--pine-color-primary-disabled);--color-border-focus:var(--pine-color-primary);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-primary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--accent{--color-background-default:var(--pine-color-accent);--color-background-hover:var(--pine-color-accent-hover);--color-background-disabled:var(--pine-color-accent-disabled);--color-border-default:var(--pine-color-accent);--color-border-hover:var(--pine-color-accent-hover);--color-border-disabled:var(--pine-color-accent-disabled);--color-border-focus:var(--pine-color-accent);--color-text-default:var(--pine-color-text-primary);--color-text-disabled:var(--pine-color-text-accent-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--secondary{--color-background-default:var(--pine-color-secondary);--color-background-hover:var(--pine-color-secondary-hover);--color-background-disabled:var(--pine-color-secondary-disabled);--color-border-default:var(--pine-color-border);--color-border-hover:var(--pine-color-border-hover);--color-border-disabled:var(--pine-color-border-disabled);--color-border-focus:var(--pine-color-border);--color-text-default:var(--pine-color-text-secondary);--color-text-disabled:var(--pine-color-text-secondary-disabled);--color-outline:var(--pine-color-focus-ring)}.pds-combobox__button-trigger--destructive{--color-background-default:var(--pine-color-danger);--color-background-hover:var(--pine-color-danger-hover);--color-background-disabled:var(--pine-color-danger-disabled);--color-border-default:var(--pine-color-danger);--color-border-hover:var(--pine-color-danger-hover);--color-border-disabled:var(--pine-color-danger-disabled);--color-border-focus:var(--pine-color-danger);--color-text-default:var(--pine-color-white);--color-text-disabled:var(--pine-color-text-danger-disabled);--color-outline:var(--pine-color-focus-ring-danger)}[data-layout]{border-radius:var(--pine-dimension-125);padding-block:var(--pine-dimension-xs)}.pds-combobox__chip-trigger{-ms-flex-align:center;align-items:center;border-radius:var(--pine-dimension-sm);-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font:var(--pine-typography-body-medium);-ms-flex-pack:justify;justify-content:space-between;outline:none;padding-block:var(--pine-dimension-025);padding-inline:var(--pine-dimension-150);-webkit-transition:all 0.15s ease;transition:all 0.15s ease;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-combobox__chip-trigger .pds-combobox__chip-trigger-layout-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.pds-combobox__chip-trigger .trigger-content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:100%}.pds-combobox__chip-trigger:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-combobox__chip-trigger[aria-disabled=true]{cursor:not-allowed;opacity:0.6}.pds-combobox__chip-trigger-label{color:inherit;-ms-flex:1 1 auto;flex:1 1 auto;text-align:start}.pds-combobox__chip-trigger-chevron{color:currentColor;-webkit-margin-start:var(--pine-dimension-150);margin-inline-start:var(--pine-dimension-150)}.pds-combobox__chip-trigger-icon{-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs)}.pds-combobox__chip-trigger--neutral,.pds-combobox__chip-trigger--accent,.pds-combobox__chip-trigger--success,.pds-combobox__chip-trigger--warning,.pds-combobox__chip-trigger--danger,.pds-combobox__chip-trigger--info{background:var(--chip-bg);border:var(--pine-border-width) solid var(--chip-border);color:var(--chip-text)}.pds-combobox__chip-trigger--neutral:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--accent:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--success:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--warning:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--danger:hover:not([aria-disabled=true]),.pds-combobox__chip-trigger--info:hover:not([aria-disabled=true]){background:var(--chip-bg-hover)}.pds-combobox__chip-trigger--neutral:focus-visible,.pds-combobox__chip-trigger--accent:focus-visible,.pds-combobox__chip-trigger--success:focus-visible,.pds-combobox__chip-trigger--warning:focus-visible,.pds-combobox__chip-trigger--danger:focus-visible,.pds-combobox__chip-trigger--info:focus-visible{border-color:var(--chip-border)}.pds-combobox__chip-trigger--neutral{--chip-bg:var(--pine-chip-color-neutral);--chip-bg-hover:var(--pine-chip-color-neutral-hover);--chip-border:var(--pine-chip-color-neutral-hover);--chip-text:var(--pine-color-text-neutral)}.pds-combobox__chip-trigger--accent{--chip-bg:var(--pine-chip-color-accent);--chip-bg-hover:var(--pine-chip-color-accent-hover);--chip-border:var(--pine-chip-color-accent-hover);--chip-text:var(--pine-color-text-accent)}.pds-combobox__chip-trigger--success{--chip-bg:var(--pine-chip-color-success);--chip-bg-hover:var(--pine-chip-color-success-hover);--chip-border:var(--pine-chip-color-success-hover);--chip-text:var(--pine-color-text-success)}.pds-combobox__chip-trigger--warning{--chip-bg:var(--pine-chip-color-warning);--chip-bg-hover:var(--pine-chip-color-warning-hover);--chip-border:var(--pine-chip-color-warning-hover);--chip-text:var(--pine-color-text-warning)}.pds-combobox__chip-trigger--danger{--chip-bg:var(--pine-chip-color-danger);--chip-bg-hover:var(--pine-chip-color-danger-hover);--chip-border:var(--pine-chip-color-danger-hover);--chip-text:var(--pine-color-text-danger)}.pds-combobox__chip-trigger--info{--chip-bg:var(--pine-chip-color-info);--chip-bg-hover:var(--pine-chip-color-info-hover);--chip-border:var(--pine-chip-color-info-hover);--chip-text:var(--pine-color-text-info)}.pds-combobox__chip-trigger--brand{background:-webkit-gradient(linear, left top, right top, from(#FF3E14), to(#6B62F2));background:linear-gradient(90deg, #FF3E14 0%, #6B62F2 100%);border:0;color:var(--pine-color-text-neutral);padding:1px;position:relative}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.9);border-radius:calc(var(--pine-dimension-sm) - 1px);color:var(--pine-color-text-neutral);font-weight:var(--pine-font-weight-medium);padding:var(--pine-dimension-025) var(--pine-dimension-150);position:relative;z-index:1}.pds-combobox__chip-trigger--brand .pds-combobox__chip-trigger-chevron{position:relative;z-index:1}.pds-combobox__chip-trigger--brand:hover:not([aria-disabled=true]) .pds-combobox__chip-trigger-label{background:rgba(255, 255, 255, 0.8)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand){padding:var(--pine-dimension-none)}.pds-combobox__chip-trigger--dropdown:not(.pds-combobox__chip-trigger--brand) .pds-combobox__chip-trigger-label{padding:var(--pine-dimension-025) var(--pine-dimension-150)}.pds-combobox__chip-trigger--large .pds-combobox__chip-trigger-label{font-family:var(--pine-font-family-heading);font-size:var(--pine-font-size-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-combobox__chip-trigger--dot .pds-combobox__chip-trigger-label::before{border:var(--pine-border-width) solid transparent;border-radius:var(--pine-border-radius-full);content:"";display:inline-block;height:var(--pine-dimension-2xs);-webkit-margin-end:var(--pine-dimension-2xs);margin-inline-end:var(--pine-dimension-2xs);width:var(--pine-dimension-2xs)}`;
|
|
10989
11141
|
|
|
10990
11142
|
/**
|
|
10991
11143
|
* @slot option - Option elements for the combobox dropdown
|
|
@@ -11193,6 +11345,17 @@ class PdsCombobox {
|
|
|
11193
11345
|
this.highlightedGroup = null;
|
|
11194
11346
|
/** The keys, not the pointer, moved the highlight last; the focus ring shows only then. */
|
|
11195
11347
|
this.keyboardNavigating = false;
|
|
11348
|
+
/**
|
|
11349
|
+
* A drill-in group row the first arrow showed rather than moved past. `aria-activedescendant`
|
|
11350
|
+
* already pointed at it, so the status region says it instead.
|
|
11351
|
+
*/
|
|
11352
|
+
this.revealedGroupLabel = null;
|
|
11353
|
+
/**
|
|
11354
|
+
* The pointer in the panel can hover: a mouse or pen, not touch. Touch browsers keep a tapped row
|
|
11355
|
+
* hovered, so group rows shade on `:hover` only for a pointer that can hover. Checked on the
|
|
11356
|
+
* pointer itself rather than `(hover: hover)`, which a touch-first device with a trackpad fails.
|
|
11357
|
+
*/
|
|
11358
|
+
this.pointerCanHover = true;
|
|
11196
11359
|
/**
|
|
11197
11360
|
* What's typed in the dropdown's own search field (`panelSearch`).
|
|
11198
11361
|
*/
|
|
@@ -11237,6 +11400,11 @@ class PdsCombobox {
|
|
|
11237
11400
|
});
|
|
11238
11401
|
/** The groups in the flyout panel's last render, so a row's index finds its optgroup. */
|
|
11239
11402
|
this.renderedGroups = [];
|
|
11403
|
+
/**
|
|
11404
|
+
* Where each ungrouped option and optgroup built from the `options` prop came in the data, so
|
|
11405
|
+
* the flyout and drill-in panels draw them in that order. Slotted markup is already in order.
|
|
11406
|
+
*/
|
|
11407
|
+
this.panelPositions = new WeakMap();
|
|
11240
11408
|
/** Room for a flyout was checked for this open. */
|
|
11241
11409
|
this.flyoutRoomChecked = false;
|
|
11242
11410
|
/** The highlighted option sits in a flyout that hasn't rendered yet; focus it after the next render. */
|
|
@@ -11250,10 +11418,14 @@ class PdsCombobox {
|
|
|
11250
11418
|
* the list shows every option until the user types (then normal filtering applies).
|
|
11251
11419
|
*/
|
|
11252
11420
|
this.expandFilterListWhileOpen = false;
|
|
11421
|
+
this.onPanelPointer = (event) => {
|
|
11422
|
+
const canHover = event.pointerType !== 'touch';
|
|
11423
|
+
if (this.pointerCanHover !== canHover)
|
|
11424
|
+
this.pointerCanHover = canHover;
|
|
11425
|
+
};
|
|
11253
11426
|
this.onDrillAnimationEnd = (event) => {
|
|
11254
|
-
var _a;
|
|
11255
11427
|
// Only the slide's own end: slotted consumer content can animate inside the list too.
|
|
11256
|
-
if (
|
|
11428
|
+
if (event.animationName === 'pds-combobox-drill')
|
|
11257
11429
|
this.drillDirection = null;
|
|
11258
11430
|
};
|
|
11259
11431
|
/** `<label for>` only works on the input trigger; for a div trigger a click on the label focuses it. */
|
|
@@ -11672,6 +11844,31 @@ class PdsCombobox {
|
|
|
11672
11844
|
this.focusPanel(panelFocusEl);
|
|
11673
11845
|
}
|
|
11674
11846
|
}
|
|
11847
|
+
/**
|
|
11848
|
+
* Scrolls just enough to show `el`, as `scrollIntoView({ block: 'nearest' })` does. In the drill-in
|
|
11849
|
+
* panel it scrolls the list alone, and never sideways: while a drill-in slide offsets a row past
|
|
11850
|
+
* the list's edge, `scrollIntoView` also scrolls the list horizontally to reach it, which eats most
|
|
11851
|
+
* of the slide. There it keeps clear of the sticky row back, through the scroll padding set for it,
|
|
11852
|
+
* but doesn't scroll the page or a scrolling ancestor.
|
|
11853
|
+
*/
|
|
11854
|
+
scrollIntoViewNearest(el, smooth) {
|
|
11855
|
+
const behavior = smooth ? 'smooth' : 'auto';
|
|
11856
|
+
if (!this.showsGroupedPanel || this.effectiveGroupDisplay !== 'drill-in') {
|
|
11857
|
+
el.scrollIntoView({ block: 'nearest', behavior });
|
|
11858
|
+
return;
|
|
11859
|
+
}
|
|
11860
|
+
const list = this.usesPanelSearch ? this.panelTreeEl : this.listboxEl;
|
|
11861
|
+
if (!list)
|
|
11862
|
+
return;
|
|
11863
|
+
const offset = el.getBoundingClientRect().top - list.getBoundingClientRect().top - list.clientTop;
|
|
11864
|
+
// The padding keeps rows clear of the sticky row back; the row back itself doesn't need it.
|
|
11865
|
+
const padding = el.classList.contains('pds-combobox__group-back-trigger') ? 0 : parseFloat(list.style.scrollPaddingBlockStart) || 0;
|
|
11866
|
+
const top = list.scrollTop + offset - padding;
|
|
11867
|
+
const bottom = list.scrollTop + offset + el.offsetHeight - list.clientHeight;
|
|
11868
|
+
const target = top < list.scrollTop ? top : bottom > list.scrollTop ? bottom : null;
|
|
11869
|
+
if (target !== null)
|
|
11870
|
+
list.scrollTo({ top: target, behavior });
|
|
11871
|
+
}
|
|
11675
11872
|
focusPanel(el) {
|
|
11676
11873
|
var _a, _b;
|
|
11677
11874
|
this.panelFocusEl = el;
|
|
@@ -11692,6 +11889,7 @@ class PdsCombobox {
|
|
|
11692
11889
|
}
|
|
11693
11890
|
openGroupChanged(next, previous) {
|
|
11694
11891
|
this.handPanelFocusToList();
|
|
11892
|
+
this.revealedGroupLabel = null;
|
|
11695
11893
|
// Only moves between the drill-in panel's views slide; search results don't.
|
|
11696
11894
|
if (!this.isOpen || this.effectiveGroupDisplay !== 'drill-in' || !this.showsGroupedPanel)
|
|
11697
11895
|
return;
|
|
@@ -11714,6 +11912,7 @@ class PdsCombobox {
|
|
|
11714
11912
|
}
|
|
11715
11913
|
isOpenChanged(isOpen) {
|
|
11716
11914
|
if (!isOpen) {
|
|
11915
|
+
this.revealedGroupLabel = null;
|
|
11717
11916
|
this.drillDirection = null;
|
|
11718
11917
|
this.openGroup = null;
|
|
11719
11918
|
this.highlightedGroup = null;
|
|
@@ -11992,20 +12191,25 @@ class PdsCombobox {
|
|
|
11992
12191
|
// slotted markup would be, so grouping, filtering and labels work the same either way. Each
|
|
11993
12192
|
// group is listed where it first appears with all of its options, even when the data
|
|
11994
12193
|
// interleaves groups, so an option never renders under another group's label. Ungrouped
|
|
11995
|
-
// options come first, so none reads as part of the group above it.
|
|
12194
|
+
// options come first, so none reads as part of the group above it. The flyout and drill-in
|
|
12195
|
+
// panels draw groups as rows, where that can't happen, so they keep the data's order instead.
|
|
11996
12196
|
const asyncOptions = this.options || this.internalOptions;
|
|
11997
12197
|
const groups = new Map();
|
|
11998
12198
|
const ungrouped = [];
|
|
11999
12199
|
const groupEntries = [];
|
|
12000
|
-
|
|
12200
|
+
this.panelPositions = new WeakMap();
|
|
12201
|
+
asyncOptions.forEach((opt, position) => {
|
|
12001
12202
|
const optionEl = document.createElement('option');
|
|
12002
12203
|
optionEl.value = String(opt.id);
|
|
12003
12204
|
optionEl.textContent = opt.text;
|
|
12004
12205
|
if (opt.disabled === true)
|
|
12005
12206
|
optionEl.setAttribute('disabled', '');
|
|
12006
12207
|
// Only strings group an option or name an icon; anything else from JS is ignored, not coerced.
|
|
12208
|
+
if (typeof opt.icon === 'string' && opt.icon !== '')
|
|
12209
|
+
optionEl.setAttribute('data-icon', opt.icon);
|
|
12007
12210
|
if (typeof opt.group !== 'string' || opt.group === '') {
|
|
12008
12211
|
ungrouped.push(optionEl);
|
|
12212
|
+
this.panelPositions.set(optionEl, position);
|
|
12009
12213
|
return;
|
|
12010
12214
|
}
|
|
12011
12215
|
let optgroup = groups.get(opt.group);
|
|
@@ -12014,6 +12218,7 @@ class PdsCombobox {
|
|
|
12014
12218
|
optgroup.label = opt.group;
|
|
12015
12219
|
groups.set(opt.group, optgroup);
|
|
12016
12220
|
groupEntries.push(optgroup);
|
|
12221
|
+
this.panelPositions.set(optgroup, position);
|
|
12017
12222
|
}
|
|
12018
12223
|
if (!optgroup.hasAttribute('data-icon') && typeof opt.groupIcon === 'string' && opt.groupIcon !== '') {
|
|
12019
12224
|
optgroup.setAttribute('data-icon', opt.groupIcon);
|
|
@@ -12478,6 +12683,7 @@ class PdsCombobox {
|
|
|
12478
12683
|
handleGroupedPanelKey(e) {
|
|
12479
12684
|
if (!this.showsGroupedPanel)
|
|
12480
12685
|
return false;
|
|
12686
|
+
const highlightShown = this.keyboardNavigating;
|
|
12481
12687
|
this.keyboardNavigating = true;
|
|
12482
12688
|
// In the input trigger, Left and Right still move the caret through typed text, and Space,
|
|
12483
12689
|
// Home and End edit it, as they do in the panel's search field.
|
|
@@ -12487,23 +12693,32 @@ class PdsCombobox {
|
|
|
12487
12693
|
if (e.key === ' ' || e.key === 'Home' || e.key === 'End')
|
|
12488
12694
|
return false;
|
|
12489
12695
|
}
|
|
12490
|
-
const entries =
|
|
12696
|
+
const entries = this.panelEntries();
|
|
12491
12697
|
const drilledIn = this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null;
|
|
12492
12698
|
const current = this.currentPanelItem();
|
|
12493
12699
|
const column = panelColumn(entries, this.openGroup, current, drilledIn);
|
|
12494
12700
|
if (column.length === 0)
|
|
12495
12701
|
return false;
|
|
12496
12702
|
const position = current === null ? -1 : column.indexOf(current);
|
|
12703
|
+
// Drill-in doesn't shade a group row the pointer or a click-open highlighted, so the first Up or
|
|
12704
|
+
// Down shows that row rather than moving past one the user never saw.
|
|
12705
|
+
const unseenRow = !highlightShown && this.effectiveGroupDisplay === 'drill-in' && current !== null && typeof current !== 'number' && current !== this.openGroup;
|
|
12497
12706
|
const moveTo = (to) => {
|
|
12498
12707
|
e.preventDefault();
|
|
12499
12708
|
this.highlightPanelItem(column[Math.max(0, Math.min(column.length - 1, to))]);
|
|
12709
|
+
this.revealedGroupLabel = null;
|
|
12710
|
+
return true;
|
|
12711
|
+
};
|
|
12712
|
+
const reveal = () => {
|
|
12713
|
+
e.preventDefault();
|
|
12714
|
+
this.revealedGroupLabel = current.label;
|
|
12500
12715
|
return true;
|
|
12501
12716
|
};
|
|
12502
12717
|
switch (e.key) {
|
|
12503
12718
|
case 'ArrowDown':
|
|
12504
|
-
return moveTo(position < 0 ? 0 : position + 1);
|
|
12719
|
+
return unseenRow ? reveal() : moveTo(position < 0 ? 0 : position + 1);
|
|
12505
12720
|
case 'ArrowUp':
|
|
12506
|
-
return moveTo(position < 0 ? column.length - 1 : position - 1);
|
|
12721
|
+
return unseenRow ? reveal() : moveTo(position < 0 ? column.length - 1 : position - 1);
|
|
12507
12722
|
case 'Home':
|
|
12508
12723
|
return moveTo(0);
|
|
12509
12724
|
case 'End':
|
|
@@ -12636,7 +12851,7 @@ class PdsCombobox {
|
|
|
12636
12851
|
// In the grouped panel, the first row with something to choose: a group stays closed until
|
|
12637
12852
|
// it's opened.
|
|
12638
12853
|
if (this.showsGroupedPanel) {
|
|
12639
|
-
const first =
|
|
12854
|
+
const first = this.panelEntries().find(entry => entry.kind === 'group' ? !isGroupDisabled(entry.group) : !isOptionDisabled(entry.option));
|
|
12640
12855
|
this.highlightedIndex = (first === null || first === void 0 ? void 0 : first.kind) === 'option' ? first.index : -1;
|
|
12641
12856
|
this.highlightedGroup = (first === null || first === void 0 ? void 0 : first.kind) === 'group' ? first.group.optgroup : null;
|
|
12642
12857
|
return;
|
|
@@ -12701,8 +12916,13 @@ class PdsCombobox {
|
|
|
12701
12916
|
}
|
|
12702
12917
|
// Matched by id, not a selector: componentId is consumer text and may not be selector-safe.
|
|
12703
12918
|
const id = this.groupDomId(groupRow);
|
|
12704
|
-
|
|
12705
|
-
.find(
|
|
12919
|
+
const row = Array.from(this.listboxEl.querySelectorAll('[role="treeitem"]'))
|
|
12920
|
+
.find(item => item.id === id);
|
|
12921
|
+
// The row's trigger, not its item: the row back's item wraps the group's options, and showing
|
|
12922
|
+
// all of a group taller than the list would scroll the row back itself out of view.
|
|
12923
|
+
const trigger = Array.from((_a = row === null || row === void 0 ? void 0 : row.children) !== null && _a !== void 0 ? _a : []).find(child => child.classList.contains('pds-combobox__group-row-trigger'));
|
|
12924
|
+
if (trigger)
|
|
12925
|
+
this.scrollIntoViewNearest(trigger, false);
|
|
12706
12926
|
this.updateAriaActiveDescendant();
|
|
12707
12927
|
return;
|
|
12708
12928
|
}
|
|
@@ -12753,7 +12973,7 @@ class PdsCombobox {
|
|
|
12753
12973
|
this.flyout.reveal(flyout, currentOption);
|
|
12754
12974
|
}
|
|
12755
12975
|
else {
|
|
12756
|
-
|
|
12976
|
+
this.scrollIntoViewNearest(currentOption, true);
|
|
12757
12977
|
}
|
|
12758
12978
|
}
|
|
12759
12979
|
// Always update aria-activedescendant on the trigger element
|
|
@@ -12850,6 +13070,8 @@ class PdsCombobox {
|
|
|
12850
13070
|
this.highlightedIndex = -1;
|
|
12851
13071
|
this.highlightedGroup = group;
|
|
12852
13072
|
this.keyboardNavigating = false;
|
|
13073
|
+
// So revealing this row again later is announced again.
|
|
13074
|
+
this.revealedGroupLabel = null;
|
|
12853
13075
|
}
|
|
12854
13076
|
// Get the label of the selected option
|
|
12855
13077
|
get selectedLabel() {
|
|
@@ -13005,7 +13227,8 @@ class PdsCombobox {
|
|
|
13005
13227
|
'pds-combobox__listbox--grouped': this.groupDisplay !== 'inline',
|
|
13006
13228
|
'pds-combobox__listbox--drill-in': this.drillDirection === 'in',
|
|
13007
13229
|
'pds-combobox__listbox--drill-out': this.drillDirection === 'out',
|
|
13008
|
-
|
|
13230
|
+
'pds-combobox__listbox--pointer-hover': this.pointerCanHover,
|
|
13231
|
+
}, onAnimationEnd: this.onDrillAnimationEnd, onPointerMove: this.onPanelPointer, onPointerDown: this.onPanelPointer, role: this.showsGroupedPanel ? 'tree' : 'listbox', id: this.listboxId, "aria-label": this.label || 'Options', "aria-multiselectable": "false",
|
|
13009
13232
|
// Focusable but out of the tab order with panel search, so it can take focus when a
|
|
13010
13233
|
// drilled-in group hides the field. Dropping it while focused would blur the list and close.
|
|
13011
13234
|
tabIndex: withSearch ? -1 : undefined, "aria-activedescendant": listTakesFocus ? this.activeDescendantId : undefined, onKeyDown: withSearch ? this.onPanelTreeKeyDown : undefined, ref: el => {
|
|
@@ -13171,7 +13394,21 @@ class PdsCombobox {
|
|
|
13171
13394
|
'pds-combobox__option--layout': isLayout,
|
|
13172
13395
|
'pds-combobox__option--chip': isChip,
|
|
13173
13396
|
'pds-combobox__option--disabled': isDisabled,
|
|
13174
|
-
}, "data-option-index": index, onMouseDown: this.onOptionMouseDown, onClick: this.onOptionClick, onMouseEnter: this.onOptionMouseEnter, onKeyDown: this.onOptionKeyDown }, isLayout ? (hAsync("pds-box", { class: "pds-combobox__option-layout-wrapper", innerHTML: this.getOptionLayoutContent(option) })) : isChip ? (this.renderOptionChip(option)) : (this.
|
|
13397
|
+
}, "data-option-index": index, onMouseDown: this.onOptionMouseDown, onClick: this.onOptionClick, onMouseEnter: this.onOptionMouseEnter, onKeyDown: this.onOptionKeyDown }, isLayout ? (hAsync("pds-box", { class: "pds-combobox__option-layout-wrapper", innerHTML: this.getOptionLayoutContent(option) })) : isChip ? (this.renderOptionChip(option)) : (this.renderOptionLabel(option)), isSelected && hAsync("pds-icon", { icon: "check", size: "regular", class: "pds-combobox__option-check" })));
|
|
13398
|
+
}
|
|
13399
|
+
/** An option's text, after its `data-icon` when it has one. */
|
|
13400
|
+
renderOptionLabel(option) {
|
|
13401
|
+
const icon = optionIconOf(option);
|
|
13402
|
+
if (icon === null)
|
|
13403
|
+
return this.getOptionLabel(option);
|
|
13404
|
+
return (hAsync("span", { class: "pds-combobox__option-label" }, hAsync("pds-icon", { name: icon, size: "regular", "aria-hidden": "true", class: "pds-combobox__option-icon" }), this.getOptionLabel(option)));
|
|
13405
|
+
}
|
|
13406
|
+
/** The grouped panel's rows, in the order the panel draws them and the keyboard moves through. */
|
|
13407
|
+
panelEntries() {
|
|
13408
|
+
// Slotted markup is already in order; only options from data record positions.
|
|
13409
|
+
if (this.options === undefined && !this.asyncUrl)
|
|
13410
|
+
return buildPanelEntries(this.filteredItems);
|
|
13411
|
+
return buildPanelEntries(this.filteredItems, element => this.panelPositions.get(element));
|
|
13175
13412
|
}
|
|
13176
13413
|
/**
|
|
13177
13414
|
* `flyout`: one row per group, its options in a flyout beside it. `drill-in`: the same rows, and
|
|
@@ -13179,7 +13416,7 @@ class PdsCombobox {
|
|
|
13179
13416
|
* it's a tree: the rows and ungrouped options are level 1, a group's options level 2.
|
|
13180
13417
|
*/
|
|
13181
13418
|
renderGroupedPanel() {
|
|
13182
|
-
const entries =
|
|
13419
|
+
const entries = this.panelEntries();
|
|
13183
13420
|
const setsize = entries.length;
|
|
13184
13421
|
if (this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null) {
|
|
13185
13422
|
const position = entries.findIndex(entry => entry.kind === 'group' && entry.group.optgroup === this.openGroup);
|
|
@@ -13210,22 +13447,26 @@ class PdsCombobox {
|
|
|
13210
13447
|
return (hAsync("li", { key: "group-back", id: id, class: {
|
|
13211
13448
|
'pds-combobox__group-back': true,
|
|
13212
13449
|
'pds-combobox__group-back--disabled': disabled,
|
|
13213
|
-
|
|
13450
|
+
// As the group rows: shaded for the keys, and by `:hover` for the pointer.
|
|
13451
|
+
'pds-combobox__group-back--highlighted': this.keyboardNavigating && this.highlightedGroupRow === group.optgroup,
|
|
13214
13452
|
'pds-combobox__group-back--keyboard': this.keyboardNavigating && this.highlightedGroupRow === group.optgroup,
|
|
13215
13453
|
}, role: "treeitem", "aria-expanded": "true", "aria-disabled": disabled ? 'true' : undefined, "aria-level": 1, "aria-posinset": posinset, "aria-setsize": setsize, "aria-labelledby": `${id}-label` }, hAsync("div", { class: "pds-combobox__group-row-trigger pds-combobox__group-back-trigger", onMouseDown: this.onOptionMouseDown, onMouseEnter: this.onGroupBackMouseEnter, onClick: this.onGroupBackClick }, hAsync("span", { class: "pds-combobox__group-row-label", id: `${id}-label` }, hAsync("pds-icon", { name: "caret-left", size: "regular", "aria-hidden": "true", class: "pds-combobox__group-row-caret" }), hAsync("span", { class: "visually-hidden" }, this.drillInBackLabel, ": "), group.label)), hAsync("ul", { class: "pds-combobox__drill-in-options", role: "group", "aria-label": group.label }, this.renderGroupOptions(group))));
|
|
13216
13454
|
}
|
|
13217
13455
|
renderGroupRow(group, groupIndex, { posinset, setsize }) {
|
|
13218
13456
|
const flyout = this.effectiveGroupDisplay === 'flyout';
|
|
13219
13457
|
const isOpen = flyout && this.openGroup === group.optgroup;
|
|
13220
|
-
|
|
13458
|
+
// Drill-in shades a group row only for the keys: not for the group holding the selection, or the
|
|
13459
|
+
// row the pointer or a click-open left highlighted, which read as picked. `:hover` covers the pointer.
|
|
13460
|
+
const hasSelection = flyout && group.options.some(({ option }) => this.isOptionSelected(option));
|
|
13461
|
+
const isCurrent = this.highlightedGroupRow === group.optgroup;
|
|
13221
13462
|
const disabled = isGroupDisabled(group);
|
|
13222
13463
|
const id = this.groupDomId(group.optgroup);
|
|
13223
13464
|
return (hAsync("li", { key: `group-${groupIndex}`, id: id, class: {
|
|
13224
13465
|
'pds-combobox__group-row': true,
|
|
13225
13466
|
'pds-combobox__group-row--open': isOpen,
|
|
13226
13467
|
'pds-combobox__group-row--has-selection': hasSelection,
|
|
13227
|
-
'pds-combobox__group-row--highlighted':
|
|
13228
|
-
'pds-combobox__group-row--keyboard':
|
|
13468
|
+
'pds-combobox__group-row--highlighted': isCurrent && (flyout || this.keyboardNavigating),
|
|
13469
|
+
'pds-combobox__group-row--keyboard': isCurrent && this.keyboardNavigating,
|
|
13229
13470
|
'pds-combobox__group-row--disabled': disabled,
|
|
13230
13471
|
}, role: "treeitem", "aria-expanded": isOpen ? 'true' : 'false', "aria-disabled": disabled ? 'true' : undefined, "aria-level": 1, "aria-posinset": posinset, "aria-setsize": setsize, "aria-labelledby": `${id}-label`, "data-group-index": groupIndex, onMouseEnter: flyout ? this.onGroupRowMouseEnter : undefined, onMouseLeave: flyout ? this.onGroupRowMouseLeave : undefined }, hAsync("div", { class: "pds-combobox__group-row-trigger", "data-group-index": groupIndex, onMouseDown: this.onOptionMouseDown, onMouseEnter: this.onGroupRowTriggerMouseEnter, onClick: this.onGroupRowClick }, hAsync("span", { class: "pds-combobox__group-row-label", id: `${id}-label` }, group.icon !== null && (
|
|
13231
13472
|
// `name`, not `icon`: `icon` also loads URLs and data: SVGs, unsanitized.
|
|
@@ -13241,7 +13482,23 @@ class PdsCombobox {
|
|
|
13241
13482
|
}
|
|
13242
13483
|
// Helper method to render default text content
|
|
13243
13484
|
renderDefaultContent() {
|
|
13244
|
-
|
|
13485
|
+
const icon = this.selectedIcon;
|
|
13486
|
+
return (hAsync("span", { class: {
|
|
13487
|
+
'pds-combobox__button-trigger-label': true,
|
|
13488
|
+
'pds-combobox__button-trigger-label--placeholder': !this.selectedLabel,
|
|
13489
|
+
'pds-combobox__button-trigger-label--with-icon': icon !== null,
|
|
13490
|
+
} }, icon !== null && (
|
|
13491
|
+
// `name`, not `icon`: `icon` also loads URLs and data: SVGs, unsanitized.
|
|
13492
|
+
hAsync("pds-icon", { name: icon, size: "regular", "aria-hidden": "true", class: "pds-combobox__button-trigger-icon" })), this.selectedLabel || this.placeholder));
|
|
13493
|
+
}
|
|
13494
|
+
/** The selection's icon for the button trigger: the option's own, or else its group's. */
|
|
13495
|
+
get selectedIcon() {
|
|
13496
|
+
var _a;
|
|
13497
|
+
const option = this.selectedOption;
|
|
13498
|
+
if (!option)
|
|
13499
|
+
return null;
|
|
13500
|
+
const optgroup = parentOptgroupOf(option);
|
|
13501
|
+
return (_a = optionIconOf(option)) !== null && _a !== void 0 ? _a : (optgroup !== null ? groupIconOf(optgroup) : null);
|
|
13245
13502
|
}
|
|
13246
13503
|
// Helper method to check if we should show layout content
|
|
13247
13504
|
shouldShowLayoutContent() {
|
|
@@ -13359,6 +13616,7 @@ class PdsCombobox {
|
|
|
13359
13616
|
];
|
|
13360
13617
|
}
|
|
13361
13618
|
render() {
|
|
13619
|
+
var _a;
|
|
13362
13620
|
const triggerClass = [
|
|
13363
13621
|
'pds-combobox__button-trigger',
|
|
13364
13622
|
`pds-combobox__button-trigger--${this.triggerVariant}`,
|
|
@@ -13366,13 +13624,18 @@ class PdsCombobox {
|
|
|
13366
13624
|
]
|
|
13367
13625
|
.filter(Boolean)
|
|
13368
13626
|
.join(' ');
|
|
13369
|
-
return (hAsync(Host, { key: '
|
|
13627
|
+
return (hAsync(Host, { key: 'e934b937916e45f715e6fb54d23a2a5e7c8ce4f6', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: '79d282907c4f218e124b4f9250e0aedb0e9ea51d', class: "pds-combobox", tabIndex: -1, onFocusout: this.onComboboxFocusOut, part: "combobox" }, this.hasVisibleLabel && (hAsync("label", { key: 'd05a4a8fe5362b2b0a684f36115c127689c35c2f', htmlFor: this.trigger === 'input' ? this.componentId : undefined, id: this.labelId, class: "pds-combobox__label", onClick: this.onLabelClick }, this.label)), this.trigger === 'input' ? (hAsync("div", { class: "pds-combobox__input-wrapper", style: { width: this.triggerWidth } }, hAsync("input", { ref: el => {
|
|
13370
13628
|
this.inputEl = el;
|
|
13371
13629
|
this.triggerEl = el;
|
|
13372
13630
|
}, class: {
|
|
13373
13631
|
'pds-combobox__input': true,
|
|
13374
13632
|
'pds-combobox__input--invalid': this.isInvalid(),
|
|
13375
|
-
}, type: "text", role: "combobox", "aria-autocomplete": "list", "aria-haspopup": this.inputPopupRole === 'tree' ? 'tree' : undefined, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), hAsync("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (hAsync("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (hAsync("div", { class: triggerClass, style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), this.renderMessages(), hAsync("div", { key: '
|
|
13633
|
+
}, type: "text", role: "combobox", "aria-autocomplete": "list", "aria-haspopup": this.inputPopupRole === 'tree' ? 'tree' : undefined, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), hAsync("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (hAsync("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (hAsync("div", { class: triggerClass, style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), this.renderMessages(), hAsync("div", { key: '38d9c018d59472ef8b7eb3facb47bea5c73f5f1e', style: { display: 'none' } }, hAsync("slot", { key: '26acb32e5f301b568485d52e29b68e526ef1d525', onSlotchange: () => this.updateOptions() })), this.renderDropdown(), this.groupDisplay !== 'inline' && [
|
|
13634
|
+
hAsync("span", { key: "drill-status", class: "visually-hidden", role: "status", "aria-live": "polite" }, this.isOpen && this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null ? this.openGroup.label : ''),
|
|
13635
|
+
// Its own region: sharing one, revealing a row then opening it would leave the text the
|
|
13636
|
+
// same, and opening the group would go unannounced.
|
|
13637
|
+
hAsync("span", { key: "reveal-status", class: "visually-hidden", role: "status", "aria-live": "polite" }, this.isOpen ? (_a = this.revealedGroupLabel) !== null && _a !== void 0 ? _a : '' : ''),
|
|
13638
|
+
])));
|
|
13376
13639
|
}
|
|
13377
13640
|
static get formAssociated() { return true; }
|
|
13378
13641
|
get el() { return getElement(this); }
|
|
@@ -13455,6 +13718,8 @@ class PdsCombobox {
|
|
|
13455
13718
|
"drillDirection": [32],
|
|
13456
13719
|
"highlightedGroup": [32],
|
|
13457
13720
|
"keyboardNavigating": [32],
|
|
13721
|
+
"revealedGroupLabel": [32],
|
|
13722
|
+
"pointerCanHover": [32],
|
|
13458
13723
|
"panelQuery": [32],
|
|
13459
13724
|
"flyoutFallback": [32],
|
|
13460
13725
|
"selectedOption": [32],
|
|
@@ -13502,7 +13767,7 @@ class PdsContainer {
|
|
|
13502
13767
|
hostStyle['--pine-container-max-width'] = customSize;
|
|
13503
13768
|
if (!this.centered)
|
|
13504
13769
|
hostStyle['margin-inline'] = '0';
|
|
13505
|
-
return (hAsync(Host, { key: '
|
|
13770
|
+
return (hAsync(Host, { key: '8a9b10b5d0e348b73f8a6bd7933083c596df10d8', class: { [`pds-container--${this.size}`]: isNamed }, style: Object.keys(hostStyle).length ? hostStyle : undefined }, hAsync(Tag, { key: '55fb22be49377c4cccf08381e7cf954a3f097d08', part: "container" }, hAsync("slot", { key: '4cd9c4fa74a2c6a056e076ab67a0279c395b5c79' }))));
|
|
13506
13771
|
}
|
|
13507
13772
|
static get style() { return pdsContainerCss(); }
|
|
13508
13773
|
static get cmpMeta() { return {
|
|
@@ -13622,7 +13887,7 @@ class PdsCopytext {
|
|
|
13622
13887
|
render() {
|
|
13623
13888
|
const hostClass = this.classNames();
|
|
13624
13889
|
this.hostKeeper.record(hostClass);
|
|
13625
|
-
return (hAsync(Host, { key: '
|
|
13890
|
+
return (hAsync(Host, { key: 'd9bd40af6e435d606841cb551341eab33c5983b7', class: hostClass, id: this.componentId }, hAsync("pds-button", { key: '7a42b32678fccb2cbe0d7a68a5da6d5fe5276a4a', type: "button", variant: "unstyled", onClick: this.handleClick }, hAsync("span", { key: '732db283b8075ebad8e1daff70692bac2978aade', ref: (el) => this.valueSpanEl = el }, this.value), hAsync("pds-icon", { key: 'ebfd34b9b5a47b78783302ce97d752af09e3f3e3', "aria-hidden": "true", icon: copy, size: "16px" }))));
|
|
13626
13891
|
}
|
|
13627
13892
|
get el() { return getElement(this); }
|
|
13628
13893
|
static get watchers() { return {
|
|
@@ -15624,14 +15889,14 @@ class PdsDatepicker {
|
|
|
15624
15889
|
}
|
|
15625
15890
|
render() {
|
|
15626
15891
|
const locale = this.resolvedLocale;
|
|
15627
|
-
return (hAsync(Host, { key: '
|
|
15892
|
+
return (hAsync(Host, { key: '82ffd88b7741a90edc28b66a7384178eb2a9a86c', class: { 'pds-datepicker--range': this.range, 'pds-datepicker--time': this.timePicker }, "full-width": this.fullWidth ? 'true' : null, onFocusin: this.onHostFocusIn, onFocusout: this.onHostFocusOut }, hAsync("pds-input", { key: 'f2b9aad64d1fe8d94327cc3d4f87cd6904eb3076', ref: (el) => (this.inputEl = el), componentId: this.baseId, label: this.label, hideLabel: this.hideLabel, helperMessage: this.helperMessage, errorMessage: this.errorMessage, invalid: this.invalid || !!this.textError || !!this.valueError(), disabled: this.disabled, readonly: this.readonly, required: this.required, placeholder: this.fieldPlaceholder, fullWidth: this.fullWidth, autocomplete: "off", value: this.text, onClick: this.onFieldClick, onPdsInput: this.onTextInput, onPdsChange: this.onTextChange, onPdsKeyDown: this.onTextKeyDown, onPdsFocus: this.stopInnerEvent, onPdsBlur: this.stopInnerEvent }, this.clearable && !!this.value && this.isInteractive && (hAsync("button", {
|
|
15628
15893
|
// Keyed, as is the calendar button: when Clear appears after a pick, the focused
|
|
15629
15894
|
// calendar button must stay that button rather than be reused as Clear.
|
|
15630
15895
|
key: "clear", slot: "suffix", type: "button", class: "pds-datepicker__clear", ref: (el) => (this.clearEl = el), "aria-label": this.label ? `${this.clearLabel} ${this.label}` : this.clearLabel,
|
|
15631
15896
|
// Out of the tab order, as a native search field's clear button is: Tab from a field
|
|
15632
15897
|
// just emptied would land on it as the change removes it, dropping focus to the page.
|
|
15633
15898
|
tabindex: "-1", onMouseDown: this.onClearMouseDown, onClick: this.onClearClick
|
|
15634
|
-
}, hAsync("pds-icon", { key: '
|
|
15899
|
+
}, hAsync("pds-icon", { key: 'f2c784e9d6577d4900b7641ee58aa43f5922fc75', icon: remove, "aria-hidden": "true" }))), hAsync("button", { key: "trigger", slot: "suffix", type: "button", class: "pds-datepicker__trigger", ref: (el) => (this.triggerEl = el), "aria-label": this.triggerAccessibleName(locale), "aria-haspopup": "dialog", "aria-expanded": this.isOpen ? 'true' : 'false', disabled: !this.isInteractive, onClick: this.onTriggerClick, onKeyDown: this.onTriggerKeyDown }, hAsync("pds-icon", { key: '98b2e773240c8ea2bbd5a1acfa3c9ba74cb7917b', icon: calendarSimple, "aria-hidden": "true" }))), this.isOpen && this.renderCalendar(locale)));
|
|
15635
15900
|
}
|
|
15636
15901
|
static get formAssociated() { return true; }
|
|
15637
15902
|
get el() { return getElement(this); }
|
|
@@ -15773,7 +16038,7 @@ class PdsDivider {
|
|
|
15773
16038
|
return classNames.join(' ');
|
|
15774
16039
|
}
|
|
15775
16040
|
render() {
|
|
15776
|
-
return (hAsync(Host, { key: '
|
|
16041
|
+
return (hAsync(Host, { key: 'ef2a5ee85e8f37036be5b8df490683636ffb66f0', id: this.componentId }, this.hasLabel ? (hAsync("div", { class: this.classNames(), role: "separator", "aria-label": this.label }, hAsync("span", { class: "pds-divider__label", part: "label", "aria-hidden": "true" }, this.label))) : (hAsync("hr", { class: this.classNames() }))));
|
|
15777
16042
|
}
|
|
15778
16043
|
static get style() { return pdsDividerCss(); }
|
|
15779
16044
|
static get cmpMeta() { return {
|
|
@@ -15955,11 +16220,11 @@ class PdsDrawer {
|
|
|
15955
16220
|
this.open = false;
|
|
15956
16221
|
}
|
|
15957
16222
|
render() {
|
|
15958
|
-
return (hAsync(Host, { key: '
|
|
16223
|
+
return (hAsync(Host, { key: 'ae7e67ed196ef95a39c2b729e859712ce5c41144', class: {
|
|
15959
16224
|
'pds-drawer': true,
|
|
15960
16225
|
[`pds-drawer--${this.side}`]: true,
|
|
15961
16226
|
[`pds-drawer--${this.size}`]: true,
|
|
15962
|
-
} }, hAsync("pds-modal", { key: '
|
|
16227
|
+
} }, hAsync("pds-modal", { key: '9b35ce377c84612a844a561d5540e98b08c0e499', class: "pds-drawer__modal", ref: (el) => (this.modalEl = el), componentId: this.componentId, open: this.open, scrollable: this.scrollable, disableTopLayer: true, backdropDismiss: this.lightDismiss, disableInitialFocus: this.initialFocus === 'none' }, hAsync("slot", { key: 'dda01aa40dc41b3d17073238a8cad8d816571e18' }))));
|
|
15963
16228
|
}
|
|
15964
16229
|
get el() { return getElement(this); }
|
|
15965
16230
|
static get style() { return pdsDrawerCss(); }
|
|
@@ -15999,7 +16264,7 @@ class PdsDrawerContent {
|
|
|
15999
16264
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer-content'), '.pds-drawer-content');
|
|
16000
16265
|
}
|
|
16001
16266
|
render() {
|
|
16002
|
-
return (hAsync("div", { key: '
|
|
16267
|
+
return (hAsync("div", { key: 'f307939ab0a94f6a0d8a3675c658def0ded68b98', class: "pds-drawer-content" }, hAsync("slot", { key: 'dadac08ac15bb8ded98ea982511e2d57bea9bdca' })));
|
|
16003
16268
|
}
|
|
16004
16269
|
get el() { return getElement(this); }
|
|
16005
16270
|
static get style() { return pdsDrawerContentCss(); }
|
|
@@ -16027,7 +16292,7 @@ class PdsDrawerFooter {
|
|
|
16027
16292
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer__footer'), '.pds-drawer__footer');
|
|
16028
16293
|
}
|
|
16029
16294
|
render() {
|
|
16030
|
-
return (hAsync("footer", { key: '
|
|
16295
|
+
return (hAsync("footer", { key: 'b58c68d88b467e8baa3682d16f97076d06ea2414', class: "pds-drawer__footer" }, hAsync("slot", { key: 'ff2306202c14029b397d40b5bb3d672a8aa571c0' })));
|
|
16031
16296
|
}
|
|
16032
16297
|
get el() { return getElement(this); }
|
|
16033
16298
|
static get style() { return pdsDrawerFooterCss(); }
|
|
@@ -16055,7 +16320,7 @@ class PdsDrawerHeader {
|
|
|
16055
16320
|
unwrapReconnectedContent(this.el.querySelector('.pds-drawer__header'), '.pds-drawer__header');
|
|
16056
16321
|
}
|
|
16057
16322
|
render() {
|
|
16058
|
-
return (hAsync("header", { key: '
|
|
16323
|
+
return (hAsync("header", { key: '280e6ca734317d5733e4c595431c8070eff13d58', class: "pds-drawer__header" }, hAsync("slot", { key: 'cc6af6084600c4dc60d7bd99e040376abdf5ffe3' })));
|
|
16059
16324
|
}
|
|
16060
16325
|
get el() { return getElement(this); }
|
|
16061
16326
|
static get style() { return pdsDrawerHeaderCss(); }
|
|
@@ -16069,9 +16334,10 @@ class PdsDrawerHeader {
|
|
|
16069
16334
|
}; }
|
|
16070
16335
|
}
|
|
16071
16336
|
|
|
16072
|
-
const pdsDropdownMenuCss = () => `:host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}::slotted(a),::slotted(button){-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs) !important;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text) !important;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium) !important;gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px) !important;padding:var(--pine-dimension-xs) !important;text-align:start;text-decoration:none !important;width:calc(100% - (var(--pine-border-width) + 2px) * 2)}::slotted(.destructive){color:var(--pine-color-danger) !important}::slotted([aria-disabled=true]),::slotted([disabled]:not([disabled=false])){cursor:not-allowed;opacity:0.5;pointer-events:none}`;
|
|
16337
|
+
const pdsDropdownMenuCss = () => `:host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}.pds-dropdown-menu__header{-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border);-webkit-margin-after:var(--pine-dimension-xs);margin-block-end:var(--pine-dimension-xs);margin-inline:calc(var(--pine-dimension-xs) * -1);-webkit-padding-after:var(--pine-dimension-xs);padding-block-end:var(--pine-dimension-xs);padding-inline:calc(var(--pine-dimension-xs) * 2 + var(--pine-border-width) + 2px);text-align:start}.pds-dropdown-menu__items{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}::slotted(a:not([slot=header])),::slotted(button:not([slot=header])){-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs) !important;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text) !important;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium) !important;gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px) !important;padding:var(--pine-dimension-xs) !important;text-align:start;text-decoration:none !important;width:calc(100% - (var(--pine-border-width) + 2px) * 2)}::slotted(.destructive:not([slot=header])){color:var(--pine-color-danger) !important}::slotted([aria-disabled=true]:not([slot=header])),::slotted([disabled]:not([disabled=false]):not([slot=header])){cursor:not-allowed;opacity:0.5;pointer-events:none}`;
|
|
16073
16338
|
|
|
16074
16339
|
/**
|
|
16340
|
+
* @slot header - Non-interactive content displayed above the menu items inside the dropdown panel. It renders outside the menu role, so assistive tech reads it as plain content rather than as a menu item.
|
|
16075
16341
|
* @part menu-panel - Exposes the dropdown menu container for styling.
|
|
16076
16342
|
*/
|
|
16077
16343
|
class PdsDropdownMenu {
|
|
@@ -16082,6 +16348,7 @@ class PdsDropdownMenu {
|
|
|
16082
16348
|
this.cleanupAutoUpdate = null;
|
|
16083
16349
|
this.triggerObserver = null;
|
|
16084
16350
|
this.currentFocusIndex = -1;
|
|
16351
|
+
this.hasHeader = false;
|
|
16085
16352
|
/**
|
|
16086
16353
|
* The placement of the dropdown panel relative to the trigger.
|
|
16087
16354
|
*/
|
|
@@ -16100,8 +16367,11 @@ class PdsDropdownMenu {
|
|
|
16100
16367
|
// Writes the trigger's ARIA from the menu's state, so the observer's own callback doesn't loop.
|
|
16101
16368
|
this.syncTriggerAria = () => {
|
|
16102
16369
|
if (!this.triggerEl)
|
|
16103
|
-
return;
|
|
16104
|
-
setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
|
|
16370
|
+
return false;
|
|
16371
|
+
return setAttributesIfChanged(this.triggerEl, { 'aria-haspopup': 'menu', 'aria-expanded': String(this.isOpen) });
|
|
16372
|
+
};
|
|
16373
|
+
this.handleHeaderSlotChange = (event) => {
|
|
16374
|
+
this.hasHeader = event.target.assignedElements().length > 0;
|
|
16105
16375
|
};
|
|
16106
16376
|
this.handleSlotChange = (event) => {
|
|
16107
16377
|
this.slotEl = event.target;
|
|
@@ -16180,6 +16450,9 @@ class PdsDropdownMenu {
|
|
|
16180
16450
|
this.toggleDropdown();
|
|
16181
16451
|
};
|
|
16182
16452
|
}
|
|
16453
|
+
componentWillLoad() {
|
|
16454
|
+
this.hasHeader = Array.from(this.host.children).some(el => el.getAttribute('slot') === 'header');
|
|
16455
|
+
}
|
|
16183
16456
|
componentDidRender() {
|
|
16184
16457
|
var _a;
|
|
16185
16458
|
this.panelEl = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-box');
|
|
@@ -16208,7 +16481,8 @@ class PdsDropdownMenu {
|
|
|
16208
16481
|
this.triggerObserver = null;
|
|
16209
16482
|
if (!this.triggerEl || typeof MutationObserver === 'undefined')
|
|
16210
16483
|
return;
|
|
16211
|
-
|
|
16484
|
+
// Capped against a script that keeps undoing it; opening and closing still write it directly.
|
|
16485
|
+
this.triggerObserver = new MutationObserver(limitRestores(this.syncTriggerAria, 'pds-dropdown-menu: stopped restoring its trigger ARIA, as another script keeps changing it. It may be wrong until the menu opens or closes.', this.triggerEl));
|
|
16212
16486
|
this.triggerObserver.observe(this.triggerEl, {
|
|
16213
16487
|
attributes: true,
|
|
16214
16488
|
attributeFilter: ['aria-haspopup', 'aria-expanded'],
|
|
@@ -16414,7 +16688,7 @@ class PdsDropdownMenu {
|
|
|
16414
16688
|
}
|
|
16415
16689
|
}
|
|
16416
16690
|
render() {
|
|
16417
|
-
return (hAsync(Host, { key: '
|
|
16691
|
+
return (hAsync(Host, { key: '0dd585168e8fa86378c4812ce54fd09108861d5b', id: this.componentId }, hAsync("slot", { key: 'c7144f8d6aaebe37b585c6c6230102c013230a9e', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '82292e051337141bc9fd83b90292b188b0bb3489', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", part: "menu-panel" }, hAsync("div", { key: 'c0f49dca14df0ba3885865c51562c380155bf8a8', class: { 'pds-dropdown-menu__header': true, 'is-hidden': !this.hasHeader } }, hAsync("slot", { key: 'dc80c97a8dbb79ab4563524b3dea68d144e8570c', name: "header", onSlotchange: this.handleHeaderSlotChange })), hAsync("div", { key: '29cb56bdf28a0438296f33e0fa86c9da7b51902c', class: "pds-dropdown-menu__items", role: "menu", "aria-orientation": "vertical" }, hAsync("slot", { key: '8f91ceeb1eedc4acc79f09032dedc69a2ba1f99a', onSlotchange: this.handleSlotChange })))));
|
|
16418
16692
|
}
|
|
16419
16693
|
get host() { return getElement(this); }
|
|
16420
16694
|
static get style() { return pdsDropdownMenuCss(); }
|
|
@@ -16424,7 +16698,8 @@ class PdsDropdownMenu {
|
|
|
16424
16698
|
"$members$": {
|
|
16425
16699
|
"componentId": [1, "component-id"],
|
|
16426
16700
|
"placement": [1],
|
|
16427
|
-
"currentFocusIndex": [32]
|
|
16701
|
+
"currentFocusIndex": [32],
|
|
16702
|
+
"hasHeader": [32]
|
|
16428
16703
|
},
|
|
16429
16704
|
"$listeners$": [[8, "keydown", "handleKeyDown"], [8, "click", "handleWindowClick"]],
|
|
16430
16705
|
"$lazyBundleId$": "-",
|
|
@@ -16509,7 +16784,7 @@ class PdsDropdownMenuItem {
|
|
|
16509
16784
|
}, tabIndex: this.disabled ? -1 : 0, type: "button", part: "button", onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null }, hAsync("slot", null)));
|
|
16510
16785
|
}
|
|
16511
16786
|
render() {
|
|
16512
|
-
return (hAsync(Host, { key: '
|
|
16787
|
+
return (hAsync(Host, { key: '33bd645d7c9547e3fd07429cf795302e6a482296', id: this.componentId, class: { 'is-disabled': this.disabled, 'destructive': !this.disabled && this.destructive }, onClick: () => !this.disabled && this.handleClick(), role: "none", tabIndex: -1, "aria-disabled": this.disabled ? 'true' : null }, this.renderElement()));
|
|
16513
16788
|
}
|
|
16514
16789
|
get host() { return getElement(this); }
|
|
16515
16790
|
static get style() { return pdsDropdownMenuItemCss(); }
|
|
@@ -16545,7 +16820,7 @@ class PdsDropdownMenuSeparator {
|
|
|
16545
16820
|
this.disabled = false;
|
|
16546
16821
|
}
|
|
16547
16822
|
render() {
|
|
16548
|
-
return (hAsync(Host, { key: '
|
|
16823
|
+
return (hAsync(Host, { key: '60407a2edc8b4667d39cbd1ba9a859d09b0b8ff1', id: this.componentId }, hAsync("hr", { key: '8485d1c8508c5fe5e3635505f25e278f45f45b82' })));
|
|
16549
16824
|
}
|
|
16550
16825
|
static get style() { return pdsDropdownMenuSeparatorCss(); }
|
|
16551
16826
|
static get cmpMeta() { return {
|
|
@@ -17125,7 +17400,7 @@ class PdsFilter {
|
|
|
17125
17400
|
return null;
|
|
17126
17401
|
}
|
|
17127
17402
|
render() {
|
|
17128
|
-
return (hAsync(Host, { key: '
|
|
17403
|
+
return (hAsync(Host, { key: '3cae951aee1f9c75f3e207cf6c68633a23f8f6dc', id: this.componentId }, hAsync("button", { key: 'f4c644710dc936248995be9a49cef8ad13031d61', class: this.getTriggerClasses(), type: "button", popoverTarget: this.variant !== 'clear' ? `${this.componentId}-popover` : undefined, popoverTargetAction: this.variant !== 'clear' ? 'toggle' : undefined, onKeyDown: this.variant === 'clear' ? this.handleKeyDown : undefined, onClick: (event) => this.handleClick(event), part: "button", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": this.variant !== 'clear' ? 'true' : undefined, "aria-controls": this.variant !== 'clear' ? `${this.componentId}-popover` : undefined }, hAsync("span", { key: '2dd87e53f363118becc762051ea1be664258b8b6', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (hAsync("span", { key: '733ceb5e07198e844fbdc1af294d2046c4c571d8', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (hAsync("div", { key: 'beb65a21192c6f5c16703aec7ab9a92ea378ef3c', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, hAsync("slot", { key: '5a481cc6b143b059a5fc33d377abe5ab79aefb4e' })))));
|
|
17129
17404
|
}
|
|
17130
17405
|
get el() { return getElement(this); }
|
|
17131
17406
|
static get style() { return pdsFilterCss(); }
|
|
@@ -17157,7 +17432,7 @@ class PdsFilters {
|
|
|
17157
17432
|
registerInstance(this, hostRef);
|
|
17158
17433
|
}
|
|
17159
17434
|
render() {
|
|
17160
|
-
return (hAsync(Host, { key: '
|
|
17435
|
+
return (hAsync(Host, { key: '8688235fe7cdea1b4fc540156ff21bb9711b41b6', id: this.componentId }, hAsync("div", { key: 'e51a37977df8c31f99b28d8c7e4bedb0d63e53c6', class: "pds-filters" }, hAsync("slot", { key: '8ce936da4d3f0213408090bc3eeb011920f9aa6c' }))));
|
|
17161
17436
|
}
|
|
17162
17437
|
static get style() { return pdsFiltersCss(); }
|
|
17163
17438
|
static get cmpMeta() { return {
|
|
@@ -17286,6 +17561,28 @@ const isRTL = (hostEl) => {
|
|
|
17286
17561
|
const isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
|
|
17287
17562
|
const isStr = (val) => typeof val === 'string'; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
17288
17563
|
const toLower = (val) => val.toLowerCase();
|
|
17564
|
+
/**
|
|
17565
|
+
* Normalizes a color value for use as a CSS custom property value: a bare
|
|
17566
|
+
* design token (--pine-color-foo) is wrapped in var(...), an already-wrapped
|
|
17567
|
+
* var(--token) is passed through unchanged, and anything else (a literal CSS
|
|
17568
|
+
* color, or currentColor) is passed through as-is. Mirrors the equivalent
|
|
17569
|
+
* utility in the `pine` repo's `libs/core/src/utils/utils.ts`
|
|
17570
|
+
* (`normalizeColorValue`) — duplicated here rather than imported because
|
|
17571
|
+
* `@pine-ds/core` already depends on `@pine-ds/icons`, so the reverse
|
|
17572
|
+
* dependency would be circular.
|
|
17573
|
+
*/
|
|
17574
|
+
const normalizeColorValue = (value) => {
|
|
17575
|
+
if (!isStr(value))
|
|
17576
|
+
return undefined;
|
|
17577
|
+
const trimmed = value.trim();
|
|
17578
|
+
if (trimmed === '')
|
|
17579
|
+
return undefined;
|
|
17580
|
+
if (trimmed.startsWith('var('))
|
|
17581
|
+
return trimmed;
|
|
17582
|
+
if (trimmed.startsWith('--'))
|
|
17583
|
+
return `var(${trimmed})`;
|
|
17584
|
+
return trimmed;
|
|
17585
|
+
};
|
|
17289
17586
|
/**
|
|
17290
17587
|
* Elements inside of web components sometimes need to inherit global attributes
|
|
17291
17588
|
* set on the host. For example, the inner input in `pds-input` should inherit
|
|
@@ -17447,9 +17744,10 @@ class PdsIcon {
|
|
|
17447
17744
|
this.setupInitialAriaLabel();
|
|
17448
17745
|
}
|
|
17449
17746
|
setCSSVariables() {
|
|
17747
|
+
var _a;
|
|
17450
17748
|
this.el.style.setProperty(`--dimension-icon-height`, this.iconSize());
|
|
17451
17749
|
this.el.style.setProperty(`--dimension-icon-width`, this.iconSize());
|
|
17452
|
-
this.el.style.setProperty(`--color-icon-fill`,
|
|
17750
|
+
this.el.style.setProperty(`--color-icon-fill`, (_a = normalizeColorValue(this.color)) !== null && _a !== void 0 ? _a : 'currentColor');
|
|
17453
17751
|
}
|
|
17454
17752
|
connectedCallback() {
|
|
17455
17753
|
// Handle re-connection during client-side navigation
|
|
@@ -17494,7 +17792,7 @@ class PdsIcon {
|
|
|
17494
17792
|
const shouldFlip = flipRtl || shouldIconAutoFlip;
|
|
17495
17793
|
// Use inherited aria-label if provided, otherwise fall back to auto-generated one
|
|
17496
17794
|
const finalAriaLabel = inheritedAttributes['aria-label'] || ariaLabel;
|
|
17497
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
17795
|
+
return (hAsync(Host, Object.assign({ key: '3af1c02235a2645bc3bb300831b19779cca78827', "aria-label": finalAriaLabel !== undefined && !this.hasAriaHidden() ? finalAriaLabel : null, alt: "", role: "img", class: Object.assign(Object.assign({}, createColorClasses(this.color)), { 'flip-rtl': shouldFlip, 'icon-rtl': shouldFlip && isRTL(this.el) }) }, inheritedAttributes), (hAsync("div", { class: "icon-inner" }))));
|
|
17498
17796
|
}
|
|
17499
17797
|
/*****
|
|
17500
17798
|
* Private Methods
|
|
@@ -17630,9 +17928,9 @@ class PdsImage {
|
|
|
17630
17928
|
this.loading = 'eager';
|
|
17631
17929
|
}
|
|
17632
17930
|
render() {
|
|
17633
|
-
return (hAsync(Host, { key: '
|
|
17931
|
+
return (hAsync(Host, { key: '1e8bb3882c2a629004ce1441e85d5c5a75a84e98', class: {
|
|
17634
17932
|
'pds-image': true,
|
|
17635
|
-
}, id: this.componentId }, hAsync("img", { key: '
|
|
17933
|
+
}, id: this.componentId }, hAsync("img", { key: 'b50b19d51431d45027c7a918a4ba4c38493741d5', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
|
|
17636
17934
|
}
|
|
17637
17935
|
static get style() { return pdsImageCss(); }
|
|
17638
17936
|
static get cmpMeta() { return {
|
|
@@ -17952,10 +18250,10 @@ class PdsInput {
|
|
|
17952
18250
|
'has-prepend': this.hasPrepend,
|
|
17953
18251
|
'has-append': this.hasAppend,
|
|
17954
18252
|
};
|
|
17955
|
-
return (hAsync(Host, { key: '
|
|
18253
|
+
return (hAsync(Host, { key: '75eb8bc6cda5e947f8677ebefe7995688f03f947', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-prefix": this.hasPrefix ? 'true' : null, "has-suffix": this.hasSuffix ? 'true' : null, "has-prepend": this.hasPrepend ? 'true' : null, "has-append": this.hasAppend ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null, "full-width": this.fullWidth ? 'true' : null }, hAsync("div", { key: '93d7f90b9a64daccea1533abc08a8cb18825b828', class: "pds-input" }, label && (hAsync("div", { key: '948109b3bfa1a1b8171572da9160425e3e35a7a6', class: {
|
|
17956
18254
|
'pds-input__label-wrapper': true,
|
|
17957
18255
|
'visually-hidden': this.hideLabel,
|
|
17958
|
-
} }, hAsync("label", { key: '
|
|
18256
|
+
} }, hAsync("label", { key: 'bb0e6c6febb97ad4aa3942ac5e67ac42dc1bde0a', htmlFor: componentId, class: "pds-input__label" }, hAsync("span", { key: 'c6a122f829aa3b92ccb715c3f3975f6baadb3028' }, label, this.required && hAsync("span", { key: 'dce7d1a9c010a545992734bd238e9f6a4ca7b4ce', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), hAsync("div", { key: '1b92ab5d649a4a9cf8112ea9b8a8a1095714f6d0', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), hAsync("input", Object.assign({ key: 'bc3c4b907312149d375bb78f9912e4501da59348', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": assignDescription(componentId, invalid, helperMessage, errorMessage), "aria-invalid": invalid ? "true" : undefined, autocomplete: this.autocomplete, disabled: disabled, id: componentId, max: this.max, maxlength: this.maxlength, min: this.min, minlength: this.minlength, name: this.name, pattern: this.pattern, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, step: this.step, type: this.type, value: value, onInput: this.onInputEvent, onChange: this.onChangeEvent, onBlur: this.onBlurEvent, onFocus: this.onFocusEvent, onKeyDown: this.onKeyDownEvent, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.renderSuffix(), this.renderAppend()), helperMessage && (hAsync("p", { key: 'f7bcbafc17a20310d602fce14a0adad522acbcb1', class: "pds-input__helper-message", id: messageId(componentId, 'helper') }, helperMessage)), errorMessage && (hAsync("p", { key: 'bbbd6dc3203b89e5759587147de74d2ce3ce6177', class: "pds-input__error-message", id: messageId(componentId, 'error') }, hAsync("pds-icon", { key: '68a6a92c82c1756ad99f431e0cb56756e3cdf75c', "aria-hidden": "true", icon: danger, size: "small" }), errorMessage)))));
|
|
17959
18257
|
}
|
|
17960
18258
|
static get formAssociated() { return true; }
|
|
17961
18259
|
get el() { return getElement(this); }
|
|
@@ -18067,8 +18365,8 @@ class PdsLink {
|
|
|
18067
18365
|
const targetValue = this.target || (this.external ? '_blank' : undefined);
|
|
18068
18366
|
const showExternalIcon = this.external;
|
|
18069
18367
|
const relValue = targetValue === '_blank' ? 'noopener noreferrer' : undefined;
|
|
18070
|
-
return (hAsync("a", { key: '
|
|
18071
|
-
hAsync("pds-icon", { key: '
|
|
18368
|
+
return (hAsync("a", { key: '3b6f9d19d7f50d0606cf5f3c3a97b85ee4aa63b0', class: this.classNames(), download: this.download, href: this.href, id: this.componentId, part: "link", "aria-current": this.active ? 'page' : undefined, target: targetValue, rel: relValue, style: this.setLinkStyles(), "data-turbo": this.turbo || undefined, "data-turbo-frame": this.turboFrame || undefined, "data-turbo-action": this.turboAction || undefined, "data-turbo-method": this.turboMethod || undefined, "data-turbo-confirm": this.turboConfirm || undefined, "data-turbo-stream": this.turboStream || undefined, "data-turbo-prefetch": this.turboPrefetch || undefined, "data-turbo-preload": this.turboPreload || undefined }, hAsync("slot", { key: 'a265f1c4c9b6ff089b23906d8f650bfd65b25013' }, this.href), showExternalIcon &&
|
|
18369
|
+
hAsync("pds-icon", { key: '9553a8256b6811296ea4b762e32662c1a2f4aecf', icon: launch, size: this.fontSize })));
|
|
18072
18370
|
}
|
|
18073
18371
|
static get style() { return pdsLinkCss(); }
|
|
18074
18372
|
static get cmpMeta() { return {
|
|
@@ -18167,7 +18465,7 @@ class PdsLoader {
|
|
|
18167
18465
|
'aria-live': 'polite',
|
|
18168
18466
|
};
|
|
18169
18467
|
this.hostKeeper.record(hostClass, {}, hostAttributes);
|
|
18170
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
18468
|
+
return (hAsync(Host, Object.assign({ key: 'c42c1aeec5c8db9a1065f35492734a8cb265f3ce', class: hostClass }, hostAttributes), this.variant === 'spinner' && (hAsync("div", { key: 'dc1b7943709d03e02467cca0817fb6a7ad5ed10a', class: "pds-loader--spinner" }, hAsync("svg", { key: 'db38e607541ac1eb91be87b2cd0240341c8fb51d', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, hAsync("defs", { key: 'd734ef70b0039758a25881c22bb3e6453ac40012' }, hAsync("linearGradient", { key: '697627f516c5f7b4cd5351dd39de231c0cb9e429', id: "spinner-secondHalf" }, hAsync("stop", { key: '03082c0ec354685eebf7d0132202d54b083d26df', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), hAsync("stop", { key: '181b661b36aeb44943e20dec513f7265a9487004', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), hAsync("linearGradient", { key: '67f6c51aefe99bcbfdb741290337364501fc4fcb', id: "spinner-firstHalf" }, hAsync("stop", { key: 'cb6adf27ecb06b42ba572a702153de960491b0b6', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), hAsync("stop", { key: 'aeebabfa1ac00391937388feefa120bd0bb4d26c', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), hAsync("g", { key: 'f06ca75e4df171b6db426fce9bc34076cfee5bca', class: "pds-loader__spinner-path" }, hAsync("path", { key: 'a278b37de8f77a1000efecb62b89e3f751712a98', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), hAsync("path", { key: 'a035add4d01b60bcebf7625c8730d6a41ddf40ff', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), hAsync("path", { key: '1189c8299d33a2a6bb6a8345b60f22bf4ad9beee', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (hAsync("div", { key: '39826fae20e8826d9c73cf57ba938583d610e1ea', class: "pds-loader--typing" }, hAsync("span", { key: '8f2b837c79548a1080710a7cc30c3be3a051e1dd' }), hAsync("span", { key: '8efb1193ef51f110950861767eccc3896e90b81e' }), hAsync("span", { key: '366f2d205adbb043691c253cff17d2d29d56a2cc' }))), hAsync("div", { key: 'aeaa4aa12863b34088e84fd2791c2ce32dc05248', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, hAsync("slot", { key: '7a8ec45aed1cd6f9e60f4db2ec5376439fa41c81', name: "label" }, "Loading..."))));
|
|
18171
18469
|
}
|
|
18172
18470
|
get el() { return getElement(this); }
|
|
18173
18471
|
static get watchers() { return {
|
|
@@ -18714,14 +19012,14 @@ class PdsModal {
|
|
|
18714
19012
|
}
|
|
18715
19013
|
render() {
|
|
18716
19014
|
const [sizeClass = 'md', customSize] = this.resolveSize();
|
|
18717
|
-
return (hAsync("dialog", { key: '
|
|
19015
|
+
return (hAsync("dialog", { key: '12ea38928ea287f16ffa33e246caa2bfde6fc130', class: {
|
|
18718
19016
|
'pds-modal__backdrop': true,
|
|
18719
19017
|
'open': this.open
|
|
18720
|
-
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, hAsync("div", { key: '
|
|
19018
|
+
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, hAsync("div", { key: 'b9d83cabda56c315d9115f7030e3bdbcf923ec08', class: {
|
|
18721
19019
|
'pds-modal': true,
|
|
18722
19020
|
[`pds-modal--${sizeClass}`]: true,
|
|
18723
19021
|
'pds-modal--scrollable': this.scrollable
|
|
18724
|
-
}, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, hAsync("slot", { key: '
|
|
19022
|
+
}, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, hAsync("slot", { key: '3c5edad1482cb124e503197adf411890573b076d' }))));
|
|
18725
19023
|
}
|
|
18726
19024
|
get el() { return getElement(this); }
|
|
18727
19025
|
static get watchers() { return {
|
|
@@ -18938,10 +19236,10 @@ class PdsModalContent {
|
|
|
18938
19236
|
render() {
|
|
18939
19237
|
// Only apply max-height style if it's not 'none'
|
|
18940
19238
|
const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
|
|
18941
|
-
return (hAsync(Host, { key: '
|
|
19239
|
+
return (hAsync(Host, { key: 'd41d5632eb6a2dafe921546af60f835d3545cc4f' }, hAsync("div", { key: '741ac9f28149039ecf5051142a939ab62ef26a87', class: {
|
|
18942
19240
|
'pds-modal-content': true,
|
|
18943
19241
|
[`pds-modal-content--border-${this.border}`]: true
|
|
18944
|
-
}, style: styleObj, tabindex: "-1" }, hAsync("slot", { key: '
|
|
19242
|
+
}, style: styleObj, tabindex: "-1" }, hAsync("slot", { key: '090a52e9425d4df61c2d8216cc19f0925babdffe' }))));
|
|
18945
19243
|
}
|
|
18946
19244
|
get el() { return getElement(this); }
|
|
18947
19245
|
static get style() { return pdsModalContentCss(); }
|
|
@@ -18972,7 +19270,7 @@ class PdsModalFooter {
|
|
|
18972
19270
|
unwrapReconnectedContent(this.el.querySelector('.pds-modal__footer'), '.pds-modal__footer');
|
|
18973
19271
|
}
|
|
18974
19272
|
render() {
|
|
18975
|
-
return (hAsync("footer", { key: '
|
|
19273
|
+
return (hAsync("footer", { key: '030153b84f1ea1cb133c9ccec3ad86583995974f', class: "pds-modal__footer" }, hAsync("slot", { key: '3a479e7047f3e845a65c37d60539648c8ff78602' })));
|
|
18976
19274
|
}
|
|
18977
19275
|
get el() { return getElement(this); }
|
|
18978
19276
|
static get style() { return pdsModalFooterCss(); }
|
|
@@ -19000,7 +19298,7 @@ class PdsModalHeader {
|
|
|
19000
19298
|
unwrapReconnectedContent(this.el.querySelector('.pds-modal__header'), '.pds-modal__header');
|
|
19001
19299
|
}
|
|
19002
19300
|
render() {
|
|
19003
|
-
return (hAsync("header", { key: '
|
|
19301
|
+
return (hAsync("header", { key: 'ee3ac5fb9b00a943aa86c3434ea07291b74d776c', class: "pds-modal__header" }, hAsync("slot", { key: '0b0f7ff257635723099c536648a826be8dcc05e7' })));
|
|
19004
19302
|
}
|
|
19005
19303
|
get el() { return getElement(this); }
|
|
19006
19304
|
static get style() { return pdsModalHeaderCss(); }
|
|
@@ -20248,10 +20546,10 @@ class PdsMultiselect {
|
|
|
20248
20546
|
}
|
|
20249
20547
|
render() {
|
|
20250
20548
|
const hasSelections = this.selectedItems.length > 0;
|
|
20251
|
-
return (hAsync(Host, { key: '
|
|
20549
|
+
return (hAsync(Host, { key: '0ef6791666063e0d951d28f980b3bca89cf24287', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: 'f0ccbabfbd2dcf38f6df52f73f2152eb4bd2828e', class: "pds-multiselect", onFocusout: this.handleContainerFocusOut }, this.label && (hAsync("label", { key: '88e01c744644ce1f75c8d5b71dfaeeb79d1ef7df', id: `${this.componentId}-label`, htmlFor: this.componentId, class: {
|
|
20252
20550
|
'pds-multiselect__label': true,
|
|
20253
20551
|
'visually-hidden': this.hideLabel,
|
|
20254
|
-
} }, this.label)), hAsync("div", { key: '
|
|
20552
|
+
} }, this.label)), hAsync("div", { key: '0bf4a3b1378ff18e6d6b449507ebbae1bfb279e4', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), style: { width: this.triggerWidth } }, this.slottedTriggerEl ? (hAsync("slot", { name: "trigger" })) : this.selectedDisplay === 'pill' && this.pillPosition === 'inline' ? (hAsync("div", { ref: el => (this.pillInlineTriggerEl = el || undefined), part: "trigger", class: {
|
|
20255
20553
|
'pds-multiselect__trigger': true,
|
|
20256
20554
|
'pds-multiselect__trigger--open': this.isOpen,
|
|
20257
20555
|
'pds-multiselect__trigger--disabled': this.disabled,
|
|
@@ -20267,7 +20565,7 @@ class PdsMultiselect {
|
|
|
20267
20565
|
}, id: this.componentId, disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-describedby": assignDescription(this.componentId, this.invalid || !!this.errorMessage, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid || !!this.errorMessage ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hAsync("span", { class: {
|
|
20268
20566
|
'pds-multiselect__trigger-text': true,
|
|
20269
20567
|
'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
|
|
20270
|
-
} }, this.getTriggerText()), hAsync("pds-icon", { "aria-hidden": "true", class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), hAsync("span", { key: '
|
|
20568
|
+
} }, this.getTriggerText()), hAsync("pds-icon", { "aria-hidden": "true", class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), hAsync("span", { key: '5202a263b219d06891bda739f98db0162bf33c48', class: "visually-hidden", "aria-live": "polite", "aria-atomic": "true" }, this.removalAnnouncement), this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (hAsync("p", { key: '47f7b55863c5b72d41c4ef1893b9364988fc0b56', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("p", { key: '3930dc30b2df7179d178873c470aa1da0f6f258c', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'e31d55db3fd0173c56faa23e34e0be92371983d4', icon: danger, size: "small" }), this.errorMessage)), hAsync("div", { key: 'b3326cc1a5e5886be05327a066e0a7ddd36ccefc', style: { display: 'none' } }, hAsync("slot", { key: '91559cb9510abce6084348a17516460fd8545ef7' })))));
|
|
20271
20569
|
}
|
|
20272
20570
|
static get formAssociated() { return true; }
|
|
20273
20571
|
get el() { return getElement(this); }
|
|
@@ -20363,6 +20661,48 @@ class PdsMultiselect {
|
|
|
20363
20661
|
}; }
|
|
20364
20662
|
}
|
|
20365
20663
|
|
|
20664
|
+
/**
|
|
20665
|
+
* Escapes a string so it's safe to interpolate into a CSS identifier (an id selector like `#${id}`)
|
|
20666
|
+
* or into CSS text (a stylesheet rule referencing that id). Equivalent to the native `CSS.escape`,
|
|
20667
|
+
* reimplemented because Stencil's unit-test DOM (`newSpecPage`'s mock-doc) doesn't provide it.
|
|
20668
|
+
* @param value - The string to escape, e.g. a consumer-supplied id
|
|
20669
|
+
*/
|
|
20670
|
+
const cssEscape = (value) => {
|
|
20671
|
+
const string = String(value);
|
|
20672
|
+
const length = string.length;
|
|
20673
|
+
const firstCodeUnit = string.charCodeAt(0);
|
|
20674
|
+
let result = '';
|
|
20675
|
+
for (let index = 0; index < length; index++) {
|
|
20676
|
+
const codeUnit = string.charCodeAt(index);
|
|
20677
|
+
if (codeUnit === 0x0000) {
|
|
20678
|
+
result += '�';
|
|
20679
|
+
continue;
|
|
20680
|
+
}
|
|
20681
|
+
if ((codeUnit >= 0x0001 && codeUnit <= 0x001f) ||
|
|
20682
|
+
codeUnit === 0x007f ||
|
|
20683
|
+
(index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
|
|
20684
|
+
(index === 1 && codeUnit >= 0x0030 && codeUnit <= 0x0039 && firstCodeUnit === 0x002d)) {
|
|
20685
|
+
result += `\\${codeUnit.toString(16)} `;
|
|
20686
|
+
continue;
|
|
20687
|
+
}
|
|
20688
|
+
if (index === 0 && length === 1 && codeUnit === 0x002d) {
|
|
20689
|
+
result += `\\${string.charAt(index)}`;
|
|
20690
|
+
continue;
|
|
20691
|
+
}
|
|
20692
|
+
if (codeUnit >= 0x0080 ||
|
|
20693
|
+
codeUnit === 0x002d ||
|
|
20694
|
+
codeUnit === 0x005f ||
|
|
20695
|
+
(codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
|
|
20696
|
+
(codeUnit >= 0x0041 && codeUnit <= 0x005a) ||
|
|
20697
|
+
(codeUnit >= 0x0061 && codeUnit <= 0x007a)) {
|
|
20698
|
+
result += string.charAt(index);
|
|
20699
|
+
continue;
|
|
20700
|
+
}
|
|
20701
|
+
result += `\\${string.charAt(index)}`;
|
|
20702
|
+
}
|
|
20703
|
+
return result;
|
|
20704
|
+
};
|
|
20705
|
+
|
|
20366
20706
|
const pdsPopoverCss = () => `:host{--sizing-max-width-default:352px;display:inline-block}:host .pds-popover__trigger-wrapper{display:inline-block}:host .pds-popover__content-slot-wrapper{display:none}`;
|
|
20367
20707
|
|
|
20368
20708
|
/**
|
|
@@ -20532,7 +20872,8 @@ class PdsPopover {
|
|
|
20532
20872
|
this.triggerObserver = null;
|
|
20533
20873
|
if (this.triggerEl == null || typeof MutationObserver === 'undefined')
|
|
20534
20874
|
return;
|
|
20535
|
-
|
|
20875
|
+
// Capped against a script that keeps undoing it; opening and closing still write it directly.
|
|
20876
|
+
this.triggerObserver = new MutationObserver(limitRestores(() => this.linkTriggerToPortal(), 'pds-popover: stopped restoring its trigger ARIA, as another script keeps changing it. It may be wrong until the popover opens or closes.', this.triggerEl));
|
|
20536
20877
|
this.triggerObserver.observe(this.triggerEl, {
|
|
20537
20878
|
attributes: true,
|
|
20538
20879
|
attributeFilter: ['aria-expanded', 'aria-controls'],
|
|
@@ -20542,9 +20883,9 @@ class PdsPopover {
|
|
|
20542
20883
|
// This mirrors the native Popover API's accessibility behavior
|
|
20543
20884
|
linkTriggerToPortal() {
|
|
20544
20885
|
if (this.triggerEl == null || this.portalEl == null)
|
|
20545
|
-
return;
|
|
20886
|
+
return false;
|
|
20546
20887
|
// Skips values already in place, so the trigger observer's own callback doesn't loop.
|
|
20547
|
-
setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
20888
|
+
return setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
20548
20889
|
}
|
|
20549
20890
|
// componentDidLoad doesn't run again when a popover comes back, so rebuild whatever
|
|
20550
20891
|
// disconnectedCallback tore down. Each step is a no-op when nothing was.
|
|
@@ -20651,22 +20992,25 @@ class PdsPopover {
|
|
|
20651
20992
|
if (!this.portalEl)
|
|
20652
20993
|
return;
|
|
20653
20994
|
const portalId = this.portalEl.id;
|
|
20995
|
+
// componentId comes from the consumer, so it can carry characters cssEscape needs to
|
|
20996
|
+
// neutralize before the id is used as a selector or interpolated into stylesheet text.
|
|
20997
|
+
const escapedPortalId = cssEscape(portalId);
|
|
20654
20998
|
// Check if style element already exists
|
|
20655
|
-
const existingStyle = document.querySelector(`style[data-pds-popover-focus="${
|
|
20999
|
+
const existingStyle = document.querySelector(`style[data-pds-popover-focus="${escapedPortalId}"]`);
|
|
20656
21000
|
if (existingStyle)
|
|
20657
21001
|
return;
|
|
20658
21002
|
// Create style element with Pine's focus ring styles and dark mode border
|
|
20659
21003
|
const styleEl = document.createElement('style');
|
|
20660
21004
|
styleEl.setAttribute('data-pds-popover-focus', portalId);
|
|
20661
21005
|
styleEl.textContent = `
|
|
20662
|
-
#${
|
|
21006
|
+
#${escapedPortalId}:focus {
|
|
20663
21007
|
outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;
|
|
20664
21008
|
outline-offset: var(--pine-border-width, 1px);
|
|
20665
21009
|
}
|
|
20666
|
-
#${
|
|
21010
|
+
#${escapedPortalId}:focus:not(:focus-visible) {
|
|
20667
21011
|
outline: none;
|
|
20668
21012
|
}
|
|
20669
|
-
[data-theme="dark"] #${
|
|
21013
|
+
[data-theme="dark"] #${escapedPortalId} {
|
|
20670
21014
|
border: var(--pine-border);
|
|
20671
21015
|
}
|
|
20672
21016
|
`;
|
|
@@ -20725,7 +21069,7 @@ class PdsPopover {
|
|
|
20725
21069
|
}
|
|
20726
21070
|
// Remove the associated focus style element
|
|
20727
21071
|
const portalId = this.portalEl.id;
|
|
20728
|
-
const styleEl = document.querySelector(`style[data-pds-popover-focus="${portalId}"]`);
|
|
21072
|
+
const styleEl = document.querySelector(`style[data-pds-popover-focus="${cssEscape(portalId)}"]`);
|
|
20729
21073
|
if (styleEl && styleEl.parentNode) {
|
|
20730
21074
|
styleEl.parentNode.removeChild(styleEl);
|
|
20731
21075
|
}
|
|
@@ -21001,7 +21345,7 @@ class PdsPopover {
|
|
|
21001
21345
|
}, 16); // ~1 frame at 60fps
|
|
21002
21346
|
}
|
|
21003
21347
|
render() {
|
|
21004
|
-
return (hAsync(Host, { key: '
|
|
21348
|
+
return (hAsync(Host, { key: 'd804db8c73e0dc2acf0d1bbca20edb77993ff7fd', id: this.componentId }, hAsync("span", { key: '5408d1856c9b13b327ea13b43cffc23af925a82f', class: "pds-popover__trigger-wrapper" }, hAsync("slot", { key: '9d0ff01292c67bdaa88d49114162c3c65ff8a20d', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), hAsync("div", { key: 'cdd38016453ea1838d5718fb8e190cd4304ac8cc', class: "pds-popover__content-slot-wrapper" }, hAsync("slot", { key: '9faf60d7be7a2ff3c5fe6c3e4de374bafadf848a', onSlotchange: this.handleContentSlotChange }))));
|
|
21005
21349
|
}
|
|
21006
21350
|
get el() { return getElement(this); }
|
|
21007
21351
|
static get watchers() { return {
|
|
@@ -21063,10 +21407,10 @@ class PdsProgress {
|
|
|
21063
21407
|
this.hostKeeper.disconnect();
|
|
21064
21408
|
}
|
|
21065
21409
|
render() {
|
|
21066
|
-
const normalizedFillColor = normalizeColorValue(this.fillColor);
|
|
21410
|
+
const normalizedFillColor = normalizeColorValue$1(this.fillColor);
|
|
21067
21411
|
const hostClass = this.animated ? { 'is-animated': this.animated } : '';
|
|
21068
21412
|
this.hostKeeper.record(hostClass);
|
|
21069
|
-
return (hAsync(Host, { key: '
|
|
21413
|
+
return (hAsync(Host, { key: 'a224e1e9bc50433553ab8bf4b0d772f01148ee76', class: hostClass }, hAsync("div", { key: '261742044f3d68c204cbf640cc4447eb6d74df11', class: "pds-progress" }, hAsync("label", { key: 'd686bdc6ab450bf8c14dd56077525a3139593f46', class: "pds-progress__label", htmlFor: this.componentId }, this.label), hAsync("progress", { key: 'c716e977a952a628aec600fa680aa9c3b8d0e996', id: this.componentId, max: "100", style: normalizedFillColor ? { '--color-progress-fill': normalizedFillColor } : {}, value: this.percent })), this.showPercent && hAsync("div", { key: '44176a580b435f69993be4a60ee2e888b87e10fb', class: "pds-progress__percentage" }, this.percent, "%")));
|
|
21070
21414
|
}
|
|
21071
21415
|
get el() { return getElement(this); }
|
|
21072
21416
|
static get style() { return pdsProgressCss(); }
|
|
@@ -21101,7 +21445,7 @@ class PdsProperty {
|
|
|
21101
21445
|
this.icon = 'star';
|
|
21102
21446
|
}
|
|
21103
21447
|
render() {
|
|
21104
|
-
return (hAsync(Host, { key: '
|
|
21448
|
+
return (hAsync(Host, { key: 'd599b62be4bacf1d89afcc26b14fc93bdc9bb3a4', id: this.componentId }, hAsync("pds-box", { key: 'd7f80f6598615c761d672893c8acab09bd9ea33f', "align-items": "center", gap: "xs" }, hAsync("pds-icon", { key: '15a6a6545c2cd2332bd830451106b7b08adc39ff', icon: this.icon, size: "var(--pine-dimension-sm)", "aria-hidden": "true" }), hAsync("slot", { key: '4e5661563b99ec56189447faabcdd1ae631159b2' }))));
|
|
21105
21449
|
}
|
|
21106
21450
|
static get style() { return pdsPropertyCss(); }
|
|
21107
21451
|
static get cmpMeta() { return {
|
|
@@ -21220,13 +21564,13 @@ class PdsRadio {
|
|
|
21220
21564
|
}
|
|
21221
21565
|
render() {
|
|
21222
21566
|
const renderLabelAndMessages = () => [
|
|
21223
|
-
hAsync("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, hAsync("input", { key: '
|
|
21567
|
+
hAsync("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, hAsync("input", { key: 'ccd618855831bcee309e815f2cd2712fd4e8fe1f', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), hAsync("span", { key: '2e372a880c28f48fb804bac2518208082c141fad', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
|
|
21224
21568
|
this.helperMessage && (hAsync("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
|
|
21225
|
-
this.errorMessage && (hAsync("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '
|
|
21569
|
+
this.errorMessage && (hAsync("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '889d502575f6a162f450b6b58d76a6f6f1c74e4b', icon: danger, size: "small" }), this.errorMessage))
|
|
21226
21570
|
];
|
|
21227
21571
|
const hostClass = this.classNames();
|
|
21228
21572
|
this.hostKeeper.record(hostClass);
|
|
21229
|
-
return (hAsync(Host, { key: '
|
|
21573
|
+
return (hAsync(Host, { key: '374003032b28407581a55f1fb0a304c49acf3c16', class: hostClass }, this.hasImage() && (hAsync("div", { key: '7eeb516267de1afcfa85fc7567999db488c2f4f5', class: "pds-radio__image-container", part: "image-container" }, hAsync("slot", { key: 'a312fea06f0c015bffab3bb392ff04d4913fd1c0', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (hAsync("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
|
|
21230
21574
|
}
|
|
21231
21575
|
get el() { return getElement(this); }
|
|
21232
21576
|
static get style() { return labelCss$3() + pdsRadioCss(); }
|
|
@@ -21418,13 +21762,13 @@ class PdsRadioGroup {
|
|
|
21418
21762
|
render() {
|
|
21419
21763
|
const gapValue = this.getGapValue();
|
|
21420
21764
|
const ariaDescribedBy = this.getAriaDescribedBy();
|
|
21421
|
-
return (hAsync(Host, { key: '
|
|
21765
|
+
return (hAsync(Host, { key: 'bf8063c1a99e272bb3f6bc647998a6ef103f8a71', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
|
|
21422
21766
|
'--pds-radio-group-gap': gapValue,
|
|
21423
|
-
} }, this.groupLabel && (hAsync("div", { key: '
|
|
21767
|
+
} }, this.groupLabel && (hAsync("div", { key: '8564ed3f8f99cdc1a0e5b189aacc6960923eb5f7', class: "pds-radio-group__label" }, this.groupLabel)), hAsync("div", { key: '2309c9373790182cde030c1dbda88fa3bdcaaf12', class: {
|
|
21424
21768
|
'pds-radio-group__radios': true,
|
|
21425
21769
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
21426
21770
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
21427
|
-
} }, hAsync("slot", { key: '
|
|
21771
|
+
} }, hAsync("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (hAsync("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: 'd242da328731e55fa52d8e624fdfc750bfa6cce4', icon: danger, size: "small" }), this.errorMessage))));
|
|
21428
21772
|
}
|
|
21429
21773
|
get el() { return getElement(this); }
|
|
21430
21774
|
static get watchers() { return {
|
|
@@ -21533,7 +21877,7 @@ class PdsRow {
|
|
|
21533
21877
|
'min-height': this.minHeight,
|
|
21534
21878
|
}));
|
|
21535
21879
|
this.hostKeeper.record(`pds-row ${rowClasses}`, rowInlineStyles);
|
|
21536
|
-
return hAsync(Host, { key: '
|
|
21880
|
+
return hAsync(Host, { key: '78a505fef7132f9545916155d2485a6d2df8f4a5', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
|
|
21537
21881
|
}
|
|
21538
21882
|
get el() { return getElement(this); }
|
|
21539
21883
|
static get style() { return pdsRowCss(); }
|
|
@@ -21805,7 +22149,7 @@ class PdsSelect {
|
|
|
21805
22149
|
'has-action': hasAction && !this.hideLabel ? 'true' : null,
|
|
21806
22150
|
};
|
|
21807
22151
|
this.hostKeeper.record(hostClass, {}, hostAttributes);
|
|
21808
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22152
|
+
return (hAsync(Host, Object.assign({ key: '343ed671e67dd1d6f9eb284b07e06d59877c64e9', class: hostClass }, hostAttributes), hAsync("div", { key: '650aed0869b02f658feb16ee99f17e1cd22e5a8e', class: "pds-select" }, !this.hideLabel && (hAsync("div", { key: '74739461acbea33c92279ec8ec9042d6af1773c1', class: "pds-select__label-wrapper" }, hAsync("label", { key: '1ad96ffd243000358edfbd79054ee770e1ba97d3', htmlFor: this.componentId }, hAsync("span", { key: 'b832868db4f9cd4fd2f8313054d2e96e106189ab', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), hAsync("select", { key: 'e83c1a1a0a5646fc8abf9e50bc374f52b56be773', "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-label": this.hideLabel ? this.label : undefined, autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onBlur: this.onBlur, onChange: this.onSelectUpdate, onFocus: this.onFocus, onKeyDown: this.onKeyDown, part: "select", required: this.required, ref: (el) => (this.selectEl = el) }), hAsync("div", { key: 'a34880120b88124b5122350856d023368f96abf7', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, hAsync("slot", { key: 'df6abaf6a630761a32b263813181ff3453757e0d', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && hAsync("pds-icon", { key: 'f9197284ef9965d693242a652b583f48bc3d7097', "aria-hidden": "true", class: "pds-select__select-icon", icon: enlarge }))));
|
|
21809
22153
|
}
|
|
21810
22154
|
static get formAssociated() { return true; }
|
|
21811
22155
|
get el() { return getElement(this); }
|
|
@@ -24564,7 +24908,7 @@ class PdsSortable {
|
|
|
24564
24908
|
render() {
|
|
24565
24909
|
const classNames = this.classNames();
|
|
24566
24910
|
this.hostKeeper.record(classNames);
|
|
24567
|
-
return (hAsync(Host, { key: '
|
|
24911
|
+
return (hAsync(Host, { key: 'a0e532d31561748b4632a6be9163562f990af804', class: classNames, id: this.componentId }, hAsync("slot", { key: 'd1b0defb683f841e6708374fff4bf62eb7fd5080' })));
|
|
24568
24912
|
}
|
|
24569
24913
|
get el() { return getElement(this); }
|
|
24570
24914
|
static get watchers() { return {
|
|
@@ -24639,7 +24983,7 @@ class PdsSortableItem {
|
|
|
24639
24983
|
}
|
|
24640
24984
|
render() {
|
|
24641
24985
|
this.hostKeeper.record('pds-sortable-item');
|
|
24642
|
-
return (hAsync(Host, { key: '
|
|
24986
|
+
return (hAsync(Host, { key: '2065ccb474ae4b7032edc3c37aa6855f3048909d', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (hAsync("div", { key: '32385cc94837a3d0bc1c496615135c79274afe35', class: "pds-sortable-item__handle" }, hAsync("pds-icon", { key: 'ea94e28b2867aa20622ca073dc31d3b4a11eebbb', "aria-hidden": "true", icon: handle }))), hAsync("slot", { key: 'fb18aa90be0b8fa3832a5dd2b02a7b571205341f' }), this.enableActions && (hAsync("div", { key: '4c6e59d77a7b2183552533a544f4a70ce0cc7011', class: "pds-sortable-item__actions" }, hAsync("slot", { key: '497b1ff88436175d9365a28032e109b6fa118e44', name: "sortable-item-actions" })))));
|
|
24643
24987
|
}
|
|
24644
24988
|
get el() { return getElement(this); }
|
|
24645
24989
|
static get style() { return pdsSortableItemCss(); }
|
|
@@ -24762,9 +25106,9 @@ class PdsSwitch {
|
|
|
24762
25106
|
const hostClass = this.switchClassNames();
|
|
24763
25107
|
const ariaDisabled = this.disabled ? 'true' : null;
|
|
24764
25108
|
this.hostKeeper.record(hostClass, {}, { 'aria-disabled': ariaDisabled });
|
|
24765
|
-
return (hAsync(Host, { key: '
|
|
24766
|
-
hAsync("div", { key: '
|
|
24767
|
-
hAsync("div", { key: '
|
|
25109
|
+
return (hAsync(Host, { key: 'ee8576e523348ff9eed1b6087626849bb0966608', class: hostClass, "aria-disabled": ariaDisabled }, hAsync("label", { key: '09433b5356d718be65f4f2eb61f35fff1d000e10', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: 'f996a0fad56119674cfb7d95e1444bf411b64396', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), hAsync("span", { key: '4b23305d3cc0f5b37b23c6b79a14cfba57c16816', class: this.hideLabel ? 'visually-hidden' : '' }, hAsync("slot", { key: '258b5ccf0d4b01518df3a37772d694cb37569ffa', name: "label", onSlotchange: this.updateHasLabelSlot }), !this.hasLabelSlot && this.label)), this.helperMessage &&
|
|
25110
|
+
hAsync("div", { key: 'c8196fa2ce832de3a8c6d987a78fd65d791c4c59', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
25111
|
+
hAsync("div", { key: '948894dd2e642689af6cad545a0b31f7c4711d87', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: 'd4b72b49bfd38a396b8f7c0686e1b2ef92d65491', icon: danger, size: "small" }), this.errorMessage)));
|
|
24768
25112
|
}
|
|
24769
25113
|
static get formAssociated() { return true; }
|
|
24770
25114
|
get el() { return getElement(this); }
|
|
@@ -24806,6 +25150,7 @@ class PdsTab {
|
|
|
24806
25150
|
constructor(hostRef) {
|
|
24807
25151
|
registerInstance(this, hostRef);
|
|
24808
25152
|
this.pdsTabClick = createEvent(this, "pdsTabClick");
|
|
25153
|
+
this.hostKeeper = new HostStylingKeeper();
|
|
24809
25154
|
/**
|
|
24810
25155
|
* Determines the tab's disabled state.
|
|
24811
25156
|
* @defaultValue false
|
|
@@ -24824,6 +25169,12 @@ class PdsTab {
|
|
|
24824
25169
|
/** @internal */
|
|
24825
25170
|
this.selected = false;
|
|
24826
25171
|
}
|
|
25172
|
+
connectedCallback() {
|
|
25173
|
+
this.hostKeeper.connect(this.el);
|
|
25174
|
+
}
|
|
25175
|
+
disconnectedCallback() {
|
|
25176
|
+
this.hostKeeper.disconnect();
|
|
25177
|
+
}
|
|
24827
25178
|
// Unwraps a nested <a>/<button> left by a page-cache (Turbo, bfcache) reconnect.
|
|
24828
25179
|
componentDidRender() {
|
|
24829
25180
|
unwrapReconnectedContent(this.el.querySelector('.pds-tab__content'), 'a.pds-tab, button.pds-tab', '.pds-tab__content');
|
|
@@ -24859,6 +25210,9 @@ class PdsTab {
|
|
|
24859
25210
|
return classes.filter(Boolean).join(' ');
|
|
24860
25211
|
}
|
|
24861
25212
|
render() {
|
|
25213
|
+
// The docs show consumers omitting `slot`, so server HTML doesn't carry it — a DOM morph
|
|
25214
|
+
// that strips it leaves this tab unslotted, and pds-tabs has no default slot. Put it back.
|
|
25215
|
+
this.hostKeeper.record('', {}, { slot: 'tabs' });
|
|
24862
25216
|
const availabilityTabEdgeInlineStart = (hAsync("span", { class: "pds-tab-edge", role: "presentation" }));
|
|
24863
25217
|
const availabilityTabEdgeInlineEnd = (hAsync("span", { class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
|
|
24864
25218
|
const content = (hAsync(Fragment, null, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, hAsync("div", { class: "pds-tab__content" }, hAsync("slot", null))));
|
|
@@ -25178,7 +25532,7 @@ class PdsTableBody {
|
|
|
25178
25532
|
registerInstance(this, hostRef);
|
|
25179
25533
|
}
|
|
25180
25534
|
render() {
|
|
25181
|
-
return (hAsync(Host, { key: '
|
|
25535
|
+
return (hAsync(Host, { key: '817532e93c8f91ef64cd0f90aa6c4372c3b7d83f', role: "rowgroup", part: "body" }, hAsync("slot", { key: '296ba876c6716e85252a06008bd55d59624223e3' })));
|
|
25182
25536
|
}
|
|
25183
25537
|
static get style() { return pdsTableBodyCss(); }
|
|
25184
25538
|
static get cmpMeta() { return {
|
|
@@ -25316,11 +25670,11 @@ class PdsTableCell {
|
|
|
25316
25670
|
return classNames.join(' ');
|
|
25317
25671
|
}
|
|
25318
25672
|
render() {
|
|
25319
|
-
return (hAsync(Host, { key: '
|
|
25673
|
+
return (hAsync(Host, { key: 'bedaeeb5723299656f872a760ed1dd80c7fe8793', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
|
|
25320
25674
|
this.tableRef.fixedColumn &&
|
|
25321
25675
|
this.tableRef.selectable
|
|
25322
25676
|
? { '--fixed-cell-position': '40px' }
|
|
25323
|
-
: {} }, hAsync("slot", { key: '
|
|
25677
|
+
: {} }, hAsync("slot", { key: '45182ee3e004097660432f552780b3d27671bd46' })));
|
|
25324
25678
|
}
|
|
25325
25679
|
get hostElement() { return getElement(this); }
|
|
25326
25680
|
static get watchers() { return {
|
|
@@ -25389,7 +25743,7 @@ class PdsTableHead {
|
|
|
25389
25743
|
}
|
|
25390
25744
|
}
|
|
25391
25745
|
render() {
|
|
25392
|
-
return (hAsync(Host, { key: '
|
|
25746
|
+
return (hAsync(Host, { key: 'de3faae735e90f5fde1258b5acb826f5f9dbd170', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-head-cell", { key: 'e590e57c8b37ec0ad18e96077401c4692bbd45a4', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, !this.tableRef.disableSelectAll && (hAsync("pds-checkbox", { key: '44ca7eda63185672939909e121a86e6502080a7d', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" })))), hAsync("slot", { key: '0671df85d7989cff7266bfd3d1b4d62b332d2e81' })));
|
|
25393
25747
|
}
|
|
25394
25748
|
get hostElement() { return getElement(this); }
|
|
25395
25749
|
static get style() { return pdsTableHeadCss(); }
|
|
@@ -25610,11 +25964,11 @@ class PdsTableHeadCell {
|
|
|
25610
25964
|
return classNames.join(' ');
|
|
25611
25965
|
}
|
|
25612
25966
|
render() {
|
|
25613
|
-
return (hAsync(Host, { key: '
|
|
25967
|
+
return (hAsync(Host, { key: '13de42d136c5b037cd1545cd5b789b4660e23b87', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
|
|
25614
25968
|
this.tableRef.fixedColumn &&
|
|
25615
25969
|
this.tableRef.selectable
|
|
25616
25970
|
? { '--fixed-cell-position': '40px' }
|
|
25617
|
-
: {} }, hAsync("slot", { key: '
|
|
25971
|
+
: {} }, hAsync("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (hAsync("pds-icon", { key: 'cba838fa029b280561676c2b57af7f8f00055511', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
|
|
25618
25972
|
}
|
|
25619
25973
|
get hostElement() { return getElement(this); }
|
|
25620
25974
|
static get style() { return pdsTableHeadCellCss(); }
|
|
@@ -25780,7 +26134,7 @@ class PdsTableRow {
|
|
|
25780
26134
|
}
|
|
25781
26135
|
}
|
|
25782
26136
|
render() {
|
|
25783
|
-
return (hAsync(Host, { key: '
|
|
26137
|
+
return (hAsync(Host, { key: '5323521abc5c2464299cf77520fb38ec81297866', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (hAsync("pds-table-cell", { key: 'eb94dd282f885d3466b6177b2454cbcc4f932466', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, hAsync("pds-checkbox", { key: '222eaaedd4bebddc18cebf01bf4da81004773a96', componentId: this.generateUniqueId(), onPdsCheckboxChange: this.handleCheckboxChange, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), hAsync("slot", { key: '010f222fa02b1809ff818f7a030c2a12fc3e3abb' })));
|
|
25784
26138
|
}
|
|
25785
26139
|
get hostElement() { return getElement(this); }
|
|
25786
26140
|
static get style() { return pdsTableRowCss(); }
|
|
@@ -25807,6 +26161,7 @@ const pdsTabpanelCss = () => `:host{display:block}:host(.pds-tabpanel--stretch-a
|
|
|
25807
26161
|
class PdsTabpanel {
|
|
25808
26162
|
constructor(hostRef) {
|
|
25809
26163
|
registerInstance(this, hostRef);
|
|
26164
|
+
this.hostKeeper = new HostStylingKeeper();
|
|
25810
26165
|
/**
|
|
25811
26166
|
* Keeps track of the tabpanel selected state, this property is passed by parent component
|
|
25812
26167
|
*/
|
|
@@ -25818,12 +26173,22 @@ class PdsTabpanel {
|
|
|
25818
26173
|
/** @internal */
|
|
25819
26174
|
this.stretch = false;
|
|
25820
26175
|
}
|
|
26176
|
+
connectedCallback() {
|
|
26177
|
+
this.hostKeeper.connect(this.el);
|
|
26178
|
+
}
|
|
26179
|
+
disconnectedCallback() {
|
|
26180
|
+
this.hostKeeper.disconnect();
|
|
26181
|
+
}
|
|
25821
26182
|
// Unwraps a nested .pds-tabpanel left by a page-cache (Turbo, bfcache) reconnect.
|
|
25822
26183
|
componentDidRender() {
|
|
25823
26184
|
unwrapReconnectedContent(this.el.querySelector('.pds-tabpanel'), '.pds-tabpanel');
|
|
25824
26185
|
}
|
|
25825
26186
|
render() {
|
|
25826
|
-
|
|
26187
|
+
const hostClass = this.stretch && this.selected ? "pds-tabpanel--stretch-active" : "";
|
|
26188
|
+
// The docs show consumers omitting `slot`, so server HTML doesn't carry it — a DOM morph
|
|
26189
|
+
// that strips it (and the stretch-active class) leaves this panel unslotted. Put both back.
|
|
26190
|
+
this.hostKeeper.record(hostClass, {}, { slot: 'tabpanels' });
|
|
26191
|
+
return (hAsync(Host, { key: '5d867e31d0f5f14e18f1c81035991c90bb5fe529', slot: "tabpanels", class: hostClass || undefined }, hAsync("div", { key: '255d37a73089904cfb170cd89f7b829756f6295f', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, hAsync("slot", { key: '714d3d0cf0fc6173e243a2b077d9b9918ae4acf9' }))));
|
|
25827
26192
|
}
|
|
25828
26193
|
get el() { return getElement(this); }
|
|
25829
26194
|
static get style() { return pdsTabpanelCss(); }
|
|
@@ -25854,6 +26219,35 @@ class PdsTabs {
|
|
|
25854
26219
|
constructor(hostRef) {
|
|
25855
26220
|
registerInstance(this, hostRef);
|
|
25856
26221
|
this.hostKeeper = new HostStylingKeeper();
|
|
26222
|
+
this.slotChangeScheduled = false;
|
|
26223
|
+
// The tab that most recently had focus, tracked continuously via `focusin` rather
|
|
26224
|
+
// than sampled inside handleSlotChange: removing a focused element blurs it to
|
|
26225
|
+
// <body> synchronously, but slotchange only fires later (a microtask checkpoint),
|
|
26226
|
+
// by which point the sample would already read <body>.
|
|
26227
|
+
this.lastFocusedTab = null;
|
|
26228
|
+
this.handleFocusIn = (event) => {
|
|
26229
|
+
var _a;
|
|
26230
|
+
const tab = (_a = event.target) === null || _a === void 0 ? void 0 : _a.closest('pds-tab');
|
|
26231
|
+
if (tab && tab.closest('pds-tabs') === this.el) {
|
|
26232
|
+
this.lastFocusedTab = tab;
|
|
26233
|
+
}
|
|
26234
|
+
};
|
|
26235
|
+
// Focus that leaves a tab forgets it, so replacing the tab later doesn't pull focus back,
|
|
26236
|
+
// including focus that moves into a panel. Focus moving to another tab is tracked again
|
|
26237
|
+
// by focusin, which follows focusout. Removing a focused tab also fires focusout (with no
|
|
26238
|
+
// relatedTarget), while the tab is still connected, so that case is checked a microtask
|
|
26239
|
+
// later: a tab that's gone by then was removed, and is kept so its focus can be restored.
|
|
26240
|
+
this.handleFocusOut = (event) => {
|
|
26241
|
+
const tab = this.lastFocusedTab;
|
|
26242
|
+
if (event.relatedTarget) {
|
|
26243
|
+
this.lastFocusedTab = null;
|
|
26244
|
+
return;
|
|
26245
|
+
}
|
|
26246
|
+
queueMicrotask(() => {
|
|
26247
|
+
if (this.lastFocusedTab === tab && (tab === null || tab === void 0 ? void 0 : tab.isConnected))
|
|
26248
|
+
this.lastFocusedTab = null;
|
|
26249
|
+
});
|
|
26250
|
+
};
|
|
25857
26251
|
/**
|
|
25858
26252
|
* Adds a divider rule beneath the tab list.
|
|
25859
26253
|
* @defaultValue false
|
|
@@ -25873,12 +26267,44 @@ class PdsTabs {
|
|
|
25873
26267
|
* @defaultValue false
|
|
25874
26268
|
*/
|
|
25875
26269
|
this.nav = false;
|
|
26270
|
+
// The tabs and tabpanels slots fire slotchange separately, even for the same morph
|
|
26271
|
+
// (both swapped together). Coalesce same-tick firings into one re-collection pass
|
|
26272
|
+
// with a microtask, the way a single DOM mutation already only triggers one event.
|
|
26273
|
+
this.handleSlotChange = () => {
|
|
26274
|
+
if (this.slotChangeScheduled)
|
|
26275
|
+
return;
|
|
26276
|
+
this.slotChangeScheduled = true;
|
|
26277
|
+
this.activeTabNameBeforeSlotChange = this.activeTabName;
|
|
26278
|
+
queueMicrotask(() => {
|
|
26279
|
+
this.slotChangeScheduled = false;
|
|
26280
|
+
this.recollectAfterSlotChange();
|
|
26281
|
+
});
|
|
26282
|
+
};
|
|
25876
26283
|
}
|
|
25877
26284
|
connectedCallback() {
|
|
25878
26285
|
this.hostKeeper.connect(this.el);
|
|
26286
|
+
this.el.addEventListener('focusin', this.handleFocusIn);
|
|
26287
|
+
this.el.addEventListener('focusout', this.handleFocusOut);
|
|
26288
|
+
// componentDidLoad only runs once, so a reconnect (the element moved in the DOM) re-attaches
|
|
26289
|
+
// the slotchange listeners disconnectedCallback removed. Before the first render the slots
|
|
26290
|
+
// don't exist yet, so this is a no-op and componentDidLoad attaches them.
|
|
26291
|
+
const isReconnect = this.tabsSlot != null;
|
|
26292
|
+
this.setupSlotChangeListeners();
|
|
26293
|
+
// Content can change while detached, with no listener to see it — re-collect now
|
|
26294
|
+
// instead of waiting on a slotchange that may never come if nothing changes again.
|
|
26295
|
+
if (isReconnect)
|
|
26296
|
+
this.handleSlotChange();
|
|
25879
26297
|
}
|
|
25880
26298
|
disconnectedCallback() {
|
|
26299
|
+
var _a, _b;
|
|
25881
26300
|
this.hostKeeper.disconnect();
|
|
26301
|
+
this.el.removeEventListener('focusin', this.handleFocusIn);
|
|
26302
|
+
this.el.removeEventListener('focusout', this.handleFocusOut);
|
|
26303
|
+
(_a = this.tabsSlot) === null || _a === void 0 ? void 0 : _a.removeEventListener('slotchange', this.handleSlotChange);
|
|
26304
|
+
(_b = this.tabPanelsSlot) === null || _b === void 0 ? void 0 : _b.removeEventListener('slotchange', this.handleSlotChange);
|
|
26305
|
+
}
|
|
26306
|
+
componentDidLoad() {
|
|
26307
|
+
this.setupSlotChangeListeners();
|
|
25882
26308
|
}
|
|
25883
26309
|
tabClickHandler(event) {
|
|
25884
26310
|
if (this.componentId === event.detail[1]) {
|
|
@@ -25906,8 +26332,8 @@ class PdsTabs {
|
|
|
25906
26332
|
// Navigation mode is an explicit, single source of truth: `nav` drives both the
|
|
25907
26333
|
// container (<nav> of links vs role=tablist of buttons) and every child tab (via
|
|
25908
26334
|
// `navMode`), so the tabs present when the strip initializes can't mix the two.
|
|
25909
|
-
//
|
|
25910
|
-
//
|
|
26335
|
+
// Unlike child discovery (re-run on slotchange), `nav` itself isn't watched — it's
|
|
26336
|
+
// a load-time mode switch, not something a consumer is expected to toggle live.
|
|
25911
26337
|
get isNav() {
|
|
25912
26338
|
return !!this.nav;
|
|
25913
26339
|
}
|
|
@@ -25960,9 +26386,52 @@ class PdsTabs {
|
|
|
25960
26386
|
this.tabs = allTabs.filter(tab => tab.closest('pds-tabs') === this.el);
|
|
25961
26387
|
this.tabPanels = allTabPanels.filter(panel => panel.closest('pds-tabs') === this.el);
|
|
25962
26388
|
}
|
|
26389
|
+
// The initial collection (componentWillLoad) only sees tabs/panels present at load.
|
|
26390
|
+
// A tab or panel added, removed or replaced afterwards — including by a DOM morph
|
|
26391
|
+
// swapping in a fresh copy — needs to be re-collected the same way pds-dropdown-menu,
|
|
26392
|
+
// pds-select and pds-multiselect already do for their own slotted content.
|
|
26393
|
+
setupSlotChangeListeners() {
|
|
26394
|
+
var _a, _b, _c, _d;
|
|
26395
|
+
this.tabsSlot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="tabs"]');
|
|
26396
|
+
this.tabPanelsSlot = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('slot[name="tabpanels"]');
|
|
26397
|
+
(_c = this.tabsSlot) === null || _c === void 0 ? void 0 : _c.addEventListener('slotchange', this.handleSlotChange);
|
|
26398
|
+
(_d = this.tabPanelsSlot) === null || _d === void 0 ? void 0 : _d.addEventListener('slotchange', this.handleSlotChange);
|
|
26399
|
+
}
|
|
26400
|
+
recollectAfterSlotChange() {
|
|
26401
|
+
const previousActiveTabName = this.activeTabNameBeforeSlotChange;
|
|
26402
|
+
// A removed node stays referenced but disconnected — checked before
|
|
26403
|
+
// findAllChildren() re-collects, since that doesn't affect this either way.
|
|
26404
|
+
const focusedTabWasRemoved = !this.isNav && this.lastFocusedTab != null && !this.lastFocusedTab.isConnected;
|
|
26405
|
+
this.findAllChildren();
|
|
26406
|
+
this.warnOnNavConfig();
|
|
26407
|
+
// Keep the current selection if it still exists. Otherwise clear it so
|
|
26408
|
+
// passPropsToChildren() falls back to the first enabled tab, the same way
|
|
26409
|
+
// it does when a consumer never set activeTabName in the first place.
|
|
26410
|
+
if (previousActiveTabName != null && !this.tabs.some((tab) => tab.name === previousActiveTabName)) {
|
|
26411
|
+
this.activeTabName = undefined;
|
|
26412
|
+
}
|
|
26413
|
+
this.passPropsToChildren();
|
|
26414
|
+
// If the tab that last had focus was removed (e.g. replaced by a fresh copy),
|
|
26415
|
+
// the browser already silently dropped focus to <body> — restore it to the new
|
|
26416
|
+
// active tab's button so keyboard/screen-reader users don't lose their place.
|
|
26417
|
+
// Deferred a frame since a freshly-created pds-tab's button doesn't exist until
|
|
26418
|
+
// its own render completes; re-checked then in case focus moved on its own, to
|
|
26419
|
+
// the tabs or anywhere else — only focus the removal dropped to <body> is restored.
|
|
26420
|
+
if (focusedTabWasRemoved) {
|
|
26421
|
+
this.lastFocusedTab = null;
|
|
26422
|
+
requestAnimationFrame(() => {
|
|
26423
|
+
var _a;
|
|
26424
|
+
const active = document.activeElement;
|
|
26425
|
+
if (active && active !== document.body)
|
|
26426
|
+
return;
|
|
26427
|
+
const newActiveTab = this.tabs.find((tab) => tab.name === this.activeTabName);
|
|
26428
|
+
(_a = newActiveTab === null || newActiveTab === void 0 ? void 0 : newActiveTab.querySelector('button')) === null || _a === void 0 ? void 0 : _a.focus();
|
|
26429
|
+
});
|
|
26430
|
+
}
|
|
26431
|
+
}
|
|
25963
26432
|
propGeneration(child, index = 0) {
|
|
25964
26433
|
child.parentComponentId = this.componentId.toString();
|
|
25965
|
-
child.variant = this.variant
|
|
26434
|
+
child.variant = this.variant;
|
|
25966
26435
|
child.selected = (this.activeTabName === child.name) ? true : false;
|
|
25967
26436
|
child['index'] = index;
|
|
25968
26437
|
}
|
|
@@ -26018,7 +26487,7 @@ class PdsTabs {
|
|
|
26018
26487
|
// Only the classes: `active-tab-name` backs the mutable activeTabName prop, so a morph that drops
|
|
26019
26488
|
// it is a prop change, not a strip.
|
|
26020
26489
|
this.hostKeeper.record(hostClass);
|
|
26021
|
-
return (hAsync(Host, { key: '
|
|
26490
|
+
return (hAsync(Host, { key: '91a9a5cf4348b73ef5ec21430db20468fb67906c', "active-tab-name": this.activeTabName, class: hostClass, id: this.componentId }, tabList, hAsync("slot", { key: 'f0ec002e513f3e91956e905c23e35dae0e6328ad', name: "tabpanels" })));
|
|
26022
26491
|
}
|
|
26023
26492
|
get el() { return getElement(this); }
|
|
26024
26493
|
static get style() { return pdsTabsCss(); }
|
|
@@ -26144,7 +26613,7 @@ class PdsText {
|
|
|
26144
26613
|
? `pds-text--decoration-${this.decoration}`
|
|
26145
26614
|
: ''}
|
|
26146
26615
|
`;
|
|
26147
|
-
return (hAsync(Tag, { key: '
|
|
26616
|
+
return (hAsync(Tag, { key: '6ae89af63963745cd4e8fa734a62f37bc27c59ac', ref: (el) => (this.contentEl = el), style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: '008f5852aeb4b43cff1a2fea9be9d8fbba9f7934' })));
|
|
26148
26617
|
}
|
|
26149
26618
|
get el() { return getElement(this); }
|
|
26150
26619
|
static get watchers() { return {
|
|
@@ -26490,10 +26959,10 @@ class PdsTextarea {
|
|
|
26490
26959
|
}
|
|
26491
26960
|
render() {
|
|
26492
26961
|
const value = this.getValue();
|
|
26493
|
-
return (hAsync(Host, { key: '
|
|
26494
|
-
hAsync("div", { key: '
|
|
26495
|
-
hAsync("p", { key: '
|
|
26496
|
-
hAsync("p", { key: '
|
|
26962
|
+
return (hAsync(Host, { key: '5933dab0c3cd25b1cf2f6851ece8e8064bc7f3b9', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '4f1752514d8e5b0f0e3439515cb9e5f043607da1', class: "pds-textarea" }, this.label &&
|
|
26963
|
+
hAsync("div", { key: 'd4e6df0b381d781b70eeae72ff2f0e9428c0d901', class: "pds-textarea__label-wrapper" }, hAsync("label", { key: '747d82067eb571d02840cfd981865821099f288b', htmlFor: this.componentId }, hAsync("span", { key: 'bfab6e8ede66d0169dd020b7dd97e125aba417b0', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), hAsync("div", { key: 'a18611c03270e7491c1af69f931419c832192c06', class: "pds-textarea__field-wrapper" }, hAsync("textarea", Object.assign({ key: '868382c7b04a4e59c0daa9d98afcdc9048f6224f', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, maxlength: this.maxLength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
|
|
26964
|
+
hAsync("p", { key: 'dcb36f21443d2a782c25b7c29c4ce6215f3b212b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
|
|
26965
|
+
hAsync("p", { key: 'be30fb1a38453296e26b775955389c0ec569df67', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'd93dce10d9d9db5815ac5f331848940aed735ba0', icon: danger, size: "small" }), this.errorMessage))));
|
|
26497
26966
|
}
|
|
26498
26967
|
static get formAssociated() { return true; }
|
|
26499
26968
|
get el() { return getElement(this); }
|
|
@@ -26667,13 +27136,13 @@ class PdsToast {
|
|
|
26667
27136
|
return this.icon && hAsync("pds-icon", { name: this.icon, class: "pds-toast__icon" });
|
|
26668
27137
|
}
|
|
26669
27138
|
render() {
|
|
26670
|
-
return (hAsync(Host, { key: '
|
|
27139
|
+
return (hAsync(Host, { key: '754a4583cefca47a3d3fea7dab036c06ea8aabcd', hidden: !this.isVisible }, hAsync("div", { key: '8ac294344ca459202c0883e724e09a4218342cc4', class: {
|
|
26671
27140
|
'pds-toast': true,
|
|
26672
27141
|
[`pds-toast--${this.type}`]: this.type !== 'default',
|
|
26673
27142
|
'pds-toast--animating-out': this.isAnimatingOut
|
|
26674
|
-
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: '
|
|
27143
|
+
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: 'eaf615d41c138e2c73088d29bac9349f49a63ba7', class: "pds-toast__message" }, hAsync("slot", { key: '33973447154d80b016f5a7954b0473db03228379' })), this.dismissible && (hAsync("button", { key: 'e189834633e1e648282ee43633fd05e53ce38869', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
|
|
26675
27144
|
this.dismiss();
|
|
26676
|
-
}, "aria-label": this.dismissLabel }, hAsync("pds-icon", { key: '
|
|
27145
|
+
}, "aria-label": this.dismissLabel }, hAsync("pds-icon", { key: '623a0e4d56e30781fb31bcd085511c17a4777edc', name: "remove" }))))));
|
|
26677
27146
|
}
|
|
26678
27147
|
get el() { return getElement(this); }
|
|
26679
27148
|
static get watchers() { return {
|
|
@@ -27048,9 +27517,9 @@ class PdsTooltip {
|
|
|
27048
27517
|
}
|
|
27049
27518
|
render() {
|
|
27050
27519
|
const hostId = this.componentId || undefined;
|
|
27051
|
-
return (hAsync(Host, { key: '
|
|
27520
|
+
return (hAsync(Host, { key: '2e28dff93cd22fd3816d71b67e38883061a8b2bc', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, hAsync("span", { key: '9e7ea50427587f61dcea1ea97e10d71f4d0c9d92', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
|
|
27052
27521
|
/* focusin/out bubble; ensure keyboard users see tooltips */
|
|
27053
|
-
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: '
|
|
27522
|
+
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: '08c1ff63c91b97b4df1362eb9b2e42b6fd556b11' })), hAsync("div", { key: '5cfe25e21d1f096b76335570fbb930a7bc8c95f8', class: "pds-tooltip__content-slot-wrapper", hidden: true }, hAsync("slot", { key: 'e7e8728d7c8a0c74933cef070aa38f88a1f53a32', name: "content" }))));
|
|
27054
27523
|
}
|
|
27055
27524
|
get el() { return getElement(this); }
|
|
27056
27525
|
static get watchers() { return {
|