@pine-ds/core 3.17.0 → 3.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index2.js +1 -1
- package/components/index2.js.map +1 -1
- package/components/pds-button2.js +21 -8
- package/components/pds-button2.js.map +1 -1
- package/components/pds-chip2.js +20 -7
- package/components/pds-chip2.js.map +1 -1
- package/components/pds-combobox.js +2 -2
- package/components/pds-combobox.js.map +1 -1
- package/components/pds-copytext.js +49 -1
- package/components/pds-copytext.js.map +1 -1
- package/components/pds-dropdown-menu-item.js +3 -2
- package/components/pds-dropdown-menu-item.js.map +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-dropdown-menu.js.map +1 -1
- package/components/pds-link2.js +3 -2
- package/components/pds-link2.js.map +1 -1
- package/components/pds-multiselect.js +61 -15
- package/components/pds-multiselect.js.map +1 -1
- package/components/pds-table-cell2.js +36 -3
- package/components/pds-table-cell2.js.map +1 -1
- package/components/pds-table-head.js +1 -1
- package/components/pds-table-head.js.map +1 -1
- package/components/pds-table-row.js +3 -3
- package/components/pds-table-row.js.map +1 -1
- package/components/pds-table.js +12 -4
- package/components/pds-table.js.map +1 -1
- package/components/pds-text2.js +41 -1
- package/components/pds-text2.js.map +1 -1
- package/components/truncation-tooltip.js +247 -0
- package/components/truncation-tooltip.js.map +1 -0
- package/dist/cjs/{index-DkQebouX.js → index-CjhTEk39.js} +3 -3
- package/dist/cjs/index-CjhTEk39.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
- package/dist/cjs/pds-button.cjs.entry.js +17 -7
- package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/pds-chip.cjs.entry.js +20 -8
- package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-combobox.cjs.entry.js +2 -2
- package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-copytext.cjs.entry.js +48 -2
- package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-filter.cjs.entry.js +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +1 -1
- package/dist/cjs/pds-link.cjs.entry.js +3 -3
- package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-multiselect.cjs.entry.js +58 -15
- package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/pds-radio.cjs.entry.js +1 -1
- package/dist/cjs/pds-select.cjs.entry.js +1 -1
- package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +35 -3
- package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-table.cjs.entry.js +11 -4
- package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-text.cjs.entry.js +40 -1
- package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
- package/dist/cjs/pds-textarea.cjs.entry.js +1 -1
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/cjs/truncation-tooltip-BGGnm8SZ.js +249 -0
- package/dist/cjs/truncation-tooltip-BGGnm8SZ.js.map +1 -0
- package/dist/collection/components/pds-button/pds-button.css +1 -1
- package/dist/collection/components/pds-button/pds-button.js +42 -7
- package/dist/collection/components/pds-button/pds-button.js.map +1 -1
- package/dist/collection/components/pds-chip/pds-chip.css +25 -4
- package/dist/collection/components/pds-chip/pds-chip.js +50 -7
- package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
- package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +36 -13
- package/dist/collection/components/pds-combobox/pds-combobox.js +2 -2
- package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
- package/dist/collection/components/pds-copytext/pds-copytext.js +52 -2
- package/dist/collection/components/pds-copytext/pds-copytext.js.map +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +21 -2
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -1
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
- package/dist/collection/components/pds-link/pds-link.js +21 -2
- package/dist/collection/components/pds-link/pds-link.js.map +1 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.css +2 -2
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +130 -13
- package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -1
- package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +55 -0
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +1 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +37 -3
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +1 -1
- package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
- package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +1 -1
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +3 -3
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +1 -1
- package/dist/collection/components/pds-table/pds-table.css +1 -0
- package/dist/collection/components/pds-table/pds-table.js +33 -17
- package/dist/collection/components/pds-table/pds-table.js.map +1 -1
- package/dist/collection/components/pds-table/stories/pds-table.stories.js +58 -0
- package/dist/collection/components/pds-text/pds-text.js +43 -2
- package/dist/collection/components/pds-text/pds-text.js.map +1 -1
- package/dist/collection/components/pds-text/stories/pds-text.stories.js +21 -2
- package/dist/collection/utils/truncation-tooltip.js +242 -0
- package/dist/collection/utils/truncation-tooltip.js.map +1 -0
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/docs.json +255 -20
- package/dist/esm/{index-D094LgxJ.js → index-BFkDH5XU.js} +3 -3
- package/dist/esm/index-BFkDH5XU.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-avatar.entry.js +1 -1
- package/dist/esm/pds-button.entry.js +17 -7
- package/dist/esm/pds-button.entry.js.map +1 -1
- package/dist/esm/pds-checkbox.entry.js +1 -1
- package/dist/esm/pds-chip.entry.js +20 -8
- package/dist/esm/pds-chip.entry.js.map +1 -1
- package/dist/esm/pds-combobox.entry.js +2 -2
- package/dist/esm/pds-combobox.entry.js.map +1 -1
- package/dist/esm/pds-copytext.entry.js +49 -3
- package/dist/esm/pds-copytext.entry.js.map +1 -1
- package/dist/esm/pds-dropdown-menu-item.entry.js +2 -2
- package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
- package/dist/esm/pds-filter.entry.js +1 -1
- package/dist/esm/pds-input.entry.js +1 -1
- package/dist/esm/pds-link.entry.js +3 -3
- package/dist/esm/pds-link.entry.js.map +1 -1
- package/dist/esm/pds-multiselect.entry.js +58 -15
- package/dist/esm/pds-multiselect.entry.js.map +1 -1
- package/dist/esm/pds-radio-group.entry.js +1 -1
- package/dist/esm/pds-radio.entry.js +1 -1
- package/dist/esm/pds-select.entry.js +1 -1
- package/dist/esm/pds-sortable-item.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js +35 -3
- package/dist/esm/pds-table-cell.entry.js.map +1 -1
- package/dist/esm/pds-table-head-cell.entry.js +1 -1
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-head.entry.js.map +1 -1
- package/dist/esm/pds-table-row.entry.js +3 -3
- package/dist/esm/pds-table-row.entry.js.map +1 -1
- package/dist/esm/pds-table.entry.js +11 -4
- package/dist/esm/pds-table.entry.js.map +1 -1
- package/dist/esm/pds-text.entry.js +40 -1
- package/dist/esm/pds-text.entry.js.map +1 -1
- package/dist/esm/pds-textarea.entry.js +1 -1
- package/dist/esm/pine-core.js +1 -1
- package/dist/esm/truncation-tooltip-CTHpMbU3.js +247 -0
- package/dist/esm/truncation-tooltip-CTHpMbU3.js.map +1 -0
- package/dist/esm-es5/{index-D094LgxJ.js → index-BFkDH5XU.js} +1 -1
- package/dist/esm-es5/index-BFkDH5XU.js.map +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js.map +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-chip.entry.js.map +1 -1
- package/dist/esm-es5/pds-combobox.entry.js +1 -1
- package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
- package/dist/esm-es5/pds-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-copytext.entry.js.map +1 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
- package/dist/esm-es5/pds-filter.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-link.entry.js.map +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js.map +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-select.entry.js +1 -1
- package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
- package/dist/esm-es5/pds-switch.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js.map +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-head.entry.js.map +1 -1
- package/dist/esm-es5/pds-table-row.entry.js +1 -1
- package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
- package/dist/esm-es5/pds-table.entry.js +1 -1
- package/dist/esm-es5/pds-table.entry.js.map +1 -1
- package/dist/esm-es5/pds-text.entry.js +1 -1
- package/dist/esm-es5/pds-text.entry.js.map +1 -1
- package/dist/esm-es5/pds-textarea.entry.js +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/esm-es5/truncation-tooltip-CTHpMbU3.js +2 -0
- package/dist/esm-es5/truncation-tooltip-CTHpMbU3.js.map +1 -0
- package/dist/pine-core/{p-2aac4495.system.entry.js → p-15ac22bd.system.entry.js} +2 -2
- package/dist/pine-core/p-203f6e9e.entry.js +2 -0
- package/dist/pine-core/p-203f6e9e.entry.js.map +1 -0
- package/dist/pine-core/{p-0ac54273.entry.js → p-276f774a.entry.js} +2 -2
- package/dist/pine-core/p-27ccbd3f.entry.js +2 -0
- package/dist/pine-core/p-27ccbd3f.entry.js.map +1 -0
- package/dist/pine-core/p-2e22a1fc.system.entry.js +2 -0
- package/dist/pine-core/p-2e22a1fc.system.entry.js.map +1 -0
- package/dist/pine-core/{p-01aec1ad.system.entry.js → p-2f64a2fe.system.entry.js} +2 -2
- package/dist/pine-core/p-2f64a2fe.system.entry.js.map +1 -0
- package/dist/pine-core/p-3239c67a.entry.js +2 -0
- package/dist/pine-core/{p-f5fb71f6.entry.js.map → p-3239c67a.entry.js.map} +1 -1
- package/dist/pine-core/{p-ce069162.entry.js → p-32f65e48.entry.js} +2 -2
- package/dist/pine-core/p-4189f1be.system.entry.js +2 -0
- package/dist/pine-core/p-4189f1be.system.entry.js.map +1 -0
- package/dist/pine-core/{p-7d7dce2c.system.entry.js → p-4232520f.system.entry.js} +2 -2
- package/dist/pine-core/{p-8e40c9ef.entry.js → p-439e3343.entry.js} +2 -2
- package/dist/pine-core/p-439e3343.entry.js.map +1 -0
- package/dist/pine-core/{p-5abc5d82.system.entry.js → p-49c2e2ce.system.entry.js} +2 -2
- package/dist/pine-core/{p-b1a7a0b2.entry.js → p-4de64b1f.entry.js} +2 -2
- package/dist/pine-core/{p-0b52923b.system.entry.js → p-52c5ced3.system.entry.js} +2 -2
- package/dist/pine-core/{p-b46f66e8.system.entry.js → p-5757d038.system.entry.js} +2 -2
- package/dist/pine-core/p-5757d038.system.entry.js.map +1 -0
- package/dist/pine-core/{p-36e5e9f4.system.entry.js → p-57aa762e.system.entry.js} +2 -2
- package/dist/pine-core/p-57aa762e.system.entry.js.map +1 -0
- package/dist/pine-core/p-57d2c33a.entry.js +2 -0
- package/dist/pine-core/p-57d2c33a.entry.js.map +1 -0
- package/dist/pine-core/{p-3815f565.entry.js → p-593cee44.entry.js} +2 -2
- package/dist/pine-core/{p-73bce0bf.entry.js → p-5a7b25d0.entry.js} +2 -2
- package/dist/pine-core/{p-06046885.entry.js → p-5dbbb2be.entry.js} +3 -3
- package/dist/pine-core/{p-06046885.entry.js.map → p-5dbbb2be.entry.js.map} +1 -1
- package/dist/pine-core/p-5hPM5knE.js +2 -0
- package/dist/pine-core/p-5hPM5knE.js.map +1 -0
- package/dist/pine-core/{p-957647f9.entry.js → p-663abd80.entry.js} +2 -2
- package/dist/pine-core/{p-23111b1c.system.entry.js → p-6980edfe.system.entry.js} +2 -2
- package/dist/pine-core/{p-BxVkyfaO.system.js → p-6I02BpQf.system.js} +1 -1
- package/dist/pine-core/p-6I02BpQf.system.js.map +1 -0
- package/dist/pine-core/{p-c9965216.system.entry.js → p-6fbe6be4.system.entry.js} +2 -2
- package/dist/pine-core/p-7514a191.entry.js +2 -0
- package/dist/pine-core/p-7514a191.entry.js.map +1 -0
- package/dist/pine-core/{p-bd18b9bf.system.entry.js → p-77d4f274.system.entry.js} +2 -2
- package/dist/pine-core/{p-78246e05.entry.js → p-85ce731b.entry.js} +2 -2
- package/dist/pine-core/{p-b1820970.system.entry.js → p-87cee4a0.system.entry.js} +2 -2
- package/dist/pine-core/{p-fbd8ae50.entry.js → p-88686193.entry.js} +2 -2
- package/dist/pine-core/p-88eb4f6c.entry.js +2 -0
- package/dist/pine-core/p-88eb4f6c.entry.js.map +1 -0
- package/dist/pine-core/{p-b09bde5c.system.entry.js → p-8ab66dbc.system.entry.js} +2 -2
- package/dist/pine-core/p-8be316b4.system.entry.js +2 -0
- package/dist/pine-core/p-8be316b4.system.entry.js.map +1 -0
- package/dist/pine-core/{p-7a11a6c7.entry.js → p-8f935480.entry.js} +2 -2
- package/dist/pine-core/p-9263809e.entry.js +2 -0
- package/dist/pine-core/p-9263809e.entry.js.map +1 -0
- package/dist/pine-core/{p-425144ae.entry.js → p-9a9c1b17.entry.js} +2 -2
- package/dist/pine-core/p-9a9c1b17.entry.js.map +1 -0
- package/dist/pine-core/{p-3f05d72e.system.entry.js → p-9e3e441c.system.entry.js} +2 -2
- package/dist/pine-core/{p-3cd53462.entry.js → p-9e8296fc.entry.js} +2 -2
- package/dist/pine-core/{p-BJPmPVaF.system.js.map → p-B3dAc5EW.system.js.map} +1 -1
- package/dist/pine-core/{p-h_fnwqV_.system.js.map → p-B3xx1u93.system.js.map} +1 -1
- package/dist/pine-core/p-B48FyOD0.system.js.map +1 -0
- package/dist/pine-core/{p-DY97YDUU.system.js.map → p-B5CyjPYU.system.js.map} +1 -1
- package/dist/pine-core/{p-N-jt0_Yl.system.js.map → p-BBJXL9br.system.js.map} +1 -1
- package/dist/pine-core/{p-D094LgxJ.js → p-BFkDH5XU.js} +1 -1
- package/dist/pine-core/p-BFkDH5XU.js.map +1 -0
- package/dist/pine-core/p-BGVC08sX.system.js.map +1 -0
- package/dist/pine-core/p-BMx906Ad.system.js.map +1 -0
- package/dist/pine-core/{p-CjQwwLdV.system.js.map → p-Bd3ynCsJ.system.js.map} +1 -1
- package/dist/pine-core/{p-D4YdQDsG.system.js.map → p-BiLmvJTd.system.js.map} +1 -1
- package/dist/pine-core/{p-PZw10cnm.system.js.map → p-C8y7SAd7.system.js.map} +1 -1
- package/dist/pine-core/p-C9OQdhX3.system.js.map +1 -0
- package/dist/pine-core/{p-gcCcHox5.system.js.map → p-CCh7iS6N.system.js.map} +1 -1
- package/dist/pine-core/p-CEE11B7K.system.js.map +1 -0
- package/dist/pine-core/{p-D3Ug1A-l.system.js.map → p-CbRBe3Eq.system.js.map} +1 -1
- package/dist/pine-core/p-CsWO_n3t.system.js.map +1 -0
- package/dist/pine-core/{p-c2oMjk1r.system.js.map → p-Ctc231vq.system.js.map} +1 -1
- package/dist/pine-core/p-DXVwADJT.system.js +2 -0
- package/dist/pine-core/p-DXVwADJT.system.js.map +1 -0
- package/dist/pine-core/p-DYm9--lc.system.js.map +1 -0
- package/dist/pine-core/p-DenbFuEN.system.js.map +1 -0
- package/dist/pine-core/{p-BnJypAy2.system.js.map → p-DhLX7iDs.system.js.map} +1 -1
- package/dist/pine-core/p-Dkz0RoFB.system.js.map +1 -0
- package/dist/pine-core/p-JAVnELnm.system.js +1 -1
- package/dist/pine-core/{p-15e554ae.entry.js → p-a30edeb1.entry.js} +2 -2
- package/dist/pine-core/{p-5O8bhSdk.system.js.map → p-aKHwHZQR.system.js.map} +1 -1
- package/dist/pine-core/p-b232004f.system.entry.js +2 -0
- package/dist/pine-core/p-b232004f.system.entry.js.map +1 -0
- package/dist/pine-core/{p-fce519e3.system.entry.js → p-b416cb4b.system.entry.js} +2 -2
- package/dist/pine-core/p-b416cb4b.system.entry.js.map +1 -0
- package/dist/pine-core/{p-94c73d98.entry.js → p-b5316979.entry.js} +2 -2
- package/dist/pine-core/p-b5316979.entry.js.map +1 -0
- package/dist/pine-core/{p-d2b2caa2.system.entry.js → p-b6f57c0f.system.entry.js} +2 -2
- package/dist/pine-core/p-b7f2f9f3.system.entry.js +2 -0
- package/dist/pine-core/p-b7f2f9f3.system.entry.js.map +1 -0
- package/dist/pine-core/{p-19fef546.system.entry.js → p-c301925f.system.entry.js} +2 -2
- package/dist/pine-core/{p-19fef546.system.entry.js.map → p-c301925f.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-f0df10c7.system.entry.js → p-ca20b134.system.entry.js} +2 -2
- package/dist/pine-core/p-ca20b134.system.entry.js.map +1 -0
- package/dist/pine-core/{p-6748d7b4.entry.js → p-d38da7a6.entry.js} +2 -2
- package/dist/pine-core/p-d38da7a6.entry.js.map +1 -0
- package/dist/pine-core/p-eac7cc81.entry.js +2 -0
- package/dist/pine-core/p-eac7cc81.entry.js.map +1 -0
- package/dist/pine-core/p-ed5ca877.system.entry.js +2 -0
- package/dist/pine-core/{p-29266dcd.system.entry.js.map → p-ed5ca877.system.entry.js.map} +1 -1
- package/dist/pine-core/{p-13105538.system.entry.js → p-f795d3fe.system.entry.js} +2 -2
- package/dist/pine-core/p-f7d9bZ8U.system.js.map +1 -0
- package/dist/pine-core/p-f81b0dbb.system.entry.js +2 -0
- package/dist/pine-core/p-f81b0dbb.system.entry.js.map +1 -0
- package/dist/pine-core/{p-2d21bc31.entry.js → p-f8a2aedd.entry.js} +2 -2
- package/dist/pine-core/{p-CQtQQn3_.system.js.map → p-hL5Id7g5.system.js.map} +1 -1
- package/dist/pine-core/{p-BK1BTkTt.system.js.map → p-hzdqYC6e.system.js.map} +1 -1
- package/dist/pine-core/p-n9xvc2MF.system.js.map +1 -0
- package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/types/components/pds-button/pds-button.d.ts +12 -1
- package/dist/types/components/pds-chip/pds-chip.d.ts +9 -2
- package/dist/types/components/pds-copytext/pds-copytext.d.ts +10 -0
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +7 -0
- package/dist/types/components/pds-link/pds-link.d.ts +6 -0
- package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +27 -0
- package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +7 -1
- package/dist/types/components/pds-table/pds-table-row/pds-table-row.d.ts +1 -1
- package/dist/types/components/pds-table/pds-table.d.ts +6 -7
- package/dist/types/components/pds-text/pds-text.d.ts +9 -0
- package/dist/types/components.d.ts +86 -16
- package/dist/types/utils/truncation-tooltip.d.ts +21 -0
- package/dist/types/utils/types.d.ts +1 -0
- package/dist/vscode.html-data.json +68 -8
- package/hydrate/index.js +486 -52
- package/hydrate/index.mjs +486 -52
- package/package.json +2 -2
- package/dist/cjs/index-DkQebouX.js.map +0 -1
- package/dist/esm/index-D094LgxJ.js.map +0 -1
- package/dist/esm-es5/index-D094LgxJ.js.map +0 -1
- package/dist/pine-core/p-003884fd.entry.js +0 -2
- package/dist/pine-core/p-003884fd.entry.js.map +0 -1
- package/dist/pine-core/p-01aec1ad.system.entry.js.map +0 -1
- package/dist/pine-core/p-1971d358.entry.js +0 -2
- package/dist/pine-core/p-1971d358.entry.js.map +0 -1
- package/dist/pine-core/p-23aba538.entry.js +0 -2
- package/dist/pine-core/p-23aba538.entry.js.map +0 -1
- package/dist/pine-core/p-29266dcd.system.entry.js +0 -2
- package/dist/pine-core/p-36e5e9f4.system.entry.js.map +0 -1
- package/dist/pine-core/p-3b0a4abe.entry.js +0 -2
- package/dist/pine-core/p-3b0a4abe.entry.js.map +0 -1
- package/dist/pine-core/p-3c026ec7.system.entry.js +0 -2
- package/dist/pine-core/p-3c026ec7.system.entry.js.map +0 -1
- package/dist/pine-core/p-425144ae.entry.js.map +0 -1
- package/dist/pine-core/p-48ed8147.entry.js +0 -2
- package/dist/pine-core/p-48ed8147.entry.js.map +0 -1
- package/dist/pine-core/p-6748d7b4.entry.js.map +0 -1
- package/dist/pine-core/p-6877a50d.system.entry.js +0 -2
- package/dist/pine-core/p-6877a50d.system.entry.js.map +0 -1
- package/dist/pine-core/p-6918b378.system.entry.js +0 -2
- package/dist/pine-core/p-6918b378.system.entry.js.map +0 -1
- package/dist/pine-core/p-8KFA3I5T.system.js.map +0 -1
- package/dist/pine-core/p-8e40c9ef.entry.js.map +0 -1
- package/dist/pine-core/p-93d0be59.entry.js +0 -2
- package/dist/pine-core/p-93d0be59.entry.js.map +0 -1
- package/dist/pine-core/p-94c73d98.entry.js.map +0 -1
- package/dist/pine-core/p-BpZTjdau.system.js.map +0 -1
- package/dist/pine-core/p-BxVkyfaO.system.js.map +0 -1
- package/dist/pine-core/p-CjnIO2Ro.system.js.map +0 -1
- package/dist/pine-core/p-Ct5QAsPN.system.js.map +0 -1
- package/dist/pine-core/p-D094LgxJ.js.map +0 -1
- package/dist/pine-core/p-DR2CskUb.system.js.map +0 -1
- package/dist/pine-core/p-DZEhYV6y.system.js.map +0 -1
- package/dist/pine-core/p-DdTbt4lH.system.js.map +0 -1
- package/dist/pine-core/p-Ri89mw0-.system.js.map +0 -1
- package/dist/pine-core/p-ZUqfslIz.system.js.map +0 -1
- package/dist/pine-core/p-aeb2f6ac.system.entry.js +0 -2
- package/dist/pine-core/p-aeb2f6ac.system.entry.js.map +0 -1
- package/dist/pine-core/p-b3c66c58.entry.js +0 -2
- package/dist/pine-core/p-b3c66c58.entry.js.map +0 -1
- package/dist/pine-core/p-b46f66e8.system.entry.js.map +0 -1
- package/dist/pine-core/p-cb8c24ad.system.entry.js +0 -2
- package/dist/pine-core/p-cb8c24ad.system.entry.js.map +0 -1
- package/dist/pine-core/p-d83d6fce.system.entry.js +0 -2
- package/dist/pine-core/p-d83d6fce.system.entry.js.map +0 -1
- package/dist/pine-core/p-eT6pKhWF.system.js.map +0 -1
- package/dist/pine-core/p-f0df10c7.system.entry.js.map +0 -1
- package/dist/pine-core/p-f5fb71f6.entry.js +0 -2
- package/dist/pine-core/p-fce519e3.system.entry.js.map +0 -1
- package/dist/pine-core/p-kYQszSpu.system.js.map +0 -1
- /package/dist/pine-core/{p-2aac4495.system.entry.js.map → p-15ac22bd.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0ac54273.entry.js.map → p-276f774a.entry.js.map} +0 -0
- /package/dist/pine-core/{p-ce069162.entry.js.map → p-32f65e48.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7d7dce2c.system.entry.js.map → p-4232520f.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-5abc5d82.system.entry.js.map → p-49c2e2ce.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b1a7a0b2.entry.js.map → p-4de64b1f.entry.js.map} +0 -0
- /package/dist/pine-core/{p-0b52923b.system.entry.js.map → p-52c5ced3.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3815f565.entry.js.map → p-593cee44.entry.js.map} +0 -0
- /package/dist/pine-core/{p-73bce0bf.entry.js.map → p-5a7b25d0.entry.js.map} +0 -0
- /package/dist/pine-core/{p-957647f9.entry.js.map → p-663abd80.entry.js.map} +0 -0
- /package/dist/pine-core/{p-23111b1c.system.entry.js.map → p-6980edfe.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-c9965216.system.entry.js.map → p-6fbe6be4.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-bd18b9bf.system.entry.js.map → p-77d4f274.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-78246e05.entry.js.map → p-85ce731b.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b1820970.system.entry.js.map → p-87cee4a0.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-fbd8ae50.entry.js.map → p-88686193.entry.js.map} +0 -0
- /package/dist/pine-core/{p-b09bde5c.system.entry.js.map → p-8ab66dbc.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-7a11a6c7.entry.js.map → p-8f935480.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3f05d72e.system.entry.js.map → p-9e3e441c.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-3cd53462.entry.js.map → p-9e8296fc.entry.js.map} +0 -0
- /package/dist/pine-core/{p-15e554ae.entry.js.map → p-a30edeb1.entry.js.map} +0 -0
- /package/dist/pine-core/{p-d2b2caa2.system.entry.js.map → p-b6f57c0f.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-13105538.system.entry.js.map → p-f795d3fe.system.entry.js.map} +0 -0
- /package/dist/pine-core/{p-2d21bc31.entry.js.map → p-f8a2aedd.entry.js.map} +0 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { c as computePosition, o as offset, f as flip, s as shift } from './floating-ui.dom.js';
|
|
2
|
+
|
|
3
|
+
/** CSS class prefix used for truncation tooltip portal elements */
|
|
4
|
+
const TOOLTIP_CLASS = 'pds-truncation-tooltip';
|
|
5
|
+
/**
|
|
6
|
+
* Injects the truncation tooltip styles into the document head.
|
|
7
|
+
* Uses the same design tokens as pds-tooltip for visual consistency.
|
|
8
|
+
* Only injects once — checks the DOM to avoid duplicates.
|
|
9
|
+
*
|
|
10
|
+
* Z-Index Strategy:
|
|
11
|
+
* Uses --pine-z-index-nuclear (9999) to ensure tooltips appear above all other UI elements.
|
|
12
|
+
* This is necessary because tooltips are portaled to document.body and must overlay:
|
|
13
|
+
* - Modal dialogs
|
|
14
|
+
* - Dropdown menus
|
|
15
|
+
* - Other floating UI elements
|
|
16
|
+
* If you encounter z-index conflicts, ensure your overlays use Pine's z-index tokens
|
|
17
|
+
* or adjust --pine-z-index-nuclear in your theme.
|
|
18
|
+
*/
|
|
19
|
+
function injectStyles() {
|
|
20
|
+
if (document.querySelector('[data-pds-truncation-tooltip]'))
|
|
21
|
+
return;
|
|
22
|
+
const style = document.createElement('style');
|
|
23
|
+
style.setAttribute('data-pds-truncation-tooltip', '');
|
|
24
|
+
style.textContent = `
|
|
25
|
+
.${TOOLTIP_CLASS} {
|
|
26
|
+
position: fixed;
|
|
27
|
+
z-index: var(--pine-z-index-nuclear, 9999);
|
|
28
|
+
}
|
|
29
|
+
.${TOOLTIP_CLASS}__content {
|
|
30
|
+
background-color: var(--pine-color-primary, #1a1a2e);
|
|
31
|
+
border-radius: calc(var(--pine-dimension-xs, 4px) * 1.25);
|
|
32
|
+
box-shadow: var(--pine-box-shadow, 0 2px 8px rgba(0,0,0,0.15));
|
|
33
|
+
color: var(--pine-color-text-primary, #fff);
|
|
34
|
+
cursor: text;
|
|
35
|
+
font-family: var(--pine-font-family-body, sans-serif);
|
|
36
|
+
font-size: var(--pine-font-size-body-sm, 0.875rem);
|
|
37
|
+
letter-spacing: var(--pine-letter-spacing, normal);
|
|
38
|
+
line-height: var(--pine-line-height-body, 1.5);
|
|
39
|
+
max-width: 320px;
|
|
40
|
+
opacity: 0;
|
|
41
|
+
padding: var(--pine-dimension-xs, 4px) calc(var(--pine-dimension-md, 12px) / 2);
|
|
42
|
+
transition: opacity 0.15s ease-in-out, visibility 0.15s ease-in-out;
|
|
43
|
+
user-select: text;
|
|
44
|
+
visibility: hidden;
|
|
45
|
+
width: max-content;
|
|
46
|
+
word-break: break-word;
|
|
47
|
+
}
|
|
48
|
+
.${TOOLTIP_CLASS}--visible .${TOOLTIP_CLASS}__content {
|
|
49
|
+
opacity: 1;
|
|
50
|
+
visibility: visible;
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
53
|
+
document.head.appendChild(style);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Checks if an element's content is overflowing horizontally (i.e. text is truncated).
|
|
57
|
+
*/
|
|
58
|
+
function isOverflowing(el) {
|
|
59
|
+
return el.scrollWidth > el.clientWidth;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Sets up automatic tooltip behavior for a truncated element.
|
|
63
|
+
*
|
|
64
|
+
* When the element's text overflows, hovering or focusing the host element
|
|
65
|
+
* will display a tooltip showing the full text content. The tooltip is
|
|
66
|
+
* rendered as a portal on document.body and positioned with Floating UI.
|
|
67
|
+
*
|
|
68
|
+
* @returns A cleanup function that removes all listeners, observers, and DOM elements.
|
|
69
|
+
*/
|
|
70
|
+
function setupTruncationTooltip(options) {
|
|
71
|
+
const { hostEl, contentEl, getTooltipText, placement = 'top' } = options;
|
|
72
|
+
injectStyles();
|
|
73
|
+
let portalEl = null;
|
|
74
|
+
let isHovering = false;
|
|
75
|
+
let isHoveringPortal = false;
|
|
76
|
+
let isFocused = false;
|
|
77
|
+
let hideTimeout = null;
|
|
78
|
+
let resizeObserver = null;
|
|
79
|
+
let resizeDebounce = null;
|
|
80
|
+
// Use ResizeObserver to re-evaluate overflow when the element resizes
|
|
81
|
+
// Debounced to prevent performance issues during rapid window resizing
|
|
82
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
83
|
+
resizeObserver = new ResizeObserver(() => {
|
|
84
|
+
if (resizeDebounce) {
|
|
85
|
+
clearTimeout(resizeDebounce);
|
|
86
|
+
}
|
|
87
|
+
resizeDebounce = setTimeout(() => {
|
|
88
|
+
resizeDebounce = null;
|
|
89
|
+
// If tooltip is showing but text no longer overflows, hide it
|
|
90
|
+
if (portalEl && portalEl.isConnected && !isOverflowing(contentEl)) {
|
|
91
|
+
hideTooltip();
|
|
92
|
+
}
|
|
93
|
+
}, 100);
|
|
94
|
+
});
|
|
95
|
+
resizeObserver.observe(contentEl);
|
|
96
|
+
}
|
|
97
|
+
function createPortal() {
|
|
98
|
+
if (portalEl)
|
|
99
|
+
return;
|
|
100
|
+
const text = getTooltipText();
|
|
101
|
+
if (!text || text.trim() === '')
|
|
102
|
+
return;
|
|
103
|
+
portalEl = document.createElement('div');
|
|
104
|
+
portalEl.className = TOOLTIP_CLASS;
|
|
105
|
+
portalEl.setAttribute('role', 'tooltip');
|
|
106
|
+
portalEl.setAttribute('aria-hidden', 'false');
|
|
107
|
+
const contentDiv = document.createElement('div');
|
|
108
|
+
contentDiv.className = `${TOOLTIP_CLASS}__content`;
|
|
109
|
+
contentDiv.textContent = text.trim();
|
|
110
|
+
portalEl.appendChild(contentDiv);
|
|
111
|
+
document.body.appendChild(portalEl);
|
|
112
|
+
// Allow the user to hover into the tooltip to select/copy text
|
|
113
|
+
portalEl.addEventListener('mouseenter', handlePortalMouseEnter);
|
|
114
|
+
portalEl.addEventListener('mouseleave', handlePortalMouseLeave);
|
|
115
|
+
positionTooltip().then(() => {
|
|
116
|
+
if (portalEl) {
|
|
117
|
+
portalEl.classList.add(`${TOOLTIP_CLASS}--visible`);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
async function positionTooltip() {
|
|
122
|
+
if (!portalEl)
|
|
123
|
+
return;
|
|
124
|
+
try {
|
|
125
|
+
const { x, y } = await computePosition(hostEl, portalEl, {
|
|
126
|
+
placement,
|
|
127
|
+
strategy: 'fixed',
|
|
128
|
+
middleware: [offset(4), flip(), shift({ padding: 5 })],
|
|
129
|
+
});
|
|
130
|
+
Object.assign(portalEl.style, {
|
|
131
|
+
left: `${x}px`,
|
|
132
|
+
top: `${y}px`,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
catch (_a) {
|
|
136
|
+
// Fallback: position above the element with bounds checking
|
|
137
|
+
if (portalEl) {
|
|
138
|
+
const rect = hostEl.getBoundingClientRect();
|
|
139
|
+
const portalRect = portalEl.getBoundingClientRect();
|
|
140
|
+
const padding = 5;
|
|
141
|
+
// Ensure tooltip stays within viewport bounds
|
|
142
|
+
const left = Math.max(padding, Math.min(rect.left, window.innerWidth - portalRect.width - padding));
|
|
143
|
+
const top = Math.max(padding, rect.top - portalRect.height - 8);
|
|
144
|
+
portalEl.style.left = `${left}px`;
|
|
145
|
+
portalEl.style.top = `${top}px`;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function removePortal() {
|
|
150
|
+
if (portalEl) {
|
|
151
|
+
portalEl.removeEventListener('mouseenter', handlePortalMouseEnter);
|
|
152
|
+
portalEl.removeEventListener('mouseleave', handlePortalMouseLeave);
|
|
153
|
+
portalEl.classList.remove(`${TOOLTIP_CLASS}--visible`);
|
|
154
|
+
// Check if portal is still in the DOM before removing
|
|
155
|
+
if (portalEl.parentNode && portalEl.isConnected) {
|
|
156
|
+
try {
|
|
157
|
+
portalEl.parentNode.removeChild(portalEl);
|
|
158
|
+
}
|
|
159
|
+
catch (e) {
|
|
160
|
+
// Portal was already removed, ignore error
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
portalEl = null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function cancelHideTimeout() {
|
|
167
|
+
if (hideTimeout !== null) {
|
|
168
|
+
clearTimeout(hideTimeout);
|
|
169
|
+
hideTimeout = null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function showTooltip() {
|
|
173
|
+
cancelHideTimeout();
|
|
174
|
+
if (!isOverflowing(contentEl))
|
|
175
|
+
return;
|
|
176
|
+
createPortal();
|
|
177
|
+
}
|
|
178
|
+
function hideTooltip() {
|
|
179
|
+
if (isHovering || isHoveringPortal || isFocused)
|
|
180
|
+
return;
|
|
181
|
+
removePortal();
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Schedules tooltip removal after a short delay.
|
|
185
|
+
*
|
|
186
|
+
* The 100ms delay serves two purposes:
|
|
187
|
+
* 1. Gives users time to move their cursor from the truncated text to the tooltip portal
|
|
188
|
+
* without it closing, enabling text selection/copying from the tooltip
|
|
189
|
+
* 2. Prevents flickering when the user briefly moves the cursor during normal interaction
|
|
190
|
+
*/
|
|
191
|
+
function scheduleHide() {
|
|
192
|
+
cancelHideTimeout();
|
|
193
|
+
hideTimeout = setTimeout(() => {
|
|
194
|
+
hideTimeout = null;
|
|
195
|
+
hideTooltip();
|
|
196
|
+
}, 100);
|
|
197
|
+
}
|
|
198
|
+
function handleMouseEnter() {
|
|
199
|
+
isHovering = true;
|
|
200
|
+
showTooltip();
|
|
201
|
+
}
|
|
202
|
+
function handleMouseLeave() {
|
|
203
|
+
isHovering = false;
|
|
204
|
+
scheduleHide();
|
|
205
|
+
}
|
|
206
|
+
function handlePortalMouseEnter() {
|
|
207
|
+
isHoveringPortal = true;
|
|
208
|
+
cancelHideTimeout();
|
|
209
|
+
}
|
|
210
|
+
function handlePortalMouseLeave() {
|
|
211
|
+
isHoveringPortal = false;
|
|
212
|
+
scheduleHide();
|
|
213
|
+
}
|
|
214
|
+
function handleFocusIn() {
|
|
215
|
+
isFocused = true;
|
|
216
|
+
showTooltip();
|
|
217
|
+
}
|
|
218
|
+
function handleFocusOut() {
|
|
219
|
+
isFocused = false;
|
|
220
|
+
scheduleHide();
|
|
221
|
+
}
|
|
222
|
+
hostEl.addEventListener('mouseenter', handleMouseEnter);
|
|
223
|
+
hostEl.addEventListener('mouseleave', handleMouseLeave);
|
|
224
|
+
hostEl.addEventListener('focusin', handleFocusIn);
|
|
225
|
+
hostEl.addEventListener('focusout', handleFocusOut);
|
|
226
|
+
// Return cleanup function
|
|
227
|
+
return () => {
|
|
228
|
+
cancelHideTimeout();
|
|
229
|
+
if (resizeDebounce) {
|
|
230
|
+
clearTimeout(resizeDebounce);
|
|
231
|
+
resizeDebounce = null;
|
|
232
|
+
}
|
|
233
|
+
if (resizeObserver) {
|
|
234
|
+
resizeObserver.disconnect();
|
|
235
|
+
}
|
|
236
|
+
hostEl.removeEventListener('mouseenter', handleMouseEnter);
|
|
237
|
+
hostEl.removeEventListener('mouseleave', handleMouseLeave);
|
|
238
|
+
hostEl.removeEventListener('focusin', handleFocusIn);
|
|
239
|
+
hostEl.removeEventListener('focusout', handleFocusOut);
|
|
240
|
+
removePortal();
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export { setupTruncationTooltip as s };
|
|
245
|
+
//# sourceMappingURL=truncation-tooltip.js.map
|
|
246
|
+
|
|
247
|
+
//# sourceMappingURL=truncation-tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"truncation-tooltip.js","mappings":"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","names":[],"sources":["src/utils/truncation-tooltip.ts"],"sourcesContent":["import { PlacementType } from './types';\nimport {\n computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\n\nexport interface TruncationTooltipOptions {\n /** The host element (for hover/focus listeners and positioning anchor) */\n hostEl: HTMLElement;\n /** The inner element where overflow actually occurs (inside shadow root) */\n contentEl: HTMLElement;\n /** Function that returns the full text to display in the tooltip */\n getTooltipText: () => string;\n /** Tooltip placement preference (default: 'top') */\n placement?: PlacementType;\n}\n\n/** CSS class prefix used for truncation tooltip portal elements */\nconst TOOLTIP_CLASS = 'pds-truncation-tooltip';\n\n/**\n * Injects the truncation tooltip styles into the document head.\n * Uses the same design tokens as pds-tooltip for visual consistency.\n * Only injects once — checks the DOM to avoid duplicates.\n *\n * Z-Index Strategy:\n * Uses --pine-z-index-nuclear (9999) to ensure tooltips appear above all other UI elements.\n * This is necessary because tooltips are portaled to document.body and must overlay:\n * - Modal dialogs\n * - Dropdown menus\n * - Other floating UI elements\n * If you encounter z-index conflicts, ensure your overlays use Pine's z-index tokens\n * or adjust --pine-z-index-nuclear in your theme.\n */\nfunction injectStyles(): void {\n if (document.querySelector('[data-pds-truncation-tooltip]')) return;\n\n const style = document.createElement('style');\n style.setAttribute('data-pds-truncation-tooltip', '');\n style.textContent = `\n .${TOOLTIP_CLASS} {\n position: fixed;\n z-index: var(--pine-z-index-nuclear, 9999);\n }\n .${TOOLTIP_CLASS}__content {\n background-color: var(--pine-color-primary, #1a1a2e);\n border-radius: calc(var(--pine-dimension-xs, 4px) * 1.25);\n box-shadow: var(--pine-box-shadow, 0 2px 8px rgba(0,0,0,0.15));\n color: var(--pine-color-text-primary, #fff);\n cursor: text;\n font-family: var(--pine-font-family-body, sans-serif);\n font-size: var(--pine-font-size-body-sm, 0.875rem);\n letter-spacing: var(--pine-letter-spacing, normal);\n line-height: var(--pine-line-height-body, 1.5);\n max-width: 320px;\n opacity: 0;\n padding: var(--pine-dimension-xs, 4px) calc(var(--pine-dimension-md, 12px) / 2);\n transition: opacity 0.15s ease-in-out, visibility 0.15s ease-in-out;\n user-select: text;\n visibility: hidden;\n width: max-content;\n word-break: break-word;\n }\n .${TOOLTIP_CLASS}--visible .${TOOLTIP_CLASS}__content {\n opacity: 1;\n visibility: visible;\n }\n `;\n document.head.appendChild(style);\n}\n\n/**\n * Checks if an element's content is overflowing horizontally (i.e. text is truncated).\n */\nfunction isOverflowing(el: HTMLElement): boolean {\n return el.scrollWidth > el.clientWidth;\n}\n\n/**\n * Sets up automatic tooltip behavior for a truncated element.\n *\n * When the element's text overflows, hovering or focusing the host element\n * will display a tooltip showing the full text content. The tooltip is\n * rendered as a portal on document.body and positioned with Floating UI.\n *\n * @returns A cleanup function that removes all listeners, observers, and DOM elements.\n */\nexport function setupTruncationTooltip(options: TruncationTooltipOptions): () => void {\n const { hostEl, contentEl, getTooltipText, placement = 'top' } = options;\n\n injectStyles();\n\n let portalEl: HTMLElement | null = null;\n let isHovering = false;\n let isHoveringPortal = false;\n let isFocused = false;\n let hideTimeout: ReturnType<typeof setTimeout> | null = null;\n let resizeObserver: ResizeObserver | null = null;\n let resizeDebounce: ReturnType<typeof setTimeout> | null = null;\n\n // Use ResizeObserver to re-evaluate overflow when the element resizes\n // Debounced to prevent performance issues during rapid window resizing\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(() => {\n if (resizeDebounce) {\n clearTimeout(resizeDebounce);\n }\n resizeDebounce = setTimeout(() => {\n resizeDebounce = null;\n // If tooltip is showing but text no longer overflows, hide it\n if (portalEl && portalEl.isConnected && !isOverflowing(contentEl)) {\n hideTooltip();\n }\n }, 100);\n });\n resizeObserver.observe(contentEl);\n }\n\n function createPortal(): void {\n if (portalEl) return;\n\n const text = getTooltipText();\n if (!text || text.trim() === '') return;\n\n portalEl = document.createElement('div');\n portalEl.className = TOOLTIP_CLASS;\n portalEl.setAttribute('role', 'tooltip');\n portalEl.setAttribute('aria-hidden', 'false');\n\n const contentDiv = document.createElement('div');\n contentDiv.className = `${TOOLTIP_CLASS}__content`;\n contentDiv.textContent = text.trim();\n\n portalEl.appendChild(contentDiv);\n document.body.appendChild(portalEl);\n\n // Allow the user to hover into the tooltip to select/copy text\n portalEl.addEventListener('mouseenter', handlePortalMouseEnter);\n portalEl.addEventListener('mouseleave', handlePortalMouseLeave);\n\n positionTooltip().then(() => {\n if (portalEl) {\n portalEl.classList.add(`${TOOLTIP_CLASS}--visible`);\n }\n });\n }\n\n async function positionTooltip(): Promise<void> {\n if (!portalEl) return;\n\n try {\n const { x, y } = await computePosition(hostEl, portalEl, {\n placement,\n strategy: 'fixed',\n middleware: [offset(4), flip(), shift({ padding: 5 })],\n });\n\n Object.assign(portalEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n } catch {\n // Fallback: position above the element with bounds checking\n if (portalEl) {\n const rect = hostEl.getBoundingClientRect();\n const portalRect = portalEl.getBoundingClientRect();\n const padding = 5;\n\n // Ensure tooltip stays within viewport bounds\n const left = Math.max(padding, Math.min(rect.left, window.innerWidth - portalRect.width - padding));\n const top = Math.max(padding, rect.top - portalRect.height - 8);\n\n portalEl.style.left = `${left}px`;\n portalEl.style.top = `${top}px`;\n }\n }\n }\n\n function removePortal(): void {\n if (portalEl) {\n portalEl.removeEventListener('mouseenter', handlePortalMouseEnter);\n portalEl.removeEventListener('mouseleave', handlePortalMouseLeave);\n portalEl.classList.remove(`${TOOLTIP_CLASS}--visible`);\n // Check if portal is still in the DOM before removing\n if (portalEl.parentNode && portalEl.isConnected) {\n try {\n portalEl.parentNode.removeChild(portalEl);\n } catch (e) {\n // Portal was already removed, ignore error\n }\n }\n portalEl = null;\n }\n }\n\n function cancelHideTimeout(): void {\n if (hideTimeout !== null) {\n clearTimeout(hideTimeout);\n hideTimeout = null;\n }\n }\n\n function showTooltip(): void {\n cancelHideTimeout();\n if (!isOverflowing(contentEl)) return;\n createPortal();\n }\n\n function hideTooltip(): void {\n if (isHovering || isHoveringPortal || isFocused) return;\n removePortal();\n }\n\n /**\n * Schedules tooltip removal after a short delay.\n *\n * The 100ms delay serves two purposes:\n * 1. Gives users time to move their cursor from the truncated text to the tooltip portal\n * without it closing, enabling text selection/copying from the tooltip\n * 2. Prevents flickering when the user briefly moves the cursor during normal interaction\n */\n function scheduleHide(): void {\n cancelHideTimeout();\n hideTimeout = setTimeout(() => {\n hideTimeout = null;\n hideTooltip();\n }, 100);\n }\n\n function handleMouseEnter(): void {\n isHovering = true;\n showTooltip();\n }\n\n function handleMouseLeave(): void {\n isHovering = false;\n scheduleHide();\n }\n\n function handlePortalMouseEnter(): void {\n isHoveringPortal = true;\n cancelHideTimeout();\n }\n\n function handlePortalMouseLeave(): void {\n isHoveringPortal = false;\n scheduleHide();\n }\n\n function handleFocusIn(): void {\n isFocused = true;\n showTooltip();\n }\n\n function handleFocusOut(): void {\n isFocused = false;\n scheduleHide();\n }\n\n hostEl.addEventListener('mouseenter', handleMouseEnter);\n hostEl.addEventListener('mouseleave', handleMouseLeave);\n hostEl.addEventListener('focusin', handleFocusIn);\n hostEl.addEventListener('focusout', handleFocusOut);\n\n // Return cleanup function\n return () => {\n cancelHideTimeout();\n if (resizeDebounce) {\n clearTimeout(resizeDebounce);\n resizeDebounce = null;\n }\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n hostEl.removeEventListener('mouseenter', handleMouseEnter);\n hostEl.removeEventListener('mouseleave', handleMouseLeave);\n hostEl.removeEventListener('focusin', handleFocusIn);\n hostEl.removeEventListener('focusout', handleFocusOut);\n removePortal();\n };\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
/* pds-icons v9.
|
|
3
|
+
/* pds-icons v9.16.0, ES Modules */
|
|
4
4
|
|
|
5
5
|
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>";
|
|
6
6
|
const caretDown = "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='M5.293 8.293a1 1 0 0 1 1.414 0L12 13.586l5.293-5.293a1 1 0 1 1 1.414 1.414l-6 6a1 1 0 0 1-1.414 0l-6-6a1 1 0 0 1 0-1.414'/></svg>";
|
|
@@ -29,6 +29,6 @@ exports.remove = remove;
|
|
|
29
29
|
exports.trash = trash;
|
|
30
30
|
exports.upSmall = upSmall;
|
|
31
31
|
exports.userFilled = userFilled;
|
|
32
|
-
//# sourceMappingURL=index-
|
|
32
|
+
//# sourceMappingURL=index-CjhTEk39.js.map
|
|
33
33
|
|
|
34
|
-
//# sourceMappingURL=index-
|
|
34
|
+
//# sourceMappingURL=index-CjhTEk39.js.map
|