@pine-ds/core 3.26.4 → 3.28.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 (1139) hide show
  1. package/components/attributes.js +1 -85
  2. package/components/closest.js +1 -12
  3. package/components/floating-ui.dom.js +1 -1631
  4. package/components/form.js +1 -62
  5. package/components/i18n-format.js +1 -0
  6. package/components/index.d.ts +1 -0
  7. package/components/index.js +1 -54
  8. package/components/index2.js +1 -20
  9. package/components/mock-pds-modal.js +1 -119
  10. package/components/pds-accordion.js +1 -74
  11. package/components/pds-alert.js +1 -115
  12. package/components/pds-avatar.js +1 -141
  13. package/components/pds-box.js +1 -9
  14. package/components/pds-box2.js +1 -283
  15. package/components/pds-button.js +1 -9
  16. package/components/pds-button2.js +1 -250
  17. package/components/pds-checkbox.js +1 -9
  18. package/components/pds-checkbox2.js +1 -150
  19. package/components/pds-chip.js +1 -9
  20. package/components/pds-chip2.js +1 -167
  21. package/components/pds-combobox.js +2 -2958
  22. package/components/pds-container.js +1 -61
  23. package/components/pds-copytext.js +1 -154
  24. package/components/pds-divider.js +1 -58
  25. package/components/pds-dropdown-menu-item.js +1 -128
  26. package/components/pds-dropdown-menu-separator.js +1 -46
  27. package/components/pds-dropdown-menu.js +1 -349
  28. package/components/pds-filter.js +1 -524
  29. package/components/pds-filters.js +1 -40
  30. package/components/pds-icon.js +1 -9
  31. package/components/pds-icon2.js +1 -601
  32. package/components/pds-image.js +1 -61
  33. package/components/pds-input.js +1 -372
  34. package/components/pds-link.js +1 -9
  35. package/components/pds-link2.js +1 -93
  36. package/components/pds-loader.js +1 -9
  37. package/components/pds-loader2.js +1 -79
  38. package/components/pds-modal-content.js +1 -214
  39. package/components/pds-modal-footer.js +1 -37
  40. package/components/pds-modal-header.js +1 -37
  41. package/components/pds-modal.js +1 -291
  42. package/components/pds-multiselect.js +1 -1087
  43. package/components/pds-popover.js +1 -602
  44. package/components/pds-progress.js +1 -60
  45. package/components/pds-property.js +1 -57
  46. package/components/pds-radio-group.js +1 -211
  47. package/components/pds-radio.js +1 -138
  48. package/components/pds-row.js +1 -99
  49. package/components/pds-select.js +1 -291
  50. package/components/pds-sortable-item.js +1 -67
  51. package/components/pds-sortable.js +2 -2747
  52. package/components/pds-switch.js +1 -147
  53. package/components/pds-tab.js +1 -71
  54. package/components/pds-table-body.js +1 -38
  55. package/components/pds-table-cell.js +1 -9
  56. package/components/pds-table-cell2.js +1 -169
  57. package/components/pds-table-head-cell.js +1 -9
  58. package/components/pds-table-head-cell2.js +1 -254
  59. package/components/pds-table-head.js +1 -102
  60. package/components/pds-table-row.js +1 -197
  61. package/components/pds-table.js +1 -291
  62. package/components/pds-tabpanel.js +1 -48
  63. package/components/pds-tabs.js +1 -126
  64. package/components/pds-text.js +1 -9
  65. package/components/pds-text2.js +1 -110
  66. package/components/pds-textarea.js +1 -376
  67. package/components/pds-toast.js +1 -175
  68. package/components/pds-tooltip.js +1 -362
  69. package/components/scroll.js +1 -78
  70. package/components/truncation-tooltip.js +1 -247
  71. package/components/utils.js +1 -74
  72. package/dist/cjs/attributes-oNMnBEnP.js +0 -3
  73. package/dist/cjs/closest-BZXvuB_Y.js +0 -3
  74. package/dist/cjs/floating-ui.dom-BZk7Blsu.js +0 -3
  75. package/dist/cjs/form-CpM5Z8q7.js +0 -3
  76. package/dist/cjs/i18n-format-CrpIhahc.js +64 -0
  77. package/dist/cjs/{index-BUvWX8u2.js → index-DBhfI2Jq.js} +567 -387
  78. package/dist/cjs/index-DGBoDsAL.js +0 -3
  79. package/dist/cjs/index.cjs.js +0 -1
  80. package/dist/cjs/loader.cjs.js +2 -3
  81. package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -4
  82. package/dist/cjs/pds-accordion.cjs.entry.js +7 -6
  83. package/dist/cjs/pds-alert.cjs.entry.js +11 -6
  84. package/dist/cjs/pds-avatar.cjs.entry.js +11 -6
  85. package/dist/cjs/pds-box.cjs.entry.js +3 -4
  86. package/dist/cjs/pds-button.cjs.entry.js +3 -4
  87. package/dist/cjs/pds-checkbox.cjs.entry.js +9 -6
  88. package/dist/cjs/pds-chip.cjs.entry.js +12 -8
  89. package/dist/cjs/pds-combobox.cjs.entry.js +18 -9
  90. package/dist/cjs/pds-container.cjs.entry.js +3 -4
  91. package/dist/cjs/pds-copytext.cjs.entry.js +10 -7
  92. package/dist/cjs/pds-divider.cjs.entry.js +3 -4
  93. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +3 -4
  94. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -4
  95. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +3 -4
  96. package/dist/cjs/pds-filter.cjs.entry.js +3 -4
  97. package/dist/cjs/pds-filters.cjs.entry.js +3 -4
  98. package/dist/cjs/pds-icon.cjs.entry.js +18 -9
  99. package/dist/cjs/pds-image.cjs.entry.js +3 -4
  100. package/dist/cjs/pds-input.cjs.entry.js +12 -9
  101. package/dist/cjs/pds-link.cjs.entry.js +5 -6
  102. package/dist/cjs/pds-loader.cjs.entry.js +3 -4
  103. package/dist/cjs/pds-modal-content.cjs.entry.js +3 -4
  104. package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -4
  105. package/dist/cjs/pds-modal-header.cjs.entry.js +3 -4
  106. package/dist/cjs/pds-modal.cjs.entry.js +6 -5
  107. package/dist/cjs/pds-multiselect.cjs.entry.js +106 -20
  108. package/dist/cjs/pds-popover.cjs.entry.js +3 -4
  109. package/dist/cjs/pds-progress.cjs.entry.js +3 -4
  110. package/dist/cjs/pds-property.cjs.entry.js +3 -4
  111. package/dist/cjs/pds-radio-group.cjs.entry.js +15 -8
  112. package/dist/cjs/pds-radio.cjs.entry.js +4 -5
  113. package/dist/cjs/pds-row.cjs.entry.js +3 -4
  114. package/dist/cjs/pds-select.cjs.entry.js +13 -10
  115. package/dist/cjs/pds-sortable-item.cjs.entry.js +4 -5
  116. package/dist/cjs/pds-sortable.cjs.entry.js +6 -5
  117. package/dist/cjs/pds-switch.cjs.entry.js +7 -6
  118. package/dist/cjs/pds-tab.cjs.entry.js +3 -4
  119. package/dist/cjs/pds-table-body.cjs.entry.js +3 -4
  120. package/dist/cjs/pds-table-cell.cjs.entry.js +6 -5
  121. package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -4
  122. package/dist/cjs/pds-table-head.cjs.entry.js +3 -4
  123. package/dist/cjs/pds-table-row.cjs.entry.js +3 -4
  124. package/dist/cjs/pds-table.cjs.entry.js +3 -4
  125. package/dist/cjs/pds-tabpanel.cjs.entry.js +3 -4
  126. package/dist/cjs/pds-tabs.cjs.entry.js +3 -4
  127. package/dist/cjs/pds-text.cjs.entry.js +46 -6
  128. package/dist/cjs/pds-textarea.cjs.entry.js +26 -14
  129. package/dist/cjs/pds-toast.cjs.entry.js +15 -8
  130. package/dist/cjs/pds-tooltip.cjs.entry.js +6 -5
  131. package/dist/cjs/pine-core.cjs.js +3 -4
  132. package/dist/cjs/scroll-2XcoE_6Q.js +0 -3
  133. package/dist/cjs/truncation-tooltip-CVzAha5B.js +0 -3
  134. package/dist/cjs/utils-7jx8T2mW.js +0 -3
  135. package/dist/collection/collection-manifest.json +3 -2
  136. package/dist/collection/components/_internal/pds-label/pds-label.js +0 -1
  137. package/dist/collection/components/pds-accordion/pds-accordion.js +1 -2
  138. package/dist/collection/components/pds-alert/pds-alert.js +30 -2
  139. package/dist/collection/components/pds-avatar/pds-avatar.js +31 -3
  140. package/dist/collection/components/pds-box/pds-box.js +206 -134
  141. package/dist/collection/components/pds-button/pds-button.css +74 -74
  142. package/dist/collection/components/pds-button/pds-button.js +2 -2
  143. package/dist/collection/components/pds-checkbox/checkbox-interface.js +0 -1
  144. package/dist/collection/components/pds-checkbox/pds-checkbox.js +4 -3
  145. package/dist/collection/components/pds-chip/pds-chip.js +37 -7
  146. package/dist/collection/components/pds-combobox/combobox-interface.js +0 -1
  147. package/dist/collection/components/pds-combobox/pds-combobox.css +3 -0
  148. package/dist/collection/components/pds-combobox/pds-combobox.js +10 -6
  149. package/dist/collection/components/pds-container/pds-container.js +0 -1
  150. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -2
  151. package/dist/collection/components/pds-divider/pds-divider.js +0 -1
  152. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +0 -1
  153. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +0 -1
  154. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +2 -2
  155. package/dist/collection/components/pds-filters/pds-filter/filter-interface.js +0 -1
  156. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +8 -5
  157. package/dist/collection/components/pds-filters/pds-filters.js +0 -1
  158. package/dist/collection/components/pds-image/pds-image.js +0 -1
  159. package/dist/collection/components/pds-input/input-interface.js +0 -1
  160. package/dist/collection/components/pds-input/pds-input.js +5 -4
  161. package/dist/collection/components/pds-link/pds-link.js +154 -3
  162. package/dist/collection/components/pds-loader/pds-loader.js +0 -1
  163. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +0 -1
  164. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +0 -1
  165. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +0 -1
  166. package/dist/collection/components/pds-modal/pds-modal.js +0 -1
  167. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +0 -1
  168. package/dist/collection/components/pds-multiselect/multiselect-interface.js +0 -1
  169. package/dist/collection/components/pds-multiselect/pds-multiselect.css +1 -0
  170. package/dist/collection/components/pds-multiselect/pds-multiselect.js +370 -24
  171. package/dist/collection/components/pds-popover/pds-popover.js +6 -4
  172. package/dist/collection/components/pds-popover/popover-interface.js +0 -1
  173. package/dist/collection/components/pds-progress/pds-progress.js +0 -1
  174. package/dist/collection/components/pds-property/pds-property.js +0 -1
  175. package/dist/collection/components/pds-radio/pds-radio.js +0 -1
  176. package/dist/collection/components/pds-radio-group/pds-radio-group.js +2 -2
  177. package/dist/collection/components/pds-radio-group/radio-group-interface.js +0 -1
  178. package/dist/collection/components/pds-row/pds-row.js +9 -7
  179. package/dist/collection/components/pds-select/pds-select.js +2 -3
  180. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -2
  181. package/dist/collection/components/pds-sortable/pds-sortable.js +2 -2
  182. package/dist/collection/components/pds-sortable/sortable-interface.js +0 -1
  183. package/dist/collection/components/pds-switch/pds-switch.js +0 -1
  184. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +0 -1
  185. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +0 -1
  186. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +0 -1
  187. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +0 -1
  188. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +0 -1
  189. package/dist/collection/components/pds-table/pds-table.css +1 -0
  190. package/dist/collection/components/pds-table/pds-table.js +0 -1
  191. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +0 -1
  192. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +0 -1
  193. package/dist/collection/components/pds-tabs/pds-tabs.js +0 -1
  194. package/dist/collection/components/pds-text/pds-text.js +31 -4
  195. package/dist/collection/components/pds-textarea/pds-textarea.js +39 -8
  196. package/dist/collection/components/pds-textarea/textarea-interface.js +0 -1
  197. package/dist/collection/components/pds-toast/pds-toast.js +32 -4
  198. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  199. package/dist/collection/global/pine-ui-global.js +0 -1
  200. package/dist/collection/i18n/i18n-format.js +59 -0
  201. package/dist/collection/i18n/index.js +1 -0
  202. package/dist/collection/index.js +0 -1
  203. package/dist/collection/utils/attributes.js +0 -1
  204. package/dist/collection/utils/closest.js +0 -1
  205. package/dist/collection/utils/form.js +0 -1
  206. package/dist/collection/utils/interfaces.js +0 -1
  207. package/dist/collection/utils/overlay.js +0 -1
  208. package/dist/collection/utils/scroll.js +0 -1
  209. package/dist/collection/utils/test/axe.js +9 -4
  210. package/dist/collection/utils/truncation-tooltip.js +0 -1
  211. package/dist/collection/utils/types.js +18 -2
  212. package/dist/collection/utils/utils.js +0 -1
  213. package/dist/docs.d.ts +37 -0
  214. package/dist/docs.json +2833 -1964
  215. package/dist/esm/attributes-C0M1gTKv.js +0 -3
  216. package/dist/esm/closest-DnUJodVd.js +0 -3
  217. package/dist/esm/floating-ui.dom-DDtwbwIl.js +0 -3
  218. package/dist/esm/form-C3xDZBme.js +0 -3
  219. package/dist/esm/i18n-format-BKsJZTyn.js +61 -0
  220. package/dist/esm/{index-B2f84Zog.js → index-CaRgVPt7.js} +567 -387
  221. package/dist/esm/index-D4ys0pep.js +0 -3
  222. package/dist/esm/index.js +0 -1
  223. package/dist/esm/loader.js +3 -4
  224. package/dist/esm/mock-pds-modal.entry.js +3 -4
  225. package/dist/esm/pds-accordion.entry.js +7 -6
  226. package/dist/esm/pds-alert.entry.js +11 -6
  227. package/dist/esm/pds-avatar.entry.js +11 -6
  228. package/dist/esm/pds-box.entry.js +3 -4
  229. package/dist/esm/pds-button.entry.js +3 -4
  230. package/dist/esm/pds-checkbox.entry.js +9 -6
  231. package/dist/esm/pds-chip.entry.js +12 -8
  232. package/dist/esm/pds-combobox.entry.js +18 -9
  233. package/dist/esm/pds-container.entry.js +3 -4
  234. package/dist/esm/pds-copytext.entry.js +10 -7
  235. package/dist/esm/pds-divider.entry.js +3 -4
  236. package/dist/esm/pds-dropdown-menu-item.entry.js +3 -4
  237. package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -4
  238. package/dist/esm/pds-dropdown-menu.entry.js +3 -4
  239. package/dist/esm/pds-filter.entry.js +3 -4
  240. package/dist/esm/pds-filters.entry.js +3 -4
  241. package/dist/esm/pds-icon.entry.js +18 -9
  242. package/dist/esm/pds-image.entry.js +3 -4
  243. package/dist/esm/pds-input.entry.js +12 -9
  244. package/dist/esm/pds-link.entry.js +5 -6
  245. package/dist/esm/pds-loader.entry.js +3 -4
  246. package/dist/esm/pds-modal-content.entry.js +3 -4
  247. package/dist/esm/pds-modal-footer.entry.js +3 -4
  248. package/dist/esm/pds-modal-header.entry.js +3 -4
  249. package/dist/esm/pds-modal.entry.js +6 -5
  250. package/dist/esm/pds-multiselect.entry.js +106 -20
  251. package/dist/esm/pds-popover.entry.js +3 -4
  252. package/dist/esm/pds-progress.entry.js +3 -4
  253. package/dist/esm/pds-property.entry.js +3 -4
  254. package/dist/esm/pds-radio-group.entry.js +15 -8
  255. package/dist/esm/pds-radio.entry.js +4 -5
  256. package/dist/esm/pds-row.entry.js +3 -4
  257. package/dist/esm/pds-select.entry.js +13 -10
  258. package/dist/esm/pds-sortable-item.entry.js +4 -5
  259. package/dist/esm/pds-sortable.entry.js +6 -5
  260. package/dist/esm/pds-switch.entry.js +7 -6
  261. package/dist/esm/pds-tab.entry.js +3 -4
  262. package/dist/esm/pds-table-body.entry.js +3 -4
  263. package/dist/esm/pds-table-cell.entry.js +6 -5
  264. package/dist/esm/pds-table-head-cell.entry.js +3 -4
  265. package/dist/esm/pds-table-head.entry.js +3 -4
  266. package/dist/esm/pds-table-row.entry.js +3 -4
  267. package/dist/esm/pds-table.entry.js +3 -4
  268. package/dist/esm/pds-tabpanel.entry.js +3 -4
  269. package/dist/esm/pds-tabs.entry.js +3 -4
  270. package/dist/esm/pds-text.entry.js +46 -6
  271. package/dist/esm/pds-textarea.entry.js +26 -14
  272. package/dist/esm/pds-toast.entry.js +15 -8
  273. package/dist/esm/pds-tooltip.entry.js +6 -5
  274. package/dist/esm/pine-core.js +4 -5
  275. package/dist/esm/scroll-DtgUQhjl.js +0 -3
  276. package/dist/esm/truncation-tooltip-Blk4GigP.js +0 -3
  277. package/dist/esm/utils-tJa4KYNO.js +0 -3
  278. package/dist/esm-es5/attributes-C0M1gTKv.js +1 -2
  279. package/dist/esm-es5/closest-DnUJodVd.js +1 -2
  280. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js +1 -2
  281. package/dist/esm-es5/form-C3xDZBme.js +1 -2
  282. package/dist/esm-es5/i18n-format-BKsJZTyn.js +1 -0
  283. package/dist/esm-es5/index-CaRgVPt7.js +2 -0
  284. package/dist/esm-es5/index-D4ys0pep.js +1 -2
  285. package/dist/esm-es5/index.js +0 -2
  286. package/dist/esm-es5/loader.js +1 -2
  287. package/dist/esm-es5/mock-pds-modal.entry.js +1 -2
  288. package/dist/esm-es5/pds-accordion.entry.js +1 -2
  289. package/dist/esm-es5/pds-alert.entry.js +1 -2
  290. package/dist/esm-es5/pds-avatar.entry.js +1 -2
  291. package/dist/esm-es5/pds-box.entry.js +1 -2
  292. package/dist/esm-es5/pds-button.entry.js +1 -2
  293. package/dist/esm-es5/pds-checkbox.entry.js +1 -2
  294. package/dist/esm-es5/pds-chip.entry.js +1 -2
  295. package/dist/esm-es5/pds-combobox.entry.js +2 -3
  296. package/dist/esm-es5/pds-container.entry.js +1 -2
  297. package/dist/esm-es5/pds-copytext.entry.js +1 -2
  298. package/dist/esm-es5/pds-divider.entry.js +1 -2
  299. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -2
  300. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -2
  301. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -2
  302. package/dist/esm-es5/pds-filter.entry.js +1 -2
  303. package/dist/esm-es5/pds-filters.entry.js +1 -2
  304. package/dist/esm-es5/pds-icon.entry.js +1 -2
  305. package/dist/esm-es5/pds-image.entry.js +1 -2
  306. package/dist/esm-es5/pds-input.entry.js +1 -2
  307. package/dist/esm-es5/pds-link.entry.js +1 -2
  308. package/dist/esm-es5/pds-loader.entry.js +1 -2
  309. package/dist/esm-es5/pds-modal-content.entry.js +1 -2
  310. package/dist/esm-es5/pds-modal-footer.entry.js +1 -2
  311. package/dist/esm-es5/pds-modal-header.entry.js +1 -2
  312. package/dist/esm-es5/pds-modal.entry.js +1 -2
  313. package/dist/esm-es5/pds-multiselect.entry.js +1 -2
  314. package/dist/esm-es5/pds-popover.entry.js +1 -2
  315. package/dist/esm-es5/pds-progress.entry.js +1 -2
  316. package/dist/esm-es5/pds-property.entry.js +1 -2
  317. package/dist/esm-es5/pds-radio-group.entry.js +1 -2
  318. package/dist/esm-es5/pds-radio.entry.js +1 -2
  319. package/dist/esm-es5/pds-row.entry.js +1 -2
  320. package/dist/esm-es5/pds-select.entry.js +1 -2
  321. package/dist/esm-es5/pds-sortable-item.entry.js +1 -2
  322. package/dist/esm-es5/pds-sortable.entry.js +2 -3
  323. package/dist/esm-es5/pds-switch.entry.js +1 -2
  324. package/dist/esm-es5/pds-tab.entry.js +1 -2
  325. package/dist/esm-es5/pds-table-body.entry.js +1 -2
  326. package/dist/esm-es5/pds-table-cell.entry.js +1 -2
  327. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -2
  328. package/dist/esm-es5/pds-table-head.entry.js +1 -2
  329. package/dist/esm-es5/pds-table-row.entry.js +1 -2
  330. package/dist/esm-es5/pds-table.entry.js +1 -2
  331. package/dist/esm-es5/pds-tabpanel.entry.js +1 -2
  332. package/dist/esm-es5/pds-tabs.entry.js +1 -2
  333. package/dist/esm-es5/pds-text.entry.js +1 -2
  334. package/dist/esm-es5/pds-textarea.entry.js +1 -2
  335. package/dist/esm-es5/pds-toast.entry.js +1 -2
  336. package/dist/esm-es5/pds-tooltip.entry.js +1 -2
  337. package/dist/esm-es5/pine-core.js +1 -2
  338. package/dist/esm-es5/scroll-DtgUQhjl.js +1 -2
  339. package/dist/esm-es5/truncation-tooltip-Blk4GigP.js +1 -2
  340. package/dist/esm-es5/utils-tJa4KYNO.js +1 -2
  341. package/dist/pine-core/index.esm.js +0 -2
  342. package/dist/pine-core/p-002c420f.system.entry.js +1 -0
  343. package/dist/pine-core/p-003f91b1.system.entry.js +1 -0
  344. package/dist/pine-core/p-006398c3.system.entry.js +1 -0
  345. package/dist/pine-core/p-01dba061.entry.js +1 -0
  346. package/dist/pine-core/p-041243ee.system.entry.js +1 -0
  347. package/dist/pine-core/p-0451fdf7.entry.js +1 -0
  348. package/dist/pine-core/p-04f8b32a.entry.js +1 -0
  349. package/dist/pine-core/p-0bf56f61.entry.js +1 -0
  350. package/dist/pine-core/p-13ec2343.entry.js +1 -0
  351. package/dist/pine-core/p-1e3beca4.system.entry.js +1 -0
  352. package/dist/pine-core/p-1f4910b0.system.entry.js +1 -0
  353. package/dist/pine-core/p-20f39b93.system.entry.js +1 -0
  354. package/dist/pine-core/p-22bfa998.entry.js +1 -0
  355. package/dist/pine-core/p-25f8690f.entry.js +1 -0
  356. package/dist/pine-core/p-27ac77c3.entry.js +1 -0
  357. package/dist/pine-core/p-2af1d1d3.system.entry.js +1 -0
  358. package/dist/pine-core/p-2b0cb8c4.system.entry.js +1 -0
  359. package/dist/pine-core/p-2cc1ec4c.entry.js +1 -0
  360. package/dist/pine-core/p-334b7c30.entry.js +1 -0
  361. package/dist/pine-core/p-3876b9be.entry.js +1 -0
  362. package/dist/pine-core/p-3a1b7302.system.entry.js +1 -0
  363. package/dist/pine-core/p-3ad9bcef.system.entry.js +1 -0
  364. package/dist/pine-core/p-3ba36512.system.entry.js +1 -0
  365. package/dist/pine-core/p-3f19666c.entry.js +1 -0
  366. package/dist/pine-core/p-3fa80c5a.system.entry.js +1 -0
  367. package/dist/pine-core/p-44388b8f.system.entry.js +1 -0
  368. package/dist/pine-core/p-44f58d33.system.entry.js +1 -0
  369. package/dist/pine-core/p-46de2438.entry.js +1 -0
  370. package/dist/pine-core/p-4abec102.system.entry.js +3 -0
  371. package/dist/pine-core/p-4e49712d.entry.js +1 -0
  372. package/dist/pine-core/p-52e9ec4f.entry.js +1 -0
  373. package/dist/pine-core/p-52f7115b.entry.js +1 -0
  374. package/dist/pine-core/p-5584a56b.entry.js +1 -0
  375. package/dist/pine-core/p-568bb210.system.entry.js +1 -0
  376. package/dist/pine-core/p-571d6bef.system.entry.js +1 -0
  377. package/dist/pine-core/p-587a15ee.system.entry.js +1 -0
  378. package/dist/pine-core/p-59a5dd77.system.entry.js +1 -0
  379. package/dist/pine-core/p-59c60e5b.entry.js +1 -0
  380. package/dist/pine-core/p-5a2df1e2.entry.js +1 -0
  381. package/dist/pine-core/p-5c6c2f79.system.entry.js +1 -0
  382. package/dist/pine-core/p-5f36fafa.system.entry.js +1 -0
  383. package/dist/pine-core/p-618ba6d5.system.entry.js +1 -0
  384. package/dist/pine-core/p-621fdce1.entry.js +1 -0
  385. package/dist/pine-core/p-63e0d4a5.system.entry.js +1 -0
  386. package/dist/pine-core/p-65fb166c.system.entry.js +1 -0
  387. package/dist/pine-core/p-6a2373d0.system.entry.js +1 -0
  388. package/dist/pine-core/p-6c5aacad.entry.js +1 -0
  389. package/dist/pine-core/p-71ca8845.system.entry.js +1 -0
  390. package/dist/pine-core/p-7247fb4f.entry.js +2 -0
  391. package/dist/pine-core/p-73b81009.entry.js +1 -0
  392. package/dist/pine-core/p-73dd2a2b.entry.js +1 -0
  393. package/dist/pine-core/p-74e06c8d.system.entry.js +1 -0
  394. package/dist/pine-core/p-7520a715.system.entry.js +1 -0
  395. package/dist/pine-core/p-7766e970.entry.js +1 -0
  396. package/dist/pine-core/p-7874fe2b.entry.js +1 -0
  397. package/dist/pine-core/p-791d357a.entry.js +1 -0
  398. package/dist/pine-core/p-7a4da839.entry.js +1 -0
  399. package/dist/pine-core/p-7aca41d9.system.entry.js +1 -0
  400. package/dist/pine-core/p-7b954dbf.entry.js +1 -0
  401. package/dist/pine-core/p-8065c732.entry.js +1 -0
  402. package/dist/pine-core/p-835d9f18.system.entry.js +1 -0
  403. package/dist/pine-core/p-83eb33d4.entry.js +1 -0
  404. package/dist/pine-core/p-855dfc31.system.entry.js +1 -0
  405. package/dist/pine-core/p-889fce8a.entry.js +7 -0
  406. package/dist/pine-core/p-8a00e32b.system.entry.js +1 -0
  407. package/dist/pine-core/p-974bf0c5.entry.js +1 -0
  408. package/dist/pine-core/p-9865431f.system.entry.js +1 -0
  409. package/dist/pine-core/p-B1u-QvFn.system.js +1 -2
  410. package/dist/pine-core/p-BG6uGRQj.system.js +1 -2
  411. package/dist/pine-core/p-BKsJZTyn.js +1 -0
  412. package/dist/pine-core/p-BNSGedhN.js +1 -2
  413. package/dist/pine-core/p-BhQhw0S3.system.js +1 -2
  414. package/dist/pine-core/p-BrLs99ML.system.js +1 -2
  415. package/dist/pine-core/p-C0M1gTKv.js +1 -2
  416. package/dist/pine-core/p-C3xDZBme.js +1 -2
  417. package/dist/pine-core/p-C61CFP22.system.js +1 -0
  418. package/dist/pine-core/p-C62JIZmE.system.js +1 -2
  419. package/dist/pine-core/p-CRCxGYgw.system.js +1 -2
  420. package/dist/pine-core/p-CaRgVPt7.js +2 -0
  421. package/dist/pine-core/p-CdwliqhD.system.js +2 -0
  422. package/dist/pine-core/p-Cr7-rJtJ.system.js +1 -0
  423. package/dist/pine-core/p-D4ys0pep.js +1 -2
  424. package/dist/pine-core/p-DDtwbwIl.js +1 -2
  425. package/dist/pine-core/p-DVra397g.system.js +1 -2
  426. package/dist/pine-core/p-DnUJodVd.js +1 -2
  427. package/dist/pine-core/p-DtgUQhjl.js +1 -2
  428. package/dist/pine-core/p-YWpyar7R.system.js +1 -2
  429. package/dist/pine-core/p-a1750a54.entry.js +1 -0
  430. package/dist/pine-core/p-a659cce1.entry.js +1 -0
  431. package/dist/pine-core/p-a982ac91.system.entry.js +1 -0
  432. package/dist/pine-core/p-ab957ace.system.entry.js +1 -0
  433. package/dist/pine-core/p-ae2b466a.system.entry.js +1 -0
  434. package/dist/pine-core/p-ae840ec4.entry.js +1 -0
  435. package/dist/pine-core/p-af48e6ae.entry.js +1 -0
  436. package/dist/pine-core/p-b1b317a5.entry.js +1 -0
  437. package/dist/pine-core/p-ba88ff60.system.entry.js +1 -0
  438. package/dist/pine-core/p-babd0607.system.entry.js +1 -0
  439. package/dist/pine-core/p-bdf18687.entry.js +1 -0
  440. package/dist/pine-core/p-c273210a.entry.js +1 -0
  441. package/dist/pine-core/p-c3a99f39.entry.js +1 -0
  442. package/dist/pine-core/p-c7c17fe3.system.entry.js +1 -0
  443. package/dist/pine-core/p-ccb889d8.system.entry.js +1 -0
  444. package/dist/pine-core/p-cce83ef0.entry.js +1 -0
  445. package/dist/pine-core/p-d09ae46d.system.entry.js +1 -0
  446. package/dist/pine-core/p-d5c1f85e.system.entry.js +1 -0
  447. package/dist/pine-core/p-db1572a3.entry.js +1 -0
  448. package/dist/pine-core/p-e0cfb931.system.entry.js +1 -0
  449. package/dist/pine-core/p-e291db30.entry.js +1 -0
  450. package/dist/pine-core/p-e48161a5.entry.js +1 -0
  451. package/dist/pine-core/p-e620e492.system.entry.js +1 -0
  452. package/dist/pine-core/p-e70c9002.entry.js +1 -0
  453. package/dist/pine-core/p-e77c5c08.system.entry.js +1 -0
  454. package/dist/pine-core/p-edf4e4eb.system.entry.js +1 -0
  455. package/dist/pine-core/p-ee6f914c.entry.js +1 -0
  456. package/dist/pine-core/{p-85e889c3.system.entry.js → p-ef71710b.system.entry.js} +2 -3
  457. package/dist/pine-core/p-f2cf8e76.entry.js +1 -0
  458. package/dist/pine-core/p-f366f064.entry.js +1 -0
  459. package/dist/pine-core/p-fa81009f.system.entry.js +1 -0
  460. package/dist/pine-core/p-fb68e503.system.entry.js +1 -0
  461. package/dist/pine-core/p-fda3f3c6.entry.js +1 -0
  462. package/dist/pine-core/p-kYMYDfJY.system.js +1 -2
  463. package/dist/pine-core/p-tJa4KYNO.js +1 -2
  464. package/dist/pine-core/pine-core.esm.js +1 -2
  465. package/dist/pine-core/pine-core.js +1 -1
  466. package/dist/scripts/vscode-custom-data-generator.js +0 -1
  467. package/dist/types/components/pds-alert/pds-alert.d.ts +6 -0
  468. package/dist/types/components/pds-avatar/pds-avatar.d.ts +6 -0
  469. package/dist/types/components/pds-chip/pds-chip.d.ts +5 -0
  470. package/dist/types/components/pds-link/pds-link.d.ts +40 -0
  471. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +67 -4
  472. package/dist/types/components/pds-text/pds-text.d.ts +4 -1
  473. package/dist/types/components/pds-textarea/pds-textarea.d.ts +6 -0
  474. package/dist/types/components/pds-toast/pds-toast.d.ts +6 -0
  475. package/dist/types/components.d.ts +955 -132
  476. package/dist/types/i18n/i18n-format.d.ts +38 -0
  477. package/dist/types/i18n/index.d.ts +2 -0
  478. package/dist/types/stencil-public-runtime.d.ts +110 -5
  479. package/dist/types/utils/test/axe.d.ts +5 -4
  480. package/dist/types/utils/types.d.ts +2 -0
  481. package/hydrate/index.d.ts +12 -0
  482. package/hydrate/index.js +5420 -1083
  483. package/hydrate/index.mjs +5419 -1084
  484. package/package.json +12 -11
  485. package/components/attributes.js.map +0 -1
  486. package/components/closest.js.map +0 -1
  487. package/components/floating-ui.dom.js.map +0 -1
  488. package/components/form.js.map +0 -1
  489. package/components/index.js.map +0 -1
  490. package/components/index2.js.map +0 -1
  491. package/components/mock-pds-modal.js.map +0 -1
  492. package/components/pds-accordion.js.map +0 -1
  493. package/components/pds-alert.js.map +0 -1
  494. package/components/pds-avatar.js.map +0 -1
  495. package/components/pds-box.js.map +0 -1
  496. package/components/pds-box2.js.map +0 -1
  497. package/components/pds-button.js.map +0 -1
  498. package/components/pds-button2.js.map +0 -1
  499. package/components/pds-checkbox.js.map +0 -1
  500. package/components/pds-checkbox2.js.map +0 -1
  501. package/components/pds-chip.js.map +0 -1
  502. package/components/pds-chip2.js.map +0 -1
  503. package/components/pds-combobox.js.map +0 -1
  504. package/components/pds-container.js.map +0 -1
  505. package/components/pds-copytext.js.map +0 -1
  506. package/components/pds-divider.js.map +0 -1
  507. package/components/pds-dropdown-menu-item.js.map +0 -1
  508. package/components/pds-dropdown-menu-separator.js.map +0 -1
  509. package/components/pds-dropdown-menu.js.map +0 -1
  510. package/components/pds-filter.js.map +0 -1
  511. package/components/pds-filters.js.map +0 -1
  512. package/components/pds-icon.js.map +0 -1
  513. package/components/pds-icon2.js.map +0 -1
  514. package/components/pds-image.js.map +0 -1
  515. package/components/pds-input.js.map +0 -1
  516. package/components/pds-link.js.map +0 -1
  517. package/components/pds-link2.js.map +0 -1
  518. package/components/pds-loader.js.map +0 -1
  519. package/components/pds-loader2.js.map +0 -1
  520. package/components/pds-modal-content.js.map +0 -1
  521. package/components/pds-modal-footer.js.map +0 -1
  522. package/components/pds-modal-header.js.map +0 -1
  523. package/components/pds-modal.js.map +0 -1
  524. package/components/pds-multiselect.js.map +0 -1
  525. package/components/pds-popover.js.map +0 -1
  526. package/components/pds-progress.js.map +0 -1
  527. package/components/pds-property.js.map +0 -1
  528. package/components/pds-radio-group.js.map +0 -1
  529. package/components/pds-radio.js.map +0 -1
  530. package/components/pds-row.js.map +0 -1
  531. package/components/pds-select.js.map +0 -1
  532. package/components/pds-sortable-item.js.map +0 -1
  533. package/components/pds-sortable.js.map +0 -1
  534. package/components/pds-switch.js.map +0 -1
  535. package/components/pds-tab.js.map +0 -1
  536. package/components/pds-table-body.js.map +0 -1
  537. package/components/pds-table-cell.js.map +0 -1
  538. package/components/pds-table-cell2.js.map +0 -1
  539. package/components/pds-table-head-cell.js.map +0 -1
  540. package/components/pds-table-head-cell2.js.map +0 -1
  541. package/components/pds-table-head.js.map +0 -1
  542. package/components/pds-table-row.js.map +0 -1
  543. package/components/pds-table.js.map +0 -1
  544. package/components/pds-tabpanel.js.map +0 -1
  545. package/components/pds-tabs.js.map +0 -1
  546. package/components/pds-text.js.map +0 -1
  547. package/components/pds-text2.js.map +0 -1
  548. package/components/pds-textarea.js.map +0 -1
  549. package/components/pds-toast.js.map +0 -1
  550. package/components/pds-tooltip.js.map +0 -1
  551. package/components/scroll.js.map +0 -1
  552. package/components/truncation-tooltip.js.map +0 -1
  553. package/components/utils.js.map +0 -1
  554. package/dist/cjs/attributes-oNMnBEnP.js.map +0 -1
  555. package/dist/cjs/closest-BZXvuB_Y.js.map +0 -1
  556. package/dist/cjs/floating-ui.dom-BZk7Blsu.js.map +0 -1
  557. package/dist/cjs/form-CpM5Z8q7.js.map +0 -1
  558. package/dist/cjs/index-BUvWX8u2.js.map +0 -1
  559. package/dist/cjs/index-DGBoDsAL.js.map +0 -1
  560. package/dist/cjs/index.cjs.js.map +0 -1
  561. package/dist/cjs/loader.cjs.js.map +0 -1
  562. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +0 -1
  563. package/dist/cjs/pds-accordion.entry.cjs.js.map +0 -1
  564. package/dist/cjs/pds-alert.entry.cjs.js.map +0 -1
  565. package/dist/cjs/pds-avatar.entry.cjs.js.map +0 -1
  566. package/dist/cjs/pds-box.entry.cjs.js.map +0 -1
  567. package/dist/cjs/pds-button.entry.cjs.js.map +0 -1
  568. package/dist/cjs/pds-checkbox.entry.cjs.js.map +0 -1
  569. package/dist/cjs/pds-chip.entry.cjs.js.map +0 -1
  570. package/dist/cjs/pds-combobox.entry.cjs.js.map +0 -1
  571. package/dist/cjs/pds-container.entry.cjs.js.map +0 -1
  572. package/dist/cjs/pds-copytext.entry.cjs.js.map +0 -1
  573. package/dist/cjs/pds-divider.entry.cjs.js.map +0 -1
  574. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +0 -1
  575. package/dist/cjs/pds-dropdown-menu-separator.entry.cjs.js.map +0 -1
  576. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +0 -1
  577. package/dist/cjs/pds-filter.entry.cjs.js.map +0 -1
  578. package/dist/cjs/pds-filters.entry.cjs.js.map +0 -1
  579. package/dist/cjs/pds-icon.entry.cjs.js.map +0 -1
  580. package/dist/cjs/pds-image.entry.cjs.js.map +0 -1
  581. package/dist/cjs/pds-input.entry.cjs.js.map +0 -1
  582. package/dist/cjs/pds-link.entry.cjs.js.map +0 -1
  583. package/dist/cjs/pds-loader.entry.cjs.js.map +0 -1
  584. package/dist/cjs/pds-modal-content.entry.cjs.js.map +0 -1
  585. package/dist/cjs/pds-modal-footer.entry.cjs.js.map +0 -1
  586. package/dist/cjs/pds-modal-header.entry.cjs.js.map +0 -1
  587. package/dist/cjs/pds-modal.entry.cjs.js.map +0 -1
  588. package/dist/cjs/pds-multiselect.entry.cjs.js.map +0 -1
  589. package/dist/cjs/pds-popover.entry.cjs.js.map +0 -1
  590. package/dist/cjs/pds-progress.entry.cjs.js.map +0 -1
  591. package/dist/cjs/pds-property.entry.cjs.js.map +0 -1
  592. package/dist/cjs/pds-radio-group.entry.cjs.js.map +0 -1
  593. package/dist/cjs/pds-radio.entry.cjs.js.map +0 -1
  594. package/dist/cjs/pds-row.entry.cjs.js.map +0 -1
  595. package/dist/cjs/pds-select.entry.cjs.js.map +0 -1
  596. package/dist/cjs/pds-sortable-item.entry.cjs.js.map +0 -1
  597. package/dist/cjs/pds-sortable.entry.cjs.js.map +0 -1
  598. package/dist/cjs/pds-switch.entry.cjs.js.map +0 -1
  599. package/dist/cjs/pds-tab.entry.cjs.js.map +0 -1
  600. package/dist/cjs/pds-table-body.entry.cjs.js.map +0 -1
  601. package/dist/cjs/pds-table-cell.entry.cjs.js.map +0 -1
  602. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +0 -1
  603. package/dist/cjs/pds-table-head.entry.cjs.js.map +0 -1
  604. package/dist/cjs/pds-table-row.entry.cjs.js.map +0 -1
  605. package/dist/cjs/pds-table.entry.cjs.js.map +0 -1
  606. package/dist/cjs/pds-tabpanel.entry.cjs.js.map +0 -1
  607. package/dist/cjs/pds-tabs.entry.cjs.js.map +0 -1
  608. package/dist/cjs/pds-text.entry.cjs.js.map +0 -1
  609. package/dist/cjs/pds-textarea.entry.cjs.js.map +0 -1
  610. package/dist/cjs/pds-toast.entry.cjs.js.map +0 -1
  611. package/dist/cjs/pds-tooltip.entry.cjs.js.map +0 -1
  612. package/dist/cjs/pine-core.cjs.js.map +0 -1
  613. package/dist/cjs/scroll-2XcoE_6Q.js.map +0 -1
  614. package/dist/cjs/truncation-tooltip-CVzAha5B.js.map +0 -1
  615. package/dist/cjs/utils-7jx8T2mW.js.map +0 -1
  616. package/dist/collection/components/_internal/pds-label/pds-label.js.map +0 -1
  617. package/dist/collection/components/pds-accordion/pds-accordion.js.map +0 -1
  618. package/dist/collection/components/pds-alert/pds-alert.js.map +0 -1
  619. package/dist/collection/components/pds-avatar/pds-avatar.js.map +0 -1
  620. package/dist/collection/components/pds-box/pds-box.js.map +0 -1
  621. package/dist/collection/components/pds-button/pds-button.js.map +0 -1
  622. package/dist/collection/components/pds-checkbox/checkbox-interface.js.map +0 -1
  623. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +0 -1
  624. package/dist/collection/components/pds-chip/pds-chip.js.map +0 -1
  625. package/dist/collection/components/pds-combobox/combobox-interface.js.map +0 -1
  626. package/dist/collection/components/pds-combobox/pds-combobox.js.map +0 -1
  627. package/dist/collection/components/pds-container/pds-container.js.map +0 -1
  628. package/dist/collection/components/pds-copytext/pds-copytext.js.map +0 -1
  629. package/dist/collection/components/pds-divider/pds-divider.js.map +0 -1
  630. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +0 -1
  631. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js.map +0 -1
  632. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +0 -1
  633. package/dist/collection/components/pds-filters/pds-filter/filter-interface.js.map +0 -1
  634. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +0 -1
  635. package/dist/collection/components/pds-filters/pds-filters.js.map +0 -1
  636. package/dist/collection/components/pds-image/pds-image.js.map +0 -1
  637. package/dist/collection/components/pds-input/input-interface.js.map +0 -1
  638. package/dist/collection/components/pds-input/pds-input.js.map +0 -1
  639. package/dist/collection/components/pds-link/pds-link.js.map +0 -1
  640. package/dist/collection/components/pds-loader/pds-loader.js.map +0 -1
  641. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +0 -1
  642. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js.map +0 -1
  643. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js.map +0 -1
  644. package/dist/collection/components/pds-modal/pds-modal.js.map +0 -1
  645. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +0 -1
  646. package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +0 -1
  647. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +0 -1
  648. package/dist/collection/components/pds-popover/pds-popover.js.map +0 -1
  649. package/dist/collection/components/pds-popover/popover-interface.js.map +0 -1
  650. package/dist/collection/components/pds-progress/pds-progress.js.map +0 -1
  651. package/dist/collection/components/pds-property/pds-property.js.map +0 -1
  652. package/dist/collection/components/pds-radio/pds-radio.js.map +0 -1
  653. package/dist/collection/components/pds-radio-group/pds-radio-group.js.map +0 -1
  654. package/dist/collection/components/pds-radio-group/radio-group-interface.js.map +0 -1
  655. package/dist/collection/components/pds-row/pds-row.js.map +0 -1
  656. package/dist/collection/components/pds-select/pds-select.js.map +0 -1
  657. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js.map +0 -1
  658. package/dist/collection/components/pds-sortable/pds-sortable.js.map +0 -1
  659. package/dist/collection/components/pds-sortable/sortable-interface.js.map +0 -1
  660. package/dist/collection/components/pds-switch/pds-switch.js.map +0 -1
  661. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js.map +0 -1
  662. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +0 -1
  663. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +0 -1
  664. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +0 -1
  665. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +0 -1
  666. package/dist/collection/components/pds-table/pds-table.js.map +0 -1
  667. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +0 -1
  668. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js.map +0 -1
  669. package/dist/collection/components/pds-tabs/pds-tabs.js.map +0 -1
  670. package/dist/collection/components/pds-text/pds-text.js.map +0 -1
  671. package/dist/collection/components/pds-textarea/pds-textarea.js.map +0 -1
  672. package/dist/collection/components/pds-textarea/textarea-interface.js.map +0 -1
  673. package/dist/collection/components/pds-toast/pds-toast.js.map +0 -1
  674. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +0 -1
  675. package/dist/collection/global/pine-ui-global.js.map +0 -1
  676. package/dist/collection/index.js.map +0 -1
  677. package/dist/collection/utils/attributes.js.map +0 -1
  678. package/dist/collection/utils/closest.js.map +0 -1
  679. package/dist/collection/utils/form.js.map +0 -1
  680. package/dist/collection/utils/interfaces.js.map +0 -1
  681. package/dist/collection/utils/overlay.js.map +0 -1
  682. package/dist/collection/utils/scroll.js.map +0 -1
  683. package/dist/collection/utils/test/axe.js.map +0 -1
  684. package/dist/collection/utils/truncation-tooltip.js.map +0 -1
  685. package/dist/collection/utils/types.js.map +0 -1
  686. package/dist/collection/utils/utils.js.map +0 -1
  687. package/dist/esm/attributes-C0M1gTKv.js.map +0 -1
  688. package/dist/esm/closest-DnUJodVd.js.map +0 -1
  689. package/dist/esm/floating-ui.dom-DDtwbwIl.js.map +0 -1
  690. package/dist/esm/form-C3xDZBme.js.map +0 -1
  691. package/dist/esm/index-B2f84Zog.js.map +0 -1
  692. package/dist/esm/index-D4ys0pep.js.map +0 -1
  693. package/dist/esm/index.js.map +0 -1
  694. package/dist/esm/loader.js.map +0 -1
  695. package/dist/esm/mock-pds-modal.entry.js.map +0 -1
  696. package/dist/esm/pds-accordion.entry.js.map +0 -1
  697. package/dist/esm/pds-alert.entry.js.map +0 -1
  698. package/dist/esm/pds-avatar.entry.js.map +0 -1
  699. package/dist/esm/pds-box.entry.js.map +0 -1
  700. package/dist/esm/pds-button.entry.js.map +0 -1
  701. package/dist/esm/pds-checkbox.entry.js.map +0 -1
  702. package/dist/esm/pds-chip.entry.js.map +0 -1
  703. package/dist/esm/pds-combobox.entry.js.map +0 -1
  704. package/dist/esm/pds-container.entry.js.map +0 -1
  705. package/dist/esm/pds-copytext.entry.js.map +0 -1
  706. package/dist/esm/pds-divider.entry.js.map +0 -1
  707. package/dist/esm/pds-dropdown-menu-item.entry.js.map +0 -1
  708. package/dist/esm/pds-dropdown-menu-separator.entry.js.map +0 -1
  709. package/dist/esm/pds-dropdown-menu.entry.js.map +0 -1
  710. package/dist/esm/pds-filter.entry.js.map +0 -1
  711. package/dist/esm/pds-filters.entry.js.map +0 -1
  712. package/dist/esm/pds-icon.entry.js.map +0 -1
  713. package/dist/esm/pds-image.entry.js.map +0 -1
  714. package/dist/esm/pds-input.entry.js.map +0 -1
  715. package/dist/esm/pds-link.entry.js.map +0 -1
  716. package/dist/esm/pds-loader.entry.js.map +0 -1
  717. package/dist/esm/pds-modal-content.entry.js.map +0 -1
  718. package/dist/esm/pds-modal-footer.entry.js.map +0 -1
  719. package/dist/esm/pds-modal-header.entry.js.map +0 -1
  720. package/dist/esm/pds-modal.entry.js.map +0 -1
  721. package/dist/esm/pds-multiselect.entry.js.map +0 -1
  722. package/dist/esm/pds-popover.entry.js.map +0 -1
  723. package/dist/esm/pds-progress.entry.js.map +0 -1
  724. package/dist/esm/pds-property.entry.js.map +0 -1
  725. package/dist/esm/pds-radio-group.entry.js.map +0 -1
  726. package/dist/esm/pds-radio.entry.js.map +0 -1
  727. package/dist/esm/pds-row.entry.js.map +0 -1
  728. package/dist/esm/pds-select.entry.js.map +0 -1
  729. package/dist/esm/pds-sortable-item.entry.js.map +0 -1
  730. package/dist/esm/pds-sortable.entry.js.map +0 -1
  731. package/dist/esm/pds-switch.entry.js.map +0 -1
  732. package/dist/esm/pds-tab.entry.js.map +0 -1
  733. package/dist/esm/pds-table-body.entry.js.map +0 -1
  734. package/dist/esm/pds-table-cell.entry.js.map +0 -1
  735. package/dist/esm/pds-table-head-cell.entry.js.map +0 -1
  736. package/dist/esm/pds-table-head.entry.js.map +0 -1
  737. package/dist/esm/pds-table-row.entry.js.map +0 -1
  738. package/dist/esm/pds-table.entry.js.map +0 -1
  739. package/dist/esm/pds-tabpanel.entry.js.map +0 -1
  740. package/dist/esm/pds-tabs.entry.js.map +0 -1
  741. package/dist/esm/pds-text.entry.js.map +0 -1
  742. package/dist/esm/pds-textarea.entry.js.map +0 -1
  743. package/dist/esm/pds-toast.entry.js.map +0 -1
  744. package/dist/esm/pds-tooltip.entry.js.map +0 -1
  745. package/dist/esm/pine-core.js.map +0 -1
  746. package/dist/esm/scroll-DtgUQhjl.js.map +0 -1
  747. package/dist/esm/truncation-tooltip-Blk4GigP.js.map +0 -1
  748. package/dist/esm/utils-tJa4KYNO.js.map +0 -1
  749. package/dist/esm-es5/attributes-C0M1gTKv.js.map +0 -1
  750. package/dist/esm-es5/closest-DnUJodVd.js.map +0 -1
  751. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js.map +0 -1
  752. package/dist/esm-es5/form-C3xDZBme.js.map +0 -1
  753. package/dist/esm-es5/index-B2f84Zog.js +0 -3
  754. package/dist/esm-es5/index-B2f84Zog.js.map +0 -1
  755. package/dist/esm-es5/index-D4ys0pep.js.map +0 -1
  756. package/dist/esm-es5/index.js.map +0 -1
  757. package/dist/esm-es5/loader.js.map +0 -1
  758. package/dist/esm-es5/mock-pds-modal.entry.js.map +0 -1
  759. package/dist/esm-es5/pds-accordion.entry.js.map +0 -1
  760. package/dist/esm-es5/pds-alert.entry.js.map +0 -1
  761. package/dist/esm-es5/pds-avatar.entry.js.map +0 -1
  762. package/dist/esm-es5/pds-box.entry.js.map +0 -1
  763. package/dist/esm-es5/pds-button.entry.js.map +0 -1
  764. package/dist/esm-es5/pds-checkbox.entry.js.map +0 -1
  765. package/dist/esm-es5/pds-chip.entry.js.map +0 -1
  766. package/dist/esm-es5/pds-combobox.entry.js.map +0 -1
  767. package/dist/esm-es5/pds-container.entry.js.map +0 -1
  768. package/dist/esm-es5/pds-copytext.entry.js.map +0 -1
  769. package/dist/esm-es5/pds-divider.entry.js.map +0 -1
  770. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +0 -1
  771. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js.map +0 -1
  772. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +0 -1
  773. package/dist/esm-es5/pds-filter.entry.js.map +0 -1
  774. package/dist/esm-es5/pds-filters.entry.js.map +0 -1
  775. package/dist/esm-es5/pds-icon.entry.js.map +0 -1
  776. package/dist/esm-es5/pds-image.entry.js.map +0 -1
  777. package/dist/esm-es5/pds-input.entry.js.map +0 -1
  778. package/dist/esm-es5/pds-link.entry.js.map +0 -1
  779. package/dist/esm-es5/pds-loader.entry.js.map +0 -1
  780. package/dist/esm-es5/pds-modal-content.entry.js.map +0 -1
  781. package/dist/esm-es5/pds-modal-footer.entry.js.map +0 -1
  782. package/dist/esm-es5/pds-modal-header.entry.js.map +0 -1
  783. package/dist/esm-es5/pds-modal.entry.js.map +0 -1
  784. package/dist/esm-es5/pds-multiselect.entry.js.map +0 -1
  785. package/dist/esm-es5/pds-popover.entry.js.map +0 -1
  786. package/dist/esm-es5/pds-progress.entry.js.map +0 -1
  787. package/dist/esm-es5/pds-property.entry.js.map +0 -1
  788. package/dist/esm-es5/pds-radio-group.entry.js.map +0 -1
  789. package/dist/esm-es5/pds-radio.entry.js.map +0 -1
  790. package/dist/esm-es5/pds-row.entry.js.map +0 -1
  791. package/dist/esm-es5/pds-select.entry.js.map +0 -1
  792. package/dist/esm-es5/pds-sortable-item.entry.js.map +0 -1
  793. package/dist/esm-es5/pds-sortable.entry.js.map +0 -1
  794. package/dist/esm-es5/pds-switch.entry.js.map +0 -1
  795. package/dist/esm-es5/pds-tab.entry.js.map +0 -1
  796. package/dist/esm-es5/pds-table-body.entry.js.map +0 -1
  797. package/dist/esm-es5/pds-table-cell.entry.js.map +0 -1
  798. package/dist/esm-es5/pds-table-head-cell.entry.js.map +0 -1
  799. package/dist/esm-es5/pds-table-head.entry.js.map +0 -1
  800. package/dist/esm-es5/pds-table-row.entry.js.map +0 -1
  801. package/dist/esm-es5/pds-table.entry.js.map +0 -1
  802. package/dist/esm-es5/pds-tabpanel.entry.js.map +0 -1
  803. package/dist/esm-es5/pds-tabs.entry.js.map +0 -1
  804. package/dist/esm-es5/pds-text.entry.js.map +0 -1
  805. package/dist/esm-es5/pds-textarea.entry.js.map +0 -1
  806. package/dist/esm-es5/pds-toast.entry.js.map +0 -1
  807. package/dist/esm-es5/pds-tooltip.entry.js.map +0 -1
  808. package/dist/esm-es5/pine-core.js.map +0 -1
  809. package/dist/esm-es5/scroll-DtgUQhjl.js.map +0 -1
  810. package/dist/esm-es5/truncation-tooltip-Blk4GigP.js.map +0 -1
  811. package/dist/esm-es5/utils-tJa4KYNO.js.map +0 -1
  812. package/dist/pine-core/index.esm.js.map +0 -1
  813. package/dist/pine-core/loader.esm.js.map +0 -1
  814. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +0 -1
  815. package/dist/pine-core/p-037dbdcd.system.entry.js +0 -2
  816. package/dist/pine-core/p-037dbdcd.system.entry.js.map +0 -1
  817. package/dist/pine-core/p-06713f25.entry.js +0 -2
  818. package/dist/pine-core/p-06713f25.entry.js.map +0 -1
  819. package/dist/pine-core/p-0977b2dd.entry.js +0 -2
  820. package/dist/pine-core/p-0977b2dd.entry.js.map +0 -1
  821. package/dist/pine-core/p-099e9f9b.system.entry.js +0 -2
  822. package/dist/pine-core/p-099e9f9b.system.entry.js.map +0 -1
  823. package/dist/pine-core/p-0a7115f0.entry.js +0 -2
  824. package/dist/pine-core/p-0a7115f0.entry.js.map +0 -1
  825. package/dist/pine-core/p-0c1ab384.system.entry.js +0 -2
  826. package/dist/pine-core/p-0c1ab384.system.entry.js.map +0 -1
  827. package/dist/pine-core/p-0dee7449.system.entry.js +0 -2
  828. package/dist/pine-core/p-0dee7449.system.entry.js.map +0 -1
  829. package/dist/pine-core/p-102d0dd6.system.entry.js +0 -2
  830. package/dist/pine-core/p-102d0dd6.system.entry.js.map +0 -1
  831. package/dist/pine-core/p-10ebecc5.entry.js +0 -2
  832. package/dist/pine-core/p-10ebecc5.entry.js.map +0 -1
  833. package/dist/pine-core/p-1598f3af.entry.js +0 -2
  834. package/dist/pine-core/p-1598f3af.entry.js.map +0 -1
  835. package/dist/pine-core/p-1c32102e.system.entry.js +0 -2
  836. package/dist/pine-core/p-1c32102e.system.entry.js.map +0 -1
  837. package/dist/pine-core/p-2258b31b.system.entry.js +0 -2
  838. package/dist/pine-core/p-2258b31b.system.entry.js.map +0 -1
  839. package/dist/pine-core/p-275fa74c.system.entry.js +0 -2
  840. package/dist/pine-core/p-275fa74c.system.entry.js.map +0 -1
  841. package/dist/pine-core/p-27fc0737.system.entry.js +0 -2
  842. package/dist/pine-core/p-27fc0737.system.entry.js.map +0 -1
  843. package/dist/pine-core/p-32ad2807.system.entry.js +0 -2
  844. package/dist/pine-core/p-32ad2807.system.entry.js.map +0 -1
  845. package/dist/pine-core/p-33544ed1.system.entry.js +0 -2
  846. package/dist/pine-core/p-33544ed1.system.entry.js.map +0 -1
  847. package/dist/pine-core/p-34763aae.system.entry.js +0 -2
  848. package/dist/pine-core/p-34763aae.system.entry.js.map +0 -1
  849. package/dist/pine-core/p-36070380.system.entry.js +0 -2
  850. package/dist/pine-core/p-36070380.system.entry.js.map +0 -1
  851. package/dist/pine-core/p-3625bc45.entry.js +0 -2
  852. package/dist/pine-core/p-3625bc45.entry.js.map +0 -1
  853. package/dist/pine-core/p-3b087f24.entry.js +0 -2
  854. package/dist/pine-core/p-3b087f24.entry.js.map +0 -1
  855. package/dist/pine-core/p-3f66c070.entry.js +0 -2
  856. package/dist/pine-core/p-3f66c070.entry.js.map +0 -1
  857. package/dist/pine-core/p-407aad2b.system.entry.js +0 -2
  858. package/dist/pine-core/p-407aad2b.system.entry.js.map +0 -1
  859. package/dist/pine-core/p-44ca9b92.entry.js +0 -2
  860. package/dist/pine-core/p-44ca9b92.entry.js.map +0 -1
  861. package/dist/pine-core/p-476db791.entry.js +0 -2
  862. package/dist/pine-core/p-476db791.entry.js.map +0 -1
  863. package/dist/pine-core/p-4780403d.system.entry.js +0 -2
  864. package/dist/pine-core/p-4780403d.system.entry.js.map +0 -1
  865. package/dist/pine-core/p-48ac6873.entry.js +0 -2
  866. package/dist/pine-core/p-48ac6873.entry.js.map +0 -1
  867. package/dist/pine-core/p-4FBDaIH3.system.js.map +0 -1
  868. package/dist/pine-core/p-4ede20e6.entry.js +0 -2
  869. package/dist/pine-core/p-4ede20e6.entry.js.map +0 -1
  870. package/dist/pine-core/p-4f2a48cb.system.entry.js +0 -2
  871. package/dist/pine-core/p-4f2a48cb.system.entry.js.map +0 -1
  872. package/dist/pine-core/p-4f440dd4.entry.js +0 -2
  873. package/dist/pine-core/p-4f440dd4.entry.js.map +0 -1
  874. package/dist/pine-core/p-4jrX5aRd.system.js.map +0 -1
  875. package/dist/pine-core/p-51e47e6e.system.entry.js +0 -2
  876. package/dist/pine-core/p-51e47e6e.system.entry.js.map +0 -1
  877. package/dist/pine-core/p-52411757.system.entry.js +0 -2
  878. package/dist/pine-core/p-52411757.system.entry.js.map +0 -1
  879. package/dist/pine-core/p-557005a0.entry.js +0 -2
  880. package/dist/pine-core/p-557005a0.entry.js.map +0 -1
  881. package/dist/pine-core/p-5e117b98.entry.js +0 -2
  882. package/dist/pine-core/p-5e117b98.entry.js.map +0 -1
  883. package/dist/pine-core/p-639012b9.system.entry.js +0 -2
  884. package/dist/pine-core/p-639012b9.system.entry.js.map +0 -1
  885. package/dist/pine-core/p-643b01ad.entry.js +0 -2
  886. package/dist/pine-core/p-643b01ad.entry.js.map +0 -1
  887. package/dist/pine-core/p-6623b257.system.entry.js +0 -2
  888. package/dist/pine-core/p-6623b257.system.entry.js.map +0 -1
  889. package/dist/pine-core/p-74ff4d96.system.entry.js +0 -2
  890. package/dist/pine-core/p-74ff4d96.system.entry.js.map +0 -1
  891. package/dist/pine-core/p-77327e1b.system.entry.js +0 -2
  892. package/dist/pine-core/p-77327e1b.system.entry.js.map +0 -1
  893. package/dist/pine-core/p-774ecbd4.entry.js +0 -2
  894. package/dist/pine-core/p-774ecbd4.entry.js.map +0 -1
  895. package/dist/pine-core/p-7926dc93.entry.js +0 -2
  896. package/dist/pine-core/p-7926dc93.entry.js.map +0 -1
  897. package/dist/pine-core/p-7a3eccef.entry.js +0 -2
  898. package/dist/pine-core/p-7a3eccef.entry.js.map +0 -1
  899. package/dist/pine-core/p-7acb131c.system.entry.js +0 -2
  900. package/dist/pine-core/p-7acb131c.system.entry.js.map +0 -1
  901. package/dist/pine-core/p-81a3e32b.entry.js +0 -2
  902. package/dist/pine-core/p-81a3e32b.entry.js.map +0 -1
  903. package/dist/pine-core/p-848763b6.system.entry.js +0 -2
  904. package/dist/pine-core/p-848763b6.system.entry.js.map +0 -1
  905. package/dist/pine-core/p-85e889c3.system.entry.js.map +0 -1
  906. package/dist/pine-core/p-8669e0e3.system.entry.js +0 -2
  907. package/dist/pine-core/p-8669e0e3.system.entry.js.map +0 -1
  908. package/dist/pine-core/p-8735cb58.entry.js +0 -2
  909. package/dist/pine-core/p-8735cb58.entry.js.map +0 -1
  910. package/dist/pine-core/p-8b3aeaf9.system.entry.js +0 -2
  911. package/dist/pine-core/p-8b3aeaf9.system.entry.js.map +0 -1
  912. package/dist/pine-core/p-8b7aa53d.entry.js +0 -2
  913. package/dist/pine-core/p-8b7aa53d.entry.js.map +0 -1
  914. package/dist/pine-core/p-8c97fcb1.entry.js +0 -2
  915. package/dist/pine-core/p-8c97fcb1.entry.js.map +0 -1
  916. package/dist/pine-core/p-8c9f8ca6.entry.js +0 -2
  917. package/dist/pine-core/p-8c9f8ca6.entry.js.map +0 -1
  918. package/dist/pine-core/p-904e8d9d.system.entry.js +0 -2
  919. package/dist/pine-core/p-904e8d9d.system.entry.js.map +0 -1
  920. package/dist/pine-core/p-91bea052.entry.js +0 -2
  921. package/dist/pine-core/p-91bea052.entry.js.map +0 -1
  922. package/dist/pine-core/p-9230df2a.system.entry.js +0 -2
  923. package/dist/pine-core/p-9230df2a.system.entry.js.map +0 -1
  924. package/dist/pine-core/p-94a09b06.entry.js +0 -2
  925. package/dist/pine-core/p-94a09b06.entry.js.map +0 -1
  926. package/dist/pine-core/p-94d4d1de.entry.js +0 -3
  927. package/dist/pine-core/p-94d4d1de.entry.js.map +0 -1
  928. package/dist/pine-core/p-984db3fc.entry.js +0 -2
  929. package/dist/pine-core/p-984db3fc.entry.js.map +0 -1
  930. package/dist/pine-core/p-988d1723.system.entry.js +0 -2
  931. package/dist/pine-core/p-988d1723.system.entry.js.map +0 -1
  932. package/dist/pine-core/p-98dabbbf.entry.js +0 -2
  933. package/dist/pine-core/p-98dabbbf.entry.js.map +0 -1
  934. package/dist/pine-core/p-9a3c9d15.system.entry.js +0 -2
  935. package/dist/pine-core/p-9a3c9d15.system.entry.js.map +0 -1
  936. package/dist/pine-core/p-9b3aedeb.system.entry.js +0 -2
  937. package/dist/pine-core/p-9b3aedeb.system.entry.js.map +0 -1
  938. package/dist/pine-core/p-9ce56712.system.entry.js +0 -2
  939. package/dist/pine-core/p-9ce56712.system.entry.js.map +0 -1
  940. package/dist/pine-core/p-9e48d1ea.system.entry.js +0 -2
  941. package/dist/pine-core/p-9e48d1ea.system.entry.js.map +0 -1
  942. package/dist/pine-core/p-9e5c58c6.entry.js +0 -8
  943. package/dist/pine-core/p-9e5c58c6.entry.js.map +0 -1
  944. package/dist/pine-core/p-B-I9BXj1.system.js.map +0 -1
  945. package/dist/pine-core/p-B-nnQT8K.system.js.map +0 -1
  946. package/dist/pine-core/p-B1u-QvFn.system.js.map +0 -1
  947. package/dist/pine-core/p-B2f84Zog.js +0 -3
  948. package/dist/pine-core/p-B2f84Zog.js.map +0 -1
  949. package/dist/pine-core/p-BC7kndqW.system.js.map +0 -1
  950. package/dist/pine-core/p-BFAhunk3.system.js.map +0 -1
  951. package/dist/pine-core/p-BG6uGRQj.system.js.map +0 -1
  952. package/dist/pine-core/p-BJQiqlL7.system.js.map +0 -1
  953. package/dist/pine-core/p-BLg534X3.system.js.map +0 -1
  954. package/dist/pine-core/p-BNSGedhN.js.map +0 -1
  955. package/dist/pine-core/p-BT-iITx_.system.js.map +0 -1
  956. package/dist/pine-core/p-BTsajr3h.system.js.map +0 -1
  957. package/dist/pine-core/p-BcCpTdwz.system.js.map +0 -1
  958. package/dist/pine-core/p-BhQhw0S3.system.js.map +0 -1
  959. package/dist/pine-core/p-Bkk7A0W9.system.js.map +0 -1
  960. package/dist/pine-core/p-BmOvsRx7.system.js.map +0 -1
  961. package/dist/pine-core/p-BrLs99ML.system.js.map +0 -1
  962. package/dist/pine-core/p-BtfqzsXS.system.js.map +0 -1
  963. package/dist/pine-core/p-BvJkwltO.system.js.map +0 -1
  964. package/dist/pine-core/p-BvV4-w8H.system.js.map +0 -1
  965. package/dist/pine-core/p-C0M1gTKv.js.map +0 -1
  966. package/dist/pine-core/p-C3TuSlI7.system.js.map +0 -1
  967. package/dist/pine-core/p-C3xDZBme.js.map +0 -1
  968. package/dist/pine-core/p-C5jXV4WJ.system.js.map +0 -1
  969. package/dist/pine-core/p-C5qxTQb1.system.js.map +0 -1
  970. package/dist/pine-core/p-C62JIZmE.system.js.map +0 -1
  971. package/dist/pine-core/p-C6yvFUy3.system.js.map +0 -1
  972. package/dist/pine-core/p-CCRLZO4N.system.js.map +0 -1
  973. package/dist/pine-core/p-CD-PjU09.system.js.map +0 -1
  974. package/dist/pine-core/p-CI-oL5TR.system.js.map +0 -1
  975. package/dist/pine-core/p-CIbXcB4O.system.js.map +0 -1
  976. package/dist/pine-core/p-CIe6-SsT.system.js.map +0 -1
  977. package/dist/pine-core/p-CRCxGYgw.system.js.map +0 -1
  978. package/dist/pine-core/p-CSVND2Gt.system.js.map +0 -1
  979. package/dist/pine-core/p-CUEE9EMe.system.js.map +0 -1
  980. package/dist/pine-core/p-CXImmjF5.system.js.map +0 -1
  981. package/dist/pine-core/p-C_g3FnvJ.system.js.map +0 -1
  982. package/dist/pine-core/p-CmNZDo8q.system.js.map +0 -1
  983. package/dist/pine-core/p-Cn98QWqb.system.js.map +0 -1
  984. package/dist/pine-core/p-Cqgvmo2o.system.js +0 -2
  985. package/dist/pine-core/p-Cqgvmo2o.system.js.map +0 -1
  986. package/dist/pine-core/p-Cu24FhMY.system.js.map +0 -1
  987. package/dist/pine-core/p-CwEjYXkp.system.js.map +0 -1
  988. package/dist/pine-core/p-D4ys0pep.js.map +0 -1
  989. package/dist/pine-core/p-DA3fC_kX.system.js.map +0 -1
  990. package/dist/pine-core/p-DDtwbwIl.js.map +0 -1
  991. package/dist/pine-core/p-DG_z5J3G.system.js.map +0 -1
  992. package/dist/pine-core/p-DL3JCnpO.system.js.map +0 -1
  993. package/dist/pine-core/p-DSlRwx2e.system.js.map +0 -1
  994. package/dist/pine-core/p-DVra397g.system.js.map +0 -1
  995. package/dist/pine-core/p-DYlgS5d7.system.js +0 -3
  996. package/dist/pine-core/p-DYlgS5d7.system.js.map +0 -1
  997. package/dist/pine-core/p-DeVgpUr5.system.js.map +0 -1
  998. package/dist/pine-core/p-DnUJodVd.js.map +0 -1
  999. package/dist/pine-core/p-DtgUQhjl.js.map +0 -1
  1000. package/dist/pine-core/p-Dxrjs-vy.system.js.map +0 -1
  1001. package/dist/pine-core/p-H7VDsgsr.system.js.map +0 -1
  1002. package/dist/pine-core/p-JwuGXyPc.system.js.map +0 -1
  1003. package/dist/pine-core/p-U1PewsWZ.system.js.map +0 -1
  1004. package/dist/pine-core/p-UILRZV99.system.js.map +0 -1
  1005. package/dist/pine-core/p-V-ORMWaS.system.js.map +0 -1
  1006. package/dist/pine-core/p-W7E5TRNL.system.js.map +0 -1
  1007. package/dist/pine-core/p-YWpyar7R.system.js.map +0 -1
  1008. package/dist/pine-core/p-Yfy85hdp.system.js.map +0 -1
  1009. package/dist/pine-core/p-ZrPaY2bh.system.js.map +0 -1
  1010. package/dist/pine-core/p-a30b386f.entry.js +0 -2
  1011. package/dist/pine-core/p-a30b386f.entry.js.map +0 -1
  1012. package/dist/pine-core/p-a5014407.system.entry.js +0 -2
  1013. package/dist/pine-core/p-a5014407.system.entry.js.map +0 -1
  1014. package/dist/pine-core/p-a695ff4c.system.entry.js +0 -2
  1015. package/dist/pine-core/p-a695ff4c.system.entry.js.map +0 -1
  1016. package/dist/pine-core/p-a8c49f8e.entry.js +0 -2
  1017. package/dist/pine-core/p-a8c49f8e.entry.js.map +0 -1
  1018. package/dist/pine-core/p-ae74a4b6.system.entry.js +0 -2
  1019. package/dist/pine-core/p-ae74a4b6.system.entry.js.map +0 -1
  1020. package/dist/pine-core/p-b1cde22a.entry.js +0 -2
  1021. package/dist/pine-core/p-b1cde22a.entry.js.map +0 -1
  1022. package/dist/pine-core/p-b9340fb1.system.entry.js +0 -2
  1023. package/dist/pine-core/p-b9340fb1.system.entry.js.map +0 -1
  1024. package/dist/pine-core/p-b9fcc3f8.system.entry.js +0 -2
  1025. package/dist/pine-core/p-b9fcc3f8.system.entry.js.map +0 -1
  1026. package/dist/pine-core/p-bIvjoz7p.system.js.map +0 -1
  1027. package/dist/pine-core/p-bc8f61d1.entry.js +0 -2
  1028. package/dist/pine-core/p-bc8f61d1.entry.js.map +0 -1
  1029. package/dist/pine-core/p-bea013d1.entry.js +0 -2
  1030. package/dist/pine-core/p-bea013d1.entry.js.map +0 -1
  1031. package/dist/pine-core/p-c026479a.system.entry.js +0 -2
  1032. package/dist/pine-core/p-c026479a.system.entry.js.map +0 -1
  1033. package/dist/pine-core/p-c9784d20.system.entry.js +0 -4
  1034. package/dist/pine-core/p-c9784d20.system.entry.js.map +0 -1
  1035. package/dist/pine-core/p-c9b06db1.system.entry.js +0 -2
  1036. package/dist/pine-core/p-c9b06db1.system.entry.js.map +0 -1
  1037. package/dist/pine-core/p-cab14421.entry.js +0 -2
  1038. package/dist/pine-core/p-cab14421.entry.js.map +0 -1
  1039. package/dist/pine-core/p-d5fcdcdd.entry.js +0 -2
  1040. package/dist/pine-core/p-d5fcdcdd.entry.js.map +0 -1
  1041. package/dist/pine-core/p-d86e20b5.system.entry.js +0 -2
  1042. package/dist/pine-core/p-d86e20b5.system.entry.js.map +0 -1
  1043. package/dist/pine-core/p-d9354ad3.system.entry.js +0 -2
  1044. package/dist/pine-core/p-d9354ad3.system.entry.js.map +0 -1
  1045. package/dist/pine-core/p-dab76f15.entry.js +0 -2
  1046. package/dist/pine-core/p-dab76f15.entry.js.map +0 -1
  1047. package/dist/pine-core/p-db16d1fe.entry.js +0 -2
  1048. package/dist/pine-core/p-db16d1fe.entry.js.map +0 -1
  1049. package/dist/pine-core/p-db63f83b.system.entry.js +0 -2
  1050. package/dist/pine-core/p-db63f83b.system.entry.js.map +0 -1
  1051. package/dist/pine-core/p-dd3ea74e.system.entry.js +0 -2
  1052. package/dist/pine-core/p-dd3ea74e.system.entry.js.map +0 -1
  1053. package/dist/pine-core/p-ddb48534.entry.js +0 -2
  1054. package/dist/pine-core/p-ddb48534.entry.js.map +0 -1
  1055. package/dist/pine-core/p-de9f43b6.entry.js +0 -2
  1056. package/dist/pine-core/p-de9f43b6.entry.js.map +0 -1
  1057. package/dist/pine-core/p-e25da259.entry.js +0 -2
  1058. package/dist/pine-core/p-e25da259.entry.js.map +0 -1
  1059. package/dist/pine-core/p-e288dc89.system.entry.js +0 -2
  1060. package/dist/pine-core/p-e288dc89.system.entry.js.map +0 -1
  1061. package/dist/pine-core/p-ea5c42b8.system.entry.js +0 -2
  1062. package/dist/pine-core/p-ea5c42b8.system.entry.js.map +0 -1
  1063. package/dist/pine-core/p-ed5d5be6.entry.js +0 -2
  1064. package/dist/pine-core/p-ed5d5be6.entry.js.map +0 -1
  1065. package/dist/pine-core/p-ef081f0f.entry.js +0 -2
  1066. package/dist/pine-core/p-ef081f0f.entry.js.map +0 -1
  1067. package/dist/pine-core/p-f09c5021.entry.js +0 -2
  1068. package/dist/pine-core/p-f09c5021.entry.js.map +0 -1
  1069. package/dist/pine-core/p-f201cf57.entry.js +0 -2
  1070. package/dist/pine-core/p-f201cf57.entry.js.map +0 -1
  1071. package/dist/pine-core/p-f20ab351.entry.js +0 -2
  1072. package/dist/pine-core/p-f20ab351.entry.js.map +0 -1
  1073. package/dist/pine-core/p-f2798581.entry.js +0 -2
  1074. package/dist/pine-core/p-f2798581.entry.js.map +0 -1
  1075. package/dist/pine-core/p-f2ca0cf8.entry.js +0 -2
  1076. package/dist/pine-core/p-f2ca0cf8.entry.js.map +0 -1
  1077. package/dist/pine-core/p-f77fad86.system.entry.js +0 -2
  1078. package/dist/pine-core/p-f77fad86.system.entry.js.map +0 -1
  1079. package/dist/pine-core/p-ff472f7c.system.entry.js +0 -2
  1080. package/dist/pine-core/p-ff472f7c.system.entry.js.map +0 -1
  1081. package/dist/pine-core/p-ff5b2c90.entry.js +0 -2
  1082. package/dist/pine-core/p-ff5b2c90.entry.js.map +0 -1
  1083. package/dist/pine-core/p-g4mFEadi.system.js.map +0 -1
  1084. package/dist/pine-core/p-kYMYDfJY.system.js.map +0 -1
  1085. package/dist/pine-core/p-tJa4KYNO.js.map +0 -1
  1086. package/dist/pine-core/p-vLxlRu4_.system.js.map +0 -1
  1087. package/dist/pine-core/p-ziMh7dwl.system.js.map +0 -1
  1088. package/dist/pine-core/pds-accordion.entry.esm.js.map +0 -1
  1089. package/dist/pine-core/pds-alert.entry.esm.js.map +0 -1
  1090. package/dist/pine-core/pds-avatar.entry.esm.js.map +0 -1
  1091. package/dist/pine-core/pds-box.entry.esm.js.map +0 -1
  1092. package/dist/pine-core/pds-button.entry.esm.js.map +0 -1
  1093. package/dist/pine-core/pds-checkbox.entry.esm.js.map +0 -1
  1094. package/dist/pine-core/pds-chip.entry.esm.js.map +0 -1
  1095. package/dist/pine-core/pds-combobox.entry.esm.js.map +0 -1
  1096. package/dist/pine-core/pds-container.entry.esm.js.map +0 -1
  1097. package/dist/pine-core/pds-copytext.entry.esm.js.map +0 -1
  1098. package/dist/pine-core/pds-divider.entry.esm.js.map +0 -1
  1099. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +0 -1
  1100. package/dist/pine-core/pds-dropdown-menu-separator.entry.esm.js.map +0 -1
  1101. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +0 -1
  1102. package/dist/pine-core/pds-filter.entry.esm.js.map +0 -1
  1103. package/dist/pine-core/pds-filters.entry.esm.js.map +0 -1
  1104. package/dist/pine-core/pds-icon.entry.esm.js.map +0 -1
  1105. package/dist/pine-core/pds-image.entry.esm.js.map +0 -1
  1106. package/dist/pine-core/pds-input.entry.esm.js.map +0 -1
  1107. package/dist/pine-core/pds-link.entry.esm.js.map +0 -1
  1108. package/dist/pine-core/pds-loader.entry.esm.js.map +0 -1
  1109. package/dist/pine-core/pds-modal-content.entry.esm.js.map +0 -1
  1110. package/dist/pine-core/pds-modal-footer.entry.esm.js.map +0 -1
  1111. package/dist/pine-core/pds-modal-header.entry.esm.js.map +0 -1
  1112. package/dist/pine-core/pds-modal.entry.esm.js.map +0 -1
  1113. package/dist/pine-core/pds-multiselect.entry.esm.js.map +0 -1
  1114. package/dist/pine-core/pds-popover.entry.esm.js.map +0 -1
  1115. package/dist/pine-core/pds-progress.entry.esm.js.map +0 -1
  1116. package/dist/pine-core/pds-property.entry.esm.js.map +0 -1
  1117. package/dist/pine-core/pds-radio-group.entry.esm.js.map +0 -1
  1118. package/dist/pine-core/pds-radio.entry.esm.js.map +0 -1
  1119. package/dist/pine-core/pds-row.entry.esm.js.map +0 -1
  1120. package/dist/pine-core/pds-select.entry.esm.js.map +0 -1
  1121. package/dist/pine-core/pds-sortable-item.entry.esm.js.map +0 -1
  1122. package/dist/pine-core/pds-sortable.entry.esm.js.map +0 -1
  1123. package/dist/pine-core/pds-switch.entry.esm.js.map +0 -1
  1124. package/dist/pine-core/pds-tab.entry.esm.js.map +0 -1
  1125. package/dist/pine-core/pds-table-body.entry.esm.js.map +0 -1
  1126. package/dist/pine-core/pds-table-cell.entry.esm.js.map +0 -1
  1127. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +0 -1
  1128. package/dist/pine-core/pds-table-head.entry.esm.js.map +0 -1
  1129. package/dist/pine-core/pds-table-row.entry.esm.js.map +0 -1
  1130. package/dist/pine-core/pds-table.entry.esm.js.map +0 -1
  1131. package/dist/pine-core/pds-tabpanel.entry.esm.js.map +0 -1
  1132. package/dist/pine-core/pds-tabs.entry.esm.js.map +0 -1
  1133. package/dist/pine-core/pds-text.entry.esm.js.map +0 -1
  1134. package/dist/pine-core/pds-textarea.entry.esm.js.map +0 -1
  1135. package/dist/pine-core/pds-toast.entry.esm.js.map +0 -1
  1136. package/dist/pine-core/pds-tooltip.entry.esm.js.map +0 -1
  1137. package/dist/pine-core/pine-core.esm.js.map +0 -1
  1138. package/dist/scripts/vscode-custom-data-generator.js.map +0 -1
  1139. package/dist/vscode.html-data.json +0 -10551
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-table-body.entry.js","sources":["src/components/pds-table/pds-table-body/pds-table-body.scss?tag=pds-table-body&encapsulation=shadow","src/components/pds-table/pds-table-body/pds-table-body.tsx"],"sourcesContent":[":host {\n border-color: inherit;\n display: table-row-group;\n vertical-align: middle;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-table-body',\n styleUrls: ['pds-table-body.scss'],\n shadow: true,\n})\nexport class PdsTableBody {\n\n render() {\n return (\n <Host role=\"rowgroup\" part=\"body\">\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,eAAe,GAAG,2EAA2E;;MCOtF,YAAY,GAAA,MAAA;;;;IAEvB,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,MAAM,EAAA,EAC/B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-table-cell.entry.js","sources":["src/components/pds-table/pds-table-cell/pds-table-cell.scss?tag=pds-table-cell&encapsulation=shadow","src/components/pds-table/pds-table-cell/pds-table-cell.tsx"],"sourcesContent":[":host {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n --box-shadow-fixed: 3px 3px 6px -2px rgba(0, 0, 0, 0.2);\n\n color: var(--pine-color-text);\n display: table-cell;\n font-family: var(--pine-font-family-body);\n font-size: var(--pine-font-size);\n font-weight: var(--pine-font-weight-regular);\n inset-inline-start: var(--pine-dimension-none);\n letter-spacing: var(--pine-letter-spacing);\n line-height: var(--pine-line-height-body);\n padding: var(--pine-dimension-sm);\n vertical-align: middle;\n}\n\n:host(.is-compact) {\n padding-block: var(--pine-dimension-2xs)\n}\n\n:host(.is-fixed) {\n background: var(--pine-color-background-container);\n inset-inline-start: 0;\n position: sticky;\n z-index: var(--pine-z-index-raised);\n}\n\n// Flip shadow toward scrollable content when fixed column is on the inline-end edge.\n:host-context([dir='rtl']) {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n --box-shadow-fixed: -3px 3px 6px -2px rgba(0, 0, 0, 0.2);\n}\n\n// box shadow when table has scrolled and cell is fixed\n:host(.has-scrolled.is-fixed) {\n box-shadow: var(--box-shadow-fixed);\n}\n\n:host(.is-truncated) {\n max-width: var(--pds-table-cell-truncate-max-width, 100px);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host(.has-checkbox) {\n vertical-align: middle;\n width: 16px;\n}\n\n// Text Alignment\n:host(.pds-table-cell--align-start) {\n text-align: start;\n}\n\n:host(.pds-table-cell--align-center) {\n text-align: center;\n}\n\n:host(.pds-table-cell--align-end) {\n text-align: end;\n}\n\n:host(.pds-table-cell--align-justify) {\n text-align: justify;\n}\n","import { Component, Element, Host, Prop, State, Watch, h } from '@stencil/core';\nimport { isScrolledFromInlineStart } from '../../../utils/scroll';\nimport { setupTruncationTooltip } from '../../../utils/truncation-tooltip';\n\n@Component({\n tag: 'pds-table-cell',\n styleUrls: ['pds-table-cell.scss'],\n shadow: true,\n})\nexport class PdsTableCell {\n @Element() hostElement: HTMLPdsTableCellElement;\n private tableRef: HTMLPdsTableElement;\n private scrollContainer: HTMLElement | null = null;\n private setupTimer: number | undefined;\n private setupRetries: number = 0;\n private truncationCleanup: (() => void) | null = null;\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n\n componentDidLoad() {\n if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {\n // For responsive tables with fixed columns, set up scroll detection\n // This enables the first column to show a shadow when the table is scrolled horizontally\n this.setupScrollListener();\n }\n\n if (this.truncate) {\n this.initTruncationTooltip();\n }\n }\n\n disconnectedCallback() {\n this.cleanupScrollListener();\n this.destroyTruncationTooltip();\n }\n\n private setupScrollListener() {\n if (!this.tableRef) return;\n\n // Query shadowRoot once and cache the container\n const container = this.tableRef.shadowRoot?.querySelector('.pds-table-responsive-container') as HTMLElement;\n\n if (container) {\n // Container available immediately\n this.scrollContainer = container;\n this.scrollContainer.addEventListener('scroll', this.handleScroll, { passive: true });\n this.handleScroll(); // Initial check\n this.setupRetries = 0; // Reset counter on success\n } else {\n // Container not ready, set up timer for retry with bounds\n this.setupTimer = window.setTimeout(() => {\n if (this.scrollContainer) return; // Already found\n this.setupRetries = (this.setupRetries || 0) + 1;\n if (this.setupRetries <= 50) {\n this.setupScrollListener();\n } else {\n console.warn('Failed to find responsive container after 50 attempts');\n }\n }, 100);\n }\n }\n\n private cleanupScrollListener() {\n if (this.scrollContainer) {\n this.scrollContainer.removeEventListener('scroll', this.handleScroll);\n this.scrollContainer = null;\n }\n\n if (this.setupTimer !== undefined) {\n window.clearTimeout(this.setupTimer);\n this.setupTimer = undefined;\n }\n\n this.setupRetries = 0; // Reset retry counter\n }\n\n /**\n * Sets the text alignment within the cell.\n */\n @Prop() cellAlign?: 'start' | 'center' | 'end' | 'justify';\n\n /**\n * Truncates content to a max width and adds an ellipsis.\n * When text overflows, a tooltip showing the full text will appear on hover/focus.\n * Note: When truncate is enabled, the element automatically receives tabindex=\"0\" for keyboard accessibility.\n */\n @Prop() truncate: boolean;\n\n @Watch('truncate')\n handleTruncateChange(newValue: boolean) {\n if (newValue) {\n this.initTruncationTooltip();\n } else {\n this.destroyTruncationTooltip();\n }\n }\n\n /**\n * Determines if the table is currently scrolling.\n * @defaultValue false\n */\n @State() private tableScrolling: boolean = false;\n\n private initTruncationTooltip() {\n this.destroyTruncationTooltip();\n\n this.truncationCleanup = setupTruncationTooltip({\n hostEl: this.hostElement,\n contentEl: this.hostElement,\n getTooltipText: () => this.hostElement.textContent || '',\n });\n }\n\n private destroyTruncationTooltip() {\n if (this.truncationCleanup) {\n this.truncationCleanup();\n this.truncationCleanup = null;\n }\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.tableRef && this.tableRef.compact) {\n classNames.push('is-compact');\n }\n\n if (this.cellAlign) {\n classNames.push(`pds-table-cell--align-${this.cellAlign}`);\n }\n\n if (this.truncate) {\n classNames.push('is-truncated');\n }\n\n if (this.tableRef && this.tableRef.fixedColumn && this.tableScrolling) {\n classNames.push('has-scrolled');\n }\n\n return classNames.join(' ');\n }\n\n /**\n * Handles scroll events to update fixed column shadow state.\n * Updates the tableScrolling state to control CSS classes for fixed column shadows.\n * @private\n */\n private handleScroll = () => {\n if (!this.scrollContainer) {\n return;\n }\n\n try {\n this.tableScrolling = isScrolledFromInlineStart(this.scrollContainer);\n } catch (error) {\n console.warn('Scroll handler error:', error);\n }\n };\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"gridcell\"\n part=\"cell\"\n tabIndex={this.truncate ? 0 : undefined}\n style={\n this.tableRef &&\n this.tableRef.fixedColumn &&\n this.tableRef.selectable\n ? { '--fixed-cell-position': '40px' }\n : {}\n }\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-table-head-cell.entry.js","sources":["src/components/pds-table/pds-table-head-cell/pds-table-head-cell.scss?tag=pds-table-head-cell&encapsulation=shadow","src/components/pds-table/pds-table-head-cell/pds-table-head-cell.tsx"],"sourcesContent":[":host {\n --border-head-cell-default: var(--pine-border-width-thin) solid var(--pine-color-border-subtle);\n\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n --box-shadow-default: 3px 3px 6px -2px rgba(0, 0, 0, 0.1);\n\n border-block-end: var(--border-head-cell-default);\n color: var(--pine-color-text);\n display: table-cell;\n font-family: var(--pine-font-family-body);\n font-size: var(--pine-font-size);\n font-weight: var(--pine-font-weight-regular);\n letter-spacing: var(--pine-letter-spacing);\n line-height: var(--pine-line-height-body);\n padding: var(--pine-dimension-sm);\n position: relative;\n text-align: start;\n vertical-align: inherit;\n}\n\n:host(.is-compact) {\n padding-block: var(--pine-dimension-2xs)\n}\n\n:host(.is-fixed) {\n background: var(--pine-color-background-container);\n inset-inline-start: var(--pine-dimension-none);\n position: sticky;\n z-index: var(--pine-z-index-raised);\n}\n\n// When parent table-head has background, fixed cells should inherit it\n:host(.is-fixed.has-head-background) {\n background-color: var(--pine-color-background-subtle);\n}\n\n// When parent table-head has border prop, add top border (bottom already set in :host)\n:host(.has-head-border) {\n border-block-start: var(--border-head-cell-default);\n}\n\n// Flip shadow toward scrollable content when fixed column is on the inline-end edge.\n:host-context([dir='rtl']) {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n --box-shadow-default: -3px 3px 6px -2px rgba(0, 0, 0, 0.1);\n}\n\n// box shadow when table has scrolled and cell is fixed\n:host(.has-scrolled.is-fixed) {\n box-shadow: var(--box-shadow-default);\n}\n\n:host(.is-sortable) {\n cursor: pointer;\n\n pds-icon {\n margin-inline-start: var(--pine-dimension-2xs);\n padding-block-start: 2px;\n position: absolute;\n }\n}\n\n:host(.is-sortable:hover),\n:host(.is-active) {\n color: var(--pine-color-text-strong);\n}\n\n// Text Alignment\n:host(.pds-table-head-cell--align-start) {\n text-align: start;\n}\n\n:host(.pds-table-head-cell--align-center) {\n text-align: center;\n}\n\n:host(.pds-table-head-cell--align-end) {\n text-align: end;\n}\n\n:host(.pds-table-head-cell--align-justify) {\n text-align: justify;\n}\n","import { Component, Element, Host, Prop, h, Event, EventEmitter, State, Method } from '@stencil/core';\n\nimport { downSmall, upSmall } from '@pine-ds/icons/icons';\nimport { isScrolledFromInlineStart } from '../../../utils/scroll';\n\n@Component({\n tag: 'pds-table-head-cell',\n styleUrls: ['pds-table-head-cell.scss'],\n shadow: true,\n})\nexport class PdsTableHeadCell {\n @Element() hostElement: HTMLPdsTableHeadCellElement;\n private tableRef: HTMLPdsTableElement;\n private scrollContainer: HTMLElement | null = null;\n private setupTimer: number | undefined;\n private setupRetries: number = 0;\n private headObserver?: MutationObserver;\n\n /**\n * Sets the text alignment within the head cell.\n */\n @Prop() cellAlign?: 'start' | 'center' | 'end' | 'justify';\n\n /**\n * Determines whether the table column is sortable when set to `true`.\n */\n @Prop() sortable: boolean;\n\n /**\n * Event emitted to signal that a table column header has been sorted, providing information about the sorted column's name and sorting direction.\n */\n @Event() pdsTableSort: EventEmitter<{ column: string; direction: string }>;\n\n /**\n * The direction of sorting.\n */\n @State() private sortingDirection: 'asc' | 'desc' = 'asc';\n\n /**\n * Determines if the table is currently scrolling.\n * @defaultValue false\n */\n @State() private tableScrolling: boolean = false;\n\n /**\n * Determines if the table row is currently selected.\n * @defaultValue false\n */\n @State() isSelected: boolean = false;\n\n /**\n * Determines if the parent table-head has the border attribute.\n * @defaultValue false\n */\n @State() private hasHeadBorder: boolean = false;\n\n /**\n * Determines if the parent table-head has the background attribute.\n * @defaultValue false\n */\n @State() private hasHeadBackground: boolean = false;\n\n /**\n * Determines if this column is the currently active sorted column.\n * @defaultValue false\n */\n @State() private isActive: boolean = false;\n\n /**\n * Programmatically sets this column as the active sort column with the specified direction.\n * Used by pds-table to apply a default sort on initial load.\n * @param direction - The sort direction to apply ('asc' or 'desc')\n */\n @Method()\n async setActiveSort(direction: 'asc' | 'desc') {\n if (!this.sortable) return;\n\n this.sortingDirection = direction;\n this.isActive = true;\n this.hostElement.classList.add('is-active');\n }\n\n /**\n * Clears the active sort state from this column.\n * Used internally when another column becomes active.\n */\n @Method()\n async clearActiveSort() {\n this.isActive = false;\n this.hostElement.classList.remove('is-active');\n }\n\n componentWillLoad() {\n // Set initial references and state before first render\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n\n const tableHead = this.hostElement.closest('pds-table-head') as HTMLElement;\n if (tableHead) {\n this.hasHeadBorder = tableHead.hasAttribute('border');\n this.hasHeadBackground = tableHead.hasAttribute('background');\n }\n }\n\n componentDidLoad() {\n if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {\n // For responsive tables with fixed columns, set up scroll detection\n // This enables the first column header to show a shadow when the table is scrolled horizontally\n this.setupScrollListener();\n }\n\n // Watch for changes to the parent table-head's border and background attributes\n const tableHead = this.hostElement.closest('pds-table-head') as HTMLElement;\n if (tableHead && typeof MutationObserver !== 'undefined') {\n // Defensive guard: disconnect existing observer before creating a new one\n if (this.headObserver) {\n this.headObserver.disconnect();\n }\n\n this.headObserver = new MutationObserver(() => {\n // Update state when border or background attributes change\n this.hasHeadBorder = tableHead.hasAttribute('border');\n this.hasHeadBackground = tableHead.hasAttribute('background');\n });\n\n this.headObserver.observe(tableHead, {\n attributes: true,\n attributeFilter: ['border', 'background']\n });\n }\n }\n\n disconnectedCallback() {\n this.cleanupScrollListener();\n\n if (this.headObserver) {\n this.headObserver.disconnect();\n }\n }\n\n\n private setupScrollListener() {\n if (!this.tableRef) return;\n\n // Query shadowRoot once and cache the container\n const container = this.tableRef.shadowRoot?.querySelector('.pds-table-responsive-container') as HTMLElement;\n\n if (container) {\n // Container available immediately\n this.scrollContainer = container;\n this.scrollContainer.addEventListener('scroll', this.handleScroll, { passive: true });\n this.handleScroll(); // Initial check\n this.setupRetries = 0; // Reset counter on success\n } else {\n // Container not ready, set up timer for retry with bounds\n this.setupTimer = window.setTimeout(() => {\n if (this.scrollContainer) return; // Already found\n this.setupRetries = (this.setupRetries || 0) + 1;\n if (this.setupRetries <= 50) {\n this.setupScrollListener();\n } else {\n console.warn('Failed to find responsive container after 50 attempts');\n }\n }, 100);\n }\n }\n\n private cleanupScrollListener() {\n if (this.scrollContainer) {\n this.scrollContainer.removeEventListener('scroll', this.handleScroll);\n this.scrollContainer = null;\n }\n\n if (this.setupTimer !== undefined) {\n window.clearTimeout(this.setupTimer);\n this.setupTimer = undefined;\n }\n\n this.setupRetries = 0; // Reset retry counter\n }\n\n /**\n * Handles scroll events to update fixed column shadow state.\n * Updates the tableScrolling state to control CSS classes for fixed column shadows.\n * @private\n */\n private handleScroll = () => {\n if (!this.scrollContainer) {\n return;\n }\n\n try {\n this.tableScrolling = isScrolledFromInlineStart(this.scrollContainer);\n } catch (error) {\n console.warn('Scroll handler error:', error);\n }\n };\n\n private toggleSort = () => {\n if (this.sortable) {\n // Guard: return early if tableRef is not available\n if (!this.tableRef) {\n return;\n }\n\n const column = this.hostElement.innerText.trim();\n \n // Always toggle the direction (preserves original behavior)\n this.sortingDirection = this.sortingDirection === 'asc' ? 'desc' : 'asc';\n \n // Reset all OTHER head cells to inactive state (skip the current one)\n this.tableRef.querySelectorAll('pds-table-head-cell').forEach(async (headCell) => {\n // Skip clearing the current cell\n if (headCell !== this.hostElement) {\n const headCellComponent = headCell as HTMLPdsTableHeadCellElement;\n await headCellComponent.clearActiveSort();\n }\n });\n \n // Mark this column as active\n this.isActive = true;\n this.hostElement.classList.add('is-active');\n\n // Emit the sort event with the current direction\n this.pdsTableSort.emit({ column, direction: this.sortingDirection });\n }\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.tableRef && this.tableRef.compact) {\n classNames.push('is-compact');\n }\n\n if (this.cellAlign) {\n classNames.push(`pds-table-head-cell--align-${this.cellAlign}`);\n }\n\n if (this.sortable) {\n classNames.push('is-sortable');\n }\n\n if (this.sortable && this.sortingDirection !== null) {\n classNames.push('sort-' + this.sortingDirection);\n }\n\n if (this.tableRef && this.tableRef.fixedColumn && this.tableScrolling) {\n classNames.push('has-scrolled');\n }\n\n if (this.hasHeadBackground) {\n classNames.push('has-head-background');\n }\n\n if (this.hasHeadBorder) {\n classNames.push('has-head-border');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"columnheader\"\n onClick={this.toggleSort}\n part=\"head-cell\"\n style={\n this.tableRef &&\n this.tableRef.fixedColumn &&\n this.tableRef.selectable\n ? { '--fixed-cell-position': '40px' }\n : {}\n }\n >\n <slot></slot>\n {this.sortable && this.isActive && (\n <pds-icon icon={this.sortingDirection === 'asc' ? upSmall : downSmall} part=\"sort-icon\" />\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-table-head.entry.js","sources":["src/components/pds-table/pds-table-head/pds-table-head.scss?tag=pds-table-head&encapsulation=shadow","src/components/pds-table/pds-table-head/pds-table-head.tsx"],"sourcesContent":[":host {\n --border-head-default: var(--pine-border-width-thin) solid var(--pine-color-background-subtle);\n\n border-color: inherit;\n box-sizing: border-box;\n display: table-header-group;\n vertical-align: middle;\n\n // used for pds-checkbox-cell\n // because it is in the ShadowDom\n &::part(checkbox-cell) {\n background-color: var(--pine-color-background-container);\n inset-inline-start: var(--pine-dimension-none);\n position: sticky;\n z-index: var(--pine-z-index-raised);\n }\n}\n\n:host pds-table-checkbox-cell {\n border-block-end: var(--border-head-default);\n}\n\n:host([border]) {\n border-block-end: var(--pine-border-width-thin) solid var(--pine-color-border-subtle);\n border-block-start: var(--pine-border-width-thin) solid var(--pine-color-border-subtle);\n}\n\n:host([border]) pds-table-head-cell {\n border-block-end: var(--pine-border-width-thin) solid var(--pine-color-border-subtle);\n border-block-start: var(--pine-border-width-thin) solid var(--pine-color-border-subtle);\n}\n\n:host([background]) {\n background-color: var(--pine-color-background-subtle);\n}\n\n:host([background]) pds-table-head-cell {\n background-color: var(--pine-color-background-subtle);\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop } from '@stencil/core';\nimport { closest } from '@utils/closest';\n\n@Component({\n tag: 'pds-table-head',\n styleUrls: ['pds-table-head.scss'],\n shadow: true,\n})\nexport class PdsTableHead {\n @Element() hostElement: HTMLPdsTableHeadElement;\n private tableRef: HTMLPdsTableElement\n\n /**\n * Determines if the select all checkbox is in an indeterminate state.\n */\n @Prop({ mutable: true }) indeterminate?: boolean;\n\n /**\n * Determines if the table row is currently selected.\n * @defaultValue false\n */\n @Prop({mutable: true}) isSelected: boolean;\n\n /**\n * Adds top and bottom borders to the table head.\n * @defaultValue false\n */\n @Prop({ reflect: true }) border = false;\n\n /**\n * Adds a subtle background color to the table head.\n * @defaultValue false\n */\n @Prop({ reflect: true }) background = false;\n\n /**\n * Event that is emitted when the select all checkbox is clicked, carrying the selected value.\n */\n @Event() pdsTableSelectAll: EventEmitter<{ isSelected: boolean }>;\n\n private generateUniqueId = () => {\n const randomString = Math.random().toString(36).substring(2, 8);\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const uniqueId = `${randomString}-${timestamp}`;\n\n return uniqueId;\n }\n\n private handleInput = (ev: Event) => {\n this.isSelected = !(ev.target as HTMLInputElement).checked\n this.handleSelect(this.isSelected)\n };\n\n private handleSelect = (isSelected: boolean) => {\n this.indeterminate = false\n\n if ( closest('pds-table-head', this.hostElement) ) {\n this.pdsTableSelectAll.emit({ isSelected });\n }\n }\n\n componentWillLoad() {\n if (this.isSelected) {\n this.handleSelect(this.isSelected)\n }\n }\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n\n if (this.tableRef && this.tableRef.fixedColumn) {\n const tableCell = this.hostElement.querySelector('pds-table-head-cell:first-child');\n tableCell?.classList.add(\"is-fixed\");\n }\n }\n\n render() {\n return (\n <Host role=\"row\" part=\"head\">\n {this.tableRef && this.tableRef.selectable && (\n <pds-table-head-cell part={this.tableRef.selectable ? 'checkbox-cell' : ''}>\n {!this.tableRef.disableSelectAll && (\n <pds-checkbox\n componentId={this.generateUniqueId()}\n indeterminate={this.indeterminate}\n onInput={this.handleInput}\n label={\"Select All Rows\"}\n hideLabel={true}\n checked={this.isSelected}\n part=\"select-all-checkbox\"\n />\n )}\n </pds-table-head-cell>\n )}\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,eAAe,GAAG,87CAA87C;;MCQz8C,YAAY,GAAA,MAAA;AALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAoBE;;;AAGG;AACsB,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK;AAEvC;;;AAGG;AACsB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK;AAOnC,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAK;AAC9B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,YAAA,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AAChE,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,YAAY,CAAI,CAAA,EAAA,SAAS,EAAE;AAE/C,YAAA,OAAO,QAAQ;AACjB,SAAC;AAEO,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,EAAS,KAAI;YAClC,IAAI,CAAC,UAAU,GAAG,CAAE,EAAE,CAAC,MAA2B,CAAC,OAAO;AAC1D,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,SAAC;AAEO,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,UAAmB,KAAI;AAC7C,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAE1B,IAAK,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,EAAG;gBACjD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;;AAE/C,SAAC;AAuCF;IArCC,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;;;IAItC,mBAAmB,GAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAwB;QAE5E,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,iCAAiC,CAAC;YACnF,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,MAAA,GAAA,MAAA,GAAT,SAAS,CAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;;;IAIxC,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAA,EACzB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,KACxC,CAAqB,CAAA,qBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,eAAe,GAAG,EAAE,EAAA,EACvE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAC9B,CACE,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,EACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,UAAU,EACxB,IAAI,EAAC,qBAAqB,EAC1B,CAAA,CACH,CACmB,CACvB,EACD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-table-row.entry.js","sources":["src/components/pds-table/pds-table-row/pds-table-row.scss?tag=pds-table-row&encapsulation=shadow","src/components/pds-table/pds-table-row/pds-table-row.tsx"],"sourcesContent":[":host {\n --color-background-interactive: var(--pine-color-background-subtle);\n\n border-color: inherit;\n display: table-row;\n vertical-align: inherit;\n\n // used for pds-checkbox-cell\n // because it is in the ShadowDom\n &::part(checkbox-cell) {\n background-color: var(--pine-color-background-container);\n inset-inline-start: var(--pine-dimension-none);\n position: sticky;\n z-index: var(--pine-z-index-raised);\n }\n}\n\n:host(:hover),\n:host(:hover)::part(checkbox-cell),\n:host(:hover) ::slotted(pds-table-cell),\n:host(.is-selected),\n:host(.is-selected)::part(checkbox-cell),\n:host(.is-selected) ::slotted(pds-table-cell) {\n background: var(--color-background-interactive);\n}\n\n:host(.has-divider) ::slotted(pds-table-cell),\n:host(.has-divider) pds-table-cell {\n border-block-end: var(--pine-border-width-thin) solid var(--pine-color-border-subtle);\n}\n\n:host(.has-divider.is-last-row) ::slotted(pds-table-cell),\n:host(.has-divider.is-last-row) pds-table-cell {\n border-block-end: 0;\n}\n","import { Component, Element, Host, h, Event, EventEmitter, Prop, State } from '@stencil/core';\n\nimport { CheckboxChangeEventDetail } from '../../pds-checkbox/checkbox-interface';\nimport { closest } from '../../../utils/closest';\n\n@Component({\n tag: 'pds-table-row',\n styleUrls: ['pds-table-row.scss'],\n shadow: true,\n})\nexport class PdsTableRow {\n @Element() hostElement: HTMLPdsTableRowElement;\n private tableRef: HTMLPdsTableElement;\n private observer: MutationObserver | null = null;\n private bodyObserver: MutationObserver | null = null;\n\n /**\n * Determines if the row selected is in an indeterminate state.\n */\n @Prop({ mutable: true }) indeterminate?: boolean;\n\n /**\n * Determines if the table row is currently selected.\n */\n @Prop({ mutable: true }) isSelected?: boolean;\n\n /**\n * Determines if the row should have a divider border.\n * @defaultValue false\n */\n @State() private hasDivider: boolean = false;\n\n /**\n * Determines if this is the last row in the table body.\n * @defaultValue false\n */\n @State() private isLastRow: boolean = false;\n\n /**\n * Event that is emitted when the checkbox is clicked, carrying the selected value.\n */\n @Event() pdsTableRowSelected: EventEmitter<{ rowIndex: number; isSelected: boolean; }>;\n\n private handleCheckboxChange = (event: CustomEvent<CheckboxChangeEventDetail>) => {\n this.isSelected = event.detail.checked;\n this.handleSelect(this.isSelected);\n }\n\n private handleSelect = (isSelected: boolean) => {\n this.indeterminate = false;\n\n if (!closest('pds-table-head', this.hostElement)) {\n const rowIndex = Array.from(this.hostElement.parentNode.children).indexOf(this.hostElement)\n this.pdsTableRowSelected.emit({\n rowIndex,\n isSelected,\n })\n }\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.isSelected) {\n classNames.push(\"is-selected\");\n }\n\n if (this.hasDivider) {\n classNames.push(\"has-divider\");\n }\n\n if (this.isLastRow) {\n classNames.push(\"is-last-row\");\n }\n\n return classNames.join(' ');\n }\n\n componentWillRender() {\n // Always refresh tableRef to get latest prop values\n // This ensures we pick up changes to parent table props\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n\n if (this.tableRef && this.tableRef.fixedColumn) {\n const tableCell = this.hostElement.querySelector('pds-table-cell');\n tableCell?.classList.add(\"is-fixed\");\n }\n }\n\n componentWillLoad() {\n // Handle initial selection state\n if (this.isSelected) {\n this.handleSelect(this.isSelected);\n }\n // Note: tableRef, observers, and divider state are set up in connectedCallback\n // which runs before componentWillLoad and also handles row re-attachment after sorting\n }\n\n connectedCallback() {\n // When a row is re-attached to the DOM (e.g., after sorting),\n // we need to re-setup the observers since disconnectedCallback cleared them\n // Note: componentDidLoad only fires once, but connectedCallback fires every time\n // the element is attached to the DOM (including after being moved)\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n this.setupObservers();\n this.updateDividerState();\n }\n\n disconnectedCallback() {\n this.cleanupObservers();\n }\n\n private cleanupObservers() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n if (this.bodyObserver) {\n this.bodyObserver.disconnect();\n this.bodyObserver = null;\n }\n }\n\n private setupObservers() {\n // Clean up any existing observers first\n this.cleanupObservers();\n\n // Watch for changes to the parent table's row-dividers attribute\n if (this.tableRef && typeof MutationObserver !== 'undefined') {\n this.observer = new MutationObserver(() => {\n this.updateDividerState();\n });\n\n this.observer.observe(this.tableRef, {\n attributes: true,\n attributeFilter: ['row-dividers']\n });\n }\n\n // Watch for child list changes in table body (e.g., when rows are reordered during sorting)\n const tableBody = this.hostElement.closest('pds-table-body');\n if (tableBody && typeof MutationObserver !== 'undefined') {\n this.bodyObserver = new MutationObserver(() => {\n this.updateLastRowState();\n });\n\n this.bodyObserver.observe(tableBody, {\n childList: true\n });\n }\n }\n\n private shouldHaveDivider(): boolean {\n if (!this.tableRef) {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n // Reads the parent pds-table component's rowDividers property value directly\n return !!(this.tableRef && this.tableRef.rowDividers);\n }\n\n private updateDividerState() {\n this.hasDivider = this.shouldHaveDivider();\n this.updateLastRowState();\n }\n\n private updateLastRowState() {\n if (!this.hasDivider) {\n this.isLastRow = false;\n return;\n }\n\n const tableBody = this.hostElement.closest('pds-table-body');\n if (tableBody) {\n const rows = Array.from(tableBody.querySelectorAll('pds-table-row'));\n this.isLastRow = rows[rows.length - 1] === this.hostElement;\n } else {\n this.isLastRow = false;\n }\n }\n\n private generateUniqueId = () => {\n const randomString = Math.random().toString(36).substring(2, 8);\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const uniqueId = `${randomString}-${timestamp}`;\n\n return uniqueId;\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"row\"\n part=\"row\"\n >\n {this.tableRef && this.tableRef.selectable && (\n <pds-table-cell part={this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell'} class={this.tableRef.selectable ? 'has-checkbox' : ''} >\n <pds-checkbox\n componentId={this.generateUniqueId()}\n onPdsCheckboxChange={this.handleCheckboxChange}\n indeterminate={this.indeterminate}\n label={\"Select Row\"}\n hideLabel={true}\n checked={this.isSelected}\n part=\"row-checkbox\"\n />\n </pds-table-cell>\n )}\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-table.entry.js","sources":["src/components/pds-table/pds-table.scss?tag=pds-table&encapsulation=shadow","src/components/pds-table/pds-table.tsx"],"sourcesContent":[":host {\n --color-background-default: var(--pine-color-background-container);\n\n background: var(--color-background-default);\n border-collapse: separate;\n border-radius: inherit;\n box-sizing: border-box;\n display: table;\n isolation: isolate;\n width: 100%;\n}\n\n:host(:focus-visible) {\n outline: var(--pine-outline-focus);\n}\n\n/*\n * Responsive Table Architecture\n *\n * When responsive=true, the table uses a nested structure to provide horizontal scrolling\n * while maintaining proper width behavior and scroll shadows:\n *\n * Host (.pds-table-responsive-host)\n * ├── Shadow Left (positioned fixed to left edge)\n * ├── Shadow Right (positioned fixed to right edge)\n * └── Container (.pds-table-responsive-container)\n * └── Wrapper (.pds-table-responsive-wrapper)\n * └── Table (.pds-table)\n *\n * - Host: Constrains everything to parent width, clips shadows to border-radius\n * - Shadows: Stay fixed during scroll, provide visual scroll indicators\n * - Container: Handles horizontal scrolling (overflow-x: auto)\n * - Table: Expands to full width or scrolls based on content\n */\n:host(.pds-table-responsive-host) {\n border-radius: inherit;\n box-sizing: border-box !important;\n display: block !important;\n max-width: 100% !important;\n overflow: hidden !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-container {\n border-radius: inherit;\n box-sizing: border-box !important;\n overflow-x: auto !important;\n overflow-y: visible !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-wrapper {\n border-radius: inherit;\n box-sizing: border-box !important;\n display: block !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-wrapper .pds-table {\n display: table !important;\n min-width: max-content !important;\n table-layout: auto !important;\n white-space: nowrap !important;\n width: 100% !important;\n}\n\n/* Shadows positioned relative to host (non-scrolling), covering container edges */\n.scroll-shadow-left,\n.scroll-shadow-right {\n height: 100%;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n transition: opacity 0.1s ease;\n width: 4px;\n z-index: var(--pine-z-index);\n}\n\n.scroll-shadow-left {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n background: linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);\n border-end-start-radius: inherit;\n border-start-start-radius: inherit;\n inset-inline-start: 0;\n}\n\n:host-context([dir='rtl']) .scroll-shadow-left {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n background: linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);\n}\n\n.scroll-shadow-right {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n background: linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);\n border-end-end-radius: inherit;\n border-start-end-radius: inherit;\n inset-inline-end: 0;\n}\n\n:host-context([dir='rtl']) .scroll-shadow-right {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n background: linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, State, Listen } from '@stencil/core';\nimport { getScrollOffsetFromStart } from '../../utils/scroll';\n\n@Component({\n tag: 'pds-table',\n styleUrls: ['pds-table.scss'],\n shadow: true,\n})\nexport class PdsTable {\n @Element() el: HTMLPdsTableElement;\n private scrollContainer: HTMLElement | null = null;\n private _responsiveHandleScroll: (() => void) | null = null;\n private _responsiveHandleResize: (() => void) | null = null;\n private _responsiveResizeObserver: ResizeObserver | null = null;\n private _teardownResponsive: (() => void) | null = null;\n\n /**\n * Determines if the table displays with reduced table cell padding.\n */\n @Prop() compact: boolean;\n\n /**\n * A unique identifier used for the table `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Enables the table to be responsive by horizontally scrolling on smaller screens.\n */\n @Prop() responsive: boolean;\n\n /**\n * Determines if the should display a fixed first column.\n */\n @Prop() fixedColumn: boolean;\n\n /**\n * Determines if the table displays checkboxes for selectable rows.\n */\n @Prop() selectable: boolean;\n\n /**\n * Hides the select-all checkbox in the table header while keeping individual row checkboxes functional.\n * Only applies when `selectable` is true.\n * @defaultValue false\n */\n @Prop() disableSelectAll: boolean = false;\n\n /**\n * Adds divider borders between table rows. The last row will not have a bottom border.\n * @defaultValue false\n */\n @Prop({ reflect: true }) rowDividers: boolean = false;\n\n /**\n * The name of the column to sort by on initial load.\n * Must match the text content of a sortable column header.\n */\n @Prop() defaultSortColumn?: string;\n\n /**\n * The direction to sort the default column on initial load.\n * Only applies if `defaultSortColumn` is set.\n * @defaultValue 'asc'\n */\n @Prop() defaultSortDirection?: 'asc' | 'desc' = 'asc';\n\n /**\n * The name of the column being sorted.\n * @defaultValue null\n */\n @State() sortingColumn: string | null = null;\n\n /**\n * The direction of sorting.\n * @defaultValue 'asc'\n */\n @State() sortingDirection: 'asc' | 'desc' = 'asc';\n\n\n /**\n * Event that is emitted when the select all checkbox is clicked, carrying the selected value.\n */\n @Event() pdsTableSelectAll: EventEmitter<{ isSelected: boolean }>;\n\n componentDidLoad() {\n if (this.responsive) {\n this.setupResponsiveScrolling();\n }\n\n // Apply default sort if specified\n // Use requestAnimationFrame to defer until child components are fully initialized\n if (this.defaultSortColumn) {\n requestAnimationFrame(() => {\n void this.applyDefaultSort().catch((err) => {\n console.warn('Failed to apply default sort.', err);\n });\n });\n }\n }\n\n /**\n * Applies the default sort configuration on initial load.\n * Finds the matching column header and activates its sort state.\n * @private\n */\n private async applyDefaultSort() {\n // Normalize direction to handle invalid HTML attribute values\n const direction: 'asc' | 'desc' = this.defaultSortDirection === 'desc' ? 'desc' : 'asc';\n\n // Find the matching sortable header cell\n const columnHeaderCells = Array.from(\n this.el.querySelectorAll('pds-table-head-cell[sortable]')\n ) as HTMLPdsTableHeadCellElement[];\n\n const matchingCell = columnHeaderCells.find(\n (cell) => (cell.textContent ?? '').trim() === this.defaultSortColumn\n );\n\n if (matchingCell) {\n const columnName = (matchingCell.textContent ?? '').trim();\n // Sort the table data\n this.sortTable(columnName, direction);\n this.sortingColumn = columnName;\n this.sortingDirection = direction;\n\n // Activate the visual state on the header cell\n await matchingCell.setActiveSort(direction);\n } else {\n console.warn(`Default sort column \"${this.defaultSortColumn}\" not found.`);\n }\n }\n\n disconnectedCallback() {\n if (this._teardownResponsive) {\n this._teardownResponsive();\n this._teardownResponsive = null;\n }\n }\n\n /**\n * Sets up responsive scrolling behavior for the table.\n *\n * This method creates a horizontal scrolling system where:\n * - The table content can scroll horizontally when it exceeds the container width\n * - Scroll shadows appear at the inline-start/end edges to indicate scrollable content\n * - Fixed columns remain sticky during horizontal scrolling\n * - Shadows respect border-radius and don't appear when there's nothing to scroll\n *\n * Architecture:\n * - Host element: Contains everything, respects parent constraints\n * - Container element: Handles horizontal scrolling (overflow-x: auto)\n * - Shadow elements: Positioned fixed relative to host, show scroll indicators\n *\n * @private\n */\n private setupResponsiveScrolling() {\n const container = this.el.shadowRoot?.querySelector('.pds-table-responsive-container') as HTMLElement;\n const leftShadow = this.el.shadowRoot?.querySelector('.scroll-shadow-left') as HTMLElement;\n const rightShadow = this.el.shadowRoot?.querySelector('.scroll-shadow-right') as HTMLElement;\n\n if (!container || !leftShadow || !rightShadow) return;\n\n // Store container reference for cleanup\n this.scrollContainer = container;\n\n /**\n * Updates the visibility of scroll shadows based on current scroll position.\n * Inline-start shadow: shows when scrolled away from start (hidden if fixedColumn is enabled)\n * Inline-end shadow: shows when there is content to scroll and not at the end\n */\n this._responsiveHandleScroll = () => {\n if (!this.scrollContainer) return;\n\n const { scrollWidth, clientWidth } = this.scrollContainer;\n const maxScroll = scrollWidth - clientWidth;\n const scrollOffset = getScrollOffsetFromStart(this.scrollContainer);\n\n // Inline-start shadow when scrolled away from start, but not if there's a fixed column\n leftShadow.style.opacity = (scrollOffset > 0 && !this.fixedColumn) ? '1' : '0';\n\n // Inline-end shadow when there is content to scroll and not at the end\n rightShadow.style.opacity = (maxScroll > 0 && scrollOffset < maxScroll - 1) ? '1' : '0';\n };\n\n // Add scroll event listener to container element\n this.scrollContainer.addEventListener('scroll', this._responsiveHandleScroll, { passive: true });\n\n // Add resize observer to update shadows when container size changes\n if (typeof window !== 'undefined' && window.ResizeObserver) {\n try {\n this._responsiveResizeObserver = new ResizeObserver(() => {\n this._responsiveHandleScroll?.();\n });\n this._responsiveResizeObserver.observe(this.scrollContainer);\n } catch (error) {\n // ResizeObserver not available in some environments (e.g., tests)\n // Fall back to window resize listener only\n }\n }\n\n // Listen for window resize as fallback\n if (typeof window !== 'undefined') {\n this._responsiveHandleResize = () => {\n this._responsiveHandleScroll?.();\n };\n window.addEventListener('resize', this._responsiveHandleResize);\n }\n\n // Create teardown function for cleanup\n this._teardownResponsive = () => {\n if (this.scrollContainer && this._responsiveHandleScroll) {\n this.scrollContainer.removeEventListener('scroll', this._responsiveHandleScroll);\n this.scrollContainer = null;\n }\n\n if (this._responsiveResizeObserver) {\n this._responsiveResizeObserver.disconnect();\n this._responsiveResizeObserver = null;\n }\n\n if (typeof window !== 'undefined' && this._responsiveHandleResize) {\n window.removeEventListener('resize', this._responsiveHandleResize);\n this._responsiveHandleResize = null;\n }\n\n this._responsiveHandleScroll = null;\n };\n\n // Initial check after setup\n this._responsiveHandleScroll();\n }\n\n\n private classNames() {\n const classNames = ['pds-table'];\n\n if (this.compact) {\n classNames.push('is-compact');\n }\n\n if (this.responsive) {\n classNames.push('is-responsive');\n }\n\n return classNames.join(' ');\n }\n\n private sortTable(column: string, direction: 'asc' | 'desc') {\n const tableBody = this.el.querySelector('pds-table-body');\n\n // Return early if no table body exists\n if (!tableBody) return;\n\n // Get the rows in the table body\n const tableRows = Array.from(tableBody.querySelectorAll('pds-table-row'));\n\n // Find the column index based on the column name\n const columnHeaderCells: HTMLElement[] = Array.from(\n this.el.querySelectorAll('pds-table-head-cell[sortable]')\n );\n\n const columnHeaderCell = columnHeaderCells.find(\n (cell) => cell.innerText.trim() === column\n );\n\n if (!columnHeaderCell) {\n console.warn(`Column \"${column}\" not found.`);\n return;\n }\n\n const columnIndex = columnHeaderCells.indexOf(columnHeaderCell);\n\n // Sort the rows based on the content of the specified column\n tableRows.sort((a, b) => {\n const valueA = a.querySelector(`pds-table-cell:nth-child(${columnIndex + 1})`).textContent.trim();\n const valueB = b.querySelector(`pds-table-cell:nth-child(${columnIndex + 1})`).textContent.trim();\n\n if (direction === 'asc') {\n return valueA.localeCompare(valueB, undefined, { sensitivity: 'base' });\n } else {\n return valueB.localeCompare(valueA, undefined, { sensitivity: 'base' });\n }\n });\n\n // Clear and append the sorted rows back to the table body\n tableBody.innerHTML = '';\n tableRows.forEach((row) => {\n tableBody.appendChild(row);\n });\n }\n\n @Listen('pdsTableSort')\n handleTableSort(event: CustomEvent<{ column: string; direction: 'asc' | 'desc' }>) {\n if (event.defaultPrevented) return;\n\n const { direction } = event.detail;\n this.sortTable(event.detail.column, direction);\n this.sortingColumn = event.detail.column;\n this.sortingDirection = direction;\n }\n\n @Listen('pdsTableSelectAll')\n handleTableSelectAll(event: CustomEvent<{ isSelected: boolean }>) {\n if (event.defaultPrevented) return;\n\n const pdsTableBody = this.el.querySelector('pds-table-body');\n const tableRows = Array.from(pdsTableBody.querySelectorAll('pds-table-row'));\n\n tableRows.forEach((row) => {\n row.isSelected = event.detail.isSelected;\n });\n }\n\n @Listen('pdsTableRowSelected')\n async handleTableSelect(event: CustomEvent<{ rowIndex: number; isSelected: boolean }>) {\n if (event.defaultPrevented) return;\n\n const allTableRows = this.el.querySelectorAll('pds-table-row');\n const allSelectedRows = Array.from(allTableRows).every((row) => row.isSelected);\n const noneSelectedRows = Array.from(allTableRows).every((row) => !row.isSelected);\n const pdsTableHead = this.el.querySelector('pds-table-head');\n if (!pdsTableHead) return;\n\n const headerCheckbox = pdsTableHead.shadowRoot.querySelector('pds-checkbox');\n if (headerCheckbox) {\n headerCheckbox.checked = allSelectedRows;\n headerCheckbox.indeterminate = !allSelectedRows && !noneSelectedRows;\n }\n }\n\n render() {\n if (this.responsive) {\n return (\n <Host\n class=\"pds-table is-responsive pds-table-responsive-host\"\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n part=\"table responsive-table\"\n >\n <div class=\"scroll-shadow-left\" part=\"scroll-shadow-left\"></div>\n <div class=\"scroll-shadow-right\" part=\"scroll-shadow-right\"></div>\n <div class=\"pds-table-responsive-container\" part=\"responsive-container\">\n <div class=\"pds-table-responsive-wrapper\" part=\"responsive-wrapper\">\n <div class={this.classNames()} part=\"table-inner\">\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n return (\n <Host\n class={this.classNames()}\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n part=\"table\"\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-tabpanel.entry.js","sources":["src/components/pds-tabs/pds-tabpanel/pds-tabpanel.scss?tag=pds-tabpanel","src/components/pds-tabs/pds-tabpanel/pds-tabpanel.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.pds-tabpanel {\n display: none;\n margin-top: var(--tabs-dimension-panel-margin-top);\n padding: var(--tabs-dimension-panel-padding);\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &.is-active {\n display: block;\n }\n}\n","import { Component, Element, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-tabpanel',\n styleUrl: 'pds-tabpanel.scss',\n shadow: false,\n})\nexport class PdsTabpanel {\n @Element() el: HTMLPdsTabpanelElement;\n\n /**\n * Sets the related tab name, this name must match a `pds-tab`'s tab name property\n */\n @Prop() name!: string;\n\n /**\n * Keeps track of the parentComponentId unique id, this property is passed by parent component\n */\n /** @internal */\n @Prop() parentComponentId: string;\n\n /**\n * Keeps track of if the expected tab variant, this property is passed by parent component\n */\n /** @internal */\n @Prop() variant: string;\n\n /**\n * Keeps track of the tabpanel selected state, this property is passed by parent component\n */\n /** @internal */\n @Prop({mutable: true}) selected = false; // eslint-disable-line @stencil-community/strict-mutable\n\n render() {\n return (\n <Host slot=\"tabpanels\">\n <div\n role=\"tabpanel\"\n id={this.parentComponentId + \"__\" + this.name + '-panel'}\n tabindex=\"0\"\n aria-labelledby={this.parentComponentId + \"__\" + this.name}\n class={this.selected ? \"pds-tabpanel is-active\" : \"pds-tabpanel\"}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,cAAc,GAAG,2RAA2R;;MCOrS,WAAW,GAAA,MAAA;AALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAyBE;;AAEG;;AAEoB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC;AAiBzC;IAfC,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAA,EACpB,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EACxD,QAAQ,EAAC,GAAG,EAAA,iBAAA,EACK,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAC1D,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,wBAAwB,GAAG,cAAc,EAAA,EAEhE,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ,CACD;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-tabs.entry.js","sources":["src/components/pds-tabs/pds-tabs.scss?tag=pds-tabs&encapsulation=shadow","src/components/pds-tabs/pds-tabs.tsx"],"sourcesContent":[":host {\n /**\n * @prop --tabs-dimension-panel-margin-top: Optional margin-top for panels\n */\n --tabs-dimension-panel-margin-top: var(--pine-dimension-none);\n /**\n * @prop --tabs-dimension-panel-padding: Optional padding for panels\n */\n --tabs-dimension-panel-padding: 0;\n\n display: block;\n}\n\n.pds-tabs__tablist {\n display: flex;\n flex-wrap: wrap;\n gap: var(--pine-dimension-md);\n}\n\n:host(.pds-tabs--availability) .pds-tabs__tablist {\n gap: var(--pine-dimension-xs);\n}\n\n:host(.pds-tabs--filter) .pds-tabs__tablist {\n gap: var(--pine-dimension-sm);\n}\n\n:host(.pds-tabs--pill) .pds-tabs__tablist {\n background-color: var(--pine-color-background-app);\n border: var(--pine-border-width-thin) solid var(--pine-color-border-subtle);\n border-radius: var(--pine-dimension-100);\n display: inline-flex;\n display: flex;\n gap: 0;\n height: var(--pine-dimension-450);\n}\n","import { Component, Element, Host, h, Prop, Listen } from '@stencil/core';\n\n /**\n * @slot tabs - Content is placed within the `div[role=\"tablist\"]` element as children\n * @slot tabpanels - Content is placed directly after the `div[role=\"tablist\"]` element as siblings\n * @part tab-list - Exposes the container element that holds all the tab buttons for styling.\n */\n@Component({\n tag: 'pds-tabs',\n styleUrls: ['pds-tabs.scss'],\n shadow: true,\n})\nexport class PdsTabs {\n private tabs;\n private tabPanels;\n\n @Element() el: HTMLPdsTabsElement;\n\n /**\n * Sets the aria-label attached to the tablist element\n */\n @Prop() tablistLabel!: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets tabs variant styles as outlined in Figma documentation\n */\n @Prop() variant!: 'primary' | 'availability' | 'filter' | 'pill';\n\n /**\n * Sets the starting active tab name and maintains the name as the component re-renders\n */\n @Prop({mutable: true}) activeTabName!: string;\n\n /**\n * Sets the starting active tab index number and maintains the index number as the component re-renders\n */\n /** @internal */\n @Prop({mutable: true}) activeTabIndex: number;\n\n @Listen('pdsTabClick', {\n target: 'body',\n })\n tabClickHandler(event: CustomEvent<any>) {\n if (this.componentId === event.detail[1]) {\n this.activeTabIndex = event.detail[0];\n this.activeTabName = this.tabs[this.activeTabIndex].name;\n }\n }\n\n @Listen('keydown', {})\n handleKeyDown(ev: KeyboardEvent) {\n const keySet = [\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"];\n\n // Only handle keyboard navigation if the event originated from a tab button\n // that belongs to THIS tabs component\n const target = ev.target as HTMLElement;\n const targetTab = target.closest('pds-tab');\n\n // Check if the tab belongs to this tabs instance (not a nested one)\n const isOwnTab = targetTab && targetTab.closest('pds-tabs') === this.el;\n\n if (keySet.includes(ev.key) && isOwnTab) {\n ev.preventDefault();\n this.moveActiveTab(ev.key);\n }\n }\n\n private moveActiveTab(key: string) {\n const firstTabNumber = 0;\n const lastTabNumber = this.tabs.length - 1;\n\n let moveFocusTo = null;\n\n switch (key) {\n case 'ArrowLeft':\n moveFocusTo = (this.activeTabIndex === firstTabNumber) ? lastTabNumber : (this.activeTabIndex + (-1));\n break;\n case 'ArrowRight':\n moveFocusTo = (this.activeTabIndex === lastTabNumber) ? firstTabNumber : (this.activeTabIndex + 1);\n break;\n case 'Home':\n moveFocusTo = firstTabNumber;\n break;\n case 'End':\n moveFocusTo = lastTabNumber;\n break;\n }\n\n // Move focus to the button element within `pds-tab`\n this.tabs[moveFocusTo].children[0].focus();\n this.activeTabName = this.tabs[moveFocusTo].name;\n this.activeTabIndex = moveFocusTo;\n }\n\n private findAllChildren() {\n // Only select direct children tabs/tabpanels, not nested ones\n const allTabs = Array.from(this.el.querySelectorAll('pds-tab'));\n const allTabPanels = Array.from(this.el.querySelectorAll('pds-tabpanel'));\n\n // Filter to only include tabs that belong to this tabs component (not nested)\n this.tabs = allTabs.filter(tab => tab.closest('pds-tabs') === this.el);\n this.tabPanels = allTabPanels.filter(panel => panel.closest('pds-tabs') === this.el);\n }\n\n private propGeneration(child, index = 0) {\n child.parentComponentId = this.componentId.toString();\n child.variant = this.variant.toString();\n child.selected = (this.activeTabName === child.name) ? true : false;\n child['index'] = index;\n }\n\n private passPropsToChildren() {\n this.tabs.forEach((child, index) => {\n if (this.activeTabName === child.name) this.activeTabIndex = index;\n this.propGeneration(child, index);\n });\n\n this.tabPanels.forEach((child) => {\n this.propGeneration(child);\n });\n }\n\n private classNames() {\n let className = `pds-tabs`;\n if (this.variant && this.variant != 'primary') {\n const variantClassName = `pds-tabs--${this.variant}`;\n className += ' ' + variantClassName;\n }\n\n return className;\n };\n\n componentWillLoad() {\n this.findAllChildren();\n }\n\n componentWillRender() {\n this.passPropsToChildren();\n }\n\n render() {\n return (\n <Host active-tab-name={this.activeTabName} class={this.classNames()} id={this.componentId}>\n <div class=\"pds-tabs__tablist\" role=\"tablist\" aria-label={this.tablistLabel} part=\"tab-list\">\n <slot name=\"tabs\" />\n </div>\n <slot name=\"tabpanels\" />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-text.entry.js","sources":["src/components/pds-text/pds-text.scss?tag=pds-text&encapsulation=shadow","src/components/pds-text/pds-text.tsx"],"sourcesContent":[":host {\n display: inline;\n}\n\n:host([decoration=\"underline-dotted\"]) > * {\n text-decoration-color: var(--pine-color-text-tertiary);\n text-decoration-line: underline;\n text-decoration-style: dotted;\n text-decoration-thickness: 12%;\n text-underline-offset: 0.3rem;\n text-underline-position: under;\n}\n\n:host([decoration=\"strikethrough\"])>* {\n text-decoration: line-through;\n}\n\n/* stylelint-disable */\nh1 {\n font: var(--pine-typography-heading-1);\n letter-spacing: var(--pine-letter-spacing-heading-1);\n}\n\nh2 {\n font: var(--pine-typography-heading-2);\n letter-spacing: var(--pine-letter-spacing-heading-2);\n}\n\nh3 {\n font: var(--pine-typography-heading-3);\n letter-spacing: var(--pine-letter-spacing-heading-3);\n}\n\nh4 {\n font: var(--pine-typography-heading-4);\n letter-spacing: var(--pine-letter-spacing-heading-4);\n}\n\nh5 {\n font: var(--pine-typography-heading-5);\n letter-spacing: var(--pine-letter-spacing-heading-5);\n}\n\nh6 {\n font: var(--pine-typography-heading-6);\n letter-spacing: var(--pine-letter-spacing-heading-6);\n}\n\ncode, em, p, pre, strong {\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n}\n/* stylelint-enable */\n\ncode, pre {\n font-family: monospace;\n letter-spacing: 0;\n line-height: 1;\n}\n\nem {\n font-style: normal;\n}\n\nstrong {\n font-weight: bolder;\n}\n\n:host([truncate]) > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host([italic]) > * {\n font-style: italic;\n}\n\n// Colors/Variants/Sentiment\n\n// Variable is set in TSX\n// If color prop value isn't valid, will default to body text color\n.pds-text {\n color: var(--color, var(--pine-color-text));\n margin: var(--pine-dimension-none);\n}\n\n// Font Sizes\n$type-sizes: (\n 2xl: var(--pine-font-size-body-2xl),\n xl: var(--pine-font-size-body-xl),\n lg: var(--pine-font-size-body-lg),\n md: var(--pine-font-size-body-md),\n sm: var(--pine-font-size-body-sm),\n xs: var(--pine-font-size-body-xs),\n 2xs: var(--pine-font-size-body-2xs),\n h1: var(--pine-font-size-heading-1),\n h2: var(--pine-font-size-heading-2),\n h3: var(--pine-font-size-heading-3),\n h4: var(--pine-font-size-heading-4),\n h5: var(--pine-font-size-heading-5),\n h6: var(--pine-font-size-heading-6),\n);\n\n@mixin generate-type-sizes($type-sizes) {\n @each $key, $value in $type-sizes {\n .pds-text--size-#{$key} {\n font-size: $value;\n }\n }\n}\n\n@include generate-type-sizes($type-sizes);\n\n// Font Weights\n$type-weights: (\n extra-light: var(--pine-font-weight-extra-light),\n light: var(--pine-font-weight-light),\n regular: var(--pine-font-weight-regular),\n medium: var(--pine-font-weight-medium),\n semibold: var(--pine-font-weight-semi-bold),\n bold: var(--pine-font-weight-bold),\n);\n\n@mixin generate-type-weights($type-weights) {\n @each $key, $value in $type-weights {\n .pds-text--weight-#{$key} {\n font-weight: $value;\n }\n }\n}\n\n@include generate-type-weights($type-weights);\n\n// Gutter Sizes\n$type-gutters: (\n 2xl: var(--pine-dimension-2xl),\n xl: var(--pine-dimension-xl),\n lg: var(--pine-dimension-lg),\n md: var(--pine-dimension-md),\n sm: var(--pine-dimension-sm),\n xs: var(--pine-dimension-xs),\n 2xs: var(--pine-dimension-2xs),\n);\n\n@mixin generate-type-gutters($type-gutters) {\n @each $key, $value in $type-gutters {\n .pds-text--gutter-#{$key} {\n margin-block-end: $value;\n }\n }\n}\n\n@include generate-type-gutters($type-gutters);\n\n// Text Alignment\n$type-alignments: (\n start: start,\n center: center,\n end: end,\n justify: justify,\n);\n\n@mixin generate-type-alignments($type-alignments) {\n @each $key, $value in $type-alignments {\n .pds-text--align-#{$key} {\n text-align: $value;\n }\n }\n}\n\n@include generate-type-alignments($type-alignments);\n","import { Component, h, Prop, Element, Watch } from '@stencil/core';\nimport { setColor } from '../../utils/utils';\nimport { setupTruncationTooltip } from '../../utils/truncation-tooltip';\n\n/**\n * @part content - The text content container\n */\n@Component({\n tag: 'pds-text',\n styleUrl: 'pds-text.scss',\n shadow: true,\n})\nexport class PdsText {\n @Element() el: HTMLPdsTextElement;\n private contentEl: HTMLElement;\n private truncationCleanup: (() => void) | null = null;\n /**\n * Sets the text alignment.\n */\n @Prop() align?: 'start' | 'center' | 'end' | 'justify';\n\n /**\n * Sets the text color.\n */\n @Prop() color?: string;\n\n /**\n * Sets the text decoration.\n */\n @Prop() decoration?: 'strikethrough' | 'underline-dotted';\n\n /**\n * Set the bottom margin for the text.\n */\n @Prop() gutter?: '2xl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs' | '2xs';\n\n /**\n * If set or `true`, the text will be italic.\n */\n @Prop() italic?: boolean;\n\n /**\n * Sets the font size.\n */\n @Prop() size?:\n | '2xl'\n | 'xl'\n | 'lg'\n | 'md'\n | 'sm'\n | 'xs'\n | '2xs'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6';\n\n /**\n * Sets the font weight.\n */\n @Prop() weight?:\n | 'extra-light'\n | 'light'\n | 'regular'\n | 'medium'\n | 'semibold'\n | 'bold';\n\n /**\n * Determines what semantic text tag to render.\n */\n @Prop() tag:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'p'\n | 'span'\n | 'code'\n | 'pre'\n | 'strong'\n | 'em' = 'p';\n\n /**\n * If set or `true`, the text will be truncated. Must add a `width` to the element.\n * When text overflows, a tooltip showing the full text will appear on hover/focus.\n * Note: When truncate is enabled, the element automatically receives tabindex=\"0\" for keyboard accessibility.\n */\n @Prop({ reflect: true }) truncate?: boolean;\n\n @Watch('truncate')\n handleTruncateChange(newValue: boolean) {\n if (newValue) {\n this.initTruncationTooltip();\n } else {\n this.destroyTruncationTooltip();\n }\n }\n\n componentDidLoad() {\n if (this.truncate) {\n this.initTruncationTooltip();\n }\n }\n\n disconnectedCallback() {\n this.destroyTruncationTooltip();\n }\n\n private initTruncationTooltip() {\n // Clean up any existing tooltip before setting up a new one\n this.destroyTruncationTooltip();\n\n if (this.contentEl) {\n this.truncationCleanup = setupTruncationTooltip({\n hostEl: this.el,\n contentEl: this.contentEl,\n getTooltipText: () => this.el.textContent || '',\n });\n }\n }\n\n private destroyTruncationTooltip() {\n if (this.truncationCleanup) {\n this.truncationCleanup();\n this.truncationCleanup = null;\n }\n }\n\n render() {\n const Tag = this.tag;\n\n const typeClasses = `\n pds-text\n ${\n this.align !== undefined && this.align.trim() !== ''\n ? `pds-text--align-${this.align}`\n : ''\n }\n ${\n this.gutter !== undefined && this.gutter.trim() !== ''\n ? `pds-text--gutter-${this.gutter}`\n : ''\n }\n ${\n this.size !== undefined && this.size.trim() !== ''\n ? `pds-text--size-${this.size}`\n : ''\n }\n ${\n this.weight !== undefined && this.weight.trim() !== ''\n ? `pds-text--weight-${this.weight}`\n : ''\n }\n ${\n this.decoration !== undefined && this.decoration.trim() !== ''\n ? `pds-text--decoration-${this.decoration}`\n : ''\n }\n `;\n\n return (\n <Tag\n ref={(el) => (this.contentEl = el)}\n style={this.color && setColor(this.color)}\n class={typeClasses}\n part=\"content\"\n tabIndex={this.truncate ? 0 : undefined}\n >\n <slot />\n </Tag>\n );\n }\n}\n"],"names":[],"mappings":";;;;;AAAA,MAAM,UAAU,GAAG,6+GAA6+G;;MCYn/G,OAAO,GAAA,MAAA;AALpB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAQU,QAAA,IAAiB,CAAA,iBAAA,GAAwB,IAAI;AAuDrD;;AAEG;AACK,QAAA,IAAG,CAAA,GAAA,GAYA,GAAG;AA4Ff;AAlFC,IAAA,oBAAoB,CAAC,QAAiB,EAAA;QACpC,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,qBAAqB,EAAE;;aACvB;YACL,IAAI,CAAC,wBAAwB,EAAE;;;IAInC,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,qBAAqB,EAAE;;;IAIhC,oBAAoB,GAAA;QAClB,IAAI,CAAC,wBAAwB,EAAE;;IAGzB,qBAAqB,GAAA;;QAE3B,IAAI,CAAC,wBAAwB,EAAE;AAE/B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,iBAAiB,GAAG,sBAAsB,CAAC;gBAC9C,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,cAAc,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE;AAChD,aAAA,CAAC;;;IAIE,wBAAwB,GAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;;;IAIjC,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AAEpB,QAAA,MAAM,WAAW,GAAG;;AAGhB,MAAA,EAAA,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK;AAChD,cAAE,CAAA,gBAAA,EAAmB,IAAI,CAAC,KAAK,CAAE;AACjC,cAAE,EACN;AAEE,MAAA,EAAA,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK;AAClD,cAAE,CAAA,iBAAA,EAAoB,IAAI,CAAC,MAAM,CAAE;AACnC,cAAE,EACN;AAEE,MAAA,EAAA,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK;AAC9C,cAAE,CAAA,eAAA,EAAkB,IAAI,CAAC,IAAI,CAAE;AAC/B,cAAE,EACN;AAEE,MAAA,EAAA,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK;AAClD,cAAE,CAAA,iBAAA,EAAoB,IAAI,CAAC,MAAM,CAAE;AACnC,cAAE,EACN;AAEE,MAAA,EAAA,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;AAC1D,cAAE,CAAA,qBAAA,EAAwB,IAAI,CAAC,UAAU,CAAE;AAC3C,cAAE,EACN;KACD;AAED,QAAA,QACE,CAAC,CAAA,GAAG,EACF,EAAA,GAAA,EAAA,0CAAA,EAAA,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAClC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EACzC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAC,SAAS,EACd,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,EAAA,EAEvC,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-textarea.entry.js","sources":["src/global/styles/utils/label.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-input/pds-input.tokens.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n","@use '~@kajabi-ui/styles/dist/pine/components/pds-input/pds-input.tokens'\n",":host {\n display: inline-block;\n width: 100%;\n}\n\n:host([aria-readonly=\"true\"]) {\n textarea {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n}\n\n:host([highlight]:not([disabled]):not([aria-disabled=\"true\"]):not([aria-readonly=\"true\"])) {\n .pds-textarea__field:not(.is-invalid) {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-accent);\n color: var(--pine-color-text-accent);\n\n &:hover {\n border-color: var(--pine-color-accent-hover);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring);\n }\n\n ~ .pds-textarea__character-counter {\n background: color-mix(in srgb, var(--pine-color-accent-disabled) 80%, transparent);\n color: var(--pine-color-text-accent);\n }\n }\n}\n\n.pds-textarea {\n display: flex;\n flex-direction: column;\n}\n\n.pds-textarea__label-wrapper {\n align-items: center;\n display: flex;\n justify-content: space-between;\n}\n\n.pds-textarea__action {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-xs);\n margin-inline-start: var(--pine-dimension-xs);\n}\n\nlabel {\n display: block;\n margin-block-end: var(--pine-dimension-xs);\n}\n\n// When label is inside wrapper, remove its margin\n.pds-textarea__label-wrapper label {\n margin-block-end: 0;\n}\n\n.pds-textarea__helper-message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n.pds-textarea__error-message {\n color: var(--pine-color-text-message-danger);\n display: flex;\n font: var(--pine-typography-body-sm-medium);\n gap: var(--pine-dimension-2xs);\n margin-block-start: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n.pds-textarea__field-wrapper {\n display: inline-block;\n position: relative;\n width: 100%;\n}\n\n.pds-textarea__field {\n background-color: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: calc(var(--pine-dimension-xs) * 1.25);\n box-sizing: border-box;\n color: var(--pine-color-text);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n min-height: calc(var(--pine-dimension-xl) * 2);\n min-width: calc(var(--pine-dimension-xl) * 2);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n resize: both;\n width: 100%;\n\n // Add bottom padding when character counter is present\n :host([max-length]) & {\n padding-bottom: calc(var(--pine-dimension-xs) + var(--pine-dimension-md));\n }\n\n &:hover:not(:disabled, .is-invalid) {\n border: var(--pine-border-hover);\n }\n\n &:disabled {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n &.is-invalid {\n background-color: var(--pine-input-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n :host-context([data-theme=\"dark\"]) & {\n background-color: var(--pine-color-red-950);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n.pds-textarea__character-counter {\n background: color-mix(in srgb, var(--pine-color-background-container) 80%, transparent);\n border-radius: calc(var(--pine-dimension-2xs) * 0.5);\n color: var(--pine-color-text-muted);\n font: var(--pine-typography-body-sm-medium);\n padding: calc(var(--pine-dimension-2xs) * 0.5) var(--pine-dimension-2xs);\n pointer-events: none;\n position: absolute;\n user-select: none;\n white-space: nowrap;\n z-index: var(--pine-z-index);\n\n // Match textarea disabled state\n :host([aria-disabled=\"true\"]) & {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-disabled);\n }\n\n // Match textarea readonly state\n :host([aria-readonly=\"true\"]) & {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n\n // Match textarea invalid state - target when field has is-invalid class\n .pds-textarea__field.is-invalid ~ & {\n background-color: var(--pine-input-color-background-danger);\n\n :host-context([data-theme=\"dark\"]) & {\n background-color: var(--pine-color-red-950);\n }\n }\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, isRequired, isSpecTest, messageId, exposeTypeProperty } from '../../utils/form';\nimport { TextareaChangeEventDetail, TextareaInputEventDetail } from './textarea-interface';\nimport { debounceEvent } from '@utils/utils';\nimport type { Attributes } from '@utils/attributes';\nimport { inheritAttributes, inheritAriaAttributes } from '@utils/attributes';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-textarea',\n styleUrls: [\n '../../global/styles/utils/label.scss',\n '../pds-input/pds-input.tokens.scss',\n 'pds-textarea.scss'\n ],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsTextarea {\n\n private nativeTextarea?: HTMLTextAreaElement\n private focusedValue?: string | null;\n private inheritedAttributes: Attributes = {};\n private originalPdsInput?: EventEmitter<TextareaInputEventDetail>;\n private internals?: ElementInternals;\n private resizeObserver?: ResizeObserver;\n private characterCounter?: HTMLElement;\n private readonly _type = 'textarea' as const;\n\n @Element() el: HTMLPdsTextareaElement;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n @Event() pdsInput: EventEmitter<TextareaInputEventDetail>;\n\n /**\n * Event emitted whenever the value of the textarea changes.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsTextareaChange: EventEmitter<TextareaChangeEventDetail>;\n\n /**\n * Emitted when a key is pressed down in the textarea.\n */\n @Event() pdsKeyDown!: EventEmitter<KeyboardEvent>;\n\n /**\n * Sets focus on the native `textarea` in the `pds-textarea`. Use this method instead of the global\n * `textarea.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeTextarea) {\n this.nativeTextarea.focus();\n }\n }\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: 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 textarea is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the event after each keystroke.\n */\n @Prop() debounce?: number;\n\n /**\n * Displays an error message below the textarea field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the textarea field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the textarea is invalid or throws an error.\n * @defaultValue false\n */\n @Prop({mutable: true}) invalid = false; // eslint-disable-line @stencil-community/strict-mutable\n\n /**\n * Text to be displayed as the textarea label.\n */\n @Prop() label?: string;\n\n /**\n * Visually hides the label text for instances where only the textarea should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Specifies the name. Submitted with the form name/value pair. This value will mirror the componentId.\n */\n @Prop() name: string = this.componentId;\n\n /**\n * Specifies a short hint that describes the expected value of the textarea.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the textarea is readonly.\n * @defaultValue false\n */\n @Prop() readonly = false;\n\n /**\n * Determines whether or not the textarea is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Sets number of rows of text visible without needing to scroll in the textarea.\n */\n @Prop() rows?: number;\n\n /**\n * Specifies the maximum number of characters allowed in the textarea. When set, displays a character counter.\n */\n @Prop({ reflect: true }) maxLength?: number;\n\n /**\n * Applies highlight styling to the textarea field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\n\n /**\n * The value of the textarea.\n */\n @Prop({mutable: true}) value?: string | null = '';\n\n @State() hasFocus = false;\n\n\n /**\n * If true, the textarea has action content in the label area\n */\n @State() hasAction = false;\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n const nativeTextarea = this.nativeTextarea;\n const value = this.getValue();\n\n if (nativeTextarea && nativeTextarea.value !== value) {\n nativeTextarea.value = value;\n }\n\n // Update form value for Form Associated Custom Elements API\n this.updateFormValue();\n\n // Update character counter position in case content changes affect sizing\n if (this.maxLength && typeof ResizeObserver !== 'undefined') {\n this.updateCharacterCounterPosition();\n }\n }\n\n @Watch('maxLength')\n protected maxLengthChanged() {\n // Setup or teardown ResizeObserver based on maxLength\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.maxLength && this.nativeTextarea) {\n this.setupResizeObserver();\n }\n\n // Update ElementInternals validity when maxLength changes\n if (!isSpecTest() && this.internals && this.internals.setValidity && this.nativeTextarea) {\n const isTooLong = this.nativeTextarea.value.length > (this.maxLength || 0);\n this.internals.setValidity(\n { tooLong: isTooLong },\n isTooLong ? 'Value exceeds maxLength' : '',\n this.nativeTextarea\n );\n }\n }\n\n /**\n * Emits an `pdsInput` event.\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n this.pdsInput.emit({ value, event });\n }\n\n /**\n * Emits an `pdsTextareaChange` event.\n */\n private emitValueChange(event?: Event) {\n const textarea = event.target as HTMLTextAreaElement;\n isRequired(textarea, this);\n\n const { value } = textarea;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n this.focusedValue = newValue;\n this.pdsTextareaChange.emit({ value: newValue, event });\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private onBlur = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLTextAreaElement | null;\n if (input) {\n // Handle maxLength validation\n if (this.maxLength && input.value.length > this.maxLength) {\n // Prevent input beyond maxLength\n input.value = input.value.substring(0, this.maxLength);\n }\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n\n // Update counter position when content changes\n if (this.maxLength && typeof ResizeObserver !== 'undefined') {\n // Use requestAnimationFrame to ensure DOM is updated\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n };\n\n private onTextareaChange = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onKeyDown = (ev: KeyboardEvent) => {\n this.pdsKeyDown.emit(ev);\n };\n\n private textareaClassNames() {\n const classNames = ['pds-textarea__field'];\n\n if (this.invalid && this.invalid === true) {\n classNames.push('is-invalid');\n }\n\n return classNames.join(' ');\n }\n\n connectedCallback() {\n this.debounceChanged();\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n disconnectedCallback() {\n // Clean up ResizeObserver\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el),\n };\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n }\n\n componentDidLoad() {\n this.originalPdsInput = this.pdsInput;\n // Set initial form value\n this.updateFormValue();\n\n // Setup ResizeObserver for character counter positioning\n this.setupResizeObserver();\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n /**\n * Sets up ResizeObserver to track textarea resize for character counter positioning\n */\n private setupResizeObserver() {\n if (!this.maxLength || !this.nativeTextarea) return;\n\n // ResizeObserver may not be available in test environments\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n // Use requestAnimationFrame to ensure DOM updates are complete\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n });\n\n this.resizeObserver.observe(this.nativeTextarea);\n\n // Initial positioning with a small delay to ensure counter is rendered\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n }\n\n /**\n * Updates character counter position to stay within textarea boundaries during resize\n */\n private updateCharacterCounterPosition() {\n if (!this.characterCounter || !this.nativeTextarea) return;\n\n // Skip positioning in test environments where ResizeObserver isn't available\n if (typeof ResizeObserver === 'undefined') return;\n\n // Ensure the character counter has been rendered and has dimensions\n if (this.characterCounter.offsetWidth === 0 || this.characterCounter.offsetHeight === 0) {\n // Counter not ready or component hidden - return and let resize/input observers handle positioning later\n return;\n }\n\n // Position based on textarea's actual dimensions (which change during manual resize)\n const textareaWidth = this.nativeTextarea.offsetWidth;\n const textareaHeight = this.nativeTextarea.offsetHeight;\n const counterWidth = this.characterCounter.offsetWidth;\n const counterHeight = this.characterCounter.offsetHeight;\n\n // Calculate position within textarea boundaries with padding from edges\n const rightPosition = textareaWidth - counterWidth - 8;\n const bottomPosition = textareaHeight - counterHeight - 8;\n\n // Ensure counter stays within textarea boundaries even when resized very small\n const finalLeft = Math.max(8, Math.min(rightPosition, textareaWidth - counterWidth - 8));\n const finalTop = Math.max(8, Math.min(bottomPosition, textareaHeight - counterHeight - 8));\n\n // Apply absolute positioning within the field wrapper\n this.characterCounter.style.position = 'absolute';\n this.characterCounter.style.left = `${finalLeft}px`;\n this.characterCounter.style.top = `${finalTop}px`;\n this.characterCounter.style.right = 'auto';\n this.characterCounter.style.bottom = 'auto';\n }\n\n /**\n * Renders the character counter when maxLength is set\n */\n private renderCharacterCounter() {\n if (!this.maxLength) {\n return null;\n }\n\n const currentLength = this.getValue().length;\n return (\n <div\n class=\"pds-textarea__character-counter\"\n ref={(el) => this.characterCounter = el}\n role=\"status\"\n aria-live=\"polite\"\n aria-label={`${currentLength} of ${this.maxLength} characters`}\n >\n {currentLength} / {this.maxLength}\n </div>\n );\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-textarea__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (isSpecTest()) return;\n\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native textarea validation\n if (this.nativeTextarea && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeTextarea.validity,\n this.nativeTextarea.validationMessage,\n this.nativeTextarea\n );\n }\n }\n }\n\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the textarea's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\n }\n\n render() {\n const value = this.getValue();\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-action={this.hasAction && !this.hideLabel ? 'true' : null}\n >\n <div class=\"pds-textarea\">\n {this.label &&\n <div class=\"pds-textarea__label-wrapper\">\n <label htmlFor={this.componentId}>\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {!this.hideLabel && this.renderAction()}\n </div>\n }\n <div class=\"pds-textarea__field-wrapper\">\n <textarea\n ref={(el) => this.nativeTextarea = el }\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n class={this.textareaClassNames()}\n disabled={this.disabled}\n id={this.componentId}\n maxlength={this.maxLength}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n rows={this.rows}\n onBlur={this.onBlur}\n onChange={this.onTextareaChange}\n onFocus={this.onFocus}\n onInput={this.onInput}\n onKeyDown={this.onKeyDown}\n {...this.inheritedAttributes}\n >\n {value}\n </textarea>\n {this.renderCharacterCounter()}\n </div>\n {this.helperMessage &&\n <p\n class=\"pds-textarea__helper-message\"\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </p>\n }\n {this.invalid &&\n <p\n aria-live=\"assertive\"\n class=\"pds-textarea__error-message\"\n id={messageId(this.componentId, 'error')}\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n }\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,QAAQ,GAAG,oTAAoT;;ACArU,MAAM,iBAAiB,GAAG,uEAAuE;;ACAjG,MAAM,cAAc,GAAG,oxKAAoxK;;MCqB9xK,WAAW,GAAA,MAAA;AAVxB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;;AAcU,QAAA,IAAmB,CAAA,mBAAA,GAAe,EAAE;AAK3B,QAAA,IAAK,CAAA,KAAA,GAAG,UAAmB;AAyD5C;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAiBxB;;;AAGG;AACoB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC;AAavC;;AAEG;AACK,QAAA,IAAA,CAAA,IAAI,GAAW,IAAI,CAAC,WAAW;AAOvC;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAExB;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAiBxB;;AAEG;AACoB,QAAA,IAAK,CAAA,KAAA,GAAmB,EAAE;AAExC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAGzB;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK;AA+ElB,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,EAAc,KAAI;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YAErB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;AACpC,gBAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;;AAG1B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,SAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,EAAc,KAAI;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;AAE9B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,SAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,EAAS,KAAI;AAC9B,YAAA,MAAM,KAAK,GAAG,EAAE,CAAC,MAAoC;YACrD,IAAI,KAAK,EAAE;;AAET,gBAAA,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;;AAEzD,oBAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;;gBAExD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE;;AAEhC,YAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;;YAGxB,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;;gBAE3D,qBAAqB,CAAC,MAAK;oBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,iBAAC,CAAC;;AAEN,SAAC;AAEO,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,EAAS,KAAI;AACvC,YAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AAC1B,SAAC;AAEO,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,EAAiB,KAAI;AACxC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,SAAC;AAsQF;AA5eC;;;AAGG;AAEH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;;;IAuGrB,eAAe,GAAA;QACvB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI;AAErD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,KAAK,SAAS,GAAG,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,cAAhB,gBAAgB,GAAI,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;;AAG3G;;AAEG;IAEO,YAAY,GAAA;AACpB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;QAE7B,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,KAAK,KAAK,EAAE;AACpD,YAAA,cAAc,CAAC,KAAK,GAAG,KAAK;;;QAI9B,IAAI,CAAC,eAAe,EAAE;;QAGtB,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YAC3D,IAAI,CAAC,8BAA8B,EAAE;;;IAK/B,gBAAgB,GAAA;;AAExB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;;QAGlC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE;;;AAI5B,QAAA,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;AACxF,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,EAAE,OAAO,EAAE,SAAS,EAAE,EACtB,SAAS,GAAG,yBAAyB,GAAG,EAAE,EAC1C,IAAI,CAAC,cAAc,CACpB;;;AAIL;;AAEG;AACK,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AAGtC;;AAEG;AACK,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA6B;AACpD,QAAA,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;AAE1B,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ;;AAG1B,QAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE;AACzD,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;IAGjD,QAAQ,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE;;IAiDjB,kBAAkB,GAAA;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,qBAAqB,CAAC;QAE1C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzC,YAAA,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG/B,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG9B,iBAAiB,GAAA;QACf,IAAI,CAAC,eAAe,EAAE;;QAEtB,IAAI,IAAI,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE;;;IAI9C,oBAAoB,GAAA;;AAElB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;;;IAIpC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,EAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9B;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI;;IAGpE,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ;;QAErC,IAAI,CAAC,eAAe,EAAE;;QAGtB,IAAI,CAAC,mBAAmB,EAAE;;AAG1B,QAAA,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC;;AAG/C;;AAEG;IACK,mBAAmB,GAAA;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;;AAG7C,QAAA,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AACzC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAK;;gBAE5C,qBAAqB,CAAC,MAAK;oBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,iBAAC,CAAC;AACJ,aAAC,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;;YAGhD,qBAAqB,CAAC,MAAK;gBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,aAAC,CAAC;;;AAIN;;AAEG;IACK,8BAA8B,GAAA;QACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;;QAGpD,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE;;AAG3C,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,EAAE;;YAEvF;;;AAIF,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW;AACrD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY;AACvD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW;AACtD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY;;AAGxD,QAAA,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,CAAC;AACtD,QAAA,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,CAAC;;QAGzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC;;QAG1F,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;QACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI;QACnD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAI;QACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;QAC1C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;;AAG7C;;AAEG;IACK,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,IAAI;;QAGb,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;QAC5C,QACE,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,iCAAiC,EACvC,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,GAAG,EAAE,EACvC,IAAI,EAAC,QAAQ,EACH,WAAA,EAAA,QAAQ,EACN,YAAA,EAAA,CAAG,EAAA,aAAa,CAAO,IAAA,EAAA,IAAI,CAAC,SAAS,aAAa,EAAA,EAE7D,aAAa,SAAK,IAAI,CAAC,SAAS,CAC7B;;IAIF,YAAY,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI;QACnE,IAAI,SAAS,EAAE;YACb,QACE,WAAK,KAAK,EAAC,sBAAsB,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC7C,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,QAAQ,EAAQ,CAAA,CACvB;;AAGV,QAAA,OAAO,IAAI;;AAGb;;AAEG;IACK,eAAe,GAAA;AACrB,QAAA,IAAI,UAAU,EAAE;YAAE;QAElB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AACjD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC;;AAG1C,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvE,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,IAAI,CAAC,cAAc,CAAC,iBAAiB,EACrC,IAAI,CAAC,cAAc,CACpB;;;;AAMP;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,eAAe,EAAE;;AAGxB;;AAEG;AACH,IAAA,oBAAoB,CAAC,QAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B;;AAEG;AACH,IAAA,wBAAwB,CAAC,KAA+B,EAAA;AACtD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;aACb,IAAI,KAAK,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;;YAEjD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;;IAKxB,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAE7B,QAAA,QACE,CAAC,CAAA,IAAI,sEACY,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,mBAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,gBAChC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,EAAA,EAE7D,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACtB,IAAI,CAAC,KAAK;YACT,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EAC9B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAAA,EACjD,IAAI,CAAC,KAAK,CACN,CACD,EACP,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CACnC,EAER,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAA,EAAA,0CAAA,EACE,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,GAAG,EAAE,sBACnB,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAA,cAAA,EACzE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,EAC/C,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAA,EACrB,IAAI,CAAC,mBAAmB,CAAA,EAE3B,KAAK,CACG,EACV,IAAI,CAAC,sBAAsB,EAAE,CAC1B,EACL,IAAI,CAAC,aAAa;AACjB,YAAA,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,8BAA8B,EACpC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAExC,IAAI,CAAC,aAAa,CACjB,EAEL,IAAI,CAAC,OAAO;YACX,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EACY,WAAW,EACrB,KAAK,EAAC,6BAA6B,EACnC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAA,EAExC,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAU,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,OAAO,EAAG,CAAA,EACtC,IAAI,CAAC,YAAY,CAChB,CAEF,CACD;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-toast.entry.js","sources":["src/components/pds-toast/pds-toast.scss?tag=pds-toast&encapsulation=shadow","src/components/pds-toast/pds-toast.tsx"],"sourcesContent":[":host {\n --animation-duration: var(--pine-motion-duration-slow);\n --animation-timing: var(--pine-motion-easing-in-out);\n --padding-inline: var(--pine-dimension-md);\n --padding-inline-desktop: var(--pine-dimension-2xl);\n --sizing-height-default: 68px;\n --sizing-min-width: calc(var(--sizing-total-width) - (var(--padding-inline) * 2));\n --sizing-min-width-desktop: calc(var(--sizing-total-width) - (var(--padding-inline-desktop) * 2));\n --sizing-total-width: 350px;\n\n box-sizing: border-box;\n display: block;\n font: var(--pine-typography-body-medium);\n}\n\n.pds-toast {\n align-items: center;\n animation: pds-toast-animate-in var(--animation-duration) var(--animation-timing);\n background-color: var(--pine-color-primary);\n border-radius: var(--pine-dimension-xs);\n box-shadow: var(--pine-box-shadow);\n color: var(--pine-color-text-primary);\n display: flex;\n height: var(--sizing-height-default);\n justify-content: flex-start;\n margin-block-end: var(--pine-dimension-2xs);\n max-width: 90vw;\n min-width: var(--sizing-min-width);\n padding: 0 var(--padding-inline);\n position: relative;\n width: fit-content;\n\n @media screen and (max-width: 767px) {\n height: 36px;\n max-width: calc(100vw - (var(--pine-dimension-2xs) * 2));\n min-width: auto;\n padding-inline: var(--pine-dimension-2xs);\n }\n\n &--danger {\n background-color: var(--pine-color-danger);\n }\n\n &--loading {\n .pds-toast__loader {\n align-items: center;\n display: flex;\n justify-content: center;\n margin-inline-end: var(--pine-dimension-sm);\n position: relative;\n\n &-spinner {\n animation: pds-toast-rotate 2s linear infinite;\n height: 20px;\n width: 20px;\n }\n\n &-path {\n animation: pds-toast-dash 1.5s ease-in-out infinite;\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n }\n }\n }\n}\n\n.pds-toast__icon {\n color: var(--pine-color-text-primary);\n display: inline-flex;\n margin-inline-end: var(--pine-dimension-sm);\n}\n\n.pds-toast__message {\n font: var(--pine-typography-body-sm-medium);\n margin-inline-end: auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n // Style all slotted links\n ::slotted(a) {\n color: var(--pine-color-text-primary);\n margin-inline-start: var(--pine-dimension-xs);\n opacity: 0.7;\n text-decoration: underline;\n\n &:hover,\n &:focus-visible {\n opacity: 1;\n }\n\n &:focus-visible {\n outline: 2px solid var(--pine-color-text-primary);\n outline-offset: 2px;\n }\n }\n}\n\n.pds-toast__button {\n align-items: center;\n background: none;\n border: 0;\n border-radius: var(--pine-border-radius-full);\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n margin-inline-start: var(--pine-dimension-md);\n opacity: 0.7;\n padding: 0;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n\n &:focus {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-dimension-2xs);\n }\n}\n\n// Animation keyframes\n@keyframes pds-toast-animate-in {\n from {\n opacity: 0;\n transform: translateY(100%);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes pds-toast-animate-out {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100%);\n }\n}\n\n// Loading animation keyframes\n@keyframes pds-toast-rotate {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pds-toast-dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124;\n }\n}\n\n// Animation for dismissing\n:host([hidden]) .pds-toast,\n.pds-toast--animating-out {\n animation: pds-toast-animate-out var(--animation-duration) var(--animation-timing) forwards;\n pointer-events: none; /* Prevent interaction during animation */\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\n\n/** Fallback when computed `--animation-duration` is unavailable (matches `--pine-motion-duration-slow`). */\nconst TOAST_DISMISS_ANIMATION_MS = 300;\n\n/**\n * @part dismiss\n */\n@Component({\n tag: 'pds-toast',\n styleUrl: 'pds-toast.scss',\n shadow: true,\n})\nexport class PdsToast {\n @Element() el!: HTMLPdsToastElement;\n\n // Props\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Whether the toast can be dismissed manually via the close button.\n * Note: This only controls manual dismissal. Auto-dismissal via duration still applies.\n * @default true\n */\n @Prop() dismissible: boolean = true;\n\n /**\n * The duration in milliseconds to show the toast before auto-dismissing.\n * Set to 0 to disable auto-dismiss.\n * @default 4500\n */\n @Prop() duration: number = 4500;\n\n /**\n * The name of the icon to display in the toast.\n */\n @Prop() icon?: string;\n\n /**\n * The type of toast to display.\n * - default: Grey background (default)\n * - danger: Red background\n * - loading: With spinner animation\n * @default 'default'\n */\n @Prop() type: 'default' | 'danger' | 'loading' = 'default';\n\n /**\n * Whether the toast is currently visible.\n */\n @State() isVisible: boolean = true;\n\n /**\n * Whether the toast is animating out.\n */\n @State() isAnimatingOut: boolean = false;\n\n // Private properties\n /**\n * Timer for auto-dismissal\n */\n private dismissTimer?: number;\n\n /**\n * Event emitted when the toast is dismissed, either manually or automatically.\n */\n @Event() pdsToastDismissed: EventEmitter<{ componentId?: string }>;\n\n componentDidLoad() {\n if (this.duration > 0) {\n this.startDismissTimer();\n }\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n\n @Watch('duration')\n handleDurationChange(newDuration: number) {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n if (newDuration > 0) {\n this.startDismissTimer();\n }\n }\n\n @Method()\n async dismiss(): Promise<void> {\n // Start the animation out\n this.isAnimatingOut = true;\n\n await this.waitForDismissAnimation();\n\n this.isVisible = false;\n this.cleanup();\n this.pdsToastDismissed.emit({ componentId: this.componentId });\n }\n\n // Private methods\n private waitForDismissAnimation(): Promise<void> {\n const durationMs = this.getDismissAnimationDurationMs();\n if (durationMs <= 0) {\n return Promise.resolve();\n }\n return new Promise((resolve) => window.setTimeout(resolve, durationMs));\n }\n\n private getDismissAnimationDurationMs(): number {\n if (typeof window === 'undefined') {\n return TOAST_DISMISS_ANIMATION_MS;\n }\n\n if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\n return 0;\n }\n\n const fromCss = this.parseCssDurationToMs(\n getComputedStyle(this.el).getPropertyValue('--animation-duration').trim(),\n );\n\n return fromCss ?? TOAST_DISMISS_ANIMATION_MS;\n }\n\n private parseCssDurationToMs(value: string): number | undefined {\n if (!value) {\n return undefined;\n }\n if (value === '0' || value === '0ms' || value === '0s') {\n return 0;\n }\n if (value.endsWith('ms')) {\n const ms = Number.parseFloat(value);\n return Number.isFinite(ms) ? ms : undefined;\n }\n if (value.endsWith('s')) {\n const seconds = Number.parseFloat(value);\n return Number.isFinite(seconds) ? seconds * 1000 : undefined;\n }\n return undefined;\n }\n\n private cleanup(): void {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n }\n\n private startDismissTimer(): void {\n this.dismissTimer = window.setTimeout(() => {\n this.dismiss();\n }, this.duration);\n }\n\n private renderIcon() {\n // Loading type takes priority\n if (this.type === 'loading') {\n return (\n <div class=\"pds-toast__loader\">\n <svg class=\"pds-toast__loader-spinner\" viewBox=\"25 25 50 50\" aria-hidden=\"true\">\n <circle class=\"pds-toast__loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" />\n </svg>\n </div>\n );\n }\n\n // Return icon if provided, otherwise undefined (which renders as nothing)\n return this.icon && <pds-icon name={this.icon} class=\"pds-toast__icon\" />;\n }\n\n render() {\n return (\n <Host hidden={!this.isVisible}>\n <div\n class={{\n 'pds-toast': true,\n [`pds-toast--${this.type}`]: this.type !== 'default',\n 'pds-toast--animating-out': this.isAnimatingOut\n }}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {this.renderIcon()}\n\n <span class=\"pds-toast__message\">\n <slot></slot>\n </span>\n\n {this.dismissible && (\n <button\n type=\"button\"\n part=\"dismiss\"\n class=\"pds-toast__button\"\n onClick={() => {\n this.dismiss();\n }}\n aria-label=\"Dismiss message\"\n >\n <pds-icon name=\"remove\" />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pds-tooltip.entry.js","sources":["src/components/pds-tooltip/pds-tooltip.scss?tag=pds-tooltip","src/components/pds-tooltip/pds-tooltip.tsx"],"sourcesContent":[".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: relative;\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: var(--pine-z-index-raised);\n }\n\n .pds-tooltip.pds-tooltip--has-html-content & {\n width: fit-content;\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 // Arrow placement uses physical left/right to match Floating UI placement names.\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 { PlacementType } from '@utils/types';\nimport {\n autoUpdate,\n computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\n\n/**\n * @slot (default) - The tooltip's target element\n * @slot content - HTML content for the tooltip\n */\n\n@Component({\n tag: 'pds-tooltip',\n styleUrls: ['pds-tooltip.scss'],\n shadow: false,\n})\n\nexport class PdsTooltip {\n private static instanceCounter = 0;\n\n /**\n * Internal state: true if the tooltip was opened by user interaction (hover/focus),\n * false if opened via the `opened` prop or currently closed.\n */\n @State() private _isInteractiveOpen = false;\n\n private portalEl: HTMLElement | null = null;\n private resolvedPlacement: PlacementType = 'right';\n private triggerEl: HTMLElement | null = null;\n private contentDiv: HTMLElement | null = null;\n private slotMutationObserver: MutationObserver | null = null;\n private currentPathname: string = '';\n private pathnameCheckInterval: ReturnType<typeof setInterval> | null = null;\n private stopAutoUpdate: (() => void) | null = null;\n\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsTooltipElement;\n\n /**\n * Content for the tooltip. If HTML is required, use the content slot\n */\n @Prop() content: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether or not the tooltip has an arrow\n * @defaultValue true\n */\n @Prop() hasArrow = true;\n\n /**\n * Enable this option when using the content slot\n * @defaultValue false\n */\n @Prop() htmlContent = false;\n\n /**\n * Determines the preferred position of the tooltip\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement: PlacementType = 'right';\n\n /**\n * Sets the maximum width of the tooltip content\n * @defaultValue \"352px\"\n */\n @Prop() maxWidth: string = '352px';\n\n /**\n * Determines whether or not the tooltip is visible\n * @defaultValue false\n */\n @Prop({mutable: true, reflect: true}) opened = false;\n\n @Watch('opened')\n\n handleOpenToggle(newValue: boolean, oldValue: boolean) {\n if (newValue === false && oldValue === true) {\n this._isInteractiveOpen = false;\n }\n }\n\n componentWillLoad() {\n this._isInteractiveOpen = false;\n this.resolvedPlacement = this.placement;\n }\n\n componentDidLoad() {\n window.addEventListener('pageshow', this.handlePageShow);\n this.currentPathname = window.location.pathname;\n this.triggerEl = this.el.querySelector('.pds-tooltip__trigger') as HTMLElement;\n const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');\n\n if (contentSlotWrapper !== null) {\n this.slotMutationObserver = new MutationObserver(() => {\n if (this.opened && this.portalEl !== null) {\n this.removePortal();\n this.createPortal();\n }\n });\n this.slotMutationObserver.observe(contentSlotWrapper, { childList: true, subtree: false });\n }\n\n // no return; Stencil ignores teardown functions here\n }\n\n disconnectedCallback() {\n window.removeEventListener('pageshow', this.handlePageShow);\n if (this.slotMutationObserver !== null) {\n this.slotMutationObserver.disconnect();\n this.slotMutationObserver = null;\n }\n // Ensure global listeners/intervals are removed if still present\n if (this.portalEl !== null) {\n this.removePortal();\n }\n if (this.pathnameCheckInterval !== null) {\n clearInterval(this.pathnameCheckInterval);\n this.pathnameCheckInterval = null;\n }\n // Ensure autoUpdate is stopped if still present\n if (this.stopAutoUpdate !== null) {\n this.stopAutoUpdate();\n this.stopAutoUpdate = null;\n }\n }\n\n componentDidRender() {\n if (this.opened && this.portalEl === null) {\n this.createPortal();\n } else if (!this.opened && this.portalEl !== null) {\n this.removePortal();\n }\n\n // Update portal class when opened state changes\n if (this.portalEl !== null) {\n this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;\n\n // Update ARIA attributes to stay in sync with visual open state\n this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n }\n }\n\n /**\n * Shows the tooltip by enabling the opened property\n */\n @Method()\n async showTooltip() {\n this.opened = true;\n }\n\n /**\n * Hides the tooltip by disabling the opened property\n */\n @Method()\n async hideTooltip() {\n this.opened = false;\n }\n\n private handleHide = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.hideTooltip();\n this._isInteractiveOpen = false;\n };\n\n private handleShow = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this._isInteractiveOpen = true;\n this.showTooltip();\n };\n\n private handlePageShow = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.opened = false;\n this._isInteractiveOpen = false;\n };\n\n\n private handleSpaNavigation = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.hideTooltip();\n this._isInteractiveOpen = false;\n };\n\n private checkPathnameChange = () => {\n if (window.location.pathname !== this.currentPathname) {\n this.currentPathname = window.location.pathname;\n this.handleSpaNavigation();\n }\n };\n\n /**\n * Determines the most accurate HTML element to use as the anchor for positioning the tooltip.\n * If `htmlContent` is false, it attempts to find the actual element slotted as the trigger.\n * Otherwise, or if no specific element is found, it defaults to the span wrapper around the trigger slot.\n * This helps with precise alignment.\n */\n private determinePositioningAnchor(): HTMLElement | null {\n let positioningAnchor: HTMLElement | null = this.triggerEl;\n\n if (this.triggerEl !== null) {\n const children = this.triggerEl.childNodes;\n\n for (let i = 0; i < children.length; i++) {\n const childNode = children[i];\n\n if (childNode.nodeType === Node.ELEMENT_NODE) {\n positioningAnchor = childNode as HTMLElement;\n break; // Found the first element, use it as the anchor\n }\n }\n }\n\n // If no ELEMENT_NODE is found within this.triggerEl (e.g., if trigger is just text),\n // positioningAnchor will correctly remain this.triggerEl (the span).\n return positioningAnchor;\n }\n\n /**\n * Centralized method to calculate and apply the tooltip's position using floating UI.\n * Uses the determined anchor element and applies computePosition with flip, offset, and shift.\n */\n private async repositionPortal() {\n const anchor = this.determinePositioningAnchor();\n\n if (anchor !== null && this.portalEl !== null) {\n try {\n const { x, y, placement: computedPlacement } = await computePosition(anchor, this.portalEl, {\n placement: this.placement,\n strategy: 'fixed',\n middleware: [offset(8), flip(), shift({ padding: 5 })],\n });\n\n this.resolvedPlacement = computedPlacement as PlacementType;\n\n Object.assign(this.portalEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n position: 'fixed',\n });\n\n // Update CSS classes to match the resolved placement\n this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;\n } catch (error) {\n console.warn('Failed to position tooltip:', error);\n this.resolvedPlacement = this.placement; // Fallback to requested placement\n // Fallback to basic positioning if floating UI fails\n const anchorRect = anchor.getBoundingClientRect();\n this.portalEl.style.left = `${anchorRect.right + 8}px`;\n this.portalEl.style.top = `${anchorRect.top}px`;\n this.portalEl.style.position = 'fixed';\n }\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = `pds-tooltip pds-tooltip--${this.resolvedPlacement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = 'var(--pine-z-index-nuclear)';\n\n if (this.portalEl.id === '') {\n const suffix = PdsTooltip.instanceCounter++;\n const baseId = this.componentId || this.el.id || 'pds-tooltip';\n this.portalEl.id = `${baseId}-portal-${suffix}`;\n }\n\n if (this.portalEl.getAttribute('id') !== this.portalEl.id) {\n this.portalEl.setAttribute('id', this.portalEl.id);\n }\n\n this.portalEl.setAttribute('role', 'tooltip');\n this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n this.portalEl.style.maxWidth = this.maxWidth;\n\n this.contentDiv = document.createElement('div');\n this.contentDiv.className = 'pds-tooltip__content';\n this.contentDiv.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.contentDiv.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n\n const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');\n const slottedContentContainer = contentSlotWrapper?.querySelector('[slot=\"content\"]') as HTMLElement | null;\n let hasSlottedContent = false;\n\n if (slottedContentContainer !== null) {\n const childrenToClone = Array.from(slottedContentContainer.childNodes);\n\n if (childrenToClone.length > 0) {\n const hasMeaningfulNode = childrenToClone.some(node =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\n );\n\n if (hasMeaningfulNode) {\n hasSlottedContent = true;\n childrenToClone.forEach((node /*, index*/) => {\n if (node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')) {\n this.contentDiv.appendChild(node.cloneNode(true));\n }\n });\n }\n }\n }\n\n if (!hasSlottedContent && typeof this.content === 'string' && this.content.trim() !== '') {\n this.contentDiv.textContent = this.content;\n }\n\n this.portalEl.appendChild(this.contentDiv);\n document.body.appendChild(this.portalEl);\n\n this.repositionPortal().catch(error => {\n console.warn('Failed to position tooltip on creation:', error);\n });\n\n // Use Floating UI's autoUpdate to handle scroll/resize automatically\n if (this.triggerEl && this.portalEl) {\n this.stopAutoUpdate = autoUpdate(\n this.triggerEl,\n this.portalEl,\n () => {\n this.repositionPortal().catch(error => {\n console.warn('Failed to reposition tooltip on auto update:', error);\n });\n }\n );\n }\n\n // Keep only SPA navigation listeners (not handled by autoUpdate)\n window.addEventListener('popstate', this.handleSpaNavigation, true);\n window.addEventListener('hashchange', this.handleSpaNavigation, true);\n\n // Start pathname change detection\n this.pathnameCheckInterval = setInterval(this.checkPathnameChange, 100);\n\n // Add ARIA attribute to trigger, now that portalEl and its ID are confirmed\n if (this.triggerEl !== null && this.portalEl.id !== '') {\n this.triggerEl.setAttribute('aria-describedby', this.portalEl.id);\n }\n }\n\n private removePortal() {\n // Stop Floating UI's autoUpdate\n if (this.stopAutoUpdate !== null) {\n this.stopAutoUpdate();\n this.stopAutoUpdate = null;\n }\n\n // Stop pathname change detection\n if (this.pathnameCheckInterval !== null) {\n clearInterval(this.pathnameCheckInterval);\n this.pathnameCheckInterval = null;\n }\n\n if (this.portalEl !== null) {\n // Remove only SPA navigation listeners (scroll/resize handled by autoUpdate)\n window.removeEventListener('popstate', this.handleSpaNavigation, true);\n window.removeEventListener('hashchange', this.handleSpaNavigation, true);\n\n // Safely remove portal from DOM\n try {\n if (this.portalEl.parentNode) {\n this.portalEl.parentNode.removeChild(this.portalEl);\n }\n } catch (error) {\n // Portal might have already been removed by test cleanup\n console.warn('Portal element could not be removed from DOM:', error);\n }\n\n this.portalEl = null;\n }\n\n // Remove ARIA attribute from trigger\n if (this.triggerEl !== null) {\n this.triggerEl.removeAttribute('aria-describedby');\n }\n this.contentDiv = null;\n }\n\n render() {\n const hostId = this.componentId || undefined;\n\n return (\n <Host id={hostId} class={{ 'pds-tooltip--is-open': this.opened }}>\n <span\n class=\"pds-tooltip__trigger\"\n onMouseEnter={this.handleShow}\n onMouseLeave={this.handleHide}\n /* focusin/out bubble; ensure keyboard users see tooltips */\n onFocusin={this.handleShow as any}\n onFocusout={this.handleHide as any}\n ref={el => this.triggerEl = el}\n >\n <slot />\n </span>\n <div class=\"pds-tooltip__content-slot-wrapper\" hidden>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pine-core.js","sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.38.3 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACpC,EAAE,MAAM,IAAI,GAAiE,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll-DtgUQhjl.js","sources":["src/utils/scroll.ts"],"sourcesContent":["export type RtlScrollType = 'negative' | 'reverse' | 'default';\n\nlet cachedRtlScrollType: RtlScrollType | null = null;\n\n/**\n * Detects how this browser reports scrollLeft for RTL overflow containers.\n * @see https://github.com/othree/jquery.rtl-scroll-type\n */\nexport function getRtlScrollType(): RtlScrollType {\n if (cachedRtlScrollType) {\n return cachedRtlScrollType;\n }\n\n if (typeof document === 'undefined') {\n cachedRtlScrollType = 'default';\n return cachedRtlScrollType;\n }\n\n const probe = document.createElement('div');\n probe.style.width = '100px';\n probe.style.height = '100px';\n probe.style.position = 'absolute';\n probe.style.top = '-1000px';\n probe.style.overflow = 'scroll';\n probe.style.direction = 'rtl';\n\n const inner = document.createElement('div');\n inner.style.width = '200px';\n inner.style.height = '100px';\n probe.appendChild(inner);\n\n document.body.appendChild(probe);\n\n if (probe.scrollLeft > 0) {\n cachedRtlScrollType = 'reverse';\n } else {\n probe.scrollLeft = 1;\n cachedRtlScrollType = probe.scrollLeft === 0 ? 'negative' : 'default';\n }\n\n document.body.removeChild(probe);\n return cachedRtlScrollType;\n}\n\n/** Reset cached RTL scroll type (for tests). */\nexport function resetRtlScrollTypeCache(): void {\n cachedRtlScrollType = null;\n}\n\n/** True when the element's used text direction is RTL (inherits from ancestors). */\nexport function isRtlDirection(element: Element): boolean {\n return getComputedStyle(element).direction === 'rtl';\n}\n\n/**\n * RTL scroll offset from inline-start for a known browser scrollLeft model.\n * @see https://github.com/othree/jquery.rtl-scroll-type#3-types-of-scrollleft-scrollwidth--100\n */\nexport function getRtlScrollOffsetFromStart(\n scrollLeft: number,\n maxScroll: number,\n rtlType: RtlScrollType,\n): number {\n switch (rtlType) {\n case 'negative':\n return Math.max(0, -scrollLeft);\n case 'reverse':\n return Math.max(0, scrollLeft);\n case 'default':\n default:\n return Math.max(0, maxScroll - scrollLeft);\n }\n}\n\n/**\n * Distance scrolled from the inline-start edge (LTR: left, RTL: right).\n */\nexport function getScrollOffsetFromStart(container: HTMLElement): number {\n const { scrollLeft, scrollWidth, clientWidth } = container;\n const maxScroll = Math.max(0, scrollWidth - clientWidth);\n\n if (maxScroll <= 0) {\n return 0;\n }\n\n const isRtl = isRtlDirection(container);\n if (!isRtl) {\n return scrollLeft;\n }\n\n return getRtlScrollOffsetFromStart(scrollLeft, maxScroll, getRtlScrollType());\n}\n\n/** True when the container is scrolled away from its inline-start edge. */\nexport function isScrolledFromInlineStart(container: HTMLElement): boolean {\n return getScrollOffsetFromStart(container) > 0;\n}\n"],"names":[],"mappings":"AAEA,IAAI,mBAAmB,GAAyB,IAAI;AAEpD;;;AAGG;SACa,gBAAgB,GAAA;IAC9B,IAAI,mBAAmB,EAAE;AACvB,QAAA,OAAO,mBAAmB;;AAG5B,IAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,mBAAmB,GAAG,SAAS;AAC/B,QAAA,OAAO,mBAAmB;;IAG5B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,IAAA,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;AAC3B,IAAA,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO;AAC5B,IAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACjC,IAAA,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS;AAC3B,IAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAC/B,IAAA,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK;IAE7B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,IAAA,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;AAC3B,IAAA,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO;AAC5B,IAAA,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AAExB,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAEhC,IAAA,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE;QACxB,mBAAmB,GAAG,SAAS;;SAC1B;AACL,QAAA,KAAK,CAAC,UAAU,GAAG,CAAC;AACpB,QAAA,mBAAmB,GAAG,KAAK,CAAC,UAAU,KAAK,CAAC,GAAG,UAAU,GAAG,SAAS;;AAGvE,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAChC,IAAA,OAAO,mBAAmB;AAC5B;AAOA;AACM,SAAU,cAAc,CAAC,OAAgB,EAAA;IAC7C,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK;AACtD;AAEA;;;AAGG;SACa,2BAA2B,CACzC,UAAkB,EAClB,SAAiB,EACjB,OAAsB,EAAA;IAEtB,QAAQ,OAAO;AACb,QAAA,KAAK,UAAU;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AACjC,QAAA,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC;AAChC,QAAA,KAAK,SAAS;AACd,QAAA;YACE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;;AAEhD;AAEA;;AAEG;AACG,SAAU,wBAAwB,CAAC,SAAsB,EAAA;IAC7D,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,SAAS;AAC1D,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;AAExD,IAAA,IAAI,SAAS,IAAI,CAAC,EAAE;AAClB,QAAA,OAAO,CAAC;;AAGV,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,UAAU;;IAGnB,OAAO,2BAA2B,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC/E;AAEA;AACM,SAAU,yBAAyB,CAAC,SAAsB,EAAA;AAC9D,IAAA,OAAO,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC;AAChD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"truncation-tooltip-Blk4GigP.js","sources":["src/utils/truncation-tooltip.ts"],"sourcesContent":["import { PlacementType } from './types';\nimport {\n computePosition,\n flip,\n offset,\n shift,\n} from '@floating-ui/dom';\n\nexport interface TruncationTooltipOptions {\n /** The host element (for hover/focus listeners and positioning anchor) */\n hostEl: HTMLElement;\n /** The inner element where overflow actually occurs (inside shadow root) */\n contentEl: HTMLElement;\n /** Function that returns the full text to display in the tooltip */\n getTooltipText: () => string;\n /** Tooltip placement preference (default: 'top') */\n placement?: PlacementType;\n}\n\n/** CSS class prefix used for truncation tooltip portal elements */\nconst TOOLTIP_CLASS = 'pds-truncation-tooltip';\n\n/**\n * Injects the truncation tooltip styles into the document head.\n * Uses the same design tokens as pds-tooltip for visual consistency.\n * Only injects once — checks the DOM to avoid duplicates.\n *\n * Z-Index Strategy:\n * Uses --pine-z-index-nuclear (9999) to ensure tooltips appear above all other UI elements.\n * This is necessary because tooltips are portaled to document.body and must overlay:\n * - Modal dialogs\n * - Dropdown menus\n * - Other floating UI elements\n * If you encounter z-index conflicts, ensure your overlays use Pine's z-index tokens\n * or adjust --pine-z-index-nuclear in your theme.\n */\nfunction injectStyles(): void {\n if (document.querySelector('[data-pds-truncation-tooltip]')) return;\n\n const style = document.createElement('style');\n style.setAttribute('data-pds-truncation-tooltip', '');\n style.textContent = `\n .${TOOLTIP_CLASS} {\n position: fixed;\n z-index: var(--pine-z-index-nuclear, 9999);\n }\n .${TOOLTIP_CLASS}__content {\n background-color: var(--pine-color-primary, #1a1a2e);\n border-radius: calc(var(--pine-dimension-xs, 4px) * 1.25);\n box-shadow: var(--pine-box-shadow, 0 2px 8px rgba(0,0,0,0.15));\n color: var(--pine-color-text-primary, #fff);\n cursor: text;\n font-family: var(--pine-font-family-body, sans-serif);\n font-size: var(--pine-font-size-body-sm, 0.875rem);\n letter-spacing: var(--pine-letter-spacing, normal);\n line-height: var(--pine-line-height-body, 1.5);\n max-width: 320px;\n opacity: 0;\n padding: var(--pine-dimension-xs, 4px) calc(var(--pine-dimension-md, 12px) / 2);\n transition: opacity 0.15s ease-in-out, visibility 0.15s ease-in-out;\n user-select: text;\n visibility: hidden;\n width: max-content;\n word-break: break-word;\n }\n .${TOOLTIP_CLASS}--visible .${TOOLTIP_CLASS}__content {\n opacity: 1;\n visibility: visible;\n }\n `;\n document.head.appendChild(style);\n}\n\n/**\n * Checks if an element's content is overflowing horizontally (i.e. text is truncated).\n */\nfunction isOverflowing(el: HTMLElement): boolean {\n return el.scrollWidth > el.clientWidth;\n}\n\n/**\n * Sets up automatic tooltip behavior for a truncated element.\n *\n * When the element's text overflows, hovering or focusing the host element\n * will display a tooltip showing the full text content. The tooltip is\n * rendered as a portal on document.body and positioned with Floating UI.\n *\n * @returns A cleanup function that removes all listeners, observers, and DOM elements.\n */\nexport function setupTruncationTooltip(options: TruncationTooltipOptions): () => void {\n const { hostEl, contentEl, getTooltipText, placement = 'top' } = options;\n\n injectStyles();\n\n let portalEl: HTMLElement | null = null;\n let isHovering = false;\n let isHoveringPortal = false;\n let isFocused = false;\n let hideTimeout: ReturnType<typeof setTimeout> | null = null;\n let resizeObserver: ResizeObserver | null = null;\n let resizeDebounce: ReturnType<typeof setTimeout> | null = null;\n\n // Use ResizeObserver to re-evaluate overflow when the element resizes\n // Debounced to prevent performance issues during rapid window resizing\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(() => {\n if (resizeDebounce) {\n clearTimeout(resizeDebounce);\n }\n resizeDebounce = setTimeout(() => {\n resizeDebounce = null;\n // If tooltip is showing but text no longer overflows, hide it\n if (portalEl && portalEl.isConnected && !isOverflowing(contentEl)) {\n hideTooltip();\n }\n }, 100);\n });\n resizeObserver.observe(contentEl);\n }\n\n function createPortal(): void {\n if (portalEl) return;\n\n const text = getTooltipText();\n if (!text || text.trim() === '') return;\n\n portalEl = document.createElement('div');\n portalEl.className = TOOLTIP_CLASS;\n portalEl.setAttribute('role', 'tooltip');\n portalEl.setAttribute('aria-hidden', 'false');\n\n const contentDiv = document.createElement('div');\n contentDiv.className = `${TOOLTIP_CLASS}__content`;\n contentDiv.textContent = text.trim();\n\n portalEl.appendChild(contentDiv);\n document.body.appendChild(portalEl);\n\n // Allow the user to hover into the tooltip to select/copy text\n portalEl.addEventListener('mouseenter', handlePortalMouseEnter);\n portalEl.addEventListener('mouseleave', handlePortalMouseLeave);\n\n positionTooltip().then(() => {\n if (portalEl) {\n portalEl.classList.add(`${TOOLTIP_CLASS}--visible`);\n }\n });\n }\n\n async function positionTooltip(): Promise<void> {\n if (!portalEl) return;\n\n try {\n const { x, y } = await computePosition(hostEl, portalEl, {\n placement,\n strategy: 'fixed',\n middleware: [offset(4), flip(), shift({ padding: 5 })],\n });\n\n Object.assign(portalEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n } catch {\n // Fallback: position above the element with bounds checking\n if (portalEl) {\n const rect = hostEl.getBoundingClientRect();\n const portalRect = portalEl.getBoundingClientRect();\n const padding = 5;\n\n // Ensure tooltip stays within viewport bounds\n const left = Math.max(padding, Math.min(rect.left, window.innerWidth - portalRect.width - padding));\n const top = Math.max(padding, rect.top - portalRect.height - 8);\n\n portalEl.style.left = `${left}px`;\n portalEl.style.top = `${top}px`;\n }\n }\n }\n\n function removePortal(): void {\n if (portalEl) {\n portalEl.removeEventListener('mouseenter', handlePortalMouseEnter);\n portalEl.removeEventListener('mouseleave', handlePortalMouseLeave);\n portalEl.classList.remove(`${TOOLTIP_CLASS}--visible`);\n // Check if portal is still in the DOM before removing\n if (portalEl.parentNode && portalEl.isConnected) {\n try {\n portalEl.parentNode.removeChild(portalEl);\n } catch (e) {\n // Portal was already removed, ignore error\n }\n }\n portalEl = null;\n }\n }\n\n function cancelHideTimeout(): void {\n if (hideTimeout !== null) {\n clearTimeout(hideTimeout);\n hideTimeout = null;\n }\n }\n\n function showTooltip(): void {\n cancelHideTimeout();\n if (!isOverflowing(contentEl)) return;\n createPortal();\n }\n\n function hideTooltip(): void {\n if (isHovering || isHoveringPortal || isFocused) return;\n removePortal();\n }\n\n /**\n * Schedules tooltip removal after a short delay.\n *\n * The 100ms delay serves two purposes:\n * 1. Gives users time to move their cursor from the truncated text to the tooltip portal\n * without it closing, enabling text selection/copying from the tooltip\n * 2. Prevents flickering when the user briefly moves the cursor during normal interaction\n */\n function scheduleHide(): void {\n cancelHideTimeout();\n hideTimeout = setTimeout(() => {\n hideTimeout = null;\n hideTooltip();\n }, 100);\n }\n\n function handleMouseEnter(): void {\n isHovering = true;\n showTooltip();\n }\n\n function handleMouseLeave(): void {\n isHovering = false;\n scheduleHide();\n }\n\n function handlePortalMouseEnter(): void {\n isHoveringPortal = true;\n cancelHideTimeout();\n }\n\n function handlePortalMouseLeave(): void {\n isHoveringPortal = false;\n scheduleHide();\n }\n\n function handleFocusIn(): void {\n isFocused = true;\n showTooltip();\n }\n\n function handleFocusOut(): void {\n isFocused = false;\n scheduleHide();\n }\n\n hostEl.addEventListener('mouseenter', handleMouseEnter);\n hostEl.addEventListener('mouseleave', handleMouseLeave);\n hostEl.addEventListener('focusin', handleFocusIn);\n hostEl.addEventListener('focusout', handleFocusOut);\n\n // Return cleanup function\n return () => {\n cancelHideTimeout();\n if (resizeDebounce) {\n clearTimeout(resizeDebounce);\n resizeDebounce = null;\n }\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n hostEl.removeEventListener('mouseenter', handleMouseEnter);\n hostEl.removeEventListener('mouseleave', handleMouseLeave);\n hostEl.removeEventListener('focusin', handleFocusIn);\n hostEl.removeEventListener('focusout', handleFocusOut);\n removePortal();\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-tJa4KYNO.js","sources":["src/utils/utils.ts"],"sourcesContent":["import type { EventEmitter } from \"@stencil/core\";\n\nexport const hasShadowDom = (el: Element) => {\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\n// Add shared color normalization utility to unify token handling across components\n/**\n * Normalizes color values to ensure consistent CSS variable usage\n * @param value - Raw token (--token), CSS variable (var(--token)), semantic name, or literal color\n * @param options.semanticMap - Optional mapping of semantic names to CSS variables\n * @returns Normalized color value or undefined for invalid inputs\n */\nexport const normalizeColorValue = (\n value: string | undefined,\n options?: { semanticMap?: Record<string, string> }\n): string | undefined => {\n if (!value) return undefined;\n const trimmed = value.trim();\n // Treat whitespace-only as undefined to avoid invalid CSS values\n if (trimmed === '') return undefined;\n\n // If a semantic map is provided and the value matches a key, return mapped CSS var\n if (options?.semanticMap && options.semanticMap[trimmed]) {\n return options.semanticMap[trimmed];\n }\n\n // If already a CSS var, pass through\n if (trimmed.startsWith('var(')) return trimmed;\n\n // If raw token is provided (e.g., --pine-color-foo), wrap in var(...)\n if (trimmed.startsWith('--')) return `var(${trimmed})`;\n\n // Otherwise treat as literal CSS color value\n return trimmed;\n};\n\nexport const setColor = (color: string, customColors?: Record<string, string>) => {\n // Return an empty object for empty/whitespace/undefined inputs to avoid invalid CSS styles\n if (!color) return {} as Record<string, string>;\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 // Merge defaults with any custom overrides so defaults are preserved\n const semanticMap = { ...defaultColors, ...(customColors || {}) };\n\n // Use the shared normalizer so components accept semantic names, raw tokens, var(...), or literals\n const resolved = normalizeColorValue(color, { semanticMap });\n\n // Ensure we never return an undefined style value; if unresolved, omit the property\n if (!resolved) return {} as Record<string, string>;\n\n return {\n '--color': resolved\n };\n}\n"],"names":[],"mappings":"AAEa,MAAA,YAAY,GAAG,CAAC,EAAW,KAAI;IAC1C,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;AAED;AACA;;;;;AAKG;MACU,mBAAmB,GAAG,CACjC,KAAyB,EACzB,OAAkD,KAC5B;AACtB,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,SAAS;AAC5B,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;;IAE5B,IAAI,OAAO,KAAK,EAAE;AAAE,QAAA,OAAO,SAAS;;AAGpC,IAAA,IAAI,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,WAAW,KAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACxD,QAAA,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;;;AAIrC,IAAA,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,OAAO;;AAG9C,IAAA,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,CAAA,IAAA,EAAO,OAAO,CAAA,CAAA,CAAG;;AAGtD,IAAA,OAAO,OAAO;AAChB;MAEa,QAAQ,GAAG,CAAC,KAAa,EAAE,YAAqC,KAAI;;AAE/E,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAA4B;AAE/C,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;;IAGD,MAAM,WAAW,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAa,CAAK,GAAC,YAAY,IAAI,EAAE,EAAG;;IAGjE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC;;AAG5D,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,EAA4B;IAElD,OAAO;AACL,QAAA,SAAS,EAAE;KACZ;AACH;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"attributes-C0M1gTKv.js","sources":["src/utils/attributes.ts"],"sourcesContent":["export type Attributes = { [key: string]: any };\n\n/**\n * Inherit attributes from the host element\n * @param el - Host element\n * @param attributes - Array of attributes to inherit\n */\nexport const inheritAttributes = (el: Element, attributes: string[] = []) => {\n const attributeObject: Attributes = {};\n\n attributes.forEach((attr) => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n\n if ( value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n}\n\n/**\n * List of available ARIA attributes + `role`.\n * Removed deprecated attributes.\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes\n */\nconst ariaAttributes = [\n 'role',\n 'aria-activedescendant',\n 'aria-atomic',\n 'aria-autocomplete',\n 'aria-braillelabel',\n 'aria-brailleroledescription',\n 'aria-busy',\n 'aria-checked',\n 'aria-colcount',\n 'aria-colindex',\n 'aria-colindextext',\n 'aria-colspan',\n 'aria-controls',\n 'aria-current',\n 'aria-describedby',\n 'aria-description',\n 'aria-details',\n 'aria-disabled',\n 'aria-errormessage',\n 'aria-expanded',\n 'aria-flowto',\n 'aria-haspopup',\n 'aria-hidden',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label',\n 'aria-labelledby',\n 'aria-level',\n 'aria-live',\n 'aria-multiline',\n 'aria-multiselectable',\n 'aria-orientation',\n 'aria-owns',\n 'aria-placeholder',\n 'aria-posinset',\n 'aria-pressed',\n 'aria-readonly',\n 'aria-relevant',\n 'aria-required',\n 'aria-roledescription',\n 'aria-rowcount',\n 'aria-rowindex',\n 'aria-rowindextext',\n 'aria-rowspan',\n 'aria-selected',\n 'aria-setsize',\n 'aria-sort',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n];\n\n\n export const inheritAriaAttributes = (el: Element, ignoreList?: string[]) => {\n let attributesToInherit = ariaAttributes;\n if (ignoreList && ignoreList.length > 0) {\n attributesToInherit = ariaAttributes.filter(attr => !ignoreList.includes(attr));\n }\n\n return inheritAttributes(el, attributesToInherit);\n }\n"],"names":[],"mappings":"AAEA;;;;AAIG;AACU,MAAA,iBAAiB,GAAG,CAAC,EAAW,EAAE,UAAA,GAAuB,EAAE,KAAI;IAC1E,MAAM,eAAe,GAAe,EAAE;AAEtC,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC1B,QAAA,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;AAEnC,YAAA,IAAK,KAAK,KAAK,IAAI,EAAE;gBACnB,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;;AAE/C,YAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;;AAE5B,KAAC,CAAC;AAEF,IAAA,OAAO,eAAe;AACxB;AAEA;;;;AAIG;AACH,MAAM,cAAc,GAAG;IACrB,MAAM;IACN,uBAAuB;IACvB,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,6BAA6B;IAC7B,WAAW;IACX,cAAc;IACd,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,cAAc;IACd,eAAe;IACf,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,eAAe;IACf,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,eAAe;IACf,eAAe;IACf,eAAe;IACf,sBAAsB;IACtB,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,cAAc;IACd,eAAe;IACf,cAAc;IACd,WAAW;IACX,eAAe;IACf,eAAe;IACf,eAAe;IACf,gBAAgB;CACjB;MAGa,qBAAqB,GAAG,CAAC,EAAW,EAAE,UAAqB,KAAI;IAC3E,IAAI,mBAAmB,GAAG,cAAc;AAKxC,IAAA,OAAO,iBAAiB,CAAC,EAAE,EAAE,mBAAmB,CAAC;AAClD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"closest-DnUJodVd.js","sources":["src/utils/closest.ts"],"sourcesContent":["// This helper function is similar to Element.closest(),\n// however it also traverses shadow DOM boundaries.\nexport const closest = (selector: string, el: Element | Document) => {\n return (\n el &&\n (('closest' in el && el.closest(selector)) ||\n closest(selector, (el.getRootNode() as unknown as ShadowRoot).host))\n )\n}\n"],"names":[],"mappings":"AAAA;AACA;MACa,OAAO,GAAG,CAAC,QAAgB,EAAE,EAAsB,KAAI;AAClE,IAAA,QACE,EAAE;SACD,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;AACvC,YAAA,OAAO,CAAC,QAAQ,EAAG,EAAE,CAAC,WAAW,EAA4B,CAAC,IAAI,CAAC,CAAC;AAE1E;;;;"}