@pine-ds/core 4.1.0 → 4.2.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/index.d.ts +8 -0
- package/components/index.js +1 -1
- package/components/mock-pds-modal.js +1 -1
- package/components/pds-chip2.js +1 -1
- package/components/pds-copytext.js +1 -1
- package/components/pds-drawer-content.d.ts +11 -0
- package/components/pds-drawer-content.js +1 -0
- package/components/pds-drawer-footer.d.ts +11 -0
- package/components/pds-drawer-footer.js +1 -0
- package/components/pds-drawer-header.d.ts +11 -0
- package/components/pds-drawer-header.js +1 -0
- package/components/pds-drawer.d.ts +11 -0
- package/components/pds-drawer.js +1 -0
- 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-input.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-modal.js +1 -1
- package/components/pds-modal2.js +1 -0
- 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/truncation-tooltip.js +1 -1
- package/dist/cjs/{index-BMV0nzMk.js → index-Bu3NXpbK.js} +1 -1
- package/dist/cjs/index.cjs.js +20 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
- package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
- package/dist/cjs/pds-button.cjs.entry.js +1 -1
- package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/pds-chip.cjs.entry.js +17 -8
- package/dist/cjs/pds-copytext.cjs.entry.js +7 -3
- package/dist/cjs/pds-drawer-content.cjs.entry.js +23 -0
- package/dist/cjs/pds-drawer-footer.cjs.entry.js +23 -0
- package/dist/cjs/pds-drawer-header.cjs.entry.js +23 -0
- package/dist/cjs/pds-drawer.cjs.entry.js +137 -0
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
- package/dist/cjs/pds-filter.cjs.entry.js +2 -2
- package/dist/cjs/pds-filters.cjs.entry.js +1 -1
- package/dist/cjs/pds-image.cjs.entry.js +2 -2
- package/dist/cjs/pds-input.cjs.entry.js +3 -3
- package/dist/cjs/pds-link.cjs.entry.js +3 -3
- package/dist/cjs/pds-loader.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
- package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal.cjs.entry.js +141 -10
- package/dist/cjs/pds-multiselect.cjs.entry.js +4 -4
- package/dist/cjs/pds-popover.cjs.entry.js +1 -1
- package/dist/cjs/pds-progress.cjs.entry.js +1 -1
- package/dist/cjs/pds-property.cjs.entry.js +1 -1
- package/dist/cjs/pds-radio-group.cjs.entry.js +4 -4
- package/dist/cjs/pds-radio.cjs.entry.js +4 -4
- package/dist/cjs/pds-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-select.cjs.entry.js +2 -2
- package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
- package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +5 -5
- package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
- package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
- package/dist/cjs/pds-text.cjs.entry.js +5 -23
- package/dist/cjs/pds-textarea.cjs.entry.js +5 -5
- package/dist/cjs/pds-toast.cjs.entry.js +3 -3
- package/dist/cjs/pds-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/cjs/{truncation-tooltip-CVzAha5B.js → truncation-tooltip-Bps7_rUy.js} +51 -1
- package/dist/collection/collection-manifest.json +4 -0
- package/dist/collection/components/pds-chip/pds-chip.js +15 -6
- package/dist/collection/components/pds-copytext/pds-copytext.js +5 -1
- package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.css +22 -0
- package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +29 -0
- package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.css +15 -0
- package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +23 -0
- package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.css +15 -0
- package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +23 -0
- package/dist/collection/components/pds-drawer/pds-drawer.css +36 -0
- package/dist/collection/components/pds-drawer/pds-drawer.js +362 -0
- package/dist/collection/components/pds-drawer/stories/pds-drawer.stories.js +72 -0
- 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.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-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 +164 -10
- 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 +1 -1
- 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.css +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 +3 -3
- 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-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 +2 -2
- 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/index.js +1 -0
- package/dist/collection/utils/test/reduced-motion.js +78 -0
- package/dist/collection/utils/truncation-tooltip.js +51 -1
- package/dist/docs.json +385 -5
- package/dist/esm/{index-Bu9gFIxM.js → index-DdPaBxPo.js} +1 -1
- package/dist/esm/index.js +19 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mock-pds-modal.entry.js +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-avatar.entry.js +1 -1
- package/dist/esm/pds-button.entry.js +1 -1
- package/dist/esm/pds-checkbox.entry.js +1 -1
- package/dist/esm/pds-chip.entry.js +17 -8
- package/dist/esm/pds-copytext.entry.js +7 -3
- package/dist/esm/pds-drawer-content.entry.js +21 -0
- package/dist/esm/pds-drawer-footer.entry.js +21 -0
- package/dist/esm/pds-drawer-header.entry.js +21 -0
- package/dist/esm/pds-drawer.entry.js +135 -0
- package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm/pds-filter.entry.js +2 -2
- package/dist/esm/pds-filters.entry.js +1 -1
- package/dist/esm/pds-image.entry.js +2 -2
- package/dist/esm/pds-input.entry.js +3 -3
- package/dist/esm/pds-link.entry.js +3 -3
- package/dist/esm/pds-loader.entry.js +1 -1
- package/dist/esm/pds-modal-content.entry.js +2 -2
- package/dist/esm/pds-modal-footer.entry.js +1 -1
- package/dist/esm/pds-modal-header.entry.js +1 -1
- package/dist/esm/pds-modal.entry.js +141 -10
- package/dist/esm/pds-multiselect.entry.js +4 -4
- package/dist/esm/pds-popover.entry.js +1 -1
- package/dist/esm/pds-progress.entry.js +1 -1
- package/dist/esm/pds-property.entry.js +1 -1
- package/dist/esm/pds-radio-group.entry.js +4 -4
- package/dist/esm/pds-radio.entry.js +4 -4
- package/dist/esm/pds-row.entry.js +1 -1
- package/dist/esm/pds-select.entry.js +2 -2
- package/dist/esm/pds-sortable-item.entry.js +2 -2
- package/dist/esm/pds-sortable.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +5 -5
- package/dist/esm/pds-table-body.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js +3 -3
- package/dist/esm/pds-table-head-cell.entry.js +3 -3
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-row.entry.js +1 -1
- package/dist/esm/pds-tabpanel.entry.js +1 -1
- package/dist/esm/pds-tabs.entry.js +1 -1
- package/dist/esm/pds-text.entry.js +3 -21
- package/dist/esm/pds-textarea.entry.js +5 -5
- package/dist/esm/pds-toast.entry.js +3 -3
- package/dist/esm/pds-tooltip.entry.js +2 -2
- package/dist/esm/pine-core.js +1 -1
- package/dist/esm/{truncation-tooltip-Blk4GigP.js → truncation-tooltip-CdtEBn_5.js} +51 -1
- package/dist/esm-es5/index.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-avatar.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-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-drawer-content.entry.js +1 -0
- package/dist/esm-es5/pds-drawer-footer.entry.js +1 -0
- package/dist/esm-es5/pds-drawer-header.entry.js +1 -0
- package/dist/esm-es5/pds-drawer.entry.js +1 -0
- 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-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 +1 -1
- package/dist/esm-es5/pds-switch.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-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/truncation-tooltip-CdtEBn_5.js +1 -0
- package/dist/pine-core/index.esm.js +1 -0
- package/dist/pine-core/p-02a47ebb.entry.js +1 -0
- package/dist/pine-core/{p-6089d811.entry.js → p-049681fc.entry.js} +1 -1
- package/dist/pine-core/p-053b0898.system.entry.js +1 -0
- package/dist/pine-core/{p-b0531455.entry.js → p-09413b07.entry.js} +1 -1
- package/dist/pine-core/{p-ba8bd9dc.system.entry.js → p-0ab735aa.system.entry.js} +1 -1
- package/dist/pine-core/p-12182cab.entry.js +1 -0
- package/dist/pine-core/p-15d3a4bc.system.entry.js +1 -0
- package/dist/pine-core/{p-bba759f8.system.entry.js → p-1614c000.system.entry.js} +1 -1
- package/dist/pine-core/{p-c0753d9f.entry.js → p-17dc3f87.entry.js} +1 -1
- package/dist/pine-core/p-18a59cdd.system.entry.js +1 -0
- package/dist/pine-core/{p-c713ffc6.system.entry.js → p-1e2a9b5d.system.entry.js} +1 -1
- package/dist/pine-core/{p-ce63f726.system.entry.js → p-1f307e59.system.entry.js} +1 -1
- package/dist/pine-core/{p-056667f0.entry.js → p-2016c878.entry.js} +1 -1
- package/dist/pine-core/{p-bfa640f4.system.entry.js → p-2eb8d697.system.entry.js} +1 -1
- package/dist/pine-core/{p-af4a24d9.entry.js → p-31e1722e.entry.js} +1 -1
- package/dist/pine-core/{p-63f5f66f.system.entry.js → p-324a7ae4.system.entry.js} +1 -1
- package/dist/pine-core/{p-d157a33a.entry.js → p-32f10aa9.entry.js} +1 -1
- package/dist/pine-core/p-33c0f3c9.system.entry.js +1 -0
- package/dist/pine-core/{p-b17fa86a.system.entry.js → p-3464b456.system.entry.js} +1 -1
- package/dist/pine-core/{p-902b3e8b.system.entry.js → p-34e38037.system.entry.js} +1 -1
- package/dist/pine-core/{p-8e6a8a8e.entry.js → p-3605a5f5.entry.js} +1 -1
- package/dist/pine-core/{p-65557500.entry.js → p-376f8286.entry.js} +1 -1
- package/dist/pine-core/{p-0e89a189.entry.js → p-3873f55b.entry.js} +1 -1
- package/dist/pine-core/{p-a7eabc0c.system.entry.js → p-3c229a00.system.entry.js} +1 -1
- package/dist/pine-core/{p-46f0dda5.system.entry.js → p-3c4236a8.system.entry.js} +1 -1
- package/dist/pine-core/{p-afd07d5b.entry.js → p-3e0c6384.entry.js} +1 -1
- package/dist/pine-core/p-3eca0b00.entry.js +1 -0
- package/dist/pine-core/{p-0fcda1ec.entry.js → p-3f12afb1.entry.js} +1 -1
- package/dist/pine-core/p-43338f77.system.entry.js +1 -0
- package/dist/pine-core/{p-463eb0e6.system.entry.js → p-4661259e.system.entry.js} +1 -1
- package/dist/pine-core/{p-92c79ed4.system.entry.js → p-4d388957.system.entry.js} +1 -1
- package/dist/pine-core/{p-3050c66f.entry.js → p-51b8490d.entry.js} +1 -1
- package/dist/pine-core/{p-e16dfb32.system.entry.js → p-51dff5af.system.entry.js} +1 -1
- package/dist/pine-core/p-53a4852e.system.entry.js +1 -0
- package/dist/pine-core/{p-d54af26c.system.entry.js → p-56b34569.system.entry.js} +1 -1
- package/dist/pine-core/{p-cf72e9b1.system.entry.js → p-5772f260.system.entry.js} +1 -1
- package/dist/pine-core/{p-9fd1e8f4.system.entry.js → p-585ad368.system.entry.js} +1 -1
- package/dist/pine-core/p-591fbff5.entry.js +1 -0
- package/dist/pine-core/{p-2fd71a0c.entry.js → p-5aea1082.entry.js} +1 -1
- package/dist/pine-core/{p-460aa66f.system.entry.js → p-5dd393cd.system.entry.js} +1 -1
- package/dist/pine-core/p-613a64f1.entry.js +1 -0
- package/dist/pine-core/{p-e450eb27.system.entry.js → p-630f33d6.system.entry.js} +1 -1
- package/dist/pine-core/{p-33de0eb7.system.entry.js → p-63686e2a.system.entry.js} +1 -1
- package/dist/pine-core/{p-2d4b9253.entry.js → p-6f7a7d55.entry.js} +1 -1
- package/dist/pine-core/p-6fd863e5.system.entry.js +1 -0
- package/dist/pine-core/{p-8702635d.system.entry.js → p-76286a68.system.entry.js} +1 -1
- package/dist/pine-core/p-78fd593d.system.entry.js +1 -0
- package/dist/pine-core/{p-ae296598.entry.js → p-7e2b934d.entry.js} +1 -1
- package/dist/pine-core/p-7e44106e.entry.js +1 -0
- package/dist/pine-core/p-84ade640.entry.js +1 -0
- package/dist/pine-core/{p-eb4058ed.system.entry.js → p-869ed1c0.system.entry.js} +1 -1
- package/dist/pine-core/{p-9b68669f.entry.js → p-8be301b6.entry.js} +1 -1
- package/dist/pine-core/{p-08151143.system.entry.js → p-8cc270f0.system.entry.js} +1 -1
- package/dist/pine-core/p-8cea0d7a.system.entry.js +1 -0
- package/dist/pine-core/{p-3b9e77b3.entry.js → p-8eef80d5.entry.js} +1 -1
- package/dist/pine-core/{p-b255d3b7.entry.js → p-957dbb0c.entry.js} +1 -1
- package/dist/pine-core/p-B2nn1gSd.js +1 -0
- package/dist/pine-core/{p-CRCxGYgw.system.js → p-B2qvvB3q.system.js} +1 -1
- package/dist/pine-core/p-Dr-FzkdE.system.js +1 -1
- package/dist/pine-core/p-G3CPPJEt.system.js +1 -0
- package/dist/pine-core/{p-ce79321b.system.entry.js → p-a11a9c40.system.entry.js} +1 -1
- package/dist/pine-core/p-a4a58477.entry.js +1 -0
- package/dist/pine-core/{p-9a7294e7.system.entry.js → p-a98bf89f.system.entry.js} +1 -1
- package/dist/pine-core/{p-aecaff12.entry.js → p-ac0098fd.entry.js} +1 -1
- package/dist/pine-core/{p-228a9068.system.entry.js → p-b32e3174.system.entry.js} +1 -1
- package/dist/pine-core/{p-2af19aa7.entry.js → p-b923a70b.entry.js} +1 -1
- package/dist/pine-core/p-be4a6cc2.entry.js +1 -0
- package/dist/pine-core/{p-d804d37b.system.entry.js → p-be819bff.system.entry.js} +1 -1
- package/dist/pine-core/{p-85434de8.system.entry.js → p-c0b3f2c1.system.entry.js} +1 -1
- package/dist/pine-core/p-c1f8a187.entry.js +1 -0
- package/dist/pine-core/{p-4d6944aa.entry.js → p-c5ce6dea.entry.js} +1 -1
- package/dist/pine-core/{p-97198cb6.system.entry.js → p-c8bffb08.system.entry.js} +1 -1
- package/dist/pine-core/p-cf24ed1e.system.entry.js +1 -0
- package/dist/pine-core/{p-9487ff20.system.entry.js → p-d0d2a886.system.entry.js} +1 -1
- package/dist/pine-core/{p-f3683be8.entry.js → p-d12ef40d.entry.js} +1 -1
- package/dist/pine-core/{p-aa208514.entry.js → p-d21739eb.entry.js} +1 -1
- package/dist/pine-core/p-d280741f.entry.js +1 -0
- package/dist/pine-core/p-d43db3ba.entry.js +1 -0
- package/dist/pine-core/{p-1e952dbb.entry.js → p-d46adf7d.entry.js} +1 -1
- package/dist/pine-core/{p-7a1971ec.entry.js → p-d7865297.entry.js} +1 -1
- package/dist/pine-core/{p-226232a7.system.entry.js → p-d9ffb2d9.system.entry.js} +1 -1
- package/dist/pine-core/p-db5703f2.entry.js +1 -0
- package/dist/pine-core/p-dd6d9807.system.entry.js +1 -0
- package/dist/pine-core/p-e0da17aa.system.entry.js +1 -0
- package/dist/pine-core/{p-4923a3fe.entry.js → p-e3600c53.entry.js} +1 -1
- package/dist/pine-core/{p-a9e54964.entry.js → p-e3a7d2db.entry.js} +1 -1
- package/dist/pine-core/{p-04a30a2d.system.entry.js → p-e3cd4627.system.entry.js} +1 -1
- package/dist/pine-core/{p-1649dd61.system.entry.js → p-e410b0d8.system.entry.js} +1 -1
- package/dist/pine-core/p-e5bbe8cc.entry.js +1 -0
- package/dist/pine-core/{p-4dad0878.entry.js → p-e95225cf.entry.js} +1 -1
- package/dist/pine-core/{p-544ccf67.entry.js → p-ed297f3e.entry.js} +1 -1
- package/dist/pine-core/{p-fcf91f14.system.entry.js → p-f21aea90.system.entry.js} +1 -1
- package/dist/pine-core/{p-a3c4c0ee.entry.js → p-f7a5062f.entry.js} +1 -1
- package/dist/pine-core/p-f94667b5.entry.js +1 -0
- package/dist/pine-core/p-fbf5f315.entry.js +1 -0
- package/dist/pine-core/{p-7c18e9e8.system.entry.js → p-fec298bb.system.entry.js} +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/types/components/pds-drawer/pds-drawer-content/pds-drawer-content.d.ts +11 -0
- package/dist/types/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.d.ts +5 -0
- package/dist/types/components/pds-drawer/pds-drawer-header/pds-drawer-header.d.ts +5 -0
- package/dist/types/components/pds-drawer/pds-drawer.d.ts +78 -0
- package/dist/types/components/pds-modal/pds-modal.d.ts +38 -0
- package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +2 -1
- package/dist/types/components/pds-text/pds-text.d.ts +2 -1
- package/dist/types/components.d.ts +228 -4
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/test/reduced-motion.d.ts +30 -0
- package/dist/types/utils/truncation-tooltip.d.ts +12 -0
- package/dist/vscode.html-data.json +139 -2
- package/hydrate/index.js +538 -101
- package/hydrate/index.mjs +538 -101
- package/package.json +7 -3
- package/dist/esm-es5/truncation-tooltip-Blk4GigP.js +0 -1
- package/dist/pine-core/p-0d73d473.entry.js +0 -1
- package/dist/pine-core/p-1ba361cb.entry.js +0 -1
- package/dist/pine-core/p-210f0994.system.entry.js +0 -1
- package/dist/pine-core/p-2e214db6.entry.js +0 -1
- package/dist/pine-core/p-3cdc1a5b.entry.js +0 -1
- package/dist/pine-core/p-4faff617.entry.js +0 -1
- package/dist/pine-core/p-50e0f726.system.entry.js +0 -1
- package/dist/pine-core/p-520f7a5b.entry.js +0 -1
- package/dist/pine-core/p-53999cd6.system.entry.js +0 -1
- package/dist/pine-core/p-5c239f0a.entry.js +0 -1
- package/dist/pine-core/p-611f68b7.system.entry.js +0 -1
- package/dist/pine-core/p-897fe88c.entry.js +0 -1
- package/dist/pine-core/p-9507eb49.system.entry.js +0 -1
- package/dist/pine-core/p-BNSGedhN.js +0 -1
- package/dist/pine-core/p-YWpyar7R.system.js +0 -1
- package/dist/pine-core/p-a53222f7.entry.js +0 -1
- package/dist/pine-core/p-a8ab4d9b.entry.js +0 -1
- package/dist/pine-core/p-b52deffb.entry.js +0 -1
- package/dist/pine-core/p-b6c2090f.system.entry.js +0 -1
- package/dist/pine-core/p-d27ef352.system.entry.js +0 -1
- package/dist/pine-core/p-e11795db.system.entry.js +0 -1
- package/dist/pine-core/p-f09ce49e.entry.js +0 -1
- /package/dist/esm-es5/{index-Bu9gFIxM.js → index-DdPaBxPo.js} +0 -0
- /package/dist/pine-core/{p-Bjc6fc_Y.system.js → p--Llh7wKm.system.js} +0 -0
- /package/dist/pine-core/{p-Bu9gFIxM.js → p-DdPaBxPo.js} +0 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CuQil7H0.js');
|
|
4
|
+
var reconnectedContent = require('./reconnected-content-CpnEQcTp.js');
|
|
5
|
+
|
|
6
|
+
const pdsDrawerCss = () => `.pds-drawer__modal>.pds-modal__backdrop{-ms-flex-align:stretch;align-items:stretch;background-color:transparent;pointer-events:none}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-drawer__modal>.pds-modal__backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.pds-drawer__modal>.pds-modal__backdrop>.pds-modal{border-radius:0;height:100%;margin:0;max-height:100%;max-width:100%;pointer-events:auto;width:var(--pds-drawer-width, 500px)}.pds-drawer{display:contents}.pds-drawer.pds-drawer--end .pds-drawer__modal>.pds-modal__backdrop{-ms-flex-pack:end;justify-content:flex-end}.pds-drawer.pds-drawer--start .pds-drawer__modal>.pds-modal__backdrop{-ms-flex-pack:start;justify-content:flex-start}.pds-drawer.pds-drawer--sm{--pds-drawer-width:360px}.pds-drawer.pds-drawer--md{--pds-drawer-width:500px}`;
|
|
7
|
+
|
|
8
|
+
// Known selectors for content Pine components portal to document.body rather
|
|
9
|
+
// than rendering in place — pds-popover, pds-tooltip, pds-combobox's dropdown.
|
|
10
|
+
// A pointerdown landing on one of these is not "outside" the drawer in the
|
|
11
|
+
// sense light dismiss cares about: it belongs to an overlay something inside
|
|
12
|
+
// the drawer opened, even though it is not a DOM descendant of the drawer.
|
|
13
|
+
const PORTALED_OVERLAY_SELECTOR = '.pds-popover, .pds-tooltip, .pds-combobox-dropdown-portal';
|
|
14
|
+
const PdsDrawer = class {
|
|
15
|
+
constructor(hostRef) {
|
|
16
|
+
index.registerInstance(this, hostRef);
|
|
17
|
+
this.pdsDrawerOpen = index.createEvent(this, "pdsDrawerOpen");
|
|
18
|
+
this.pdsDrawerClose = index.createEvent(this, "pdsDrawerClose");
|
|
19
|
+
/**
|
|
20
|
+
* Whether the drawer is open
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
this.open = false;
|
|
24
|
+
/**
|
|
25
|
+
* Which edge of the viewport the drawer is docked to. Logical, so this is
|
|
26
|
+
* free under RTL — `end` is the inline-end edge regardless of direction.
|
|
27
|
+
* @default 'end'
|
|
28
|
+
*/
|
|
29
|
+
this.side = 'end';
|
|
30
|
+
/**
|
|
31
|
+
* The drawer's width.
|
|
32
|
+
* @default 'md'
|
|
33
|
+
*/
|
|
34
|
+
this.size = 'md';
|
|
35
|
+
/**
|
|
36
|
+
* Whether the drawer content should be scrollable
|
|
37
|
+
* @default true
|
|
38
|
+
*/
|
|
39
|
+
this.scrollable = true;
|
|
40
|
+
/**
|
|
41
|
+
* Whether the drawer can be dismissed with a pointerdown outside it.
|
|
42
|
+
* Replaces `pds-modal`'s `backdropDismiss` — there is no backdrop to click.
|
|
43
|
+
* This also gates Escape, matching how `backdropDismiss` gates Escape on
|
|
44
|
+
* `pds-modal` today: setting this to `false` means the close button is the
|
|
45
|
+
* only way out.
|
|
46
|
+
*
|
|
47
|
+
* A trigger outside the drawer should only ever set `open` to `true` and
|
|
48
|
+
* leave closing to the drawer itself. A toggle-style trigger (`open =
|
|
49
|
+
* !open`) fights light dismiss: clicking it while open closes the drawer
|
|
50
|
+
* on `pointerdown`, then the trigger's own click handler re-opens it.
|
|
51
|
+
* @default true
|
|
52
|
+
*/
|
|
53
|
+
this.lightDismiss = true;
|
|
54
|
+
/**
|
|
55
|
+
* Whether to move focus into the drawer when it opens. `auto` is right for
|
|
56
|
+
* a drawer opened by a direct user action (a click, a deep link the user
|
|
57
|
+
* just navigated to). Set to `none` for a drawer that can open from a
|
|
58
|
+
* background event while the user is mid-task elsewhere on the page —
|
|
59
|
+
* moving focus there would interrupt them, and the page stays live under
|
|
60
|
+
* a non-modal drawer, so it is a genuine data-entry risk, not just an
|
|
61
|
+
* annoyance.
|
|
62
|
+
* @default 'auto'
|
|
63
|
+
*/
|
|
64
|
+
this.initialFocus = 'auto';
|
|
65
|
+
}
|
|
66
|
+
// Unwraps a nested pds-modal left by a page-cache (Turbo, bfcache) reconnect
|
|
67
|
+
// — the same bug class fixed for pds-modal-header/-content/-footer. Every
|
|
68
|
+
// render wraps the slotted content in a fresh, marked pds-modal; a reconnect
|
|
69
|
+
// that restores a prior render's pds-modal in our light DOM ends up with
|
|
70
|
+
// that stale one nested inside the new one's content.
|
|
71
|
+
//
|
|
72
|
+
// The container has to be the inner `.pds-modal` content div, not the
|
|
73
|
+
// `<pds-modal>` tag itself — that tag's first child is always its own
|
|
74
|
+
// rendered `dialog.pds-modal__backdrop`, never another `<pds-modal>`, so a
|
|
75
|
+
// bare-tag check there never matches. The `.pds-drawer__modal` marker on
|
|
76
|
+
// the staleness selector (rather than the bare `pds-modal` tag) keeps this
|
|
77
|
+
// from also unwrapping a consumer's own nested pds-modal, like a confirm
|
|
78
|
+
// dialog placed first in the drawer's content — only a stale copy of our
|
|
79
|
+
// own wrapper carries that class.
|
|
80
|
+
componentDidRender() {
|
|
81
|
+
reconnectedContent.unwrapReconnectedContent(this.el.querySelector('pds-modal.pds-drawer__modal .pds-modal'), 'pds-modal.pds-drawer__modal', '.pds-modal');
|
|
82
|
+
}
|
|
83
|
+
// pds-modal closes itself (Escape, light dismiss, a consumer's close
|
|
84
|
+
// button toggling its own `open`) and only updates its own `open` prop —
|
|
85
|
+
// mirror that back onto ours so a consumer's binding stays correct, and
|
|
86
|
+
// re-emit as our own event rather than leaking pds-modal's event name.
|
|
87
|
+
// Both events bubble, so a nested pds-modal (a confirm dialog inside the
|
|
88
|
+
// drawer's own content) would otherwise trigger these too — only react to
|
|
89
|
+
// our own direct inner modal.
|
|
90
|
+
handleModalClose(e) {
|
|
91
|
+
if (e.target !== this.modalEl)
|
|
92
|
+
return;
|
|
93
|
+
this.open = false;
|
|
94
|
+
this.pdsDrawerClose.emit();
|
|
95
|
+
}
|
|
96
|
+
handleModalOpen(e) {
|
|
97
|
+
if (e.target !== this.modalEl)
|
|
98
|
+
return;
|
|
99
|
+
this.pdsDrawerOpen.emit();
|
|
100
|
+
}
|
|
101
|
+
// Light dismiss: a pointerdown anywhere outside the drawer closes it. This
|
|
102
|
+
// has to be a listener of our own, not pds-modal's backdrop-click handler —
|
|
103
|
+
// the backdrop is pointer-events:none out here (see pds-drawer.scss) so the
|
|
104
|
+
// page underneath stays genuinely clickable, which means a click there
|
|
105
|
+
// never reaches pds-modal's backdrop element at all.
|
|
106
|
+
handleOutsidePointerDown(e) {
|
|
107
|
+
if (!this.lightDismiss || !this.open)
|
|
108
|
+
return;
|
|
109
|
+
const target = e.target;
|
|
110
|
+
if (!target)
|
|
111
|
+
return;
|
|
112
|
+
if (this.el.contains(target))
|
|
113
|
+
return;
|
|
114
|
+
if (target.closest(PORTALED_OVERLAY_SELECTOR))
|
|
115
|
+
return;
|
|
116
|
+
// A sibling pds-modal — e.g. a confirm dialog opened from inside the
|
|
117
|
+
// drawer but mounted at the document root rather than nested in our own
|
|
118
|
+
// content — is neither a descendant of the drawer nor on the portaled
|
|
119
|
+
// list above, so without this it reads as "outside" and a click inside
|
|
120
|
+
// it (or on its own backdrop) would close the drawer underneath it. That
|
|
121
|
+
// modal already owns its own dismiss semantics; defer to them instead.
|
|
122
|
+
if (target.closest('pds-modal'))
|
|
123
|
+
return;
|
|
124
|
+
this.open = false;
|
|
125
|
+
}
|
|
126
|
+
render() {
|
|
127
|
+
return (index.h(index.Host, { key: '66e16ca7704243e8bb98002f042fa073ec43c38b', class: {
|
|
128
|
+
'pds-drawer': true,
|
|
129
|
+
[`pds-drawer--${this.side}`]: true,
|
|
130
|
+
[`pds-drawer--${this.size}`]: true,
|
|
131
|
+
} }, index.h("pds-modal", { key: 'b52b8cb1892d52113920ab27344d9a969e6365b6', 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' }, index.h("slot", { key: 'c9ce43ca12a06c550bd130a0fa7572dec22c9c92' }))));
|
|
132
|
+
}
|
|
133
|
+
get el() { return index.getElement(this); }
|
|
134
|
+
};
|
|
135
|
+
PdsDrawer.style = pdsDrawerCss();
|
|
136
|
+
|
|
137
|
+
exports.pds_drawer = PdsDrawer;
|
|
@@ -76,7 +76,7 @@ const PdsDropdownMenuItem = class {
|
|
|
76
76
|
}, 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 }, index.h("slot", null)));
|
|
77
77
|
}
|
|
78
78
|
render() {
|
|
79
|
-
return (index.h(index.Host, { key: '
|
|
79
|
+
return (index.h(index.Host, { key: '2fd3c925ba2f1ead6d0a23c44ac87449e8dad521', 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()));
|
|
80
80
|
}
|
|
81
81
|
get host() { return index.getElement(this); }
|
|
82
82
|
};
|
|
@@ -14,7 +14,7 @@ const PdsDropdownMenuSeparator = class {
|
|
|
14
14
|
this.disabled = false;
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return (index.h(index.Host, { key: '
|
|
17
|
+
return (index.h(index.Host, { key: 'f55fc3b23a6ccb94a7ce865189e5d65abdd97d8c', id: this.componentId }, index.h("hr", { key: '784a1480881a27aec69c0a2b0afd06f103912544' })));
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
PdsDropdownMenuSeparator.style = pdsDropdownMenuSeparatorCss();
|
|
@@ -309,7 +309,7 @@ const PdsDropdownMenu = class {
|
|
|
309
309
|
}
|
|
310
310
|
}
|
|
311
311
|
render() {
|
|
312
|
-
return (index.h(index.Host, { key: '
|
|
312
|
+
return (index.h(index.Host, { key: '7907da6a04530d01bbbd0256f0b609fa53e0a774', id: this.componentId }, index.h("slot", { key: '2bf060c4dec082d4175a7cde759221fd4b20d706', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), index.h("pds-box", { key: '0d81eddee58fda631eb6a39cba0e7ad0d69c02d8', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, index.h("slot", { key: '831485d66af711edc9491078827455762795bb64', onSlotchange: this.handleSlotChange }))));
|
|
313
313
|
}
|
|
314
314
|
get host() { return index.getElement(this); }
|
|
315
315
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-CuQil7H0.js');
|
|
4
4
|
var scroll = require('./scroll-2XcoE_6Q.js');
|
|
5
|
-
var index$1 = require('./index-
|
|
5
|
+
var index$1 = require('./index-Bu3NXpbK.js');
|
|
6
6
|
|
|
7
7
|
const pdsFilterCss = () => `:host{--box-shadow-focus:0 0 0 1px var(--pine-color-background-container), 0 0 0 3px var(--pine-color-focus-ring);display:inline-block;position:relative}.pds-filter__trigger{-ms-flex-align:center;align-items:center;anchor-name:--filter-trigger;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-050);box-shadow:var(--pine-box-shadow-050);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text-tertiary);cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--pine-font-family-inter);font-size:var(--pine-font-size-100);font-weight:var(--pine-font-weight-400);gap:var(--pine-dimension-050);letter-spacing:var(--pine-letter-spacing-114);line-height:var(--pine-line-height-150);padding:var(--pine-dimension-025) var(--pine-dimension-125);position:relative;-webkit-transition:all var(--pine-motion-duration-base) ease;transition:all var(--pine-motion-duration-base) ease}.pds-filter__trigger pds-icon{block-size:var(--pine-font-size-100);color:var(--pine-color-text-secondary);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-font-size-100)}.pds-filter__trigger:hover,.pds-filter__trigger.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger:hover pds-icon,.pds-filter__trigger.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger:disabled{cursor:not-allowed;opacity:0.5}.pds-filter__trigger--selected{background-color:var(--pine-color-purple-050);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover,.pds-filter__trigger--selected.pds-filter__trigger--open{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-500);color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:hover pds-icon,.pds-filter__trigger--selected.pds-filter__trigger--open pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--selected:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--more{background-color:var(--pine-color-background-container-hover);border:var(--pine-border-width-thin) dashed var(--pine-color-border);color:var(--pine-color-text-tertiary)}.pds-filter__trigger--more pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:hover,.pds-filter__trigger--more.pds-filter__trigger--open{background-color:var(--pine-color-background-subtle);border-color:var(--pine-color-border-hover);color:var(--pine-color-text-hover)}.pds-filter__trigger--more:hover pds-icon,.pds-filter__trigger--more.pds-filter__trigger--open pds-icon{color:var(--pine-color-text-secondary)}.pds-filter__trigger--more:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__trigger--clear{background:transparent;border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-100);-webkit-box-shadow:none;box-shadow:none;color:var(--pine-color-purple-600)}.pds-filter__trigger--clear pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover{background-color:var(--pine-color-purple-100);border-color:var(--pine-color-purple-100);color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:hover pds-icon{color:var(--pine-color-purple-600)}.pds-filter__trigger--clear:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-filter__button-content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-050);max-inline-size:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__button-text{line-height:var(--pine-line-height-150);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pds-filter__dropdown-icon{block-size:var(--pine-dimension-200);-ms-flex-negative:0;flex-shrink:0;inline-size:var(--pine-dimension-200)}.pds-filter__popover{background-color:var(--pine-color-background-overlay);border:0;border-radius:var(--pine-dimension-100);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);display:none;inline-size:228px;inset:unset;padding:var(--pine-dimension-100);z-index:var(--pine-z-index-overlay);}.pds-filter__popover:popover-open,.pds-filter__popover.is-open{display:block}.pds-filter__popover{}@supports (anchor-name: --test){.pds-filter__popover{inset-block-start:calc(anchor(--filter-trigger bottom) + var(--pine-dimension-100));inset-inline-start:anchor(--filter-trigger start);position:fixed;position-anchor:--filter-trigger;}.pds-filter__popover.popover-flip-horizontal{inset-inline-end:anchor(--filter-trigger end);inset-inline-start:auto}.pds-filter__popover.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-end:anchor(--filter-trigger end);inset-inline-start:auto;-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover{}.pds-filter__popover.is-open.popover-flip-horizontal{inset-inline-end:anchor(--filter-trigger end);inset-inline-start:auto}.pds-filter__popover.is-open.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}.pds-filter__popover.is-open.popover-flip-horizontal.popover-flip-vertical{inset-block-start:anchor(--filter-trigger top);inset-inline-end:anchor(--filter-trigger end);inset-inline-start:auto;-webkit-transform:translateY(calc(-100% - var(--pine-dimension-100)));transform:translateY(calc(-100% - var(--pine-dimension-100)))}}`;
|
|
8
8
|
|
|
@@ -480,7 +480,7 @@ const PdsFilter = class {
|
|
|
480
480
|
return null;
|
|
481
481
|
}
|
|
482
482
|
render() {
|
|
483
|
-
return (index.h(index.Host, { key: '
|
|
483
|
+
return (index.h(index.Host, { key: 'bd03de5e8461e3aba4d6f014e2d64d9aada0c0e1', id: this.componentId }, index.h("button", { key: 'f35cb4aec14b1ed3b61d33c412cbfc89ba19cba3', 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 }, index.h("span", { key: 'b3635542048ac52d290917260181d7313eddaff2', class: "pds-filter__button-content", part: "button-content" }, this.renderIcon(), this.text && (index.h("span", { key: '0c5ef7f7655ddbee33a695703ce192f082b21bf1', class: "pds-filter__button-text", part: "button-text" }, this.text)), this.renderDropdownIcon())), this.variant !== 'clear' && (index.h("div", { key: 'e75c75d8e9e4596d7f0642e4e1f91deae3f2b9fa', ref: el => this.popoverEl = el, id: `${this.componentId}-popover`, class: "pds-filter__popover", popover: "auto", part: "popover" }, index.h("slot", { key: 'bef66af716be823ed3ac36d39a4532785df07f6b' })))));
|
|
484
484
|
}
|
|
485
485
|
get el() { return index.getElement(this); }
|
|
486
486
|
};
|
|
@@ -9,7 +9,7 @@ const PdsFilters = class {
|
|
|
9
9
|
index.registerInstance(this, hostRef);
|
|
10
10
|
}
|
|
11
11
|
render() {
|
|
12
|
-
return (index.h(index.Host, { key: '
|
|
12
|
+
return (index.h(index.Host, { key: '492357b36ec8ca8552f76aea6a4e4baf01ee92d5', id: this.componentId }, index.h("div", { key: 'fbf56c5452b4b0627a95008a601ccd6ace59417c', class: "pds-filters" }, index.h("slot", { key: 'c0e1d6b7b86ff39425d26dc75bf950283a371f71' }))));
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
PdsFilters.style = pdsFiltersCss();
|
|
@@ -21,9 +21,9 @@ const PdsImage = class {
|
|
|
21
21
|
this.loading = 'eager';
|
|
22
22
|
}
|
|
23
23
|
render() {
|
|
24
|
-
return (index.h(index.Host, { key: '
|
|
24
|
+
return (index.h(index.Host, { key: '0c0f463a1b616ccc485b8086a0210c5d9d2b065c', class: {
|
|
25
25
|
'pds-image': true,
|
|
26
|
-
}, id: this.componentId }, index.h("img", { key: '
|
|
26
|
+
}, id: this.componentId }, index.h("img", { key: '2ac4ef66ebbb39d488ce68f06b590a5fad180811', alt: this.alt, height: this.height, loading: this.loading, sizes: this.sizes, src: this.src, srcset: this.srcset, width: this.width })));
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
PdsImage.style = pdsImageCss();
|
|
@@ -4,7 +4,7 @@ var index = require('./index-CuQil7H0.js');
|
|
|
4
4
|
var form = require('./form-MhwfKTuo.js');
|
|
5
5
|
var attributes = require('./attributes-oNMnBEnP.js');
|
|
6
6
|
var utils = require('./utils-7jx8T2mW.js');
|
|
7
|
-
var index$1 = require('./index-
|
|
7
|
+
var index$1 = require('./index-Bu3NXpbK.js');
|
|
8
8
|
|
|
9
9
|
const pdsInputTokensCss = () => `:host{--pine-input-color-background-danger:var(--pine-color-red-050)}`;
|
|
10
10
|
|
|
@@ -294,10 +294,10 @@ const PdsInput = class {
|
|
|
294
294
|
'has-prepend': this.hasPrepend,
|
|
295
295
|
'has-append': this.hasAppend,
|
|
296
296
|
};
|
|
297
|
-
return (index.h(index.Host, { key: '
|
|
297
|
+
return (index.h(index.Host, { key: 'b67b80853cbf1f1e84c3ce6d2ff7e63f480c5b8d', "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 }, index.h("div", { key: '27a60a963cfa1a96391b55800eba27743a2527f4', class: "pds-input" }, label && (index.h("div", { key: '3f8ce2b254feea4b6fe9ea74318f1e6c27a75927', class: {
|
|
298
298
|
'pds-input__label-wrapper': true,
|
|
299
299
|
'visually-hidden': this.hideLabel,
|
|
300
|
-
} }, index.h("label", { key: '
|
|
300
|
+
} }, index.h("label", { key: '1c290cde5a9100b11fe3059725866506d089e834', htmlFor: componentId, class: "pds-input__label" }, index.h("span", { key: '2ebc8dafa48d6d855be5b8e1aa3bdd417d6250f3' }, label, this.required && index.h("span", { key: '73f7d22b13739daff6aa104c140208c5b1a86d10', class: "pds-input__required-indicator" }, " *"))), !this.hideLabel && this.renderAction())), index.h("div", { key: '4ea0b3335abbdf920ca064aa5866a060ef18c2ad', class: inputWrapperClasses }, this.renderPrepend(), this.renderPrefix(), index.h("input", Object.assign({ key: '4acf340fdcf40968e9c46b6a240f8a9008998c11', ref: (input) => (this.nativeInput = input), class: "pds-input__field", "aria-describedby": form.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 && (index.h("p", { key: 'f1969fe3a5f3aba65f44fcdaddd5a12d90db7fb1', class: "pds-input__helper-message", id: form.messageId(componentId, 'helper') }, helperMessage)), errorMessage && (index.h("p", { key: 'd4df1ceff95d5db7f2d927e9fcb848444570f9a2', class: "pds-input__error-message", id: form.messageId(componentId, 'error') }, index.h("pds-icon", { key: 'f69182919903aab42b7641d9a0082861f551a214', "aria-hidden": "true", icon: index$1.danger, size: "small" }), errorMessage)))));
|
|
301
301
|
}
|
|
302
302
|
static get formAssociated() { return true; }
|
|
303
303
|
get el() { return index.getElement(this); }
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-CuQil7H0.js');
|
|
4
4
|
var utils = require('./utils-7jx8T2mW.js');
|
|
5
|
-
var index$1 = require('./index-
|
|
5
|
+
var index$1 = require('./index-Bu3NXpbK.js');
|
|
6
6
|
|
|
7
7
|
const pdsLinkCss = () => `:host{display:inline}:host pds-icon{-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs)}.pds-link{-ms-flex-align:center;align-items:center;color:var(--color, var(--pds-context-link-color, var(--pine-color-text)));display:-ms-inline-flexbox;display:inline-flex;font-weight:var(--pine-font-weight-medium)}.pds-link:focus-visible{border-radius:var(--pine-dimension-2xs);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width-thick);position:relative}.pds-link:hover{color:var(--color, var(--pds-context-link-color-hover, var(--pine-color-text-hover)));text-decoration:none}:host([color=secondary]) .pds-link{color:var(--pine-color-text-primary)}:host([color=secondary]) .pds-link:hover{color:var(--pine-color-text-inverse-secondary)}:host([color=accent]) .pds-link{color:var(--pine-color-accent)}:host([color=accent]) .pds-link:hover{color:var(--pine-color-accent-hover)}:host([color=danger]) .pds-link{color:var(--pine-color-danger)}:host([color=danger]) .pds-link:hover{color:var(--pine-color-danger-hover)}.pds-link--sm{font-size:var(--pine-font-size-body-xs)}.pds-link--sm pds-icon{height:var(--pine-dimension-xs);width:var(--pine-dimension-xs)}.pds-link--md{font-size:var(--pine-font-size-body-sm)}.pds-link--md pds-icon{height:var(--pine-dimension-xs);width:var(--pine-dimension-xs)}.pds-link--lg{font-size:var(--pine-font-size-body-md)}.pds-link--lg pds-icon{height:var(--pine-dimension-sm);width:var(--pine-dimension-sm)}.pds-link--plain{text-decoration:none}.pds-link--plain:hover{color:var(--color, var(--pds-context-link-color-hover, var(--pine-color-text-hover)));text-decoration:underline}:host([active]) .pds-link{color:var(--pds-context-link-color, var(--pine-color-text-strong));text-decoration:underline}:host([active]) .pds-link:hover{color:var(--pds-context-link-color-hover, var(--pine-color-text-strong));text-decoration:underline}`;
|
|
8
8
|
|
|
@@ -58,8 +58,8 @@ const PdsLink = class {
|
|
|
58
58
|
const targetValue = this.target || (this.external ? '_blank' : undefined);
|
|
59
59
|
const showExternalIcon = this.external;
|
|
60
60
|
const relValue = targetValue === '_blank' ? 'noopener noreferrer' : undefined;
|
|
61
|
-
return (index.h("a", { key: '
|
|
62
|
-
index.h("pds-icon", { key: '
|
|
61
|
+
return (index.h("a", { key: '9e2d6cc4f2697bd11db4fd7ddd6f9e42ef28cf8c', 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 }, index.h("slot", { key: 'f48dd74f1921400553845ea3b03720749b1a6737' }, this.href), showExternalIcon &&
|
|
62
|
+
index.h("pds-icon", { key: '299d4f31ec32b614fd9f4d1c19acae63ee7a9169', icon: index$1.launch, size: this.fontSize })));
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
PdsLink.style = pdsLinkCss();
|
|
@@ -48,7 +48,7 @@ const PdsLoader = class {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
render() {
|
|
51
|
-
return (index.h(index.Host, { key: '
|
|
51
|
+
return (index.h(index.Host, { key: 'ce5b09477f57aad1a09ce3a38b81b64f673944b2', class: `pds-loader ${this.isLoading ? '' : 'pds-loader--hidden'}`, "aria-hidden": !this.isLoading, "aria-busy": this.isLoading, "aria-live": "polite" }, this.variant === 'spinner' && (index.h("div", { key: 'd193dfdaa527debff73705cef65e3d7f7a9a69ae', class: "pds-loader--spinner" }, index.h("svg", { key: 'c881ff2ee1d5d92ac55300bd13e9d066f7a3970f', style: this.getSvgStyle(), viewBox: "0 0 200 200", fill: "none", part: "loader-svg" }, index.h("defs", { key: '998920cdc820cc4e60df39bda5707e0b6bd5d0fe' }, index.h("linearGradient", { key: '02028f6ac070703f8b96b1723c4d2c07670e73bb', id: "spinner-secondHalf" }, index.h("stop", { key: 'b3120c2a597d8f646e791b1ac09a262486fb29cc', offset: "0%", "stop-opacity": "0", "stop-color": "currentColor" }), index.h("stop", { key: '932056b587b5e3191952506d9411c68375af6620', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" })), index.h("linearGradient", { key: '14540856cb968c220f71537c012a8c415d39af85', id: "spinner-firstHalf" }, index.h("stop", { key: 'c94d634b1dffa0c5301b8cb2c0b6e81fdb34429e', offset: "0%", "stop-opacity": "1", "stop-color": "currentColor" }), index.h("stop", { key: 'b6477c000c01728a60a7fd8e182f24da4b554128', offset: "100%", "stop-opacity": "0.5", "stop-color": "currentColor" }))), index.h("g", { key: '810f7c7bcd8e33bd2bed70932ed174eef48ae711', class: "pds-loader__spinner-path" }, index.h("path", { key: '4e54f348c563cca7e14790a34a58dacbda452824', stroke: "url(#spinner-secondHalf)", d: "M 4 100 A 96 96 0 0 1 196 100" }), index.h("path", { key: '3968c60f27ec619aabc74a278026abdd94d4510f', stroke: "url(#spinner-firstHalf)", d: "M 196 100 A 96 96 0 0 1 4 100" }), index.h("path", { key: '171fe08e0aec1f207704a0395388ccc57ea045d4', stroke: "currentColor", "stroke-linecap": "round", d: "M 4 100 A 96 96 0 0 1 4 98" }))))), this.variant === 'typing' && (index.h("div", { key: '60cf0b871807eb49ce73d3e63f00f5914c9c9eec', class: "pds-loader--typing" }, index.h("span", { key: 'dfbdcc1fe558803d39caa56bb57763269c061661' }), index.h("span", { key: '0c343f36a8d71bdc07306b3c879016686da94199' }), index.h("span", { key: 'f2a30e560ef0c9ac26c596dbaad33eeb0e4f7ff3' }))), index.h("div", { key: '0fa18b15a3962df872fd28136caf258cd09cafdb', class: `pds-loader__label ${this.showLabel ? '' : 'pds-loader--hidden'}` }, index.h("slot", { key: 'e8eabec0c6d24d3ad962ecee9e0ed6e0e0b4adc0', name: "label" }, "Loading..."))));
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
PdsLoader.style = pdsLoaderCss();
|
|
@@ -184,10 +184,10 @@ const PdsModalContent = class {
|
|
|
184
184
|
render() {
|
|
185
185
|
// Only apply max-height style if it's not 'none'
|
|
186
186
|
const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
|
|
187
|
-
return (index.h(index.Host, { key: '
|
|
187
|
+
return (index.h(index.Host, { key: '7bd0f26425c71e4551ae21e38d57d2124dabfc50' }, index.h("div", { key: '120e6947e734e44883af975991781f338acd7dbc', class: {
|
|
188
188
|
'pds-modal-content': true,
|
|
189
189
|
[`pds-modal-content--border-${this.border}`]: true
|
|
190
|
-
}, style: styleObj, tabindex: "-1" }, index.h("slot", { key: '
|
|
190
|
+
}, style: styleObj, tabindex: "-1" }, index.h("slot", { key: '6f2c8d44a69df8ecc1214e00604023274cee2790' }))));
|
|
191
191
|
}
|
|
192
192
|
get el() { return index.getElement(this); }
|
|
193
193
|
};
|
|
@@ -14,7 +14,7 @@ const PdsModalFooter = class {
|
|
|
14
14
|
reconnectedContent.unwrapReconnectedContent(this.el.querySelector('.pds-modal__footer'), '.pds-modal__footer');
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return (index.h("footer", { key: '
|
|
17
|
+
return (index.h("footer", { key: 'f344716ed1fbd77b447e10c9b78565918dc17be0', class: "pds-modal__footer" }, index.h("slot", { key: 'ba85cf6f7f56c8f8a8ff6d24c5fa647722140fda' })));
|
|
18
18
|
}
|
|
19
19
|
get el() { return index.getElement(this); }
|
|
20
20
|
};
|
|
@@ -14,7 +14,7 @@ const PdsModalHeader = class {
|
|
|
14
14
|
reconnectedContent.unwrapReconnectedContent(this.el.querySelector('.pds-modal__header'), '.pds-modal__header');
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return (index.h("header", { key: '
|
|
17
|
+
return (index.h("header", { key: '0490ac7854089dad4666e2a6509ae730f805f97f', class: "pds-modal__header" }, index.h("slot", { key: 'b76e5a970d3f17411b9e9e5debd981298f2290d1' })));
|
|
18
18
|
}
|
|
19
19
|
get el() { return index.getElement(this); }
|
|
20
20
|
};
|
|
@@ -41,6 +41,19 @@ const PdsModal = class {
|
|
|
41
41
|
* @default false
|
|
42
42
|
*/
|
|
43
43
|
this.disableTopLayer = false;
|
|
44
|
+
/**
|
|
45
|
+
* Whether to skip moving focus into the modal when it opens — both our own
|
|
46
|
+
* `setInitialFocus()` and the browser's native "dialog focusing steps",
|
|
47
|
+
* which move focus into the dialog as soon as `show()`/`showModal()` is
|
|
48
|
+
* called regardless of application code. Focus return on close is
|
|
49
|
+
* unaffected either way. For a modal opened by something other than a
|
|
50
|
+
* direct user click — a redirect, a deep link, a background event —
|
|
51
|
+
* stealing focus on open can interrupt whatever the user was already
|
|
52
|
+
* doing. Default `false` preserves today's behavior for every existing
|
|
53
|
+
* consumer.
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
this.disableInitialFocus = false;
|
|
44
57
|
/**
|
|
45
58
|
* Stores the list of focusable elements in the modal
|
|
46
59
|
*/
|
|
@@ -57,16 +70,41 @@ const PdsModal = class {
|
|
|
57
70
|
}
|
|
58
71
|
};
|
|
59
72
|
this.handleKeyDown = (e) => {
|
|
73
|
+
var _a, _b, _c;
|
|
60
74
|
// If the modal is not open, don't handle any keyboard events
|
|
61
75
|
if (!this.open)
|
|
62
76
|
return;
|
|
63
77
|
// Handle Escape key to close the modal
|
|
64
78
|
if (e.key === 'Escape') {
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
79
|
+
// Every open pds-modal shares this document-level listener for the
|
|
80
|
+
// same keydown event. Whichever one runs first can synchronously move
|
|
81
|
+
// focus (hideModal() restores it), which would make a later instance's
|
|
82
|
+
// own read of document.activeElement reflect that side effect instead
|
|
83
|
+
// of where focus actually was when the key was pressed — stacking two
|
|
84
|
+
// sibling modals closing on one Escape instead of just the top one.
|
|
85
|
+
// That alone isn't enough, though: isStackedAboveOverlay's `:modal`
|
|
86
|
+
// check reads LIVE top-layer state, and hideModal()'s close() clears it
|
|
87
|
+
// synchronously — so whichever sibling's listener runs first (DOM
|
|
88
|
+
// order, not z-index) can close itself and erase the very evidence a
|
|
89
|
+
// later listener needs to recognize it was stacked above. Snapshot that
|
|
90
|
+
// determination too, in the same first-listener-wins block, before any
|
|
91
|
+
// instance has had a chance to act on this keypress.
|
|
92
|
+
const eventSnapshot = e;
|
|
93
|
+
if (!('__pdsActiveElementAtEscape' in eventSnapshot)) {
|
|
94
|
+
const activeAtDispatch = document.activeElement;
|
|
95
|
+
eventSnapshot.__pdsActiveElementAtEscape = activeAtDispatch;
|
|
96
|
+
const topLayerDialog = (_a = activeAtDispatch === null || activeAtDispatch === void 0 ? void 0 : activeAtDispatch.closest('dialog')) !== null && _a !== void 0 ? _a : null;
|
|
97
|
+
eventSnapshot.__pdsTopLayerDialogAtEscape = topLayerDialog;
|
|
98
|
+
eventSnapshot.__pdsTopLayerDialogWasModalAtEscape = !!(topLayerDialog && topLayerDialog.matches(':modal'));
|
|
99
|
+
}
|
|
100
|
+
// Leave Escape to a genuinely stacked-above overlay (disableTopLayer's
|
|
101
|
+
// reason for existing) — not just to anything outside this modal.
|
|
102
|
+
const active = eventSnapshot.__pdsActiveElementAtEscape;
|
|
103
|
+
if (this.disableTopLayer &&
|
|
104
|
+
active &&
|
|
105
|
+
active !== document.body &&
|
|
106
|
+
!this.el.contains(active) &&
|
|
107
|
+
this.isStackedAboveOverlay(active, (_b = eventSnapshot.__pdsTopLayerDialogAtEscape) !== null && _b !== void 0 ? _b : null, (_c = eventSnapshot.__pdsTopLayerDialogWasModalAtEscape) !== null && _c !== void 0 ? _c : false)) {
|
|
70
108
|
return;
|
|
71
109
|
}
|
|
72
110
|
// Always prevent native dialog close behavior
|
|
@@ -114,6 +152,16 @@ const PdsModal = class {
|
|
|
114
152
|
this.modalRef = this.el.querySelector('.pds-modal__backdrop');
|
|
115
153
|
// Add keyboard event listener
|
|
116
154
|
document.addEventListener('keydown', this.handleKeyDown);
|
|
155
|
+
// @Watch('open') only fires on a later change, not the prop's initial
|
|
156
|
+
// value — a modal mounted with `open` already true (static markup, or a
|
|
157
|
+
// framework passing it on first render) would otherwise never call
|
|
158
|
+
// show()/showModal(): the panel still appears, since that's driven by the
|
|
159
|
+
// `open` CSS class, but the native <dialog> itself was never opened, so
|
|
160
|
+
// there's no top-layer promotion, no dialog focusing steps, and no
|
|
161
|
+
// focusable-elements list or previousActiveElement captured.
|
|
162
|
+
if (this.open) {
|
|
163
|
+
this.showModal();
|
|
164
|
+
}
|
|
117
165
|
}
|
|
118
166
|
// Unwraps a nested dialog.pds-modal__backdrop left by a page-cache (Turbo, bfcache) reconnect.
|
|
119
167
|
componentDidRender() {
|
|
@@ -219,8 +267,39 @@ const PdsModal = class {
|
|
|
219
267
|
// Update focusable elements and set initial focus
|
|
220
268
|
// Using a longer timeout to ensure all components are fully rendered
|
|
221
269
|
setTimeout(() => {
|
|
270
|
+
var _a, _b;
|
|
222
271
|
this.updateFocusableElements();
|
|
223
|
-
this.
|
|
272
|
+
if (this.disableInitialFocus) {
|
|
273
|
+
// show()/showModal() also move focus into the dialog natively (the
|
|
274
|
+
// HTML spec's "dialog focusing steps") — that native step isn't
|
|
275
|
+
// necessarily done by the time this task runs either, so counter it
|
|
276
|
+
// here, in the same deferred slot setInitialFocus() below uses for
|
|
277
|
+
// the same reason, rather than racing it synchronously above.
|
|
278
|
+
//
|
|
279
|
+
// disableInitialFocus exists for a drawer that can open in the
|
|
280
|
+
// background while the user is mid-task elsewhere — by the time
|
|
281
|
+
// this runs, they may have already clicked into something of
|
|
282
|
+
// their own outside the dialog. Only act if focus is still where
|
|
283
|
+
// the native steps (or nothing) left it, so that isn't stolen.
|
|
284
|
+
const activeElement = document.activeElement;
|
|
285
|
+
const focusAlreadyClaimedElsewhere = activeElement !== null && activeElement !== document.body && !((_a = this.modalRef) === null || _a === void 0 ? void 0 : _a.contains(activeElement));
|
|
286
|
+
if (!focusAlreadyClaimedElsewhere) {
|
|
287
|
+
if (this.previousActiveElement !== document.body && typeof ((_b = this.previousActiveElement) === null || _b === void 0 ? void 0 : _b.focus) === 'function') {
|
|
288
|
+
this.previousActiveElement.focus();
|
|
289
|
+
}
|
|
290
|
+
else if (activeElement instanceof HTMLElement) {
|
|
291
|
+
// Nothing was focused before opening (previousActiveElement is
|
|
292
|
+
// body), so there's nothing to restore focus to — body.focus()
|
|
293
|
+
// would be a no-op and leave focus wherever the native focusing
|
|
294
|
+
// steps put it, inside the dialog. Blur that instead so focus
|
|
295
|
+
// ends up nowhere, matching the state before opening.
|
|
296
|
+
activeElement.blur();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
this.setInitialFocus();
|
|
302
|
+
}
|
|
224
303
|
this.pdsModalOpen.emit();
|
|
225
304
|
}, 100);
|
|
226
305
|
}
|
|
@@ -235,10 +314,22 @@ const PdsModal = class {
|
|
|
235
314
|
async hideModal() {
|
|
236
315
|
if (this.modalRef) {
|
|
237
316
|
try {
|
|
317
|
+
// Capture before close(): with the async task queue, a prop change
|
|
318
|
+
// that triggers hideModal() (e.g. light dismiss setting `open` false
|
|
319
|
+
// on a pointerdown elsewhere) doesn't run until the next frame — by
|
|
320
|
+
// then the browser has already moved focus to whatever the user's
|
|
321
|
+
// click actually landed on. Restoring previousActiveElement in that
|
|
322
|
+
// case would steal focus back from a real new destination; only
|
|
323
|
+
// restore it when focus is still inside the modal (or nowhere, i.e.
|
|
324
|
+
// document.body), meaning nothing else has claimed it since.
|
|
325
|
+
const activeElement = document.activeElement;
|
|
326
|
+
const focusAlreadyMovedElsewhere = activeElement !== null && activeElement !== document.body && !this.modalRef.contains(activeElement);
|
|
238
327
|
this.modalRef.close();
|
|
239
328
|
this.open = false;
|
|
240
329
|
// Restore focus to the element that was focused before the modal was opened
|
|
241
|
-
if (
|
|
330
|
+
if (!focusAlreadyMovedElsewhere &&
|
|
331
|
+
this.previousActiveElement &&
|
|
332
|
+
typeof this.previousActiveElement.focus === 'function') {
|
|
242
333
|
this.previousActiveElement.focus();
|
|
243
334
|
}
|
|
244
335
|
this.pdsModalClose.emit();
|
|
@@ -255,6 +346,46 @@ const PdsModal = class {
|
|
|
255
346
|
const backdrop = modal.querySelector('.pds-modal__backdrop');
|
|
256
347
|
return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;
|
|
257
348
|
}
|
|
349
|
+
/**
|
|
350
|
+
* Whether `active` sits inside a surface actually stacked above this modal.
|
|
351
|
+
*
|
|
352
|
+
* Used to decide whether an Escape keypress belongs to that surface instead
|
|
353
|
+
* of this modal. Focus being merely *outside* this modal is not enough on
|
|
354
|
+
* its own: in `disableTopLayer` mode the page stays interactive (that's the
|
|
355
|
+
* point of a non-modal usage like a drawer), so focus will routinely be on
|
|
356
|
+
* ordinary page content while the modal is open, and that must not be
|
|
357
|
+
* mistaken for "an overlay owns Escape."
|
|
358
|
+
*
|
|
359
|
+
* Two ways a surface can be above: it is itself promoted to the browser's
|
|
360
|
+
* top layer (a regular `showModal()` dialog, which paints above everything
|
|
361
|
+
* outside the top layer regardless of z-index — a sibling pds-modal opened
|
|
362
|
+
* over a `disableTopLayer` drawer typically shares the exact same z-index
|
|
363
|
+
* token, so a numeric comparison alone would miss it), or it has a higher
|
|
364
|
+
* z-index than this modal's own backdrop (a `disableTopLayer` overlay, or
|
|
365
|
+
* anything else deliberately raised above it).
|
|
366
|
+
*
|
|
367
|
+
* `topLayerDialog` / `topLayerDialogWasModal` come pre-snapshotted from the
|
|
368
|
+
* keydown event (see handleKeyDown) rather than being re-derived here: by
|
|
369
|
+
* the time a later sibling modal's listener runs, an earlier one may have
|
|
370
|
+
* already closed itself, which clears `:modal` — reading it live here would
|
|
371
|
+
* lose that evidence depending on listener order.
|
|
372
|
+
*/
|
|
373
|
+
isStackedAboveOverlay(active, topLayerDialog, topLayerDialogWasModal) {
|
|
374
|
+
if (topLayerDialog && topLayerDialog !== this.modalRef && topLayerDialogWasModal) {
|
|
375
|
+
return true;
|
|
376
|
+
}
|
|
377
|
+
const ownZIndex = this.getBackdropZIndex(this.el);
|
|
378
|
+
let node = active;
|
|
379
|
+
while (node && node !== document.body) {
|
|
380
|
+
const style = getComputedStyle(node);
|
|
381
|
+
const zIndex = parseInt(style.zIndex, 10);
|
|
382
|
+
if (style.position !== 'static' && !isNaN(zIndex) && zIndex > ownZIndex) {
|
|
383
|
+
return true;
|
|
384
|
+
}
|
|
385
|
+
node = node.parentElement;
|
|
386
|
+
}
|
|
387
|
+
return false;
|
|
388
|
+
}
|
|
258
389
|
/**
|
|
259
390
|
* Checks if this modal is the innermost (highest z-index) modal
|
|
260
391
|
*/
|
|
@@ -276,14 +407,14 @@ const PdsModal = class {
|
|
|
276
407
|
return thisZIndex === maxZIndex;
|
|
277
408
|
}
|
|
278
409
|
render() {
|
|
279
|
-
return (index.h("dialog", { key: '
|
|
410
|
+
return (index.h("dialog", { key: 'f35044ec9bca1189069faf083c824d8144800053', class: {
|
|
280
411
|
'pds-modal__backdrop': true,
|
|
281
412
|
'open': this.open
|
|
282
|
-
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, index.h("div", { key: '
|
|
413
|
+
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick }, index.h("div", { key: '99a53b36e160ac14dfd6d598aeaa94114855dacc', class: {
|
|
283
414
|
'pds-modal': true,
|
|
284
415
|
[`pds-modal--${this.size}`]: true,
|
|
285
416
|
'pds-modal--scrollable': this.scrollable
|
|
286
|
-
}, part: "modal" }, index.h("slot", { key: '
|
|
417
|
+
}, part: "modal" }, index.h("slot", { key: 'cfee7bdf3620d606b1d3130f4ebed4caa83084f1' }))));
|
|
287
418
|
}
|
|
288
419
|
get el() { return index.getElement(this); }
|
|
289
420
|
static get watchers() { return {
|