@pine-ds/core 3.0.3 → 3.2.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 (722) hide show
  1. package/components/index.d.ts +20 -0
  2. package/components/index.js +10 -0
  3. package/components/index.js.map +1 -1
  4. package/components/index2.js +1 -1
  5. package/components/index2.js.map +1 -1
  6. package/components/mock-pds-modal.d.ts +11 -0
  7. package/components/mock-pds-modal.js +108 -0
  8. package/components/mock-pds-modal.js.map +1 -0
  9. package/components/pds-alert.d.ts +11 -0
  10. package/components/pds-alert.js +107 -0
  11. package/components/pds-alert.js.map +1 -0
  12. package/components/pds-avatar.js +1 -1
  13. package/components/pds-box.js +1 -110
  14. package/components/pds-box.js.map +1 -1
  15. package/components/pds-box2.js +115 -0
  16. package/components/pds-box2.js.map +1 -0
  17. package/components/pds-button2.js +31 -5
  18. package/components/pds-button2.js.map +1 -1
  19. package/components/pds-checkbox2.js +9 -3
  20. package/components/pds-checkbox2.js.map +1 -1
  21. package/components/pds-chip.js +1 -1
  22. package/components/pds-copytext.js +2 -2
  23. package/components/pds-copytext.js.map +1 -1
  24. package/components/pds-divider.js +1 -1
  25. package/components/pds-dropdown-menu-item.d.ts +11 -0
  26. package/components/pds-dropdown-menu-item.js +117 -0
  27. package/components/pds-dropdown-menu-item.js.map +1 -0
  28. package/components/pds-dropdown-menu-separator.d.ts +11 -0
  29. package/components/pds-dropdown-menu-separator.js +44 -0
  30. package/components/pds-dropdown-menu-separator.js.map +1 -0
  31. package/components/pds-dropdown-menu.d.ts +11 -0
  32. package/components/pds-dropdown-menu.js +1600 -0
  33. package/components/pds-dropdown-menu.js.map +1 -0
  34. package/components/pds-icon2.js +103 -7
  35. package/components/pds-icon2.js.map +1 -1
  36. package/components/pds-image.js +2 -2
  37. package/components/pds-input.js +4 -4
  38. package/components/pds-link.js +1 -67
  39. package/components/pds-link.js.map +1 -1
  40. package/components/pds-link2.js +85 -0
  41. package/components/pds-link2.js.map +1 -0
  42. package/components/pds-loader2.js +1 -1
  43. package/components/pds-modal-content.d.ts +11 -0
  44. package/components/pds-modal-content.js +111 -0
  45. package/components/pds-modal-content.js.map +1 -0
  46. package/components/pds-modal-footer.d.ts +11 -0
  47. package/components/pds-modal-footer.js +35 -0
  48. package/components/pds-modal-footer.js.map +1 -0
  49. package/components/pds-modal-header.d.ts +11 -0
  50. package/components/pds-modal-header.js +35 -0
  51. package/components/pds-modal-header.js.map +1 -0
  52. package/components/pds-modal.d.ts +11 -0
  53. package/components/pds-modal.js +278 -0
  54. package/components/pds-modal.js.map +1 -0
  55. package/components/pds-popover.js +33 -1
  56. package/components/pds-popover.js.map +1 -1
  57. package/components/pds-progress.js +1 -1
  58. package/components/pds-radio.js +3 -3
  59. package/components/pds-row.js +1 -1
  60. package/components/pds-select.js +2 -2
  61. package/components/pds-sortable-item.js +1 -1
  62. package/components/pds-sortable.js +1 -1
  63. package/components/pds-switch.js +8 -3
  64. package/components/pds-switch.js.map +1 -1
  65. package/components/pds-tab.js +3 -3
  66. package/components/pds-table-body.js +1 -1
  67. package/components/pds-table-cell2.js +2 -2
  68. package/components/pds-table-head-cell2.js +2 -2
  69. package/components/pds-table-head.js +1 -1
  70. package/components/pds-table-row.js +1 -1
  71. package/components/pds-table.js +1 -1
  72. package/components/pds-tabpanel.js +1 -1
  73. package/components/pds-tabs.js +1 -1
  74. package/components/pds-text.js +1 -53
  75. package/components/pds-text.js.map +1 -1
  76. package/components/pds-text2.js +58 -0
  77. package/components/pds-text2.js.map +1 -0
  78. package/components/pds-textarea.js +4 -4
  79. package/components/pds-toast.d.ts +11 -0
  80. package/components/pds-toast.js +137 -0
  81. package/components/pds-toast.js.map +1 -0
  82. package/components/pds-tooltip.js +283 -81
  83. package/components/pds-tooltip.js.map +1 -1
  84. package/components/utils.js +3 -2
  85. package/components/utils.js.map +1 -1
  86. package/dist/cjs/{index-Br1YlNK2.js → index-CG2Rr2io.js} +3 -3
  87. package/dist/cjs/index-CG2Rr2io.js.map +1 -0
  88. package/dist/cjs/loader.cjs.js +1 -1
  89. package/dist/cjs/mock-pds-modal.cjs.entry.js +86 -0
  90. package/dist/cjs/mock-pds-modal.cjs.entry.js.map +1 -0
  91. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -0
  92. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  93. package/dist/cjs/pds-alert.cjs.entry.js +66 -0
  94. package/dist/cjs/pds-alert.cjs.entry.js.map +1 -0
  95. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -0
  96. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  97. package/dist/cjs/pds-box.cjs.entry.js +2 -2
  98. package/dist/cjs/pds-box.cjs.entry.js.map +1 -1
  99. package/dist/cjs/pds-box.entry.cjs.js.map +1 -1
  100. package/dist/cjs/pds-button.cjs.entry.js +33 -7
  101. package/dist/cjs/pds-button.cjs.entry.js.map +1 -1
  102. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  103. package/dist/cjs/pds-checkbox.cjs.entry.js +10 -4
  104. package/dist/cjs/pds-checkbox.cjs.entry.js.map +1 -1
  105. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  106. package/dist/cjs/pds-chip.cjs.entry.js +2 -2
  107. package/dist/cjs/pds-copytext.cjs.entry.js +3 -3
  108. package/dist/cjs/pds-copytext.cjs.entry.js.map +1 -1
  109. package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
  110. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  111. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +82 -0
  112. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js.map +1 -0
  113. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -0
  114. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +25 -0
  115. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js.map +1 -0
  116. package/dist/cjs/pds-dropdown-menu-separator.entry.cjs.js.map +1 -0
  117. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1574 -0
  118. package/dist/cjs/pds-dropdown-menu.cjs.entry.js.map +1 -0
  119. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -0
  120. package/dist/cjs/pds-icon.cjs.entry.js +102 -7
  121. package/dist/cjs/pds-icon.cjs.entry.js.map +1 -1
  122. package/dist/cjs/pds-icon.entry.cjs.js.map +1 -1
  123. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  124. package/dist/cjs/pds-input.cjs.entry.js +6 -6
  125. package/dist/cjs/pds-link.cjs.entry.js +16 -4
  126. package/dist/cjs/pds-link.cjs.entry.js.map +1 -1
  127. package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
  128. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  129. package/dist/cjs/pds-modal-content.cjs.entry.js +93 -0
  130. package/dist/cjs/pds-modal-content.cjs.entry.js.map +1 -0
  131. package/dist/cjs/pds-modal-content.entry.cjs.js.map +1 -0
  132. package/dist/cjs/pds-modal-footer.cjs.entry.js +20 -0
  133. package/dist/cjs/pds-modal-footer.cjs.entry.js.map +1 -0
  134. package/dist/cjs/pds-modal-footer.entry.cjs.js.map +1 -0
  135. package/dist/cjs/pds-modal-header.cjs.entry.js +20 -0
  136. package/dist/cjs/pds-modal-header.cjs.entry.js.map +1 -0
  137. package/dist/cjs/pds-modal-header.entry.cjs.js.map +1 -0
  138. package/dist/cjs/pds-modal.cjs.entry.js +253 -0
  139. package/dist/cjs/pds-modal.cjs.entry.js.map +1 -0
  140. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -0
  141. package/dist/cjs/pds-popover.cjs.entry.js +33 -1
  142. package/dist/cjs/pds-popover.cjs.entry.js.map +1 -1
  143. package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
  144. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  145. package/dist/cjs/pds-radio.cjs.entry.js +4 -4
  146. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  147. package/dist/cjs/pds-select.cjs.entry.js +3 -3
  148. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  149. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  150. package/dist/cjs/pds-switch.cjs.entry.js +9 -4
  151. package/dist/cjs/pds-switch.cjs.entry.js.map +1 -1
  152. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  153. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  154. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  155. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -2
  156. package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
  157. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  158. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  159. package/dist/cjs/pds-table.cjs.entry.js +1 -1
  160. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  161. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  162. package/dist/cjs/pds-text.cjs.entry.js +2 -2
  163. package/dist/cjs/pds-text.cjs.entry.js.map +1 -1
  164. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  165. package/dist/cjs/pds-textarea.cjs.entry.js +6 -6
  166. package/dist/cjs/pds-toast.cjs.entry.js +104 -0
  167. package/dist/cjs/pds-toast.cjs.entry.js.map +1 -0
  168. package/dist/cjs/pds-toast.entry.cjs.js.map +1 -0
  169. package/dist/cjs/pds-tooltip.cjs.entry.js +281 -79
  170. package/dist/cjs/pds-tooltip.cjs.entry.js.map +1 -1
  171. package/dist/cjs/pds-tooltip.entry.cjs.js.map +1 -1
  172. package/dist/cjs/pine-core.cjs.js +1 -1
  173. package/dist/cjs/{utils-CQKIgzWg.js → utils-jWx-Mf12.js} +5 -4
  174. package/dist/cjs/utils-jWx-Mf12.js.map +1 -0
  175. package/dist/collection/collection-manifest.json +10 -0
  176. package/dist/collection/components/pds-alert/pds-alert.css +108 -0
  177. package/dist/collection/components/pds-alert/pds-alert.js +198 -0
  178. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -0
  179. package/dist/collection/components/pds-alert/pds-alert.tokens.css +32 -0
  180. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +97 -0
  181. package/dist/collection/components/pds-avatar/pds-avatar.js +1 -1
  182. package/dist/collection/components/pds-box/pds-box.js +8 -8
  183. package/dist/collection/components/pds-box/pds-box.js.map +1 -1
  184. package/dist/collection/components/pds-button/pds-button.css +7 -11
  185. package/dist/collection/components/pds-button/pds-button.js +37 -5
  186. package/dist/collection/components/pds-button/pds-button.js.map +1 -1
  187. package/dist/collection/components/pds-button/stories/pds-button.stories.js +46 -11
  188. package/dist/collection/components/pds-checkbox/pds-checkbox.js +9 -3
  189. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  190. package/dist/collection/components/pds-chip/pds-chip.js +1 -1
  191. package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +1 -1
  192. package/dist/collection/components/pds-copytext/pds-copytext.css +1 -1
  193. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  194. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  195. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +68 -0
  196. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +219 -0
  197. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -0
  198. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.css +4 -0
  199. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +72 -0
  200. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js.map +1 -0
  201. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +16 -0
  202. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +328 -0
  203. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -0
  204. package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +44 -0
  205. package/dist/collection/components/pds-icon/stories/pds-icon.stories.js +1 -1
  206. package/dist/collection/components/pds-image/pds-image.js +2 -2
  207. package/dist/collection/components/pds-input/pds-input.js +4 -4
  208. package/dist/collection/components/pds-link/pds-link.css +23 -9
  209. package/dist/collection/components/pds-link/pds-link.js +33 -2
  210. package/dist/collection/components/pds-link/pds-link.js.map +1 -1
  211. package/dist/collection/components/pds-link/stories/pds-link.stories.js +15 -2
  212. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  213. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.css +27 -0
  214. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +125 -0
  215. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +1 -0
  216. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.css +8 -0
  217. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +18 -0
  218. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js.map +1 -0
  219. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.css +8 -0
  220. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +18 -0
  221. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js.map +1 -0
  222. package/dist/collection/components/pds-modal/pds-modal.css +79 -0
  223. package/dist/collection/components/pds-modal/pds-modal.js +426 -0
  224. package/dist/collection/components/pds-modal/pds-modal.js.map +1 -0
  225. package/dist/collection/components/pds-modal/stories/pds-modal.stories.js +415 -0
  226. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +256 -0
  227. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +1 -0
  228. package/dist/collection/components/pds-popover/pds-popover.js +33 -1
  229. package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
  230. package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +4 -5
  231. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  232. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  233. package/dist/collection/components/pds-row/pds-row.js +1 -1
  234. package/dist/collection/components/pds-select/pds-select.js +2 -2
  235. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  236. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  237. package/dist/collection/components/pds-switch/pds-switch.js +8 -3
  238. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  239. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  240. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  241. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  242. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  243. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  244. package/dist/collection/components/pds-table/pds-table.js +1 -1
  245. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  246. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  247. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  248. package/dist/collection/components/pds-text/pds-text.js +2 -2
  249. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  250. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  251. package/dist/collection/components/pds-toast/pds-toast.css +153 -0
  252. package/dist/collection/components/pds-toast/pds-toast.js +263 -0
  253. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -0
  254. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +103 -0
  255. package/dist/collection/components/pds-tooltip/pds-tooltip.css +2 -12
  256. package/dist/collection/components/pds-tooltip/pds-tooltip.js +211 -26
  257. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
  258. package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +7 -3
  259. package/dist/collection/utils/interfaces.js +2 -0
  260. package/dist/collection/utils/interfaces.js.map +1 -0
  261. package/dist/collection/utils/overlay.js +66 -49
  262. package/dist/collection/utils/overlay.js.map +1 -1
  263. package/dist/collection/utils/utils.js +3 -2
  264. package/dist/collection/utils/utils.js.map +1 -1
  265. package/dist/docs.json +1670 -268
  266. package/dist/esm/{index-mVZRKoXd.js → index-_4gljHh-.js} +3 -3
  267. package/dist/esm/index-_4gljHh-.js.map +1 -0
  268. package/dist/esm/loader.js +1 -1
  269. package/dist/esm/mock-pds-modal.entry.js +84 -0
  270. package/dist/esm/mock-pds-modal.entry.js.map +1 -0
  271. package/dist/esm/pds-accordion.entry.js +1 -1
  272. package/dist/esm/pds-alert.entry.js +64 -0
  273. package/dist/esm/pds-alert.entry.js.map +1 -0
  274. package/dist/esm/pds-avatar.entry.js +2 -2
  275. package/dist/esm/pds-box.entry.js +2 -2
  276. package/dist/esm/pds-box.entry.js.map +1 -1
  277. package/dist/esm/pds-button.entry.js +33 -7
  278. package/dist/esm/pds-button.entry.js.map +1 -1
  279. package/dist/esm/pds-checkbox.entry.js +11 -5
  280. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  281. package/dist/esm/pds-chip.entry.js +2 -2
  282. package/dist/esm/pds-copytext.entry.js +3 -3
  283. package/dist/esm/pds-copytext.entry.js.map +1 -1
  284. package/dist/esm/pds-divider.entry.js +1 -1
  285. package/dist/esm/pds-dropdown-menu-item.entry.js +80 -0
  286. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -0
  287. package/dist/esm/pds-dropdown-menu-separator.entry.js +23 -0
  288. package/dist/esm/pds-dropdown-menu-separator.entry.js.map +1 -0
  289. package/dist/esm/pds-dropdown-menu.entry.js +1572 -0
  290. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -0
  291. package/dist/esm/pds-icon.entry.js +102 -7
  292. package/dist/esm/pds-icon.entry.js.map +1 -1
  293. package/dist/esm/pds-image.entry.js +2 -2
  294. package/dist/esm/pds-input.entry.js +6 -6
  295. package/dist/esm/pds-link.entry.js +16 -4
  296. package/dist/esm/pds-link.entry.js.map +1 -1
  297. package/dist/esm/pds-loader.entry.js +1 -1
  298. package/dist/esm/pds-modal-content.entry.js +91 -0
  299. package/dist/esm/pds-modal-content.entry.js.map +1 -0
  300. package/dist/esm/pds-modal-footer.entry.js +18 -0
  301. package/dist/esm/pds-modal-footer.entry.js.map +1 -0
  302. package/dist/esm/pds-modal-header.entry.js +18 -0
  303. package/dist/esm/pds-modal-header.entry.js.map +1 -0
  304. package/dist/esm/pds-modal.entry.js +251 -0
  305. package/dist/esm/pds-modal.entry.js.map +1 -0
  306. package/dist/esm/pds-popover.entry.js +33 -1
  307. package/dist/esm/pds-popover.entry.js.map +1 -1
  308. package/dist/esm/pds-progress.entry.js +1 -1
  309. package/dist/esm/pds-radio.entry.js +4 -4
  310. package/dist/esm/pds-row.entry.js +1 -1
  311. package/dist/esm/pds-select.entry.js +3 -3
  312. package/dist/esm/pds-sortable-item.entry.js +2 -2
  313. package/dist/esm/pds-sortable.entry.js +1 -1
  314. package/dist/esm/pds-switch.entry.js +9 -4
  315. package/dist/esm/pds-switch.entry.js.map +1 -1
  316. package/dist/esm/pds-tab.entry.js +3 -3
  317. package/dist/esm/pds-table-body.entry.js +1 -1
  318. package/dist/esm/pds-table-cell.entry.js +2 -2
  319. package/dist/esm/pds-table-head-cell.entry.js +3 -3
  320. package/dist/esm/pds-table-head.entry.js +1 -1
  321. package/dist/esm/pds-table-row.entry.js +1 -1
  322. package/dist/esm/pds-table.entry.js +1 -1
  323. package/dist/esm/pds-tabpanel.entry.js +1 -1
  324. package/dist/esm/pds-tabs.entry.js +1 -1
  325. package/dist/esm/pds-text.entry.js +2 -2
  326. package/dist/esm/pds-text.entry.js.map +1 -1
  327. package/dist/esm/pds-textarea.entry.js +6 -6
  328. package/dist/esm/pds-toast.entry.js +102 -0
  329. package/dist/esm/pds-toast.entry.js.map +1 -0
  330. package/dist/esm/pds-tooltip.entry.js +281 -79
  331. package/dist/esm/pds-tooltip.entry.js.map +1 -1
  332. package/dist/esm/pine-core.js +1 -1
  333. package/dist/esm/{utils-Dw9B1JDC.js → utils-DkabwBZT.js} +5 -4
  334. package/dist/esm/utils-DkabwBZT.js.map +1 -0
  335. package/dist/esm-es5/{index-mVZRKoXd.js → index-_4gljHh-.js} +1 -1
  336. package/dist/esm-es5/index-_4gljHh-.js.map +1 -0
  337. package/dist/esm-es5/loader.js +1 -1
  338. package/dist/esm-es5/mock-pds-modal.entry.js +2 -0
  339. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -0
  340. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  341. package/dist/esm-es5/pds-alert.entry.js +2 -0
  342. package/dist/esm-es5/pds-alert.entry.js.map +1 -0
  343. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  344. package/dist/esm-es5/pds-box.entry.js +1 -1
  345. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  346. package/dist/esm-es5/pds-button.entry.js +1 -1
  347. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  348. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  349. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  350. package/dist/esm-es5/pds-chip.entry.js +1 -1
  351. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  352. package/dist/esm-es5/pds-copytext.entry.js.map +1 -1
  353. package/dist/esm-es5/pds-divider.entry.js +1 -1
  354. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +2 -0
  355. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -0
  356. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +2 -0
  357. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js.map +1 -0
  358. package/dist/esm-es5/pds-dropdown-menu.entry.js +2 -0
  359. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -0
  360. package/dist/esm-es5/pds-icon.entry.js +1 -1
  361. package/dist/esm-es5/pds-icon.entry.js.map +1 -1
  362. package/dist/esm-es5/pds-image.entry.js +1 -1
  363. package/dist/esm-es5/pds-input.entry.js +1 -1
  364. package/dist/esm-es5/pds-link.entry.js +1 -1
  365. package/dist/esm-es5/pds-link.entry.js.map +1 -1
  366. package/dist/esm-es5/pds-loader.entry.js +1 -1
  367. package/dist/esm-es5/pds-modal-content.entry.js +2 -0
  368. package/dist/esm-es5/pds-modal-content.entry.js.map +1 -0
  369. package/dist/esm-es5/pds-modal-footer.entry.js +2 -0
  370. package/dist/esm-es5/pds-modal-footer.entry.js.map +1 -0
  371. package/dist/esm-es5/pds-modal-header.entry.js +2 -0
  372. package/dist/esm-es5/pds-modal-header.entry.js.map +1 -0
  373. package/dist/esm-es5/pds-modal.entry.js +2 -0
  374. package/dist/esm-es5/pds-modal.entry.js.map +1 -0
  375. package/dist/esm-es5/pds-popover.entry.js +1 -1
  376. package/dist/esm-es5/pds-popover.entry.js.map +1 -1
  377. package/dist/esm-es5/pds-progress.entry.js +1 -1
  378. package/dist/esm-es5/pds-radio.entry.js +1 -1
  379. package/dist/esm-es5/pds-row.entry.js +1 -1
  380. package/dist/esm-es5/pds-select.entry.js +1 -1
  381. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  382. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  383. package/dist/esm-es5/pds-switch.entry.js +1 -1
  384. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  385. package/dist/esm-es5/pds-tab.entry.js +1 -1
  386. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  387. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  388. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  389. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  390. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  391. package/dist/esm-es5/pds-table.entry.js +1 -1
  392. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  393. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  394. package/dist/esm-es5/pds-text.entry.js +1 -1
  395. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  396. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  397. package/dist/esm-es5/pds-toast.entry.js +2 -0
  398. package/dist/esm-es5/pds-toast.entry.js.map +1 -0
  399. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  400. package/dist/esm-es5/pds-tooltip.entry.js.map +1 -1
  401. package/dist/esm-es5/pine-core.js +1 -1
  402. package/dist/esm-es5/utils-DkabwBZT.js +2 -0
  403. package/dist/esm-es5/utils-DkabwBZT.js.map +1 -0
  404. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -0
  405. package/dist/pine-core/{p-ad69e5f9.system.entry.js → p-0069abf8.system.entry.js} +2 -2
  406. package/dist/pine-core/{p-a14c8ab4.system.entry.js → p-03d8cb4c.system.entry.js} +2 -2
  407. package/dist/pine-core/{p-2ab26d3d.system.entry.js → p-04df41d7.system.entry.js} +2 -2
  408. package/dist/pine-core/{p-0486ad57.entry.js → p-0572825b.entry.js} +2 -2
  409. package/dist/pine-core/{p-d2110923.system.entry.js → p-111e7da2.system.entry.js} +2 -2
  410. package/dist/pine-core/p-121e03ad.system.entry.js +2 -0
  411. package/dist/pine-core/p-121e03ad.system.entry.js.map +1 -0
  412. package/dist/pine-core/p-1224c874.entry.js +2 -0
  413. package/dist/pine-core/{p-b2bbc362.entry.js → p-146fcd44.entry.js} +2 -2
  414. package/dist/pine-core/{p-abcce8af.entry.js → p-17d3fa8b.entry.js} +2 -2
  415. package/dist/pine-core/p-1b109c01.entry.js +2 -0
  416. package/dist/pine-core/p-1b109c01.entry.js.map +1 -0
  417. package/dist/pine-core/p-1bd715ee.system.entry.js +2 -0
  418. package/dist/pine-core/p-1bd715ee.system.entry.js.map +1 -0
  419. package/dist/pine-core/{p-e4ea5041.system.entry.js → p-1eec6bea.system.entry.js} +2 -2
  420. package/dist/pine-core/p-21c3aaeb.entry.js +2 -0
  421. package/dist/pine-core/{p-f439922f.entry.js → p-2296c34f.entry.js} +2 -2
  422. package/dist/pine-core/{p-f439922f.entry.js.map → p-2296c34f.entry.js.map} +1 -1
  423. package/dist/pine-core/{p-5c396e75.entry.js → p-24607f93.entry.js} +2 -2
  424. package/dist/pine-core/p-28e28f42.system.entry.js +2 -0
  425. package/dist/pine-core/p-28e28f42.system.entry.js.map +1 -0
  426. package/dist/pine-core/p-29ad0b86.entry.js +2 -0
  427. package/dist/pine-core/p-29ad0b86.entry.js.map +1 -0
  428. package/dist/pine-core/{p-c0f0b368.system.entry.js → p-30142a25.system.entry.js} +2 -2
  429. package/dist/pine-core/p-32bd3e33.entry.js +2 -0
  430. package/dist/pine-core/p-32bd3e33.entry.js.map +1 -0
  431. package/dist/pine-core/{p-8305cd4d.entry.js → p-367e188f.entry.js} +2 -2
  432. package/dist/pine-core/{p-6147b1ea.system.entry.js → p-3798a631.system.entry.js} +2 -2
  433. package/dist/pine-core/p-3D0orTx_.system.js.map +1 -0
  434. package/dist/pine-core/p-3e91dccd.entry.js +2 -0
  435. package/dist/pine-core/p-3e91dccd.entry.js.map +1 -0
  436. package/dist/pine-core/{p-3fdbda99.system.entry.js → p-3f82ac77.system.entry.js} +2 -2
  437. package/dist/pine-core/p-4288c861.entry.js +2 -0
  438. package/dist/pine-core/p-4288c861.entry.js.map +1 -0
  439. package/dist/pine-core/p-47a7a65b.entry.js +2 -0
  440. package/dist/pine-core/p-47a7a65b.entry.js.map +1 -0
  441. package/dist/pine-core/{p-42f1190a.system.entry.js → p-48e76945.system.entry.js} +2 -2
  442. package/dist/pine-core/p-49265849.system.entry.js +2 -0
  443. package/dist/pine-core/p-49265849.system.entry.js.map +1 -0
  444. package/dist/pine-core/{p-b9f99fc9.entry.js → p-4ff0838c.entry.js} +2 -2
  445. package/dist/pine-core/p-513c16c7.entry.js +2 -0
  446. package/dist/pine-core/p-513c16c7.entry.js.map +1 -0
  447. package/dist/pine-core/{p-820faa91.system.entry.js → p-596e0292.system.entry.js} +2 -2
  448. package/dist/pine-core/p-5acda4ac.system.entry.js +2 -0
  449. package/dist/pine-core/p-5acda4ac.system.entry.js.map +1 -0
  450. package/dist/pine-core/p-5c4aceb7.entry.js +2 -0
  451. package/dist/pine-core/p-5c4aceb7.entry.js.map +1 -0
  452. package/dist/pine-core/{p-598ade79.entry.js → p-5e1e7762.entry.js} +2 -2
  453. package/dist/pine-core/p-624db3d6.system.entry.js +2 -0
  454. package/dist/pine-core/p-624db3d6.system.entry.js.map +1 -0
  455. package/dist/pine-core/{p-d0780ca1.system.entry.js → p-6a2296e6.system.entry.js} +2 -2
  456. package/dist/pine-core/{p-b68cb43d.system.entry.js → p-71265b2a.system.entry.js} +2 -2
  457. package/dist/pine-core/p-71f01676.system.entry.js +2 -0
  458. package/dist/pine-core/p-71f01676.system.entry.js.map +1 -0
  459. package/dist/pine-core/{p-a5587332.entry.js → p-722012ac.entry.js} +2 -2
  460. package/dist/pine-core/p-722012ac.entry.js.map +1 -0
  461. package/dist/pine-core/{p-98181fa8.system.entry.js → p-730221a8.system.entry.js} +2 -2
  462. package/dist/pine-core/{p-a97952fc.system.entry.js → p-73412ca9.system.entry.js} +2 -2
  463. package/dist/pine-core/{p-a97952fc.system.entry.js.map → p-73412ca9.system.entry.js.map} +1 -1
  464. package/dist/pine-core/{p-91dadcbe.entry.js → p-742d4490.entry.js} +2 -2
  465. package/dist/pine-core/p-761946a0.entry.js +2 -0
  466. package/dist/pine-core/p-761946a0.entry.js.map +1 -0
  467. package/dist/pine-core/{p-950427b2.entry.js → p-77c3a10d.entry.js} +2 -2
  468. package/dist/pine-core/{p-fed4c0c0.system.entry.js → p-78cb1c40.system.entry.js} +2 -2
  469. package/dist/pine-core/{p-1d92261f.system.entry.js → p-78fb945e.system.entry.js} +2 -2
  470. package/dist/pine-core/p-7b38e384.system.entry.js +2 -0
  471. package/dist/pine-core/{p-9d0c1b2e.system.entry.js.map → p-7b38e384.system.entry.js.map} +1 -1
  472. package/dist/pine-core/p-7e92ec48.system.entry.js +2 -0
  473. package/dist/pine-core/p-7e92ec48.system.entry.js.map +1 -0
  474. package/dist/pine-core/{p-13b9ed06.system.entry.js → p-7ff213bb.system.entry.js} +2 -2
  475. package/dist/pine-core/{p-9e9d3a2b.entry.js → p-8023086c.entry.js} +2 -2
  476. package/dist/pine-core/p-83252078.system.entry.js +2 -0
  477. package/dist/pine-core/{p-bedddd53.entry.js → p-833f08f3.entry.js} +2 -2
  478. package/dist/pine-core/p-83c632f6.system.entry.js +2 -0
  479. package/dist/pine-core/p-83c632f6.system.entry.js.map +1 -0
  480. package/dist/pine-core/p-83ffc1cc.entry.js +2 -0
  481. package/dist/pine-core/p-83ffc1cc.entry.js.map +1 -0
  482. package/dist/pine-core/p-85ff1482.entry.js +2 -0
  483. package/dist/pine-core/{p-d5838288.entry.js.map → p-85ff1482.entry.js.map} +1 -1
  484. package/dist/pine-core/{p-12bee2e5.entry.js → p-86d388a2.entry.js} +2 -2
  485. package/dist/pine-core/p-929bb7ab.system.entry.js +2 -0
  486. package/dist/pine-core/p-929bb7ab.system.entry.js.map +1 -0
  487. package/dist/pine-core/p-942fa145.system.entry.js +2 -0
  488. package/dist/pine-core/p-942fa145.system.entry.js.map +1 -0
  489. package/dist/pine-core/{p-e045e337.system.entry.js → p-984578f8.system.entry.js} +2 -2
  490. package/dist/pine-core/{p-e281ac09.entry.js → p-99b5e1a5.entry.js} +2 -2
  491. package/dist/pine-core/{p-BFPxUBwH.system.js.map → p-B-pTdYoP.system.js.map} +1 -1
  492. package/dist/pine-core/p-B2gfQpwn.system.js.map +1 -0
  493. package/dist/pine-core/{p-Bd19LaTb.system.js → p-B4W0_y2p.system.js} +1 -1
  494. package/dist/pine-core/p-B4W0_y2p.system.js.map +1 -0
  495. package/dist/pine-core/{p-CDhmuxC9.system.js.map → p-B5JFBYFw.system.js.map} +1 -1
  496. package/dist/pine-core/p-B5LBNcOw.system.js.map +1 -0
  497. package/dist/pine-core/{p-B46WXJMn.system.js.map → p-BHZ6CSg4.system.js.map} +1 -1
  498. package/dist/pine-core/{p-Dlv6r83m.system.js.map → p-BO1OsmVU.system.js.map} +1 -1
  499. package/dist/pine-core/{p-Cj21y714.system.js.map → p-BOJnNd1p.system.js.map} +1 -1
  500. package/dist/pine-core/p-BVUeEWjl.system.js.map +1 -0
  501. package/dist/pine-core/{p-C94EgDFz.system.js → p-BhPuKJbQ.system.js} +2 -2
  502. package/dist/pine-core/p-BhPuKJbQ.system.js.map +1 -0
  503. package/dist/pine-core/p-Bo6FQRlR.system.js.map +1 -0
  504. package/dist/pine-core/{p-kMnJefdU.system.js.map → p-Bs9Nyvj2.system.js.map} +1 -1
  505. package/dist/pine-core/p-BsL2GDnH.system.js +1 -1
  506. package/dist/pine-core/p-C-oNYS10.system.js.map +1 -0
  507. package/dist/pine-core/p-C3ud771n.system.js.map +1 -0
  508. package/dist/pine-core/{p-C0hVtnK2.system.js.map → p-CDIHBBTC.system.js.map} +1 -1
  509. package/dist/pine-core/p-CLNi-hRD.system.js.map +1 -0
  510. package/dist/pine-core/{p-BjCOR1Nn.system.js.map → p-CV405yTU.system.js.map} +1 -1
  511. package/dist/pine-core/p-CWtKi9tV.system.js.map +1 -0
  512. package/dist/pine-core/{p-BoNavS-S.system.js.map → p-CcsZC7UR.system.js.map} +1 -1
  513. package/dist/pine-core/p-CiDIFl28.system.js.map +1 -0
  514. package/dist/pine-core/{p-BYgoXBct.system.js.map → p-Cj2r1nL6.system.js.map} +1 -1
  515. package/dist/pine-core/{p-w3zTyPF1.system.js.map → p-CnPERKGo.system.js.map} +1 -1
  516. package/dist/pine-core/p-CsM74dxm.system.js.map +1 -0
  517. package/dist/pine-core/{p-CFcYB49C.system.js.map → p-CtAVdPaE.system.js.map} +1 -1
  518. package/dist/pine-core/{p-qXPbJ8Ls.system.js.map → p-CzKqvFNN.system.js.map} +1 -1
  519. package/dist/pine-core/{p-CmTz2SvK.system.js.map → p-D-4Xbxlj.system.js.map} +1 -1
  520. package/dist/pine-core/{p-BVNW4NmT.system.js.map → p-D5vuiRx2.system.js.map} +1 -1
  521. package/dist/pine-core/p-D8DRYw9w.system.js.map +1 -0
  522. package/dist/pine-core/{p-DVVPJPOu.system.js.map → p-D9LPgNmN.system.js.map} +1 -1
  523. package/dist/pine-core/{p-DY5LpFEG.system.js.map → p-DEsea81X.system.js.map} +1 -1
  524. package/dist/pine-core/p-DKSZziVY.system.js.map +1 -0
  525. package/dist/pine-core/{p-CLIVqKy5.system.js.map → p-DN9puCWI.system.js.map} +1 -1
  526. package/dist/pine-core/{p-C0cdB2AV.system.js.map → p-DS7q5AvX.system.js.map} +1 -1
  527. package/dist/pine-core/{p-BSINexOf.system.js.map → p-DV_GadHU.system.js.map} +1 -1
  528. package/dist/pine-core/{p-BgcVBzVE.system.js.map → p-DbVkYdnF.system.js.map} +1 -1
  529. package/dist/pine-core/{p-eKz-xVcI.system.js.map → p-Derxa-nn.system.js.map} +1 -1
  530. package/dist/pine-core/{p-BW-n3jjz.system.js.map → p-DgOMN0Ur.system.js.map} +1 -1
  531. package/dist/pine-core/p-DiJV28pi.system.js.map +1 -0
  532. package/dist/pine-core/p-DkabwBZT.js +2 -0
  533. package/dist/pine-core/p-DkabwBZT.js.map +1 -0
  534. package/dist/pine-core/p-DyQ_s5MV.system.js.map +1 -0
  535. package/dist/pine-core/p-HBgo7i_E.system.js.map +1 -0
  536. package/dist/pine-core/{p-BUZBNCHp.system.js.map → p-M2Hhmwex.system.js.map} +1 -1
  537. package/dist/pine-core/p-PkSWq78_.system.js.map +1 -0
  538. package/dist/pine-core/{p-mVZRKoXd.js → p-_4gljHh-.js} +1 -1
  539. package/dist/pine-core/p-_4gljHh-.js.map +1 -0
  540. package/dist/pine-core/{p-1995a0f8.system.entry.js → p-a2572675.system.entry.js} +2 -2
  541. package/dist/pine-core/{p-85073252.system.entry.js → p-a394645a.system.entry.js} +2 -2
  542. package/dist/pine-core/p-a52b1413.entry.js +2 -0
  543. package/dist/pine-core/p-a52b1413.entry.js.map +1 -0
  544. package/dist/pine-core/{p-dae339c3.entry.js → p-abec6606.entry.js} +2 -2
  545. package/dist/pine-core/p-b2796d3c.system.entry.js +2 -0
  546. package/dist/pine-core/p-b2796d3c.system.entry.js.map +1 -0
  547. package/dist/pine-core/{p-5db706e1.entry.js → p-b3d05184.entry.js} +2 -2
  548. package/dist/pine-core/{p-b902f535.entry.js → p-b7ba6316.entry.js} +2 -2
  549. package/dist/pine-core/p-b9c13f99.entry.js +2 -0
  550. package/dist/pine-core/p-b9c13f99.entry.js.map +1 -0
  551. package/dist/pine-core/{p-14ca569b.entry.js → p-bcc4edaa.entry.js} +2 -2
  552. package/dist/pine-core/{p-1178485a.system.entry.js → p-bd04212c.system.entry.js} +2 -2
  553. package/dist/pine-core/{p-1178485a.system.entry.js.map → p-bd04212c.system.entry.js.map} +1 -1
  554. package/dist/pine-core/{p-9cdd57de.entry.js → p-c0f74199.entry.js} +2 -2
  555. package/dist/pine-core/{p-ed8c3064.system.entry.js → p-c1b0f921.system.entry.js} +2 -2
  556. package/dist/pine-core/{p-68de979e.entry.js → p-c4294be2.entry.js} +2 -2
  557. package/dist/pine-core/p-cd2cd116.entry.js +2 -0
  558. package/dist/pine-core/p-cd2cd116.entry.js.map +1 -0
  559. package/dist/pine-core/p-d1b222f5.entry.js +2 -0
  560. package/dist/pine-core/p-d1b222f5.entry.js.map +1 -0
  561. package/dist/pine-core/{p-7b6b354a.system.entry.js → p-d2ccda59.system.entry.js} +2 -2
  562. package/dist/pine-core/p-d6ac2862.system.entry.js +2 -0
  563. package/dist/pine-core/p-d6ac2862.system.entry.js.map +1 -0
  564. package/dist/pine-core/{p-040f3c92.system.entry.js → p-e09a3682.system.entry.js} +2 -2
  565. package/dist/pine-core/{p-792355e6.entry.js → p-e2dc81c0.entry.js} +2 -2
  566. package/dist/pine-core/p-e6d6e103.entry.js +2 -0
  567. package/dist/pine-core/p-e6d6e103.entry.js.map +1 -0
  568. package/dist/pine-core/{p-6c21bcb0.system.entry.js → p-e9d972db.system.entry.js} +2 -2
  569. package/dist/pine-core/p-e9d972db.system.entry.js.map +1 -0
  570. package/dist/pine-core/p-ef9ed75a.system.entry.js +2 -0
  571. package/dist/pine-core/p-ef9ed75a.system.entry.js.map +1 -0
  572. package/dist/pine-core/{p-4b59cae8.entry.js → p-f256dd8a.entry.js} +2 -2
  573. package/dist/pine-core/{p-4b59cae8.entry.js.map → p-f256dd8a.entry.js.map} +1 -1
  574. package/dist/pine-core/p-f2c807ac.entry.js +2 -0
  575. package/dist/pine-core/p-f2c807ac.entry.js.map +1 -0
  576. package/dist/pine-core/{p-eda0dc79.entry.js → p-f47133fd.entry.js} +2 -2
  577. package/dist/pine-core/p-f4fff209.system.entry.js +2 -0
  578. package/dist/pine-core/p-f4fff209.system.entry.js.map +1 -0
  579. package/dist/pine-core/p-f9e01886.system.entry.js +2 -0
  580. package/dist/pine-core/p-f9e01886.system.entry.js.map +1 -0
  581. package/dist/pine-core/{p-DhYEBuMP.system.js.map → p-xgOOHGQo.system.js.map} +1 -1
  582. package/dist/pine-core/p-yku4NLl6.system.js.map +1 -0
  583. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -0
  584. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  585. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  586. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  587. package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
  588. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -0
  589. package/dist/pine-core/pds-dropdown-menu-separator.entry.esm.js.map +1 -0
  590. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -0
  591. package/dist/pine-core/pds-icon.entry.esm.js.map +1 -1
  592. package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
  593. package/dist/pine-core/pds-modal-content.entry.esm.js.map +1 -0
  594. package/dist/pine-core/pds-modal-footer.entry.esm.js.map +1 -0
  595. package/dist/pine-core/pds-modal-header.entry.esm.js.map +1 -0
  596. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -0
  597. package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
  598. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  599. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  600. package/dist/pine-core/pds-toast.entry.esm.js.map +1 -0
  601. package/dist/pine-core/pds-tooltip.entry.esm.js.map +1 -1
  602. package/dist/pine-core/pine-core.esm.js +1 -1
  603. package/dist/types/components/pds-alert/pds-alert.d.ts +39 -0
  604. package/dist/types/components/pds-box/pds-box.d.ts +6 -6
  605. package/dist/types/components/pds-button/pds-button.d.ts +8 -1
  606. package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +3 -0
  607. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +43 -0
  608. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.d.ts +13 -0
  609. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +33 -0
  610. package/dist/types/components/pds-link/pds-link.d.ts +5 -0
  611. package/dist/types/components/pds-modal/pds-modal-content/pds-modal-content.d.ts +25 -0
  612. package/dist/types/components/pds-modal/pds-modal-footer/pds-modal-footer.d.ts +3 -0
  613. package/dist/types/components/pds-modal/pds-modal-header/pds-modal-header.d.ts +3 -0
  614. package/dist/types/components/pds-modal/pds-modal.d.ts +72 -0
  615. package/dist/types/components/pds-modal/test/mock-pds-modal.d.ts +63 -0
  616. package/dist/types/components/pds-switch/pds-switch.d.ts +2 -0
  617. package/dist/types/components/pds-toast/pds-toast.d.ts +57 -0
  618. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +28 -3
  619. package/dist/types/components.d.ts +543 -16
  620. package/dist/types/utils/interfaces.d.ts +6 -0
  621. package/dist/types/utils/overlay.d.ts +3 -3
  622. package/dist/types/utils/utils.d.ts +1 -1
  623. package/hydrate/index.js +3093 -324
  624. package/hydrate/index.mjs +3093 -324
  625. package/package.json +6 -2
  626. package/dist/cjs/index-Br1YlNK2.js.map +0 -1
  627. package/dist/cjs/utils-CQKIgzWg.js.map +0 -1
  628. package/dist/esm/index-mVZRKoXd.js.map +0 -1
  629. package/dist/esm/utils-Dw9B1JDC.js.map +0 -1
  630. package/dist/esm-es5/index-mVZRKoXd.js.map +0 -1
  631. package/dist/esm-es5/utils-Dw9B1JDC.js +0 -2
  632. package/dist/esm-es5/utils-Dw9B1JDC.js.map +0 -1
  633. package/dist/pine-core/p-012c4d8b.entry.js +0 -2
  634. package/dist/pine-core/p-012c4d8b.entry.js.map +0 -1
  635. package/dist/pine-core/p-1d690915.entry.js +0 -2
  636. package/dist/pine-core/p-294f9b1f.entry.js +0 -2
  637. package/dist/pine-core/p-3be0323a.system.entry.js +0 -2
  638. package/dist/pine-core/p-3be0323a.system.entry.js.map +0 -1
  639. package/dist/pine-core/p-433c6687.system.entry.js +0 -2
  640. package/dist/pine-core/p-433c6687.system.entry.js.map +0 -1
  641. package/dist/pine-core/p-545ccff7.system.entry.js +0 -2
  642. package/dist/pine-core/p-545ccff7.system.entry.js.map +0 -1
  643. package/dist/pine-core/p-5c9e1a3d.system.entry.js +0 -2
  644. package/dist/pine-core/p-5c9e1a3d.system.entry.js.map +0 -1
  645. package/dist/pine-core/p-6c21bcb0.system.entry.js.map +0 -1
  646. package/dist/pine-core/p-722989ee.entry.js +0 -2
  647. package/dist/pine-core/p-722989ee.entry.js.map +0 -1
  648. package/dist/pine-core/p-768e754e.system.entry.js +0 -2
  649. package/dist/pine-core/p-768e754e.system.entry.js.map +0 -1
  650. package/dist/pine-core/p-953f619f.system.entry.js +0 -2
  651. package/dist/pine-core/p-9d0c1b2e.system.entry.js +0 -2
  652. package/dist/pine-core/p-BBpt-9kK.system.js.map +0 -1
  653. package/dist/pine-core/p-BUD-iaLL.system.js.map +0 -1
  654. package/dist/pine-core/p-Bd19LaTb.system.js.map +0 -1
  655. package/dist/pine-core/p-C94EgDFz.system.js.map +0 -1
  656. package/dist/pine-core/p-CIzJqNxZ.system.js.map +0 -1
  657. package/dist/pine-core/p-CbNKHcsJ.system.js.map +0 -1
  658. package/dist/pine-core/p-CdkqpuKd.system.js.map +0 -1
  659. package/dist/pine-core/p-Chrs_Qxi.system.js.map +0 -1
  660. package/dist/pine-core/p-DhwO1z4v.system.js.map +0 -1
  661. package/dist/pine-core/p-Dw9B1JDC.js +0 -2
  662. package/dist/pine-core/p-Dw9B1JDC.js.map +0 -1
  663. package/dist/pine-core/p-a5587332.entry.js.map +0 -1
  664. package/dist/pine-core/p-aa955b03.entry.js +0 -2
  665. package/dist/pine-core/p-aa955b03.entry.js.map +0 -1
  666. package/dist/pine-core/p-amsdFwC6.system.js.map +0 -1
  667. package/dist/pine-core/p-b41dee6f.system.entry.js +0 -2
  668. package/dist/pine-core/p-b41dee6f.system.entry.js.map +0 -1
  669. package/dist/pine-core/p-d5838288.entry.js +0 -2
  670. package/dist/pine-core/p-e7bf0be9.entry.js +0 -2
  671. package/dist/pine-core/p-e7bf0be9.entry.js.map +0 -1
  672. package/dist/pine-core/p-f1156360.entry.js +0 -2
  673. package/dist/pine-core/p-f1156360.entry.js.map +0 -1
  674. package/dist/pine-core/p-f4898d4f.entry.js +0 -2
  675. package/dist/pine-core/p-f4898d4f.entry.js.map +0 -1
  676. package/dist/pine-core/p-mVZRKoXd.js.map +0 -1
  677. /package/dist/pine-core/{p-ad69e5f9.system.entry.js.map → p-0069abf8.system.entry.js.map} +0 -0
  678. /package/dist/pine-core/{p-a14c8ab4.system.entry.js.map → p-03d8cb4c.system.entry.js.map} +0 -0
  679. /package/dist/pine-core/{p-2ab26d3d.system.entry.js.map → p-04df41d7.system.entry.js.map} +0 -0
  680. /package/dist/pine-core/{p-0486ad57.entry.js.map → p-0572825b.entry.js.map} +0 -0
  681. /package/dist/pine-core/{p-d2110923.system.entry.js.map → p-111e7da2.system.entry.js.map} +0 -0
  682. /package/dist/pine-core/{p-1d690915.entry.js.map → p-1224c874.entry.js.map} +0 -0
  683. /package/dist/pine-core/{p-b2bbc362.entry.js.map → p-146fcd44.entry.js.map} +0 -0
  684. /package/dist/pine-core/{p-abcce8af.entry.js.map → p-17d3fa8b.entry.js.map} +0 -0
  685. /package/dist/pine-core/{p-e4ea5041.system.entry.js.map → p-1eec6bea.system.entry.js.map} +0 -0
  686. /package/dist/pine-core/{p-294f9b1f.entry.js.map → p-21c3aaeb.entry.js.map} +0 -0
  687. /package/dist/pine-core/{p-5c396e75.entry.js.map → p-24607f93.entry.js.map} +0 -0
  688. /package/dist/pine-core/{p-c0f0b368.system.entry.js.map → p-30142a25.system.entry.js.map} +0 -0
  689. /package/dist/pine-core/{p-8305cd4d.entry.js.map → p-367e188f.entry.js.map} +0 -0
  690. /package/dist/pine-core/{p-6147b1ea.system.entry.js.map → p-3798a631.system.entry.js.map} +0 -0
  691. /package/dist/pine-core/{p-3fdbda99.system.entry.js.map → p-3f82ac77.system.entry.js.map} +0 -0
  692. /package/dist/pine-core/{p-42f1190a.system.entry.js.map → p-48e76945.system.entry.js.map} +0 -0
  693. /package/dist/pine-core/{p-b9f99fc9.entry.js.map → p-4ff0838c.entry.js.map} +0 -0
  694. /package/dist/pine-core/{p-820faa91.system.entry.js.map → p-596e0292.system.entry.js.map} +0 -0
  695. /package/dist/pine-core/{p-598ade79.entry.js.map → p-5e1e7762.entry.js.map} +0 -0
  696. /package/dist/pine-core/{p-d0780ca1.system.entry.js.map → p-6a2296e6.system.entry.js.map} +0 -0
  697. /package/dist/pine-core/{p-b68cb43d.system.entry.js.map → p-71265b2a.system.entry.js.map} +0 -0
  698. /package/dist/pine-core/{p-98181fa8.system.entry.js.map → p-730221a8.system.entry.js.map} +0 -0
  699. /package/dist/pine-core/{p-91dadcbe.entry.js.map → p-742d4490.entry.js.map} +0 -0
  700. /package/dist/pine-core/{p-950427b2.entry.js.map → p-77c3a10d.entry.js.map} +0 -0
  701. /package/dist/pine-core/{p-fed4c0c0.system.entry.js.map → p-78cb1c40.system.entry.js.map} +0 -0
  702. /package/dist/pine-core/{p-1d92261f.system.entry.js.map → p-78fb945e.system.entry.js.map} +0 -0
  703. /package/dist/pine-core/{p-13b9ed06.system.entry.js.map → p-7ff213bb.system.entry.js.map} +0 -0
  704. /package/dist/pine-core/{p-9e9d3a2b.entry.js.map → p-8023086c.entry.js.map} +0 -0
  705. /package/dist/pine-core/{p-953f619f.system.entry.js.map → p-83252078.system.entry.js.map} +0 -0
  706. /package/dist/pine-core/{p-bedddd53.entry.js.map → p-833f08f3.entry.js.map} +0 -0
  707. /package/dist/pine-core/{p-12bee2e5.entry.js.map → p-86d388a2.entry.js.map} +0 -0
  708. /package/dist/pine-core/{p-e045e337.system.entry.js.map → p-984578f8.system.entry.js.map} +0 -0
  709. /package/dist/pine-core/{p-e281ac09.entry.js.map → p-99b5e1a5.entry.js.map} +0 -0
  710. /package/dist/pine-core/{p-1995a0f8.system.entry.js.map → p-a2572675.system.entry.js.map} +0 -0
  711. /package/dist/pine-core/{p-85073252.system.entry.js.map → p-a394645a.system.entry.js.map} +0 -0
  712. /package/dist/pine-core/{p-dae339c3.entry.js.map → p-abec6606.entry.js.map} +0 -0
  713. /package/dist/pine-core/{p-5db706e1.entry.js.map → p-b3d05184.entry.js.map} +0 -0
  714. /package/dist/pine-core/{p-b902f535.entry.js.map → p-b7ba6316.entry.js.map} +0 -0
  715. /package/dist/pine-core/{p-14ca569b.entry.js.map → p-bcc4edaa.entry.js.map} +0 -0
  716. /package/dist/pine-core/{p-9cdd57de.entry.js.map → p-c0f74199.entry.js.map} +0 -0
  717. /package/dist/pine-core/{p-ed8c3064.system.entry.js.map → p-c1b0f921.system.entry.js.map} +0 -0
  718. /package/dist/pine-core/{p-68de979e.entry.js.map → p-c4294be2.entry.js.map} +0 -0
  719. /package/dist/pine-core/{p-7b6b354a.system.entry.js.map → p-d2ccda59.system.entry.js.map} +0 -0
  720. /package/dist/pine-core/{p-040f3c92.system.entry.js.map → p-e09a3682.system.entry.js.map} +0 -0
  721. /package/dist/pine-core/{p-792355e6.entry.js.map → p-e2dc81c0.entry.js.map} +0 -0
  722. /package/dist/pine-core/{p-eda0dc79.entry.js.map → p-f47133fd.entry.js.map} +0 -0
@@ -1,80 +1,106 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
 
3
3
  const positionTooltip = ({ elem, elemPlacement, overlay, offset = 8 }) => {
4
- if (elem == undefined)
5
- return;
4
+ if (elem === null || overlay === null)
5
+ return false;
6
+ if (typeof elemPlacement !== 'string' || elemPlacement.trim() === '') {
7
+ return false;
8
+ }
6
9
  const rect = elem.getBoundingClientRect();
7
10
  const contentRect = overlay.getBoundingClientRect();
8
- // Exit the function if the placement is not set
9
- if (!elemPlacement || elemPlacement == "")
10
- return;
11
+ // Reset styles
12
+ overlay.style.top = '';
13
+ overlay.style.left = '';
14
+ overlay.style.right = '';
15
+ overlay.style.bottom = '';
16
+ overlay.style.transform = '';
17
+ // Use fixed positioning for portal overlays
18
+ overlay.style.position = 'fixed';
19
+ // Detect if the trigger is a span with only text or a text node
20
+ let isTextTrigger = false;
21
+ if (elem.childNodes.length === 1 && elem.childNodes[0].nodeType === Node.TEXT_NODE) {
22
+ isTextTrigger = true;
23
+ }
24
+ else if (elem.childNodes.length === 1 && elem.childNodes[0].nodeType === Node.ELEMENT_NODE) {
25
+ const child = elem.childNodes[0];
26
+ if (child.tagName === 'SPAN' && child.childNodes.length === 1 && child.childNodes[0].nodeType === Node.TEXT_NODE) {
27
+ isTextTrigger = true;
28
+ }
29
+ }
11
30
  switch (true) {
12
- case elemPlacement.includes("right"):
13
- overlay.style.top = '50%';
14
- overlay.style.left = `calc(${rect.width}px + ${offset}px)`;
15
- overlay.style.transform = 'translateY(-50%)';
16
- if (elemPlacement.includes("start")) {
17
- overlay.style.top = '0';
18
- overlay.style.transform = 'translateY(0)';
19
- }
20
- if (elemPlacement.includes("end")) {
21
- overlay.style.bottom = '0';
22
- overlay.style.top = 'initial';
23
- overlay.style.transform = 'translateY(0)';
31
+ case elemPlacement.includes('right'):
32
+ if (isTextTrigger) {
33
+ // Align to the bottom of the trigger for text triggers
34
+ overlay.style.top = `${rect.bottom - contentRect.height / 2}px`;
35
+ }
36
+ else {
37
+ overlay.style.top = `${rect.top + rect.height / 2 - contentRect.height / 2}px`;
38
+ }
39
+ overlay.style.left = `${rect.right + offset}px`;
40
+ if (elemPlacement.includes('start')) {
41
+ overlay.style.top = `${rect.top}px`;
42
+ }
43
+ if (elemPlacement.includes('end')) {
44
+ overlay.style.top = `${rect.bottom - contentRect.height}px`;
24
45
  }
25
46
  break;
26
- case elemPlacement.includes("left"):
27
- overlay.style.top = '50%';
28
- overlay.style.right = `calc(${rect.width}px + ${offset}px)`;
29
- overlay.style.transform = 'translateY(-50%)';
30
- if (elemPlacement.includes("start")) {
31
- overlay.style.top = '0';
32
- overlay.style.transform = 'translateY(0)';
33
- }
34
- if (elemPlacement.includes("end")) {
35
- overlay.style.bottom = '0';
36
- overlay.style.top = 'initial';
37
- overlay.style.transform = 'translateY(0)';
47
+ case elemPlacement.includes('left'):
48
+ if (isTextTrigger) {
49
+ overlay.style.top = `${rect.bottom - contentRect.height / 2}px`;
50
+ }
51
+ else {
52
+ overlay.style.top = `${rect.top + rect.height / 2 - contentRect.height / 2}px`;
53
+ }
54
+ overlay.style.left = `${rect.left - contentRect.width - offset}px`;
55
+ if (elemPlacement.includes('start')) {
56
+ overlay.style.top = `${rect.top}px`;
57
+ }
58
+ if (elemPlacement.includes('end')) {
59
+ overlay.style.top = `${rect.bottom - contentRect.height}px`;
38
60
  }
39
61
  break;
40
- case elemPlacement.includes("bottom"):
41
- overlay.style.top = `calc(${rect.height}px + ${offset}px)`;
42
- overlay.style.left = '50%';
43
- overlay.style.transform = 'translateX(-50%)';
44
- if (elemPlacement.includes("start")) {
45
- overlay.style.left = '0';
46
- overlay.style.transform = 'translateX(0)';
47
- }
48
- if (elemPlacement.includes("end")) {
49
- overlay.style.left = 'initial';
50
- overlay.style.right = '0';
51
- overlay.style.transform = 'translateX(0)';
62
+ case elemPlacement.includes('bottom'):
63
+ overlay.style.top = `${rect.bottom + offset}px`;
64
+ overlay.style.left = `${rect.left + rect.width / 2 - contentRect.width / 2}px`;
65
+ if (elemPlacement.includes('start')) {
66
+ overlay.style.left = `${rect.left}px`;
67
+ }
68
+ if (elemPlacement.includes('end')) {
69
+ overlay.style.left = `${rect.right - contentRect.width}px`;
70
+ overlay.style.right = 'initial';
52
71
  }
53
72
  break;
54
- case elemPlacement.includes("top"):
55
- overlay.style.top = `calc((${contentRect.height}px + ${offset}px) * -1)`;
56
- overlay.style.left = '50%';
57
- overlay.style.transform = 'translateX(-50%)';
58
- if (elemPlacement.includes("start")) {
59
- overlay.style.left = '0';
60
- overlay.style.transform = 'translateX(0)';
61
- }
62
- if (elemPlacement.includes("end")) {
63
- overlay.style.left = 'initial';
64
- overlay.style.right = '0';
65
- overlay.style.transform = 'translateX(0)';
73
+ case elemPlacement.includes('top'):
74
+ overlay.style.top = `${rect.top - contentRect.height - offset}px`;
75
+ overlay.style.left = `${rect.left + rect.width / 2 - contentRect.width / 2}px`;
76
+ if (elemPlacement.includes('start')) {
77
+ overlay.style.left = `${rect.left}px`;
78
+ }
79
+ if (elemPlacement.includes('end')) {
80
+ overlay.style.left = `${rect.right - contentRect.width}px`;
81
+ overlay.style.right = 'initial';
66
82
  }
67
83
  break;
68
84
  }
85
+ return true;
69
86
  };
70
87
 
71
- const pdsTooltipCss = ":host{--tooltip-border-width-arrow-down:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-left:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-right:var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-border-width-arrow-up:0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-sizing-arrow:6px;--tooltip-sizing-arrow-offset:14px;--tooltip-dimension-max-width:320px;display:inline-block;position:relative}:host ::slotted(*){display:-ms-flexbox;display:flex}:host ::slotted([slot=content]){display:block;max-width:var(--tooltip-dimension-max-width);white-space:normal}.pds-tooltip__content{background-color:var(--pine-color-primary);border-radius:calc(var(--pine-dimension-xs) * 1.25);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);color:var(--pine-color-text-primary);max-width:var(--tooltip-dimension-max-width);opacity:0;padding:var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);position:absolute;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content}.pds-tooltip--is-open .pds-tooltip__content{opacity:1;visibility:visible;z-index:1}:host(.pds-tooltip--has-html-content) .pds-tooltip__content{width:auto}.pds-tooltip__content::after{border-color:transparent;border-right-color:transparent;border-style:solid;border-width:var(--tooltip-border-width-arrow-left);content:\"\";height:0;position:absolute;width:0}.pds-tooltip--right .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--right-end .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);bottom:var(--tooltip-sizing-arrow-offset);left:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--right-start .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--top .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:50%;top:initial;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--top-start .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--top-end .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:initial;right:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--left .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--left-end .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);bottom:var(--tooltip-sizing-arrow-offset);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--left-start .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--bottom .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:50%;top:calc(var(--tooltip-sizing-arrow) * -1);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--bottom-end .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:initial;right:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--bottom-start .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--no-arrow .pds-tooltip__content::after{border-width:0}";
88
+ const pdsTooltipCss = ".pds-tooltip{--tooltip-border-width-arrow-down:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-left:var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;--tooltip-border-width-arrow-right:var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-border-width-arrow-up:0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);--tooltip-sizing-arrow:6px;--tooltip-sizing-arrow-offset:14px;--tooltip-dimension-max-width:320px}.pds-tooltip__content{background-color:var(--pine-color-primary);border-radius:calc(var(--pine-dimension-xs) * 1.25);-webkit-box-shadow:var(--pine-box-shadow);box-shadow:var(--pine-box-shadow);color:var(--pine-color-text-primary);max-width:var(--tooltip-dimension-max-width);opacity:0;padding:var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);position:absolute;visibility:hidden;width:-webkit-max-content;width:-moz-max-content;width:max-content}.pds-tooltip--is-open .pds-tooltip__content{opacity:1;visibility:visible;z-index:1}.pds-tooltip.pds-tooltip--has-html-content .pds-tooltip__content{width:auto}.pds-tooltip__content::after{border-color:transparent;border-right-color:transparent;border-style:solid;border-width:var(--tooltip-border-width-arrow-left);content:\"\";height:0;position:absolute;width:0}.pds-tooltip--right .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--right-end .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);bottom:var(--tooltip-sizing-arrow-offset);left:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--right-start .pds-tooltip__content::after{border-inline-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-left);left:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--top .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:50%;top:initial;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--top-start .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--top-end .pds-tooltip__content::after{border-block-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-down);bottom:calc(var(--tooltip-sizing-arrow) * -1);left:initial;right:var(--tooltip-sizing-arrow-offset);top:initial}.pds-tooltip--left .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.pds-tooltip--left-end .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);bottom:var(--tooltip-sizing-arrow-offset);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:initial}.pds-tooltip--left-start .pds-tooltip__content::after{border-inline-start-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-right);left:initial;right:calc(var(--tooltip-sizing-arrow) * -1);top:var(--tooltip-sizing-arrow-offset)}.pds-tooltip--bottom .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:50%;top:calc(var(--tooltip-sizing-arrow) * -1);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pds-tooltip--bottom-end .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:initial;right:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--bottom-start .pds-tooltip__content::after{border-block-end-color:var(--pine-color-primary);border-width:var(--tooltip-border-width-arrow-up);left:var(--tooltip-sizing-arrow-offset);top:calc(var(--tooltip-sizing-arrow) * -1)}.pds-tooltip--no-arrow .pds-tooltip__content::after{border-width:0}";
72
89
 
73
90
  const PdsTooltip$1 = /*@__PURE__*/ proxyCustomElement(class PdsTooltip extends HTMLElement {
74
91
  constructor() {
75
92
  super();
76
93
  this.__registerHost();
77
- this.__attachShadow();
94
+ /**
95
+ * Internal state: true if the tooltip was opened by user interaction (hover/focus),
96
+ * false if opened via the `opened` prop or currently closed.
97
+ */
98
+ this._isInteractiveOpen = false;
99
+ this.portalEl = null;
100
+ this.triggerEl = null;
101
+ this.contentDiv = null;
102
+ this.slotMutationObserver = null;
103
+ this.overlayResizeObserver = null;
78
104
  /**
79
105
  * Determines when the tooltip is open
80
106
  * @defaultValue false
@@ -106,44 +132,80 @@ const PdsTooltip$1 = /*@__PURE__*/ proxyCustomElement(class PdsTooltip extends H
106
132
  */
107
133
  this.opened = false;
108
134
  this.handleHide = () => {
135
+ if (this.opened && !this._isInteractiveOpen) {
136
+ return;
137
+ }
109
138
  this.hideTooltip();
139
+ this._isInteractiveOpen = false;
110
140
  };
111
141
  this.handleShow = () => {
142
+ if (this.opened && !this._isInteractiveOpen) {
143
+ return;
144
+ }
145
+ this._isInteractiveOpen = true;
112
146
  this.showTooltip();
113
147
  };
114
148
  this.handlePageShow = () => {
149
+ if (this.opened && !this._isInteractiveOpen) {
150
+ return;
151
+ }
115
152
  this.opened = false;
153
+ this._isInteractiveOpen = false;
154
+ };
155
+ this.handleScroll = () => {
156
+ if (this.opened) {
157
+ if (!this._isInteractiveOpen) {
158
+ this.repositionPortal();
159
+ }
160
+ else {
161
+ this.hideTooltip();
162
+ this._isInteractiveOpen = false;
163
+ }
164
+ }
165
+ };
166
+ this.handleSpaNavigation = () => {
167
+ if (this.opened && !this._isInteractiveOpen) {
168
+ return;
169
+ }
170
+ this.hideTooltip();
171
+ this._isInteractiveOpen = false;
116
172
  };
117
173
  }
118
- handleOpenToggle() {
119
- if (this.opened) {
120
- this.handleShow();
121
- }
122
- else {
123
- this.handleHide();
174
+ handleOpenToggle(newValue, oldValue) {
175
+ if (newValue === false && oldValue === true) {
176
+ this._isInteractiveOpen = false;
124
177
  }
125
178
  }
126
179
  componentWillLoad() {
127
- if (this.opened) {
128
- this.showTooltip();
129
- }
130
- this.el.addEventListener('blur', this.handleHide, true);
131
- this.el.addEventListener('focus', this.handleShow, true);
180
+ this._isInteractiveOpen = false;
132
181
  }
133
182
  componentDidLoad() {
134
- // fix for Safari iOS back button issue
135
183
  window.addEventListener('pageshow', this.handlePageShow);
184
+ this.triggerEl = this.el.querySelector('.pds-tooltip__trigger');
185
+ const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');
186
+ if (contentSlotWrapper !== null) {
187
+ this.slotMutationObserver = new MutationObserver(() => {
188
+ if (this.opened && this.portalEl !== null) {
189
+ this.removePortal();
190
+ this.createPortal();
191
+ }
192
+ });
193
+ this.slotMutationObserver.observe(contentSlotWrapper, { childList: true, subtree: false });
194
+ }
136
195
  return () => {
137
196
  window.removeEventListener('pageshow', this.handlePageShow);
197
+ if (this.slotMutationObserver !== null) {
198
+ this.slotMutationObserver.disconnect();
199
+ }
138
200
  };
139
201
  }
140
- componentDidUpdate() {
141
- if (this.opened) {
142
- this.showTooltip();
143
- }
144
- }
145
202
  componentDidRender() {
146
- positionTooltip({ elem: this.el, elemPlacement: this.placement, overlay: this.contentEl });
203
+ if (this.opened && this.portalEl === null) {
204
+ this.createPortal();
205
+ }
206
+ else if (!this.opened && this.portalEl !== null) {
207
+ this.removePortal();
208
+ }
147
209
  }
148
210
  /**
149
211
  * Shows the tooltip by enabling the opened property
@@ -157,21 +219,159 @@ const PdsTooltip$1 = /*@__PURE__*/ proxyCustomElement(class PdsTooltip extends H
157
219
  async hideTooltip() {
158
220
  this.opened = false;
159
221
  }
222
+ /**
223
+ * Determines the most accurate HTML element to use as the anchor for positioning the tooltip.
224
+ * If `htmlContent` is false, it attempts to find the actual element slotted as the trigger.
225
+ * Otherwise, or if no specific element is found, it defaults to the span wrapper around the trigger slot.
226
+ * This helps with precise alignment.
227
+ */
228
+ determinePositioningAnchor() {
229
+ let positioningAnchor = this.triggerEl;
230
+ if (this.triggerEl !== null) {
231
+ const children = this.triggerEl.childNodes;
232
+ for (let i = 0; i < children.length; i++) {
233
+ const childNode = children[i];
234
+ if (childNode.nodeType === Node.ELEMENT_NODE) {
235
+ positioningAnchor = childNode;
236
+ break; // Found the first element, use it as the anchor
237
+ }
238
+ }
239
+ }
240
+ // If no ELEMENT_NODE is found within this.triggerEl (e.g., if trigger is just text),
241
+ // positioningAnchor will correctly remain this.triggerEl (the span).
242
+ return positioningAnchor;
243
+ }
244
+ /**
245
+ * Centralized method to calculate and apply the tooltip's position.
246
+ * Uses the determined anchor element and the current content dimensions.
247
+ */
248
+ repositionPortal() {
249
+ const anchor = this.determinePositioningAnchor();
250
+ if (anchor !== null && this.contentDiv !== null) {
251
+ positionTooltip({ elem: anchor, elemPlacement: this.placement, overlay: this.contentDiv });
252
+ const placementParts = this.placement.split('-');
253
+ const primaryPlacement = placementParts[0];
254
+ const isCardinalCenterPlacement = placementParts.length === 1;
255
+ if (isCardinalCenterPlacement) {
256
+ const anchorRect = anchor.getBoundingClientRect();
257
+ const overlayRect = this.contentDiv.getBoundingClientRect();
258
+ if (primaryPlacement === 'left' || primaryPlacement === 'right') {
259
+ const currentOverlayTop = parseFloat(this.contentDiv.style.top || '0');
260
+ const anchorCenterY = anchorRect.top + (anchorRect.height / 2);
261
+ const overlayCenterY = overlayRect.top + (overlayRect.height / 2);
262
+ const adjustmentY = anchorCenterY - overlayCenterY;
263
+ if (Math.abs(adjustmentY) > 0.5) {
264
+ this.contentDiv.style.top = `${currentOverlayTop + adjustmentY}px`;
265
+ }
266
+ }
267
+ else if (primaryPlacement === 'top' || primaryPlacement === 'bottom') {
268
+ const currentOverlayLeft = parseFloat(this.contentDiv.style.left || '0');
269
+ const anchorCenterX = anchorRect.left + (anchorRect.width / 2);
270
+ const overlayCenterX = overlayRect.left + (overlayRect.width / 2);
271
+ const adjustmentX = anchorCenterX - overlayCenterX;
272
+ if (Math.abs(adjustmentX) > 0.5) {
273
+ this.contentDiv.style.left = `${currentOverlayLeft + adjustmentX}px`;
274
+ }
275
+ }
276
+ }
277
+ }
278
+ }
279
+ createPortal() {
280
+ if (this.portalEl !== null)
281
+ return;
282
+ this.portalEl = document.createElement('div');
283
+ 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'}`;
284
+ this.portalEl.style.position = 'fixed';
285
+ this.portalEl.style.zIndex = '9999';
286
+ if (this.portalEl.id === '') {
287
+ this.portalEl.id = this.componentId || this.el.id || `pds-tooltip-portal-${PdsTooltip.instanceCounter++}`;
288
+ }
289
+ if (this.portalEl.getAttribute('id') !== this.portalEl.id) {
290
+ this.portalEl.setAttribute('id', this.portalEl.id);
291
+ }
292
+ this.portalEl.setAttribute('role', 'tooltip');
293
+ this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');
294
+ this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');
295
+ this.portalEl.style.maxWidth = this.maxWidth;
296
+ this.contentDiv = document.createElement('div');
297
+ this.contentDiv.className = 'pds-tooltip__content';
298
+ this.contentDiv.setAttribute('aria-hidden', this.opened ? 'false' : 'true');
299
+ this.contentDiv.setAttribute('aria-live', this.opened ? 'polite' : 'off');
300
+ this.contentDiv.setAttribute('role', 'tooltip');
301
+ this.contentDiv.style.maxWidth = this.maxWidth;
302
+ const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');
303
+ const slottedContentContainer = contentSlotWrapper === null || contentSlotWrapper === void 0 ? void 0 : contentSlotWrapper.querySelector('[slot="content"]');
304
+ let hasSlottedContent = false;
305
+ if (slottedContentContainer !== null) {
306
+ const childrenToClone = Array.from(slottedContentContainer.childNodes);
307
+ if (childrenToClone.length > 0) {
308
+ const hasMeaningfulNode = childrenToClone.some(node => {
309
+ var _a;
310
+ return node.nodeType === Node.ELEMENT_NODE ||
311
+ (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== '');
312
+ });
313
+ if (hasMeaningfulNode) {
314
+ hasSlottedContent = true;
315
+ childrenToClone.forEach((node /*, index*/) => {
316
+ var _a;
317
+ if (node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== '')) {
318
+ this.contentDiv.appendChild(node.cloneNode(true));
319
+ }
320
+ });
321
+ }
322
+ }
323
+ }
324
+ if (!hasSlottedContent) {
325
+ if (this.content !== '') {
326
+ this.contentDiv.textContent = this.content;
327
+ }
328
+ }
329
+ this.portalEl.appendChild(this.contentDiv);
330
+ document.body.appendChild(this.portalEl);
331
+ this.repositionPortal();
332
+ if (this.contentDiv !== null) {
333
+ this.overlayResizeObserver = new ResizeObserver(() => {
334
+ this.repositionPortal();
335
+ });
336
+ this.overlayResizeObserver.observe(this.contentDiv);
337
+ }
338
+ // Add global listeners when portal is created
339
+ window.addEventListener('scroll', this.handleScroll, true);
340
+ window.addEventListener('popstate', this.handleSpaNavigation, true);
341
+ window.addEventListener('hashchange', this.handleSpaNavigation, true);
342
+ // Add ARIA attribute to trigger, now that portalEl and its ID are confirmed
343
+ if (this.triggerEl !== null && this.portalEl.id !== '') {
344
+ this.triggerEl.setAttribute('aria-describedby', this.portalEl.id);
345
+ }
346
+ }
347
+ removePortal() {
348
+ if (this.overlayResizeObserver !== null && this.contentDiv !== null) {
349
+ this.overlayResizeObserver.unobserve(this.contentDiv);
350
+ this.overlayResizeObserver = null;
351
+ }
352
+ if (this.portalEl !== null) {
353
+ window.removeEventListener('scroll', this.handleScroll, true);
354
+ window.removeEventListener('popstate', this.handleSpaNavigation, true);
355
+ window.removeEventListener('hashchange', this.handleSpaNavigation, true);
356
+ document.body.removeChild(this.portalEl);
357
+ this.portalEl = null;
358
+ }
359
+ // Remove ARIA attribute from trigger
360
+ if (this.triggerEl !== null) {
361
+ this.triggerEl.removeAttribute('aria-describedby');
362
+ }
363
+ this.contentDiv = null;
364
+ }
160
365
  render() {
161
- return (h(Host, { key: '2732f2c81bc66814945206ddde15367e64a89ec2', onMouseEnter: this.handleShow, onMouseLeave: this.handleHide, onFocusin: this.handleShow, onFocusout: this.handleHide }, h("div", { key: '58705f1fbb1d88b91337100ba32de07f7838be52', class: `
162
- pds-tooltip
163
- pds-tooltip--${this.placement}
164
- ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''}
165
- ${this.opened ? 'pds-tooltip--is-open' : ''}
166
- ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}
167
- ` }, h("span", { key: '33e96cb4f46ebc418f79971047a37fc5c3498e0d', "aria-describedby": this.componentId, class: "pds-tooltip__trigger" }, h("slot", { key: 'cca7b5d50e2cbc0f839a46caa5a5dc8a79f1cb15' })), h("div", { key: '22c666894f7835629e00e9c2c3964bcaf63000ae', class: "pds-tooltip__content", "aria-hidden": this.opened ? 'false' : 'true', "aria-live": this.opened ? 'polite' : 'off', id: this.componentId, ref: (el) => (this.contentEl = el), role: "tooltip", style: { maxWidth: this.maxWidth } }, h("slot", { key: '83a805d9eef71ac261a03d56853ccc8ac7bfe818', name: "content" }), this.content))));
366
+ const hostId = this.componentId || undefined;
367
+ return (h(Host, { key: '0fe2bea1ea0e8eaeb5879644694a2e129f1f4898', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, h("span", { key: 'f26feb3c37957573d3b6b0a55091b2e7012ae31b', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide, onFocus: this.handleShow, onBlur: this.handleHide, ref: el => this.triggerEl = el }, h("slot", { key: 'c7940e3aa7f17fc5d5fcdedc0a624204ceed291c' })), h("div", { key: '0c8dc83e3b7f8c1337aae8641d80f63c0866c348', class: "pds-tooltip__content-slot-wrapper", style: { display: 'none' } }, h("slot", { key: '2f6701768c0debdd69673da3ad7dc34b8b237f6a', name: "content" }))));
168
368
  }
169
369
  get el() { return this; }
170
370
  static get watchers() { return {
171
371
  "opened": ["handleOpenToggle"]
172
372
  }; }
173
373
  static get style() { return pdsTooltipCss; }
174
- }, [1, "pds-tooltip", {
374
+ }, [4, "pds-tooltip", {
175
375
  "content": [1],
176
376
  "componentId": [1, "component-id"],
177
377
  "hasArrow": [4, "has-arrow"],
@@ -179,12 +379,14 @@ const PdsTooltip$1 = /*@__PURE__*/ proxyCustomElement(class PdsTooltip extends H
179
379
  "placement": [513],
180
380
  "maxWidth": [1, "max-width"],
181
381
  "opened": [1540],
382
+ "_isInteractiveOpen": [32],
182
383
  "isOpen": [32],
183
384
  "showTooltip": [64],
184
385
  "hideTooltip": [64]
185
386
  }, undefined, {
186
387
  "opened": ["handleOpenToggle"]
187
388
  }]);
389
+ PdsTooltip$1.instanceCounter = 0;
188
390
  function defineCustomElement$1() {
189
391
  if (typeof customElements === "undefined") {
190
392
  return;
@@ -1 +1 @@
1
- {"file":"pds-tooltip.js","mappings":"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","names":["PdsTooltip","__stencil_proxyCustomElement"],"sources":["src/utils/overlay.ts","src/components/pds-tooltip/pds-tooltip.scss?tag=pds-tooltip&encapsulation=shadow","src/components/pds-tooltip/pds-tooltip.tsx"],"sourcesContent":["interface OverlayArgs {\n elem: HTMLElement;\n elemPlacement: string;\n overlay: HTMLElement;\n offset?: number;\n}\n\nexport const positionTooltip = ({elem, elemPlacement, overlay, offset = 8}: OverlayArgs) => {\n if (elem == undefined) return;\n\n const rect = elem.getBoundingClientRect();\n const contentRect = overlay.getBoundingClientRect();\n\n // Exit the function if the placement is not set\n if (!elemPlacement || elemPlacement == \"\") return;\n\n switch (true) {\n case elemPlacement.includes(\"right\"):\n overlay.style.top = '50%';\n overlay.style.left = `calc(${rect.width}px + ${offset}px)`;\n overlay.style.transform = 'translateY(-50%)';\n\n if (elemPlacement.includes(\"start\")) {\n overlay.style.top = '0';\n overlay.style.transform = 'translateY(0)';\n }\n\n if (elemPlacement.includes(\"end\")) {\n overlay.style.bottom = '0';\n overlay.style.top = 'initial';\n overlay.style.transform = 'translateY(0)';\n }\n\n break;\n\n case elemPlacement.includes(\"left\"):\n overlay.style.top = '50%';\n overlay.style.right = `calc(${rect.width}px + ${offset}px)`;\n overlay.style.transform = 'translateY(-50%)';\n\n if (elemPlacement.includes(\"start\")) {\n overlay.style.top = '0';\n overlay.style.transform = 'translateY(0)';\n }\n\n if (elemPlacement.includes(\"end\")) {\n overlay.style.bottom = '0';\n overlay.style.top = 'initial';\n overlay.style.transform = 'translateY(0)';\n }\n\n break;\n\n case elemPlacement.includes(\"bottom\"):\n overlay.style.top = `calc(${rect.height}px + ${offset}px)`;\n overlay.style.left = '50%';\n overlay.style.transform = 'translateX(-50%)';\n\n if (elemPlacement.includes(\"start\")) {\n overlay.style.left = '0';\n overlay.style.transform = 'translateX(0)';\n }\n\n if (elemPlacement.includes(\"end\")) {\n overlay.style.left = 'initial';\n overlay.style.right = '0';\n overlay.style.transform = 'translateX(0)';\n }\n\n break;\n\n case elemPlacement.includes(\"top\"):\n overlay.style.top = `calc((${contentRect.height}px + ${offset}px) * -1)`;\n overlay.style.left = '50%';\n overlay.style.transform = 'translateX(-50%)';\n\n if (elemPlacement.includes(\"start\")) {\n overlay.style.left = '0';\n overlay.style.transform = 'translateX(0)';\n }\n if (elemPlacement.includes(\"end\")) {\n overlay.style.left = 'initial';\n overlay.style.right = '0';\n overlay.style.transform = 'translateX(0)';\n }\n\n break;\n }\n}\n",":host {\n\n --tooltip-border-width-arrow-down: var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;\n --tooltip-border-width-arrow-left: var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;\n --tooltip-border-width-arrow-right: var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);\n --tooltip-border-width-arrow-up: 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);\n\n --tooltip-sizing-arrow: 6px;\n --tooltip-sizing-arrow-offset: 14px;\n --tooltip-dimension-max-width: 320px;\n\n display: inline-block;\n position: relative;\n\n ::slotted(*) {\n display: flex;\n }\n\n ::slotted([slot=\"content\"]) {\n display: block;\n max-width: var(--tooltip-dimension-max-width);\n white-space: normal;\n }\n}\n\n.pds-tooltip__content {\n background-color: var(--pine-color-primary);\n border-radius: calc(var(--pine-dimension-xs) * 1.25);\n box-shadow: var(--pine-box-shadow);\n color: var(--pine-color-text-primary);\n // TODO: need to use block / none but the tooltip content width and height are needed for calculations\n max-width: var(--tooltip-dimension-max-width);\n opacity: 0;\n padding: var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);\n position: absolute;\n visibility: hidden;\n width: max-content;\n\n .pds-tooltip--is-open & {\n // TODO: need to use block / none but the tooltip content width and height are needed for calculations\n opacity: 1;\n visibility: visible;\n z-index: 1;\n }\n\n :host(.pds-tooltip--has-html-content) & {\n width: auto;\n }\n\n &::after {\n border-color: transparent;\n border-right-color: transparent;\n border-style: solid;\n border-width: var(--tooltip-border-width-arrow-left);\n content: '';\n height: 0;\n position: absolute;\n width: 0;\n\n .pds-tooltip--right & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: 50%;\n transform: translateY(-50%);\n }\n\n .pds-tooltip--right-end & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n bottom: var(--tooltip-sizing-arrow-offset);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: initial;\n }\n\n .pds-tooltip--right-start & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: var(--tooltip-sizing-arrow-offset);\n }\n\n .pds-tooltip--top & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: 50%;\n top: initial;\n transform: translateX(-50%);\n }\n\n .pds-tooltip--top-start & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: var(--tooltip-sizing-arrow-offset);\n top: initial;\n }\n\n .pds-tooltip--top-end & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: initial;\n right: var(--tooltip-sizing-arrow-offset);\n top: initial;\n }\n\n .pds-tooltip--left & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: 50%;\n transform: translateY(-50%);\n }\n\n .pds-tooltip--left-end & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n bottom: var(--tooltip-sizing-arrow-offset);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: initial;\n }\n\n .pds-tooltip--left-start & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: var(--tooltip-sizing-arrow-offset);\n }\n\n .pds-tooltip--bottom & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: 50%;\n top: calc(var(--tooltip-sizing-arrow) * -1);\n transform: translateX(-50%);\n }\n\n .pds-tooltip--bottom-end & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: initial;\n right: var(--tooltip-sizing-arrow-offset);\n top: calc(var(--tooltip-sizing-arrow) * -1);\n }\n\n .pds-tooltip--bottom-start & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: var(--tooltip-sizing-arrow-offset);\n top: calc(var(--tooltip-sizing-arrow) * -1);\n }\n\n .pds-tooltip--no-arrow & {\n border-width: 0;\n }\n }\n}\n","import { Component, Element, Host, Prop, State, h, Method, Watch } from '@stencil/core';\nimport {\n positionTooltip\n} 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: true,\n})\nexport class PdsTooltip {\n private contentEl: HTMLElement | 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 handleOpenToggle() {\n if (this.opened) {\n this.handleShow();\n } else {\n this.handleHide();\n }\n }\n\n componentWillLoad() {\n if (this.opened) {\n this.showTooltip();\n }\n\n this.el.addEventListener('blur', this.handleHide, true);\n this.el.addEventListener('focus', this.handleShow, true);\n }\n\n componentDidLoad() {\n // fix for Safari iOS back button issue\n window.addEventListener('pageshow', this.handlePageShow);\n\n return () => {\n window.removeEventListener('pageshow', this.handlePageShow);\n };\n }\n\n componentDidUpdate() {\n if (this.opened) {\n this.showTooltip();\n }\n }\n\n componentDidRender() {\n positionTooltip({elem: this.el, elemPlacement: this.placement, overlay: this.contentEl});\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 this.hideTooltip();\n };\n\n private handleShow = () => {\n this.showTooltip();\n };\n\n private handlePageShow = () => {\n this.opened = false;\n };\n\n render() {\n return (\n <Host\n onMouseEnter={this.handleShow}\n onMouseLeave={this.handleHide}\n onFocusin={this.handleShow}\n onFocusout={this.handleHide}\n >\n <div\n class={`\n pds-tooltip\n pds-tooltip--${this.placement}\n ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''}\n ${this.opened ? 'pds-tooltip--is-open' : ''}\n ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}\n `}\n >\n <span\n aria-describedby={this.componentId}\n class=\"pds-tooltip__trigger\"\n >\n <slot />\n </span>\n\n <div class=\"pds-tooltip__content\"\n aria-hidden={this.opened ? 'false' : 'true'}\n aria-live={this.opened ? 'polite' : 'off'}\n id={this.componentId}\n ref={(el) => (this.contentEl = el)}\n role=\"tooltip\"\n style={{ maxWidth: this.maxWidth }}\n >\n <slot\n name=\"content\"\n ></slot>\n {this.content}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pds-tooltip.js","mappings":"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","names":["PdsTooltip","__stencil_proxyCustomElement"],"sources":["src/utils/overlay.ts","src/components/pds-tooltip/pds-tooltip.scss?tag=pds-tooltip","src/components/pds-tooltip/pds-tooltip.tsx"],"sourcesContent":["interface OverlayArgs {\n elem: HTMLElement | null;\n elemPlacement: string;\n overlay: HTMLElement | null;\n offset?: number;\n}\n\nexport const positionTooltip = ({elem, elemPlacement, overlay, offset = 8}: OverlayArgs): boolean => {\n if (elem === null || overlay === null) return false;\n if (typeof elemPlacement !== 'string' || elemPlacement.trim() === '') {\n return false;\n }\n\n const rect = elem.getBoundingClientRect();\n const contentRect = overlay.getBoundingClientRect();\n\n // Reset styles\n overlay.style.top = '';\n overlay.style.left = '';\n overlay.style.right = '';\n overlay.style.bottom = '';\n overlay.style.transform = '';\n\n // Use fixed positioning for portal overlays\n overlay.style.position = 'fixed';\n\n // Detect if the trigger is a span with only text or a text node\n let isTextTrigger = false;\n if (elem.childNodes.length === 1 && elem.childNodes[0].nodeType === Node.TEXT_NODE) {\n isTextTrigger = true;\n } else if (elem.childNodes.length === 1 && elem.childNodes[0].nodeType === Node.ELEMENT_NODE) {\n const child = elem.childNodes[0] as HTMLElement;\n if (child.tagName === 'SPAN' && child.childNodes.length === 1 && child.childNodes[0].nodeType === Node.TEXT_NODE) {\n isTextTrigger = true;\n }\n }\n\n switch (true) {\n case elemPlacement.includes('right'):\n if (isTextTrigger) {\n // Align to the bottom of the trigger for text triggers\n overlay.style.top = `${rect.bottom - contentRect.height / 2}px`;\n } else {\n overlay.style.top = `${rect.top + rect.height / 2 - contentRect.height / 2}px`;\n }\n overlay.style.left = `${rect.right + offset}px`;\n if (elemPlacement.includes('start')) {\n overlay.style.top = `${rect.top}px`;\n }\n if (elemPlacement.includes('end')) {\n overlay.style.top = `${rect.bottom - contentRect.height}px`;\n }\n break;\n case elemPlacement.includes('left'):\n if (isTextTrigger) {\n overlay.style.top = `${rect.bottom - contentRect.height / 2}px`;\n } else {\n overlay.style.top = `${rect.top + rect.height / 2 - contentRect.height / 2}px`;\n }\n overlay.style.left = `${rect.left - contentRect.width - offset}px`;\n if (elemPlacement.includes('start')) {\n overlay.style.top = `${rect.top}px`;\n }\n if (elemPlacement.includes('end')) {\n overlay.style.top = `${rect.bottom - contentRect.height}px`;\n }\n break;\n case elemPlacement.includes('bottom'):\n overlay.style.top = `${rect.bottom + offset}px`;\n overlay.style.left = `${rect.left + rect.width / 2 - contentRect.width / 2}px`;\n if (elemPlacement.includes('start')) {\n overlay.style.left = `${rect.left}px`;\n }\n if (elemPlacement.includes('end')) {\n overlay.style.left = `${rect.right - contentRect.width}px`;\n overlay.style.right = 'initial';\n }\n break;\n case elemPlacement.includes('top'):\n overlay.style.top = `${rect.top - contentRect.height - offset}px`;\n overlay.style.left = `${rect.left + rect.width / 2 - contentRect.width / 2}px`;\n if (elemPlacement.includes('start')) {\n overlay.style.left = `${rect.left}px`;\n }\n if (elemPlacement.includes('end')) {\n overlay.style.left = `${rect.right - contentRect.width}px`;\n overlay.style.right = 'initial';\n }\n break;\n }\n return true;\n}\n",".pds-tooltip {\n --tooltip-border-width-arrow-down: var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;\n --tooltip-border-width-arrow-left: var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;\n --tooltip-border-width-arrow-right: var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);\n --tooltip-border-width-arrow-up: 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);\n --tooltip-sizing-arrow: 6px;\n --tooltip-sizing-arrow-offset: 14px;\n --tooltip-dimension-max-width: 320px;\n}\n\n.pds-tooltip__content {\n background-color: var(--pine-color-primary);\n border-radius: calc(var(--pine-dimension-xs) * 1.25);\n box-shadow: var(--pine-box-shadow);\n color: var(--pine-color-text-primary);\n // TODO: need to use block / none but the tooltip content width and height are needed for calculations\n max-width: var(--tooltip-dimension-max-width);\n opacity: 0;\n padding: var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);\n position: absolute;\n visibility: hidden;\n width: max-content;\n\n .pds-tooltip--is-open & {\n // TODO: need to use block / none but the tooltip content width and height are needed for calculations\n opacity: 1;\n visibility: visible;\n z-index: 1;\n }\n\n .pds-tooltip.pds-tooltip--has-html-content & {\n width: auto;\n }\n\n &::after {\n border-color: transparent;\n border-right-color: transparent;\n border-style: solid;\n border-width: var(--tooltip-border-width-arrow-left);\n content: '';\n height: 0;\n position: absolute;\n width: 0;\n\n .pds-tooltip--right & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: 50%;\n transform: translateY(-50%);\n }\n\n .pds-tooltip--right-end & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n bottom: var(--tooltip-sizing-arrow-offset);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: initial;\n }\n\n .pds-tooltip--right-start & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: var(--tooltip-sizing-arrow-offset);\n }\n\n .pds-tooltip--top & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: 50%;\n top: initial;\n transform: translateX(-50%);\n }\n\n .pds-tooltip--top-start & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: var(--tooltip-sizing-arrow-offset);\n top: initial;\n }\n\n .pds-tooltip--top-end & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: initial;\n right: var(--tooltip-sizing-arrow-offset);\n top: initial;\n }\n\n .pds-tooltip--left & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: 50%;\n transform: translateY(-50%);\n }\n\n .pds-tooltip--left-end & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n bottom: var(--tooltip-sizing-arrow-offset);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: initial;\n }\n\n .pds-tooltip--left-start & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: var(--tooltip-sizing-arrow-offset);\n }\n\n .pds-tooltip--bottom & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: 50%;\n top: calc(var(--tooltip-sizing-arrow) * -1);\n transform: translateX(-50%);\n }\n\n .pds-tooltip--bottom-end & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: initial;\n right: var(--tooltip-sizing-arrow-offset);\n top: calc(var(--tooltip-sizing-arrow) * -1);\n }\n\n .pds-tooltip--bottom-start & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: var(--tooltip-sizing-arrow-offset);\n top: calc(var(--tooltip-sizing-arrow) * -1);\n }\n\n .pds-tooltip--no-arrow & {\n border-width: 0;\n }\n }\n}\n","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\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.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 /**\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 // 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 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"],"version":3}
@@ -15,11 +15,11 @@ const debounce = (func, wait = 0) => {
15
15
  timer = setTimeout(func, wait, ...args);
16
16
  };
17
17
  };
18
- const setColor = (color) => {
18
+ const setColor = (color, customColors) => {
19
19
  var _a;
20
20
  if (!color)
21
21
  return;
22
- const colors = {
22
+ const defaultColors = {
23
23
  primary: 'var(--pine-color-text-primary)',
24
24
  secondary: 'var(--pine-color-text-secondary)',
25
25
  neutral: 'var(--pine-color-text-neutral)',
@@ -29,6 +29,7 @@ const setColor = (color) => {
29
29
  success: 'var(--pine-color-text-success)',
30
30
  warning: 'var(--pine-color-text-warning)',
31
31
  };
32
+ const colors = customColors || defaultColors;
32
33
  return {
33
34
  '--color': (_a = colors[color]) !== null && _a !== void 0 ? _a : (color.startsWith('--') ? `var(${color})` : color)
34
35
  };
@@ -1 +1 @@
1
- {"file":"utils.js","mappings":"AAEa,MAAA,YAAY,GAAG,CAAC,EAAe,KAAI;IAC9C,OAAO,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAE,EAAU,CAAC,YAAY;AACtD;MAEa,aAAa,GAAG,CAAC,KAAmB,EAAE,IAAY,KAAkB;AAC/E,IAAA,MAAM,QAAQ,GAAI,KAAa,CAAC,SAAS,IAAI,KAAK;IAClD,OAAO;AACL,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;KACnC;AACnB;AAEO,MAAM,QAAQ,GAAG,CAAC,IAA8B,EAAE,IAAI,GAAG,CAAC,KAAI;AACnE,IAAA,IAAI,KAAU;AACd,IAAA,OAAO,CAAC,GAAG,IAAW,KAAS;QAC7B,YAAY,CAAC,KAAK,CAAC;QACnB,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AACzC,KAAC;AACH,CAAC;AAEY,MAAA,QAAQ,GAAG,CAAC,KAAa,KAAI;;AACxC,IAAA,IAAI,CAAC,KAAK;QAAE;AAEZ,IAAA,MAAM,MAAM,GAA2B;AACrC,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,SAAS,EAAE,kCAAkC;AAC7C,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,IAAI,EAAE,6BAA6B;AACnC,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,OAAO,EAAE,gCAAgC;KAC1C;IAED,OAAO;QACL,SAAS,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,IAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAO,IAAA,EAAA,KAAK,GAAG,GAAG,KAAK;KAC9E;AACH;;;;","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["import type { EventEmitter } from \"@stencil/core\";\n\nexport const hasShadowDom = (el: HTMLElement) => {\n return !!el.shadowRoot && !!(el as any).attachShadow\n}\n\nexport const debounceEvent = (event: EventEmitter, wait: number): EventEmitter => {\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (func: (...args: any[]) => void, wait = 0) => {\n let timer: any;\n return (...args: any[]): any => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\nexport const setColor = (color: string) => {\n if (!color) return;\n\n const colors: Record<string, string> = {\n primary: 'var(--pine-color-text-primary)',\n secondary: 'var(--pine-color-text-secondary)',\n neutral: 'var(--pine-color-text-neutral)',\n accent: 'var(--pine-color-text-accent)',\n danger: 'var(--pine-color-text-danger)',\n info: 'var(--pine-color-text-info)',\n success: 'var(--pine-color-text-success)',\n warning: 'var(--pine-color-text-warning)',\n };\n\n return {\n '--color': colors[color] ?? (color.startsWith('--') ? `var(${color})` : color)\n };\n}\n"],"version":3}
1
+ {"file":"utils.js","mappings":"AAEa,MAAA,YAAY,GAAG,CAAC,EAAe,KAAI;IAC9C,OAAO,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAE,EAAU,CAAC,YAAY;AACtD;MAEa,aAAa,GAAG,CAAC,KAAmB,EAAE,IAAY,KAAkB;AAC/E,IAAA,MAAM,QAAQ,GAAI,KAAa,CAAC,SAAS,IAAI,KAAK;IAClD,OAAO;AACL,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;KACnC;AACnB;AAEO,MAAM,QAAQ,GAAG,CAAC,IAA8B,EAAE,IAAI,GAAG,CAAC,KAAI;AACnE,IAAA,IAAI,KAAU;AACd,IAAA,OAAO,CAAC,GAAG,IAAW,KAAS;QAC7B,YAAY,CAAC,KAAK,CAAC;QACnB,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AACzC,KAAC;AACH,CAAC;MAEY,QAAQ,GAAG,CAAC,KAAa,EAAE,YAAqC,KAAI;;AAC/E,IAAA,IAAI,CAAC,KAAK;QAAE;AAEZ,IAAA,MAAM,aAAa,GAA2B;AAC5C,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,SAAS,EAAE,kCAAkC;AAC7C,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,IAAI,EAAE,6BAA6B;AACnC,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,OAAO,EAAE,gCAAgC;KAC1C;AAED,IAAA,MAAM,MAAM,GAAG,YAAY,IAAI,aAAa;IAE5C,OAAO;QACL,SAAS,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,IAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAO,IAAA,EAAA,KAAK,GAAG,GAAG,KAAK;KAC9E;AACH;;;;","names":[],"sources":["src/utils/utils.ts"],"sourcesContent":["import type { EventEmitter } from \"@stencil/core\";\n\nexport const hasShadowDom = (el: HTMLElement) => {\n return !!el.shadowRoot && !!(el as any).attachShadow\n}\n\nexport const debounceEvent = (event: EventEmitter, wait: number): EventEmitter => {\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (func: (...args: any[]) => void, wait = 0) => {\n let timer: any;\n return (...args: any[]): any => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\nexport const setColor = (color: string, customColors?: Record<string, string>) => {\n if (!color) return;\n\n const defaultColors: Record<string, string> = {\n primary: 'var(--pine-color-text-primary)',\n secondary: 'var(--pine-color-text-secondary)',\n neutral: 'var(--pine-color-text-neutral)',\n accent: 'var(--pine-color-text-accent)',\n danger: 'var(--pine-color-text-danger)',\n info: 'var(--pine-color-text-info)',\n success: 'var(--pine-color-text-success)',\n warning: 'var(--pine-color-text-warning)',\n };\n\n const colors = customColors || defaultColors;\n\n return {\n '--color': colors[color] ?? (color.startsWith('--') ? `var(${color})` : color)\n };\n}\n"],"version":3}