@pine-ds/core 3.17.0 → 3.18.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 +18 -6
- package/components/pds-button2.js.map +1 -1
- package/components/pds-copytext.js +49 -1
- package/components/pds-copytext.js.map +1 -1
- package/components/pds-multiselect.js +60 -14
- 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 +16 -6
- 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 +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-filter.cjs.entry.js +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +1 -1
- package/dist/cjs/pds-link.cjs.entry.js +1 -1
- package/dist/cjs/pds-multiselect.cjs.entry.js +57 -14
- 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 +20 -4
- package/dist/collection/components/pds-button/pds-button.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-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/docs.json +127 -18
- 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 +16 -6
- 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 +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-filter.entry.js +1 -1
- package/dist/esm/pds-input.entry.js +1 -1
- package/dist/esm/pds-link.entry.js +1 -1
- package/dist/esm/pds-multiselect.entry.js +57 -14
- 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-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-copytext.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-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-425144ae.entry.js → p-1cc2fe8d.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-ce069162.entry.js → p-32f65e48.entry.js} +2 -2
- package/dist/pine-core/{p-36e5e9f4.system.entry.js → p-3ea301dd.system.entry.js} +2 -2
- package/dist/pine-core/p-3ea301dd.system.entry.js.map +1 -0
- 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-b46f66e8.system.entry.js → p-45c1f3ea.system.entry.js} +2 -2
- 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-94c73d98.entry.js → p-4e015ddd.entry.js} +2 -2
- package/dist/pine-core/p-4e015ddd.entry.js.map +1 -0
- package/dist/pine-core/{p-0b52923b.system.entry.js → p-52c5ced3.system.entry.js} +2 -2
- 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-5hPM5knE.js +2 -0
- package/dist/pine-core/p-5hPM5knE.js.map +1 -0
- package/dist/pine-core/{p-48ed8147.entry.js → p-632e398f.entry.js} +2 -2
- 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-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-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-8KFA3I5T.system.js.map → p-B8CAflct.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-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-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-eT6pKhWF.system.js.map → p-CObf7nrT.system.js.map} +1 -1
- package/dist/pine-core/p-CPri5wQG.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-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-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-G3GztZmn.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-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-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-c25ea8de.entry.js +2 -0
- package/dist/pine-core/p-c25ea8de.entry.js.map +1 -0
- package/dist/pine-core/p-e78986ea.system.entry.js +2 -0
- package/dist/pine-core/p-e78986ea.system.entry.js.map +1 -0
- 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-f0df10c7.system.entry.js → p-fbe793c7.system.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/pds-button.entry.esm.js.map +1 -1
- package/dist/pine-core/pds-copytext.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 +4 -0
- package/dist/types/components/pds-copytext/pds-copytext.d.ts +10 -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 +45 -11
- package/dist/types/utils/truncation-tooltip.d.ts +21 -0
- package/dist/vscode.html-data.json +26 -5
- package/hydrate/index.js +452 -34
- package/hydrate/index.mjs +452 -34
- 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-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-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-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-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-DZEhYV6y.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-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-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-425144ae.entry.js.map → p-1cc2fe8d.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-b46f66e8.system.entry.js.map → p-45c1f3ea.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-48ed8147.entry.js.map → p-632e398f.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
- /package/dist/pine-core/{p-f0df10c7.system.entry.js.map → p-fbe793c7.system.entry.js.map} +0 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { computePosition, flip, offset, shift, } from "@floating-ui/dom";
|
|
2
|
+
/** CSS class prefix used for truncation tooltip portal elements */
|
|
3
|
+
const TOOLTIP_CLASS = 'pds-truncation-tooltip';
|
|
4
|
+
/**
|
|
5
|
+
* Injects the truncation tooltip styles into the document head.
|
|
6
|
+
* Uses the same design tokens as pds-tooltip for visual consistency.
|
|
7
|
+
* Only injects once — checks the DOM to avoid duplicates.
|
|
8
|
+
*
|
|
9
|
+
* Z-Index Strategy:
|
|
10
|
+
* Uses --pine-z-index-nuclear (9999) to ensure tooltips appear above all other UI elements.
|
|
11
|
+
* This is necessary because tooltips are portaled to document.body and must overlay:
|
|
12
|
+
* - Modal dialogs
|
|
13
|
+
* - Dropdown menus
|
|
14
|
+
* - Other floating UI elements
|
|
15
|
+
* If you encounter z-index conflicts, ensure your overlays use Pine's z-index tokens
|
|
16
|
+
* or adjust --pine-z-index-nuclear in your theme.
|
|
17
|
+
*/
|
|
18
|
+
function injectStyles() {
|
|
19
|
+
if (document.querySelector('[data-pds-truncation-tooltip]'))
|
|
20
|
+
return;
|
|
21
|
+
const style = document.createElement('style');
|
|
22
|
+
style.setAttribute('data-pds-truncation-tooltip', '');
|
|
23
|
+
style.textContent = `
|
|
24
|
+
.${TOOLTIP_CLASS} {
|
|
25
|
+
position: fixed;
|
|
26
|
+
z-index: var(--pine-z-index-nuclear, 9999);
|
|
27
|
+
}
|
|
28
|
+
.${TOOLTIP_CLASS}__content {
|
|
29
|
+
background-color: var(--pine-color-primary, #1a1a2e);
|
|
30
|
+
border-radius: calc(var(--pine-dimension-xs, 4px) * 1.25);
|
|
31
|
+
box-shadow: var(--pine-box-shadow, 0 2px 8px rgba(0,0,0,0.15));
|
|
32
|
+
color: var(--pine-color-text-primary, #fff);
|
|
33
|
+
cursor: text;
|
|
34
|
+
font-family: var(--pine-font-family-body, sans-serif);
|
|
35
|
+
font-size: var(--pine-font-size-body-sm, 0.875rem);
|
|
36
|
+
letter-spacing: var(--pine-letter-spacing, normal);
|
|
37
|
+
line-height: var(--pine-line-height-body, 1.5);
|
|
38
|
+
max-width: 320px;
|
|
39
|
+
opacity: 0;
|
|
40
|
+
padding: var(--pine-dimension-xs, 4px) calc(var(--pine-dimension-md, 12px) / 2);
|
|
41
|
+
transition: opacity 0.15s ease-in-out, visibility 0.15s ease-in-out;
|
|
42
|
+
user-select: text;
|
|
43
|
+
visibility: hidden;
|
|
44
|
+
width: max-content;
|
|
45
|
+
word-break: break-word;
|
|
46
|
+
}
|
|
47
|
+
.${TOOLTIP_CLASS}--visible .${TOOLTIP_CLASS}__content {
|
|
48
|
+
opacity: 1;
|
|
49
|
+
visibility: visible;
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
document.head.appendChild(style);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Checks if an element's content is overflowing horizontally (i.e. text is truncated).
|
|
56
|
+
*/
|
|
57
|
+
function isOverflowing(el) {
|
|
58
|
+
return el.scrollWidth > el.clientWidth;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Sets up automatic tooltip behavior for a truncated element.
|
|
62
|
+
*
|
|
63
|
+
* When the element's text overflows, hovering or focusing the host element
|
|
64
|
+
* will display a tooltip showing the full text content. The tooltip is
|
|
65
|
+
* rendered as a portal on document.body and positioned with Floating UI.
|
|
66
|
+
*
|
|
67
|
+
* @returns A cleanup function that removes all listeners, observers, and DOM elements.
|
|
68
|
+
*/
|
|
69
|
+
export function setupTruncationTooltip(options) {
|
|
70
|
+
const { hostEl, contentEl, getTooltipText, placement = 'top' } = options;
|
|
71
|
+
injectStyles();
|
|
72
|
+
let portalEl = null;
|
|
73
|
+
let isHovering = false;
|
|
74
|
+
let isHoveringPortal = false;
|
|
75
|
+
let isFocused = false;
|
|
76
|
+
let hideTimeout = null;
|
|
77
|
+
let resizeObserver = null;
|
|
78
|
+
let resizeDebounce = null;
|
|
79
|
+
// Use ResizeObserver to re-evaluate overflow when the element resizes
|
|
80
|
+
// Debounced to prevent performance issues during rapid window resizing
|
|
81
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
82
|
+
resizeObserver = new ResizeObserver(() => {
|
|
83
|
+
if (resizeDebounce) {
|
|
84
|
+
clearTimeout(resizeDebounce);
|
|
85
|
+
}
|
|
86
|
+
resizeDebounce = setTimeout(() => {
|
|
87
|
+
resizeDebounce = null;
|
|
88
|
+
// If tooltip is showing but text no longer overflows, hide it
|
|
89
|
+
if (portalEl && portalEl.isConnected && !isOverflowing(contentEl)) {
|
|
90
|
+
hideTooltip();
|
|
91
|
+
}
|
|
92
|
+
}, 100);
|
|
93
|
+
});
|
|
94
|
+
resizeObserver.observe(contentEl);
|
|
95
|
+
}
|
|
96
|
+
function createPortal() {
|
|
97
|
+
if (portalEl)
|
|
98
|
+
return;
|
|
99
|
+
const text = getTooltipText();
|
|
100
|
+
if (!text || text.trim() === '')
|
|
101
|
+
return;
|
|
102
|
+
portalEl = document.createElement('div');
|
|
103
|
+
portalEl.className = TOOLTIP_CLASS;
|
|
104
|
+
portalEl.setAttribute('role', 'tooltip');
|
|
105
|
+
portalEl.setAttribute('aria-hidden', 'false');
|
|
106
|
+
const contentDiv = document.createElement('div');
|
|
107
|
+
contentDiv.className = `${TOOLTIP_CLASS}__content`;
|
|
108
|
+
contentDiv.textContent = text.trim();
|
|
109
|
+
portalEl.appendChild(contentDiv);
|
|
110
|
+
document.body.appendChild(portalEl);
|
|
111
|
+
// Allow the user to hover into the tooltip to select/copy text
|
|
112
|
+
portalEl.addEventListener('mouseenter', handlePortalMouseEnter);
|
|
113
|
+
portalEl.addEventListener('mouseleave', handlePortalMouseLeave);
|
|
114
|
+
positionTooltip().then(() => {
|
|
115
|
+
if (portalEl) {
|
|
116
|
+
portalEl.classList.add(`${TOOLTIP_CLASS}--visible`);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
async function positionTooltip() {
|
|
121
|
+
if (!portalEl)
|
|
122
|
+
return;
|
|
123
|
+
try {
|
|
124
|
+
const { x, y } = await computePosition(hostEl, portalEl, {
|
|
125
|
+
placement,
|
|
126
|
+
strategy: 'fixed',
|
|
127
|
+
middleware: [offset(4), flip(), shift({ padding: 5 })],
|
|
128
|
+
});
|
|
129
|
+
Object.assign(portalEl.style, {
|
|
130
|
+
left: `${x}px`,
|
|
131
|
+
top: `${y}px`,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
catch (_a) {
|
|
135
|
+
// Fallback: position above the element with bounds checking
|
|
136
|
+
if (portalEl) {
|
|
137
|
+
const rect = hostEl.getBoundingClientRect();
|
|
138
|
+
const portalRect = portalEl.getBoundingClientRect();
|
|
139
|
+
const padding = 5;
|
|
140
|
+
// Ensure tooltip stays within viewport bounds
|
|
141
|
+
const left = Math.max(padding, Math.min(rect.left, window.innerWidth - portalRect.width - padding));
|
|
142
|
+
const top = Math.max(padding, rect.top - portalRect.height - 8);
|
|
143
|
+
portalEl.style.left = `${left}px`;
|
|
144
|
+
portalEl.style.top = `${top}px`;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function removePortal() {
|
|
149
|
+
if (portalEl) {
|
|
150
|
+
portalEl.removeEventListener('mouseenter', handlePortalMouseEnter);
|
|
151
|
+
portalEl.removeEventListener('mouseleave', handlePortalMouseLeave);
|
|
152
|
+
portalEl.classList.remove(`${TOOLTIP_CLASS}--visible`);
|
|
153
|
+
// Check if portal is still in the DOM before removing
|
|
154
|
+
if (portalEl.parentNode && portalEl.isConnected) {
|
|
155
|
+
try {
|
|
156
|
+
portalEl.parentNode.removeChild(portalEl);
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
// Portal was already removed, ignore error
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
portalEl = null;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function cancelHideTimeout() {
|
|
166
|
+
if (hideTimeout !== null) {
|
|
167
|
+
clearTimeout(hideTimeout);
|
|
168
|
+
hideTimeout = null;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function showTooltip() {
|
|
172
|
+
cancelHideTimeout();
|
|
173
|
+
if (!isOverflowing(contentEl))
|
|
174
|
+
return;
|
|
175
|
+
createPortal();
|
|
176
|
+
}
|
|
177
|
+
function hideTooltip() {
|
|
178
|
+
if (isHovering || isHoveringPortal || isFocused)
|
|
179
|
+
return;
|
|
180
|
+
removePortal();
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Schedules tooltip removal after a short delay.
|
|
184
|
+
*
|
|
185
|
+
* The 100ms delay serves two purposes:
|
|
186
|
+
* 1. Gives users time to move their cursor from the truncated text to the tooltip portal
|
|
187
|
+
* without it closing, enabling text selection/copying from the tooltip
|
|
188
|
+
* 2. Prevents flickering when the user briefly moves the cursor during normal interaction
|
|
189
|
+
*/
|
|
190
|
+
function scheduleHide() {
|
|
191
|
+
cancelHideTimeout();
|
|
192
|
+
hideTimeout = setTimeout(() => {
|
|
193
|
+
hideTimeout = null;
|
|
194
|
+
hideTooltip();
|
|
195
|
+
}, 100);
|
|
196
|
+
}
|
|
197
|
+
function handleMouseEnter() {
|
|
198
|
+
isHovering = true;
|
|
199
|
+
showTooltip();
|
|
200
|
+
}
|
|
201
|
+
function handleMouseLeave() {
|
|
202
|
+
isHovering = false;
|
|
203
|
+
scheduleHide();
|
|
204
|
+
}
|
|
205
|
+
function handlePortalMouseEnter() {
|
|
206
|
+
isHoveringPortal = true;
|
|
207
|
+
cancelHideTimeout();
|
|
208
|
+
}
|
|
209
|
+
function handlePortalMouseLeave() {
|
|
210
|
+
isHoveringPortal = false;
|
|
211
|
+
scheduleHide();
|
|
212
|
+
}
|
|
213
|
+
function handleFocusIn() {
|
|
214
|
+
isFocused = true;
|
|
215
|
+
showTooltip();
|
|
216
|
+
}
|
|
217
|
+
function handleFocusOut() {
|
|
218
|
+
isFocused = false;
|
|
219
|
+
scheduleHide();
|
|
220
|
+
}
|
|
221
|
+
hostEl.addEventListener('mouseenter', handleMouseEnter);
|
|
222
|
+
hostEl.addEventListener('mouseleave', handleMouseLeave);
|
|
223
|
+
hostEl.addEventListener('focusin', handleFocusIn);
|
|
224
|
+
hostEl.addEventListener('focusout', handleFocusOut);
|
|
225
|
+
// Return cleanup function
|
|
226
|
+
return () => {
|
|
227
|
+
cancelHideTimeout();
|
|
228
|
+
if (resizeDebounce) {
|
|
229
|
+
clearTimeout(resizeDebounce);
|
|
230
|
+
resizeDebounce = null;
|
|
231
|
+
}
|
|
232
|
+
if (resizeObserver) {
|
|
233
|
+
resizeObserver.disconnect();
|
|
234
|
+
}
|
|
235
|
+
hostEl.removeEventListener('mouseenter', handleMouseEnter);
|
|
236
|
+
hostEl.removeEventListener('mouseleave', handleMouseLeave);
|
|
237
|
+
hostEl.removeEventListener('focusin', handleFocusIn);
|
|
238
|
+
hostEl.removeEventListener('focusout', handleFocusOut);
|
|
239
|
+
removePortal();
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=truncation-tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncation-tooltip.js","sourceRoot":"","sources":["../../../src/utils/truncation-tooltip.ts"],"names":[],"mappings":"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","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"]}
|
package/dist/docs.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-02-
|
|
2
|
+
"timestamp": "2026-02-18T18:56:56",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
5
|
"version": "4.38.3",
|
|
@@ -13905,7 +13905,7 @@
|
|
|
13905
13905
|
"mutable": false,
|
|
13906
13906
|
"attr": "truncate",
|
|
13907
13907
|
"reflectToAttr": false,
|
|
13908
|
-
"docs": "Determines whether the `value` should truncate and display with an ellipsis.",
|
|
13908
|
+
"docs": "Determines whether the `value` should truncate and display with an ellipsis.\nWhen text overflows, a tooltip showing the full value will appear on hover/focus.",
|
|
13909
13909
|
"docsTags": [
|
|
13910
13910
|
{
|
|
13911
13911
|
"name": "defaultValue",
|
|
@@ -16812,6 +16812,35 @@
|
|
|
16812
16812
|
"getter": false,
|
|
16813
16813
|
"setter": false
|
|
16814
16814
|
},
|
|
16815
|
+
{
|
|
16816
|
+
"name": "closePanelOnSelect",
|
|
16817
|
+
"type": "boolean",
|
|
16818
|
+
"complexType": {
|
|
16819
|
+
"original": "boolean",
|
|
16820
|
+
"resolved": "boolean",
|
|
16821
|
+
"references": {}
|
|
16822
|
+
},
|
|
16823
|
+
"mutable": false,
|
|
16824
|
+
"attr": "close-panel-on-select",
|
|
16825
|
+
"reflectToAttr": false,
|
|
16826
|
+
"docs": "Whether to close the panel after an option is selected.\nDefaults to `false` (panel stays open for multi-select).",
|
|
16827
|
+
"docsTags": [
|
|
16828
|
+
{
|
|
16829
|
+
"name": "default",
|
|
16830
|
+
"text": "false"
|
|
16831
|
+
}
|
|
16832
|
+
],
|
|
16833
|
+
"default": "false",
|
|
16834
|
+
"values": [
|
|
16835
|
+
{
|
|
16836
|
+
"type": "boolean"
|
|
16837
|
+
}
|
|
16838
|
+
],
|
|
16839
|
+
"optional": false,
|
|
16840
|
+
"required": false,
|
|
16841
|
+
"getter": false,
|
|
16842
|
+
"setter": false
|
|
16843
|
+
},
|
|
16815
16844
|
{
|
|
16816
16845
|
"name": "componentId",
|
|
16817
16846
|
"type": "string",
|
|
@@ -17417,6 +17446,35 @@
|
|
|
17417
17446
|
"getter": false,
|
|
17418
17447
|
"setter": false
|
|
17419
17448
|
},
|
|
17449
|
+
{
|
|
17450
|
+
"name": "searchPlaceholder",
|
|
17451
|
+
"type": "string",
|
|
17452
|
+
"complexType": {
|
|
17453
|
+
"original": "string",
|
|
17454
|
+
"resolved": "string",
|
|
17455
|
+
"references": {}
|
|
17456
|
+
},
|
|
17457
|
+
"mutable": false,
|
|
17458
|
+
"attr": "search-placeholder",
|
|
17459
|
+
"reflectToAttr": false,
|
|
17460
|
+
"docs": "Placeholder text for the search input inside the dropdown panel.",
|
|
17461
|
+
"docsTags": [
|
|
17462
|
+
{
|
|
17463
|
+
"name": "default",
|
|
17464
|
+
"text": "'Find...'"
|
|
17465
|
+
}
|
|
17466
|
+
],
|
|
17467
|
+
"default": "'Find...'",
|
|
17468
|
+
"values": [
|
|
17469
|
+
{
|
|
17470
|
+
"type": "string"
|
|
17471
|
+
}
|
|
17472
|
+
],
|
|
17473
|
+
"optional": false,
|
|
17474
|
+
"required": false,
|
|
17475
|
+
"getter": false,
|
|
17476
|
+
"setter": false
|
|
17477
|
+
},
|
|
17420
17478
|
{
|
|
17421
17479
|
"name": "triggerWidth",
|
|
17422
17480
|
"type": "string",
|
|
@@ -17476,6 +17534,28 @@
|
|
|
17476
17534
|
}
|
|
17477
17535
|
],
|
|
17478
17536
|
"methods": [
|
|
17537
|
+
{
|
|
17538
|
+
"name": "clear",
|
|
17539
|
+
"returns": {
|
|
17540
|
+
"type": "Promise<void>",
|
|
17541
|
+
"docs": ""
|
|
17542
|
+
},
|
|
17543
|
+
"complexType": {
|
|
17544
|
+
"signature": "() => Promise<void>",
|
|
17545
|
+
"parameters": [],
|
|
17546
|
+
"references": {
|
|
17547
|
+
"Promise": {
|
|
17548
|
+
"location": "global",
|
|
17549
|
+
"id": "global::Promise"
|
|
17550
|
+
}
|
|
17551
|
+
},
|
|
17552
|
+
"return": "Promise<void>"
|
|
17553
|
+
},
|
|
17554
|
+
"signature": "clear() => Promise<void>",
|
|
17555
|
+
"parameters": [],
|
|
17556
|
+
"docs": "Clears all selected values and resets the component.",
|
|
17557
|
+
"docsTags": []
|
|
17558
|
+
},
|
|
17479
17559
|
{
|
|
17480
17560
|
"name": "setFocus",
|
|
17481
17561
|
"returns": {
|
|
@@ -17540,6 +17620,20 @@
|
|
|
17540
17620
|
"docs": "Emitted when a new option is created.",
|
|
17541
17621
|
"docsTags": []
|
|
17542
17622
|
},
|
|
17623
|
+
{
|
|
17624
|
+
"event": "pdsMultiselectDismiss",
|
|
17625
|
+
"detail": "void",
|
|
17626
|
+
"bubbles": true,
|
|
17627
|
+
"complexType": {
|
|
17628
|
+
"original": "void",
|
|
17629
|
+
"resolved": "void",
|
|
17630
|
+
"references": {}
|
|
17631
|
+
},
|
|
17632
|
+
"cancelable": true,
|
|
17633
|
+
"composed": true,
|
|
17634
|
+
"docs": "Emitted when the dropdown is dismissed via Escape key or click outside.\n\nThis event fires only when the user explicitly dismisses the panel without making a selection:\n- ✅ Fires: Pressing Escape key while dropdown is open\n- ✅ Fires: Clicking outside the component while dropdown is open\n- ❌ Does NOT fire: When panel closes due to selection (including when `closePanelOnSelect` is true)\n- ❌ Does NOT fire: When panel closes programmatically via `closeDropdown()`\n\nEquivalent to Sage's `onEscapeHook`. Use this to restore parent UI state or run cleanup when the user cancels their interaction.",
|
|
17635
|
+
"docsTags": []
|
|
17636
|
+
},
|
|
17543
17637
|
{
|
|
17544
17638
|
"event": "pdsMultiselectLoadOptions",
|
|
17545
17639
|
"detail": "MultiselectLoadOptionsEventDetail",
|
|
@@ -20767,6 +20861,35 @@
|
|
|
20767
20861
|
"getter": false,
|
|
20768
20862
|
"setter": false
|
|
20769
20863
|
},
|
|
20864
|
+
{
|
|
20865
|
+
"name": "disableSelectAll",
|
|
20866
|
+
"type": "boolean",
|
|
20867
|
+
"complexType": {
|
|
20868
|
+
"original": "boolean",
|
|
20869
|
+
"resolved": "boolean",
|
|
20870
|
+
"references": {}
|
|
20871
|
+
},
|
|
20872
|
+
"mutable": false,
|
|
20873
|
+
"attr": "disable-select-all",
|
|
20874
|
+
"reflectToAttr": false,
|
|
20875
|
+
"docs": "Hides the select-all checkbox in the table header while keeping individual row checkboxes functional.\nOnly applies when `selectable` is true.",
|
|
20876
|
+
"docsTags": [
|
|
20877
|
+
{
|
|
20878
|
+
"name": "defaultValue",
|
|
20879
|
+
"text": "false"
|
|
20880
|
+
}
|
|
20881
|
+
],
|
|
20882
|
+
"default": "false",
|
|
20883
|
+
"values": [
|
|
20884
|
+
{
|
|
20885
|
+
"type": "boolean"
|
|
20886
|
+
}
|
|
20887
|
+
],
|
|
20888
|
+
"optional": false,
|
|
20889
|
+
"required": false,
|
|
20890
|
+
"getter": false,
|
|
20891
|
+
"setter": false
|
|
20892
|
+
},
|
|
20770
20893
|
{
|
|
20771
20894
|
"name": "fixedColumn",
|
|
20772
20895
|
"type": "boolean",
|
|
@@ -20868,20 +20991,6 @@
|
|
|
20868
20991
|
],
|
|
20869
20992
|
"methods": [],
|
|
20870
20993
|
"events": [
|
|
20871
|
-
{
|
|
20872
|
-
"event": "pdsTableSelect",
|
|
20873
|
-
"detail": "{ rowIndex: number; isSelected: boolean; }",
|
|
20874
|
-
"bubbles": true,
|
|
20875
|
-
"complexType": {
|
|
20876
|
-
"original": "{ rowIndex: number; isSelected: boolean }",
|
|
20877
|
-
"resolved": "{ rowIndex: number; isSelected: boolean; }",
|
|
20878
|
-
"references": {}
|
|
20879
|
-
},
|
|
20880
|
-
"cancelable": true,
|
|
20881
|
-
"composed": true,
|
|
20882
|
-
"docs": "Event that is emitted when the checkbox is clicked, carrying the rowIndex and selected value.",
|
|
20883
|
-
"docsTags": []
|
|
20884
|
-
},
|
|
20885
20994
|
{
|
|
20886
20995
|
"event": "pdsTableSelectAll",
|
|
20887
20996
|
"detail": "{ isSelected: boolean; }",
|
|
@@ -21030,7 +21139,7 @@
|
|
|
21030
21139
|
"mutable": false,
|
|
21031
21140
|
"attr": "truncate",
|
|
21032
21141
|
"reflectToAttr": false,
|
|
21033
|
-
"docs": "Truncates content to a max width
|
|
21142
|
+
"docs": "Truncates content to a max width and adds an ellipsis.\nWhen text overflows, a tooltip showing the full text will appear on hover/focus.\nNote: When truncate is enabled, the element automatically receives tabindex=\"0\" for keyboard accessibility.",
|
|
21034
21143
|
"docsTags": [],
|
|
21035
21144
|
"values": [
|
|
21036
21145
|
{
|
|
@@ -22051,7 +22160,7 @@
|
|
|
22051
22160
|
"mutable": false,
|
|
22052
22161
|
"attr": "truncate",
|
|
22053
22162
|
"reflectToAttr": true,
|
|
22054
|
-
"docs": "If set or `true`, the text will be truncated. Must add a `width` to the element.",
|
|
22163
|
+
"docs": "If set or `true`, the text will be truncated. Must add a `width` to the element.\nWhen text overflows, a tooltip showing the full text will appear on hover/focus.\nNote: When truncate is enabled, the element automatically receives tabindex=\"0\" for keyboard accessibility.",
|
|
22055
22164
|
"docsTags": [],
|
|
22056
22165
|
"values": [
|
|
22057
22166
|
{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* pds-icons v9.
|
|
1
|
+
/* pds-icons v9.16.0, ES Modules */
|
|
2
2
|
|
|
3
3
|
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>";
|
|
4
4
|
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>";
|
|
@@ -15,6 +15,6 @@ const upSmall = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'
|
|
|
15
15
|
const userFilled = "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.786 14.5h6.428c.727 0 1.222 0 1.654.076a5 5 0 0 1 4.056 4.056c.076.432.076.927.076 1.654 0 .158.005.318-.023.474a1.5 1.5 0 0 1-1.216 1.217c-.137.024-.28.023-.351.023Q12 21.961 4.59 22c-.07 0-.214.001-.35-.023a1.5 1.5 0 0 1-1.217-1.216c-.028-.157-.023-.317-.023-.475 0-.727 0-1.222.076-1.654a5 5 0 0 1 4.056-4.056c.432-.076.927-.076 1.654-.076M6.5 7.5a5.5 5.5 0 1 1 11 0 5.5 5.5 0 0 1-11 0'/></svg>";
|
|
16
16
|
|
|
17
17
|
export { copy as a, danger as b, checkCircleFilled as c, downSmall as d, enlarge as e, addCircle as f, caretDown as g, handle as h, upSmall as i, launch as l, remove as r, trash as t, userFilled as u };
|
|
18
|
-
//# sourceMappingURL=index-
|
|
18
|
+
//# sourceMappingURL=index-BFkDH5XU.js.map
|
|
19
19
|
|
|
20
|
-
//# sourceMappingURL=index-
|
|
20
|
+
//# sourceMappingURL=index-BFkDH5XU.js.map
|