@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.mjs
CHANGED
|
@@ -5646,7 +5646,7 @@ var setScopedSSR = (opts) => {
|
|
|
5646
5646
|
var needsScopedSSR = () => scopedSSR;
|
|
5647
5647
|
var scopedSSR = false;
|
|
5648
5648
|
|
|
5649
|
-
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}`;
|
|
5649
|
+
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}`;
|
|
5650
5650
|
|
|
5651
5651
|
/**
|
|
5652
5652
|
* Mock PdsModal component for testing purposes
|
|
@@ -5752,7 +5752,7 @@ class MockPdsModal {
|
|
|
5752
5752
|
}; }
|
|
5753
5753
|
}
|
|
5754
5754
|
|
|
5755
|
-
/* pds-icons v10.
|
|
5755
|
+
/* pds-icons v10.8.0, ES Modules */
|
|
5756
5756
|
|
|
5757
5757
|
const addCircle = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m11-5a1 1 0 0 1 1 1v3h3a1 1 0 1 1 0 2h-3v3a1 1 0 1 1-2 0v-3H8a1 1 0 1 1 0-2h3V8a1 1 0 0 1 1-1'/></svg>";
|
|
5758
5758
|
const calendarSimple = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M8 1a1 1 0 0 1 1 1v1h6V2a1 1 0 1 1 2 0v1.002c.476.003.891.013 1.252.042.562.046 1.079.145 1.564.392a4 4 0 0 1 1.748 1.748c.247.485.346 1.002.392 1.564C22 7.29 22 7.954 22 8.758v8.483c0 .805 0 1.47-.044 2.01-.046.563-.145 1.08-.392 1.565a4 4 0 0 1-1.748 1.748c-.485.247-1.002.346-1.564.392-.541.044-1.206.044-2.01.044H7.758c-.805 0-1.47 0-2.01-.044-.563-.046-1.08-.145-1.565-.392a4 4 0 0 1-1.748-1.748c-.247-.485-.346-1.002-.392-1.564C2 18.71 2 18.046 2 17.242V8.758c0-.805 0-1.47.044-2.01.046-.563.145-1.08.392-1.565a4 4 0 0 1 1.748-1.748c.485-.247 1.002-.346 1.564-.392.361-.03.777-.04 1.252-.042V2a1 1 0 0 1 1-1M7 5.002c-.446.003-.795.012-1.089.036-.438.035-.663.1-.819.18a2 2 0 0 0-.874.874c-.08.156-.145.38-.18.819C4 7.361 4 7.943 4 8.8V9h16v-.2c0-.857 0-1.439-.038-1.889-.035-.438-.1-.663-.18-.819a2 2 0 0 0-.874-.874c-.156-.08-.38-.145-.819-.18A15 15 0 0 0 17 5.002V6a1 1 0 1 1-2 0V5H9v1a1 1 0 1 1-2 0zM20 11H4v6.2c0 .857 0 1.439.038 1.889.035.438.1.663.18.819a2 2 0 0 0 .874.874c.156.08.38.145.819.18C6.361 21 6.943 21 7.8 21h8.4c.857 0 1.439 0 1.889-.038.438-.035.663-.1.819-.18a2 2 0 0 0 .874-.874c.08-.156.145-.38.18-.819.037-.45.038-1.032.038-1.889z'/></svg>";
|
|
@@ -8996,6 +8996,74 @@ const computePosition = (reference, floating, options) => {
|
|
|
8996
8996
|
});
|
|
8997
8997
|
};
|
|
8998
8998
|
|
|
8999
|
+
/**
|
|
9000
|
+
* The native `<dialog>` or open `popover` (as pds-filter's) an element sits in, so a popup portaled
|
|
9001
|
+
* there shares its top layer and a click in it isn't outside it; otherwise `document.body`.
|
|
9002
|
+
* `closest()` stops at shadow boundaries and misses one that only wraps slotted content, so this
|
|
9003
|
+
* walks assigned slots and shadow hosts, as pds-combobox does. `isHost` picks which ancestor counts.
|
|
9004
|
+
*/
|
|
9005
|
+
function findPortalTarget(from, isHost = isOpenDialogOrPopover) {
|
|
9006
|
+
const seen = new Set();
|
|
9007
|
+
let current = from;
|
|
9008
|
+
while (current && !seen.has(current)) {
|
|
9009
|
+
seen.add(current);
|
|
9010
|
+
if (current.nodeType === Node.ELEMENT_NODE && isHost(current)) {
|
|
9011
|
+
return current;
|
|
9012
|
+
}
|
|
9013
|
+
const assigned = current.nodeType === Node.ELEMENT_NODE ? current.assignedSlot : null;
|
|
9014
|
+
if (assigned) {
|
|
9015
|
+
current = assigned;
|
|
9016
|
+
continue;
|
|
9017
|
+
}
|
|
9018
|
+
const parent = current.parentNode;
|
|
9019
|
+
current = parent instanceof ShadowRoot ? parent.host : parent;
|
|
9020
|
+
}
|
|
9021
|
+
return document.body;
|
|
9022
|
+
}
|
|
9023
|
+
/**
|
|
9024
|
+
* A modal dialog or open popover, which paints in the top layer above anything in the body, that
|
|
9025
|
+
* sits in the document itself: the document's stylesheets don't reach into a shadow root.
|
|
9026
|
+
*/
|
|
9027
|
+
function isTopLayerInDocument(el) {
|
|
9028
|
+
if (el.getRootNode() !== el.ownerDocument)
|
|
9029
|
+
return false;
|
|
9030
|
+
return matchesSafely(el, ':modal') || matchesSafely(el, ':popover-open');
|
|
9031
|
+
}
|
|
9032
|
+
/**
|
|
9033
|
+
* Calls `onClose` once `host` leaves the top layer (its dialog closes or its popover hides), and
|
|
9034
|
+
* returns a function that stops listening.
|
|
9035
|
+
*/
|
|
9036
|
+
function onTopLayerClose(host, onClose) {
|
|
9037
|
+
const check = () => {
|
|
9038
|
+
if (!isTopLayerInDocument(host))
|
|
9039
|
+
onClose();
|
|
9040
|
+
};
|
|
9041
|
+
host.addEventListener('close', check);
|
|
9042
|
+
host.addEventListener('toggle', check);
|
|
9043
|
+
return () => {
|
|
9044
|
+
host.removeEventListener('close', check);
|
|
9045
|
+
host.removeEventListener('toggle', check);
|
|
9046
|
+
};
|
|
9047
|
+
}
|
|
9048
|
+
function isOpenDialogOrPopover(el) {
|
|
9049
|
+
// Only an open dialog: inside a closed one, the popup would be hidden with it.
|
|
9050
|
+
if (el.localName === 'dialog')
|
|
9051
|
+
return el.open;
|
|
9052
|
+
return el.hasAttribute('popover') && matchesSafely(el, ':popover-open');
|
|
9053
|
+
}
|
|
9054
|
+
function matchesSafely(el, selector) {
|
|
9055
|
+
try {
|
|
9056
|
+
return el.matches(selector);
|
|
9057
|
+
}
|
|
9058
|
+
catch (_a) {
|
|
9059
|
+
// A browser without the selector (no Popover API, or no :modal): no top layer to share.
|
|
9060
|
+
return false;
|
|
9061
|
+
}
|
|
9062
|
+
}
|
|
9063
|
+
|
|
9064
|
+
// Controls that clipped text can sit inside that already take focus, so the text adds no tab stop of its own.
|
|
9065
|
+
// Not any `[tabindex]`: a focusable scroll region full of chips would show every chip's tooltip at once.
|
|
9066
|
+
const FOCUSABLE_WRAPPER = 'a[href], button, summary, pds-button, pds-link, pds-tab, pds-dropdown-menu-item, [role="option"]';
|
|
8999
9067
|
/** CSS class prefix used for truncation tooltip portal elements */
|
|
9000
9068
|
const TOOLTIP_CLASS = 'pds-truncation-tooltip';
|
|
9001
9069
|
/**
|
|
@@ -9005,7 +9073,8 @@ const TOOLTIP_CLASS = 'pds-truncation-tooltip';
|
|
|
9005
9073
|
*
|
|
9006
9074
|
* Z-Index Strategy:
|
|
9007
9075
|
* Uses --pine-z-index-nuclear (9999) to ensure tooltips appear above all other UI elements.
|
|
9008
|
-
* This is necessary because tooltips are portaled to document.body
|
|
9076
|
+
* This is necessary because tooltips are portaled to document.body, or into the modal dialog or
|
|
9077
|
+
* open popover around the host (the top layer, which no z-index reaches from the body), and must overlay:
|
|
9009
9078
|
* - Modal dialogs
|
|
9010
9079
|
* - Dropdown menus
|
|
9011
9080
|
* - Other floating UI elements
|
|
@@ -9045,6 +9114,15 @@ function injectStyles() {
|
|
|
9045
9114
|
opacity: 1;
|
|
9046
9115
|
visibility: visible;
|
|
9047
9116
|
}
|
|
9117
|
+
:is(dialog, [popover]) > .${TOOLTIP_CLASS} {
|
|
9118
|
+
font-style: normal;
|
|
9119
|
+
font-weight: normal;
|
|
9120
|
+
text-align: start;
|
|
9121
|
+
text-indent: 0;
|
|
9122
|
+
text-transform: none;
|
|
9123
|
+
white-space: normal;
|
|
9124
|
+
word-spacing: normal;
|
|
9125
|
+
}
|
|
9048
9126
|
`;
|
|
9049
9127
|
document.head.appendChild(style);
|
|
9050
9128
|
}
|
|
@@ -9071,7 +9149,8 @@ function isFocusVisible(el) {
|
|
|
9071
9149
|
*
|
|
9072
9150
|
* When the element's text overflows, hovering the host element or giving it
|
|
9073
9151
|
* keyboard focus will display a tooltip showing the full text content. The
|
|
9074
|
-
* tooltip is rendered as a portal on document.body
|
|
9152
|
+
* tooltip is rendered as a portal on document.body, or in the modal dialog or open popover around
|
|
9153
|
+
* the host, and positioned with Floating UI.
|
|
9075
9154
|
*
|
|
9076
9155
|
* Also owns the element's `tabindex` while it is clipped — see syncTabIndex.
|
|
9077
9156
|
*
|
|
@@ -9081,6 +9160,7 @@ function setupTruncationTooltip(options) {
|
|
|
9081
9160
|
const { hostEl, contentEl, getTooltipText, placement = 'top', reference = hostEl, manageTabIndex = true, focusEl = hostEl } = options;
|
|
9082
9161
|
injectStyles();
|
|
9083
9162
|
let portalEl = null;
|
|
9163
|
+
let stopWatchingPortalHost = null;
|
|
9084
9164
|
let isHovering = false;
|
|
9085
9165
|
let isHoveringPortal = false;
|
|
9086
9166
|
let isFocused = false;
|
|
@@ -9159,7 +9239,11 @@ function setupTruncationTooltip(options) {
|
|
|
9159
9239
|
contentDiv.className = `${TOOLTIP_CLASS}__content`;
|
|
9160
9240
|
contentDiv.textContent = text.trim();
|
|
9161
9241
|
portalEl.appendChild(contentDiv);
|
|
9162
|
-
|
|
9242
|
+
const portalHost = findPortalTarget(hostEl, isTopLayerInDocument);
|
|
9243
|
+
portalHost.appendChild(portalEl);
|
|
9244
|
+
// Closing that host moves no pointer, so a tooltip opened by touch would outlive it unseen.
|
|
9245
|
+
if (portalHost !== document.body)
|
|
9246
|
+
stopWatchingPortalHost = onTopLayerClose(portalHost, closeWithPortalHost);
|
|
9163
9247
|
// Allow the user to hover into the tooltip to select/copy text
|
|
9164
9248
|
portalEl.addEventListener('mouseenter', handlePortalMouseEnter);
|
|
9165
9249
|
portalEl.addEventListener('mouseleave', handlePortalMouseLeave);
|
|
@@ -9198,6 +9282,10 @@ function setupTruncationTooltip(options) {
|
|
|
9198
9282
|
}
|
|
9199
9283
|
}
|
|
9200
9284
|
function removePortal() {
|
|
9285
|
+
if (stopWatchingPortalHost !== null) {
|
|
9286
|
+
stopWatchingPortalHost();
|
|
9287
|
+
stopWatchingPortalHost = null;
|
|
9288
|
+
}
|
|
9201
9289
|
if (portalEl) {
|
|
9202
9290
|
portalEl.removeEventListener('mouseenter', handlePortalMouseEnter);
|
|
9203
9291
|
portalEl.removeEventListener('mouseleave', handlePortalMouseLeave);
|
|
@@ -9231,6 +9319,14 @@ function setupTruncationTooltip(options) {
|
|
|
9231
9319
|
return;
|
|
9232
9320
|
removePortal();
|
|
9233
9321
|
}
|
|
9322
|
+
// Hover and focus can't outlast a host that's no longer shown, so none of them keeps it open.
|
|
9323
|
+
function closeWithPortalHost() {
|
|
9324
|
+
isHovering = false;
|
|
9325
|
+
isHoveringPortal = false;
|
|
9326
|
+
isFocused = false;
|
|
9327
|
+
cancelHideTimeout();
|
|
9328
|
+
removePortal();
|
|
9329
|
+
}
|
|
9234
9330
|
/**
|
|
9235
9331
|
* Schedules tooltip removal after a short delay.
|
|
9236
9332
|
*
|
|
@@ -9262,11 +9358,18 @@ function setupTruncationTooltip(options) {
|
|
|
9262
9358
|
isHoveringPortal = false;
|
|
9263
9359
|
scheduleHide();
|
|
9264
9360
|
}
|
|
9361
|
+
// A second tab stop inside focusEl, such as another clipped text, bubbles its focus here too. Its event.target is
|
|
9362
|
+
// retargeted to the stop's outermost element in focusEl's tree, which sits beside hostEl rather than around or in it.
|
|
9363
|
+
function isFocusForHost(target) {
|
|
9364
|
+
return focusEl === hostEl || target === focusEl || target.contains(hostEl) || hostEl.contains(target);
|
|
9365
|
+
}
|
|
9265
9366
|
// Keyboard focus only: focus from a click would pin the tooltip open after the pointer leaves.
|
|
9266
9367
|
// Events from inside a shadow root arrive retargeted to its host, so test the innermost target.
|
|
9267
9368
|
function showForVisibleFocus(event) {
|
|
9268
9369
|
if (!isFocusVisible(event.composedPath()[0]))
|
|
9269
9370
|
return;
|
|
9371
|
+
if (!isFocusForHost(event.target))
|
|
9372
|
+
return;
|
|
9270
9373
|
isFocused = true;
|
|
9271
9374
|
showTooltip();
|
|
9272
9375
|
}
|
|
@@ -9326,9 +9429,6 @@ const SENTIMENT_DOT_COLORS = {
|
|
|
9326
9429
|
success: 'var(--pine-chip-color-success-dot)',
|
|
9327
9430
|
warning: 'var(--pine-chip-color-warning-dot)',
|
|
9328
9431
|
};
|
|
9329
|
-
// Controls a chip can sit inside that already take focus, so a clipped label adds no tab stop of its own.
|
|
9330
|
-
// Not any `[tabindex]`: a focusable scroll region full of chips would show every chip's tooltip at once.
|
|
9331
|
-
const FOCUSABLE_WRAPPER = 'a[href], button, summary, pds-button, pds-link, pds-tab, pds-dropdown-menu-item, [role="option"]';
|
|
9332
9432
|
// Beside the listbox and level with the option, so the tooltip never covers the other options.
|
|
9333
9433
|
function besideListbox(wrapper) {
|
|
9334
9434
|
const option = (wrapper === null || wrapper === void 0 ? void 0 : wrapper.matches('[role="option"]')) ? wrapper : null;
|
|
@@ -9555,7 +9655,7 @@ class PdsChip {
|
|
|
9555
9655
|
const hostClass = this.classNames();
|
|
9556
9656
|
const hostStyles = this.hostStyles;
|
|
9557
9657
|
this.hostKeeper.record(hostClass, hostStyles);
|
|
9558
|
-
return (hAsync(Host, { key: '
|
|
9658
|
+
return (hAsync(Host, { key: 'b5afded680c3fa09523a7928d13c2a566a8a504c', class: hostClass, id: this.componentId, style: hostStyles }, this.setChipContent(), this.effectiveVariant === 'tag' && this.renderCloseButton()));
|
|
9559
9659
|
}
|
|
9560
9660
|
get el() { return getElement(this); }
|
|
9561
9661
|
static get style() { return pdsChipTokensCss() + pdsChipCss(); }
|
|
@@ -14415,44 +14515,6 @@ class CalendarPortal {
|
|
|
14415
14515
|
}
|
|
14416
14516
|
}
|
|
14417
14517
|
CalendarPortal.className = 'pds-datepicker-calendar-portal';
|
|
14418
|
-
/**
|
|
14419
|
-
* The native `<dialog>` or open `popover` (as pds-filter's) the datepicker sits in, so the
|
|
14420
|
-
* calendar shares its top layer and a click in it isn't outside it; otherwise `document.body`.
|
|
14421
|
-
* `closest()` stops at shadow boundaries and misses one that only wraps slotted content, so this
|
|
14422
|
-
* walks assigned slots and shadow hosts, as pds-combobox does.
|
|
14423
|
-
*/
|
|
14424
|
-
function findPortalTarget(from) {
|
|
14425
|
-
const seen = new Set();
|
|
14426
|
-
let current = from;
|
|
14427
|
-
while (current && !seen.has(current)) {
|
|
14428
|
-
seen.add(current);
|
|
14429
|
-
if (current.nodeType === Node.ELEMENT_NODE && isTopLayerHost(current)) {
|
|
14430
|
-
return current;
|
|
14431
|
-
}
|
|
14432
|
-
const assigned = current.nodeType === Node.ELEMENT_NODE ? current.assignedSlot : null;
|
|
14433
|
-
if (assigned) {
|
|
14434
|
-
current = assigned;
|
|
14435
|
-
continue;
|
|
14436
|
-
}
|
|
14437
|
-
const parent = current.parentNode;
|
|
14438
|
-
current = parent instanceof ShadowRoot ? parent.host : parent;
|
|
14439
|
-
}
|
|
14440
|
-
return document.body;
|
|
14441
|
-
}
|
|
14442
|
-
function isTopLayerHost(el) {
|
|
14443
|
-
// Only an open dialog: inside a closed one, the calendar would be hidden with it.
|
|
14444
|
-
if (el.localName === 'dialog')
|
|
14445
|
-
return el.open;
|
|
14446
|
-
if (!el.hasAttribute('popover'))
|
|
14447
|
-
return false;
|
|
14448
|
-
try {
|
|
14449
|
-
return el.matches(':popover-open');
|
|
14450
|
-
}
|
|
14451
|
-
catch (_a) {
|
|
14452
|
-
// A browser without the Popover API: no top layer to share.
|
|
14453
|
-
return false;
|
|
14454
|
-
}
|
|
14455
|
-
}
|
|
14456
14518
|
|
|
14457
14519
|
const DEFAULT_LABELS = {
|
|
14458
14520
|
'today': 'Today',
|
|
@@ -17940,12 +18002,16 @@ const pdsIconContent = new Map();
|
|
|
17940
18002
|
|
|
17941
18003
|
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)}`;
|
|
17942
18004
|
|
|
18005
|
+
// The attributes that give an icon its own accessible name.
|
|
18006
|
+
const NAMING_ATTRIBUTES = ['aria-label', 'aria-labelledby'];
|
|
17943
18007
|
class PdsIcon {
|
|
17944
18008
|
constructor(hostRef) {
|
|
17945
18009
|
registerInstance(this, hostRef);
|
|
17946
18010
|
this.didLoadIcon = false;
|
|
17947
18011
|
this.iconName = null;
|
|
18012
|
+
this.warnedUnnamedFocusable = false;
|
|
17948
18013
|
this.inheritedAttributes = {}; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
18014
|
+
this.isFocusable = false;
|
|
17949
18015
|
this.isVisible = false;
|
|
17950
18016
|
/**
|
|
17951
18017
|
* The size of the icon. This can be
|
|
@@ -17954,10 +18020,6 @@ class PdsIcon {
|
|
|
17954
18020
|
*
|
|
17955
18021
|
*/
|
|
17956
18022
|
this.size = 'regular';
|
|
17957
|
-
this.hasAriaHidden = () => {
|
|
17958
|
-
const { el } = this;
|
|
17959
|
-
return el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true';
|
|
17960
|
-
};
|
|
17961
18023
|
}
|
|
17962
18024
|
iconSize() {
|
|
17963
18025
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -17996,9 +18058,9 @@ class PdsIcon {
|
|
|
17996
18058
|
}, 500);
|
|
17997
18059
|
}
|
|
17998
18060
|
componentWillLoad() {
|
|
17999
|
-
this.inheritedAttributes = inheritAttributes(this.el,
|
|
18061
|
+
this.inheritedAttributes = inheritAttributes(this.el, NAMING_ATTRIBUTES);
|
|
18062
|
+
this.isFocusable = this.el.hasAttribute('tabindex');
|
|
18000
18063
|
this.setCSSVariables();
|
|
18001
|
-
this.setupInitialAriaLabel();
|
|
18002
18064
|
}
|
|
18003
18065
|
setCSSVariables() {
|
|
18004
18066
|
var _a;
|
|
@@ -18007,6 +18069,7 @@ class PdsIcon {
|
|
|
18007
18069
|
this.el.style.setProperty(`--color-icon-fill`, (_a = normalizeColorValue(this.color)) !== null && _a !== void 0 ? _a : 'currentColor');
|
|
18008
18070
|
}
|
|
18009
18071
|
connectedCallback() {
|
|
18072
|
+
this.observeNamingAttributes();
|
|
18010
18073
|
// Handle re-connection during client-side navigation
|
|
18011
18074
|
if (!this.isVisible && !this.svgContent) {
|
|
18012
18075
|
this.waitUntilVisible(this.el, '50px', () => {
|
|
@@ -18025,14 +18088,16 @@ class PdsIcon {
|
|
|
18025
18088
|
this.io.disconnect();
|
|
18026
18089
|
this.io = undefined;
|
|
18027
18090
|
}
|
|
18091
|
+
if (this.mo) {
|
|
18092
|
+
this.mo.disconnect();
|
|
18093
|
+
this.mo = undefined;
|
|
18094
|
+
}
|
|
18028
18095
|
}
|
|
18029
18096
|
updateStyles() {
|
|
18030
18097
|
this.setCSSVariables();
|
|
18031
18098
|
}
|
|
18032
18099
|
onIconPropertyChange() {
|
|
18033
18100
|
this.loadIcon();
|
|
18034
|
-
// Update aria-label when icon properties change
|
|
18035
|
-
this.setupInitialAriaLabel();
|
|
18036
18101
|
}
|
|
18037
18102
|
loadIcon() {
|
|
18038
18103
|
// Reset load state when URL changes
|
|
@@ -18042,26 +18107,34 @@ class PdsIcon {
|
|
|
18042
18107
|
this.iconName = getName(this.name, this.icon);
|
|
18043
18108
|
}
|
|
18044
18109
|
render() {
|
|
18045
|
-
const {
|
|
18110
|
+
const { flipRtl, iconName, inheritedAttributes } = this;
|
|
18046
18111
|
const shouldIconAutoFlip = iconName
|
|
18047
18112
|
? shouldRtlFlipIcon(iconName, this.el) && flipRtl !== false
|
|
18048
18113
|
: false;
|
|
18049
18114
|
const shouldFlip = flipRtl || shouldIconAutoFlip;
|
|
18050
|
-
//
|
|
18051
|
-
|
|
18052
|
-
|
|
18115
|
+
// An icon is decorative unless the author names it. A decorative icon is hidden
|
|
18116
|
+
// from assistive technology, so it contributes nothing to the accessible name of
|
|
18117
|
+
// the button or link it sits inside. Naming it from `name` instead would put an
|
|
18118
|
+
// icon id ("rocket-tone") into that control's name, where neither a screen reader
|
|
18119
|
+
// nor a page-inspecting agent can tell it apart from the real label.
|
|
18120
|
+
//
|
|
18121
|
+
// A focusable icon stays exposed even without a name: hiding something that
|
|
18122
|
+
// takes focus leaves keyboard users on an element a screen reader can't see.
|
|
18123
|
+
const isNamed = NAMING_ATTRIBUTES.some((attr) => inheritedAttributes[attr] !== undefined);
|
|
18124
|
+
const isDecorative = !isNamed && !this.isFocusable;
|
|
18125
|
+
return (hAsync(Host
|
|
18126
|
+
// undefined, not null: null would strip an aria-hidden the author set on a
|
|
18127
|
+
// named icon once the component re-renders.
|
|
18128
|
+
, 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" }))));
|
|
18053
18129
|
}
|
|
18054
18130
|
/*****
|
|
18055
18131
|
* Private Methods
|
|
18056
18132
|
****/
|
|
18057
|
-
|
|
18058
|
-
|
|
18059
|
-
|
|
18060
|
-
|
|
18061
|
-
|
|
18062
|
-
this.ariaLabel = iconName.replace(/\-/g, ' ');
|
|
18063
|
-
}
|
|
18064
|
-
}
|
|
18133
|
+
// The hide/expose decision reads the naming attributes and tabindex, which can
|
|
18134
|
+
// change after load (a React prop going from undefined to a string, or
|
|
18135
|
+
// setAttribute from script). Re-read them when they do.
|
|
18136
|
+
observeNamingAttributes() {
|
|
18137
|
+
return;
|
|
18065
18138
|
}
|
|
18066
18139
|
waitUntilVisible(el, rootMargin, cb) {
|
|
18067
18140
|
{
|
|
@@ -18148,7 +18221,8 @@ class PdsIcon {
|
|
|
18148
18221
|
"name": [513],
|
|
18149
18222
|
"size": [513],
|
|
18150
18223
|
"src": [1],
|
|
18151
|
-
"
|
|
18224
|
+
"inheritedAttributes": [32],
|
|
18225
|
+
"isFocusable": [32],
|
|
18152
18226
|
"isVisible": [32],
|
|
18153
18227
|
"svgContent": [32]
|
|
18154
18228
|
},
|
|
@@ -18564,7 +18638,7 @@ class PdsInput {
|
|
|
18564
18638
|
}; }
|
|
18565
18639
|
}
|
|
18566
18640
|
|
|
18567
|
-
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)
|
|
18641
|
+
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}`;
|
|
18568
18642
|
|
|
18569
18643
|
// Used when `externalLabel` is unset; an empty string hides the icon instead.
|
|
18570
18644
|
const DEFAULT_EXTERNAL_LABEL = '(opens in a new tab)';
|
|
@@ -18782,7 +18856,8 @@ function collectTabbable(root, found) {
|
|
|
18782
18856
|
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)); };
|
|
18783
18857
|
function visitTabbable(el, found) {
|
|
18784
18858
|
var _a, _b, _c, _d;
|
|
18785
|
-
|
|
18859
|
+
// A tooltip portaled into a dialog only describes the control that has focus; it's never a stop of its own.
|
|
18860
|
+
if (el.hasAttribute('inert') || el.getAttribute('role') === 'tooltip')
|
|
18786
18861
|
return;
|
|
18787
18862
|
if (el.localName === 'slot') {
|
|
18788
18863
|
const slot = el;
|
|
@@ -18838,7 +18913,7 @@ function tabbableIn(root) {
|
|
|
18838
18913
|
return oneRadioPerGroup(visible);
|
|
18839
18914
|
}
|
|
18840
18915
|
|
|
18841
|
-
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}`;
|
|
18916
|
+
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}`;
|
|
18842
18917
|
|
|
18843
18918
|
const PRESET_SIZES = ['sm', 'md', 'lg', 'fullscreen'];
|
|
18844
18919
|
const isCustomLength = (value) => /^[a-z0-9.%+\-*/(), ]+$/i.test(value) &&
|
|
@@ -20015,6 +20090,12 @@ class PdsMultiselect {
|
|
|
20015
20090
|
}
|
|
20016
20091
|
else {
|
|
20017
20092
|
this.closeDropdown();
|
|
20093
|
+
// Tab would move on to an option's checkbox, which closing removes, dropping focus to the page.
|
|
20094
|
+
// Land on the trigger instead, as Escape does; Shift+Tab already reaches it.
|
|
20095
|
+
const trigger = e.shiftKey ? undefined : this.activeTriggerEl;
|
|
20096
|
+
trigger === null || trigger === void 0 ? void 0 : trigger.focus();
|
|
20097
|
+
if (trigger === null || trigger === void 0 ? void 0 : trigger.matches(':focus'))
|
|
20098
|
+
e.preventDefault();
|
|
20018
20099
|
}
|
|
20019
20100
|
break;
|
|
20020
20101
|
}
|
|
@@ -20973,10 +21054,10 @@ class PdsMultiselect {
|
|
|
20973
21054
|
}
|
|
20974
21055
|
render() {
|
|
20975
21056
|
const hasSelections = this.selectedItems.length > 0;
|
|
20976
|
-
return (hAsync(Host, { key: '
|
|
21057
|
+
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: {
|
|
20977
21058
|
'pds-multiselect__label': true,
|
|
20978
21059
|
'visually-hidden': this.hideLabel,
|
|
20979
|
-
} }, this.label)), hAsync("div", { key: '
|
|
21060
|
+
} }, 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: {
|
|
20980
21061
|
'pds-multiselect__trigger': true,
|
|
20981
21062
|
'pds-multiselect__trigger--open': this.isOpen,
|
|
20982
21063
|
'pds-multiselect__trigger--disabled': this.disabled,
|
|
@@ -20992,7 +21073,7 @@ class PdsMultiselect {
|
|
|
20992
21073
|
}, 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: {
|
|
20993
21074
|
'pds-multiselect__trigger-text': true,
|
|
20994
21075
|
'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
|
|
20995
|
-
} }, 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: '
|
|
21076
|
+
} }, 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' })))));
|
|
20996
21077
|
}
|
|
20997
21078
|
static get formAssociated() { return true; }
|
|
20998
21079
|
get el() { return getElement(this); }
|
|
@@ -22471,6 +22552,7 @@ class PdsRadioGroup {
|
|
|
22471
22552
|
* @defaultValue false
|
|
22472
22553
|
*/
|
|
22473
22554
|
this.required = false;
|
|
22555
|
+
this.hostKeeper = new HostStylingKeeper();
|
|
22474
22556
|
}
|
|
22475
22557
|
handlePropsChange() {
|
|
22476
22558
|
this.updateChildRadios();
|
|
@@ -22522,6 +22604,29 @@ class PdsRadioGroup {
|
|
|
22522
22604
|
}
|
|
22523
22605
|
});
|
|
22524
22606
|
}
|
|
22607
|
+
connectedCallback() {
|
|
22608
|
+
this.hostKeeper.connect(this.el);
|
|
22609
|
+
// A name set while the group was detached never reaches the observer.
|
|
22610
|
+
this.syncName();
|
|
22611
|
+
if (typeof MutationObserver === 'undefined')
|
|
22612
|
+
return;
|
|
22613
|
+
// Consumers can name the group after render (a prop change, an i18n swap, a morph); re-render so their name wins.
|
|
22614
|
+
this.hostAriaObserver = new MutationObserver(() => this.syncName());
|
|
22615
|
+
this.hostAriaObserver.observe(this.el, { attributeFilter: ['aria-label', 'aria-labelledby'] });
|
|
22616
|
+
}
|
|
22617
|
+
disconnectedCallback() {
|
|
22618
|
+
var _a;
|
|
22619
|
+
this.hostKeeper.disconnect();
|
|
22620
|
+
(_a = this.hostAriaObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
22621
|
+
this.hostAriaObserver = undefined;
|
|
22622
|
+
}
|
|
22623
|
+
// Re-renders only when the group's name would change, so its own aria-labelledby write doesn't loop back.
|
|
22624
|
+
syncName() {
|
|
22625
|
+
if (this._groupId === undefined)
|
|
22626
|
+
return;
|
|
22627
|
+
if (this.getAriaLabelledBy() !== this.renderedLabelledBy)
|
|
22628
|
+
;
|
|
22629
|
+
}
|
|
22525
22630
|
componentWillLoad() {
|
|
22526
22631
|
// Generate stable group ID once during initialization
|
|
22527
22632
|
// This ensures DOM stability and accessibility relationships remain consistent across re-renders
|
|
@@ -22535,6 +22640,18 @@ class PdsRadioGroup {
|
|
|
22535
22640
|
: `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
22536
22641
|
this._groupId = `radio-group-${uniqueId}`;
|
|
22537
22642
|
}
|
|
22643
|
+
// A restored or cloned host still carries the id and ARIA references an earlier instance wrote, pointing at
|
|
22644
|
+
// that instance's label and messages. Drop them so this render writes its own: on first load, Stencil keeps a
|
|
22645
|
+
// host attribute that's already there.
|
|
22646
|
+
const previousId = this.el.getAttribute('id');
|
|
22647
|
+
if (previousId && previousId !== this._groupId) {
|
|
22648
|
+
['aria-labelledby', 'aria-describedby'].forEach((name) => {
|
|
22649
|
+
var _a, _b;
|
|
22650
|
+
const ids = (_b = (_a = this.el.getAttribute(name)) === null || _a === void 0 ? void 0 : _a.split(/\s+/)) !== null && _b !== void 0 ? _b : [];
|
|
22651
|
+
if (ids.some((id) => id.startsWith(`${previousId}__`)))
|
|
22652
|
+
this.el.removeAttribute(name);
|
|
22653
|
+
});
|
|
22654
|
+
}
|
|
22538
22655
|
}
|
|
22539
22656
|
componentDidLoad() {
|
|
22540
22657
|
if (!this.name) {
|
|
@@ -22587,6 +22704,20 @@ class PdsRadioGroup {
|
|
|
22587
22704
|
// Otherwise, assume it's a dimension token like "100", "200", etc.
|
|
22588
22705
|
return `var(--pine-dimension-${this.gap})`;
|
|
22589
22706
|
}
|
|
22707
|
+
get labelId() {
|
|
22708
|
+
return `${this._groupId}__label`;
|
|
22709
|
+
}
|
|
22710
|
+
// Names the group from its visible label, unless the consumer named it with their own aria-label or aria-labelledby.
|
|
22711
|
+
// A blank aria-label (an empty translation, say) names nothing, so it falls back to groupLabel.
|
|
22712
|
+
getAriaLabelledBy() {
|
|
22713
|
+
var _a;
|
|
22714
|
+
const hostLabelledBy = this.el.getAttribute('aria-labelledby');
|
|
22715
|
+
if ((hostLabelledBy === null || hostLabelledBy === void 0 ? void 0 : hostLabelledBy.trim()) && hostLabelledBy !== this.labelId)
|
|
22716
|
+
return hostLabelledBy;
|
|
22717
|
+
if ((_a = this.el.getAttribute('aria-label')) === null || _a === void 0 ? void 0 : _a.trim())
|
|
22718
|
+
return undefined;
|
|
22719
|
+
return this.groupLabel ? this.labelId : undefined;
|
|
22720
|
+
}
|
|
22590
22721
|
getAriaDescribedBy() {
|
|
22591
22722
|
const messageIds = [];
|
|
22592
22723
|
if (this.errorMessage) {
|
|
@@ -22600,13 +22731,23 @@ class PdsRadioGroup {
|
|
|
22600
22731
|
render() {
|
|
22601
22732
|
const gapValue = this.getGapValue();
|
|
22602
22733
|
const ariaDescribedBy = this.getAriaDescribedBy();
|
|
22603
|
-
|
|
22734
|
+
const ariaLabelledBy = this.getAriaLabelledBy();
|
|
22735
|
+
const hostClass = this.classNames();
|
|
22736
|
+
this.renderedLabelledBy = ariaLabelledBy;
|
|
22737
|
+
// A DOM morph strips what the component wrote on its host; put back its role, name and description.
|
|
22738
|
+
// Only its own aria-labelledby, so a consumer's that the server dropped stays dropped.
|
|
22739
|
+
this.hostKeeper.record(hostClass, { '--pds-radio-group-gap': gapValue }, {
|
|
22740
|
+
role: 'radiogroup',
|
|
22741
|
+
'aria-describedby': ariaDescribedBy,
|
|
22742
|
+
'aria-labelledby': ariaLabelledBy === this.labelId ? ariaLabelledBy : undefined,
|
|
22743
|
+
});
|
|
22744
|
+
return (hAsync(Host, { key: '0fe381f99dddae0aeb9189a13b0e2195f1c79886', class: hostClass, id: this._groupId, role: "radiogroup", "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, style: {
|
|
22604
22745
|
'--pds-radio-group-gap': gapValue,
|
|
22605
|
-
} }, this.groupLabel && (hAsync("div", { key: '
|
|
22746
|
+
} }, this.groupLabel && (hAsync("div", { key: '4967dc22fa0265dbfbabf94a49b182b8c06d0bd5', class: "pds-radio-group__label", id: this.labelId }, this.groupLabel)), hAsync("div", { key: '7a782a6920de7eda76ab0060c7512f093671ad41', class: {
|
|
22606
22747
|
'pds-radio-group__radios': true,
|
|
22607
22748
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
22608
22749
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
22609
|
-
} }, hAsync("slot", { key: '
|
|
22750
|
+
} }, 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))));
|
|
22610
22751
|
}
|
|
22611
22752
|
get el() { return getElement(this); }
|
|
22612
22753
|
static get watchers() { return {
|
|
@@ -27512,6 +27653,9 @@ const TEXT_SIZES = [
|
|
|
27512
27653
|
|
|
27513
27654
|
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}`;
|
|
27514
27655
|
|
|
27656
|
+
// Re-runs setup for each text bound to its wrapping control, keyed by host, so a truncated
|
|
27657
|
+
// text that joins the same control later can take that control's focus away from it.
|
|
27658
|
+
const textsUsingWrapper = new WeakMap();
|
|
27515
27659
|
/**
|
|
27516
27660
|
* @part content - The text content container
|
|
27517
27661
|
*/
|
|
@@ -27566,17 +27710,39 @@ class PdsText {
|
|
|
27566
27710
|
this.destroyTruncationTooltip();
|
|
27567
27711
|
}
|
|
27568
27712
|
initTruncationTooltip() {
|
|
27713
|
+
var _a;
|
|
27569
27714
|
// Clean up any existing tooltip before setting up a new one
|
|
27570
27715
|
this.destroyTruncationTooltip();
|
|
27571
27716
|
if (this.contentEl) {
|
|
27717
|
+
const wrapper = this.el.closest(FOCUSABLE_WRAPPER);
|
|
27718
|
+
// A pds-chip with a max width binds its tooltip to the wrapper too.
|
|
27719
|
+
const others = wrapper === null ? [] : wrapper.querySelectorAll('pds-text, pds-chip');
|
|
27720
|
+
// One focus on a shared wrapper would open every clipped text's tooltip at once, so texts sharing one each keep
|
|
27721
|
+
// their own stop, and a text bound before this one joined lets go: this one's focus bubbles to the wrapper too.
|
|
27722
|
+
let sharesWrapper = false;
|
|
27723
|
+
for (let i = 0; i < others.length; i++) {
|
|
27724
|
+
const other = others[i];
|
|
27725
|
+
// The property counts too: setting `truncate` runs setup before the next render reflects the attribute.
|
|
27726
|
+
if (other !== this.el && (other.truncate || other.maxWidth || other.hasAttribute('truncate') || other.hasAttribute('max-width'))) {
|
|
27727
|
+
sharesWrapper = true;
|
|
27728
|
+
(_a = textsUsingWrapper.get(other)) === null || _a === void 0 ? void 0 : _a();
|
|
27729
|
+
}
|
|
27730
|
+
}
|
|
27731
|
+
const usesWrapper = wrapper !== null && !sharesWrapper;
|
|
27572
27732
|
this.truncationCleanup = setupTruncationTooltip({
|
|
27573
27733
|
hostEl: this.el,
|
|
27574
27734
|
contentEl: this.contentEl,
|
|
27575
27735
|
getTooltipText: () => this.el.textContent || '',
|
|
27736
|
+
// A wrapping link or button already takes focus, so its focus reveals the text instead of a nested tab stop.
|
|
27737
|
+
manageTabIndex: !usesWrapper,
|
|
27738
|
+
focusEl: usesWrapper ? wrapper : this.el,
|
|
27576
27739
|
});
|
|
27740
|
+
if (usesWrapper)
|
|
27741
|
+
textsUsingWrapper.set(this.el, () => this.initTruncationTooltip());
|
|
27577
27742
|
}
|
|
27578
27743
|
}
|
|
27579
27744
|
destroyTruncationTooltip() {
|
|
27745
|
+
textsUsingWrapper.delete(this.el);
|
|
27580
27746
|
if (this.truncationCleanup) {
|
|
27581
27747
|
this.truncationCleanup();
|
|
27582
27748
|
this.truncationCleanup = null;
|
|
@@ -27602,7 +27768,7 @@ class PdsText {
|
|
|
27602
27768
|
? `pds-text--decoration-${this.decoration}`
|
|
27603
27769
|
: ''}
|
|
27604
27770
|
`;
|
|
27605
|
-
return (hAsync(Tag, { key: '
|
|
27771
|
+
return (hAsync(Tag, { key: '30566c7810d3fd7f76ae281ae6d9a7e66803f0a3', ref: (el) => (this.contentEl = el), style: this.color && setColor(this.color), class: typeClasses, part: "content" }, hAsync("slot", { key: 'f5113458aa9295803fc1c0bc552f9f92602cacba' })));
|
|
27606
27772
|
}
|
|
27607
27773
|
get el() { return getElement(this); }
|
|
27608
27774
|
static get watchers() { return {
|
|
@@ -28167,7 +28333,7 @@ class PdsToast {
|
|
|
28167
28333
|
}; }
|
|
28168
28334
|
}
|
|
28169
28335
|
|
|
28170
|
-
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}`;
|
|
28336
|
+
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}`;
|
|
28171
28337
|
|
|
28172
28338
|
/**
|
|
28173
28339
|
* @slot (default) - The tooltip's target element
|
|
@@ -28192,6 +28358,7 @@ class PdsTooltip {
|
|
|
28192
28358
|
this.currentPathname = '';
|
|
28193
28359
|
this.pathnameCheckInterval = null;
|
|
28194
28360
|
this.stopAutoUpdate = null;
|
|
28361
|
+
this.stopWatchingPortalHost = null;
|
|
28195
28362
|
/**
|
|
28196
28363
|
* Determines whether or not the tooltip has an arrow
|
|
28197
28364
|
* @defaultValue true
|
|
@@ -28441,7 +28608,12 @@ class PdsTooltip {
|
|
|
28441
28608
|
this.lastCopiedHtml = this.strippedHtml(initialCopy);
|
|
28442
28609
|
this.contentDiv.append(...Array.from(initialCopy.childNodes));
|
|
28443
28610
|
this.portalEl.appendChild(this.contentDiv);
|
|
28444
|
-
|
|
28611
|
+
// Nothing in the body paints above a modal dialog or open popover, so the portal goes inside one.
|
|
28612
|
+
const portalHost = findPortalTarget(this.el, isTopLayerInDocument);
|
|
28613
|
+
portalHost.appendChild(this.portalEl);
|
|
28614
|
+
// Closing that host moves no pointer, so a tooltip opened by touch would outlive it unseen.
|
|
28615
|
+
if (portalHost !== document.body)
|
|
28616
|
+
this.stopWatchingPortalHost = onTopLayerClose(portalHost, this.handleHide);
|
|
28445
28617
|
this.repositionPortal().catch(error => {
|
|
28446
28618
|
console.warn('Failed to position tooltip on creation:', error);
|
|
28447
28619
|
});
|
|
@@ -28554,6 +28726,10 @@ class PdsTooltip {
|
|
|
28554
28726
|
this.stopAutoUpdate();
|
|
28555
28727
|
this.stopAutoUpdate = null;
|
|
28556
28728
|
}
|
|
28729
|
+
if (this.stopWatchingPortalHost !== null) {
|
|
28730
|
+
this.stopWatchingPortalHost();
|
|
28731
|
+
this.stopWatchingPortalHost = null;
|
|
28732
|
+
}
|
|
28557
28733
|
// Stop pathname change detection
|
|
28558
28734
|
if (this.pathnameCheckInterval !== null) {
|
|
28559
28735
|
clearInterval(this.pathnameCheckInterval);
|
|
@@ -28584,9 +28760,9 @@ class PdsTooltip {
|
|
|
28584
28760
|
}
|
|
28585
28761
|
render() {
|
|
28586
28762
|
const hostId = this.componentId || undefined;
|
|
28587
|
-
return (hAsync(Host, { key: '
|
|
28763
|
+
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,
|
|
28588
28764
|
/* focusin/out bubble; ensure keyboard users see tooltips */
|
|
28589
|
-
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, hAsync("slot", { key: '
|
|
28765
|
+
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" }))));
|
|
28590
28766
|
}
|
|
28591
28767
|
get el() { return getElement(this); }
|
|
28592
28768
|
static get watchers() { return {
|