@pine-ds/core 3.4.3 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (588) hide show
  1. package/components/floating-ui.dom.js +180 -4
  2. package/components/floating-ui.dom.js.map +1 -1
  3. package/components/index2.js +1 -1
  4. package/components/index2.js.map +1 -1
  5. package/components/mock-pds-modal.js +1 -1
  6. package/components/pds-box2.js +4 -2
  7. package/components/pds-box2.js.map +1 -1
  8. package/components/pds-button2.js +1 -1
  9. package/components/pds-button2.js.map +1 -1
  10. package/components/pds-input.js +3 -2
  11. package/components/pds-input.js.map +1 -1
  12. package/components/pds-link2.js +2 -2
  13. package/components/pds-loader2.js +1 -1
  14. package/components/pds-loader2.js.map +1 -1
  15. package/components/pds-modal-content.js +2 -2
  16. package/components/pds-modal-footer.js +1 -1
  17. package/components/pds-modal-header.js +1 -1
  18. package/components/pds-modal.js +2 -2
  19. package/components/pds-popover.js +1 -1
  20. package/components/pds-progress.js +1 -1
  21. package/components/pds-property.js +1 -1
  22. package/components/pds-radio.js +3 -3
  23. package/components/pds-row.js +1 -1
  24. package/components/pds-select.js +1 -1
  25. package/components/pds-select.js.map +1 -1
  26. package/components/pds-sortable-item.js +1 -1
  27. package/components/pds-sortable.js +1 -1
  28. package/components/pds-switch.js +3 -3
  29. package/components/pds-tab.js +4 -4
  30. package/components/pds-tab.js.map +1 -1
  31. package/components/pds-table-body.js +1 -1
  32. package/components/pds-table-body.js.map +1 -1
  33. package/components/pds-table-cell2.js +66 -8
  34. package/components/pds-table-cell2.js.map +1 -1
  35. package/components/pds-table-head-cell2.js +67 -9
  36. package/components/pds-table-head-cell2.js.map +1 -1
  37. package/components/pds-table-head.js +1 -1
  38. package/components/pds-table-head.js.map +1 -1
  39. package/components/pds-table-row.js +1 -1
  40. package/components/pds-table-row.js.map +1 -1
  41. package/components/pds-table.js +106 -4
  42. package/components/pds-table.js.map +1 -1
  43. package/components/pds-tabpanel.js +1 -1
  44. package/components/pds-tabs.js +1 -1
  45. package/components/pds-text2.js +1 -1
  46. package/components/pds-textarea.js +7 -6
  47. package/components/pds-textarea.js.map +1 -1
  48. package/components/pds-tooltip.js +93 -159
  49. package/components/pds-tooltip.js.map +1 -1
  50. package/dist/cjs/{floating-ui.dom-Bz4BD-cr.js → floating-ui.dom-DTAy35nv.js} +182 -5
  51. package/dist/{esm-es5/floating-ui.dom-D_FwyeSw.js.map → cjs/floating-ui.dom-DTAy35nv.js.map} +1 -1
  52. package/dist/cjs/{index-BfqrB2cC.js → index-DVaLegMK.js} +3 -3
  53. package/dist/cjs/index-DVaLegMK.js.map +1 -0
  54. package/dist/cjs/loader.cjs.js +1 -1
  55. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  56. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  57. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  58. package/dist/cjs/pds-box.cjs.entry.js +3 -2
  59. package/dist/cjs/pds-box.cjs.entry.js.map +1 -1
  60. package/dist/cjs/pds-box.entry.cjs.js.map +1 -1
  61. package/dist/cjs/pds-button.cjs.entry.js +2 -2
  62. package/dist/cjs/pds-button.cjs.entry.js.map +1 -1
  63. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  64. package/dist/cjs/pds-checkbox.cjs.entry.js +1 -1
  65. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-combobox.cjs.entry.js +1 -1
  67. package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
  68. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1 -1
  69. package/dist/cjs/pds-input.cjs.entry.js +3 -3
  70. package/dist/cjs/pds-input.cjs.entry.js.map +1 -1
  71. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  72. package/dist/cjs/pds-link.cjs.entry.js +3 -3
  73. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  74. package/dist/cjs/pds-loader.cjs.entry.js.map +1 -1
  75. package/dist/cjs/pds-loader.entry.cjs.js.map +1 -1
  76. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  77. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  78. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  79. package/dist/cjs/pds-modal.cjs.entry.js +2 -2
  80. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  81. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  82. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  83. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  84. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  85. package/dist/cjs/pds-select.cjs.entry.js +2 -2
  86. package/dist/cjs/pds-select.cjs.entry.js.map +1 -1
  87. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  88. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  89. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-switch.cjs.entry.js +4 -4
  91. package/dist/cjs/pds-tab.cjs.entry.js +4 -4
  92. package/dist/cjs/pds-tab.cjs.entry.js.map +1 -1
  93. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  94. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  95. package/dist/cjs/pds-table-body.cjs.entry.js.map +1 -1
  96. package/dist/cjs/pds-table-body.entry.cjs.js.map +1 -1
  97. package/dist/cjs/pds-table-cell.cjs.entry.js +65 -8
  98. package/dist/cjs/pds-table-cell.cjs.entry.js.map +1 -1
  99. package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
  100. package/dist/cjs/pds-table-head-cell.cjs.entry.js +67 -10
  101. package/dist/cjs/pds-table-head-cell.cjs.entry.js.map +1 -1
  102. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  103. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  104. package/dist/cjs/pds-table-head.cjs.entry.js.map +1 -1
  105. package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
  106. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  107. package/dist/cjs/pds-table-row.cjs.entry.js.map +1 -1
  108. package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
  109. package/dist/cjs/pds-table.cjs.entry.js +106 -4
  110. package/dist/cjs/pds-table.cjs.entry.js.map +1 -1
  111. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  112. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  113. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  114. package/dist/cjs/pds-text.cjs.entry.js +1 -1
  115. package/dist/cjs/pds-textarea.cjs.entry.js +7 -7
  116. package/dist/cjs/pds-textarea.cjs.entry.js.map +1 -1
  117. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  118. package/dist/cjs/pds-tooltip.cjs.entry.js +93 -158
  119. package/dist/cjs/pds-tooltip.cjs.entry.js.map +1 -1
  120. package/dist/cjs/pds-tooltip.entry.cjs.js.map +1 -1
  121. package/dist/cjs/pine-core.cjs.js +1 -1
  122. package/dist/collection/components/pds-box/pds-box.css +4 -0
  123. package/dist/collection/components/pds-box/pds-box.js +24 -1
  124. package/dist/collection/components/pds-box/pds-box.js.map +1 -1
  125. package/dist/collection/components/pds-button/pds-button.js +2 -1
  126. package/dist/collection/components/pds-button/pds-button.js.map +1 -1
  127. package/dist/collection/components/pds-input/pds-input.css +13 -0
  128. package/dist/collection/components/pds-input/pds-input.js +20 -1
  129. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  130. package/dist/collection/components/pds-input/stories/pds-input.stories.js +10 -1
  131. package/dist/collection/components/pds-link/pds-link.js +2 -2
  132. package/dist/collection/components/pds-loader/pds-loader.js +2 -1
  133. package/dist/collection/components/pds-loader/pds-loader.js.map +1 -1
  134. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  135. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  136. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  137. package/dist/collection/components/pds-modal/pds-modal.js +2 -2
  138. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  139. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  140. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  141. package/dist/collection/components/pds-property/pds-property.js +1 -1
  142. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  143. package/dist/collection/components/pds-row/pds-row.js +1 -1
  144. package/dist/collection/components/pds-select/pds-select.js +2 -2
  145. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  146. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  147. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  148. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  149. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  150. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js.map +1 -1
  151. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +16 -0
  152. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +83 -7
  153. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +1 -1
  154. package/dist/collection/components/pds-table/pds-table-cell/stories/pds-table-cell.stories.js +23 -4
  155. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  156. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +1 -1
  157. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +18 -1
  158. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +84 -8
  159. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  160. package/dist/collection/components/pds-table/pds-table-head-cell/stories/pds-table-head-cell.stories.js +13 -4
  161. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  162. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +1 -1
  163. package/dist/collection/components/pds-table/pds-table.css +80 -11
  164. package/dist/collection/components/pds-table/pds-table.js +105 -3
  165. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  166. package/dist/collection/components/pds-table/stories/pds-table.stories.js +45 -0
  167. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +6 -6
  168. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  169. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  170. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  171. package/dist/collection/components/pds-text/pds-text.js +1 -1
  172. package/dist/collection/components/pds-textarea/pds-textarea.css +13 -0
  173. package/dist/collection/components/pds-textarea/pds-textarea.js +25 -6
  174. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  175. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +4 -0
  176. package/dist/collection/components/pds-tooltip/pds-tooltip.css +0 -1
  177. package/dist/collection/components/pds-tooltip/pds-tooltip.js +102 -78
  178. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
  179. package/dist/docs.json +248 -13
  180. package/dist/esm/{floating-ui.dom-D_FwyeSw.js → floating-ui.dom-DbQzNDdQ.js} +182 -6
  181. package/dist/esm/{floating-ui.dom-D_FwyeSw.js.map → floating-ui.dom-DbQzNDdQ.js.map} +1 -1
  182. package/dist/esm/{index-CzVv99mW.js → index-DrJ5r5Pu.js} +3 -3
  183. package/dist/esm/index-DrJ5r5Pu.js.map +1 -0
  184. package/dist/esm/loader.js +1 -1
  185. package/dist/esm/mock-pds-modal.entry.js +1 -1
  186. package/dist/esm/pds-accordion.entry.js +1 -1
  187. package/dist/esm/pds-avatar.entry.js +1 -1
  188. package/dist/esm/pds-box.entry.js +3 -2
  189. package/dist/esm/pds-box.entry.js.map +1 -1
  190. package/dist/esm/pds-button.entry.js +2 -2
  191. package/dist/esm/pds-button.entry.js.map +1 -1
  192. package/dist/esm/pds-checkbox.entry.js +1 -1
  193. package/dist/esm/pds-chip.entry.js +1 -1
  194. package/dist/esm/pds-combobox.entry.js +1 -1
  195. package/dist/esm/pds-copytext.entry.js +1 -1
  196. package/dist/esm/pds-dropdown-menu.entry.js +1 -1
  197. package/dist/esm/pds-input.entry.js +3 -3
  198. package/dist/esm/pds-input.entry.js.map +1 -1
  199. package/dist/esm/pds-link.entry.js +3 -3
  200. package/dist/esm/pds-loader.entry.js +1 -1
  201. package/dist/esm/pds-loader.entry.js.map +1 -1
  202. package/dist/esm/pds-modal-content.entry.js +2 -2
  203. package/dist/esm/pds-modal-footer.entry.js +1 -1
  204. package/dist/esm/pds-modal-header.entry.js +1 -1
  205. package/dist/esm/pds-modal.entry.js +2 -2
  206. package/dist/esm/pds-popover.entry.js +1 -1
  207. package/dist/esm/pds-progress.entry.js +1 -1
  208. package/dist/esm/pds-property.entry.js +1 -1
  209. package/dist/esm/pds-radio.entry.js +4 -4
  210. package/dist/esm/pds-row.entry.js +1 -1
  211. package/dist/esm/pds-select.entry.js +2 -2
  212. package/dist/esm/pds-select.entry.js.map +1 -1
  213. package/dist/esm/pds-sortable-item.entry.js +2 -2
  214. package/dist/esm/pds-sortable.entry.js +1 -1
  215. package/dist/esm/pds-switch.entry.js +4 -4
  216. package/dist/esm/pds-tab.entry.js +4 -4
  217. package/dist/esm/pds-tab.entry.js.map +1 -1
  218. package/dist/esm/pds-table-body.entry.js +1 -1
  219. package/dist/esm/pds-table-body.entry.js.map +1 -1
  220. package/dist/esm/pds-table-cell.entry.js +65 -8
  221. package/dist/esm/pds-table-cell.entry.js.map +1 -1
  222. package/dist/esm/pds-table-head-cell.entry.js +67 -10
  223. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  224. package/dist/esm/pds-table-head.entry.js +1 -1
  225. package/dist/esm/pds-table-head.entry.js.map +1 -1
  226. package/dist/esm/pds-table-row.entry.js +1 -1
  227. package/dist/esm/pds-table-row.entry.js.map +1 -1
  228. package/dist/esm/pds-table.entry.js +106 -4
  229. package/dist/esm/pds-table.entry.js.map +1 -1
  230. package/dist/esm/pds-tabpanel.entry.js +1 -1
  231. package/dist/esm/pds-tabs.entry.js +1 -1
  232. package/dist/esm/pds-text.entry.js +1 -1
  233. package/dist/esm/pds-textarea.entry.js +7 -7
  234. package/dist/esm/pds-textarea.entry.js.map +1 -1
  235. package/dist/esm/pds-tooltip.entry.js +93 -158
  236. package/dist/esm/pds-tooltip.entry.js.map +1 -1
  237. package/dist/esm/pine-core.js +1 -1
  238. package/dist/esm-es5/floating-ui.dom-DbQzNDdQ.js +2 -0
  239. package/dist/{cjs/floating-ui.dom-Bz4BD-cr.js.map → esm-es5/floating-ui.dom-DbQzNDdQ.js.map} +1 -1
  240. package/dist/esm-es5/{index-CzVv99mW.js → index-DrJ5r5Pu.js} +1 -1
  241. package/dist/esm-es5/index-DrJ5r5Pu.js.map +1 -0
  242. package/dist/esm-es5/loader.js +1 -1
  243. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  244. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  245. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  246. package/dist/esm-es5/pds-box.entry.js +1 -1
  247. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  248. package/dist/esm-es5/pds-button.entry.js +1 -1
  249. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  250. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  251. package/dist/esm-es5/pds-chip.entry.js +1 -1
  252. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  253. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  254. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  255. package/dist/esm-es5/pds-input.entry.js +1 -1
  256. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  257. package/dist/esm-es5/pds-link.entry.js +1 -1
  258. package/dist/esm-es5/pds-loader.entry.js +1 -1
  259. package/dist/esm-es5/pds-loader.entry.js.map +1 -1
  260. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  261. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  262. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  263. package/dist/esm-es5/pds-modal.entry.js +1 -1
  264. package/dist/esm-es5/pds-popover.entry.js +1 -1
  265. package/dist/esm-es5/pds-progress.entry.js +1 -1
  266. package/dist/esm-es5/pds-property.entry.js +1 -1
  267. package/dist/esm-es5/pds-radio.entry.js +1 -1
  268. package/dist/esm-es5/pds-row.entry.js +1 -1
  269. package/dist/esm-es5/pds-select.entry.js +1 -1
  270. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  271. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  272. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  273. package/dist/esm-es5/pds-switch.entry.js +1 -1
  274. package/dist/esm-es5/pds-tab.entry.js +1 -1
  275. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  276. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  277. package/dist/esm-es5/pds-table-body.entry.js.map +1 -1
  278. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  279. package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
  280. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  281. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  282. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  283. package/dist/esm-es5/pds-table-head.entry.js.map +1 -1
  284. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  285. package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
  286. package/dist/esm-es5/pds-table.entry.js +1 -1
  287. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  288. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  289. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  290. package/dist/esm-es5/pds-text.entry.js +1 -1
  291. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  292. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  293. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  294. package/dist/esm-es5/pds-tooltip.entry.js.map +1 -1
  295. package/dist/esm-es5/pine-core.js +1 -1
  296. package/dist/pine-core/{p-209b1d69.entry.js → p-00616fc9.entry.js} +2 -2
  297. package/dist/pine-core/p-00616fc9.entry.js.map +1 -0
  298. package/dist/pine-core/p-02326ac3.entry.js +2 -0
  299. package/dist/pine-core/p-02326ac3.entry.js.map +1 -0
  300. package/dist/pine-core/{p-19d08886.system.entry.js → p-023d8b71.system.entry.js} +2 -2
  301. package/dist/pine-core/p-0485aa93.system.entry.js +2 -0
  302. package/dist/pine-core/{p-XHvXi3U6.system.js.map → p-0KTU2Jt-.system.js.map} +1 -1
  303. package/dist/pine-core/p-0TIvNV5c.system.js.map +1 -0
  304. package/dist/pine-core/{p-380d1056.entry.js → p-0d9e28a2.entry.js} +2 -2
  305. package/dist/pine-core/p-0d9e28a2.entry.js.map +1 -0
  306. package/dist/pine-core/{p-81a28f54.system.entry.js → p-0de9f8da.system.entry.js} +2 -2
  307. package/dist/pine-core/{p-81a28f54.system.entry.js.map → p-0de9f8da.system.entry.js.map} +1 -1
  308. package/dist/pine-core/{p-8096b988.system.entry.js → p-14a52961.system.entry.js} +2 -2
  309. package/dist/pine-core/{p-4066a9c0.system.entry.js → p-2186e5d4.system.entry.js} +2 -2
  310. package/dist/pine-core/p-232a2043.entry.js +2 -0
  311. package/dist/pine-core/{p-c7075f11.entry.js → p-25190921.entry.js} +2 -2
  312. package/dist/pine-core/{p-487552a9.system.entry.js → p-297afc49.system.entry.js} +2 -2
  313. package/dist/pine-core/{p-03d17841.system.entry.js → p-2e19f167.system.entry.js} +2 -2
  314. package/dist/pine-core/{p-a2d16624.entry.js → p-349a8869.entry.js} +2 -2
  315. package/dist/pine-core/p-44087d1c.entry.js +2 -0
  316. package/dist/pine-core/{p-c652847a.entry.js.map → p-44087d1c.entry.js.map} +1 -1
  317. package/dist/pine-core/{p-df15e16a.entry.js → p-464dd476.entry.js} +2 -2
  318. package/dist/pine-core/{p-df15e16a.entry.js.map → p-464dd476.entry.js.map} +1 -1
  319. package/dist/pine-core/{p-0a4fc9c7.entry.js → p-47670150.entry.js} +3 -3
  320. package/dist/pine-core/{p-65275835.system.entry.js → p-48b658fc.system.entry.js} +2 -2
  321. package/dist/pine-core/p-48b658fc.system.entry.js.map +1 -0
  322. package/dist/pine-core/{p-042ee55c.entry.js → p-4bbf3e31.entry.js} +2 -2
  323. package/dist/pine-core/p-4bbf3e31.entry.js.map +1 -0
  324. package/dist/pine-core/{p-c1a1475e.entry.js → p-4deb7b8c.entry.js} +2 -2
  325. package/dist/pine-core/{p-7c867f1b.entry.js → p-503cab1f.entry.js} +2 -2
  326. package/dist/pine-core/p-50c9e865.entry.js +2 -0
  327. package/dist/pine-core/p-50c9e865.entry.js.map +1 -0
  328. package/dist/pine-core/{p-4e5b9d19.entry.js → p-52d37cc1.entry.js} +2 -2
  329. package/dist/pine-core/{p-f9bd0bc2.system.entry.js → p-54183d70.system.entry.js} +2 -2
  330. package/dist/pine-core/p-5708f95a.entry.js +2 -0
  331. package/dist/pine-core/{p-f647c1af.system.entry.js → p-5aed29fe.system.entry.js} +2 -2
  332. package/dist/pine-core/{p-d08ecd18.system.entry.js → p-5da82e8c.system.entry.js} +2 -2
  333. package/dist/pine-core/{p-ed94947b.entry.js → p-5e8badb9.entry.js} +2 -2
  334. package/dist/pine-core/{p-126197e5.entry.js → p-651861ff.entry.js} +2 -2
  335. package/dist/pine-core/{p-8896d43a.entry.js → p-68b5665a.entry.js} +2 -2
  336. package/dist/pine-core/p-68b5665a.entry.js.map +1 -0
  337. package/dist/pine-core/{p-276a6a8b.system.entry.js → p-6db1e029.system.entry.js} +2 -2
  338. package/dist/pine-core/p-6db1e029.system.entry.js.map +1 -0
  339. package/dist/pine-core/{p-8cb99f2f.entry.js → p-6f4a6d0b.entry.js} +2 -2
  340. package/dist/pine-core/p-7004d1ea.system.entry.js +2 -0
  341. package/dist/pine-core/p-7004d1ea.system.entry.js.map +1 -0
  342. package/dist/pine-core/{p-c1115d78.system.entry.js → p-71169b66.system.entry.js} +2 -2
  343. package/dist/pine-core/p-71169b66.system.entry.js.map +1 -0
  344. package/dist/pine-core/{p-3e6229cc.entry.js → p-72053224.entry.js} +2 -2
  345. package/dist/pine-core/{p-14b424ab.system.entry.js → p-72b05928.system.entry.js} +2 -2
  346. package/dist/pine-core/{p-1858ad6d.system.entry.js → p-73158adf.system.entry.js} +2 -2
  347. package/dist/pine-core/{p-1858ad6d.system.entry.js.map → p-73158adf.system.entry.js.map} +1 -1
  348. package/dist/pine-core/p-77336705.entry.js +2 -0
  349. package/dist/pine-core/p-77336705.entry.js.map +1 -0
  350. package/dist/pine-core/{p-0dbb2ae9.entry.js → p-79e2782b.entry.js} +2 -2
  351. package/dist/pine-core/p-7cb4f0de.entry.js +2 -0
  352. package/dist/pine-core/p-7cb4f0de.entry.js.map +1 -0
  353. package/dist/pine-core/{p-aafb6e06.system.entry.js → p-8722865f.system.entry.js} +2 -2
  354. package/dist/pine-core/p-8722865f.system.entry.js.map +1 -0
  355. package/dist/pine-core/p-884b9ae6.system.entry.js +2 -0
  356. package/dist/pine-core/p-884b9ae6.system.entry.js.map +1 -0
  357. package/dist/pine-core/p-8999b63d.system.entry.js +2 -0
  358. package/dist/pine-core/p-8999b63d.system.entry.js.map +1 -0
  359. package/dist/pine-core/{p-89d9f273.system.entry.js → p-8ab7f0d7.system.entry.js} +3 -3
  360. package/dist/pine-core/{p-b956922a.entry.js → p-8d7abc83.entry.js} +2 -2
  361. package/dist/pine-core/{p-2aad0209.system.entry.js → p-92c52409.system.entry.js} +2 -2
  362. package/dist/pine-core/p-96a89cd5.system.entry.js +2 -0
  363. package/dist/pine-core/p-96a89cd5.system.entry.js.map +1 -0
  364. package/dist/pine-core/{p-c1f5148f.entry.js → p-98fe56d9.entry.js} +2 -2
  365. package/dist/pine-core/{p-B4ww2WM0.system.js.map → p-B1FQkx7R.system.js.map} +1 -1
  366. package/dist/pine-core/{p-CbDQeXQ4.system.js.map → p-B1fiSdbt.system.js.map} +1 -1
  367. package/dist/pine-core/{p-DiBM9O5Q.system.js → p-BEn3hirk.system.js} +1 -1
  368. package/dist/pine-core/p-BEn3hirk.system.js.map +1 -0
  369. package/dist/pine-core/p-BKFboaI5.system.js.map +1 -0
  370. package/dist/pine-core/p-BOHu_LEs.system.js.map +1 -0
  371. package/dist/pine-core/p-BOmQOnQe.system.js +2 -0
  372. package/dist/pine-core/{p-ZCkmy1Gu.system.js.map → p-BOmQOnQe.system.js.map} +1 -1
  373. package/dist/pine-core/p-BRygGju8.system.js.map +1 -0
  374. package/dist/pine-core/{p-REBgf8JA.system.js.map → p-BVKCNX0X.system.js.map} +1 -1
  375. package/dist/pine-core/{p-DKuFjXiD.system.js.map → p-CCQUgOoR.system.js.map} +1 -1
  376. package/dist/pine-core/{p-BCZ4LK15.system.js.map → p-CD_nPb2F.system.js.map} +1 -1
  377. package/dist/pine-core/{p-DMNp4slx.system.js.map → p-CE6b_LzB.system.js.map} +1 -1
  378. package/dist/pine-core/p-CJT--ZXC.system.js.map +1 -0
  379. package/dist/pine-core/{p-DRqkTTfb.system.js.map → p-CLoi4eKt.system.js.map} +1 -1
  380. package/dist/pine-core/{p-B0PUl1_1.system.js.map → p-CQ8f8GnD.system.js.map} +1 -1
  381. package/dist/pine-core/{p-C3lnYhcV.system.js.map → p-CWdEolqa.system.js.map} +1 -1
  382. package/dist/pine-core/{p-BY7O1nGC.system.js.map → p-CcXaBX2A.system.js.map} +1 -1
  383. package/dist/pine-core/p-CgyVIfOY.system.js.map +1 -0
  384. package/dist/pine-core/{p-pm8ElBzm.system.js.map → p-Cmzqpibo.system.js.map} +1 -1
  385. package/dist/pine-core/{p-DQnK6lQ2.system.js.map → p-CpdNWpfd.system.js.map} +1 -1
  386. package/dist/pine-core/{p-CoHBlcHu.system.js.map → p-CqK-uhv8.system.js.map} +1 -1
  387. package/dist/pine-core/{p-KkT5zjJU.system.js.map → p-D05FrqXr.system.js.map} +1 -1
  388. package/dist/pine-core/{p-BdBU6s5P.system.js.map → p-D9_z2w3q.system.js.map} +1 -1
  389. package/dist/pine-core/{p-B_c-HOvq.system.js.map → p-DAwJ242E.system.js.map} +1 -1
  390. package/dist/pine-core/{p-CNOeJ6ra.system.js.map → p-DHmJZxQk.system.js.map} +1 -1
  391. package/dist/pine-core/p-DJekRkSL.system.js.map +1 -0
  392. package/dist/pine-core/{p-lMetQ5Q0.system.js.map → p-DNYl_6t_.system.js.map} +1 -1
  393. package/dist/pine-core/p-DbQzNDdQ.js +2 -0
  394. package/dist/pine-core/{p-D_FwyeSw.js.map → p-DbQzNDdQ.js.map} +1 -1
  395. package/dist/pine-core/p-De9tROL-.system.js +1 -1
  396. package/dist/pine-core/{p-PgQPKVDh.system.js.map → p-Df_3qA_L.system.js.map} +1 -1
  397. package/dist/pine-core/{p-DCdSlcTO.system.js.map → p-Dh7jcLgJ.system.js.map} +1 -1
  398. package/dist/pine-core/{p-CzVv99mW.js → p-DrJ5r5Pu.js} +1 -1
  399. package/dist/pine-core/p-DrJ5r5Pu.js.map +1 -0
  400. package/dist/pine-core/p-Dt10r3RZ.system.js.map +1 -0
  401. package/dist/pine-core/p-IG5YumI3.system.js.map +1 -0
  402. package/dist/pine-core/{p-C5Wo1bN2.system.js.map → p-IIl2cTlj.system.js.map} +1 -1
  403. package/dist/pine-core/p-IhWWc2L_.system.js.map +1 -0
  404. package/dist/pine-core/{p-EytFbMH4.system.js.map → p-Kj_j7PHx.system.js.map} +1 -1
  405. package/dist/pine-core/p-MBv7PsKc.system.js.map +1 -0
  406. package/dist/pine-core/{p-CG_aggl0.system.js.map → p-UsEwlBJ0.system.js.map} +1 -1
  407. package/dist/pine-core/{p-DQ-QGnGf.system.js.map → p-_E9ZEzfO.system.js.map} +1 -1
  408. package/dist/pine-core/{p-3f83d4c4.system.entry.js → p-a04556e4.system.entry.js} +2 -2
  409. package/dist/pine-core/{p-0199e3e9.system.entry.js → p-a1b51557.system.entry.js} +2 -2
  410. package/dist/pine-core/{p-51e463bf.entry.js → p-a24c46e4.entry.js} +2 -2
  411. package/dist/pine-core/{p-9860d0a8.system.entry.js → p-aa645f28.system.entry.js} +2 -2
  412. package/dist/pine-core/p-ac37cf0d.entry.js +2 -0
  413. package/dist/pine-core/p-ac37cf0d.entry.js.map +1 -0
  414. package/dist/pine-core/{p-c16d01cc.entry.js → p-b6ea3332.entry.js} +2 -2
  415. package/dist/pine-core/{p-c721e8cf.entry.js → p-ba187a35.entry.js} +2 -2
  416. package/dist/pine-core/p-bb8ef74a.system.entry.js +2 -0
  417. package/dist/pine-core/p-be939cb0.entry.js +2 -0
  418. package/dist/pine-core/p-be939cb0.entry.js.map +1 -0
  419. package/dist/pine-core/{p-b2b405ca.system.entry.js → p-c13ef6a7.system.entry.js} +2 -2
  420. package/dist/pine-core/p-c2ffb466.system.entry.js +2 -0
  421. package/dist/pine-core/{p-4a658a86.system.entry.js → p-c4d6fe50.system.entry.js} +2 -2
  422. package/dist/pine-core/p-c4d6fe50.system.entry.js.map +1 -0
  423. package/dist/pine-core/{p-978e722a.entry.js → p-c6badcf8.entry.js} +2 -2
  424. package/dist/pine-core/{p-064e3d73.entry.js → p-c8122bea.entry.js} +2 -2
  425. package/dist/pine-core/p-cd785026.system.entry.js +2 -0
  426. package/dist/pine-core/{p-c3f32f26.system.entry.js → p-d714f68f.system.entry.js} +2 -2
  427. package/dist/pine-core/p-da367b5e.system.entry.js +2 -0
  428. package/dist/pine-core/p-da367b5e.system.entry.js.map +1 -0
  429. package/dist/pine-core/{p-6bd5811c.system.entry.js → p-deb8a499.system.entry.js} +2 -2
  430. package/dist/pine-core/p-deb8a499.system.entry.js.map +1 -0
  431. package/dist/pine-core/{p-6d601fc2.system.entry.js → p-dfc5ab34.system.entry.js} +2 -2
  432. package/dist/pine-core/{p-f35a5afa.entry.js → p-e2887e78.entry.js} +2 -2
  433. package/dist/pine-core/p-e5ca5b8e.entry.js +2 -0
  434. package/dist/pine-core/p-e5ca5b8e.entry.js.map +1 -0
  435. package/dist/pine-core/{p-55bf6be2.system.entry.js → p-e65a7d1c.system.entry.js} +2 -2
  436. package/dist/pine-core/{p-ffe867ef.system.entry.js → p-e89cb1f2.system.entry.js} +2 -2
  437. package/dist/pine-core/p-efa788ea.entry.js +2 -0
  438. package/dist/pine-core/{p-280a0ec1.system.entry.js → p-f55b9f90.system.entry.js} +2 -2
  439. package/dist/pine-core/{p-1a5e79af.entry.js → p-f583e5d4.entry.js} +2 -2
  440. package/dist/pine-core/p-f583e5d4.entry.js.map +1 -0
  441. package/dist/pine-core/{p-6fd385ec.entry.js → p-f880adaa.entry.js} +2 -2
  442. package/dist/pine-core/{p-63ef55dd.entry.js → p-fb4058e6.entry.js} +2 -2
  443. package/dist/pine-core/p-fd091234.system.entry.js +2 -0
  444. package/dist/pine-core/p-fd091234.system.entry.js.map +1 -0
  445. package/dist/pine-core/{p-qjvXmIGJ.system.js.map → p-m6UZWRsP.system.js.map} +1 -1
  446. package/dist/pine-core/{p-DvZWnvRb.system.js.map → p-pQqXEKPh.system.js.map} +1 -1
  447. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  448. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  449. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  450. package/dist/pine-core/pds-loader.entry.esm.js.map +1 -1
  451. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  452. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  453. package/dist/pine-core/pds-table-body.entry.esm.js.map +1 -1
  454. package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
  455. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  456. package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
  457. package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
  458. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  459. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  460. package/dist/pine-core/pds-tooltip.entry.esm.js.map +1 -1
  461. package/dist/pine-core/pine-core.css +1 -1
  462. package/dist/pine-core/pine-core.esm.js +1 -1
  463. package/dist/types/components/pds-box/pds-box.d.ts +5 -0
  464. package/dist/types/components/pds-button/pds-button.d.ts +1 -0
  465. package/dist/types/components/pds-input/pds-input.d.ts +5 -0
  466. package/dist/types/components/pds-loader/pds-loader.d.ts +1 -0
  467. package/dist/types/components/pds-select/pds-select.d.ts +2 -1
  468. package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +15 -0
  469. package/dist/types/components/pds-table/pds-table-head-cell/pds-table-head-cell.d.ts +15 -0
  470. package/dist/types/components/pds-table/pds-table.d.ts +24 -0
  471. package/dist/types/components/pds-textarea/pds-textarea.d.ts +6 -1
  472. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +9 -12
  473. package/dist/types/components.d.ts +48 -28
  474. package/hydrate/index.js +561 -228
  475. package/hydrate/index.mjs +561 -228
  476. package/package.json +2 -2
  477. package/dist/cjs/index-BfqrB2cC.js.map +0 -1
  478. package/dist/esm/index-CzVv99mW.js.map +0 -1
  479. package/dist/esm-es5/floating-ui.dom-D_FwyeSw.js +0 -2
  480. package/dist/esm-es5/index-CzVv99mW.js.map +0 -1
  481. package/dist/pine-core/p-042ee55c.entry.js.map +0 -1
  482. package/dist/pine-core/p-13ac0852.entry.js +0 -2
  483. package/dist/pine-core/p-13ac0852.entry.js.map +0 -1
  484. package/dist/pine-core/p-1a5e79af.entry.js.map +0 -1
  485. package/dist/pine-core/p-209b1d69.entry.js.map +0 -1
  486. package/dist/pine-core/p-276a6a8b.system.entry.js.map +0 -1
  487. package/dist/pine-core/p-2fb60757.system.entry.js +0 -2
  488. package/dist/pine-core/p-2fb60757.system.entry.js.map +0 -1
  489. package/dist/pine-core/p-33016dd0.entry.js +0 -2
  490. package/dist/pine-core/p-380d1056.entry.js.map +0 -1
  491. package/dist/pine-core/p-3EWr6ZgL.system.js.map +0 -1
  492. package/dist/pine-core/p-41bf807f.system.entry.js +0 -2
  493. package/dist/pine-core/p-41bf807f.system.entry.js.map +0 -1
  494. package/dist/pine-core/p-4a658a86.system.entry.js.map +0 -1
  495. package/dist/pine-core/p-6438a29d.system.entry.js +0 -2
  496. package/dist/pine-core/p-65275835.system.entry.js.map +0 -1
  497. package/dist/pine-core/p-6bd5811c.system.entry.js.map +0 -1
  498. package/dist/pine-core/p-7eb4ac7c.system.entry.js +0 -2
  499. package/dist/pine-core/p-7eb4ac7c.system.entry.js.map +0 -1
  500. package/dist/pine-core/p-8896d43a.entry.js.map +0 -1
  501. package/dist/pine-core/p-91c6bd68.entry.js +0 -2
  502. package/dist/pine-core/p-91c6bd68.entry.js.map +0 -1
  503. package/dist/pine-core/p-94982c57.entry.js +0 -2
  504. package/dist/pine-core/p-94982c57.entry.js.map +0 -1
  505. package/dist/pine-core/p-B6IFMveo.system.js.map +0 -1
  506. package/dist/pine-core/p-BEky6idI.system.js.map +0 -1
  507. package/dist/pine-core/p-BmoX08WO.system.js.map +0 -1
  508. package/dist/pine-core/p-Bw9e5h_G.system.js.map +0 -1
  509. package/dist/pine-core/p-C36pvE-A.system.js.map +0 -1
  510. package/dist/pine-core/p-CMLxdmO2.system.js.map +0 -1
  511. package/dist/pine-core/p-CXLBzkzl.system.js.map +0 -1
  512. package/dist/pine-core/p-CmJBNVRO.system.js.map +0 -1
  513. package/dist/pine-core/p-CzVv99mW.js.map +0 -1
  514. package/dist/pine-core/p-D_FwyeSw.js +0 -2
  515. package/dist/pine-core/p-DdEbUZw3.system.js.map +0 -1
  516. package/dist/pine-core/p-DiBM9O5Q.system.js.map +0 -1
  517. package/dist/pine-core/p-Rj3B0bRw.system.js.map +0 -1
  518. package/dist/pine-core/p-ZCkmy1Gu.system.js +0 -2
  519. package/dist/pine-core/p-a7204f01.entry.js +0 -2
  520. package/dist/pine-core/p-a7204f01.entry.js.map +0 -1
  521. package/dist/pine-core/p-a7cb24c3.system.entry.js +0 -2
  522. package/dist/pine-core/p-a7cb24c3.system.entry.js.map +0 -1
  523. package/dist/pine-core/p-aafb6e06.system.entry.js.map +0 -1
  524. package/dist/pine-core/p-adf2449e.system.entry.js +0 -2
  525. package/dist/pine-core/p-adf2449e.system.entry.js.map +0 -1
  526. package/dist/pine-core/p-b649d711.entry.js +0 -2
  527. package/dist/pine-core/p-b649d711.entry.js.map +0 -1
  528. package/dist/pine-core/p-b9fe17b8.system.entry.js +0 -2
  529. package/dist/pine-core/p-b9fe17b8.system.entry.js.map +0 -1
  530. package/dist/pine-core/p-c1115d78.system.entry.js.map +0 -1
  531. package/dist/pine-core/p-c652847a.entry.js +0 -2
  532. package/dist/pine-core/p-c82c277f.entry.js +0 -2
  533. package/dist/pine-core/p-c82c277f.entry.js.map +0 -1
  534. package/dist/pine-core/p-c82d0a99.entry.js +0 -2
  535. package/dist/pine-core/p-ce0d9f05.system.entry.js +0 -2
  536. package/dist/pine-core/p-cf5506db.system.entry.js +0 -2
  537. package/dist/pine-core/p-d6d87fbc.system.entry.js +0 -2
  538. package/dist/pine-core/p-e05135c5.entry.js +0 -2
  539. package/dist/pine-core/p-e30601a6.entry.js +0 -2
  540. package/dist/pine-core/p-e30601a6.entry.js.map +0 -1
  541. /package/dist/pine-core/{p-19d08886.system.entry.js.map → p-023d8b71.system.entry.js.map} +0 -0
  542. /package/dist/pine-core/{p-6438a29d.system.entry.js.map → p-0485aa93.system.entry.js.map} +0 -0
  543. /package/dist/pine-core/{p-8096b988.system.entry.js.map → p-14a52961.system.entry.js.map} +0 -0
  544. /package/dist/pine-core/{p-4066a9c0.system.entry.js.map → p-2186e5d4.system.entry.js.map} +0 -0
  545. /package/dist/pine-core/{p-e05135c5.entry.js.map → p-232a2043.entry.js.map} +0 -0
  546. /package/dist/pine-core/{p-c7075f11.entry.js.map → p-25190921.entry.js.map} +0 -0
  547. /package/dist/pine-core/{p-487552a9.system.entry.js.map → p-297afc49.system.entry.js.map} +0 -0
  548. /package/dist/pine-core/{p-03d17841.system.entry.js.map → p-2e19f167.system.entry.js.map} +0 -0
  549. /package/dist/pine-core/{p-a2d16624.entry.js.map → p-349a8869.entry.js.map} +0 -0
  550. /package/dist/pine-core/{p-0a4fc9c7.entry.js.map → p-47670150.entry.js.map} +0 -0
  551. /package/dist/pine-core/{p-c1a1475e.entry.js.map → p-4deb7b8c.entry.js.map} +0 -0
  552. /package/dist/pine-core/{p-7c867f1b.entry.js.map → p-503cab1f.entry.js.map} +0 -0
  553. /package/dist/pine-core/{p-4e5b9d19.entry.js.map → p-52d37cc1.entry.js.map} +0 -0
  554. /package/dist/pine-core/{p-f9bd0bc2.system.entry.js.map → p-54183d70.system.entry.js.map} +0 -0
  555. /package/dist/pine-core/{p-33016dd0.entry.js.map → p-5708f95a.entry.js.map} +0 -0
  556. /package/dist/pine-core/{p-f647c1af.system.entry.js.map → p-5aed29fe.system.entry.js.map} +0 -0
  557. /package/dist/pine-core/{p-d08ecd18.system.entry.js.map → p-5da82e8c.system.entry.js.map} +0 -0
  558. /package/dist/pine-core/{p-ed94947b.entry.js.map → p-5e8badb9.entry.js.map} +0 -0
  559. /package/dist/pine-core/{p-126197e5.entry.js.map → p-651861ff.entry.js.map} +0 -0
  560. /package/dist/pine-core/{p-8cb99f2f.entry.js.map → p-6f4a6d0b.entry.js.map} +0 -0
  561. /package/dist/pine-core/{p-3e6229cc.entry.js.map → p-72053224.entry.js.map} +0 -0
  562. /package/dist/pine-core/{p-14b424ab.system.entry.js.map → p-72b05928.system.entry.js.map} +0 -0
  563. /package/dist/pine-core/{p-0dbb2ae9.entry.js.map → p-79e2782b.entry.js.map} +0 -0
  564. /package/dist/pine-core/{p-89d9f273.system.entry.js.map → p-8ab7f0d7.system.entry.js.map} +0 -0
  565. /package/dist/pine-core/{p-b956922a.entry.js.map → p-8d7abc83.entry.js.map} +0 -0
  566. /package/dist/pine-core/{p-2aad0209.system.entry.js.map → p-92c52409.system.entry.js.map} +0 -0
  567. /package/dist/pine-core/{p-c1f5148f.entry.js.map → p-98fe56d9.entry.js.map} +0 -0
  568. /package/dist/pine-core/{p-3f83d4c4.system.entry.js.map → p-a04556e4.system.entry.js.map} +0 -0
  569. /package/dist/pine-core/{p-0199e3e9.system.entry.js.map → p-a1b51557.system.entry.js.map} +0 -0
  570. /package/dist/pine-core/{p-51e463bf.entry.js.map → p-a24c46e4.entry.js.map} +0 -0
  571. /package/dist/pine-core/{p-9860d0a8.system.entry.js.map → p-aa645f28.system.entry.js.map} +0 -0
  572. /package/dist/pine-core/{p-c16d01cc.entry.js.map → p-b6ea3332.entry.js.map} +0 -0
  573. /package/dist/pine-core/{p-c721e8cf.entry.js.map → p-ba187a35.entry.js.map} +0 -0
  574. /package/dist/pine-core/{p-cf5506db.system.entry.js.map → p-bb8ef74a.system.entry.js.map} +0 -0
  575. /package/dist/pine-core/{p-b2b405ca.system.entry.js.map → p-c13ef6a7.system.entry.js.map} +0 -0
  576. /package/dist/pine-core/{p-ce0d9f05.system.entry.js.map → p-c2ffb466.system.entry.js.map} +0 -0
  577. /package/dist/pine-core/{p-978e722a.entry.js.map → p-c6badcf8.entry.js.map} +0 -0
  578. /package/dist/pine-core/{p-064e3d73.entry.js.map → p-c8122bea.entry.js.map} +0 -0
  579. /package/dist/pine-core/{p-d6d87fbc.system.entry.js.map → p-cd785026.system.entry.js.map} +0 -0
  580. /package/dist/pine-core/{p-c3f32f26.system.entry.js.map → p-d714f68f.system.entry.js.map} +0 -0
  581. /package/dist/pine-core/{p-6d601fc2.system.entry.js.map → p-dfc5ab34.system.entry.js.map} +0 -0
  582. /package/dist/pine-core/{p-f35a5afa.entry.js.map → p-e2887e78.entry.js.map} +0 -0
  583. /package/dist/pine-core/{p-55bf6be2.system.entry.js.map → p-e65a7d1c.system.entry.js.map} +0 -0
  584. /package/dist/pine-core/{p-ffe867ef.system.entry.js.map → p-e89cb1f2.system.entry.js.map} +0 -0
  585. /package/dist/pine-core/{p-c82d0a99.entry.js.map → p-efa788ea.entry.js.map} +0 -0
  586. /package/dist/pine-core/{p-280a0ec1.system.entry.js.map → p-f55b9f90.system.entry.js.map} +0 -0
  587. /package/dist/pine-core/{p-6fd385ec.entry.js.map → p-f880adaa.entry.js.map} +0 -0
  588. /package/dist/pine-core/{p-63ef55dd.entry.js.map → p-fb4058e6.entry.js.map} +0 -0
@@ -11,6 +11,7 @@ export default {
11
11
  disabled: false,
12
12
  errorMessage: null,
13
13
  helperMessage: null,
14
+ hideLabel: false,
14
15
  invalid: false,
15
16
  label: null,
16
17
  name: null,
@@ -42,6 +43,7 @@ const BaseTemplate = (args) => html`<pds-textarea
42
43
  ?disabled=${args.disabled}
43
44
  error-message="${args.errorMessage}"
44
45
  helper-message="${args.helperMessage}"
46
+ ?hide-label=${args.hideLabel}
45
47
  ?invalid=${args.invalid}
46
48
  label="${args.label}"
47
49
  name="${args.name}"
@@ -139,6 +141,7 @@ export const withActionLink = (args) => html`<pds-textarea
139
141
  ?disabled=${args.disabled}
140
142
  error-message="${args.errorMessage}"
141
143
  helper-message="${args.helperMessage}"
144
+ ?hide-label=${args.hideLabel}
142
145
  ?invalid=${args.invalid}
143
146
  label="Notes"
144
147
  name="${args.name}"
@@ -162,6 +165,7 @@ export const withActionButton = (args) => html`<pds-textarea
162
165
  ?disabled=${args.disabled}
163
166
  error-message="${args.errorMessage}"
164
167
  helper-message="${args.helperMessage}"
168
+ ?hide-label=${args.hideLabel}
165
169
  ?invalid=${args.invalid}
166
170
  label="Description"
167
171
  name="${args.name}"
@@ -16,7 +16,6 @@
16
16
  max-width: var(--tooltip-dimension-max-width);
17
17
  opacity: 0;
18
18
  padding: var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);
19
- position: absolute;
20
19
  visibility: hidden;
21
20
  width: max-content;
22
21
  }
@@ -1,5 +1,5 @@
1
1
  import { Host, h } from "@stencil/core";
2
- import { positionTooltip } from "../../utils/overlay";
2
+ import { autoUpdate, computePosition, flip, offset, shift, } from "@floating-ui/dom";
3
3
  /**
4
4
  * @slot (default) - The tooltip's target element
5
5
  * @slot content - HTML content for the tooltip
@@ -12,17 +12,13 @@ export class PdsTooltip {
12
12
  */
13
13
  this._isInteractiveOpen = false;
14
14
  this.portalEl = null;
15
+ this.resolvedPlacement = 'right';
15
16
  this.triggerEl = null;
16
17
  this.contentDiv = null;
17
18
  this.slotMutationObserver = null;
18
- this.overlayResizeObserver = null;
19
19
  this.currentPathname = '';
20
20
  this.pathnameCheckInterval = null;
21
- /**
22
- * Determines when the tooltip is open
23
- * @defaultValue false
24
- */
25
- this.isOpen = false;
21
+ this.stopAutoUpdate = null;
26
22
  /**
27
23
  * Determines whether or not the tooltip has an arrow
28
24
  * @defaultValue true
@@ -69,17 +65,6 @@ export class PdsTooltip {
69
65
  this.opened = false;
70
66
  this._isInteractiveOpen = false;
71
67
  };
72
- this.handleScroll = () => {
73
- if (this.opened) {
74
- if (!this._isInteractiveOpen) {
75
- this.repositionPortal();
76
- }
77
- else {
78
- this.hideTooltip();
79
- this._isInteractiveOpen = false;
80
- }
81
- }
82
- };
83
68
  this.handleSpaNavigation = () => {
84
69
  if (this.opened && !this._isInteractiveOpen) {
85
70
  return;
@@ -101,6 +86,7 @@ export class PdsTooltip {
101
86
  }
102
87
  componentWillLoad() {
103
88
  this._isInteractiveOpen = false;
89
+ this.resolvedPlacement = this.placement;
104
90
  }
105
91
  componentDidLoad() {
106
92
  window.addEventListener('pageshow', this.handlePageShow);
@@ -116,12 +102,27 @@ export class PdsTooltip {
116
102
  });
117
103
  this.slotMutationObserver.observe(contentSlotWrapper, { childList: true, subtree: false });
118
104
  }
119
- return () => {
120
- window.removeEventListener('pageshow', this.handlePageShow);
121
- if (this.slotMutationObserver !== null) {
122
- this.slotMutationObserver.disconnect();
123
- }
124
- };
105
+ // no return; Stencil ignores teardown functions here
106
+ }
107
+ disconnectedCallback() {
108
+ window.removeEventListener('pageshow', this.handlePageShow);
109
+ if (this.slotMutationObserver !== null) {
110
+ this.slotMutationObserver.disconnect();
111
+ this.slotMutationObserver = null;
112
+ }
113
+ // Ensure global listeners/intervals are removed if still present
114
+ if (this.portalEl !== null) {
115
+ this.removePortal();
116
+ }
117
+ if (this.pathnameCheckInterval !== null) {
118
+ clearInterval(this.pathnameCheckInterval);
119
+ this.pathnameCheckInterval = null;
120
+ }
121
+ // Ensure autoUpdate is stopped if still present
122
+ if (this.stopAutoUpdate !== null) {
123
+ this.stopAutoUpdate();
124
+ this.stopAutoUpdate = null;
125
+ }
125
126
  }
126
127
  componentDidRender() {
127
128
  if (this.opened && this.portalEl === null) {
@@ -130,6 +131,13 @@ export class PdsTooltip {
130
131
  else if (!this.opened && this.portalEl !== null) {
131
132
  this.removePortal();
132
133
  }
134
+ // Update portal class when opened state changes
135
+ if (this.portalEl !== null) {
136
+ this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;
137
+ // Update ARIA attributes to stay in sync with visual open state
138
+ this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');
139
+ this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');
140
+ }
133
141
  }
134
142
  /**
135
143
  * Shows the tooltip by enabling the opened property
@@ -166,37 +174,35 @@ export class PdsTooltip {
166
174
  return positioningAnchor;
167
175
  }
168
176
  /**
169
- * Centralized method to calculate and apply the tooltip's position.
170
- * Uses the determined anchor element and the current content dimensions.
177
+ * Centralized method to calculate and apply the tooltip's position using floating UI.
178
+ * Uses the determined anchor element and applies computePosition with flip, offset, and shift.
171
179
  */
172
- repositionPortal() {
180
+ async repositionPortal() {
173
181
  const anchor = this.determinePositioningAnchor();
174
- if (anchor !== null && this.contentDiv !== null) {
175
- positionTooltip({ elem: anchor, elemPlacement: this.placement, overlay: this.contentDiv });
176
- const placementParts = this.placement.split('-');
177
- const primaryPlacement = placementParts[0];
178
- const isCardinalCenterPlacement = placementParts.length === 1;
179
- if (isCardinalCenterPlacement) {
182
+ if (anchor !== null && this.portalEl !== null) {
183
+ try {
184
+ const { x, y, placement: computedPlacement } = await computePosition(anchor, this.portalEl, {
185
+ placement: this.placement,
186
+ strategy: 'fixed',
187
+ middleware: [offset(8), flip(), shift({ padding: 5 })],
188
+ });
189
+ this.resolvedPlacement = computedPlacement;
190
+ Object.assign(this.portalEl.style, {
191
+ left: `${x}px`,
192
+ top: `${y}px`,
193
+ position: 'fixed',
194
+ });
195
+ // Update CSS classes to match the resolved placement
196
+ this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;
197
+ }
198
+ catch (error) {
199
+ console.warn('Failed to position tooltip:', error);
200
+ this.resolvedPlacement = this.placement; // Fallback to requested placement
201
+ // Fallback to basic positioning if floating UI fails
180
202
  const anchorRect = anchor.getBoundingClientRect();
181
- const overlayRect = this.contentDiv.getBoundingClientRect();
182
- if (primaryPlacement === 'left' || primaryPlacement === 'right') {
183
- const currentOverlayTop = parseFloat(this.contentDiv.style.top || '0');
184
- const anchorCenterY = anchorRect.top + (anchorRect.height / 2);
185
- const overlayCenterY = overlayRect.top + (overlayRect.height / 2);
186
- const adjustmentY = anchorCenterY - overlayCenterY;
187
- if (Math.abs(adjustmentY) > 0.5) {
188
- this.contentDiv.style.top = `${currentOverlayTop + adjustmentY}px`;
189
- }
190
- }
191
- else if (primaryPlacement === 'top' || primaryPlacement === 'bottom') {
192
- const currentOverlayLeft = parseFloat(this.contentDiv.style.left || '0');
193
- const anchorCenterX = anchorRect.left + (anchorRect.width / 2);
194
- const overlayCenterX = overlayRect.left + (overlayRect.width / 2);
195
- const adjustmentX = anchorCenterX - overlayCenterX;
196
- if (Math.abs(adjustmentX) > 0.5) {
197
- this.contentDiv.style.left = `${currentOverlayLeft + adjustmentX}px`;
198
- }
199
- }
203
+ this.portalEl.style.left = `${anchorRect.right + 8}px`;
204
+ this.portalEl.style.top = `${anchorRect.top}px`;
205
+ this.portalEl.style.position = 'fixed';
200
206
  }
201
207
  }
202
208
  }
@@ -204,11 +210,13 @@ export class PdsTooltip {
204
210
  if (this.portalEl !== null)
205
211
  return;
206
212
  this.portalEl = document.createElement('div');
207
- this.portalEl.className = `pds-tooltip pds-tooltip--${this.placement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;
213
+ this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;
208
214
  this.portalEl.style.position = 'fixed';
209
215
  this.portalEl.style.zIndex = '9999';
210
216
  if (this.portalEl.id === '') {
211
- this.portalEl.id = this.componentId || this.el.id || `pds-tooltip-portal-${PdsTooltip.instanceCounter++}`;
217
+ const suffix = PdsTooltip.instanceCounter++;
218
+ const baseId = this.componentId || this.el.id || 'pds-tooltip';
219
+ this.portalEl.id = `${baseId}-portal-${suffix}`;
212
220
  }
213
221
  if (this.portalEl.getAttribute('id') !== this.portalEl.id) {
214
222
  this.portalEl.setAttribute('id', this.portalEl.id);
@@ -221,8 +229,6 @@ export class PdsTooltip {
221
229
  this.contentDiv.className = 'pds-tooltip__content';
222
230
  this.contentDiv.setAttribute('aria-hidden', this.opened ? 'false' : 'true');
223
231
  this.contentDiv.setAttribute('aria-live', this.opened ? 'polite' : 'off');
224
- this.contentDiv.setAttribute('role', 'tooltip');
225
- this.contentDiv.style.maxWidth = this.maxWidth;
226
232
  const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');
227
233
  const slottedContentContainer = contentSlotWrapper === null || contentSlotWrapper === void 0 ? void 0 : contentSlotWrapper.querySelector('[slot="content"]');
228
234
  let hasSlottedContent = false;
@@ -245,22 +251,23 @@ export class PdsTooltip {
245
251
  }
246
252
  }
247
253
  }
248
- if (!hasSlottedContent) {
249
- if (this.content !== '') {
250
- this.contentDiv.textContent = this.content;
251
- }
254
+ if (!hasSlottedContent && typeof this.content === 'string' && this.content.trim() !== '') {
255
+ this.contentDiv.textContent = this.content;
252
256
  }
253
257
  this.portalEl.appendChild(this.contentDiv);
254
258
  document.body.appendChild(this.portalEl);
255
- this.repositionPortal();
256
- if (this.contentDiv !== null) {
257
- this.overlayResizeObserver = new ResizeObserver(() => {
258
- this.repositionPortal();
259
+ this.repositionPortal().catch(error => {
260
+ console.warn('Failed to position tooltip on creation:', error);
261
+ });
262
+ // Use Floating UI's autoUpdate to handle scroll/resize automatically
263
+ if (this.triggerEl && this.portalEl) {
264
+ this.stopAutoUpdate = autoUpdate(this.triggerEl, this.portalEl, () => {
265
+ this.repositionPortal().catch(error => {
266
+ console.warn('Failed to reposition tooltip on auto update:', error);
267
+ });
259
268
  });
260
- this.overlayResizeObserver.observe(this.contentDiv);
261
269
  }
262
- // Add global listeners when portal is created
263
- window.addEventListener('scroll', this.handleScroll, true);
270
+ // Keep only SPA navigation listeners (not handled by autoUpdate)
264
271
  window.addEventListener('popstate', this.handleSpaNavigation, true);
265
272
  window.addEventListener('hashchange', this.handleSpaNavigation, true);
266
273
  // Start pathname change detection
@@ -271,9 +278,10 @@ export class PdsTooltip {
271
278
  }
272
279
  }
273
280
  removePortal() {
274
- if (this.overlayResizeObserver !== null && this.contentDiv !== null) {
275
- this.overlayResizeObserver.unobserve(this.contentDiv);
276
- this.overlayResizeObserver = null;
281
+ // Stop Floating UI's autoUpdate
282
+ if (this.stopAutoUpdate !== null) {
283
+ this.stopAutoUpdate();
284
+ this.stopAutoUpdate = null;
277
285
  }
278
286
  // Stop pathname change detection
279
287
  if (this.pathnameCheckInterval !== null) {
@@ -281,10 +289,19 @@ export class PdsTooltip {
281
289
  this.pathnameCheckInterval = null;
282
290
  }
283
291
  if (this.portalEl !== null) {
284
- window.removeEventListener('scroll', this.handleScroll, true);
292
+ // Remove only SPA navigation listeners (scroll/resize handled by autoUpdate)
285
293
  window.removeEventListener('popstate', this.handleSpaNavigation, true);
286
294
  window.removeEventListener('hashchange', this.handleSpaNavigation, true);
287
- document.body.removeChild(this.portalEl);
295
+ // Safely remove portal from DOM
296
+ try {
297
+ if (this.portalEl.parentNode) {
298
+ this.portalEl.parentNode.removeChild(this.portalEl);
299
+ }
300
+ }
301
+ catch (error) {
302
+ // Portal might have already been removed by test cleanup
303
+ console.warn('Portal element could not be removed from DOM:', error);
304
+ }
288
305
  this.portalEl = null;
289
306
  }
290
307
  // Remove ARIA attribute from trigger
@@ -295,7 +312,9 @@ export class PdsTooltip {
295
312
  }
296
313
  render() {
297
314
  const hostId = this.componentId || undefined;
298
- return (h(Host, { key: 'd0651080fc68d70a01d8c487d08a59f356f06e88', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, h("span", { key: '9f8c246c63a80c0d30c73687faa133b213c6bb63', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide, onFocus: this.handleShow, onBlur: this.handleHide, ref: el => this.triggerEl = el }, h("slot", { key: '2295b22ac9ec244f31410cd6a3764248100a1c48' })), h("div", { key: '7c8a59703b7c6ff43b0aa9352a869d59bca9b2b1', class: "pds-tooltip__content-slot-wrapper", style: { display: 'none' } }, h("slot", { key: '612dab7daf61394624177c45d47f542d551af52c', name: "content" }))));
315
+ return (h(Host, { key: '71fb8114cbf8db309eba0c19c0d9bd491d250157', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, h("span", { key: '9df511e60bc96c462a80f6bf6431f695e2effa3c', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
316
+ /* focusin/out bubble; ensure keyboard users see tooltips */
317
+ onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, h("slot", { key: 'eae36227df5fd93edf1af61e58b6369c0162944f' })), h("div", { key: '4c3a3f86d7e24aeff9299a9ef19396e078421467', class: "pds-tooltip__content-slot-wrapper", hidden: true }, h("slot", { key: 'babfdd5793e8007015dab364985c1451d976383f', name: "content" }))));
299
318
  }
300
319
  static get is() { return "pds-tooltip"; }
301
320
  static get originalStyleUrls() {
@@ -357,7 +376,7 @@ export class PdsTooltip {
357
376
  "references": {}
358
377
  },
359
378
  "required": false,
360
- "optional": true,
379
+ "optional": false,
361
380
  "docs": {
362
381
  "tags": [{
363
382
  "name": "defaultValue",
@@ -398,9 +417,15 @@ export class PdsTooltip {
398
417
  "type": "string",
399
418
  "mutable": false,
400
419
  "complexType": {
401
- "original": "'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'",
420
+ "original": "PlacementType",
402
421
  "resolved": "\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"",
403
- "references": {}
422
+ "references": {
423
+ "PlacementType": {
424
+ "location": "import",
425
+ "path": "@utils/types",
426
+ "id": "src/utils/types.ts::PlacementType"
427
+ }
428
+ }
404
429
  },
405
430
  "required": false,
406
431
  "optional": false,
@@ -467,8 +492,7 @@ export class PdsTooltip {
467
492
  }
468
493
  static get states() {
469
494
  return {
470
- "_isInteractiveOpen": {},
471
- "isOpen": {}
495
+ "_isInteractiveOpen": {}
472
496
  };
473
497
  }
474
498
  static get methods() {
@@ -1 +1 @@
1
- {"version":3,"file":"pds-tooltip.js","sourceRoot":"","sources":["../../../src/components/pds-tooltip/pds-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, State, h, Method, Watch } from '@stencil/core';\nimport { positionTooltip } from '../../utils/overlay';\n\n/**\n * @slot (default) - The tooltip's target element\n * @slot content - HTML content for the tooltip\n */\n\n@Component({\n tag: 'pds-tooltip',\n styleUrls: ['pds-tooltip.scss'],\n shadow: false,\n})\n\nexport class PdsTooltip {\n private static instanceCounter = 0;\n\n /**\n * Internal state: true if the tooltip was opened by user interaction (hover/focus),\n * false if opened via the `opened` prop or currently closed.\n */\n @State() private _isInteractiveOpen = false;\n\n private portalEl: HTMLElement | null = null;\n private triggerEl: HTMLElement | null = null;\n private contentDiv: HTMLElement | null = null;\n private slotMutationObserver: MutationObserver | null = null;\n private overlayResizeObserver: ResizeObserver | null = null;\n private currentPathname: string = '';\n private pathnameCheckInterval: NodeJS.Timeout | null = null;\n\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsTooltipElement;\n\n /**\n * Determines when the tooltip is open\n * @defaultValue false\n */\n @State() isOpen = false;\n\n /**\n * Content for the tooltip. If HTML is required, use the content slot\n */\n @Prop() content: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether or not the tooltip has an arrow\n * @defaultValue true\n */\n @Prop() hasArrow? = true;\n\n /**\n * Enable this option when using the content slot\n * @defaultValue false\n */\n @Prop() htmlContent = false;\n\n /**\n * Determines the preferred position of the tooltip\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement:\n 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'right';\n\n /**\n * Sets the maximum width of the tooltip content\n * @defaultValue \"352px\"\n */\n @Prop() maxWidth: string = '352px';\n\n /**\n * Determines whether or not the tooltip is visible\n * @defaultValue false\n */\n @Prop({mutable: true, reflect: true}) opened = false;\n\n @Watch('opened')\n\n handleOpenToggle(newValue: boolean, oldValue: boolean) {\n if (newValue === false && oldValue === true) {\n this._isInteractiveOpen = false;\n }\n }\n\n componentWillLoad() {\n this._isInteractiveOpen = false;\n }\n\n componentDidLoad() {\n window.addEventListener('pageshow', this.handlePageShow);\n this.currentPathname = window.location.pathname;\n this.triggerEl = this.el.querySelector('.pds-tooltip__trigger') as HTMLElement;\n const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');\n\n if (contentSlotWrapper !== null) {\n this.slotMutationObserver = new MutationObserver(() => {\n if (this.opened && this.portalEl !== null) {\n this.removePortal();\n this.createPortal();\n }\n });\n this.slotMutationObserver.observe(contentSlotWrapper, { childList: true, subtree: false });\n }\n\n return () => {\n window.removeEventListener('pageshow', this.handlePageShow);\n\n if (this.slotMutationObserver !== null) {\n this.slotMutationObserver.disconnect();\n }\n };\n }\n\n componentDidRender() {\n if (this.opened && this.portalEl === null) {\n this.createPortal();\n } else if (!this.opened && this.portalEl !== null) {\n this.removePortal();\n }\n }\n\n /**\n * Shows the tooltip by enabling the opened property\n */\n @Method()\n async showTooltip() {\n this.opened = true;\n }\n\n /**\n * Hides the tooltip by disabling the opened property\n */\n @Method()\n async hideTooltip() {\n this.opened = false;\n }\n\n private handleHide = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.hideTooltip();\n this._isInteractiveOpen = false;\n };\n\n private handleShow = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this._isInteractiveOpen = true;\n this.showTooltip();\n };\n\n private handlePageShow = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.opened = false;\n this._isInteractiveOpen = false;\n };\n\n private handleScroll = () => {\n if (this.opened) {\n if (!this._isInteractiveOpen) {\n this.repositionPortal();\n } else {\n this.hideTooltip();\n this._isInteractiveOpen = false;\n }\n }\n };\n\n private handleSpaNavigation = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.hideTooltip();\n this._isInteractiveOpen = false;\n };\n\n private checkPathnameChange = () => {\n if (window.location.pathname !== this.currentPathname) {\n this.currentPathname = window.location.pathname;\n this.handleSpaNavigation();\n }\n };\n\n /**\n * Determines the most accurate HTML element to use as the anchor for positioning the tooltip.\n * If `htmlContent` is false, it attempts to find the actual element slotted as the trigger.\n * Otherwise, or if no specific element is found, it defaults to the span wrapper around the trigger slot.\n * This helps with precise alignment.\n */\n private determinePositioningAnchor(): HTMLElement | null {\n let positioningAnchor: HTMLElement | null = this.triggerEl;\n\n if (this.triggerEl !== null) {\n const children = this.triggerEl.childNodes;\n\n for (let i = 0; i < children.length; i++) {\n const childNode = children[i];\n\n if (childNode.nodeType === Node.ELEMENT_NODE) {\n positioningAnchor = childNode as HTMLElement;\n break; // Found the first element, use it as the anchor\n }\n }\n }\n\n // If no ELEMENT_NODE is found within this.triggerEl (e.g., if trigger is just text),\n // positioningAnchor will correctly remain this.triggerEl (the span).\n return positioningAnchor;\n }\n\n /**\n * Centralized method to calculate and apply the tooltip's position.\n * Uses the determined anchor element and the current content dimensions.\n */\n private repositionPortal() {\n const anchor = this.determinePositioningAnchor();\n\n if (anchor !== null && this.contentDiv !== null) {\n positionTooltip({ elem: anchor, elemPlacement: this.placement, overlay: this.contentDiv });\n const placementParts = this.placement.split('-');\n const primaryPlacement = placementParts[0];\n const isCardinalCenterPlacement = placementParts.length === 1;\n\n if (isCardinalCenterPlacement) {\n const anchorRect = anchor.getBoundingClientRect();\n const overlayRect = this.contentDiv.getBoundingClientRect();\n\n if (primaryPlacement === 'left' || primaryPlacement === 'right') {\n const currentOverlayTop = parseFloat(this.contentDiv.style.top || '0');\n const anchorCenterY = anchorRect.top + (anchorRect.height / 2);\n const overlayCenterY = overlayRect.top + (overlayRect.height / 2);\n const adjustmentY = anchorCenterY - overlayCenterY;\n\n if (Math.abs(adjustmentY) > 0.5) {\n this.contentDiv.style.top = `${currentOverlayTop + adjustmentY}px`;\n }\n\n } else if (primaryPlacement === 'top' || primaryPlacement === 'bottom') {\n const currentOverlayLeft = parseFloat(this.contentDiv.style.left || '0');\n const anchorCenterX = anchorRect.left + (anchorRect.width / 2);\n const overlayCenterX = overlayRect.left + (overlayRect.width / 2);\n const adjustmentX = anchorCenterX - overlayCenterX;\n\n if (Math.abs(adjustmentX) > 0.5) {\n this.contentDiv.style.left = `${currentOverlayLeft + adjustmentX}px`;\n }\n }\n }\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = `pds-tooltip pds-tooltip--${this.placement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = '9999';\n\n if (this.portalEl.id === '') {\n this.portalEl.id = this.componentId || this.el.id || `pds-tooltip-portal-${PdsTooltip.instanceCounter++}`;\n }\n\n if (this.portalEl.getAttribute('id') !== this.portalEl.id) {\n this.portalEl.setAttribute('id', this.portalEl.id);\n }\n\n this.portalEl.setAttribute('role', 'tooltip');\n this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n this.portalEl.style.maxWidth = this.maxWidth;\n\n this.contentDiv = document.createElement('div');\n this.contentDiv.className = 'pds-tooltip__content';\n this.contentDiv.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.contentDiv.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n this.contentDiv.setAttribute('role', 'tooltip');\n this.contentDiv.style.maxWidth = this.maxWidth;\n\n const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');\n const slottedContentContainer = contentSlotWrapper?.querySelector('[slot=\"content\"]') as HTMLElement | null;\n let hasSlottedContent = false;\n\n if (slottedContentContainer !== null) {\n const childrenToClone = Array.from(slottedContentContainer.childNodes);\n\n if (childrenToClone.length > 0) {\n const hasMeaningfulNode = childrenToClone.some(node =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\n );\n\n if (hasMeaningfulNode) {\n hasSlottedContent = true;\n childrenToClone.forEach((node /*, index*/) => {\n if (node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')) {\n this.contentDiv.appendChild(node.cloneNode(true));\n }\n });\n }\n }\n }\n\n if (!hasSlottedContent) {\n if (this.content !== '') {\n this.contentDiv.textContent = this.content;\n }\n }\n\n this.portalEl.appendChild(this.contentDiv);\n document.body.appendChild(this.portalEl);\n\n this.repositionPortal();\n\n if (this.contentDiv !== null) {\n this.overlayResizeObserver = new ResizeObserver(() => {\n this.repositionPortal();\n });\n this.overlayResizeObserver.observe(this.contentDiv);\n }\n\n // Add global listeners when portal is created\n window.addEventListener('scroll', this.handleScroll, true);\n window.addEventListener('popstate', this.handleSpaNavigation, true);\n window.addEventListener('hashchange', this.handleSpaNavigation, true);\n\n // Start pathname change detection\n this.pathnameCheckInterval = setInterval(this.checkPathnameChange, 100);\n\n // Add ARIA attribute to trigger, now that portalEl and its ID are confirmed\n if (this.triggerEl !== null && this.portalEl.id !== '') {\n this.triggerEl.setAttribute('aria-describedby', this.portalEl.id);\n }\n }\n\n private removePortal() {\n if (this.overlayResizeObserver !== null && this.contentDiv !== null) {\n this.overlayResizeObserver.unobserve(this.contentDiv);\n this.overlayResizeObserver = null;\n }\n\n // Stop pathname change detection\n if (this.pathnameCheckInterval !== null) {\n clearInterval(this.pathnameCheckInterval);\n this.pathnameCheckInterval = null;\n }\n\n if (this.portalEl !== null) {\n window.removeEventListener('scroll', this.handleScroll, true);\n window.removeEventListener('popstate', this.handleSpaNavigation, true);\n window.removeEventListener('hashchange', this.handleSpaNavigation, true);\n document.body.removeChild(this.portalEl);\n this.portalEl = null;\n }\n\n // Remove ARIA attribute from trigger\n if (this.triggerEl !== null) {\n this.triggerEl.removeAttribute('aria-describedby');\n }\n this.contentDiv = null;\n }\n\n render() {\n const hostId = this.componentId || undefined;\n\n return (\n <Host id={hostId} class={{ 'pds-tooltip--is-open': this.opened }}>\n <span\n class=\"pds-tooltip__trigger\"\n onMouseEnter={this.handleShow}\n onMouseLeave={this.handleHide}\n onFocus={this.handleShow}\n onBlur={this.handleHide}\n ref={el => this.triggerEl = el}\n >\n <slot />\n </span>\n <div class=\"pds-tooltip__content-slot-wrapper\" style={{ display: 'none' }}>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-tooltip.js","sourceRoot":"","sources":["../../../src/components/pds-tooltip/pds-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, Prop, State, h, Method, Watch } from '@stencil/core';\nimport { PlacementType } from '@utils/types';\nimport {\n autoUpdate,\n computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\n\n/**\n * @slot (default) - The tooltip's target element\n * @slot content - HTML content for the tooltip\n */\n\n@Component({\n tag: 'pds-tooltip',\n styleUrls: ['pds-tooltip.scss'],\n shadow: false,\n})\n\nexport class PdsTooltip {\n private static instanceCounter = 0;\n\n /**\n * Internal state: true if the tooltip was opened by user interaction (hover/focus),\n * false if opened via the `opened` prop or currently closed.\n */\n @State() private _isInteractiveOpen = false;\n\n private portalEl: HTMLElement | null = null;\n private resolvedPlacement: PlacementType = 'right';\n private triggerEl: HTMLElement | null = null;\n private contentDiv: HTMLElement | null = null;\n private slotMutationObserver: MutationObserver | null = null;\n private currentPathname: string = '';\n private pathnameCheckInterval: ReturnType<typeof setInterval> | null = null;\n private stopAutoUpdate: (() => void) | null = null;\n\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsTooltipElement;\n\n /**\n * Content for the tooltip. If HTML is required, use the content slot\n */\n @Prop() content: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether or not the tooltip has an arrow\n * @defaultValue true\n */\n @Prop() hasArrow = true;\n\n /**\n * Enable this option when using the content slot\n * @defaultValue false\n */\n @Prop() htmlContent = false;\n\n /**\n * Determines the preferred position of the tooltip\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement: PlacementType = 'right';\n\n /**\n * Sets the maximum width of the tooltip content\n * @defaultValue \"352px\"\n */\n @Prop() maxWidth: string = '352px';\n\n /**\n * Determines whether or not the tooltip is visible\n * @defaultValue false\n */\n @Prop({mutable: true, reflect: true}) opened = false;\n\n @Watch('opened')\n\n handleOpenToggle(newValue: boolean, oldValue: boolean) {\n if (newValue === false && oldValue === true) {\n this._isInteractiveOpen = false;\n }\n }\n\n componentWillLoad() {\n this._isInteractiveOpen = false;\n this.resolvedPlacement = this.placement;\n }\n\n componentDidLoad() {\n window.addEventListener('pageshow', this.handlePageShow);\n this.currentPathname = window.location.pathname;\n this.triggerEl = this.el.querySelector('.pds-tooltip__trigger') as HTMLElement;\n const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');\n\n if (contentSlotWrapper !== null) {\n this.slotMutationObserver = new MutationObserver(() => {\n if (this.opened && this.portalEl !== null) {\n this.removePortal();\n this.createPortal();\n }\n });\n this.slotMutationObserver.observe(contentSlotWrapper, { childList: true, subtree: false });\n }\n\n // no return; Stencil ignores teardown functions here\n }\n\n disconnectedCallback() {\n window.removeEventListener('pageshow', this.handlePageShow);\n if (this.slotMutationObserver !== null) {\n this.slotMutationObserver.disconnect();\n this.slotMutationObserver = null;\n }\n // Ensure global listeners/intervals are removed if still present\n if (this.portalEl !== null) {\n this.removePortal();\n }\n if (this.pathnameCheckInterval !== null) {\n clearInterval(this.pathnameCheckInterval);\n this.pathnameCheckInterval = null;\n }\n // Ensure autoUpdate is stopped if still present\n if (this.stopAutoUpdate !== null) {\n this.stopAutoUpdate();\n this.stopAutoUpdate = null;\n }\n }\n\n componentDidRender() {\n if (this.opened && this.portalEl === null) {\n this.createPortal();\n } else if (!this.opened && this.portalEl !== null) {\n this.removePortal();\n }\n\n // Update portal class when opened state changes\n if (this.portalEl !== null) {\n this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;\n\n // Update ARIA attributes to stay in sync with visual open state\n this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n }\n }\n\n /**\n * Shows the tooltip by enabling the opened property\n */\n @Method()\n async showTooltip() {\n this.opened = true;\n }\n\n /**\n * Hides the tooltip by disabling the opened property\n */\n @Method()\n async hideTooltip() {\n this.opened = false;\n }\n\n private handleHide = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.hideTooltip();\n this._isInteractiveOpen = false;\n };\n\n private handleShow = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this._isInteractiveOpen = true;\n this.showTooltip();\n };\n\n private handlePageShow = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.opened = false;\n this._isInteractiveOpen = false;\n };\n\n\n private handleSpaNavigation = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.hideTooltip();\n this._isInteractiveOpen = false;\n };\n\n private checkPathnameChange = () => {\n if (window.location.pathname !== this.currentPathname) {\n this.currentPathname = window.location.pathname;\n this.handleSpaNavigation();\n }\n };\n\n /**\n * Determines the most accurate HTML element to use as the anchor for positioning the tooltip.\n * If `htmlContent` is false, it attempts to find the actual element slotted as the trigger.\n * Otherwise, or if no specific element is found, it defaults to the span wrapper around the trigger slot.\n * This helps with precise alignment.\n */\n private determinePositioningAnchor(): HTMLElement | null {\n let positioningAnchor: HTMLElement | null = this.triggerEl;\n\n if (this.triggerEl !== null) {\n const children = this.triggerEl.childNodes;\n\n for (let i = 0; i < children.length; i++) {\n const childNode = children[i];\n\n if (childNode.nodeType === Node.ELEMENT_NODE) {\n positioningAnchor = childNode as HTMLElement;\n break; // Found the first element, use it as the anchor\n }\n }\n }\n\n // If no ELEMENT_NODE is found within this.triggerEl (e.g., if trigger is just text),\n // positioningAnchor will correctly remain this.triggerEl (the span).\n return positioningAnchor;\n }\n\n /**\n * Centralized method to calculate and apply the tooltip's position using floating UI.\n * Uses the determined anchor element and applies computePosition with flip, offset, and shift.\n */\n private async repositionPortal() {\n const anchor = this.determinePositioningAnchor();\n\n if (anchor !== null && this.portalEl !== null) {\n try {\n const { x, y, placement: computedPlacement } = await computePosition(anchor, this.portalEl, {\n placement: this.placement,\n strategy: 'fixed',\n middleware: [offset(8), flip(), shift({ padding: 5 })],\n });\n\n this.resolvedPlacement = computedPlacement as PlacementType;\n\n Object.assign(this.portalEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n position: 'fixed',\n });\n\n // Update CSS classes to match the resolved placement\n this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;\n } catch (error) {\n console.warn('Failed to position tooltip:', error);\n this.resolvedPlacement = this.placement; // Fallback to requested placement\n // Fallback to basic positioning if floating UI fails\n const anchorRect = anchor.getBoundingClientRect();\n this.portalEl.style.left = `${anchorRect.right + 8}px`;\n this.portalEl.style.top = `${anchorRect.top}px`;\n this.portalEl.style.position = 'fixed';\n }\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = '9999';\n\n if (this.portalEl.id === '') {\n const suffix = PdsTooltip.instanceCounter++;\n const baseId = this.componentId || this.el.id || 'pds-tooltip';\n this.portalEl.id = `${baseId}-portal-${suffix}`;\n }\n\n if (this.portalEl.getAttribute('id') !== this.portalEl.id) {\n this.portalEl.setAttribute('id', this.portalEl.id);\n }\n\n this.portalEl.setAttribute('role', 'tooltip');\n this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n this.portalEl.style.maxWidth = this.maxWidth;\n\n this.contentDiv = document.createElement('div');\n this.contentDiv.className = 'pds-tooltip__content';\n this.contentDiv.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.contentDiv.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n\n const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');\n const slottedContentContainer = contentSlotWrapper?.querySelector('[slot=\"content\"]') as HTMLElement | null;\n let hasSlottedContent = false;\n\n if (slottedContentContainer !== null) {\n const childrenToClone = Array.from(slottedContentContainer.childNodes);\n\n if (childrenToClone.length > 0) {\n const hasMeaningfulNode = childrenToClone.some(node =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\n );\n\n if (hasMeaningfulNode) {\n hasSlottedContent = true;\n childrenToClone.forEach((node /*, index*/) => {\n if (node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')) {\n this.contentDiv.appendChild(node.cloneNode(true));\n }\n });\n }\n }\n }\n\n if (!hasSlottedContent && typeof this.content === 'string' && this.content.trim() !== '') {\n this.contentDiv.textContent = this.content;\n }\n\n this.portalEl.appendChild(this.contentDiv);\n document.body.appendChild(this.portalEl);\n\n this.repositionPortal().catch(error => {\n console.warn('Failed to position tooltip on creation:', error);\n });\n\n // Use Floating UI's autoUpdate to handle scroll/resize automatically\n if (this.triggerEl && this.portalEl) {\n this.stopAutoUpdate = autoUpdate(\n this.triggerEl,\n this.portalEl,\n () => {\n this.repositionPortal().catch(error => {\n console.warn('Failed to reposition tooltip on auto update:', error);\n });\n }\n );\n }\n\n // Keep only SPA navigation listeners (not handled by autoUpdate)\n window.addEventListener('popstate', this.handleSpaNavigation, true);\n window.addEventListener('hashchange', this.handleSpaNavigation, true);\n\n // Start pathname change detection\n this.pathnameCheckInterval = setInterval(this.checkPathnameChange, 100);\n\n // Add ARIA attribute to trigger, now that portalEl and its ID are confirmed\n if (this.triggerEl !== null && this.portalEl.id !== '') {\n this.triggerEl.setAttribute('aria-describedby', this.portalEl.id);\n }\n }\n\n private removePortal() {\n // Stop Floating UI's autoUpdate\n if (this.stopAutoUpdate !== null) {\n this.stopAutoUpdate();\n this.stopAutoUpdate = null;\n }\n\n // Stop pathname change detection\n if (this.pathnameCheckInterval !== null) {\n clearInterval(this.pathnameCheckInterval);\n this.pathnameCheckInterval = null;\n }\n\n if (this.portalEl !== null) {\n // Remove only SPA navigation listeners (scroll/resize handled by autoUpdate)\n window.removeEventListener('popstate', this.handleSpaNavigation, true);\n window.removeEventListener('hashchange', this.handleSpaNavigation, true);\n\n // Safely remove portal from DOM\n try {\n if (this.portalEl.parentNode) {\n this.portalEl.parentNode.removeChild(this.portalEl);\n }\n } catch (error) {\n // Portal might have already been removed by test cleanup\n console.warn('Portal element could not be removed from DOM:', error);\n }\n\n this.portalEl = null;\n }\n\n // Remove ARIA attribute from trigger\n if (this.triggerEl !== null) {\n this.triggerEl.removeAttribute('aria-describedby');\n }\n this.contentDiv = null;\n }\n\n render() {\n const hostId = this.componentId || undefined;\n\n return (\n <Host id={hostId} class={{ 'pds-tooltip--is-open': this.opened }}>\n <span\n class=\"pds-tooltip__trigger\"\n onMouseEnter={this.handleShow}\n onMouseLeave={this.handleHide}\n /* focusin/out bubble; ensure keyboard users see tooltips */\n onFocusin={this.handleShow as any}\n onFocusout={this.handleHide as any}\n ref={el => this.triggerEl = el}\n >\n <slot />\n </span>\n <div class=\"pds-tooltip__content-slot-wrapper\" hidden>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n}\n"]}