@pine-ds/core 4.8.0 → 4.9.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/floating-ui.dom.js +1 -1
- package/components/index.js +1 -1
- package/components/index2.js +1 -1
- package/components/keep-hydrated.js +1 -0
- package/components/mock-pds-modal.js +1 -1
- package/components/pds-alert.js +1 -1
- package/components/pds-avatar.js +1 -1
- package/components/pds-box2.js +1 -1
- package/components/pds-button2.js +1 -1
- package/components/pds-checkbox2.js +1 -1
- package/components/pds-chip2.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-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 +2 -2
- package/components/pds-switch.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/components/tabbable.js +1 -0
- package/dist/cjs/{attributes-BJ7KBHql.js → attributes-CW49XqaL.js} +1 -1
- package/dist/cjs/{floating-ui.dom-Dc8Anyel.js → floating-ui.dom-Dw41zbyY.js} +1 -0
- package/dist/cjs/{index-jl_Q819j.js → index-BsWY_xEJ.js} +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/{keep-hydrated-CiXgkEYd.js → keep-hydrated-AKoh0DG4.js} +1 -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 +2 -2
- package/dist/cjs/pds-alert.cjs.entry.js +17 -4
- package/dist/cjs/pds-avatar.cjs.entry.js +21 -11
- package/dist/cjs/pds-box.cjs.entry.js +4 -4
- package/dist/cjs/pds-button.cjs.entry.js +57 -25
- package/dist/cjs/pds-checkbox.cjs.entry.js +15 -7
- package/dist/cjs/pds-chip.cjs.entry.js +6 -6
- package/dist/cjs/pds-combobox.cjs.entry.js +41 -11
- package/dist/cjs/pds-container.cjs.entry.js +3 -3
- package/dist/cjs/pds-copytext.cjs.entry.js +6 -6
- 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 +4 -4
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -3
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +5 -5
- package/dist/cjs/pds-filter.cjs.entry.js +3 -3
- package/dist/cjs/pds-filters.cjs.entry.js +3 -3
- package/dist/cjs/pds-icon.cjs.entry.js +2 -2
- package/dist/cjs/pds-image.cjs.entry.js +4 -4
- package/dist/cjs/pds-input.cjs.entry.js +5 -5
- package/dist/cjs/pds-link.cjs.entry.js +14 -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 +8 -88
- package/dist/cjs/pds-multiselect.cjs.entry.js +6 -6
- package/dist/cjs/pds-popover.cjs.entry.js +230 -153
- 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 +5 -5
- package/dist/cjs/pds-radio.cjs.entry.js +23 -10
- package/dist/cjs/pds-row.cjs.entry.js +4 -4
- package/dist/cjs/pds-select.cjs.entry.js +131 -20
- package/dist/cjs/pds-sortable-item.cjs.entry.js +4 -4
- package/dist/cjs/pds-sortable.cjs.entry.js +4 -4
- package/dist/cjs/pds-switch.cjs.entry.js +6 -6
- package/dist/cjs/pds-tab.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-body.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-cell.cjs.entry.js +6 -6
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +4 -4
- 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 +4 -4
- package/dist/cjs/pds-tabs.cjs.entry.js +4 -4
- package/dist/cjs/pds-text.cjs.entry.js +5 -5
- package/dist/cjs/pds-textarea.cjs.entry.js +7 -7
- package/dist/cjs/pds-toast.cjs.entry.js +14 -8
- package/dist/cjs/pds-tooltip.cjs.entry.js +115 -44
- package/dist/cjs/pine-core.cjs.js +3 -3
- package/dist/cjs/tabbable-CddSt_Hi.js +85 -0
- package/dist/cjs/{truncation-tooltip-BtuiXLV0.js → truncation-tooltip-O5nQmXPw.js} +1 -1
- package/dist/collection/components/pds-alert/pds-alert.css +13 -0
- package/dist/collection/components/pds-alert/pds-alert.js +36 -1
- package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +4 -0
- package/dist/collection/components/pds-avatar/pds-avatar.js +41 -9
- package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +2 -0
- package/dist/collection/components/pds-box/pds-box.js +1 -1
- package/dist/collection/components/pds-button/pds-button.js +13 -23
- package/dist/collection/components/pds-checkbox/pds-checkbox.css +79 -0
- package/dist/collection/components/pds-checkbox/pds-checkbox.js +36 -5
- package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +38 -0
- package/dist/collection/components/pds-chip/pds-chip.js +1 -1
- package/dist/collection/components/pds-combobox/pds-combobox.css +33 -0
- package/dist/collection/components/pds-combobox/pds-combobox.js +60 -7
- package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +44 -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 +24 -2
- 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.js +1 -1
- 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-input/stories/pds-input.stories.js +6 -6
- package/dist/collection/components/pds-link/pds-link.js +34 -3
- package/dist/collection/components/pds-link/stories/pds-link.stories.js +3 -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 +4 -84
- 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.css +6 -0
- package/dist/collection/components/pds-popover/pds-popover.js +226 -149
- 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.css +57 -0
- package/dist/collection/components/pds-radio/pds-radio.js +45 -9
- package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +15 -0
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
- package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +45 -0
- package/dist/collection/components/pds-row/pds-row.js +1 -1
- package/dist/collection/components/pds-select/pds-select.js +128 -17
- package/dist/collection/components/pds-select/stories/pds-select.stories.js +2 -2
- 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-table/stories/pds-table.stories.js +3 -3
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
- package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
- 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-textarea/stories/pds-textarea.stories.js +2 -2
- package/dist/collection/components/pds-toast/pds-toast.css +13 -0
- package/dist/collection/components/pds-toast/pds-toast.js +33 -5
- package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +4 -1
- package/dist/collection/components/pds-tooltip/pds-tooltip.js +113 -41
- package/dist/collection/utils/aria-references.js +42 -0
- package/dist/collection/utils/tabbable.js +81 -0
- package/dist/docs.json +244 -7
- package/dist/esm/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
- package/dist/esm/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
- package/dist/esm/{index-Cw9J31qd.js → index-BFSwd-GQ.js} +1 -1
- package/dist/esm/{index-BWDu62Mo.js → index-m3pqpeWg.js} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
- 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 +17 -4
- package/dist/esm/pds-avatar.entry.js +22 -12
- package/dist/esm/pds-box.entry.js +4 -4
- package/dist/esm/pds-button.entry.js +58 -26
- package/dist/esm/pds-checkbox.entry.js +16 -8
- package/dist/esm/pds-chip.entry.js +7 -7
- package/dist/esm/pds-combobox.entry.js +41 -11
- package/dist/esm/pds-container.entry.js +3 -3
- package/dist/esm/pds-copytext.entry.js +7 -7
- package/dist/esm/pds-datepicker.entry.js +6 -6
- 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 +4 -4
- package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -3
- package/dist/esm/pds-dropdown-menu.entry.js +5 -5
- 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 +2 -2
- 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 +15 -6
- 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 +6 -86
- package/dist/esm/pds-multiselect.entry.js +7 -7
- package/dist/esm/pds-popover.entry.js +230 -153
- 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 +24 -11
- package/dist/esm/pds-row.entry.js +4 -4
- package/dist/esm/pds-select.entry.js +132 -21
- 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 +3 -3
- package/dist/esm/pds-table-body.entry.js +3 -3
- package/dist/esm/pds-table-cell.entry.js +6 -6
- 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 +4 -4
- package/dist/esm/pds-tabs.entry.js +4 -4
- package/dist/esm/pds-text.entry.js +5 -5
- package/dist/esm/pds-textarea.entry.js +8 -8
- package/dist/esm/pds-toast.entry.js +14 -8
- package/dist/esm/pds-tooltip.entry.js +115 -44
- package/dist/esm/pine-core.js +4 -4
- package/dist/esm/tabbable-DCKBKRUy.js +83 -0
- package/dist/esm/{truncation-tooltip-FaW67DiY.js → truncation-tooltip-D_gvhB9r.js} +1 -1
- package/dist/esm-es5/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
- package/dist/esm-es5/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
- package/dist/esm-es5/{index-Cw9J31qd.js → index-BFSwd-GQ.js} +2 -2
- package/dist/esm-es5/{index-BWDu62Mo.js → index-m3pqpeWg.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
- 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/esm-es5/tabbable-DCKBKRUy.js +1 -0
- package/dist/esm-es5/{truncation-tooltip-FaW67DiY.js → truncation-tooltip-D_gvhB9r.js} +1 -1
- package/dist/pine-core/index.esm.js +1 -1
- package/dist/pine-core/p-001d4b86.entry.js +1 -0
- package/dist/pine-core/p-06279b93.system.entry.js +1 -0
- package/dist/pine-core/{p-b75b0d09.system.entry.js → p-0790dd0d.system.entry.js} +1 -1
- package/dist/pine-core/p-079c39d1.entry.js +1 -0
- package/dist/pine-core/{p-158b2f51.entry.js → p-07b4524e.entry.js} +1 -1
- package/dist/pine-core/{p-4bfc8b3e.system.entry.js → p-08bbd3e6.system.entry.js} +1 -1
- package/dist/pine-core/{p-d3d69ca4.system.entry.js → p-0bd61097.system.entry.js} +1 -1
- package/dist/pine-core/p-0c60f577.system.entry.js +1 -0
- package/dist/pine-core/{p-acca5f7b.system.entry.js → p-110b4051.system.entry.js} +1 -1
- package/dist/pine-core/p-11e7d660.entry.js +1 -0
- package/dist/pine-core/p-14d872d3.entry.js +1 -0
- package/dist/pine-core/p-17fc76e7.system.entry.js +1 -0
- package/dist/pine-core/{p-0913f696.system.entry.js → p-1e5648bf.system.entry.js} +1 -1
- package/dist/pine-core/{p-ef13f665.system.entry.js → p-22ae92f7.system.entry.js} +1 -1
- package/dist/pine-core/p-239774c9.entry.js +1 -0
- package/dist/pine-core/{p-0b71ecb6.system.entry.js → p-25bf2f26.system.entry.js} +2 -2
- package/dist/pine-core/{p-719542e1.system.entry.js → p-272b24ad.system.entry.js} +1 -1
- package/dist/pine-core/{p-d2c91e7a.entry.js → p-2c0047cd.entry.js} +1 -1
- package/dist/pine-core/p-2d5b1deb.entry.js +1 -0
- package/dist/pine-core/{p-c97bfac9.entry.js → p-3556f6ad.entry.js} +1 -1
- package/dist/pine-core/{p-BGLP3keB.js → p-35s7h-dk.js} +1 -1
- package/dist/pine-core/{p-3c977d8d.system.entry.js → p-38b87aa2.system.entry.js} +1 -1
- package/dist/pine-core/{p-25ea48d1.entry.js → p-3afb1208.entry.js} +1 -1
- package/dist/pine-core/{p-9df5e204.entry.js → p-3b5b8f73.entry.js} +1 -1
- package/dist/pine-core/{p-8c8cc079.system.entry.js → p-3cc19ea8.system.entry.js} +1 -1
- package/dist/pine-core/{p-ca4ee736.system.entry.js → p-3ce7e72e.system.entry.js} +1 -1
- package/dist/pine-core/p-3f62581a.system.entry.js +1 -0
- package/dist/pine-core/p-414faecf.entry.js +1 -0
- package/dist/pine-core/p-463a29fa.entry.js +1 -0
- package/dist/pine-core/{p-f029b7da.system.entry.js → p-4ee44585.system.entry.js} +1 -1
- package/dist/pine-core/p-50af67ea.system.entry.js +1 -0
- package/dist/pine-core/p-5133e8be.system.entry.js +1 -0
- package/dist/pine-core/p-55fce29e.entry.js +1 -0
- package/dist/pine-core/{p-77395d62.system.entry.js → p-568a9a79.system.entry.js} +1 -1
- package/dist/pine-core/{p-5cfd4d41.system.entry.js → p-5967d9fa.system.entry.js} +1 -1
- package/dist/pine-core/{p-5870b092.system.entry.js → p-5c46553f.system.entry.js} +1 -1
- package/dist/pine-core/{p-ea340c55.system.entry.js → p-5ce5836e.system.entry.js} +1 -1
- package/dist/pine-core/p-5f3242c8.system.entry.js +1 -0
- package/dist/pine-core/{p-80e6f3a0.system.entry.js → p-60d27247.system.entry.js} +1 -1
- package/dist/pine-core/{p-90d5edc6.entry.js → p-60e3b1af.entry.js} +1 -1
- package/dist/pine-core/{p-ca0a8f5c.entry.js → p-64283f7b.entry.js} +1 -1
- package/dist/pine-core/p-6602b4d0.entry.js +1 -0
- package/dist/pine-core/p-6845867f.system.entry.js +1 -0
- package/dist/pine-core/{p-332590c7.system.entry.js → p-68fdfb8f.system.entry.js} +1 -1
- package/dist/pine-core/p-6b6ae1be.entry.js +1 -0
- package/dist/pine-core/{p-e5420660.entry.js → p-6d64e6c7.entry.js} +1 -1
- package/dist/pine-core/{p-121612a7.system.entry.js → p-6dad76cb.system.entry.js} +1 -1
- package/dist/pine-core/p-6f34ad9c.entry.js +1 -0
- package/dist/pine-core/{p-55224683.entry.js → p-7073146f.entry.js} +1 -1
- package/dist/pine-core/{p-f1702281.entry.js → p-735b3631.entry.js} +1 -1
- package/dist/pine-core/p-7a14473e.entry.js +1 -0
- package/dist/pine-core/{p-9880d251.system.entry.js → p-7a19477e.system.entry.js} +1 -1
- package/dist/pine-core/{p-ea8f5d29.entry.js → p-7d3a20ba.entry.js} +1 -1
- package/dist/pine-core/{p-a939b471.entry.js → p-7fcf3d37.entry.js} +1 -1
- package/dist/pine-core/{p-26642718.entry.js → p-87642228.entry.js} +1 -1
- package/dist/pine-core/{p-62433f32.entry.js → p-89fefe36.entry.js} +1 -1
- package/dist/pine-core/{p-cccfe60f.system.entry.js → p-8b97dd57.system.entry.js} +1 -1
- package/dist/pine-core/{p-0092444c.system.entry.js → p-9201b497.system.entry.js} +1 -1
- package/dist/pine-core/{p-631f5bcc.entry.js → p-92a8cf7d.entry.js} +1 -1
- package/dist/pine-core/{p-e836a041.entry.js → p-94597b73.entry.js} +1 -1
- package/dist/pine-core/p-9713d6a5.system.entry.js +1 -0
- package/dist/pine-core/p-97be00f4.system.entry.js +1 -0
- package/dist/pine-core/{p-2ac2457b.system.entry.js → p-98843402.system.entry.js} +1 -1
- package/dist/pine-core/{p-b914dde8.entry.js → p-98cc327b.entry.js} +2 -2
- package/dist/pine-core/p-9a8971e2.system.entry.js +1 -0
- package/dist/pine-core/p-9a8d2985.system.entry.js +3 -0
- package/dist/pine-core/{p-ee0e30bf.system.entry.js → p-9dbc017f.system.entry.js} +1 -1
- package/dist/pine-core/p-9fbcba0d.entry.js +1 -0
- package/dist/pine-core/p-9fe4a64a.entry.js +1 -0
- package/dist/pine-core/{p-COtCa1Md.system.js → p-BNTlHhoO.system.js} +1 -1
- package/dist/pine-core/p-BZ1l3LGl.system.js +1 -0
- package/dist/pine-core/p-BgNaWLoS.js +1 -0
- package/dist/pine-core/{p-CmSJytt1.js → p-BplEmwUQ.js} +2 -2
- package/dist/pine-core/{p-Cy8cvR7I.system.js → p-CANeE7Ss.system.js} +1 -1
- package/dist/pine-core/{p-XW4H0W6i.system.js → p-CNXspDYs.system.js} +1 -1
- package/dist/pine-core/{p-jrkGLEPe.js → p-CirzxZ33.js} +1 -1
- package/dist/pine-core/{p-CGRdQc49.system.js → p-CjRCtzPD.system.js} +2 -2
- package/dist/pine-core/{p-BPqJgIq6.js → p-Cuc0DYlm.js} +1 -1
- package/dist/pine-core/{p-D04W0cAO.system.js → p-D52aRqFx.system.js} +1 -1
- package/dist/pine-core/p-DCKBKRUy.js +1 -0
- package/dist/pine-core/p-DXO1yd32.system.js +1 -0
- package/dist/pine-core/{p-ClDiSG97.system.js → p-DaCT2ssj.system.js} +1 -1
- package/dist/pine-core/{p-295f64ea.entry.js → p-a2078add.entry.js} +1 -1
- package/dist/pine-core/{p-f3067d90.system.entry.js → p-a48b025a.system.entry.js} +1 -1
- package/dist/pine-core/{p-9713fb36.entry.js → p-a7d25143.entry.js} +1 -1
- package/dist/pine-core/{p-9dcd2cdb.entry.js → p-ad3b1ec3.entry.js} +1 -1
- package/dist/pine-core/p-b017eb99.system.entry.js +1 -0
- package/dist/pine-core/p-b037dcbd.system.entry.js +1 -0
- package/dist/pine-core/{p-db17c626.system.entry.js → p-b243767b.system.entry.js} +1 -1
- package/dist/pine-core/{p-0af0d752.system.entry.js → p-b33ad96e.system.entry.js} +1 -1
- package/dist/pine-core/p-b6edfdfe.entry.js +2 -0
- package/dist/pine-core/{p-8191498f.system.entry.js → p-b7cbd913.system.entry.js} +1 -1
- package/dist/pine-core/{p-8f531063.entry.js → p-b9d71b76.entry.js} +1 -1
- package/dist/pine-core/p-bcf57566.entry.js +1 -0
- package/dist/pine-core/{p-4fd454f6.entry.js → p-bda7e3be.entry.js} +1 -1
- package/dist/pine-core/{p-bdac8f2b.entry.js → p-bdde1e53.entry.js} +1 -1
- package/dist/pine-core/{p-cb6a3e4c.system.entry.js → p-be3b4f12.system.entry.js} +1 -1
- package/dist/pine-core/{p-b1548a20.entry.js → p-bfdfbe9f.entry.js} +1 -1
- package/dist/pine-core/{p-8e3ff75d.entry.js → p-c02a32ec.entry.js} +1 -1
- package/dist/pine-core/p-c1da80e5.entry.js +1 -0
- package/dist/pine-core/{p-eaf85be6.system.entry.js → p-c233866c.system.entry.js} +1 -1
- package/dist/pine-core/{p-ecc7a531.system.entry.js → p-cb560aab.system.entry.js} +1 -1
- package/dist/pine-core/{p-8c588ca0.entry.js → p-ce554098.entry.js} +1 -1
- package/dist/pine-core/p-ced6a814.system.entry.js +1 -0
- package/dist/pine-core/{p-9aaedded.entry.js → p-d7930540.entry.js} +1 -1
- package/dist/pine-core/{p-11d98408.system.entry.js → p-d7db749a.system.entry.js} +1 -1
- package/dist/pine-core/{p-7a5b21d2.system.entry.js → p-d8bedb58.system.entry.js} +1 -1
- package/dist/pine-core/{p-1dc5a7e0.system.entry.js → p-d9243653.system.entry.js} +1 -1
- package/dist/pine-core/{p-9ab95438.entry.js → p-d94ebe84.entry.js} +1 -1
- package/dist/pine-core/{p-9109b90a.entry.js → p-de176bd9.entry.js} +1 -1
- package/dist/pine-core/{p-57a2f927.entry.js → p-dea2a254.entry.js} +1 -1
- package/dist/pine-core/p-dfadfcd1.entry.js +1 -0
- package/dist/pine-core/{p-047433a4.system.entry.js → p-e1fdd53a.system.entry.js} +1 -1
- package/dist/pine-core/{p-8987fd45.system.entry.js → p-e70cb112.system.entry.js} +1 -1
- package/dist/pine-core/{p-b9d145f8.system.entry.js → p-e9a53a88.system.entry.js} +1 -1
- package/dist/pine-core/p-eb93cc6e.entry.js +1 -0
- package/dist/pine-core/{p-4d03d1e2.system.entry.js → p-ebf0c51b.system.entry.js} +1 -1
- package/dist/pine-core/p-ebf74c43.system.entry.js +1 -0
- package/dist/pine-core/{p-138b278b.entry.js → p-ee449a4b.entry.js} +1 -1
- package/dist/pine-core/p-ef4d8fea.entry.js +1 -0
- package/dist/pine-core/p-f09f27ab.system.entry.js +1 -0
- package/dist/pine-core/{p-c483997a.entry.js → p-f2c487e6.entry.js} +1 -1
- package/dist/pine-core/p-f549f2bc.entry.js +1 -0
- package/dist/pine-core/{p-717323e4.entry.js → p-fc743f6e.entry.js} +1 -1
- package/dist/pine-core/{p-BWDu62Mo.js → p-m3pqpeWg.js} +1 -1
- package/dist/pine-core/p-wXfuz0Bd.system.js +1 -0
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/pine-core/pine-core.js +1 -1
- package/dist/types/components/pds-alert/pds-alert.d.ts +10 -0
- package/dist/types/components/pds-avatar/pds-avatar.d.ts +8 -0
- package/dist/types/components/pds-button/pds-button.d.ts +2 -2
- package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +7 -1
- package/dist/types/components/pds-combobox/pds-combobox.d.ts +9 -0
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +7 -0
- package/dist/types/components/pds-link/pds-link.d.ts +8 -0
- package/dist/types/components/pds-popover/pds-popover.d.ts +44 -20
- package/dist/types/components/pds-radio/pds-radio.d.ts +9 -3
- package/dist/types/components/pds-select/pds-select.d.ts +32 -4
- package/dist/types/components/pds-toast/pds-toast.d.ts +9 -0
- package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +31 -0
- package/dist/types/components.d.ts +96 -8
- package/dist/types/utils/aria-references.d.ts +24 -0
- package/dist/types/utils/tabbable.d.ts +2 -0
- package/dist/vscode.html-data.json +79 -7
- package/hydrate/index.js +724 -337
- package/hydrate/index.mjs +724 -337
- package/package.json +2 -2
- package/dist/pine-core/p-00a50de5.system.entry.js +0 -3
- package/dist/pine-core/p-049f126a.entry.js +0 -1
- package/dist/pine-core/p-089c3e60.entry.js +0 -1
- package/dist/pine-core/p-17f97f1a.entry.js +0 -1
- package/dist/pine-core/p-19ba2788.system.entry.js +0 -1
- package/dist/pine-core/p-208c7dbf.entry.js +0 -1
- package/dist/pine-core/p-29cd4113.system.entry.js +0 -1
- package/dist/pine-core/p-2cb5483a.system.entry.js +0 -1
- package/dist/pine-core/p-36cb4bf6.entry.js +0 -1
- package/dist/pine-core/p-3d51891a.entry.js +0 -1
- package/dist/pine-core/p-432d5ec7.entry.js +0 -1
- package/dist/pine-core/p-44f546ae.entry.js +0 -1
- package/dist/pine-core/p-5442d983.system.entry.js +0 -1
- package/dist/pine-core/p-5833a072.system.entry.js +0 -1
- package/dist/pine-core/p-602c197f.entry.js +0 -1
- package/dist/pine-core/p-73f931a1.entry.js +0 -1
- package/dist/pine-core/p-75ee0403.entry.js +0 -1
- package/dist/pine-core/p-7a287635.system.entry.js +0 -1
- package/dist/pine-core/p-86040cac.system.entry.js +0 -1
- package/dist/pine-core/p-875b0436.system.entry.js +0 -1
- package/dist/pine-core/p-884cb31d.system.entry.js +0 -1
- package/dist/pine-core/p-8cc302aa.system.entry.js +0 -1
- package/dist/pine-core/p-91f60173.entry.js +0 -1
- package/dist/pine-core/p-9265497e.system.entry.js +0 -1
- package/dist/pine-core/p-94593f20.system.entry.js +0 -1
- package/dist/pine-core/p-99459e27.entry.js +0 -1
- package/dist/pine-core/p-99fdf70f.entry.js +0 -1
- package/dist/pine-core/p-BLG6RDBt.js +0 -1
- package/dist/pine-core/p-BR5nujVX.system.js +0 -1
- package/dist/pine-core/p-CuSNnuFu.system.js +0 -1
- package/dist/pine-core/p-a0960b3d.system.entry.js +0 -1
- package/dist/pine-core/p-a1230a74.system.entry.js +0 -1
- package/dist/pine-core/p-a826f290.entry.js +0 -1
- package/dist/pine-core/p-acce8eb2.entry.js +0 -1
- package/dist/pine-core/p-aff411d0.entry.js +0 -1
- package/dist/pine-core/p-b182f806.entry.js +0 -2
- package/dist/pine-core/p-bb68431a.entry.js +0 -1
- package/dist/pine-core/p-be9b6e63.system.entry.js +0 -1
- package/dist/pine-core/p-bf30dec0.entry.js +0 -1
- package/dist/pine-core/p-c4e12f0a.entry.js +0 -1
- package/dist/pine-core/p-e0917a26.entry.js +0 -1
- package/dist/pine-core/p-ea4d4741.system.entry.js +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-BsWY_xEJ.js');
|
|
4
|
+
var floatingUi_dom = require('./floating-ui.dom-Dw41zbyY.js');
|
|
4
5
|
var closest = require('./closest-D0qyYtJ3.js');
|
|
5
6
|
var reflectedAttributeDefault = require('./reflected-attribute-default-DVYHG6O1.js');
|
|
6
|
-
var attributes = require('./attributes-
|
|
7
|
-
var keepHydrated = require('./keep-hydrated-
|
|
7
|
+
var attributes = require('./attributes-CW49XqaL.js');
|
|
8
|
+
var keepHydrated = require('./keep-hydrated-AKoh0DG4.js');
|
|
9
|
+
var tabbable = require('./tabbable-CddSt_Hi.js');
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* Escapes a string so it's safe to interpolate into a CSS identifier (an id selector like `#${id}`)
|
|
@@ -48,7 +50,7 @@ const cssEscape = (value) => {
|
|
|
48
50
|
return result;
|
|
49
51
|
};
|
|
50
52
|
|
|
51
|
-
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}`;
|
|
53
|
+
const pdsPopoverCss = () => `:host{--sizing-max-width-default:352px;display:inline-block}:host .pds-popover__trigger-wrapper{display:inline-block}:host .pds-popover__tab-guard{opacity:0;outline:none;pointer-events:none;position:fixed}:host .pds-popover__content-slot-wrapper{display:none}`;
|
|
52
54
|
|
|
53
55
|
/** Open popovers that close on Escape, in the order they opened: Escape goes to the last one it applies to. */
|
|
54
56
|
const popoversTakingEscape = [];
|
|
@@ -56,6 +58,24 @@ const popoversTakingEscape = [];
|
|
|
56
58
|
const HOVER_OPEN_DELAY_MS = 120;
|
|
57
59
|
/** Leaving the trigger and panel waits this long before closing, which covers the gap between them. */
|
|
58
60
|
const HOVER_CLOSE_DELAY_MS = 200;
|
|
61
|
+
/**
|
|
62
|
+
* floating-ui reporting viewport coordinates, as `position: fixed` uses without a containing block. Its own
|
|
63
|
+
* containing-block check misses a backdrop filter in WebKit, so handlePopoverPositioning corrects for one itself.
|
|
64
|
+
*/
|
|
65
|
+
const viewportPlatform = Object.assign(Object.assign({}, floatingUi_dom.platform), { getOffsetParent: () => window });
|
|
66
|
+
/**
|
|
67
|
+
* Where `top: 0; left: 0` puts a fixed element beside the given one. An empty probe is measured instead of the
|
|
68
|
+
* element, whose own transforms, such as an entrance animation, would otherwise read as part of the offset.
|
|
69
|
+
*/
|
|
70
|
+
const containingBlockOrigin = (element) => {
|
|
71
|
+
var _a;
|
|
72
|
+
const probe = document.createElement('div');
|
|
73
|
+
probe.style.cssText = 'all: initial; position: fixed; top: 0; left: 0;';
|
|
74
|
+
(_a = element.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(probe, element);
|
|
75
|
+
const { top, left } = probe.getBoundingClientRect();
|
|
76
|
+
probe.remove();
|
|
77
|
+
return { top, left };
|
|
78
|
+
};
|
|
59
79
|
/** The focused element, followed down through shadow roots to the control that has focus. */
|
|
60
80
|
function deepActiveElement() {
|
|
61
81
|
var _a;
|
|
@@ -64,6 +84,27 @@ function deepActiveElement() {
|
|
|
64
84
|
active = active.shadowRoot.activeElement;
|
|
65
85
|
return active;
|
|
66
86
|
}
|
|
87
|
+
/** `node`, or the shadow host it sits in, lifted until it shares a tree with `other` or reaches the document. */
|
|
88
|
+
function liftToTreeOf(node, other) {
|
|
89
|
+
let current = node;
|
|
90
|
+
while (current.getRootNode() !== other.getRootNode() && current.getRootNode() instanceof ShadowRoot) {
|
|
91
|
+
current = current.getRootNode().host;
|
|
92
|
+
}
|
|
93
|
+
return current;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Where `node` sits relative to `ref`, as `compareDocumentPosition` reports it. Whichever of the two
|
|
97
|
+
* is inside a shadow root is lifted to its host first, so a control inside a component compares too.
|
|
98
|
+
*/
|
|
99
|
+
function positionAcrossTrees(ref, node) {
|
|
100
|
+
const lifted = liftToTreeOf(node, ref);
|
|
101
|
+
return liftToTreeOf(ref, lifted).compareDocumentPosition(lifted);
|
|
102
|
+
}
|
|
103
|
+
const isPosition = (position, flag) => (position & Node.DOCUMENT_POSITION_DISCONNECTED) === 0 && (position & flag) !== 0;
|
|
104
|
+
/** The popover each panel belongs to, so a popover inside another one's panel can find it. */
|
|
105
|
+
const panelOwners = new WeakMap();
|
|
106
|
+
/** Floating layers Pine components put at the end of the page or of a dialog, as a popover does its panel. */
|
|
107
|
+
const FLOATING_LAYERS = '.pds-popover, .pds-datepicker-calendar-portal, .pds-combobox-dropdown-portal';
|
|
67
108
|
const PdsPopover = class {
|
|
68
109
|
constructor(hostRef) {
|
|
69
110
|
index.registerInstance(this, hostRef);
|
|
@@ -99,14 +140,21 @@ const PdsPopover = class {
|
|
|
99
140
|
*/
|
|
100
141
|
this.portalEl = null;
|
|
101
142
|
/**
|
|
102
|
-
*
|
|
143
|
+
* Stops floating-ui's autoUpdate, which repositions the open panel as its trigger or the page moves or resizes
|
|
103
144
|
*/
|
|
104
|
-
this.
|
|
145
|
+
this.stopAutoUpdate = null;
|
|
105
146
|
/**
|
|
106
|
-
*
|
|
147
|
+
* Counts positioning runs, so a run that resolves after a newer one started is dropped
|
|
107
148
|
*/
|
|
108
|
-
this.
|
|
109
|
-
|
|
149
|
+
this.positioningRun = 0;
|
|
150
|
+
/**
|
|
151
|
+
* The latest positioning run, which pdsPopoverOpen waits for so the panel's side is set when it fires
|
|
152
|
+
*/
|
|
153
|
+
this.positioning = Promise.resolve();
|
|
154
|
+
/**
|
|
155
|
+
* Set while show() waits to emit pdsPopoverOpen, so a hide() in the meantime emits it first
|
|
156
|
+
*/
|
|
157
|
+
this.openEventPending = false;
|
|
110
158
|
/**
|
|
111
159
|
* Track moved nodes and their placeholders for restoration
|
|
112
160
|
*/
|
|
@@ -127,6 +175,18 @@ const PdsPopover = class {
|
|
|
127
175
|
* How far the pointer was from the panel at its last move after leaving the trigger
|
|
128
176
|
*/
|
|
129
177
|
this.panelDistance = Infinity;
|
|
178
|
+
/**
|
|
179
|
+
* Stands in for the panel in the Tab order, right after the trigger, while the popover is open
|
|
180
|
+
*/
|
|
181
|
+
this.tabGuardEl = null;
|
|
182
|
+
/**
|
|
183
|
+
* Set while focus passes through the guard on its way out of the panel
|
|
184
|
+
*/
|
|
185
|
+
this.leavingPanel = false;
|
|
186
|
+
/**
|
|
187
|
+
* The direction of the Tab key being handled, until its default action has run
|
|
188
|
+
*/
|
|
189
|
+
this.tabDirection = null;
|
|
130
190
|
/**
|
|
131
191
|
* Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.
|
|
132
192
|
* @defaultValue "show"
|
|
@@ -180,6 +240,9 @@ const PdsPopover = class {
|
|
|
180
240
|
else {
|
|
181
241
|
this.triggerEl = null;
|
|
182
242
|
}
|
|
243
|
+
// autoUpdate watches the trigger it started with, so an open popover starts it again on the new one.
|
|
244
|
+
if (this.active)
|
|
245
|
+
this.addScrollAndResizeListeners();
|
|
183
246
|
this.observeTrigger();
|
|
184
247
|
};
|
|
185
248
|
/**
|
|
@@ -297,6 +360,59 @@ const PdsPopover = class {
|
|
|
297
360
|
event.stopPropagation();
|
|
298
361
|
}
|
|
299
362
|
};
|
|
363
|
+
// At the end of the body or of a dialog, the panel would come last in the Tab order. The guard
|
|
364
|
+
// after the trigger takes its place there, while the panel has a control for it to lead to.
|
|
365
|
+
this.syncTabGuard = (event) => {
|
|
366
|
+
if (event.key !== 'Tab')
|
|
367
|
+
return;
|
|
368
|
+
this.releasePanel();
|
|
369
|
+
this.tabDirection = event.shiftKey ? 'backward' : 'forward';
|
|
370
|
+
setTimeout(this.endTabKey);
|
|
371
|
+
// Read on each Tab, as the panel's content can arrive after it opens.
|
|
372
|
+
const guarding = this.guardedTabbables().length > 0;
|
|
373
|
+
if (this.tabGuardEl != null)
|
|
374
|
+
this.tabGuardEl.tabIndex = guarding ? 0 : -1;
|
|
375
|
+
// Inert for this key press, the panel is reached only through the guard, either way round. A
|
|
376
|
+
// control in another floating layer, such as a nested popover's panel, may move focus back into it.
|
|
377
|
+
const focused = deepActiveElement();
|
|
378
|
+
if (guarding && !closest.containsComposed(this.portalEl, focused) && !closest.closest(FLOATING_LAYERS, focused !== null && focused !== void 0 ? focused : document)) {
|
|
379
|
+
this.portalEl.inert = true;
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
this.endTabKey = () => {
|
|
383
|
+
this.tabDirection = null;
|
|
384
|
+
this.releasePanel();
|
|
385
|
+
};
|
|
386
|
+
this.handleTabGuardFocus = (event) => {
|
|
387
|
+
if (this.leavingPanel)
|
|
388
|
+
return;
|
|
389
|
+
// An inert panel's controls aren't tabbable, so the guard would find none to send focus to.
|
|
390
|
+
this.releasePanel();
|
|
391
|
+
const tabbables = this.guardedTabbables();
|
|
392
|
+
// A Tab press says which end of the panel focus comes in at; without one, where it came from does.
|
|
393
|
+
const from = event.relatedTarget;
|
|
394
|
+
const backward = this.tabDirection != null ? this.tabDirection === 'backward' : from != null && this.isAfterPopover(from);
|
|
395
|
+
const target = backward ? tabbables[tabbables.length - 1] : tabbables[0];
|
|
396
|
+
// Focus can reach the guard without a Tab keydown here (from a frame, or assistive tech) after
|
|
397
|
+
// the panel's controls are gone. The trigger is the nearest visible place for it.
|
|
398
|
+
if (target == null)
|
|
399
|
+
this.returnFocusToTrigger();
|
|
400
|
+
else
|
|
401
|
+
target.focus();
|
|
402
|
+
};
|
|
403
|
+
this.handleTabFromPanel = (event) => {
|
|
404
|
+
if (event.key !== 'Tab' || event.defaultPrevented || this.tabGuardEl == null)
|
|
405
|
+
return;
|
|
406
|
+
const tabbables = this.guardedTabbables();
|
|
407
|
+
const edge = event.shiftKey ? tabbables[0] : tabbables[tabbables.length - 1];
|
|
408
|
+
if (edge == null || deepActiveElement() !== edge)
|
|
409
|
+
return;
|
|
410
|
+
this.leavePanel(edge, event.shiftKey);
|
|
411
|
+
};
|
|
412
|
+
this.releasePanel = () => {
|
|
413
|
+
if (this.portalEl != null)
|
|
414
|
+
this.portalEl.inert = false;
|
|
415
|
+
};
|
|
300
416
|
}
|
|
301
417
|
openOnChanged() {
|
|
302
418
|
this.pin();
|
|
@@ -332,8 +448,6 @@ const PdsPopover = class {
|
|
|
332
448
|
// Bind event handlers for cleanup
|
|
333
449
|
this.boundClickOutsideHandler = this.handleClickOutside.bind(this);
|
|
334
450
|
this.boundEscapeKeyHandler = this.handleEscapeKey.bind(this);
|
|
335
|
-
this.boundScrollHandler = this.handleScroll.bind(this);
|
|
336
|
-
this.boundResizeHandler = this.handleResize.bind(this);
|
|
337
451
|
// Create portal element
|
|
338
452
|
this.createPortal();
|
|
339
453
|
this.hasLoaded = true;
|
|
@@ -432,11 +546,12 @@ const PdsPopover = class {
|
|
|
432
546
|
// is in now, if any.
|
|
433
547
|
if (this.active) {
|
|
434
548
|
this.placePortal();
|
|
435
|
-
|
|
549
|
+
// autoUpdate listens to the scroll containers around where the trigger was, so it starts again.
|
|
550
|
+
this.addScrollAndResizeListeners();
|
|
436
551
|
}
|
|
437
552
|
}
|
|
438
553
|
disconnectedCallback() {
|
|
439
|
-
var _a;
|
|
554
|
+
var _a, _b;
|
|
440
555
|
// Moved in one operation (a DOM morph, or a framework reparenting it), the popover is
|
|
441
556
|
// already back in the page. Its portal is outside the popover, so it stays open, with focus
|
|
442
557
|
// where it was; connectedCallback moves it to follow the popover.
|
|
@@ -451,6 +566,7 @@ const PdsPopover = class {
|
|
|
451
566
|
this.restorePortalContent();
|
|
452
567
|
this.active = false;
|
|
453
568
|
this.linkTriggerToPortal();
|
|
569
|
+
this.emitOpenEvent();
|
|
454
570
|
this.pdsPopoverClose.emit({
|
|
455
571
|
componentId: this.componentId,
|
|
456
572
|
popoverType: this.popoverType,
|
|
@@ -467,32 +583,20 @@ const PdsPopover = class {
|
|
|
467
583
|
this.removeLightDismissListeners();
|
|
468
584
|
this.removeScrollAndResizeListeners();
|
|
469
585
|
document.removeEventListener('submit', this.handleSubmitFromPanel, true);
|
|
470
|
-
|
|
471
|
-
this.
|
|
586
|
+
document.removeEventListener('keydown', this.syncTabGuard, true);
|
|
587
|
+
(_b = this.tabGuardEl) === null || _b === void 0 ? void 0 : _b.removeAttribute('tabindex');
|
|
472
588
|
this.clearHoverTimers();
|
|
473
589
|
this.hoverOpened = false;
|
|
474
590
|
// Remove portal from DOM
|
|
475
591
|
this.removePortal();
|
|
476
592
|
}
|
|
477
|
-
/**
|
|
478
|
-
* Clears any pending debounce timers
|
|
479
|
-
*/
|
|
480
|
-
clearDebounceTimers() {
|
|
481
|
-
if (this.scrollDebounceTimer !== null) {
|
|
482
|
-
clearTimeout(this.scrollDebounceTimer);
|
|
483
|
-
this.scrollDebounceTimer = null;
|
|
484
|
-
}
|
|
485
|
-
if (this.resizeDebounceTimer !== null) {
|
|
486
|
-
clearTimeout(this.resizeDebounceTimer);
|
|
487
|
-
this.resizeDebounceTimer = null;
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
593
|
createPortal() {
|
|
491
594
|
var _a;
|
|
492
595
|
if (this.portalEl !== null)
|
|
493
596
|
return;
|
|
494
597
|
this.portalEl = document.createElement('div');
|
|
495
598
|
this.portalEl.className = 'pds-popover';
|
|
599
|
+
panelOwners.set(this.portalEl, this);
|
|
496
600
|
// Apply all styles inline since portal is outside shadow DOM
|
|
497
601
|
this.portalEl.style.position = 'fixed';
|
|
498
602
|
this.portalEl.style.zIndex = 'var(--pine-z-index-raised)';
|
|
@@ -519,6 +623,7 @@ const PdsPopover = class {
|
|
|
519
623
|
// This is done after appending to ensure it's part of the document and can access CSS variables
|
|
520
624
|
this.addPortalFocusStyles();
|
|
521
625
|
this.listenForHover(this.portalEl);
|
|
626
|
+
this.portalEl.addEventListener('keydown', this.handleTabFromPanel);
|
|
522
627
|
}
|
|
523
628
|
/**
|
|
524
629
|
* Adds Pine design system focus styles and dark mode border to the portal element
|
|
@@ -652,15 +757,10 @@ const PdsPopover = class {
|
|
|
652
757
|
this.portalEl.style.display = 'block';
|
|
653
758
|
this.portalEl.style.opacity = '1';
|
|
654
759
|
this.portalEl.style.visibility = 'visible';
|
|
655
|
-
// Position the popover
|
|
656
|
-
requestAnimationFrame(() => {
|
|
657
|
-
if (!this.isComponentMounted)
|
|
658
|
-
return;
|
|
659
|
-
this.handlePopoverPositioning();
|
|
660
|
-
});
|
|
661
|
-
// Add scroll and resize listeners for repositioning (always)
|
|
760
|
+
// Position the popover now, and again whenever its trigger or the page moves or resizes
|
|
662
761
|
this.addScrollAndResizeListeners();
|
|
663
762
|
document.addEventListener('submit', this.handleSubmitFromPanel, true);
|
|
763
|
+
document.addEventListener('keydown', this.syncTabGuard, true);
|
|
664
764
|
// Add document listeners for light dismiss and escape key (auto type only), or for the escape
|
|
665
765
|
// key alone while hover holds a manual popover open
|
|
666
766
|
if (this.popoverType === 'auto') {
|
|
@@ -671,7 +771,20 @@ const PdsPopover = class {
|
|
|
671
771
|
popoversTakingEscape.push(this);
|
|
672
772
|
document.addEventListener('keydown', this.boundEscapeKeyHandler);
|
|
673
773
|
}
|
|
674
|
-
// Emit open event
|
|
774
|
+
// Emit open event once the panel is positioned, with the side it took already on it. A reconnect, a
|
|
775
|
+
// trigger swap or another show() can start a newer run meanwhile, which drops this one, so wait for the latest.
|
|
776
|
+
this.openEventPending = true;
|
|
777
|
+
let positioning;
|
|
778
|
+
do {
|
|
779
|
+
positioning = this.positioning;
|
|
780
|
+
await positioning;
|
|
781
|
+
} while (positioning !== this.positioning);
|
|
782
|
+
this.emitOpenEvent();
|
|
783
|
+
}
|
|
784
|
+
emitOpenEvent() {
|
|
785
|
+
if (!this.openEventPending)
|
|
786
|
+
return;
|
|
787
|
+
this.openEventPending = false;
|
|
675
788
|
this.pdsPopoverOpen.emit({
|
|
676
789
|
componentId: this.componentId,
|
|
677
790
|
popoverType: this.popoverType,
|
|
@@ -681,6 +794,7 @@ const PdsPopover = class {
|
|
|
681
794
|
* Closes the popover programmatically
|
|
682
795
|
*/
|
|
683
796
|
async hide() {
|
|
797
|
+
var _a;
|
|
684
798
|
this.clearHoverTimers();
|
|
685
799
|
if (!this.active || !this.portalEl)
|
|
686
800
|
return;
|
|
@@ -696,6 +810,7 @@ const PdsPopover = class {
|
|
|
696
810
|
// Hide portal. The dark-mode border set in a shadow root is worked out again on the next open.
|
|
697
811
|
this.portalEl.style.border = '';
|
|
698
812
|
this.portalEl.removeAttribute('data-pds-popover-open');
|
|
813
|
+
this.portalEl.removeAttribute('data-pds-popover-placement');
|
|
699
814
|
this.portalEl.style.display = 'none';
|
|
700
815
|
this.portalEl.style.opacity = '0';
|
|
701
816
|
this.portalEl.style.visibility = 'hidden';
|
|
@@ -709,8 +824,11 @@ const PdsPopover = class {
|
|
|
709
824
|
this.removeLightDismissListeners();
|
|
710
825
|
this.removeScrollAndResizeListeners();
|
|
711
826
|
document.removeEventListener('submit', this.handleSubmitFromPanel, true);
|
|
712
|
-
|
|
713
|
-
this.
|
|
827
|
+
document.removeEventListener('keydown', this.syncTabGuard, true);
|
|
828
|
+
(_a = this.tabGuardEl) === null || _a === void 0 ? void 0 : _a.removeAttribute('tabindex');
|
|
829
|
+
this.releasePanel();
|
|
830
|
+
// Closed before its first position resolved, it still announces the open before the close.
|
|
831
|
+
this.emitOpenEvent();
|
|
714
832
|
// Emit close event
|
|
715
833
|
this.pdsPopoverClose.emit({
|
|
716
834
|
componentId: this.componentId,
|
|
@@ -722,10 +840,10 @@ const PdsPopover = class {
|
|
|
722
840
|
*/
|
|
723
841
|
async toggle() {
|
|
724
842
|
if (this.active) {
|
|
725
|
-
this.hide();
|
|
843
|
+
await this.hide();
|
|
726
844
|
}
|
|
727
845
|
else {
|
|
728
|
-
this.show();
|
|
846
|
+
await this.show();
|
|
729
847
|
}
|
|
730
848
|
}
|
|
731
849
|
/**
|
|
@@ -809,19 +927,62 @@ const PdsPopover = class {
|
|
|
809
927
|
document.removeEventListener('click', this.boundClickOutsideHandler, true);
|
|
810
928
|
document.removeEventListener('keydown', this.boundEscapeKeyHandler);
|
|
811
929
|
}
|
|
930
|
+
/**
|
|
931
|
+
* The panel's controls that Tab reaches through the guard. None when the panel sits right after
|
|
932
|
+
* the popover, in a dialog, where it's already next in the Tab order.
|
|
933
|
+
*/
|
|
934
|
+
guardedTabbables() {
|
|
935
|
+
if (this.portalEl == null || this.el.nextElementSibling === this.portalEl)
|
|
936
|
+
return [];
|
|
937
|
+
return tabbable.tabbableIn(this.portalEl);
|
|
938
|
+
}
|
|
939
|
+
isAfterPopover(node) {
|
|
940
|
+
if (closest.containsComposed(this.el, node))
|
|
941
|
+
return false;
|
|
942
|
+
return isPosition(positionAcrossTrees(this.el, node), Node.DOCUMENT_POSITION_FOLLOWING);
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Moves focus to the guard without preventing the Tab, so the browser's Tab carries on from there.
|
|
946
|
+
* Inert until then, the panel can't be where it lands.
|
|
947
|
+
*/
|
|
948
|
+
leavePanel(edge, backward) {
|
|
949
|
+
var _a, _b;
|
|
950
|
+
this.leavingPanel = true;
|
|
951
|
+
(_a = this.tabGuardEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
952
|
+
this.leavingPanel = false;
|
|
953
|
+
this.portalEl.inert = true;
|
|
954
|
+
setTimeout(() => this.finishLeavingPanel(edge));
|
|
955
|
+
// Last in another popover's panel, the guard hands the Tab on to that popover's own guard.
|
|
956
|
+
const outer = panelOwners.get(closest.closest('.pds-popover', this.el));
|
|
957
|
+
const outerTabbables = (_b = outer === null || outer === void 0 ? void 0 : outer.guardedTabbables()) !== null && _b !== void 0 ? _b : [];
|
|
958
|
+
if (!backward && outerTabbables[outerTabbables.length - 1] === this.tabGuardEl)
|
|
959
|
+
outer.leavePanel(edge, false);
|
|
960
|
+
}
|
|
961
|
+
// With nowhere for the browser's Tab to go, focus would stay on the invisible guard.
|
|
962
|
+
finishLeavingPanel(edge) {
|
|
963
|
+
var _a;
|
|
964
|
+
this.releasePanel();
|
|
965
|
+
if (this.active && ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) === this.tabGuardEl)
|
|
966
|
+
edge.focus();
|
|
967
|
+
}
|
|
812
968
|
/**
|
|
813
969
|
* Adds scroll and resize listeners for repositioning
|
|
814
970
|
*/
|
|
815
971
|
addScrollAndResizeListeners() {
|
|
816
|
-
|
|
817
|
-
|
|
972
|
+
this.removeScrollAndResizeListeners();
|
|
973
|
+
if (this.triggerEl == null || this.portalEl == null)
|
|
974
|
+
return;
|
|
975
|
+
this.stopAutoUpdate = floatingUi_dom.autoUpdate(this.triggerEl, this.portalEl, () => {
|
|
976
|
+
this.positioning = this.handlePopoverPositioning().catch(error => console.warn('pds-popover: failed to position the panel', error));
|
|
977
|
+
});
|
|
818
978
|
}
|
|
819
979
|
/**
|
|
820
980
|
* Removes scroll and resize listeners
|
|
821
981
|
*/
|
|
822
982
|
removeScrollAndResizeListeners() {
|
|
823
|
-
|
|
824
|
-
|
|
983
|
+
var _a;
|
|
984
|
+
(_a = this.stopAutoUpdate) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
985
|
+
this.stopAutoUpdate = null;
|
|
825
986
|
}
|
|
826
987
|
/**
|
|
827
988
|
* Handles clicks outside the popover for light dismiss (auto type only)
|
|
@@ -885,122 +1046,38 @@ const PdsPopover = class {
|
|
|
885
1046
|
this.hide();
|
|
886
1047
|
}
|
|
887
1048
|
/**
|
|
888
|
-
*
|
|
1049
|
+
* Positions the popover relative to its trigger element, flipping to the opposite side when only that side has
|
|
1050
|
+
* room and shifting to stay 8px inside the viewport. The side it takes goes on the panel's `data-pds-popover-placement`.
|
|
889
1051
|
*/
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
if (this.
|
|
894
|
-
clearTimeout(this.scrollDebounceTimer);
|
|
895
|
-
}
|
|
896
|
-
this.scrollDebounceTimer = setTimeout(() => {
|
|
897
|
-
this.handlePopoverPositioning();
|
|
898
|
-
this.scrollDebounceTimer = null;
|
|
899
|
-
}, 10); // 10ms debounce for smooth repositioning
|
|
900
|
-
}
|
|
901
|
-
/**
|
|
902
|
-
* Handles resize events to reposition the popover (debounced for performance)
|
|
903
|
-
*/
|
|
904
|
-
handleResize() {
|
|
905
|
-
if (!this.active)
|
|
906
|
-
return;
|
|
907
|
-
if (this.resizeDebounceTimer !== null) {
|
|
908
|
-
clearTimeout(this.resizeDebounceTimer);
|
|
909
|
-
}
|
|
910
|
-
this.resizeDebounceTimer = setTimeout(() => {
|
|
911
|
-
this.handlePopoverPositioning();
|
|
912
|
-
this.resizeDebounceTimer = null;
|
|
913
|
-
}, 100); // 100ms debounce for resize
|
|
914
|
-
}
|
|
915
|
-
/**
|
|
916
|
-
* Positions the popover relative to its trigger element
|
|
917
|
-
*/
|
|
918
|
-
handlePopoverPositioning() {
|
|
919
|
-
// Prevent repositioning loops
|
|
920
|
-
if (this.isRepositioning) {
|
|
921
|
-
return;
|
|
922
|
-
}
|
|
923
|
-
this.isRepositioning = true;
|
|
924
|
-
if (this.triggerEl == null || this.portalEl == null) {
|
|
925
|
-
this.isRepositioning = false;
|
|
1052
|
+
async handlePopoverPositioning() {
|
|
1053
|
+
// Counted before the guards, so a run still in flight is dropped even when this one can't position.
|
|
1054
|
+
const run = ++this.positioningRun;
|
|
1055
|
+
if (this.triggerEl == null || this.portalEl == null)
|
|
926
1056
|
return;
|
|
927
|
-
}
|
|
928
|
-
const triggerRect = this.triggerEl.getBoundingClientRect();
|
|
929
|
-
const popoverRect = this.portalEl.getBoundingClientRect();
|
|
930
1057
|
// Safety check: ensure trigger has valid dimensions (is rendered and visible)
|
|
931
|
-
|
|
932
|
-
|
|
1058
|
+
const triggerRect = this.triggerEl.getBoundingClientRect();
|
|
1059
|
+
if (triggerRect.width === 0 || triggerRect.height === 0)
|
|
933
1060
|
return;
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
break;
|
|
947
|
-
case 'top-end':
|
|
948
|
-
top = triggerRect.top - popoverRect.height - offset;
|
|
949
|
-
left = triggerRect.right - popoverRect.width;
|
|
950
|
-
break;
|
|
951
|
-
case 'right':
|
|
952
|
-
top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;
|
|
953
|
-
left = triggerRect.right + offset;
|
|
954
|
-
break;
|
|
955
|
-
case 'right-start':
|
|
956
|
-
top = triggerRect.top;
|
|
957
|
-
left = triggerRect.right + offset;
|
|
958
|
-
break;
|
|
959
|
-
case 'right-end':
|
|
960
|
-
top = triggerRect.bottom - popoverRect.height;
|
|
961
|
-
left = triggerRect.right + offset;
|
|
962
|
-
break;
|
|
963
|
-
case 'bottom':
|
|
964
|
-
top = triggerRect.bottom + offset;
|
|
965
|
-
left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;
|
|
966
|
-
break;
|
|
967
|
-
case 'bottom-start':
|
|
968
|
-
top = triggerRect.bottom + offset;
|
|
969
|
-
left = triggerRect.left;
|
|
970
|
-
break;
|
|
971
|
-
case 'bottom-end':
|
|
972
|
-
top = triggerRect.bottom + offset;
|
|
973
|
-
left = triggerRect.right - popoverRect.width;
|
|
974
|
-
break;
|
|
975
|
-
case 'left':
|
|
976
|
-
top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;
|
|
977
|
-
left = triggerRect.left - popoverRect.width - offset;
|
|
978
|
-
break;
|
|
979
|
-
case 'left-start':
|
|
980
|
-
top = triggerRect.top;
|
|
981
|
-
left = triggerRect.left - popoverRect.width - offset;
|
|
982
|
-
break;
|
|
983
|
-
case 'left-end':
|
|
984
|
-
top = triggerRect.bottom - popoverRect.height;
|
|
985
|
-
left = triggerRect.left - popoverRect.width - offset;
|
|
986
|
-
break;
|
|
987
|
-
}
|
|
988
|
-
this.portalEl.style.top = `${top}px`;
|
|
989
|
-
this.portalEl.style.left = `${left}px`;
|
|
1061
|
+
const portal = this.portalEl;
|
|
1062
|
+
const { x: left, y: top, placement } = await floatingUi_dom.computePosition(this.triggerEl, portal, {
|
|
1063
|
+
placement: this.placement,
|
|
1064
|
+
strategy: 'fixed',
|
|
1065
|
+
// With no room on either side, stay on the preferred side: the side that overflows less can still push
|
|
1066
|
+
// a tall panel's start above the viewport.
|
|
1067
|
+
middleware: [floatingUi_dom.offset(8), floatingUi_dom.flip({ fallbackStrategy: 'initialPlacement' }), floatingUi_dom.shift({ padding: 8 })],
|
|
1068
|
+
platform: viewportPlatform,
|
|
1069
|
+
});
|
|
1070
|
+
if (!this.active || run !== this.positioningRun || portal !== this.portalEl)
|
|
1071
|
+
return;
|
|
1072
|
+
portal.setAttribute('data-pds-popover-placement', placement);
|
|
990
1073
|
// `position: fixed` measures from the viewport unless an ancestor becomes its containing block,
|
|
991
|
-
// as a modal dialog does with its backdrop filter.
|
|
992
|
-
const
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
this.portalEl.style.left = `${2 * left - placed.left}px`;
|
|
996
|
-
}
|
|
997
|
-
// Reset the repositioning guard after a short delay
|
|
998
|
-
setTimeout(() => {
|
|
999
|
-
this.isRepositioning = false;
|
|
1000
|
-
}, 16); // ~1 frame at 60fps
|
|
1074
|
+
// as a modal dialog does with its backdrop filter. Offset by however far that block's corner is from the viewport's.
|
|
1075
|
+
const origin = containingBlockOrigin(portal);
|
|
1076
|
+
portal.style.top = `${top - origin.top}px`;
|
|
1077
|
+
portal.style.left = `${left - origin.left}px`;
|
|
1001
1078
|
}
|
|
1002
1079
|
render() {
|
|
1003
|
-
return (index.h(index.Host, { key: '
|
|
1080
|
+
return (index.h(index.Host, { key: '85422eb7544a4795ce78b51684b7224a5d856a4e', id: this.componentId }, index.h("span", { key: '6fe9c827ed4d46ca723d6013f296faf80ba31366', class: "pds-popover__trigger-wrapper" }, index.h("slot", { key: '970d1974d2be1451e670a36e7d2ccdc5979595bb', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), index.h("span", { key: '0c76f76286a30d8e6e948bd0abab3317b3673aa6', class: "pds-popover__tab-guard", ref: (el) => (this.tabGuardEl = el !== null && el !== void 0 ? el : null), onFocus: this.handleTabGuardFocus }), index.h("div", { key: '692c45e93899e74a3d5970f3a3625f6115ab63b0', class: "pds-popover__content-slot-wrapper" }, index.h("slot", { key: 'f1566e0eb1eb08626f2a8285447702ce96b09f4d', onSlotchange: this.handleContentSlotChange }))));
|
|
1004
1081
|
}
|
|
1005
1082
|
get el() { return index.getElement(this); }
|
|
1006
1083
|
static get watchers() { return {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var attributes = require('./attributes-
|
|
3
|
+
var index = require('./index-BsWY_xEJ.js');
|
|
4
|
+
var attributes = require('./attributes-CW49XqaL.js');
|
|
5
5
|
var utils = require('./utils-BhRmyxT8.js');
|
|
6
|
-
require('./keep-hydrated-
|
|
6
|
+
require('./keep-hydrated-AKoh0DG4.js');
|
|
7
7
|
|
|
8
8
|
const pdsProgressCss = () => `:host{--color-progress-fill:var(--pine-color-primary);--sizing-progress-bar-width:100%;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:var(--sizing-progress-bar-width)}@-webkit-keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}@keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}.pds-progress{-ms-flex-align:center;align-items:center;background-color:var(--pine-color-background-muted);border-radius:var(--pine-dimension-2xs);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:var(--pine-dimension-xs);position:relative;width:100%}:host(.is-animated) progress,:host(.is-animated) progress::-webkit-progress-bar{-webkit-animation:progressBar 3s ease;animation:progressBar 3s ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}progress,progress::-webkit-progress-bar{background-color:transparent;border:0;height:var(--pine-dimension-xs);width:100%}progress::-webkit-progress-value{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}progress::-moz-progress-bar{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}.pds-progress__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pds-progress__percentage{font-weight:var(--pine-font-weight-medium);-webkit-margin-start:calc(var(--pine-dimension-md) / 2);margin-inline-start:calc(var(--pine-dimension-md) / 2)}`;
|
|
9
9
|
|
|
@@ -37,7 +37,7 @@ const PdsProgress = class {
|
|
|
37
37
|
const normalizedFillColor = utils.normalizeColorValue(this.fillColor);
|
|
38
38
|
const hostClass = this.animated ? { 'is-animated': this.animated } : '';
|
|
39
39
|
this.hostKeeper.record(hostClass);
|
|
40
|
-
return (index.h(index.Host, { key: '
|
|
40
|
+
return (index.h(index.Host, { key: '6d2151cdd1f65b33a7478e5ac12df711d8252d1f', class: hostClass }, index.h("div", { key: '4a902c6c7d51fe8e8a778e1fa24bdbf95d625b1f', class: "pds-progress" }, index.h("label", { key: 'c50955234a7eee05cdf47531e25b4413f206e416', class: "pds-progress__label", htmlFor: this.componentId }, this.label), index.h("progress", { key: 'c54ad90f7b3fcf3368afca4c5618949f1a370114', id: this.componentId, max: "100", style: normalizedFillColor ? { '--color-progress-fill': normalizedFillColor } : {}, value: this.percent })), this.showPercent && index.h("div", { key: '6b3e3f42f04a516ef7992d1f8bc967be432f55bb', class: "pds-progress__percentage" }, this.percent, "%")));
|
|
41
41
|
}
|
|
42
42
|
get el() { return index.getElement(this); }
|
|
43
43
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
require('./keep-hydrated-
|
|
3
|
+
var index = require('./index-BsWY_xEJ.js');
|
|
4
|
+
require('./keep-hydrated-AKoh0DG4.js');
|
|
5
5
|
|
|
6
6
|
const pdsPropertyCss = () => `:host{color:var(--pine-color-text-message);font:var(--pine-typography-body-medium)}`;
|
|
7
7
|
|
|
@@ -14,7 +14,7 @@ const PdsProperty = class {
|
|
|
14
14
|
this.icon = 'star';
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return (index.h(index.Host, { key: '
|
|
17
|
+
return (index.h(index.Host, { key: '198ffd747b7a84a6f58a1b072890fc8bd3ed93aa', id: this.componentId }, index.h("pds-box", { key: 'be71f3d96efea0a45f357d888f71dbe5ad8b68d6', "align-items": "center", gap: "xs" }, index.h("pds-icon", { key: '1a52407e00b158d5e6a515ad4b07ed3407d31f75', icon: this.icon, size: "var(--pine-dimension-sm)", "aria-hidden": "true" }), index.h("slot", { key: '46ac5019b27bdd079c7853abeef8f7c240d19c2c' }))));
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
PdsProperty.style = pdsPropertyCss();
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-BsWY_xEJ.js');
|
|
4
4
|
var form = require('./form-MhwfKTuo.js');
|
|
5
5
|
var index$1 = require('./index-Do70atou.js');
|
|
6
|
-
require('./keep-hydrated-
|
|
6
|
+
require('./keep-hydrated-AKoh0DG4.js');
|
|
7
7
|
|
|
8
8
|
const pdsRadioGroupCss = () => `.sc-pds-radio-group-h{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-sm)}.is-invalid.sc-pds-radio-group-h .pds-radio-group__message--error.sc-pds-radio-group{color:var(--pine-color-text-message-danger)}.pds-radio-group__label.sc-pds-radio-group{color:var(--pine-color-text-label);font:var(--pine-typography-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-radio-group__radios.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pds-radio-group-gap, var(--pine-dimension-xs))}.pds-radio-group__radios--row.sc-pds-radio-group{-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.pds-radio-group__radios--column.sc-pds-radio-group{-ms-flex-direction:column;flex-direction:column}.pds-radio-group__message.sc-pds-radio-group{color:var(--pine-color-text-message);font:var(--pine-typography-body);width:100%}.pds-radio-group__message--error.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-radio-group__message--error.sc-pds-radio-group pds-icon.sc-pds-radio-group{-webkit-margin-before:var(--pine-dimension-050);margin-block-start:var(--pine-dimension-050)}`;
|
|
9
9
|
|
|
@@ -165,13 +165,13 @@ const PdsRadioGroup = class {
|
|
|
165
165
|
render() {
|
|
166
166
|
const gapValue = this.getGapValue();
|
|
167
167
|
const ariaDescribedBy = this.getAriaDescribedBy();
|
|
168
|
-
return (index.h(index.Host, { key: '
|
|
168
|
+
return (index.h(index.Host, { key: 'aaf53113f06a0f49706e53735701fba64e79cb4d', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
|
|
169
169
|
'--pds-radio-group-gap': gapValue,
|
|
170
|
-
} }, this.groupLabel && (index.h("div", { key: '
|
|
170
|
+
} }, this.groupLabel && (index.h("div", { key: '4be5e43146bf348929e45498107862aaca161644', class: "pds-radio-group__label" }, this.groupLabel)), index.h("div", { key: 'b4a1b870c1a7167b8dcbcf0a11808bbd9a8cec4e', class: {
|
|
171
171
|
'pds-radio-group__radios': true,
|
|
172
172
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
173
173
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
174
|
-
} }, index.h("slot", { key: '
|
|
174
|
+
} }, index.h("slot", { key: '2d841cc69c35a4f9da933bbb33c1384ca343e077', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (index.h("div", { key: 'a09bb9e739570c06dc1907cb4e2dceecca36f7d3', class: "pds-radio-group__message", id: form.messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (index.h("div", { key: 'b8fe891cc4b8683d18c19b3b4ddb70212185b954', class: "pds-radio-group__message pds-radio-group__message--error", id: form.messageId(this._groupId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '9a15d81d8303eeb5a928b96c760f6b15e536e0dc', "aria-hidden": "true", icon: index$1.danger, size: "small" }), this.errorMessage))));
|
|
175
175
|
}
|
|
176
176
|
get el() { return index.getElement(this); }
|
|
177
177
|
static get watchers() { return {
|