@pine-ds/core 3.16.3 → 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.
Files changed (334) hide show
  1. package/components/index2.js +1 -1
  2. package/components/index2.js.map +1 -1
  3. package/components/pds-button2.js +18 -6
  4. package/components/pds-button2.js.map +1 -1
  5. package/components/pds-copytext.js +49 -1
  6. package/components/pds-copytext.js.map +1 -1
  7. package/components/pds-multiselect.js +66 -15
  8. package/components/pds-multiselect.js.map +1 -1
  9. package/components/pds-table-cell2.js +36 -3
  10. package/components/pds-table-cell2.js.map +1 -1
  11. package/components/pds-table-head.js +1 -1
  12. package/components/pds-table-head.js.map +1 -1
  13. package/components/pds-table-row.js +3 -3
  14. package/components/pds-table-row.js.map +1 -1
  15. package/components/pds-table.js +12 -4
  16. package/components/pds-table.js.map +1 -1
  17. package/components/pds-text2.js +41 -1
  18. package/components/pds-text2.js.map +1 -1
  19. package/components/truncation-tooltip.js +247 -0
  20. package/components/truncation-tooltip.js.map +1 -0
  21. package/dist/cjs/{index-DkQebouX.js → index-CjhTEk39.js} +3 -3
  22. package/dist/cjs/index-CjhTEk39.js.map +1 -0
  23. package/dist/cjs/loader.cjs.js +1 -1
  24. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  25. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  26. package/dist/cjs/pds-button.cjs.entry.js +16 -6
  27. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  28. package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
  29. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  30. package/dist/cjs/pds-copytext.cjs.entry.js +48 -2
  31. package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
  32. package/dist/cjs/pds-filter.cjs.entry.js +1 -1
  33. package/dist/cjs/pds-input.cjs.entry.js +1 -1
  34. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  35. package/dist/cjs/pds-multiselect.cjs.entry.js +62 -15
  36. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
  37. package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
  38. package/dist/cjs/pds-radio.cjs.entry.js +1 -1
  39. package/dist/cjs/pds-select.cjs.entry.js +1 -1
  40. package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
  41. package/dist/cjs/pds-switch.cjs.entry.js +1 -1
  42. package/dist/cjs/pds-table-cell.cjs.entry.js +35 -3
  43. package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
  44. package/dist/cjs/pds-table-head-cell.cjs.entry.js +1 -1
  45. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  46. package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
  47. package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
  48. package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
  49. package/dist/cjs/pds-table.cjs.entry.js +11 -4
  50. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  51. package/dist/cjs/pds-text.cjs.entry.js +40 -1
  52. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  53. package/dist/cjs/pds-textarea.cjs.entry.js +1 -1
  54. package/dist/cjs/pine-core.cjs.js +1 -1
  55. package/dist/cjs/truncation-tooltip-BGGnm8SZ.js +249 -0
  56. package/dist/cjs/truncation-tooltip-BGGnm8SZ.js.map +1 -0
  57. package/dist/collection/components/pds-button/pds-button.css +1 -1
  58. package/dist/collection/components/pds-button/pds-button.js +20 -4
  59. package/dist/collection/components/pds-button/pds-button.js.map +1 -1
  60. package/dist/collection/components/pds-copytext/pds-copytext.js +52 -2
  61. package/dist/collection/components/pds-copytext/pds-copytext.js.map +1 -1
  62. package/dist/collection/components/pds-multiselect/pds-multiselect.js +155 -14
  63. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -1
  64. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +93 -0
  65. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +1 -1
  66. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +37 -3
  67. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +1 -1
  68. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  69. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +1 -1
  70. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +3 -3
  71. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +1 -1
  72. package/dist/collection/components/pds-table/pds-table.css +1 -0
  73. package/dist/collection/components/pds-table/pds-table.js +33 -17
  74. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  75. package/dist/collection/components/pds-table/stories/pds-table.stories.js +58 -0
  76. package/dist/collection/components/pds-text/pds-text.js +43 -2
  77. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  78. package/dist/collection/components/pds-text/stories/pds-text.stories.js +21 -2
  79. package/dist/collection/utils/truncation-tooltip.js +242 -0
  80. package/dist/collection/utils/truncation-tooltip.js.map +1 -0
  81. package/dist/docs.json +156 -18
  82. package/dist/esm/{index-D094LgxJ.js → index-BFkDH5XU.js} +3 -3
  83. package/dist/esm/index-BFkDH5XU.js.map +1 -0
  84. package/dist/esm/loader.js +1 -1
  85. package/dist/esm/pds-accordion.entry.js +1 -1
  86. package/dist/esm/pds-avatar.entry.js +1 -1
  87. package/dist/esm/pds-button.entry.js +16 -6
  88. package/dist/esm/pds-button.entry.js.map +1 -1
  89. package/dist/esm/pds-checkbox.entry.js +1 -1
  90. package/dist/esm/pds-chip.entry.js +1 -1
  91. package/dist/esm/pds-copytext.entry.js +49 -3
  92. package/dist/esm/pds-copytext.entry.js.map +1 -1
  93. package/dist/esm/pds-filter.entry.js +1 -1
  94. package/dist/esm/pds-input.entry.js +1 -1
  95. package/dist/esm/pds-link.entry.js +1 -1
  96. package/dist/esm/pds-multiselect.entry.js +62 -15
  97. package/dist/esm/pds-multiselect.entry.js.map +1 -1
  98. package/dist/esm/pds-radio-group.entry.js +1 -1
  99. package/dist/esm/pds-radio.entry.js +1 -1
  100. package/dist/esm/pds-select.entry.js +1 -1
  101. package/dist/esm/pds-sortable-item.entry.js +1 -1
  102. package/dist/esm/pds-switch.entry.js +1 -1
  103. package/dist/esm/pds-table-cell.entry.js +35 -3
  104. package/dist/esm/pds-table-cell.entry.js.map +1 -1
  105. package/dist/esm/pds-table-head-cell.entry.js +1 -1
  106. package/dist/esm/pds-table-head.entry.js +1 -1
  107. package/dist/esm/pds-table-head.entry.js.map +1 -1
  108. package/dist/esm/pds-table-row.entry.js +3 -3
  109. package/dist/esm/pds-table-row.entry.js.map +1 -1
  110. package/dist/esm/pds-table.entry.js +11 -4
  111. package/dist/esm/pds-table.entry.js.map +1 -1
  112. package/dist/esm/pds-text.entry.js +40 -1
  113. package/dist/esm/pds-text.entry.js.map +1 -1
  114. package/dist/esm/pds-textarea.entry.js +1 -1
  115. package/dist/esm/pine-core.js +1 -1
  116. package/dist/esm/truncation-tooltip-CTHpMbU3.js +247 -0
  117. package/dist/esm/truncation-tooltip-CTHpMbU3.js.map +1 -0
  118. package/dist/esm-es5/{index-D094LgxJ.js → index-BFkDH5XU.js} +1 -1
  119. package/dist/esm-es5/index-BFkDH5XU.js.map +1 -0
  120. package/dist/esm-es5/loader.js +1 -1
  121. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  122. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  123. package/dist/esm-es5/pds-button.entry.js +1 -1
  124. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  125. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  126. package/dist/esm-es5/pds-chip.entry.js +1 -1
  127. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  128. package/dist/esm-es5/pds-copytext.entry.js.map +1 -1
  129. package/dist/esm-es5/pds-filter.entry.js +1 -1
  130. package/dist/esm-es5/pds-input.entry.js +1 -1
  131. package/dist/esm-es5/pds-link.entry.js +1 -1
  132. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  133. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -1
  134. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  135. package/dist/esm-es5/pds-radio.entry.js +1 -1
  136. package/dist/esm-es5/pds-select.entry.js +1 -1
  137. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  138. package/dist/esm-es5/pds-switch.entry.js +1 -1
  139. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  140. package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
  141. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  142. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  143. package/dist/esm-es5/pds-table-head.entry.js.map +1 -1
  144. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  145. package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
  146. package/dist/esm-es5/pds-table.entry.js +1 -1
  147. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  148. package/dist/esm-es5/pds-text.entry.js +1 -1
  149. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  150. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  151. package/dist/esm-es5/pine-core.js +1 -1
  152. package/dist/esm-es5/truncation-tooltip-CTHpMbU3.js +2 -0
  153. package/dist/esm-es5/truncation-tooltip-CTHpMbU3.js.map +1 -0
  154. package/dist/pine-core/{p-2aac4495.system.entry.js → p-15ac22bd.system.entry.js} +2 -2
  155. package/dist/pine-core/{p-425144ae.entry.js → p-1cc2fe8d.entry.js} +2 -2
  156. package/dist/pine-core/p-203f6e9e.entry.js +2 -0
  157. package/dist/pine-core/p-203f6e9e.entry.js.map +1 -0
  158. package/dist/pine-core/{p-0ac54273.entry.js → p-276f774a.entry.js} +2 -2
  159. package/dist/pine-core/p-27ccbd3f.entry.js +2 -0
  160. package/dist/pine-core/p-27ccbd3f.entry.js.map +1 -0
  161. package/dist/pine-core/p-2e22a1fc.system.entry.js +2 -0
  162. package/dist/pine-core/p-2e22a1fc.system.entry.js.map +1 -0
  163. package/dist/pine-core/{p-ce069162.entry.js → p-32f65e48.entry.js} +2 -2
  164. package/dist/pine-core/{p-36e5e9f4.system.entry.js → p-3ea301dd.system.entry.js} +2 -2
  165. package/dist/pine-core/p-3ea301dd.system.entry.js.map +1 -0
  166. package/dist/pine-core/p-4189f1be.system.entry.js +2 -0
  167. package/dist/pine-core/p-4189f1be.system.entry.js.map +1 -0
  168. package/dist/pine-core/{p-7d7dce2c.system.entry.js → p-4232520f.system.entry.js} +2 -2
  169. package/dist/pine-core/{p-8e40c9ef.entry.js → p-439e3343.entry.js} +2 -2
  170. package/dist/pine-core/p-439e3343.entry.js.map +1 -0
  171. package/dist/pine-core/{p-b46f66e8.system.entry.js → p-45c1f3ea.system.entry.js} +2 -2
  172. package/dist/pine-core/{p-5abc5d82.system.entry.js → p-49c2e2ce.system.entry.js} +2 -2
  173. package/dist/pine-core/{p-b1a7a0b2.entry.js → p-4de64b1f.entry.js} +2 -2
  174. package/dist/pine-core/{p-94c73d98.entry.js → p-4e015ddd.entry.js} +2 -2
  175. package/dist/pine-core/p-4e015ddd.entry.js.map +1 -0
  176. package/dist/pine-core/{p-0b52923b.system.entry.js → p-52c5ced3.system.entry.js} +2 -2
  177. package/dist/pine-core/{p-3815f565.entry.js → p-593cee44.entry.js} +2 -2
  178. package/dist/pine-core/{p-73bce0bf.entry.js → p-5a7b25d0.entry.js} +2 -2
  179. package/dist/pine-core/p-5hPM5knE.js +2 -0
  180. package/dist/pine-core/p-5hPM5knE.js.map +1 -0
  181. package/dist/pine-core/{p-48ed8147.entry.js → p-632e398f.entry.js} +2 -2
  182. package/dist/pine-core/{p-957647f9.entry.js → p-663abd80.entry.js} +2 -2
  183. package/dist/pine-core/{p-23111b1c.system.entry.js → p-6980edfe.system.entry.js} +2 -2
  184. package/dist/pine-core/{p-BxVkyfaO.system.js → p-6I02BpQf.system.js} +1 -1
  185. package/dist/pine-core/p-6I02BpQf.system.js.map +1 -0
  186. package/dist/pine-core/{p-c9965216.system.entry.js → p-6fbe6be4.system.entry.js} +2 -2
  187. package/dist/pine-core/p-7514a191.entry.js +2 -0
  188. package/dist/pine-core/p-7514a191.entry.js.map +1 -0
  189. package/dist/pine-core/{p-bd18b9bf.system.entry.js → p-77d4f274.system.entry.js} +2 -2
  190. package/dist/pine-core/{p-78246e05.entry.js → p-85ce731b.entry.js} +2 -2
  191. package/dist/pine-core/{p-b1820970.system.entry.js → p-87cee4a0.system.entry.js} +2 -2
  192. package/dist/pine-core/{p-fbd8ae50.entry.js → p-88686193.entry.js} +2 -2
  193. package/dist/pine-core/p-88eb4f6c.entry.js +2 -0
  194. package/dist/pine-core/p-88eb4f6c.entry.js.map +1 -0
  195. package/dist/pine-core/{p-b09bde5c.system.entry.js → p-8ab66dbc.system.entry.js} +2 -2
  196. package/dist/pine-core/p-8be316b4.system.entry.js +2 -0
  197. package/dist/pine-core/p-8be316b4.system.entry.js.map +1 -0
  198. package/dist/pine-core/{p-7a11a6c7.entry.js → p-8f935480.entry.js} +2 -2
  199. package/dist/pine-core/p-9263809e.entry.js +2 -0
  200. package/dist/pine-core/p-9263809e.entry.js.map +1 -0
  201. package/dist/pine-core/{p-3f05d72e.system.entry.js → p-9e3e441c.system.entry.js} +2 -2
  202. package/dist/pine-core/{p-3cd53462.entry.js → p-9e8296fc.entry.js} +2 -2
  203. package/dist/pine-core/{p-BJPmPVaF.system.js.map → p-B3dAc5EW.system.js.map} +1 -1
  204. package/dist/pine-core/p-B48FyOD0.system.js.map +1 -0
  205. package/dist/pine-core/{p-DY97YDUU.system.js.map → p-B5CyjPYU.system.js.map} +1 -1
  206. package/dist/pine-core/{p-8KFA3I5T.system.js.map → p-B8CAflct.system.js.map} +1 -1
  207. package/dist/pine-core/{p-N-jt0_Yl.system.js.map → p-BBJXL9br.system.js.map} +1 -1
  208. package/dist/pine-core/{p-D094LgxJ.js → p-BFkDH5XU.js} +1 -1
  209. package/dist/pine-core/p-BFkDH5XU.js.map +1 -0
  210. package/dist/pine-core/{p-CjQwwLdV.system.js.map → p-Bd3ynCsJ.system.js.map} +1 -1
  211. package/dist/pine-core/{p-D4YdQDsG.system.js.map → p-BiLmvJTd.system.js.map} +1 -1
  212. package/dist/pine-core/{p-PZw10cnm.system.js.map → p-C8y7SAd7.system.js.map} +1 -1
  213. package/dist/pine-core/{p-gcCcHox5.system.js.map → p-CCh7iS6N.system.js.map} +1 -1
  214. package/dist/pine-core/p-CEE11B7K.system.js.map +1 -0
  215. package/dist/pine-core/{p-eT6pKhWF.system.js.map → p-CObf7nrT.system.js.map} +1 -1
  216. package/dist/pine-core/p-CPri5wQG.system.js.map +1 -0
  217. package/dist/pine-core/{p-D3Ug1A-l.system.js.map → p-CbRBe3Eq.system.js.map} +1 -1
  218. package/dist/pine-core/{p-c2oMjk1r.system.js.map → p-Ctc231vq.system.js.map} +1 -1
  219. package/dist/pine-core/p-DXVwADJT.system.js +2 -0
  220. package/dist/pine-core/p-DXVwADJT.system.js.map +1 -0
  221. package/dist/pine-core/p-DenbFuEN.system.js.map +1 -0
  222. package/dist/pine-core/{p-BnJypAy2.system.js.map → p-DhLX7iDs.system.js.map} +1 -1
  223. package/dist/pine-core/p-Dkz0RoFB.system.js.map +1 -0
  224. package/dist/pine-core/p-G3GztZmn.system.js.map +1 -0
  225. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  226. package/dist/pine-core/{p-15e554ae.entry.js → p-a30edeb1.entry.js} +2 -2
  227. package/dist/pine-core/{p-5O8bhSdk.system.js.map → p-aKHwHZQR.system.js.map} +1 -1
  228. package/dist/pine-core/{p-fce519e3.system.entry.js → p-b416cb4b.system.entry.js} +2 -2
  229. package/dist/pine-core/p-b416cb4b.system.entry.js.map +1 -0
  230. package/dist/pine-core/{p-d2b2caa2.system.entry.js → p-b6f57c0f.system.entry.js} +2 -2
  231. package/dist/pine-core/p-b7f2f9f3.system.entry.js +2 -0
  232. package/dist/pine-core/p-b7f2f9f3.system.entry.js.map +1 -0
  233. package/dist/pine-core/p-c25ea8de.entry.js +2 -0
  234. package/dist/pine-core/p-c25ea8de.entry.js.map +1 -0
  235. package/dist/pine-core/p-e78986ea.system.entry.js +2 -0
  236. package/dist/pine-core/p-e78986ea.system.entry.js.map +1 -0
  237. package/dist/pine-core/{p-13105538.system.entry.js → p-f795d3fe.system.entry.js} +2 -2
  238. package/dist/pine-core/p-f7d9bZ8U.system.js.map +1 -0
  239. package/dist/pine-core/p-f81b0dbb.system.entry.js +2 -0
  240. package/dist/pine-core/p-f81b0dbb.system.entry.js.map +1 -0
  241. package/dist/pine-core/{p-2d21bc31.entry.js → p-f8a2aedd.entry.js} +2 -2
  242. package/dist/pine-core/{p-f0df10c7.system.entry.js → p-fbe793c7.system.entry.js} +2 -2
  243. package/dist/pine-core/{p-CQtQQn3_.system.js.map → p-hL5Id7g5.system.js.map} +1 -1
  244. package/dist/pine-core/{p-BK1BTkTt.system.js.map → p-hzdqYC6e.system.js.map} +1 -1
  245. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  246. package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
  247. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
  248. package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
  249. package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
  250. package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
  251. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  252. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  253. package/dist/pine-core/pine-core.esm.js +1 -1
  254. package/dist/types/components/pds-button/pds-button.d.ts +4 -0
  255. package/dist/types/components/pds-copytext/pds-copytext.d.ts +10 -0
  256. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +31 -0
  257. package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +7 -1
  258. package/dist/types/components/pds-table/pds-table-row/pds-table-row.d.ts +1 -1
  259. package/dist/types/components/pds-table/pds-table.d.ts +6 -7
  260. package/dist/types/components/pds-text/pds-text.d.ts +9 -0
  261. package/dist/types/components.d.ts +55 -11
  262. package/dist/types/utils/truncation-tooltip.d.ts +21 -0
  263. package/dist/vscode.html-data.json +33 -5
  264. package/hydrate/index.js +458 -35
  265. package/hydrate/index.mjs +458 -35
  266. package/package.json +2 -2
  267. package/dist/cjs/index-DkQebouX.js.map +0 -1
  268. package/dist/esm/index-D094LgxJ.js.map +0 -1
  269. package/dist/esm-es5/index-D094LgxJ.js.map +0 -1
  270. package/dist/pine-core/p-003884fd.entry.js +0 -2
  271. package/dist/pine-core/p-003884fd.entry.js.map +0 -1
  272. package/dist/pine-core/p-1971d358.entry.js +0 -2
  273. package/dist/pine-core/p-1971d358.entry.js.map +0 -1
  274. package/dist/pine-core/p-23aba538.entry.js +0 -2
  275. package/dist/pine-core/p-23aba538.entry.js.map +0 -1
  276. package/dist/pine-core/p-36e5e9f4.system.entry.js.map +0 -1
  277. package/dist/pine-core/p-3b0a4abe.entry.js +0 -2
  278. package/dist/pine-core/p-3b0a4abe.entry.js.map +0 -1
  279. package/dist/pine-core/p-3c026ec7.system.entry.js +0 -2
  280. package/dist/pine-core/p-3c026ec7.system.entry.js.map +0 -1
  281. package/dist/pine-core/p-49c4f34a.entry.js +0 -2
  282. package/dist/pine-core/p-49c4f34a.entry.js.map +0 -1
  283. package/dist/pine-core/p-6918b378.system.entry.js +0 -2
  284. package/dist/pine-core/p-6918b378.system.entry.js.map +0 -1
  285. package/dist/pine-core/p-8e40c9ef.entry.js.map +0 -1
  286. package/dist/pine-core/p-93d0be59.entry.js +0 -2
  287. package/dist/pine-core/p-93d0be59.entry.js.map +0 -1
  288. package/dist/pine-core/p-94c73d98.entry.js.map +0 -1
  289. package/dist/pine-core/p-BpZTjdau.system.js.map +0 -1
  290. package/dist/pine-core/p-BxVkyfaO.system.js.map +0 -1
  291. package/dist/pine-core/p-CjnIO2Ro.system.js.map +0 -1
  292. package/dist/pine-core/p-D094LgxJ.js.map +0 -1
  293. package/dist/pine-core/p-DJYyo0MJ.system.js.map +0 -1
  294. package/dist/pine-core/p-DZEhYV6y.system.js.map +0 -1
  295. package/dist/pine-core/p-Ri89mw0-.system.js.map +0 -1
  296. package/dist/pine-core/p-ZUqfslIz.system.js.map +0 -1
  297. package/dist/pine-core/p-aeb2f6ac.system.entry.js +0 -2
  298. package/dist/pine-core/p-aeb2f6ac.system.entry.js.map +0 -1
  299. package/dist/pine-core/p-cb8c24ad.system.entry.js +0 -2
  300. package/dist/pine-core/p-cb8c24ad.system.entry.js.map +0 -1
  301. package/dist/pine-core/p-d83d6fce.system.entry.js +0 -2
  302. package/dist/pine-core/p-d83d6fce.system.entry.js.map +0 -1
  303. package/dist/pine-core/p-ef9c539e.system.entry.js +0 -2
  304. package/dist/pine-core/p-ef9c539e.system.entry.js.map +0 -1
  305. package/dist/pine-core/p-fce519e3.system.entry.js.map +0 -1
  306. package/dist/pine-core/p-kYQszSpu.system.js.map +0 -1
  307. /package/dist/pine-core/{p-2aac4495.system.entry.js.map → p-15ac22bd.system.entry.js.map} +0 -0
  308. /package/dist/pine-core/{p-425144ae.entry.js.map → p-1cc2fe8d.entry.js.map} +0 -0
  309. /package/dist/pine-core/{p-0ac54273.entry.js.map → p-276f774a.entry.js.map} +0 -0
  310. /package/dist/pine-core/{p-ce069162.entry.js.map → p-32f65e48.entry.js.map} +0 -0
  311. /package/dist/pine-core/{p-7d7dce2c.system.entry.js.map → p-4232520f.system.entry.js.map} +0 -0
  312. /package/dist/pine-core/{p-b46f66e8.system.entry.js.map → p-45c1f3ea.system.entry.js.map} +0 -0
  313. /package/dist/pine-core/{p-5abc5d82.system.entry.js.map → p-49c2e2ce.system.entry.js.map} +0 -0
  314. /package/dist/pine-core/{p-b1a7a0b2.entry.js.map → p-4de64b1f.entry.js.map} +0 -0
  315. /package/dist/pine-core/{p-0b52923b.system.entry.js.map → p-52c5ced3.system.entry.js.map} +0 -0
  316. /package/dist/pine-core/{p-3815f565.entry.js.map → p-593cee44.entry.js.map} +0 -0
  317. /package/dist/pine-core/{p-73bce0bf.entry.js.map → p-5a7b25d0.entry.js.map} +0 -0
  318. /package/dist/pine-core/{p-48ed8147.entry.js.map → p-632e398f.entry.js.map} +0 -0
  319. /package/dist/pine-core/{p-957647f9.entry.js.map → p-663abd80.entry.js.map} +0 -0
  320. /package/dist/pine-core/{p-23111b1c.system.entry.js.map → p-6980edfe.system.entry.js.map} +0 -0
  321. /package/dist/pine-core/{p-c9965216.system.entry.js.map → p-6fbe6be4.system.entry.js.map} +0 -0
  322. /package/dist/pine-core/{p-bd18b9bf.system.entry.js.map → p-77d4f274.system.entry.js.map} +0 -0
  323. /package/dist/pine-core/{p-78246e05.entry.js.map → p-85ce731b.entry.js.map} +0 -0
  324. /package/dist/pine-core/{p-b1820970.system.entry.js.map → p-87cee4a0.system.entry.js.map} +0 -0
  325. /package/dist/pine-core/{p-fbd8ae50.entry.js.map → p-88686193.entry.js.map} +0 -0
  326. /package/dist/pine-core/{p-b09bde5c.system.entry.js.map → p-8ab66dbc.system.entry.js.map} +0 -0
  327. /package/dist/pine-core/{p-7a11a6c7.entry.js.map → p-8f935480.entry.js.map} +0 -0
  328. /package/dist/pine-core/{p-3f05d72e.system.entry.js.map → p-9e3e441c.system.entry.js.map} +0 -0
  329. /package/dist/pine-core/{p-3cd53462.entry.js.map → p-9e8296fc.entry.js.map} +0 -0
  330. /package/dist/pine-core/{p-15e554ae.entry.js.map → p-a30edeb1.entry.js.map} +0 -0
  331. /package/dist/pine-core/{p-d2b2caa2.system.entry.js.map → p-b6f57c0f.system.entry.js.map} +0 -0
  332. /package/dist/pine-core/{p-13105538.system.entry.js.map → p-f795d3fe.system.entry.js.map} +0 -0
  333. /package/dist/pine-core/{p-2d21bc31.entry.js.map → p-f8a2aedd.entry.js.map} +0 -0
  334. /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-10T20:18:26",
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",
@@ -17100,6 +17129,35 @@
17100
17129
  "getter": false,
17101
17130
  "setter": false
17102
17131
  },
17132
+ {
17133
+ "name": "hideSelectedItems",
17134
+ "type": "boolean",
17135
+ "complexType": {
17136
+ "original": "boolean",
17137
+ "resolved": "boolean",
17138
+ "references": {}
17139
+ },
17140
+ "mutable": false,
17141
+ "attr": "hide-selected-items",
17142
+ "reflectToAttr": false,
17143
+ "docs": "Hides the selected items summary section in the dropdown panel.",
17144
+ "docsTags": [
17145
+ {
17146
+ "name": "default",
17147
+ "text": "false"
17148
+ }
17149
+ ],
17150
+ "default": "false",
17151
+ "values": [
17152
+ {
17153
+ "type": "boolean"
17154
+ }
17155
+ ],
17156
+ "optional": false,
17157
+ "required": false,
17158
+ "getter": false,
17159
+ "setter": false
17160
+ },
17103
17161
  {
17104
17162
  "name": "invalid",
17105
17163
  "type": "boolean",
@@ -17388,6 +17446,35 @@
17388
17446
  "getter": false,
17389
17447
  "setter": false
17390
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
+ },
17391
17478
  {
17392
17479
  "name": "triggerWidth",
17393
17480
  "type": "string",
@@ -17447,6 +17534,28 @@
17447
17534
  }
17448
17535
  ],
17449
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
+ },
17450
17559
  {
17451
17560
  "name": "setFocus",
17452
17561
  "returns": {
@@ -17511,6 +17620,20 @@
17511
17620
  "docs": "Emitted when a new option is created.",
17512
17621
  "docsTags": []
17513
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
+ },
17514
17637
  {
17515
17638
  "event": "pdsMultiselectLoadOptions",
17516
17639
  "detail": "MultiselectLoadOptionsEventDetail",
@@ -20738,6 +20861,35 @@
20738
20861
  "getter": false,
20739
20862
  "setter": false
20740
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
+ },
20741
20893
  {
20742
20894
  "name": "fixedColumn",
20743
20895
  "type": "boolean",
@@ -20839,20 +20991,6 @@
20839
20991
  ],
20840
20992
  "methods": [],
20841
20993
  "events": [
20842
- {
20843
- "event": "pdsTableSelect",
20844
- "detail": "{ rowIndex: number; isSelected: boolean; }",
20845
- "bubbles": true,
20846
- "complexType": {
20847
- "original": "{ rowIndex: number; isSelected: boolean }",
20848
- "resolved": "{ rowIndex: number; isSelected: boolean; }",
20849
- "references": {}
20850
- },
20851
- "cancelable": true,
20852
- "composed": true,
20853
- "docs": "Event that is emitted when the checkbox is clicked, carrying the rowIndex and selected value.",
20854
- "docsTags": []
20855
- },
20856
20994
  {
20857
20995
  "event": "pdsTableSelectAll",
20858
20996
  "detail": "{ isSelected: boolean; }",
@@ -21001,7 +21139,7 @@
21001
21139
  "mutable": false,
21002
21140
  "attr": "truncate",
21003
21141
  "reflectToAttr": false,
21004
- "docs": "Truncates content to a max width of 100px and adds an ellipsis.",
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.",
21005
21143
  "docsTags": [],
21006
21144
  "values": [
21007
21145
  {
@@ -22022,7 +22160,7 @@
22022
22160
  "mutable": false,
22023
22161
  "attr": "truncate",
22024
22162
  "reflectToAttr": true,
22025
- "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.",
22026
22164
  "docsTags": [],
22027
22165
  "values": [
22028
22166
  {
@@ -1,4 +1,4 @@
1
- /* pds-icons v9.15.0, ES Modules */
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-D094LgxJ.js.map
18
+ //# sourceMappingURL=index-BFkDH5XU.js.map
19
19
 
20
- //# sourceMappingURL=index-D094LgxJ.js.map
20
+ //# sourceMappingURL=index-BFkDH5XU.js.map