@pine-ds/core 4.9.0 → 4.9.1
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/mock-pds-modal.js +1 -1
- package/components/pds-chip2.js +1 -1
- package/components/pds-datepicker.js +1 -1
- package/components/pds-icon2.js +1 -1
- package/components/pds-link2.js +1 -1
- package/components/pds-modal2.js +1 -1
- package/components/pds-multiselect.js +1 -1
- package/components/pds-radio-group.js +1 -1
- package/components/pds-text2.js +1 -1
- package/components/pds-tooltip.js +1 -1
- package/components/portal-target.js +1 -0
- package/components/tabbable.js +1 -1
- package/components/truncation-tooltip.js +1 -1
- package/dist/cjs/{index-Do70atou.js → index-BDnbr0DK.js} +1 -1
- package/dist/cjs/{index-BsWY_xEJ.js → index-D9iJuJCP.js} +12 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/mock-pds-modal.cjs.entry.js +2 -2
- package/dist/cjs/pds-accordion.cjs.entry.js +2 -2
- package/dist/cjs/pds-alert.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
- package/dist/cjs/pds-box.cjs.entry.js +1 -1
- package/dist/cjs/pds-button.cjs.entry.js +2 -2
- package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/pds-chip.cjs.entry.js +6 -8
- package/dist/cjs/pds-combobox.cjs.entry.js +1 -1
- package/dist/cjs/pds-container.cjs.entry.js +1 -1
- package/dist/cjs/pds-copytext.cjs.entry.js +4 -3
- package/dist/cjs/pds-datepicker.cjs.entry.js +4 -41
- package/dist/cjs/pds-divider.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer-content.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer-footer.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer-header.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer.cjs.entry.js +1 -1
- 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-icon.cjs.entry.js +54 -21
- package/dist/cjs/pds-image.cjs.entry.js +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +2 -2
- 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 +1 -1
- 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 +3 -3
- package/dist/cjs/pds-multiselect.cjs.entry.js +11 -5
- package/dist/cjs/pds-popover.cjs.entry.js +2 -2
- 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 +66 -5
- package/dist/cjs/pds-radio.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/pds-tab.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +3 -2
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +2 -2
- 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-table.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 +29 -3
- package/dist/cjs/pds-textarea.cjs.entry.js +2 -2
- package/dist/cjs/pds-toast.cjs.entry.js +1 -1
- package/dist/cjs/pds-tooltip.cjs.entry.js +16 -5
- package/dist/cjs/pine-core.cjs.js +2 -2
- package/dist/cjs/portal-target-e8WQ6dLx.js +70 -0
- package/dist/cjs/{tabbable-CddSt_Hi.js → tabbable-BrrrGvdG.js} +2 -1
- package/dist/cjs/{truncation-tooltip-O5nQmXPw.js → truncation-tooltip-DdB78RIe.js} +43 -3
- package/dist/collection/components/pds-chip/pds-chip.js +2 -5
- package/dist/collection/components/pds-datepicker/calendar-portal.js +1 -38
- package/dist/collection/components/pds-link/pds-link.css +1 -1
- package/dist/collection/components/pds-link/stories/pds-link.stories.js +48 -0
- package/dist/collection/components/pds-modal/pds-modal.css +1 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +9 -3
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +65 -4
- package/dist/collection/components/pds-text/pds-text.js +28 -3
- package/dist/collection/components/pds-text/stories/pds-text.stories.js +16 -0
- package/dist/collection/components/pds-tooltip/pds-tooltip.css +11 -0
- package/dist/collection/components/pds-tooltip/pds-tooltip.js +14 -3
- package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +30 -0
- package/dist/collection/utils/portal-target.js +64 -0
- package/dist/collection/utils/tabbable.js +2 -1
- package/dist/collection/utils/truncation-tooltip.js +42 -3
- package/dist/docs.json +2 -2
- package/dist/esm/{index-BFSwd-GQ.js → index-4_RRPJTO.js} +12 -1
- package/dist/esm/{index-m3pqpeWg.js → index-DvN3tyZp.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/mock-pds-modal.entry.js +2 -2
- package/dist/esm/pds-accordion.entry.js +2 -2
- package/dist/esm/pds-alert.entry.js +1 -1
- package/dist/esm/pds-avatar.entry.js +2 -2
- package/dist/esm/pds-box.entry.js +1 -1
- package/dist/esm/pds-button.entry.js +2 -2
- package/dist/esm/pds-checkbox.entry.js +2 -2
- package/dist/esm/pds-chip.entry.js +5 -7
- package/dist/esm/pds-combobox.entry.js +1 -1
- package/dist/esm/pds-container.entry.js +1 -1
- package/dist/esm/pds-copytext.entry.js +4 -3
- package/dist/esm/pds-datepicker.entry.js +3 -40
- package/dist/esm/pds-divider.entry.js +1 -1
- package/dist/esm/pds-drawer-content.entry.js +1 -1
- package/dist/esm/pds-drawer-footer.entry.js +1 -1
- package/dist/esm/pds-drawer-header.entry.js +1 -1
- package/dist/esm/pds-drawer.entry.js +1 -1
- 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-icon.entry.js +54 -21
- package/dist/esm/pds-image.entry.js +1 -1
- package/dist/esm/pds-input.entry.js +2 -2
- 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 +1 -1
- 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 +3 -3
- package/dist/esm/pds-multiselect.entry.js +11 -5
- package/dist/esm/pds-popover.entry.js +2 -2
- 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 +66 -5
- package/dist/esm/pds-radio.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/pds-tab.entry.js +1 -1
- package/dist/esm/pds-table-body.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js +3 -2
- package/dist/esm/pds-table-head-cell.entry.js +2 -2
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-row.entry.js +1 -1
- package/dist/esm/pds-table.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 +29 -3
- package/dist/esm/pds-textarea.entry.js +2 -2
- package/dist/esm/pds-toast.entry.js +1 -1
- package/dist/esm/pds-tooltip.entry.js +16 -5
- package/dist/esm/pine-core.js +3 -3
- package/dist/esm/portal-target-CKRzRKdO.js +66 -0
- package/dist/esm/{tabbable-DCKBKRUy.js → tabbable-C6ZWpp3v.js} +2 -1
- package/dist/esm/{truncation-tooltip-D_gvhB9r.js → truncation-tooltip-CRSdYzpA.js} +43 -4
- package/dist/esm-es5/{index-BFSwd-GQ.js → index-4_RRPJTO.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 +1 -1
- 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/portal-target-CKRzRKdO.js +1 -0
- package/dist/esm-es5/tabbable-C6ZWpp3v.js +1 -0
- package/dist/esm-es5/truncation-tooltip-CRSdYzpA.js +1 -0
- package/dist/pine-core/{p-7a19477e.system.entry.js → p-01f1cdaf.system.entry.js} +1 -1
- package/dist/pine-core/{p-ee449a4b.entry.js → p-07323107.entry.js} +1 -1
- package/dist/pine-core/{p-14d872d3.entry.js → p-08b8e941.entry.js} +1 -1
- package/dist/pine-core/p-0d5f0ab5.system.entry.js +1 -0
- package/dist/pine-core/{p-3cc19ea8.system.entry.js → p-1415c988.system.entry.js} +1 -1
- package/dist/pine-core/{p-de176bd9.entry.js → p-143b33a6.entry.js} +1 -1
- package/dist/pine-core/{p-e9a53a88.system.entry.js → p-14dedf01.system.entry.js} +1 -1
- package/dist/pine-core/{p-60d27247.system.entry.js → p-19cf1d91.system.entry.js} +1 -1
- package/dist/pine-core/{p-bcf57566.entry.js → p-1ca8d183.entry.js} +1 -1
- package/dist/pine-core/p-1cc39908.system.entry.js +1 -0
- package/dist/pine-core/{p-11e7d660.entry.js → p-1e3ef425.entry.js} +1 -1
- package/dist/pine-core/{p-98cc327b.entry.js → p-1f62bb71.entry.js} +2 -2
- package/dist/pine-core/p-20079552.system.entry.js +1 -0
- package/dist/pine-core/{p-6f34ad9c.entry.js → p-2a18852f.entry.js} +1 -1
- package/dist/pine-core/{p-3ce7e72e.system.entry.js → p-2b9622c1.system.entry.js} +1 -1
- package/dist/pine-core/{p-9fbcba0d.entry.js → p-2dd30d12.entry.js} +1 -1
- package/dist/pine-core/{p-8b97dd57.system.entry.js → p-3306dc5a.system.entry.js} +1 -1
- package/dist/pine-core/{p-ce554098.entry.js → p-3610cb3b.entry.js} +1 -1
- package/dist/pine-core/{p-eb93cc6e.entry.js → p-37718637.entry.js} +1 -1
- package/dist/pine-core/{p-b6edfdfe.entry.js → p-383d84f4.entry.js} +2 -2
- package/dist/pine-core/{p-079c39d1.entry.js → p-39276663.entry.js} +1 -1
- package/dist/pine-core/{p-89fefe36.entry.js → p-39e57657.entry.js} +1 -1
- package/dist/pine-core/{p-ef4d8fea.entry.js → p-3c229091.entry.js} +1 -1
- package/dist/pine-core/p-3d34b967.system.entry.js +1 -0
- package/dist/pine-core/p-3e30a761.entry.js +1 -0
- package/dist/pine-core/{p-d8bedb58.system.entry.js → p-3f8bd3fb.system.entry.js} +1 -1
- package/dist/pine-core/{p-6845867f.system.entry.js → p-42d43c3f.system.entry.js} +1 -1
- package/dist/pine-core/{p-4ee44585.system.entry.js → p-42f70f93.system.entry.js} +1 -1
- package/dist/pine-core/{p-0bd61097.system.entry.js → p-4a90b9c8.system.entry.js} +1 -1
- package/dist/pine-core/{p-64283f7b.entry.js → p-4cfe922b.entry.js} +1 -1
- package/dist/pine-core/p-4d1a8803.entry.js +1 -0
- package/dist/pine-core/p-4d47023c.system.entry.js +1 -0
- package/dist/pine-core/{p-b037dcbd.system.entry.js → p-4d98bc0c.system.entry.js} +1 -1
- package/dist/pine-core/{p-3556f6ad.entry.js → p-50ddadbf.entry.js} +1 -1
- package/dist/pine-core/{p-1e5648bf.system.entry.js → p-548bce53.system.entry.js} +1 -1
- package/dist/pine-core/{p-ebf74c43.system.entry.js → p-54f1e86f.system.entry.js} +1 -1
- package/dist/pine-core/{p-92a8cf7d.entry.js → p-590df41a.entry.js} +1 -1
- package/dist/pine-core/{p-f549f2bc.entry.js → p-5946203c.entry.js} +1 -1
- package/dist/pine-core/{p-d7db749a.system.entry.js → p-5f181694.system.entry.js} +1 -1
- package/dist/pine-core/{p-9713d6a5.system.entry.js → p-60a30975.system.entry.js} +1 -1
- package/dist/pine-core/{p-d94ebe84.entry.js → p-61cfdbb2.entry.js} +1 -1
- package/dist/pine-core/p-62aa6a78.system.entry.js +1 -0
- package/dist/pine-core/{p-cb560aab.system.entry.js → p-63f85859.system.entry.js} +1 -1
- package/dist/pine-core/{p-001d4b86.entry.js → p-64bcb378.entry.js} +1 -1
- package/dist/pine-core/{p-bdde1e53.entry.js → p-67999353.entry.js} +1 -1
- package/dist/pine-core/{p-be3b4f12.system.entry.js → p-67f795d5.system.entry.js} +1 -1
- package/dist/pine-core/{p-6b6ae1be.entry.js → p-6a1aa8d3.entry.js} +1 -1
- package/dist/pine-core/p-6f4ab1ea.system.entry.js +1 -0
- package/dist/pine-core/{p-110b4051.system.entry.js → p-724baba3.system.entry.js} +1 -1
- package/dist/pine-core/p-72659a0e.system.entry.js +1 -0
- package/dist/pine-core/{p-08bbd3e6.system.entry.js → p-73efb1ed.system.entry.js} +1 -1
- package/dist/pine-core/p-7a51f15e.entry.js +1 -0
- package/dist/pine-core/p-7b978fff.system.entry.js +1 -0
- package/dist/pine-core/p-8436cbfb.entry.js +1 -0
- package/dist/pine-core/{p-ced6a814.system.entry.js → p-849ec281.system.entry.js} +1 -1
- package/dist/pine-core/p-87a32ded.system.entry.js +1 -0
- package/dist/pine-core/{p-f09f27ab.system.entry.js → p-89d38a82.system.entry.js} +1 -1
- package/dist/pine-core/{p-6602b4d0.entry.js → p-8ade17ce.entry.js} +1 -1
- package/dist/pine-core/{p-ebf0c51b.system.entry.js → p-8afd5f5b.system.entry.js} +1 -1
- package/dist/pine-core/{p-9fe4a64a.entry.js → p-8e7f75e6.entry.js} +1 -1
- package/dist/pine-core/{p-b9d71b76.entry.js → p-8fb520df.entry.js} +1 -1
- package/dist/pine-core/{p-3b5b8f73.entry.js → p-92115e88.entry.js} +1 -1
- package/dist/pine-core/p-93fd7dd8.system.entry.js +1 -0
- package/dist/pine-core/{p-239774c9.entry.js → p-947582e1.entry.js} +1 -1
- package/dist/pine-core/{p-98843402.system.entry.js → p-94c9b7d1.system.entry.js} +1 -1
- package/dist/pine-core/p-973c3ac0.entry.js +1 -0
- package/dist/pine-core/p-97653e60.entry.js +1 -0
- package/dist/pine-core/{p-7073146f.entry.js → p-97b73359.entry.js} +1 -1
- package/dist/pine-core/{p-bfdfbe9f.entry.js → p-99530cb5.entry.js} +1 -1
- package/dist/pine-core/p-9a776443.entry.js +1 -0
- package/dist/pine-core/{p-50af67ea.system.entry.js → p-9b32727a.system.entry.js} +1 -1
- package/dist/pine-core/{p-CjRCtzPD.system.js → p-BK1sLRfg.system.js} +1 -1
- package/dist/pine-core/p-C6ZWpp3v.js +1 -0
- package/dist/pine-core/p-CKRzRKdO.js +1 -0
- package/dist/pine-core/p-DQyF6v9Q.system.js +1 -0
- package/dist/pine-core/p-DwQ5Tjis.js +1 -0
- package/dist/pine-core/{p-BplEmwUQ.js → p-M31tvpDN.js} +2 -2
- package/dist/pine-core/{p-DXO1yd32.system.js → p-XK45dzWR.system.js} +1 -1
- package/dist/pine-core/{p-d9243653.system.entry.js → p-a09c9c5e.system.entry.js} +1 -1
- package/dist/pine-core/{p-55fce29e.entry.js → p-a4ce12ef.entry.js} +1 -1
- package/dist/pine-core/{p-dea2a254.entry.js → p-a594c41f.entry.js} +1 -1
- package/dist/pine-core/{p-2d5b1deb.entry.js → p-a9d96e22.entry.js} +1 -1
- package/dist/pine-core/{p-e1fdd53a.system.entry.js → p-ad5208a4.system.entry.js} +1 -1
- package/dist/pine-core/{p-9a8d2985.system.entry.js → p-b3d4f97a.system.entry.js} +2 -2
- package/dist/pine-core/{p-25bf2f26.system.entry.js → p-bcc378ba.system.entry.js} +2 -2
- package/dist/pine-core/{p-3f62581a.system.entry.js → p-bd7dc317.system.entry.js} +1 -1
- package/dist/pine-core/p-beb7a430.entry.js +1 -0
- package/dist/pine-core/p-bfa34194.entry.js +1 -0
- package/dist/pine-core/{p-5c46553f.system.entry.js → p-c2afe4f3.system.entry.js} +1 -1
- package/dist/pine-core/{p-17fc76e7.system.entry.js → p-c5e1eb3c.system.entry.js} +1 -1
- package/dist/pine-core/{p-7a14473e.entry.js → p-c7a53c4f.entry.js} +1 -1
- package/dist/pine-core/{p-5967d9fa.system.entry.js → p-c8a0b562.system.entry.js} +1 -1
- package/dist/pine-core/{p-735b3631.entry.js → p-c9ae7964.entry.js} +1 -1
- package/dist/pine-core/{p-b243767b.system.entry.js → p-cb9baf78.system.entry.js} +1 -1
- package/dist/pine-core/{p-6d64e6c7.entry.js → p-ce9fa14b.entry.js} +1 -1
- package/dist/pine-core/{p-68fdfb8f.system.entry.js → p-d018dc60.system.entry.js} +1 -1
- package/dist/pine-core/p-d47b2a6a.system.entry.js +1 -0
- package/dist/pine-core/{p-0790dd0d.system.entry.js → p-d48fe5a0.system.entry.js} +1 -1
- package/dist/pine-core/{p-414faecf.entry.js → p-d6f338e0.entry.js} +1 -1
- package/dist/pine-core/{p-b7cbd913.system.entry.js → p-d920d759.system.entry.js} +1 -1
- package/dist/pine-core/{p-87642228.entry.js → p-d9719e37.entry.js} +1 -1
- package/dist/pine-core/{p-f2c487e6.entry.js → p-db7fb5a3.entry.js} +1 -1
- package/dist/pine-core/{p-a7d25143.entry.js → p-e1d1b5d8.entry.js} +1 -1
- package/dist/pine-core/p-e3de6a1d.entry.js +1 -0
- package/dist/pine-core/{p-2c0047cd.entry.js → p-e7002cee.entry.js} +1 -1
- package/dist/pine-core/{p-5133e8be.system.entry.js → p-e82f758f.system.entry.js} +1 -1
- package/dist/pine-core/p-e84fa9ed.entry.js +1 -0
- package/dist/pine-core/{p-9dbc017f.system.entry.js → p-eb4f0daa.system.entry.js} +1 -1
- package/dist/pine-core/p-eeYeEogd.system.js +1 -0
- package/dist/pine-core/{p-b33ad96e.system.entry.js → p-eecd9ad8.system.entry.js} +1 -1
- package/dist/pine-core/{p-06279b93.system.entry.js → p-ef0eba9b.system.entry.js} +1 -1
- package/dist/pine-core/{p-0c60f577.system.entry.js → p-ef3a855f.system.entry.js} +1 -1
- package/dist/pine-core/{p-fc743f6e.entry.js → p-f018af99.entry.js} +1 -1
- package/dist/pine-core/{p-6dad76cb.system.entry.js → p-f11cce27.system.entry.js} +1 -1
- package/dist/pine-core/{p-bda7e3be.entry.js → p-f6f4fd42.entry.js} +1 -1
- package/dist/pine-core/{p-7fcf3d37.entry.js → p-f71d71ca.entry.js} +1 -1
- package/dist/pine-core/p-f9063262.system.entry.js +1 -0
- package/dist/pine-core/p-f99bd77f.entry.js +1 -0
- package/dist/pine-core/p-wB2y8gR7.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-datepicker/calendar-portal.d.ts +0 -7
- package/dist/types/components/pds-radio-group/pds-radio-group.d.ts +8 -0
- package/dist/types/components/pds-text/pds-text.d.ts +4 -0
- package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +1 -0
- package/dist/types/components.d.ts +2 -2
- package/dist/types/utils/portal-target.d.ts +17 -0
- package/dist/types/utils/truncation-tooltip.d.ts +5 -2
- package/dist/vscode.html-data.json +3 -3
- package/hydrate/index.js +258 -82
- package/hydrate/index.mjs +258 -82
- package/package.json +2 -2
- package/dist/esm-es5/tabbable-DCKBKRUy.js +0 -1
- package/dist/esm-es5/truncation-tooltip-D_gvhB9r.js +0 -1
- package/dist/pine-core/p-07b4524e.entry.js +0 -1
- package/dist/pine-core/p-22ae92f7.system.entry.js +0 -1
- package/dist/pine-core/p-272b24ad.system.entry.js +0 -1
- package/dist/pine-core/p-38b87aa2.system.entry.js +0 -1
- package/dist/pine-core/p-3afb1208.entry.js +0 -1
- package/dist/pine-core/p-463a29fa.entry.js +0 -1
- package/dist/pine-core/p-568a9a79.system.entry.js +0 -1
- package/dist/pine-core/p-5ce5836e.system.entry.js +0 -1
- package/dist/pine-core/p-5f3242c8.system.entry.js +0 -1
- package/dist/pine-core/p-60e3b1af.entry.js +0 -1
- package/dist/pine-core/p-7d3a20ba.entry.js +0 -1
- package/dist/pine-core/p-9201b497.system.entry.js +0 -1
- package/dist/pine-core/p-94597b73.entry.js +0 -1
- package/dist/pine-core/p-97be00f4.system.entry.js +0 -1
- package/dist/pine-core/p-9a8971e2.system.entry.js +0 -1
- package/dist/pine-core/p-CirzxZ33.js +0 -1
- package/dist/pine-core/p-D52aRqFx.system.js +0 -1
- package/dist/pine-core/p-DCKBKRUy.js +0 -1
- package/dist/pine-core/p-a2078add.entry.js +0 -1
- package/dist/pine-core/p-a48b025a.system.entry.js +0 -1
- package/dist/pine-core/p-ad3b1ec3.entry.js +0 -1
- package/dist/pine-core/p-b017eb99.system.entry.js +0 -1
- package/dist/pine-core/p-c02a32ec.entry.js +0 -1
- package/dist/pine-core/p-c1da80e5.entry.js +0 -1
- package/dist/pine-core/p-c233866c.system.entry.js +0 -1
- package/dist/pine-core/p-d7930540.entry.js +0 -1
- package/dist/pine-core/p-dfadfcd1.entry.js +0 -1
- package/dist/pine-core/p-e70cb112.system.entry.js +0 -1
- package/dist/pine-core/p-wXfuz0Bd.system.js +0 -1
- /package/dist/esm-es5/{index-m3pqpeWg.js → index-DvN3tyZp.js} +0 -0
- /package/dist/pine-core/{p-m3pqpeWg.js → p-DvN3tyZp.js} +0 -0
- /package/dist/pine-core/{p-DaCT2ssj.system.js → p-vFsJv75D.system.js} +0 -0
package/hydrate/index.js
CHANGED
|
@@ -5648,7 +5648,7 @@ var setScopedSSR = (opts) => {
|
|
|
5648
5648
|
var needsScopedSSR = () => scopedSSR;
|
|
5649
5649
|
var scopedSSR = false;
|
|
5650
5650
|
|
|
5651
|
-
const pdsModalCss$1 = () => `.pds-modal__backdrop{-ms-flex-align:start;align-items:flex-start;background-color:rgba(0, 0, 0, 0.4);border:0;display:-ms-flexbox;display:flex;height:100%;inset:0;-ms-flex-pack:center;justify-content:center;margin:0;max-height:100%;max-width:100%;opacity:0;padding:0;position:fixed;-webkit-transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);visibility:hidden;width:100%;z-index:var(--pine-z-index-modal)}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}pds-modal .pds-modal__backdrop{z-index:var(--pine-z-index-priority)}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop[aria-modal=false]{overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop[aria-modal=false]{-webkit-backdrop-filter:none;backdrop-filter:none}.pds-modal__backdrop[aria-modal=false]::before{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);content:"";inset:0;position:fixed;z-index:-1}}.pds-modal__backdrop.open{opacity:1;-webkit-transition-timing-function:var(--pine-motion-easing-out);transition-timing-function:var(--pine-motion-easing-out);visibility:visible}.pds-modal{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-sm);-webkit-box-shadow:var(--pine-box-shadow-400);box-shadow:var(--pine-box-shadow-400);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:var(--pine-dimension-md);max-height:none;width:100%}.pds-modal.pds-modal--scrollable{max-height:calc(100vh - (5vh + 96px))}@supports (height: 100dvh){.pds-modal.pds-modal--scrollable{max-height:calc(100dvh - (5dvh + 96px))}}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:6dvh;margin-block-start:6dvh}}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:8dvh;margin-block-start:8dvh}}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--custom{max-width:var(--pds-modal-max-width, 700px)}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}@supports (height: 100dvh){.pds-modal--fullscreen{max-height:100dvh}}.pds-modal--fullscreen.pds-modal--scrollable{max-height:100vh}@supports (height: 100dvh){.pds-modal--fullscreen.pds-modal--scrollable{max-height:100dvh}}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}.pds-modal--scrollable pds-modal-content{-webkit-border-after:1px solid transparent;border-block-end:1px solid transparent;-webkit-border-before:1px solid transparent;border-block-start:1px solid transparent;overflow-y:auto}.pds-modal:not(.pds-modal--scrollable) pds-modal-content{overflow-y:visible}`;
|
|
5651
|
+
const pdsModalCss$1 = () => `.pds-modal__backdrop{-ms-flex-align:start;align-items:flex-start;background-color:rgba(0, 0, 0, 0.4);border:0;display:-ms-flexbox;display:flex;height:100%;inset:0;-ms-flex-pack:center;justify-content:center;margin:0;max-height:100%;max-width:100%;opacity:0;padding:0;position:fixed;-webkit-transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);visibility:hidden;width:100%;z-index:var(--pine-z-index-modal)}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}pds-modal pds-modal .pds-modal__backdrop{z-index:var(--pine-z-index-priority)}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop[aria-modal=false]{overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop[aria-modal=false]{-webkit-backdrop-filter:none;backdrop-filter:none}.pds-modal__backdrop[aria-modal=false]::before{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);content:"";inset:0;position:fixed;z-index:-1}}.pds-modal__backdrop.open{opacity:1;-webkit-transition-timing-function:var(--pine-motion-easing-out);transition-timing-function:var(--pine-motion-easing-out);visibility:visible}.pds-modal{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-sm);-webkit-box-shadow:var(--pine-box-shadow-400);box-shadow:var(--pine-box-shadow-400);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:var(--pine-dimension-md);max-height:none;width:100%}.pds-modal.pds-modal--scrollable{max-height:calc(100vh - (5vh + 96px))}@supports (height: 100dvh){.pds-modal.pds-modal--scrollable{max-height:calc(100dvh - (5dvh + 96px))}}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:6dvh;margin-block-start:6dvh}}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:8dvh;margin-block-start:8dvh}}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--custom{max-width:var(--pds-modal-max-width, 700px)}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}@supports (height: 100dvh){.pds-modal--fullscreen{max-height:100dvh}}.pds-modal--fullscreen.pds-modal--scrollable{max-height:100vh}@supports (height: 100dvh){.pds-modal--fullscreen.pds-modal--scrollable{max-height:100dvh}}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}.pds-modal--scrollable pds-modal-content{-webkit-border-after:1px solid transparent;border-block-end:1px solid transparent;-webkit-border-before:1px solid transparent;border-block-start:1px solid transparent;overflow-y:auto}.pds-modal:not(.pds-modal--scrollable) pds-modal-content{overflow-y:visible}`;
|
|
5652
5652
|
|
|
5653
5653
|
/**
|
|
5654
5654
|
* Mock PdsModal component for testing purposes
|
|
@@ -5754,7 +5754,7 @@ class MockPdsModal {
|
|
|
5754
5754
|
}; }
|
|
5755
5755
|
}
|
|
5756
5756
|
|
|
5757
|
-
/* pds-icons v10.
|
|
5757
|
+
/* pds-icons v10.8.0, ES Modules */
|
|
5758
5758
|
|
|
5759
5759
|
const addCircle = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m11-5a1 1 0 0 1 1 1v3h3a1 1 0 1 1 0 2h-3v3a1 1 0 1 1-2 0v-3H8a1 1 0 1 1 0-2h3V8a1 1 0 0 1 1-1'/></svg>";
|
|
5760
5760
|
const calendarSimple = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M8 1a1 1 0 0 1 1 1v1h6V2a1 1 0 1 1 2 0v1.002c.476.003.891.013 1.252.042.562.046 1.079.145 1.564.392a4 4 0 0 1 1.748 1.748c.247.485.346 1.002.392 1.564C22 7.29 22 7.954 22 8.758v8.483c0 .805 0 1.47-.044 2.01-.046.563-.145 1.08-.392 1.565a4 4 0 0 1-1.748 1.748c-.485.247-1.002.346-1.564.392-.541.044-1.206.044-2.01.044H7.758c-.805 0-1.47 0-2.01-.044-.563-.046-1.08-.145-1.565-.392a4 4 0 0 1-1.748-1.748c-.247-.485-.346-1.002-.392-1.564C2 18.71 2 18.046 2 17.242V8.758c0-.805 0-1.47.044-2.01.046-.563.145-1.08.392-1.565a4 4 0 0 1 1.748-1.748c.485-.247 1.002-.346 1.564-.392.361-.03.777-.04 1.252-.042V2a1 1 0 0 1 1-1M7 5.002c-.446.003-.795.012-1.089.036-.438.035-.663.1-.819.18a2 2 0 0 0-.874.874c-.08.156-.145.38-.18.819C4 7.361 4 7.943 4 8.8V9h16v-.2c0-.857 0-1.439-.038-1.889-.035-.438-.1-.663-.18-.819a2 2 0 0 0-.874-.874c-.156-.08-.38-.145-.819-.18A15 15 0 0 0 17 5.002V6a1 1 0 1 1-2 0V5H9v1a1 1 0 1 1-2 0zM20 11H4v6.2c0 .857 0 1.439.038 1.889.035.438.1.663.18.819a2 2 0 0 0 .874.874c.156.08.38.145.819.18C6.361 21 6.943 21 7.8 21h8.4c.857 0 1.439 0 1.889-.038.438-.035.663-.1.819-.18a2 2 0 0 0 .874-.874c.08-.156.145-.38.18-.819.037-.45.038-1.032.038-1.889z'/></svg>";
|
|
@@ -8998,6 +8998,74 @@ const computePosition = (reference, floating, options) => {
|
|
|
8998
8998
|
});
|
|
8999
8999
|
};
|
|
9000
9000
|
|
|
9001
|
+
/**
|
|
9002
|
+
* The native `<dialog>` or open `popover` (as pds-filter's) an element sits in, so a popup portaled
|
|
9003
|
+
* there shares its top layer and a click in it isn't outside it; otherwise `document.body`.
|
|
9004
|
+
* `closest()` stops at shadow boundaries and misses one that only wraps slotted content, so this
|
|
9005
|
+
* walks assigned slots and shadow hosts, as pds-combobox does. `isHost` picks which ancestor counts.
|
|
9006
|
+
*/
|
|
9007
|
+
function findPortalTarget(from, isHost = isOpenDialogOrPopover) {
|
|
9008
|
+
const seen = new Set();
|
|
9009
|
+
let current = from;
|
|
9010
|
+
while (current && !seen.has(current)) {
|
|
9011
|
+
seen.add(current);
|
|
9012
|
+
if (current.nodeType === Node.ELEMENT_NODE && isHost(current)) {
|
|
9013
|
+
return current;
|
|
9014
|
+
}
|
|
9015
|
+
const assigned = current.nodeType === Node.ELEMENT_NODE ? current.assignedSlot : null;
|
|
9016
|
+
if (assigned) {
|
|
9017
|
+
current = assigned;
|
|
9018
|
+
continue;
|
|
9019
|
+
}
|
|
9020
|
+
const parent = current.parentNode;
|
|
9021
|
+
current = parent instanceof ShadowRoot ? parent.host : parent;
|
|
9022
|
+
}
|
|
9023
|
+
return document.body;
|
|
9024
|
+
}
|
|
9025
|
+
/**
|
|
9026
|
+
* A modal dialog or open popover, which paints in the top layer above anything in the body, that
|
|
9027
|
+
* sits in the document itself: the document's stylesheets don't reach into a shadow root.
|
|
9028
|
+
*/
|
|
9029
|
+
function isTopLayerInDocument(el) {
|
|
9030
|
+
if (el.getRootNode() !== el.ownerDocument)
|
|
9031
|
+
return false;
|
|
9032
|
+
return matchesSafely(el, ':modal') || matchesSafely(el, ':popover-open');
|
|
9033
|
+
}
|
|
9034
|
+
/**
|
|
9035
|
+
* Calls `onClose` once `host` leaves the top layer (its dialog closes or its popover hides), and
|
|
9036
|
+
* returns a function that stops listening.
|
|
9037
|
+
*/
|
|
9038
|
+
function onTopLayerClose(host, onClose) {
|
|
9039
|
+
const check = () => {
|
|
9040
|
+
if (!isTopLayerInDocument(host))
|
|
9041
|
+
onClose();
|
|
9042
|
+
};
|
|
9043
|
+
host.addEventListener('close', check);
|
|
9044
|
+
host.addEventListener('toggle', check);
|
|
9045
|
+
return () => {
|
|
9046
|
+
host.removeEventListener('close', check);
|
|
9047
|
+
host.removeEventListener('toggle', check);
|
|
9048
|
+
};
|
|
9049
|
+
}
|
|
9050
|
+
function isOpenDialogOrPopover(el) {
|
|
9051
|
+
// Only an open dialog: inside a closed one, the popup would be hidden with it.
|
|
9052
|
+
if (el.localName === 'dialog')
|
|
9053
|
+
return el.open;
|
|
9054
|
+
return el.hasAttribute('popover') && matchesSafely(el, ':popover-open');
|
|
9055
|
+
}
|
|
9056
|
+
function matchesSafely(el, selector) {
|
|
9057
|
+
try {
|
|
9058
|
+
return el.matches(selector);
|
|
9059
|
+
}
|
|
9060
|
+
catch (_a) {
|
|
9061
|
+
// A browser without the selector (no Popover API, or no :modal): no top layer to share.
|
|
9062
|
+
return false;
|
|
9063
|
+
}
|
|
9064
|
+
}
|
|
9065
|
+
|
|
9066
|
+
// Controls that clipped text can sit inside that already take focus, so the text adds no tab stop of its own.
|
|
9067
|
+
// Not any `[tabindex]`: a focusable scroll region full of chips would show every chip's tooltip at once.
|
|
9068
|
+
const FOCUSABLE_WRAPPER = 'a[href], button, summary, pds-button, pds-link, pds-tab, pds-dropdown-menu-item, [role="option"]';
|
|
9001
9069
|
/** CSS class prefix used for truncation tooltip portal elements */
|
|
9002
9070
|
const TOOLTIP_CLASS = 'pds-truncation-tooltip';
|
|
9003
9071
|
/**
|
|
@@ -9007,7 +9075,8 @@ const TOOLTIP_CLASS = 'pds-truncation-tooltip';
|
|
|
9007
9075
|
*
|
|
9008
9076
|
* Z-Index Strategy:
|
|
9009
9077
|
* Uses --pine-z-index-nuclear (9999) to ensure tooltips appear above all other UI elements.
|
|
9010
|
-
* This is necessary because tooltips are portaled to document.body
|
|
9078
|
+
* This is necessary because tooltips are portaled to document.body, or into the modal dialog or
|
|
9079
|
+
* open popover around the host (the top layer, which no z-index reaches from the body), and must overlay:
|
|
9011
9080
|
* - Modal dialogs
|
|
9012
9081
|
* - Dropdown menus
|
|
9013
9082
|
* - Other floating UI elements
|
|
@@ -9047,6 +9116,15 @@ function injectStyles() {
|
|
|
9047
9116
|
opacity: 1;
|
|
9048
9117
|
visibility: visible;
|
|
9049
9118
|
}
|
|
9119
|
+
:is(dialog, [popover]) > .${TOOLTIP_CLASS} {
|
|
9120
|
+
font-style: normal;
|
|
9121
|
+
font-weight: normal;
|
|
9122
|
+
text-align: start;
|
|
9123
|
+
text-indent: 0;
|
|
9124
|
+
text-transform: none;
|
|
9125
|
+
white-space: normal;
|
|
9126
|
+
word-spacing: normal;
|
|
9127
|
+
}
|
|
9050
9128
|
`;
|
|
9051
9129
|
document.head.appendChild(style);
|
|
9052
9130
|
}
|
|
@@ -9073,7 +9151,8 @@ function isFocusVisible(el) {
|
|
|
9073
9151
|
*
|
|
9074
9152
|
* When the element's text overflows, hovering the host element or giving it
|
|
9075
9153
|
* keyboard focus will display a tooltip showing the full text content. The
|
|
9076
|
-
* tooltip is rendered as a portal on document.body
|
|
9154
|
+
* tooltip is rendered as a portal on document.body, or in the modal dialog or open popover around
|
|
9155
|
+
* the host, and positioned with Floating UI.
|
|
9077
9156
|
*
|
|
9078
9157
|
* Also owns the element's `tabindex` while it is clipped — see syncTabIndex.
|
|
9079
9158
|
*
|
|
@@ -9083,6 +9162,7 @@ function setupTruncationTooltip(options) {
|
|
|
9083
9162
|
const { hostEl, contentEl, getTooltipText, placement = 'top', reference = hostEl, manageTabIndex = true, focusEl = hostEl } = options;
|
|
9084
9163
|
injectStyles();
|
|
9085
9164
|
let portalEl = null;
|
|
9165
|
+
let stopWatchingPortalHost = null;
|
|
9086
9166
|
let isHovering = false;
|
|
9087
9167
|
let isHoveringPortal = false;
|
|
9088
9168
|
let isFocused = false;
|
|
@@ -9161,7 +9241,11 @@ function setupTruncationTooltip(options) {
|
|
|
9161
9241
|
contentDiv.className = `${TOOLTIP_CLASS}__content`;
|
|
9162
9242
|
contentDiv.textContent = text.trim();
|
|
9163
9243
|
portalEl.appendChild(contentDiv);
|
|
9164
|
-
|
|
9244
|
+
const portalHost = findPortalTarget(hostEl, isTopLayerInDocument);
|
|
9245
|
+
portalHost.appendChild(portalEl);
|
|
9246
|
+
// Closing that host moves no pointer, so a tooltip opened by touch would outlive it unseen.
|
|
9247
|
+
if (portalHost !== document.body)
|
|
9248
|
+
stopWatchingPortalHost = onTopLayerClose(portalHost, closeWithPortalHost);
|
|
9165
9249
|
// Allow the user to hover into the tooltip to select/copy text
|
|
9166
9250
|
portalEl.addEventListener('mouseenter', handlePortalMouseEnter);
|
|
9167
9251
|
portalEl.addEventListener('mouseleave', handlePortalMouseLeave);
|
|
@@ -9200,6 +9284,10 @@ function setupTruncationTooltip(options) {
|
|
|
9200
9284
|
}
|
|
9201
9285
|
}
|
|
9202
9286
|
function removePortal() {
|
|
9287
|
+
if (stopWatchingPortalHost !== null) {
|
|
9288
|
+
stopWatchingPortalHost();
|
|
9289
|
+
stopWatchingPortalHost = null;
|
|
9290
|
+
}
|
|
9203
9291
|
if (portalEl) {
|
|
9204
9292
|
portalEl.removeEventListener('mouseenter', handlePortalMouseEnter);
|
|
9205
9293
|
portalEl.removeEventListener('mouseleave', handlePortalMouseLeave);
|
|
@@ -9233,6 +9321,14 @@ function setupTruncationTooltip(options) {
|
|
|
9233
9321
|
return;
|
|
9234
9322
|
removePortal();
|
|
9235
9323
|
}
|
|
9324
|
+
// Hover and focus can't outlast a host that's no longer shown, so none of them keeps it open.
|
|
9325
|
+
function closeWithPortalHost() {
|
|
9326
|
+
isHovering = false;
|
|
9327
|
+
isHoveringPortal = false;
|
|
9328
|
+
isFocused = false;
|
|
9329
|
+
cancelHideTimeout();
|
|
9330
|
+
removePortal();
|
|
9331
|
+
}
|
|
9236
9332
|
/**
|
|
9237
9333
|
* Schedules tooltip removal after a short delay.
|
|
9238
9334
|
*
|
|
@@ -9264,11 +9360,18 @@ function setupTruncationTooltip(options) {
|
|
|
9264
9360
|
isHoveringPortal = false;
|
|
9265
9361
|
scheduleHide();
|
|
9266
9362
|
}
|
|
9363
|
+
// A second tab stop inside focusEl, such as another clipped text, bubbles its focus here too. Its event.target is
|
|
9364
|
+
// retargeted to the stop's outermost element in focusEl's tree, which sits beside hostEl rather than around or in it.
|
|
9365
|
+
function isFocusForHost(target) {
|
|
9366
|
+
return focusEl === hostEl || target === focusEl || target.contains(hostEl) || hostEl.contains(target);
|
|
9367
|
+
}
|
|
9267
9368
|
// Keyboard focus only: focus from a click would pin the tooltip open after the pointer leaves.
|
|
9268
9369
|
// Events from inside a shadow root arrive retargeted to its host, so test the innermost target.
|
|
9269
9370
|
function showForVisibleFocus(event) {
|
|
9270
9371
|
if (!isFocusVisible(event.composedPath()[0]))
|
|
9271
9372
|
return;
|
|
9373
|
+
if (!isFocusForHost(event.target))
|
|
9374
|
+
return;
|
|
9272
9375
|
isFocused = true;
|
|
9273
9376
|
showTooltip();
|
|
9274
9377
|
}
|
|
@@ -9328,9 +9431,6 @@ const SENTIMENT_DOT_COLORS = {
|
|
|
9328
9431
|
success: 'var(--pine-chip-color-success-dot)',
|
|
9329
9432
|
warning: 'var(--pine-chip-color-warning-dot)',
|
|
9330
9433
|
};
|
|
9331
|
-
// Controls a chip can sit inside that already take focus, so a clipped label adds no tab stop of its own.
|
|
9332
|
-
// Not any `[tabindex]`: a focusable scroll region full of chips would show every chip's tooltip at once.
|
|
9333
|
-
const FOCUSABLE_WRAPPER = 'a[href], button, summary, pds-button, pds-link, pds-tab, pds-dropdown-menu-item, [role="option"]';
|
|
9334
9434
|
// Beside the listbox and level with the option, so the tooltip never covers the other options.
|
|
9335
9435
|
function besideListbox(wrapper) {
|
|
9336
9436
|
const option = (wrapper === null || wrapper === void 0 ? void 0 : wrapper.matches('[role="option"]')) ? wrapper : null;
|
|
@@ -9557,7 +9657,7 @@ class PdsChip {
|
|
|
9557
9657
|
const hostClass = this.classNames();
|
|
9558
9658
|
const hostStyles = this.hostStyles;
|
|
9559
9659
|
this.hostKeeper.record(hostClass, hostStyles);
|
|
9560
|
-
return (hAsync(Host, { key: '
|
|
9660
|
+
return (hAsync(Host, { key: 'b5afded680c3fa09523a7928d13c2a566a8a504c', class: hostClass, id: this.componentId, style: hostStyles }, this.setChipContent(), this.effectiveVariant === 'tag' && this.renderCloseButton()));
|
|
9561
9661
|
}
|
|
9562
9662
|
get el() { return getElement(this); }
|
|
9563
9663
|
static get style() { return pdsChipTokensCss() + pdsChipCss(); }
|
|
@@ -14417,44 +14517,6 @@ class CalendarPortal {
|
|
|
14417
14517
|
}
|
|
14418
14518
|
}
|
|
14419
14519
|
CalendarPortal.className = 'pds-datepicker-calendar-portal';
|
|
14420
|
-
/**
|
|
14421
|
-
* The native `<dialog>` or open `popover` (as pds-filter's) the datepicker sits in, so the
|
|
14422
|
-
* calendar shares its top layer and a click in it isn't outside it; otherwise `document.body`.
|
|
14423
|
-
* `closest()` stops at shadow boundaries and misses one that only wraps slotted content, so this
|
|
14424
|
-
* walks assigned slots and shadow hosts, as pds-combobox does.
|
|
14425
|
-
*/
|
|
14426
|
-
function findPortalTarget(from) {
|
|
14427
|
-
const seen = new Set();
|
|
14428
|
-
let current = from;
|
|
14429
|
-
while (current && !seen.has(current)) {
|
|
14430
|
-
seen.add(current);
|
|
14431
|
-
if (current.nodeType === Node.ELEMENT_NODE && isTopLayerHost(current)) {
|
|
14432
|
-
return current;
|
|
14433
|
-
}
|
|
14434
|
-
const assigned = current.nodeType === Node.ELEMENT_NODE ? current.assignedSlot : null;
|
|
14435
|
-
if (assigned) {
|
|
14436
|
-
current = assigned;
|
|
14437
|
-
continue;
|
|
14438
|
-
}
|
|
14439
|
-
const parent = current.parentNode;
|
|
14440
|
-
current = parent instanceof ShadowRoot ? parent.host : parent;
|
|
14441
|
-
}
|
|
14442
|
-
return document.body;
|
|
14443
|
-
}
|
|
14444
|
-
function isTopLayerHost(el) {
|
|
14445
|
-
// Only an open dialog: inside a closed one, the calendar would be hidden with it.
|
|
14446
|
-
if (el.localName === 'dialog')
|
|
14447
|
-
return el.open;
|
|
14448
|
-
if (!el.hasAttribute('popover'))
|
|
14449
|
-
return false;
|
|
14450
|
-
try {
|
|
14451
|
-
return el.matches(':popover-open');
|
|
14452
|
-
}
|
|
14453
|
-
catch (_a) {
|
|
14454
|
-
// A browser without the Popover API: no top layer to share.
|
|
14455
|
-
return false;
|
|
14456
|
-
}
|
|
14457
|
-
}
|
|
14458
14520
|
|
|
14459
14521
|
const DEFAULT_LABELS = {
|
|
14460
14522
|
'today': 'Today',
|
|
@@ -17942,12 +18004,16 @@ const pdsIconContent = new Map();
|
|
|
17942
18004
|
|
|
17943
18005
|
const pdsIconCss = () => `:host{--dimension-icon-height:16px;--dimension-icon-width:16px;--color-icon-fill:currentColor;contain:strict;display:inline-block;fill:var(--color-icon-fill);-ms-flex-negative:0;flex-shrink:0;height:var(--dimension-icon-height);width:var(--dimension-icon-width)}:host .pdsicon{fill:var(--color-icon-fill)}.pds-icon-fill-none{fill:none}.icon-inner,.pds-icon,svg{display:block;height:100%;width:100%}:host(.flip-rtl):host-context([dir=rtl]) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(rtl)) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{-webkit-transform:scaleX(1);transform:scaleX(1)}`;
|
|
17944
18006
|
|
|
18007
|
+
// The attributes that give an icon its own accessible name.
|
|
18008
|
+
const NAMING_ATTRIBUTES = ['aria-label', 'aria-labelledby'];
|
|
17945
18009
|
class PdsIcon {
|
|
17946
18010
|
constructor(hostRef) {
|
|
17947
18011
|
registerInstance(this, hostRef);
|
|
17948
18012
|
this.didLoadIcon = false;
|
|
17949
18013
|
this.iconName = null;
|
|
18014
|
+
this.warnedUnnamedFocusable = false;
|
|
17950
18015
|
this.inheritedAttributes = {}; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
18016
|
+
this.isFocusable = false;
|
|
17951
18017
|
this.isVisible = false;
|
|
17952
18018
|
/**
|
|
17953
18019
|
* The size of the icon. This can be
|
|
@@ -17956,10 +18022,6 @@ class PdsIcon {
|
|
|
17956
18022
|
*
|
|
17957
18023
|
*/
|
|
17958
18024
|
this.size = 'regular';
|
|
17959
|
-
this.hasAriaHidden = () => {
|
|
17960
|
-
const { el } = this;
|
|
17961
|
-
return el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true';
|
|
17962
|
-
};
|
|
17963
18025
|
}
|
|
17964
18026
|
iconSize() {
|
|
17965
18027
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -17998,9 +18060,9 @@ class PdsIcon {
|
|
|
17998
18060
|
}, 500);
|
|
17999
18061
|
}
|
|
18000
18062
|
componentWillLoad() {
|
|
18001
|
-
this.inheritedAttributes = inheritAttributes(this.el,
|
|
18063
|
+
this.inheritedAttributes = inheritAttributes(this.el, NAMING_ATTRIBUTES);
|
|
18064
|
+
this.isFocusable = this.el.hasAttribute('tabindex');
|
|
18002
18065
|
this.setCSSVariables();
|
|
18003
|
-
this.setupInitialAriaLabel();
|
|
18004
18066
|
}
|
|
18005
18067
|
setCSSVariables() {
|
|
18006
18068
|
var _a;
|
|
@@ -18009,6 +18071,7 @@ class PdsIcon {
|
|
|
18009
18071
|
this.el.style.setProperty(`--color-icon-fill`, (_a = normalizeColorValue(this.color)) !== null && _a !== void 0 ? _a : 'currentColor');
|
|
18010
18072
|
}
|
|
18011
18073
|
connectedCallback() {
|
|
18074
|
+
this.observeNamingAttributes();
|
|
18012
18075
|
// Handle re-connection during client-side navigation
|
|
18013
18076
|
if (!this.isVisible && !this.svgContent) {
|
|
18014
18077
|
this.waitUntilVisible(this.el, '50px', () => {
|
|
@@ -18027,14 +18090,16 @@ class PdsIcon {
|
|
|
18027
18090
|
this.io.disconnect();
|
|
18028
18091
|
this.io = undefined;
|
|
18029
18092
|
}
|
|
18093
|
+
if (this.mo) {
|
|
18094
|
+
this.mo.disconnect();
|
|
18095
|
+
this.mo = undefined;
|
|
18096
|
+
}
|
|
18030
18097
|
}
|
|
18031
18098
|
updateStyles() {
|
|
18032
18099
|
this.setCSSVariables();
|
|
18033
18100
|
}
|
|
18034
18101
|
onIconPropertyChange() {
|
|
18035
18102
|
this.loadIcon();
|
|
18036
|
-
// Update aria-label when icon properties change
|
|
18037
|
-
this.setupInitialAriaLabel();
|
|
18038
18103
|
}
|
|
18039
18104
|
loadIcon() {
|
|
18040
18105
|
// Reset load state when URL changes
|
|
@@ -18044,26 +18109,34 @@ class PdsIcon {
|
|
|
18044
18109
|
this.iconName = getName(this.name, this.icon);
|
|
18045
18110
|
}
|
|
18046
18111
|
render() {
|
|
18047
|
-
const {
|
|
18112
|
+
const { flipRtl, iconName, inheritedAttributes } = this;
|
|
18048
18113
|
const shouldIconAutoFlip = iconName
|
|
18049
18114
|
? shouldRtlFlipIcon(iconName, this.el) && flipRtl !== false
|
|
18050
18115
|
: false;
|
|
18051
18116
|
const shouldFlip = flipRtl || shouldIconAutoFlip;
|
|
18052
|
-
//
|
|
18053
|
-
|
|
18054
|
-
|
|
18117
|
+
// An icon is decorative unless the author names it. A decorative icon is hidden
|
|
18118
|
+
// from assistive technology, so it contributes nothing to the accessible name of
|
|
18119
|
+
// the button or link it sits inside. Naming it from `name` instead would put an
|
|
18120
|
+
// icon id ("rocket-tone") into that control's name, where neither a screen reader
|
|
18121
|
+
// nor a page-inspecting agent can tell it apart from the real label.
|
|
18122
|
+
//
|
|
18123
|
+
// A focusable icon stays exposed even without a name: hiding something that
|
|
18124
|
+
// takes focus leaves keyboard users on an element a screen reader can't see.
|
|
18125
|
+
const isNamed = NAMING_ATTRIBUTES.some((attr) => inheritedAttributes[attr] !== undefined);
|
|
18126
|
+
const isDecorative = !isNamed && !this.isFocusable;
|
|
18127
|
+
return (hAsync(Host
|
|
18128
|
+
// undefined, not null: null would strip an aria-hidden the author set on a
|
|
18129
|
+
// named icon once the component re-renders.
|
|
18130
|
+
, Object.assign({ key: '6597475535756e7174072dc25c982137724d439d', "aria-hidden": isDecorative ? 'true' : undefined, alt: "", role: isDecorative ? null : 'img', class: Object.assign(Object.assign({}, createColorClasses(this.color)), { 'flip-rtl': shouldFlip, 'icon-rtl': shouldFlip && isRTL(this.el) }) }, inheritedAttributes), (hAsync("div", { class: "icon-inner" }))));
|
|
18055
18131
|
}
|
|
18056
18132
|
/*****
|
|
18057
18133
|
* Private Methods
|
|
18058
18134
|
****/
|
|
18059
|
-
|
|
18060
|
-
|
|
18061
|
-
|
|
18062
|
-
|
|
18063
|
-
|
|
18064
|
-
this.ariaLabel = iconName.replace(/\-/g, ' ');
|
|
18065
|
-
}
|
|
18066
|
-
}
|
|
18135
|
+
// The hide/expose decision reads the naming attributes and tabindex, which can
|
|
18136
|
+
// change after load (a React prop going from undefined to a string, or
|
|
18137
|
+
// setAttribute from script). Re-read them when they do.
|
|
18138
|
+
observeNamingAttributes() {
|
|
18139
|
+
return;
|
|
18067
18140
|
}
|
|
18068
18141
|
waitUntilVisible(el, rootMargin, cb) {
|
|
18069
18142
|
{
|
|
@@ -18150,7 +18223,8 @@ class PdsIcon {
|
|
|
18150
18223
|
"name": [513],
|
|
18151
18224
|
"size": [513],
|
|
18152
18225
|
"src": [1],
|
|
18153
|
-
"
|
|
18226
|
+
"inheritedAttributes": [32],
|
|
18227
|
+
"isFocusable": [32],
|
|
18154
18228
|
"isVisible": [32],
|
|
18155
18229
|
"svgContent": [32]
|
|
18156
18230
|
},
|
|
@@ -18566,7 +18640,7 @@ class PdsInput {
|
|
|
18566
18640
|
}; }
|
|
18567
18641
|
}
|
|
18568
18642
|
|
|
18569
|
-
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)
|
|
18643
|
+
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);isolation:isolate;outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width-thick)}.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}`;
|
|
18570
18644
|
|
|
18571
18645
|
// Used when `externalLabel` is unset; an empty string hides the icon instead.
|
|
18572
18646
|
const DEFAULT_EXTERNAL_LABEL = '(opens in a new tab)';
|
|
@@ -18784,7 +18858,8 @@ function collectTabbable(root, found) {
|
|
|
18784
18858
|
const isTabStop = (el) => { var _a; return el.tabIndex >= 0 || (el.isContentEditable && !el.hasAttribute('tabindex') && !((_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.isContentEditable)); };
|
|
18785
18859
|
function visitTabbable(el, found) {
|
|
18786
18860
|
var _a, _b, _c, _d;
|
|
18787
|
-
|
|
18861
|
+
// A tooltip portaled into a dialog only describes the control that has focus; it's never a stop of its own.
|
|
18862
|
+
if (el.hasAttribute('inert') || el.getAttribute('role') === 'tooltip')
|
|
18788
18863
|
return;
|
|
18789
18864
|
if (el.localName === 'slot') {
|
|
18790
18865
|
const slot = el;
|
|
@@ -18840,7 +18915,7 @@ function tabbableIn(root) {
|
|
|
18840
18915
|
return oneRadioPerGroup(visible);
|
|
18841
18916
|
}
|
|
18842
18917
|
|
|
18843
|
-
const pdsModalCss = () => `.pds-modal__backdrop{-ms-flex-align:start;align-items:flex-start;background-color:rgba(0, 0, 0, 0.4);border:0;display:-ms-flexbox;display:flex;height:100%;inset:0;-ms-flex-pack:center;justify-content:center;margin:0;max-height:100%;max-width:100%;opacity:0;padding:0;position:fixed;-webkit-transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);visibility:hidden;width:100%;z-index:var(--pine-z-index-modal)}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}pds-modal .pds-modal__backdrop{z-index:var(--pine-z-index-priority)}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop[aria-modal=false]{overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop[aria-modal=false]{-webkit-backdrop-filter:none;backdrop-filter:none}.pds-modal__backdrop[aria-modal=false]::before{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);content:"";inset:0;position:fixed;z-index:-1}}.pds-modal__backdrop.open{opacity:1;-webkit-transition-timing-function:var(--pine-motion-easing-out);transition-timing-function:var(--pine-motion-easing-out);visibility:visible}.pds-modal{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-sm);-webkit-box-shadow:var(--pine-box-shadow-400);box-shadow:var(--pine-box-shadow-400);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:var(--pine-dimension-md);max-height:none;width:100%}.pds-modal.pds-modal--scrollable{max-height:calc(100vh - (5vh + 96px))}@supports (height: 100dvh){.pds-modal.pds-modal--scrollable{max-height:calc(100dvh - (5dvh + 96px))}}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:6dvh;margin-block-start:6dvh}}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:8dvh;margin-block-start:8dvh}}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--custom{max-width:var(--pds-modal-max-width, 700px)}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}@supports (height: 100dvh){.pds-modal--fullscreen{max-height:100dvh}}.pds-modal--fullscreen.pds-modal--scrollable{max-height:100vh}@supports (height: 100dvh){.pds-modal--fullscreen.pds-modal--scrollable{max-height:100dvh}}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}.pds-modal--scrollable pds-modal-content{-webkit-border-after:1px solid transparent;border-block-end:1px solid transparent;-webkit-border-before:1px solid transparent;border-block-start:1px solid transparent;overflow-y:auto}.pds-modal:not(.pds-modal--scrollable) pds-modal-content{overflow-y:visible}`;
|
|
18918
|
+
const pdsModalCss = () => `.pds-modal__backdrop{-ms-flex-align:start;align-items:flex-start;background-color:rgba(0, 0, 0, 0.4);border:0;display:-ms-flexbox;display:flex;height:100%;inset:0;-ms-flex-pack:center;justify-content:center;margin:0;max-height:100%;max-width:100%;opacity:0;padding:0;position:fixed;-webkit-transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);transition:opacity var(--pine-motion-duration-base) var(--pine-motion-easing-in), visibility var(--pine-motion-duration-base) var(--pine-motion-easing-in);visibility:hidden;width:100%;z-index:var(--pine-z-index-modal)}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}pds-modal pds-modal .pds-modal__backdrop{z-index:var(--pine-z-index-priority)}.pds-modal__backdrop::-webkit-backdrop{background:transparent}.pds-modal__backdrop::-ms-backdrop{background:transparent}.pds-modal__backdrop::backdrop{background:transparent}.pds-modal__backdrop[aria-modal=false]{overflow:auto;-ms-scroll-chaining:none;overscroll-behavior:contain}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-modal__backdrop[aria-modal=false]{-webkit-backdrop-filter:none;backdrop-filter:none}.pds-modal__backdrop[aria-modal=false]::before{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);content:"";inset:0;position:fixed;z-index:-1}}.pds-modal__backdrop.open{opacity:1;-webkit-transition-timing-function:var(--pine-motion-easing-out);transition-timing-function:var(--pine-motion-easing-out);visibility:visible}.pds-modal{background:var(--pine-color-background-overlay);border-radius:var(--pine-dimension-sm);-webkit-box-shadow:var(--pine-box-shadow-400);box-shadow:var(--pine-box-shadow-400);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:var(--pine-dimension-md);max-height:none;width:100%}.pds-modal.pds-modal--scrollable{max-height:calc(100vh - (5vh + 96px))}@supports (height: 100dvh){.pds-modal.pds-modal--scrollable{max-height:calc(100dvh - (5dvh + 96px))}}@media (min-width: 992px){.pds-modal{-webkit-margin-before:6vh;margin-block-start:6vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:6dvh;margin-block-start:6dvh}}}@media (min-width: 1200px){.pds-modal{-webkit-margin-before:8vh;margin-block-start:8vh}@supports (height: 100dvh){.pds-modal{-webkit-margin-before:8dvh;margin-block-start:8dvh}}}.pds-modal--sm{max-width:520px}.pds-modal--md{max-width:700px}.pds-modal--lg{max-width:900px}.pds-modal--custom{max-width:var(--pds-modal-max-width, 700px)}.pds-modal--fullscreen{border-radius:0;height:100%;margin:0;max-height:100vh;max-width:100%}@supports (height: 100dvh){.pds-modal--fullscreen{max-height:100dvh}}.pds-modal--fullscreen.pds-modal--scrollable{max-height:100vh}@supports (height: 100dvh){.pds-modal--fullscreen.pds-modal--scrollable{max-height:100dvh}}.pds-modal--fullscreen .pds-modal-content{-ms-flex:1;flex:1}.pds-modal--scrollable pds-modal-content{-webkit-border-after:1px solid transparent;border-block-end:1px solid transparent;-webkit-border-before:1px solid transparent;border-block-start:1px solid transparent;overflow-y:auto}.pds-modal:not(.pds-modal--scrollable) pds-modal-content{overflow-y:visible}`;
|
|
18844
18919
|
|
|
18845
18920
|
const PRESET_SIZES = ['sm', 'md', 'lg', 'fullscreen'];
|
|
18846
18921
|
const isCustomLength = (value) => /^[a-z0-9.%+\-*/(), ]+$/i.test(value) &&
|
|
@@ -20017,6 +20092,12 @@ class PdsMultiselect {
|
|
|
20017
20092
|
}
|
|
20018
20093
|
else {
|
|
20019
20094
|
this.closeDropdown();
|
|
20095
|
+
// Tab would move on to an option's checkbox, which closing removes, dropping focus to the page.
|
|
20096
|
+
// Land on the trigger instead, as Escape does; Shift+Tab already reaches it.
|
|
20097
|
+
const trigger = e.shiftKey ? undefined : this.activeTriggerEl;
|
|
20098
|
+
trigger === null || trigger === void 0 ? void 0 : trigger.focus();
|
|
20099
|
+
if (trigger === null || trigger === void 0 ? void 0 : trigger.matches(':focus'))
|
|
20100
|
+
e.preventDefault();
|
|
20020
20101
|
}
|
|
20021
20102
|
break;
|
|
20022
20103
|
}
|
|
@@ -20975,10 +21056,10 @@ class PdsMultiselect {
|
|
|
20975
21056
|
}
|
|
20976
21057
|
render() {
|
|
20977
21058
|
const hasSelections = this.selectedItems.length > 0;
|
|
20978
|
-
return (hAsync(Host, { key: '
|
|
21059
|
+
return (hAsync(Host, { key: '8f1ce5ef092285ce7c0855643fae76a4ec86ee17', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: 'c14c3d52c1d55fb33a89f1a25055728215a1e4ab', class: "pds-multiselect", onFocusout: this.handleContainerFocusOut }, this.label && (hAsync("label", { key: 'aacd3339b0db2048b31fbc5963f7232bbff78efe', id: `${this.componentId}-label`, htmlFor: this.componentId, class: {
|
|
20979
21060
|
'pds-multiselect__label': true,
|
|
20980
21061
|
'visually-hidden': this.hideLabel,
|
|
20981
|
-
} }, this.label)), hAsync("div", { key: '
|
|
21062
|
+
} }, this.label)), hAsync("div", { key: '5e1ef76aa5d46798519e5ac885bfa1c8d7c7106c', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), style: { width: this.triggerWidth } }, this.slottedTriggerEl ? (hAsync("slot", { name: "trigger" })) : this.selectedDisplay === 'pill' && this.pillPosition === 'inline' ? (hAsync("div", { ref: el => (this.pillInlineTriggerEl = el || undefined), part: "trigger", class: {
|
|
20982
21063
|
'pds-multiselect__trigger': true,
|
|
20983
21064
|
'pds-multiselect__trigger--open': this.isOpen,
|
|
20984
21065
|
'pds-multiselect__trigger--disabled': this.disabled,
|
|
@@ -20994,7 +21075,7 @@ class PdsMultiselect {
|
|
|
20994
21075
|
}, id: this.componentId, disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-describedby": assignDescription(this.componentId, this.invalid || !!this.errorMessage, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid || !!this.errorMessage ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hAsync("span", { class: {
|
|
20995
21076
|
'pds-multiselect__trigger-text': true,
|
|
20996
21077
|
'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
|
|
20997
|
-
} }, this.getTriggerText()), hAsync("pds-icon", { "aria-hidden": "true", class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), hAsync("span", { key: '
|
|
21078
|
+
} }, this.getTriggerText()), hAsync("pds-icon", { "aria-hidden": "true", class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), hAsync("span", { key: '590045e4769812a1a2f7a97580d21d95dbe4e872', class: "visually-hidden", "aria-live": "polite", "aria-atomic": "true" }, this.removalAnnouncement), this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (hAsync("p", { key: '419f4349b7cb17260f03d2bdcfd777561a62de42', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("p", { key: 'b922af14c83348607aa9aaaefe9b03b39e71bd42', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: 'bd08726adf14a42f2ecf0cdfcd390e5639f9fd96', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage)), hAsync("div", { key: '42ad7905fb1816ccdd29b6aa438779929804b368', style: { display: 'none' } }, hAsync("slot", { key: '4f3bf380e93d216790efb0a5de85d6479862350e' })))));
|
|
20998
21079
|
}
|
|
20999
21080
|
static get formAssociated() { return true; }
|
|
21000
21081
|
get el() { return getElement(this); }
|
|
@@ -22473,6 +22554,7 @@ class PdsRadioGroup {
|
|
|
22473
22554
|
* @defaultValue false
|
|
22474
22555
|
*/
|
|
22475
22556
|
this.required = false;
|
|
22557
|
+
this.hostKeeper = new HostStylingKeeper();
|
|
22476
22558
|
}
|
|
22477
22559
|
handlePropsChange() {
|
|
22478
22560
|
this.updateChildRadios();
|
|
@@ -22524,6 +22606,29 @@ class PdsRadioGroup {
|
|
|
22524
22606
|
}
|
|
22525
22607
|
});
|
|
22526
22608
|
}
|
|
22609
|
+
connectedCallback() {
|
|
22610
|
+
this.hostKeeper.connect(this.el);
|
|
22611
|
+
// A name set while the group was detached never reaches the observer.
|
|
22612
|
+
this.syncName();
|
|
22613
|
+
if (typeof MutationObserver === 'undefined')
|
|
22614
|
+
return;
|
|
22615
|
+
// Consumers can name the group after render (a prop change, an i18n swap, a morph); re-render so their name wins.
|
|
22616
|
+
this.hostAriaObserver = new MutationObserver(() => this.syncName());
|
|
22617
|
+
this.hostAriaObserver.observe(this.el, { attributeFilter: ['aria-label', 'aria-labelledby'] });
|
|
22618
|
+
}
|
|
22619
|
+
disconnectedCallback() {
|
|
22620
|
+
var _a;
|
|
22621
|
+
this.hostKeeper.disconnect();
|
|
22622
|
+
(_a = this.hostAriaObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
22623
|
+
this.hostAriaObserver = undefined;
|
|
22624
|
+
}
|
|
22625
|
+
// Re-renders only when the group's name would change, so its own aria-labelledby write doesn't loop back.
|
|
22626
|
+
syncName() {
|
|
22627
|
+
if (this._groupId === undefined)
|
|
22628
|
+
return;
|
|
22629
|
+
if (this.getAriaLabelledBy() !== this.renderedLabelledBy)
|
|
22630
|
+
;
|
|
22631
|
+
}
|
|
22527
22632
|
componentWillLoad() {
|
|
22528
22633
|
// Generate stable group ID once during initialization
|
|
22529
22634
|
// This ensures DOM stability and accessibility relationships remain consistent across re-renders
|
|
@@ -22537,6 +22642,18 @@ class PdsRadioGroup {
|
|
|
22537
22642
|
: `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
22538
22643
|
this._groupId = `radio-group-${uniqueId}`;
|
|
22539
22644
|
}
|
|
22645
|
+
// A restored or cloned host still carries the id and ARIA references an earlier instance wrote, pointing at
|
|
22646
|
+
// that instance's label and messages. Drop them so this render writes its own: on first load, Stencil keeps a
|
|
22647
|
+
// host attribute that's already there.
|
|
22648
|
+
const previousId = this.el.getAttribute('id');
|
|
22649
|
+
if (previousId && previousId !== this._groupId) {
|
|
22650
|
+
['aria-labelledby', 'aria-describedby'].forEach((name) => {
|
|
22651
|
+
var _a, _b;
|
|
22652
|
+
const ids = (_b = (_a = this.el.getAttribute(name)) === null || _a === void 0 ? void 0 : _a.split(/\s+/)) !== null && _b !== void 0 ? _b : [];
|
|
22653
|
+
if (ids.some((id) => id.startsWith(`${previousId}__`)))
|
|
22654
|
+
this.el.removeAttribute(name);
|
|
22655
|
+
});
|
|
22656
|
+
}
|
|
22540
22657
|
}
|
|
22541
22658
|
componentDidLoad() {
|
|
22542
22659
|
if (!this.name) {
|
|
@@ -22589,6 +22706,20 @@ class PdsRadioGroup {
|
|
|
22589
22706
|
// Otherwise, assume it's a dimension token like "100", "200", etc.
|
|
22590
22707
|
return `var(--pine-dimension-${this.gap})`;
|
|
22591
22708
|
}
|
|
22709
|
+
get labelId() {
|
|
22710
|
+
return `${this._groupId}__label`;
|
|
22711
|
+
}
|
|
22712
|
+
// Names the group from its visible label, unless the consumer named it with their own aria-label or aria-labelledby.
|
|
22713
|
+
// A blank aria-label (an empty translation, say) names nothing, so it falls back to groupLabel.
|
|
22714
|
+
getAriaLabelledBy() {
|
|
22715
|
+
var _a;
|
|
22716
|
+
const hostLabelledBy = this.el.getAttribute('aria-labelledby');
|
|
22717
|
+
if ((hostLabelledBy === null || hostLabelledBy === void 0 ? void 0 : hostLabelledBy.trim()) && hostLabelledBy !== this.labelId)
|
|
22718
|
+
return hostLabelledBy;
|
|
22719
|
+
if ((_a = this.el.getAttribute('aria-label')) === null || _a === void 0 ? void 0 : _a.trim())
|
|
22720
|
+
return undefined;
|
|
22721
|
+
return this.groupLabel ? this.labelId : undefined;
|
|
22722
|
+
}
|
|
22592
22723
|
getAriaDescribedBy() {
|
|
22593
22724
|
const messageIds = [];
|
|
22594
22725
|
if (this.errorMessage) {
|
|
@@ -22602,13 +22733,23 @@ class PdsRadioGroup {
|
|
|
22602
22733
|
render() {
|
|
22603
22734
|
const gapValue = this.getGapValue();
|
|
22604
22735
|
const ariaDescribedBy = this.getAriaDescribedBy();
|
|
22605
|
-
|
|
22736
|
+
const ariaLabelledBy = this.getAriaLabelledBy();
|
|
22737
|
+
const hostClass = this.classNames();
|
|
22738
|
+
this.renderedLabelledBy = ariaLabelledBy;
|
|
22739
|
+
// A DOM morph strips what the component wrote on its host; put back its role, name and description.
|
|
22740
|
+
// Only its own aria-labelledby, so a consumer's that the server dropped stays dropped.
|
|
22741
|
+
this.hostKeeper.record(hostClass, { '--pds-radio-group-gap': gapValue }, {
|
|
22742
|
+
role: 'radiogroup',
|
|
22743
|
+
'aria-describedby': ariaDescribedBy,
|
|
22744
|
+
'aria-labelledby': ariaLabelledBy === this.labelId ? ariaLabelledBy : undefined,
|
|
22745
|
+
});
|
|
22746
|
+
return (hAsync(Host, { key: '0fe381f99dddae0aeb9189a13b0e2195f1c79886', class: hostClass, id: this._groupId, role: "radiogroup", "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, style: {
|
|
22606
22747
|
'--pds-radio-group-gap': gapValue,
|
|
22607
|
-
} }, this.groupLabel && (hAsync("div", { key: '
|
|
22748
|
+
} }, this.groupLabel && (hAsync("div", { key: '4967dc22fa0265dbfbabf94a49b182b8c06d0bd5', class: "pds-radio-group__label", id: this.labelId }, this.groupLabel)), hAsync("div", { key: '7a782a6920de7eda76ab0060c7512f093671ad41', class: {
|
|
22608
22749
|
'pds-radio-group__radios': true,
|
|
22609
22750
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
22610
22751
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
22611
|
-
} }, hAsync("slot", { key: '
|
|
22752
|
+
} }, hAsync("slot", { key: '48a8d2d74961a402e3a1b053b2f0314e74b4b289', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (hAsync("div", { key: '58db96d62b8d89f03ab245990d2d6bbd3b1b5f85', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("div", { key: 'ad3aafe5f7ed45853c36b537525a8fff68452f55', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '80ce92868703c5e01434e7e83a7668e320bcbee1', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))));
|
|
22612
22753
|
}
|
|
22613
22754
|
get el() { return getElement(this); }
|
|
22614
22755
|
static get watchers() { return {
|
|
@@ -27514,6 +27655,9 @@ const TEXT_SIZES = [
|
|
|
27514
27655
|
|
|
27515
27656
|
const pdsTextCss = () => `:host{display:inline}:host([decoration=underline-dotted])>*{-webkit-text-decoration-color:var(--pine-color-text-tertiary);text-decoration-color:var(--pine-color-text-tertiary);-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted;text-decoration-thickness:12%;text-underline-offset:0.3rem;text-underline-position:under}:host([decoration=strikethrough])>*{text-decoration:line-through}h1{font:var(--pine-typography-heading-1);letter-spacing:var(--pine-letter-spacing-heading-1)}h2{font:var(--pine-typography-heading-2);letter-spacing:var(--pine-letter-spacing-heading-2)}h3{font:var(--pine-typography-heading-3);letter-spacing:var(--pine-letter-spacing-heading-3)}h4{font:var(--pine-typography-heading-4);letter-spacing:var(--pine-letter-spacing-heading-4)}h5{font:var(--pine-typography-heading-5);letter-spacing:var(--pine-letter-spacing-heading-5)}h6{font:var(--pine-typography-heading-6);letter-spacing:var(--pine-letter-spacing-heading-6)}code,em,p,pre,strong{font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing)}code,pre{font-family:monospace;letter-spacing:0;line-height:1}em{font-style:normal}strong{font-weight:bolder}:host([truncate]){display:block;min-width:0}:host([truncate])>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host([italic])>*{font-style:italic}.pds-text{color:var(--color, var(--pine-color-text));margin:var(--pine-dimension-none)}.pds-text--size-2xl{font-size:var(--pine-font-size-body-2xl)}.pds-text--size-xl{font-size:var(--pine-font-size-body-xl)}.pds-text--size-lg{font-size:var(--pine-font-size-body-lg)}.pds-text--size-md{font-size:var(--pine-font-size-body-md)}.pds-text--size-sm{font-size:var(--pine-font-size-body-sm)}.pds-text--size-xs{font-size:var(--pine-font-size-body-xs)}.pds-text--size-2xs{font-size:var(--pine-font-size-body-2xs)}.pds-text--size-h1{font-size:var(--pine-font-size-heading-1)}.pds-text--size-h2{font-size:var(--pine-font-size-heading-2)}.pds-text--size-h3{font-size:var(--pine-font-size-heading-3)}.pds-text--size-h4{font-size:var(--pine-font-size-heading-4)}.pds-text--size-h5{font-size:var(--pine-font-size-heading-5)}.pds-text--size-h6{font-size:var(--pine-font-size-heading-6)}.pds-text--weight-extra-light{font-weight:var(--pine-font-weight-extra-light)}.pds-text--weight-light{font-weight:var(--pine-font-weight-light)}.pds-text--weight-regular{font-weight:var(--pine-font-weight-regular)}.pds-text--weight-medium{font-weight:var(--pine-font-weight-medium)}.pds-text--weight-semibold{font-weight:var(--pine-font-weight-semi-bold)}.pds-text--weight-bold{font-weight:var(--pine-font-weight-bold)}.pds-text--gutter-2xl{-webkit-margin-after:var(--pine-dimension-2xl);margin-block-end:var(--pine-dimension-2xl)}.pds-text--gutter-xl{-webkit-margin-after:var(--pine-dimension-xl);margin-block-end:var(--pine-dimension-xl)}.pds-text--gutter-lg{-webkit-margin-after:var(--pine-dimension-lg);margin-block-end:var(--pine-dimension-lg)}.pds-text--gutter-md{-webkit-margin-after:var(--pine-dimension-md);margin-block-end:var(--pine-dimension-md)}.pds-text--gutter-sm{-webkit-margin-after:var(--pine-dimension-sm);margin-block-end:var(--pine-dimension-sm)}.pds-text--gutter-xs{-webkit-margin-after:var(--pine-dimension-xs);margin-block-end:var(--pine-dimension-xs)}.pds-text--gutter-2xs{-webkit-margin-after:var(--pine-dimension-2xs);margin-block-end:var(--pine-dimension-2xs)}.pds-text--align-start{text-align:start}.pds-text--align-center{text-align:center}.pds-text--align-end{text-align:end}.pds-text--align-justify{text-align:justify}`;
|
|
27516
27657
|
|
|
27658
|
+
// Re-runs setup for each text bound to its wrapping control, keyed by host, so a truncated
|
|
27659
|
+
// text that joins the same control later can take that control's focus away from it.
|
|
27660
|
+
const textsUsingWrapper = new WeakMap();
|
|
27517
27661
|
/**
|
|
27518
27662
|
* @part content - The text content container
|
|
27519
27663
|
*/
|
|
@@ -27568,17 +27712,39 @@ class PdsText {
|
|
|
27568
27712
|
this.destroyTruncationTooltip();
|
|
27569
27713
|
}
|
|
27570
27714
|
initTruncationTooltip() {
|
|
27715
|
+
var _a;
|
|
27571
27716
|
// Clean up any existing tooltip before setting up a new one
|
|
27572
27717
|
this.destroyTruncationTooltip();
|
|
27573
27718
|
if (this.contentEl) {
|
|
27719
|
+
const wrapper = this.el.closest(FOCUSABLE_WRAPPER);
|
|
27720
|
+
// A pds-chip with a max width binds its tooltip to the wrapper too.
|
|
27721
|
+
const others = wrapper === null ? [] : wrapper.querySelectorAll('pds-text, pds-chip');
|
|
27722
|
+
// One focus on a shared wrapper would open every clipped text's tooltip at once, so texts sharing one each keep
|
|
27723
|
+
// their own stop, and a text bound before this one joined lets go: this one's focus bubbles to the wrapper too.
|
|
27724
|
+
let sharesWrapper = false;
|
|
27725
|
+
for (let i = 0; i < others.length; i++) {
|
|
27726
|
+
const other = others[i];
|
|
27727
|
+
// The property counts too: setting `truncate` runs setup before the next render reflects the attribute.
|
|
27728
|
+
if (other !== this.el && (other.truncate || other.maxWidth || other.hasAttribute('truncate') || other.hasAttribute('max-width'))) {
|
|
27729
|
+
sharesWrapper = true;
|
|
27730
|
+
(_a = textsUsingWrapper.get(other)) === null || _a === void 0 ? void 0 : _a();
|
|
27731
|
+
}
|
|
27732
|
+
}
|
|
27733
|
+
const usesWrapper = wrapper !== null && !sharesWrapper;
|
|
27574
27734
|
this.truncationCleanup = setupTruncationTooltip({
|
|
27575
27735
|
hostEl: this.el,
|
|
27576
27736
|
contentEl: this.contentEl,
|
|
27577
27737
|
getTooltipText: () => this.el.textContent || '',
|
|
27738
|
+
// A wrapping link or button already takes focus, so its focus reveals the text instead of a nested tab stop.
|
|
27739
|
+
manageTabIndex: !usesWrapper,
|
|
27740
|
+
focusEl: usesWrapper ? wrapper : this.el,
|
|
27578
27741
|
});
|
|
27742
|
+
if (usesWrapper)
|
|
27743
|
+
textsUsingWrapper.set(this.el, () => this.initTruncationTooltip());
|
|
27579
27744
|
}
|
|
27580
27745
|
}
|
|
27581
27746
|
destroyTruncationTooltip() {
|
|
27747
|
+
textsUsingWrapper.delete(this.el);
|
|
27582
27748
|
if (this.truncationCleanup) {
|
|
27583
27749
|
this.truncationCleanup();
|
|
27584
27750
|
this.truncationCleanup = null;
|
|
@@ -27604,7 +27770,7 @@ class PdsText {
|
|
|
27604
27770
|
? `pds-text--decoration-${this.decoration}`
|
|
27605
27771
|
: ''}
|
|
27606
27772
|
`;
|
|
27607
|
-
return (hAsync(Tag, { key: '
|
|
27773
|
+
return (hAsync(Tag, { key: '30566c7810d3fd7f76ae281ae6d9a7e66803f0a3', ref: (el) => (this.contentEl = el), style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: 'f5113458aa9295803fc1c0bc552f9f92602cacba' })));
|
|
27608
27774
|
}
|
|
27609
27775
|
get el() { return getElement(this); }
|
|
27610
27776
|
static get watchers() { return {
|
|
@@ -28169,7 +28335,7 @@ class PdsToast {
|
|
|
28169
28335
|
}; }
|
|
28170
28336
|
}
|
|
28171
28337
|
|
|
28172
|
-
const pdsTooltipCss = () => `.pds-tooltip{--tooltip-border-width-arrow-down:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-left:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-right:var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-border-width-arrow-up:0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-sizing-arrow:6px;--tooltip-sizing-arrow-offset:14px;--tooltip-dimension-max-width:320px}.pds-tooltip__content{background-color:var(--pine-color-primary);border-radius:calc(var(--pine-dimension-xs) * 1.25);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);color:var(--pine-color-text-primary);max-width:var(--tooltip-dimension-max-width);opacity:0;padding:var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);position:relative;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content}.pds-tooltip--is-open .pds-tooltip__content{opacity:1;visibility:visible;z-index:var(--pine-z-index-raised)}.pds-tooltip.pds-tooltip--has-html-content .pds-tooltip__content{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-tooltip__content::after{border-color:transparent;border-right-color:transparent;border-style:solid;border-width:var(--tooltip-border-width-arrow-left);content:"";height:0;position:absolute;width:0}.pds-tooltip--right .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--right-end .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);bottom:var(--tooltip-sizing-arrow-offset);left:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--right-start .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--top .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:50%;top:initial;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--top-start .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--top-end .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:initial;right:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--left .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--left-end .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);bottom:var(--tooltip-sizing-arrow-offset);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--left-start .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--bottom .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:50%;top:calc(var(--tooltip-sizing-arrow) * -1);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--bottom-end .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:initial;right:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--bottom-start .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--no-arrow .pds-tooltip__content::after{border-width:0}`;
|
|
28338
|
+
const pdsTooltipCss = () => `.pds-tooltip{--tooltip-border-width-arrow-down:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-left:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-right:var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-border-width-arrow-up:0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-sizing-arrow:6px;--tooltip-sizing-arrow-offset:14px;--tooltip-dimension-max-width:320px}:is(dialog,[popover])>.pds-tooltip{font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0;text-transform:none;white-space:normal;word-spacing:normal}.pds-tooltip__content{background-color:var(--pine-color-primary);border-radius:calc(var(--pine-dimension-xs) * 1.25);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);color:var(--pine-color-text-primary);max-width:var(--tooltip-dimension-max-width);opacity:0;padding:var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);position:relative;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content}.pds-tooltip--is-open .pds-tooltip__content{opacity:1;visibility:visible;z-index:var(--pine-z-index-raised)}.pds-tooltip.pds-tooltip--has-html-content .pds-tooltip__content{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.pds-tooltip__content::after{border-color:transparent;border-right-color:transparent;border-style:solid;border-width:var(--tooltip-border-width-arrow-left);content:"";height:0;position:absolute;width:0}.pds-tooltip--right .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--right-end .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);bottom:var(--tooltip-sizing-arrow-offset);left:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--right-start .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--top .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:50%;top:initial;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--top-start .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--top-end .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:initial;right:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--left .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--left-end .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);bottom:var(--tooltip-sizing-arrow-offset);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--left-start .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--bottom .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:50%;top:calc(var(--tooltip-sizing-arrow) * -1);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--bottom-end .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:initial;right:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--bottom-start .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--no-arrow .pds-tooltip__content::after{border-width:0}`;
|
|
28173
28339
|
|
|
28174
28340
|
/**
|
|
28175
28341
|
* @slot (default) - The tooltip's target element
|
|
@@ -28194,6 +28360,7 @@ class PdsTooltip {
|
|
|
28194
28360
|
this.currentPathname = '';
|
|
28195
28361
|
this.pathnameCheckInterval = null;
|
|
28196
28362
|
this.stopAutoUpdate = null;
|
|
28363
|
+
this.stopWatchingPortalHost = null;
|
|
28197
28364
|
/**
|
|
28198
28365
|
* Determines whether or not the tooltip has an arrow
|
|
28199
28366
|
* @defaultValue true
|
|
@@ -28443,7 +28610,12 @@ class PdsTooltip {
|
|
|
28443
28610
|
this.lastCopiedHtml = this.strippedHtml(initialCopy);
|
|
28444
28611
|
this.contentDiv.append(...Array.from(initialCopy.childNodes));
|
|
28445
28612
|
this.portalEl.appendChild(this.contentDiv);
|
|
28446
|
-
|
|
28613
|
+
// Nothing in the body paints above a modal dialog or open popover, so the portal goes inside one.
|
|
28614
|
+
const portalHost = findPortalTarget(this.el, isTopLayerInDocument);
|
|
28615
|
+
portalHost.appendChild(this.portalEl);
|
|
28616
|
+
// Closing that host moves no pointer, so a tooltip opened by touch would outlive it unseen.
|
|
28617
|
+
if (portalHost !== document.body)
|
|
28618
|
+
this.stopWatchingPortalHost = onTopLayerClose(portalHost, this.handleHide);
|
|
28447
28619
|
this.repositionPortal().catch(error => {
|
|
28448
28620
|
console.warn('Failed to position tooltip on creation:', error);
|
|
28449
28621
|
});
|
|
@@ -28556,6 +28728,10 @@ class PdsTooltip {
|
|
|
28556
28728
|
this.stopAutoUpdate();
|
|
28557
28729
|
this.stopAutoUpdate = null;
|
|
28558
28730
|
}
|
|
28731
|
+
if (this.stopWatchingPortalHost !== null) {
|
|
28732
|
+
this.stopWatchingPortalHost();
|
|
28733
|
+
this.stopWatchingPortalHost = null;
|
|
28734
|
+
}
|
|
28559
28735
|
// Stop pathname change detection
|
|
28560
28736
|
if (this.pathnameCheckInterval !== null) {
|
|
28561
28737
|
clearInterval(this.pathnameCheckInterval);
|
|
@@ -28586,9 +28762,9 @@ class PdsTooltip {
|
|
|
28586
28762
|
}
|
|
28587
28763
|
render() {
|
|
28588
28764
|
const hostId = this.componentId || undefined;
|
|
28589
|
-
return (hAsync(Host, { key: '
|
|
28765
|
+
return (hAsync(Host, { key: '475ff12d4be035e3effa894353e7948b42a23489', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, hAsync("span", { key: '3375dfb5bb86ba373bc5d617f4a53171505631d1', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
|
|
28590
28766
|
/* focusin/out bubble; ensure keyboard users see tooltips */
|
|
28591
|
-
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: '
|
|
28767
|
+
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: 'a3392ad415f5ac7f3883100bf914484ffcc8e536' })), hAsync("div", { key: '774ac2c4808e96649b1536569aaf8cf8a6e3abc2', class: "pds-tooltip__content-slot-wrapper", hidden: true }, hAsync("slot", { key: '672c64b4acdb365623885ac2105a9b90b1dcfa6b', name: "content" }))));
|
|
28592
28768
|
}
|
|
28593
28769
|
get el() { return getElement(this); }
|
|
28594
28770
|
static get watchers() { return {
|