@pine-ds/core 3.26.1 → 3.26.4

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 (656) hide show
  1. package/components/mock-pds-modal.js +1 -1
  2. package/components/mock-pds-modal.js.map +1 -1
  3. package/components/pds-button2.js +1 -1
  4. package/components/pds-button2.js.map +1 -1
  5. package/components/pds-checkbox2.js +1 -1
  6. package/components/pds-checkbox2.js.map +1 -1
  7. package/components/pds-combobox.js +3 -3
  8. package/components/pds-combobox.js.map +1 -1
  9. package/components/pds-dropdown-menu.js +1 -1
  10. package/components/pds-dropdown-menu.js.map +1 -1
  11. package/components/pds-filter.js +14 -10
  12. package/components/pds-filter.js.map +1 -1
  13. package/components/pds-input.js +5 -2
  14. package/components/pds-input.js.map +1 -1
  15. package/components/pds-modal.js +1 -1
  16. package/components/pds-modal.js.map +1 -1
  17. package/components/pds-multiselect.js +1 -1
  18. package/components/pds-multiselect.js.map +1 -1
  19. package/components/pds-popover.js +2 -2
  20. package/components/pds-popover.js.map +1 -1
  21. package/components/pds-radio.js +1 -1
  22. package/components/pds-radio.js.map +1 -1
  23. package/components/pds-select.js +1 -1
  24. package/components/pds-select.js.map +1 -1
  25. package/components/pds-switch.js +1 -1
  26. package/components/pds-switch.js.map +1 -1
  27. package/components/pds-table-cell2.js +5 -4
  28. package/components/pds-table-cell2.js.map +1 -1
  29. package/components/pds-table-head-cell2.js +5 -4
  30. package/components/pds-table-head-cell2.js.map +1 -1
  31. package/components/pds-table.js +12 -10
  32. package/components/pds-table.js.map +1 -1
  33. package/components/pds-toast.js +42 -6
  34. package/components/pds-toast.js.map +1 -1
  35. package/components/pds-tooltip.js +1 -1
  36. package/components/pds-tooltip.js.map +1 -1
  37. package/components/scroll.js +78 -0
  38. package/components/scroll.js.map +1 -0
  39. package/dist/cjs/{index-Dlc5O3n_.js → index-BUvWX8u2.js} +3 -3
  40. package/dist/cjs/index-BUvWX8u2.js.map +1 -0
  41. package/dist/cjs/loader.cjs.js +1 -1
  42. package/dist/cjs/mock-pds-modal.cjs.entry.js +2 -2
  43. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  44. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  45. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  46. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  47. package/dist/cjs/pds-box.cjs.entry.js +1 -1
  48. package/dist/cjs/pds-button.cjs.entry.js +2 -2
  49. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  50. package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
  51. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  52. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  53. package/dist/cjs/pds-combobox.cjs.entry.js +4 -4
  54. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  55. package/dist/cjs/pds-container.cjs.entry.js +1 -1
  56. package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
  57. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  58. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  59. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
  60. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +2 -2
  61. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  62. package/dist/cjs/pds-filter.cjs.entry.js +15 -11
  63. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  64. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  65. package/dist/cjs/pds-icon.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-image.cjs.entry.js +1 -1
  67. package/dist/cjs/pds-input.cjs.entry.js +6 -3
  68. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  69. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  70. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  71. package/dist/cjs/pds-modal-content.cjs.entry.js +1 -1
  72. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  73. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  74. package/dist/cjs/pds-modal.cjs.entry.js +2 -2
  75. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
  76. package/dist/cjs/pds-multiselect.cjs.entry.js +2 -2
  77. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
  78. package/dist/cjs/pds-popover.cjs.entry.js +3 -3
  79. package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
  80. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  81. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  82. package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
  83. package/dist/cjs/pds-radio.cjs.entry.js +2 -2
  84. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  85. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  86. package/dist/cjs/pds-select.cjs.entry.js +2 -2
  87. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  88. package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
  89. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-switch.cjs.entry.js +2 -2
  91. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  92. package/dist/cjs/pds-tab.cjs.entry.js +1 -1
  93. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  94. package/dist/cjs/pds-table-cell.cjs.entry.js +6 -5
  95. package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
  96. package/dist/cjs/pds-table-head-cell.cjs.entry.js +6 -5
  97. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  98. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  99. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  100. package/dist/cjs/pds-table.cjs.entry.js +13 -11
  101. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  102. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  103. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  104. package/dist/cjs/pds-text.cjs.entry.js +1 -1
  105. package/dist/cjs/pds-textarea.cjs.entry.js +1 -1
  106. package/dist/cjs/pds-toast.cjs.entry.js +43 -7
  107. package/dist/cjs/pds-toast.entry.cjs.js.map +1 -1
  108. package/dist/cjs/pds-tooltip.cjs.entry.js +2 -2
  109. package/dist/cjs/pds-tooltip.entry.cjs.js.map +1 -1
  110. package/dist/cjs/pine-core.cjs.js +1 -1
  111. package/dist/cjs/scroll-2XcoE_6Q.js +82 -0
  112. package/dist/cjs/scroll-2XcoE_6Q.js.map +1 -0
  113. package/dist/collection/components/pds-button/pds-button.css +1 -1
  114. package/dist/collection/components/pds-checkbox/pds-checkbox.css +10 -6
  115. package/dist/collection/components/pds-combobox/pds-combobox.css +4 -4
  116. package/dist/collection/components/pds-combobox/pds-combobox.js +2 -2
  117. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  118. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +1 -1
  119. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +13 -11
  120. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +13 -9
  121. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +1 -1
  122. package/dist/collection/components/pds-input/pds-input.css +8 -4
  123. package/dist/collection/components/pds-input/pds-input.js +4 -1
  124. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  125. package/dist/collection/components/pds-modal/pds-modal.css +3 -2
  126. package/dist/collection/components/pds-multiselect/pds-multiselect.css +2 -2
  127. package/dist/collection/components/pds-popover/pds-popover.js +2 -2
  128. package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
  129. package/dist/collection/components/pds-radio/pds-radio.css +1 -1
  130. package/dist/collection/components/pds-select/pds-select.css +8 -5
  131. package/dist/collection/components/pds-switch/pds-switch.css +4 -4
  132. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +6 -1
  133. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +4 -3
  134. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +1 -1
  135. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +6 -1
  136. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +4 -3
  137. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  138. package/dist/collection/components/pds-table/pds-table.css +16 -6
  139. package/dist/collection/components/pds-table/pds-table.js +11 -9
  140. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  141. package/dist/collection/components/pds-toast/pds-toast.css +2 -2
  142. package/dist/collection/components/pds-toast/pds-toast.js +41 -5
  143. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
  144. package/dist/collection/components/pds-tooltip/pds-tooltip.css +2 -1
  145. package/dist/collection/utils/scroll.js +78 -0
  146. package/dist/collection/utils/scroll.js.map +1 -0
  147. package/dist/collection/utils/test/axe.js +101 -0
  148. package/dist/collection/utils/test/axe.js.map +1 -0
  149. package/dist/docs.json +1 -1
  150. package/dist/esm/{index-CO9kz-Pi.js → index-B2f84Zog.js} +3 -3
  151. package/dist/esm/index-B2f84Zog.js.map +1 -0
  152. package/dist/esm/loader.js +2 -2
  153. package/dist/esm/mock-pds-modal.entry.js +2 -2
  154. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  155. package/dist/esm/pds-accordion.entry.js +1 -1
  156. package/dist/esm/pds-alert.entry.js +1 -1
  157. package/dist/esm/pds-avatar.entry.js +1 -1
  158. package/dist/esm/pds-box.entry.js +1 -1
  159. package/dist/esm/pds-button.entry.js +2 -2
  160. package/dist/esm/pds-button.entry.js.map +1 -1
  161. package/dist/esm/pds-checkbox.entry.js +2 -2
  162. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  163. package/dist/esm/pds-chip.entry.js +1 -1
  164. package/dist/esm/pds-combobox.entry.js +4 -4
  165. package/dist/esm/pds-combobox.entry.js.map +1 -1
  166. package/dist/esm/pds-container.entry.js +1 -1
  167. package/dist/esm/pds-copytext.entry.js +1 -1
  168. package/dist/esm/pds-divider.entry.js +1 -1
  169. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  170. package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
  171. package/dist/esm/pds-dropdown-menu.entry.js +2 -2
  172. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  173. package/dist/esm/pds-filter.entry.js +15 -11
  174. package/dist/esm/pds-filter.entry.js.map +1 -1
  175. package/dist/esm/pds-filters.entry.js +1 -1
  176. package/dist/esm/pds-icon.entry.js +1 -1
  177. package/dist/esm/pds-image.entry.js +1 -1
  178. package/dist/esm/pds-input.entry.js +6 -3
  179. package/dist/esm/pds-input.entry.js.map +1 -1
  180. package/dist/esm/pds-link.entry.js +1 -1
  181. package/dist/esm/pds-loader.entry.js +1 -1
  182. package/dist/esm/pds-modal-content.entry.js +1 -1
  183. package/dist/esm/pds-modal-footer.entry.js +1 -1
  184. package/dist/esm/pds-modal-header.entry.js +1 -1
  185. package/dist/esm/pds-modal.entry.js +2 -2
  186. package/dist/esm/pds-modal.entry.js.map +1 -1
  187. package/dist/esm/pds-multiselect.entry.js +2 -2
  188. package/dist/esm/pds-multiselect.entry.js.map +1 -1
  189. package/dist/esm/pds-popover.entry.js +3 -3
  190. package/dist/esm/pds-popover.entry.js.map +1 -1
  191. package/dist/esm/pds-progress.entry.js +1 -1
  192. package/dist/esm/pds-property.entry.js +1 -1
  193. package/dist/esm/pds-radio-group.entry.js +1 -1
  194. package/dist/esm/pds-radio.entry.js +2 -2
  195. package/dist/esm/pds-radio.entry.js.map +1 -1
  196. package/dist/esm/pds-row.entry.js +1 -1
  197. package/dist/esm/pds-select.entry.js +2 -2
  198. package/dist/esm/pds-select.entry.js.map +1 -1
  199. package/dist/esm/pds-sortable-item.entry.js +1 -1
  200. package/dist/esm/pds-sortable.entry.js +1 -1
  201. package/dist/esm/pds-switch.entry.js +2 -2
  202. package/dist/esm/pds-switch.entry.js.map +1 -1
  203. package/dist/esm/pds-tab.entry.js +1 -1
  204. package/dist/esm/pds-table-body.entry.js +1 -1
  205. package/dist/esm/pds-table-cell.entry.js +6 -5
  206. package/dist/esm/pds-table-cell.entry.js.map +1 -1
  207. package/dist/esm/pds-table-head-cell.entry.js +6 -5
  208. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  209. package/dist/esm/pds-table-head.entry.js +1 -1
  210. package/dist/esm/pds-table-row.entry.js +1 -1
  211. package/dist/esm/pds-table.entry.js +13 -11
  212. package/dist/esm/pds-table.entry.js.map +1 -1
  213. package/dist/esm/pds-tabpanel.entry.js +1 -1
  214. package/dist/esm/pds-tabs.entry.js +1 -1
  215. package/dist/esm/pds-text.entry.js +1 -1
  216. package/dist/esm/pds-textarea.entry.js +1 -1
  217. package/dist/esm/pds-toast.entry.js +43 -7
  218. package/dist/esm/pds-toast.entry.js.map +1 -1
  219. package/dist/esm/pds-tooltip.entry.js +2 -2
  220. package/dist/esm/pds-tooltip.entry.js.map +1 -1
  221. package/dist/esm/pine-core.js +2 -2
  222. package/dist/esm/scroll-DtgUQhjl.js +78 -0
  223. package/dist/esm/scroll-DtgUQhjl.js.map +1 -0
  224. package/dist/esm-es5/index-B2f84Zog.js +3 -0
  225. package/dist/esm-es5/index-B2f84Zog.js.map +1 -0
  226. package/dist/esm-es5/loader.js +1 -1
  227. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  228. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
  229. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  230. package/dist/esm-es5/pds-alert.entry.js +1 -1
  231. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  232. package/dist/esm-es5/pds-box.entry.js +1 -1
  233. package/dist/esm-es5/pds-button.entry.js +1 -1
  234. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  235. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  236. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  237. package/dist/esm-es5/pds-chip.entry.js +1 -1
  238. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  239. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  240. package/dist/esm-es5/pds-container.entry.js +1 -1
  241. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  242. package/dist/esm-es5/pds-divider.entry.js +1 -1
  243. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  244. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  245. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  246. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  247. package/dist/esm-es5/pds-filter.entry.js +1 -1
  248. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  249. package/dist/esm-es5/pds-filters.entry.js +1 -1
  250. package/dist/esm-es5/pds-icon.entry.js +1 -1
  251. package/dist/esm-es5/pds-image.entry.js +1 -1
  252. package/dist/esm-es5/pds-input.entry.js +1 -1
  253. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  254. package/dist/esm-es5/pds-link.entry.js +1 -1
  255. package/dist/esm-es5/pds-loader.entry.js +1 -1
  256. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  257. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  258. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  259. package/dist/esm-es5/pds-modal.entry.js +1 -1
  260. package/dist/esm-es5/pds-modal.entry.js.map +1 -1
  261. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  262. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -1
  263. package/dist/esm-es5/pds-popover.entry.js +1 -1
  264. package/dist/esm-es5/pds-popover.entry.js.map +1 -1
  265. package/dist/esm-es5/pds-progress.entry.js +1 -1
  266. package/dist/esm-es5/pds-property.entry.js +1 -1
  267. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  268. package/dist/esm-es5/pds-radio.entry.js +1 -1
  269. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  270. package/dist/esm-es5/pds-row.entry.js +1 -1
  271. package/dist/esm-es5/pds-select.entry.js +1 -1
  272. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  273. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  274. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  275. package/dist/esm-es5/pds-switch.entry.js +1 -1
  276. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  277. package/dist/esm-es5/pds-tab.entry.js +1 -1
  278. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  279. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  280. package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
  281. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  282. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  283. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  284. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  285. package/dist/esm-es5/pds-table.entry.js +1 -1
  286. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  287. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  288. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  289. package/dist/esm-es5/pds-text.entry.js +1 -1
  290. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  291. package/dist/esm-es5/pds-toast.entry.js +1 -1
  292. package/dist/esm-es5/pds-toast.entry.js.map +1 -1
  293. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  294. package/dist/esm-es5/pds-tooltip.entry.js.map +1 -1
  295. package/dist/esm-es5/pine-core.js +1 -1
  296. package/dist/esm-es5/scroll-DtgUQhjl.js +2 -0
  297. package/dist/esm-es5/scroll-DtgUQhjl.js.map +1 -0
  298. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  299. package/dist/pine-core/p-037dbdcd.system.entry.js +2 -0
  300. package/dist/pine-core/{p-fd6e7155.entry.js → p-06713f25.entry.js} +2 -2
  301. package/dist/pine-core/{p-4710c59d.entry.js → p-0977b2dd.entry.js} +2 -2
  302. package/dist/pine-core/{p-c5dc1e2d.system.entry.js → p-099e9f9b.system.entry.js} +2 -2
  303. package/dist/pine-core/p-0a7115f0.entry.js +2 -0
  304. package/dist/pine-core/{p-88c2001b.entry.js.map → p-0a7115f0.entry.js.map} +1 -1
  305. package/dist/pine-core/{p-2c7f3d5e.system.entry.js → p-0c1ab384.system.entry.js} +2 -2
  306. package/dist/pine-core/{p-2c2d2080.system.entry.js → p-0dee7449.system.entry.js} +2 -2
  307. package/dist/pine-core/{p-128a483e.system.entry.js → p-102d0dd6.system.entry.js} +2 -2
  308. package/dist/pine-core/p-10ebecc5.entry.js +2 -0
  309. package/dist/pine-core/{p-d90f7fe4.entry.js.map → p-10ebecc5.entry.js.map} +1 -1
  310. package/dist/pine-core/{p-0bf1fee1.entry.js → p-1598f3af.entry.js} +2 -2
  311. package/dist/pine-core/{p-3524e30c.system.entry.js → p-1c32102e.system.entry.js} +2 -2
  312. package/dist/pine-core/p-2258b31b.system.entry.js +2 -0
  313. package/dist/pine-core/{p-24f9a03b.system.entry.js.map → p-2258b31b.system.entry.js.map} +1 -1
  314. package/dist/pine-core/{p-c424a27a.system.entry.js → p-275fa74c.system.entry.js} +2 -2
  315. package/dist/pine-core/p-27fc0737.system.entry.js +2 -0
  316. package/dist/pine-core/{p-c746c9ad.system.entry.js.map → p-27fc0737.system.entry.js.map} +1 -1
  317. package/dist/pine-core/p-32ad2807.system.entry.js +2 -0
  318. package/dist/pine-core/{p-cb733c9c.system.entry.js.map → p-32ad2807.system.entry.js.map} +1 -1
  319. package/dist/pine-core/p-33544ed1.system.entry.js +2 -0
  320. package/dist/pine-core/{p-617dc902.system.entry.js.map → p-33544ed1.system.entry.js.map} +1 -1
  321. package/dist/pine-core/{p-a713fedd.system.entry.js → p-34763aae.system.entry.js} +2 -2
  322. package/dist/pine-core/{p-ed781905.system.entry.js → p-36070380.system.entry.js} +2 -2
  323. package/dist/pine-core/{p-8b997cb3.entry.js → p-3625bc45.entry.js} +2 -2
  324. package/dist/pine-core/{p-205d8c56.entry.js → p-3b087f24.entry.js} +2 -2
  325. package/dist/pine-core/p-3f66c070.entry.js +2 -0
  326. package/dist/pine-core/{p-b63c7247.entry.js.map → p-3f66c070.entry.js.map} +1 -1
  327. package/dist/pine-core/p-407aad2b.system.entry.js +2 -0
  328. package/dist/pine-core/{p-4993f30e.system.entry.js.map → p-407aad2b.system.entry.js.map} +1 -1
  329. package/dist/pine-core/p-44ca9b92.entry.js +2 -0
  330. package/dist/pine-core/{p-ec974e1d.entry.js.map → p-44ca9b92.entry.js.map} +1 -1
  331. package/dist/pine-core/{p-26aa3195.entry.js → p-476db791.entry.js} +2 -2
  332. package/dist/pine-core/{p-9d7f17a4.system.entry.js → p-4780403d.system.entry.js} +2 -2
  333. package/dist/pine-core/p-48ac6873.entry.js +2 -0
  334. package/dist/pine-core/{p-61674647.entry.js.map → p-48ac6873.entry.js.map} +1 -1
  335. package/dist/pine-core/p-4FBDaIH3.system.js.map +1 -0
  336. package/dist/pine-core/{p-06fbdc35.entry.js → p-4ede20e6.entry.js} +2 -2
  337. package/dist/pine-core/{p-f4662c9d.system.entry.js → p-4f2a48cb.system.entry.js} +2 -2
  338. package/dist/pine-core/{p-f4662c9d.system.entry.js.map → p-4f2a48cb.system.entry.js.map} +1 -1
  339. package/dist/pine-core/{p-1768ad5e.entry.js → p-4f440dd4.entry.js} +2 -2
  340. package/dist/pine-core/{p-0mArGKTT.system.js.map → p-4jrX5aRd.system.js.map} +1 -1
  341. package/dist/pine-core/p-51e47e6e.system.entry.js +2 -0
  342. package/dist/pine-core/{p-13a814c0.system.entry.js.map → p-51e47e6e.system.entry.js.map} +1 -1
  343. package/dist/pine-core/{p-a76a454f.system.entry.js → p-52411757.system.entry.js} +2 -2
  344. package/dist/pine-core/p-557005a0.entry.js +2 -0
  345. package/dist/pine-core/p-557005a0.entry.js.map +1 -0
  346. package/dist/pine-core/{p-519d44b8.entry.js → p-5e117b98.entry.js} +2 -2
  347. package/dist/pine-core/p-639012b9.system.entry.js +2 -0
  348. package/dist/pine-core/{p-a12e38aa.system.entry.js.map → p-639012b9.system.entry.js.map} +1 -1
  349. package/dist/pine-core/{p-3c864e3d.entry.js → p-643b01ad.entry.js} +2 -2
  350. package/dist/pine-core/p-6623b257.system.entry.js +2 -0
  351. package/dist/pine-core/{p-7bc34bce.system.entry.js.map → p-6623b257.system.entry.js.map} +1 -1
  352. package/dist/pine-core/{p-5552ca6b.system.entry.js → p-74ff4d96.system.entry.js} +2 -2
  353. package/dist/pine-core/{p-952b41e5.system.entry.js → p-77327e1b.system.entry.js} +2 -2
  354. package/dist/pine-core/{p-0561744f.entry.js → p-774ecbd4.entry.js} +2 -2
  355. package/dist/pine-core/{p-932f4860.entry.js → p-7926dc93.entry.js} +2 -2
  356. package/dist/pine-core/p-7a3eccef.entry.js +2 -0
  357. package/dist/pine-core/{p-be76de9e.entry.js.map → p-7a3eccef.entry.js.map} +1 -1
  358. package/dist/pine-core/{p-1fd52c1b.system.entry.js → p-7acb131c.system.entry.js} +2 -2
  359. package/dist/pine-core/p-81a3e32b.entry.js +2 -0
  360. package/dist/pine-core/p-81a3e32b.entry.js.map +1 -0
  361. package/dist/pine-core/{p-f30bde36.system.entry.js → p-848763b6.system.entry.js} +2 -2
  362. package/dist/pine-core/{p-90126a46.system.entry.js → p-85e889c3.system.entry.js} +3 -3
  363. package/dist/pine-core/{p-bf1ab568.system.entry.js → p-8669e0e3.system.entry.js} +2 -2
  364. package/dist/pine-core/{p-4cf4558e.entry.js → p-8735cb58.entry.js} +2 -2
  365. package/dist/pine-core/p-8b3aeaf9.system.entry.js +2 -0
  366. package/dist/pine-core/p-8b3aeaf9.system.entry.js.map +1 -0
  367. package/dist/pine-core/p-8b7aa53d.entry.js +2 -0
  368. package/dist/pine-core/{p-bb4bb3a7.entry.js.map → p-8b7aa53d.entry.js.map} +1 -1
  369. package/dist/pine-core/p-8c97fcb1.entry.js +2 -0
  370. package/dist/pine-core/{p-8d0c1f6d.entry.js.map → p-8c97fcb1.entry.js.map} +1 -1
  371. package/dist/pine-core/p-8c9f8ca6.entry.js +2 -0
  372. package/dist/pine-core/p-8c9f8ca6.entry.js.map +1 -0
  373. package/dist/pine-core/{p-2ca648d8.system.entry.js → p-904e8d9d.system.entry.js} +2 -2
  374. package/dist/pine-core/{p-5eb9a3e2.entry.js → p-91bea052.entry.js} +2 -2
  375. package/dist/pine-core/p-9230df2a.system.entry.js +2 -0
  376. package/dist/pine-core/{p-c7246fe4.system.entry.js.map → p-9230df2a.system.entry.js.map} +1 -1
  377. package/dist/pine-core/p-94a09b06.entry.js +2 -0
  378. package/dist/pine-core/p-94a09b06.entry.js.map +1 -0
  379. package/dist/pine-core/p-94d4d1de.entry.js +3 -0
  380. package/dist/pine-core/{p-127a84bf.entry.js.map → p-94d4d1de.entry.js.map} +1 -1
  381. package/dist/pine-core/{p-13821696.entry.js → p-984db3fc.entry.js} +2 -2
  382. package/dist/pine-core/{p-69221099.system.entry.js → p-988d1723.system.entry.js} +2 -2
  383. package/dist/pine-core/p-98dabbbf.entry.js +2 -0
  384. package/dist/pine-core/{p-61c885c7.entry.js.map → p-98dabbbf.entry.js.map} +1 -1
  385. package/dist/pine-core/{p-0f037132.system.entry.js → p-9a3c9d15.system.entry.js} +2 -2
  386. package/dist/pine-core/{p-63fd14b1.system.entry.js → p-9b3aedeb.system.entry.js} +2 -2
  387. package/dist/pine-core/{p-94fde072.system.entry.js → p-9ce56712.system.entry.js} +2 -2
  388. package/dist/pine-core/p-9e48d1ea.system.entry.js +2 -0
  389. package/dist/pine-core/{p-93b379c2.system.entry.js.map → p-9e48d1ea.system.entry.js.map} +1 -1
  390. package/dist/pine-core/{p-5df670e9.entry.js → p-9e5c58c6.entry.js} +3 -3
  391. package/dist/pine-core/p-B-I9BXj1.system.js.map +1 -0
  392. package/dist/pine-core/{p-A6hgZgB9.system.js.map → p-B-nnQT8K.system.js.map} +1 -1
  393. package/dist/pine-core/{p-CO9kz-Pi.js → p-B2f84Zog.js} +3 -3
  394. package/dist/pine-core/p-B2f84Zog.js.map +1 -0
  395. package/dist/pine-core/{p-MtzjfzAh.system.js.map → p-BC7kndqW.system.js.map} +1 -1
  396. package/dist/pine-core/p-BFAhunk3.system.js.map +1 -0
  397. package/dist/pine-core/{p-D2CTdoEq.system.js.map → p-BJQiqlL7.system.js.map} +1 -1
  398. package/dist/pine-core/{p-DWrLi0lj.system.js.map → p-BLg534X3.system.js.map} +1 -1
  399. package/dist/pine-core/{p-B2EsHCoA.system.js.map → p-BT-iITx_.system.js.map} +1 -1
  400. package/dist/pine-core/p-BTsajr3h.system.js.map +1 -0
  401. package/dist/pine-core/{p-5MZ-y5Ap.system.js.map → p-BcCpTdwz.system.js.map} +1 -1
  402. package/dist/pine-core/p-Bkk7A0W9.system.js.map +1 -0
  403. package/dist/pine-core/{p-CeUxuw8r.system.js.map → p-BmOvsRx7.system.js.map} +1 -1
  404. package/dist/pine-core/{p-sB8ZB68H.system.js.map → p-BtfqzsXS.system.js.map} +1 -1
  405. package/dist/pine-core/p-BvJkwltO.system.js.map +1 -0
  406. package/dist/pine-core/{p-DxU4fApL.system.js.map → p-BvV4-w8H.system.js.map} +1 -1
  407. package/dist/pine-core/{p-1S7sNRrT.system.js.map → p-C3TuSlI7.system.js.map} +1 -1
  408. package/dist/pine-core/p-C5jXV4WJ.system.js.map +1 -0
  409. package/dist/pine-core/p-C5qxTQb1.system.js.map +1 -0
  410. package/dist/pine-core/p-C6yvFUy3.system.js.map +1 -0
  411. package/dist/pine-core/{p-Cng7Mtub.system.js.map → p-CCRLZO4N.system.js.map} +1 -1
  412. package/dist/pine-core/{p-Bm0i20zh.system.js.map → p-CD-PjU09.system.js.map} +1 -1
  413. package/dist/pine-core/{p-BYHypIS4.system.js.map → p-CI-oL5TR.system.js.map} +1 -1
  414. package/dist/pine-core/{p-DkENjswB.system.js.map → p-CIbXcB4O.system.js.map} +1 -1
  415. package/dist/pine-core/p-CIe6-SsT.system.js.map +1 -0
  416. package/dist/pine-core/{p-D4yK_qVB.system.js.map → p-CSVND2Gt.system.js.map} +1 -1
  417. package/dist/pine-core/{p-BD9ysh2r.system.js.map → p-CUEE9EMe.system.js.map} +1 -1
  418. package/dist/pine-core/{p-DFd5KJNr.system.js.map → p-CXImmjF5.system.js.map} +1 -1
  419. package/dist/pine-core/p-C_g3FnvJ.system.js.map +1 -0
  420. package/dist/pine-core/p-CmNZDo8q.system.js.map +1 -0
  421. package/dist/pine-core/p-Cn98QWqb.system.js.map +1 -0
  422. package/dist/pine-core/{p-Djhe2zUv.system.js → p-Cqgvmo2o.system.js} +2 -2
  423. package/dist/pine-core/{p-Djhe2zUv.system.js.map → p-Cqgvmo2o.system.js.map} +1 -1
  424. package/dist/pine-core/{p-4d6YziBa.system.js.map → p-Cu24FhMY.system.js.map} +1 -1
  425. package/dist/pine-core/{p-DUvF_h4G.system.js.map → p-CwEjYXkp.system.js.map} +1 -1
  426. package/dist/pine-core/p-DA3fC_kX.system.js.map +1 -0
  427. package/dist/pine-core/{p-M5aqIQje.system.js.map → p-DG_z5J3G.system.js.map} +1 -1
  428. package/dist/pine-core/{p-BLil033h.system.js.map → p-DL3JCnpO.system.js.map} +1 -1
  429. package/dist/pine-core/{p-BMWZMLrp.system.js.map → p-DSlRwx2e.system.js.map} +1 -1
  430. package/dist/pine-core/p-DVra397g.system.js +2 -0
  431. package/dist/pine-core/p-DVra397g.system.js.map +1 -0
  432. package/dist/pine-core/{p-B1bh2Wvv.system.js → p-DYlgS5d7.system.js} +3 -3
  433. package/dist/pine-core/p-DYlgS5d7.system.js.map +1 -0
  434. package/dist/pine-core/{p-B7_7oNQG.system.js.map → p-DeVgpUr5.system.js.map} +1 -1
  435. package/dist/pine-core/p-DtgUQhjl.js +2 -0
  436. package/dist/pine-core/p-DtgUQhjl.js.map +1 -0
  437. package/dist/pine-core/{p-C08fY97u.system.js.map → p-Dxrjs-vy.system.js.map} +1 -1
  438. package/dist/pine-core/{p-IrhpBtZN.system.js.map → p-H7VDsgsr.system.js.map} +1 -1
  439. package/dist/pine-core/p-JwuGXyPc.system.js.map +1 -0
  440. package/dist/pine-core/{p-iOyU21aP.system.js.map → p-U1PewsWZ.system.js.map} +1 -1
  441. package/dist/pine-core/{p-BjaDq65J.system.js.map → p-UILRZV99.system.js.map} +1 -1
  442. package/dist/pine-core/p-V-ORMWaS.system.js.map +1 -0
  443. package/dist/pine-core/p-W7E5TRNL.system.js.map +1 -0
  444. package/dist/pine-core/p-Yfy85hdp.system.js.map +1 -0
  445. package/dist/pine-core/{p-BuXqrZlE.system.js.map → p-ZrPaY2bh.system.js.map} +1 -1
  446. package/dist/pine-core/{p-dc724dee.entry.js → p-a30b386f.entry.js} +2 -2
  447. package/dist/pine-core/{p-b272656d.system.entry.js → p-a5014407.system.entry.js} +2 -2
  448. package/dist/pine-core/{p-b117b00a.system.entry.js → p-a695ff4c.system.entry.js} +2 -2
  449. package/dist/pine-core/{p-7d9f7018.entry.js → p-a8c49f8e.entry.js} +2 -2
  450. package/dist/pine-core/p-ae74a4b6.system.entry.js +2 -0
  451. package/dist/pine-core/{p-00e487c4.system.entry.js.map → p-ae74a4b6.system.entry.js.map} +1 -1
  452. package/dist/pine-core/p-b1cde22a.entry.js +2 -0
  453. package/dist/pine-core/{p-4beb8ae5.entry.js.map → p-b1cde22a.entry.js.map} +1 -1
  454. package/dist/pine-core/{p-779c4bd5.system.entry.js → p-b9340fb1.system.entry.js} +2 -2
  455. package/dist/pine-core/{p-35d9e3c8.system.entry.js → p-b9fcc3f8.system.entry.js} +2 -2
  456. package/dist/pine-core/{p-xKyEDmi0.system.js.map → p-bIvjoz7p.system.js.map} +1 -1
  457. package/dist/pine-core/{p-939ae09f.entry.js → p-bc8f61d1.entry.js} +2 -2
  458. package/dist/pine-core/{p-e7e166f2.entry.js → p-bea013d1.entry.js} +2 -2
  459. package/dist/pine-core/{p-9e8b71ed.system.entry.js → p-c026479a.system.entry.js} +2 -2
  460. package/dist/pine-core/p-c9784d20.system.entry.js +4 -0
  461. package/dist/pine-core/{p-ea94b002.system.entry.js.map → p-c9784d20.system.entry.js.map} +1 -1
  462. package/dist/pine-core/p-c9b06db1.system.entry.js +2 -0
  463. package/dist/pine-core/p-c9b06db1.system.entry.js.map +1 -0
  464. package/dist/pine-core/{p-8731836c.entry.js → p-cab14421.entry.js} +2 -2
  465. package/dist/pine-core/{p-b8ca7bca.entry.js → p-d5fcdcdd.entry.js} +2 -2
  466. package/dist/pine-core/p-d86e20b5.system.entry.js +2 -0
  467. package/dist/pine-core/p-d86e20b5.system.entry.js.map +1 -0
  468. package/dist/pine-core/p-d9354ad3.system.entry.js +2 -0
  469. package/dist/pine-core/p-d9354ad3.system.entry.js.map +1 -0
  470. package/dist/pine-core/{p-6ff1d23e.entry.js → p-dab76f15.entry.js} +2 -2
  471. package/dist/pine-core/p-db16d1fe.entry.js +2 -0
  472. package/dist/pine-core/p-db16d1fe.entry.js.map +1 -0
  473. package/dist/pine-core/{p-cea4bfaa.system.entry.js → p-db63f83b.system.entry.js} +2 -2
  474. package/dist/pine-core/{p-0d4b2bbc.system.entry.js → p-dd3ea74e.system.entry.js} +2 -2
  475. package/dist/pine-core/p-ddb48534.entry.js +2 -0
  476. package/dist/pine-core/{p-54e967ca.entry.js.map → p-ddb48534.entry.js.map} +1 -1
  477. package/dist/pine-core/{p-c7cab4ca.entry.js → p-de9f43b6.entry.js} +2 -2
  478. package/dist/pine-core/{p-c7cab4ca.entry.js.map → p-de9f43b6.entry.js.map} +1 -1
  479. package/dist/pine-core/p-e25da259.entry.js +2 -0
  480. package/dist/pine-core/{p-253e2bfd.system.entry.js → p-e288dc89.system.entry.js} +2 -2
  481. package/dist/pine-core/{p-6acc2e5b.system.entry.js → p-ea5c42b8.system.entry.js} +2 -2
  482. package/dist/pine-core/{p-42d83b1f.entry.js → p-ed5d5be6.entry.js} +2 -2
  483. package/dist/pine-core/{p-f924994c.entry.js → p-ef081f0f.entry.js} +2 -2
  484. package/dist/pine-core/{p-8b8d1b07.entry.js → p-f09c5021.entry.js} +2 -2
  485. package/dist/pine-core/{p-e0862ab5.entry.js → p-f201cf57.entry.js} +2 -2
  486. package/dist/pine-core/{p-bd277581.entry.js → p-f20ab351.entry.js} +2 -2
  487. package/dist/pine-core/{p-2c48e33c.entry.js → p-f2798581.entry.js} +2 -2
  488. package/dist/pine-core/{p-fbd8a4ac.entry.js → p-f2ca0cf8.entry.js} +2 -2
  489. package/dist/pine-core/{p-c299c019.system.entry.js → p-f77fad86.system.entry.js} +2 -2
  490. package/dist/pine-core/p-ff472f7c.system.entry.js +2 -0
  491. package/dist/pine-core/p-ff472f7c.system.entry.js.map +1 -0
  492. package/dist/pine-core/{p-9e073662.entry.js → p-ff5b2c90.entry.js} +2 -2
  493. package/dist/pine-core/{p-CoxD4Fzc.system.js.map → p-g4mFEadi.system.js.map} +1 -1
  494. package/dist/pine-core/{p-VWcPIY1a.system.js.map → p-vLxlRu4_.system.js.map} +1 -1
  495. package/dist/pine-core/{p-BtXGBfVh.system.js.map → p-ziMh7dwl.system.js.map} +1 -1
  496. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  497. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  498. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  499. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  500. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  501. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  502. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
  503. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
  504. package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
  505. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  506. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  507. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  508. package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
  509. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  510. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  511. package/dist/pine-core/pds-toast.entry.esm.js.map +1 -1
  512. package/dist/pine-core/pds-tooltip.entry.esm.js.map +1 -1
  513. package/dist/pine-core/pine-core.css +1 -1
  514. package/dist/pine-core/pine-core.esm.js +1 -1
  515. package/dist/pine-core/pine-core.js +1 -1
  516. package/dist/types/components/pds-table/pds-table.d.ts +1 -1
  517. package/dist/types/components/pds-toast/pds-toast.d.ts +4 -0
  518. package/dist/types/utils/scroll.d.ts +21 -0
  519. package/dist/types/utils/test/axe.d.ts +80 -0
  520. package/hydrate/index.js +168 -51
  521. package/hydrate/index.mjs +168 -51
  522. package/package.json +3 -2
  523. package/dist/cjs/index-Dlc5O3n_.js.map +0 -1
  524. package/dist/esm/index-CO9kz-Pi.js.map +0 -1
  525. package/dist/esm-es5/index-CO9kz-Pi.js +0 -3
  526. package/dist/esm-es5/index-CO9kz-Pi.js.map +0 -1
  527. package/dist/pine-core/p--fC0IwVR.system.js.map +0 -1
  528. package/dist/pine-core/p-00e487c4.system.entry.js +0 -2
  529. package/dist/pine-core/p-05771ef2.system.entry.js +0 -2
  530. package/dist/pine-core/p-0fefe6ef.entry.js +0 -2
  531. package/dist/pine-core/p-127a84bf.entry.js +0 -3
  532. package/dist/pine-core/p-13a814c0.system.entry.js +0 -2
  533. package/dist/pine-core/p-1c26a838.system.entry.js +0 -2
  534. package/dist/pine-core/p-1c26a838.system.entry.js.map +0 -1
  535. package/dist/pine-core/p-24f9a03b.system.entry.js +0 -2
  536. package/dist/pine-core/p-31b51eae.entry.js +0 -2
  537. package/dist/pine-core/p-31b51eae.entry.js.map +0 -1
  538. package/dist/pine-core/p-4768b52b.system.entry.js +0 -2
  539. package/dist/pine-core/p-4768b52b.system.entry.js.map +0 -1
  540. package/dist/pine-core/p-4993f30e.system.entry.js +0 -2
  541. package/dist/pine-core/p-4beb8ae5.entry.js +0 -2
  542. package/dist/pine-core/p-4d3122ff.system.entry.js +0 -2
  543. package/dist/pine-core/p-4d3122ff.system.entry.js.map +0 -1
  544. package/dist/pine-core/p-54e967ca.entry.js +0 -2
  545. package/dist/pine-core/p-61674647.entry.js +0 -2
  546. package/dist/pine-core/p-617dc902.system.entry.js +0 -2
  547. package/dist/pine-core/p-61c885c7.entry.js +0 -2
  548. package/dist/pine-core/p-673dd006.system.entry.js +0 -2
  549. package/dist/pine-core/p-673dd006.system.entry.js.map +0 -1
  550. package/dist/pine-core/p-7bc34bce.system.entry.js +0 -2
  551. package/dist/pine-core/p-88c2001b.entry.js +0 -2
  552. package/dist/pine-core/p-8a2433ba.entry.js +0 -2
  553. package/dist/pine-core/p-8a2433ba.entry.js.map +0 -1
  554. package/dist/pine-core/p-8d0c1f6d.entry.js +0 -2
  555. package/dist/pine-core/p-93b379c2.system.entry.js +0 -2
  556. package/dist/pine-core/p-AcWjVzMO.system.js.map +0 -1
  557. package/dist/pine-core/p-B1bh2Wvv.system.js.map +0 -1
  558. package/dist/pine-core/p-B8BcpYlQ.system.js.map +0 -1
  559. package/dist/pine-core/p-BFO0Qv1J.system.js.map +0 -1
  560. package/dist/pine-core/p-BHXH-Irt.system.js.map +0 -1
  561. package/dist/pine-core/p-BvEsTKJw.system.js.map +0 -1
  562. package/dist/pine-core/p-BvlpNhcl.system.js.map +0 -1
  563. package/dist/pine-core/p-BwqSEhik.system.js.map +0 -1
  564. package/dist/pine-core/p-C7zvuvWK.system.js.map +0 -1
  565. package/dist/pine-core/p-CHUAwdle.system.js.map +0 -1
  566. package/dist/pine-core/p-CIRw0SFV.system.js.map +0 -1
  567. package/dist/pine-core/p-CNgeZOJ8.system.js.map +0 -1
  568. package/dist/pine-core/p-CO9kz-Pi.js.map +0 -1
  569. package/dist/pine-core/p-D0Q8TzYd.system.js.map +0 -1
  570. package/dist/pine-core/p-D504xCQQ.system.js.map +0 -1
  571. package/dist/pine-core/p-DDgPxucg.system.js.map +0 -1
  572. package/dist/pine-core/p-DMxjKSUq.system.js.map +0 -1
  573. package/dist/pine-core/p-NzmeWArw.system.js.map +0 -1
  574. package/dist/pine-core/p-UYm57tw3.system.js.map +0 -1
  575. package/dist/pine-core/p-a12e38aa.system.entry.js +0 -2
  576. package/dist/pine-core/p-b63c7247.entry.js +0 -2
  577. package/dist/pine-core/p-bb4bb3a7.entry.js +0 -2
  578. package/dist/pine-core/p-be76de9e.entry.js +0 -2
  579. package/dist/pine-core/p-c5f4d4c0.entry.js +0 -2
  580. package/dist/pine-core/p-c5f4d4c0.entry.js.map +0 -1
  581. package/dist/pine-core/p-c7246fe4.system.entry.js +0 -2
  582. package/dist/pine-core/p-c746c9ad.system.entry.js +0 -2
  583. package/dist/pine-core/p-cb733c9c.system.entry.js +0 -2
  584. package/dist/pine-core/p-d90f7fe4.entry.js +0 -2
  585. package/dist/pine-core/p-da50a223.entry.js +0 -2
  586. package/dist/pine-core/p-da50a223.entry.js.map +0 -1
  587. package/dist/pine-core/p-dd9888e9.entry.js +0 -2
  588. package/dist/pine-core/p-dd9888e9.entry.js.map +0 -1
  589. package/dist/pine-core/p-ea94b002.system.entry.js +0 -4
  590. package/dist/pine-core/p-ebf96abc.system.entry.js +0 -2
  591. package/dist/pine-core/p-ebf96abc.system.entry.js.map +0 -1
  592. package/dist/pine-core/p-ec974e1d.entry.js +0 -2
  593. /package/dist/pine-core/{p-05771ef2.system.entry.js.map → p-037dbdcd.system.entry.js.map} +0 -0
  594. /package/dist/pine-core/{p-fd6e7155.entry.js.map → p-06713f25.entry.js.map} +0 -0
  595. /package/dist/pine-core/{p-4710c59d.entry.js.map → p-0977b2dd.entry.js.map} +0 -0
  596. /package/dist/pine-core/{p-c5dc1e2d.system.entry.js.map → p-099e9f9b.system.entry.js.map} +0 -0
  597. /package/dist/pine-core/{p-2c7f3d5e.system.entry.js.map → p-0c1ab384.system.entry.js.map} +0 -0
  598. /package/dist/pine-core/{p-2c2d2080.system.entry.js.map → p-0dee7449.system.entry.js.map} +0 -0
  599. /package/dist/pine-core/{p-128a483e.system.entry.js.map → p-102d0dd6.system.entry.js.map} +0 -0
  600. /package/dist/pine-core/{p-0bf1fee1.entry.js.map → p-1598f3af.entry.js.map} +0 -0
  601. /package/dist/pine-core/{p-3524e30c.system.entry.js.map → p-1c32102e.system.entry.js.map} +0 -0
  602. /package/dist/pine-core/{p-c424a27a.system.entry.js.map → p-275fa74c.system.entry.js.map} +0 -0
  603. /package/dist/pine-core/{p-a713fedd.system.entry.js.map → p-34763aae.system.entry.js.map} +0 -0
  604. /package/dist/pine-core/{p-ed781905.system.entry.js.map → p-36070380.system.entry.js.map} +0 -0
  605. /package/dist/pine-core/{p-8b997cb3.entry.js.map → p-3625bc45.entry.js.map} +0 -0
  606. /package/dist/pine-core/{p-205d8c56.entry.js.map → p-3b087f24.entry.js.map} +0 -0
  607. /package/dist/pine-core/{p-26aa3195.entry.js.map → p-476db791.entry.js.map} +0 -0
  608. /package/dist/pine-core/{p-9d7f17a4.system.entry.js.map → p-4780403d.system.entry.js.map} +0 -0
  609. /package/dist/pine-core/{p-06fbdc35.entry.js.map → p-4ede20e6.entry.js.map} +0 -0
  610. /package/dist/pine-core/{p-1768ad5e.entry.js.map → p-4f440dd4.entry.js.map} +0 -0
  611. /package/dist/pine-core/{p-a76a454f.system.entry.js.map → p-52411757.system.entry.js.map} +0 -0
  612. /package/dist/pine-core/{p-519d44b8.entry.js.map → p-5e117b98.entry.js.map} +0 -0
  613. /package/dist/pine-core/{p-3c864e3d.entry.js.map → p-643b01ad.entry.js.map} +0 -0
  614. /package/dist/pine-core/{p-5552ca6b.system.entry.js.map → p-74ff4d96.system.entry.js.map} +0 -0
  615. /package/dist/pine-core/{p-952b41e5.system.entry.js.map → p-77327e1b.system.entry.js.map} +0 -0
  616. /package/dist/pine-core/{p-0561744f.entry.js.map → p-774ecbd4.entry.js.map} +0 -0
  617. /package/dist/pine-core/{p-932f4860.entry.js.map → p-7926dc93.entry.js.map} +0 -0
  618. /package/dist/pine-core/{p-1fd52c1b.system.entry.js.map → p-7acb131c.system.entry.js.map} +0 -0
  619. /package/dist/pine-core/{p-f30bde36.system.entry.js.map → p-848763b6.system.entry.js.map} +0 -0
  620. /package/dist/pine-core/{p-90126a46.system.entry.js.map → p-85e889c3.system.entry.js.map} +0 -0
  621. /package/dist/pine-core/{p-bf1ab568.system.entry.js.map → p-8669e0e3.system.entry.js.map} +0 -0
  622. /package/dist/pine-core/{p-4cf4558e.entry.js.map → p-8735cb58.entry.js.map} +0 -0
  623. /package/dist/pine-core/{p-2ca648d8.system.entry.js.map → p-904e8d9d.system.entry.js.map} +0 -0
  624. /package/dist/pine-core/{p-5eb9a3e2.entry.js.map → p-91bea052.entry.js.map} +0 -0
  625. /package/dist/pine-core/{p-13821696.entry.js.map → p-984db3fc.entry.js.map} +0 -0
  626. /package/dist/pine-core/{p-69221099.system.entry.js.map → p-988d1723.system.entry.js.map} +0 -0
  627. /package/dist/pine-core/{p-0f037132.system.entry.js.map → p-9a3c9d15.system.entry.js.map} +0 -0
  628. /package/dist/pine-core/{p-63fd14b1.system.entry.js.map → p-9b3aedeb.system.entry.js.map} +0 -0
  629. /package/dist/pine-core/{p-94fde072.system.entry.js.map → p-9ce56712.system.entry.js.map} +0 -0
  630. /package/dist/pine-core/{p-5df670e9.entry.js.map → p-9e5c58c6.entry.js.map} +0 -0
  631. /package/dist/pine-core/{p-dc724dee.entry.js.map → p-a30b386f.entry.js.map} +0 -0
  632. /package/dist/pine-core/{p-b272656d.system.entry.js.map → p-a5014407.system.entry.js.map} +0 -0
  633. /package/dist/pine-core/{p-b117b00a.system.entry.js.map → p-a695ff4c.system.entry.js.map} +0 -0
  634. /package/dist/pine-core/{p-7d9f7018.entry.js.map → p-a8c49f8e.entry.js.map} +0 -0
  635. /package/dist/pine-core/{p-779c4bd5.system.entry.js.map → p-b9340fb1.system.entry.js.map} +0 -0
  636. /package/dist/pine-core/{p-35d9e3c8.system.entry.js.map → p-b9fcc3f8.system.entry.js.map} +0 -0
  637. /package/dist/pine-core/{p-939ae09f.entry.js.map → p-bc8f61d1.entry.js.map} +0 -0
  638. /package/dist/pine-core/{p-e7e166f2.entry.js.map → p-bea013d1.entry.js.map} +0 -0
  639. /package/dist/pine-core/{p-9e8b71ed.system.entry.js.map → p-c026479a.system.entry.js.map} +0 -0
  640. /package/dist/pine-core/{p-8731836c.entry.js.map → p-cab14421.entry.js.map} +0 -0
  641. /package/dist/pine-core/{p-b8ca7bca.entry.js.map → p-d5fcdcdd.entry.js.map} +0 -0
  642. /package/dist/pine-core/{p-6ff1d23e.entry.js.map → p-dab76f15.entry.js.map} +0 -0
  643. /package/dist/pine-core/{p-cea4bfaa.system.entry.js.map → p-db63f83b.system.entry.js.map} +0 -0
  644. /package/dist/pine-core/{p-0d4b2bbc.system.entry.js.map → p-dd3ea74e.system.entry.js.map} +0 -0
  645. /package/dist/pine-core/{p-0fefe6ef.entry.js.map → p-e25da259.entry.js.map} +0 -0
  646. /package/dist/pine-core/{p-253e2bfd.system.entry.js.map → p-e288dc89.system.entry.js.map} +0 -0
  647. /package/dist/pine-core/{p-6acc2e5b.system.entry.js.map → p-ea5c42b8.system.entry.js.map} +0 -0
  648. /package/dist/pine-core/{p-42d83b1f.entry.js.map → p-ed5d5be6.entry.js.map} +0 -0
  649. /package/dist/pine-core/{p-f924994c.entry.js.map → p-ef081f0f.entry.js.map} +0 -0
  650. /package/dist/pine-core/{p-8b8d1b07.entry.js.map → p-f09c5021.entry.js.map} +0 -0
  651. /package/dist/pine-core/{p-e0862ab5.entry.js.map → p-f201cf57.entry.js.map} +0 -0
  652. /package/dist/pine-core/{p-bd277581.entry.js.map → p-f20ab351.entry.js.map} +0 -0
  653. /package/dist/pine-core/{p-2c48e33c.entry.js.map → p-f2798581.entry.js.map} +0 -0
  654. /package/dist/pine-core/{p-fbd8a4ac.entry.js.map → p-f2ca0cf8.entry.js.map} +0 -0
  655. /package/dist/pine-core/{p-c299c019.system.entry.js.map → p-f77fad86.system.entry.js.map} +0 -0
  656. /package/dist/pine-core/{p-9e073662.entry.js.map → p-ff5b2c90.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"pds-table.js","sourceRoot":"","sources":["../../../../src/components/pds-table/pds-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Host, h, Prop, State, Listen } from '@stencil/core';\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 left/right 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 * Left shadow: Shows when scrolled away from start (hidden if fixedColumn is enabled)\n * Right shadow: Shows when there's content to scroll and not at the end\n */\n this._responsiveHandleScroll = () => {\n if (!this.scrollContainer) return;\n\n const scrollLeft = this.scrollContainer.scrollLeft;\n const maxScrollLeft = this.scrollContainer.scrollWidth - this.scrollContainer.clientWidth;\n\n // Show left shadow when scrolled away from start, but not if there's a fixed column\n leftShadow.style.opacity = (scrollLeft > 0 && !this.fixedColumn) ? '1' : '0';\n\n // Show right shadow only if there's content to scroll AND not at end\n rightShadow.style.opacity = (maxScrollLeft > 0 && scrollLeft < maxScrollLeft - 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"]}
1
+ {"version":3,"file":"pds-table.js","sourceRoot":"","sources":["../../../../src/components/pds-table/pds-table.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
@@ -1,6 +1,6 @@
1
1
  :host {
2
- --animation-duration: 0.3s;
3
- --animation-timing: cubic-bezier(0.4, 0, 0.2, 1);
2
+ --animation-duration: var(--pine-motion-duration-slow);
3
+ --animation-timing: var(--pine-motion-easing-in-out);
4
4
  --padding-inline: var(--pine-dimension-md);
5
5
  --padding-inline-desktop: var(--pine-dimension-2xl);
6
6
  --sizing-height-default: 68px;
@@ -1,4 +1,6 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ /** Fallback when computed `--animation-duration` is unavailable (matches `--pine-motion-duration-slow`). */
3
+ const TOAST_DISMISS_ANIMATION_MS = 300;
2
4
  /**
3
5
  * @part dismiss
4
6
  */
@@ -53,13 +55,46 @@ export class PdsToast {
53
55
  async dismiss() {
54
56
  // Start the animation out
55
57
  this.isAnimatingOut = true;
56
- // Wait for animation to complete before hiding and cleanup
57
- await new Promise((resolve) => setTimeout(resolve, 300)); // Match --animation-duration
58
+ await this.waitForDismissAnimation();
58
59
  this.isVisible = false;
59
60
  this.cleanup();
60
61
  this.pdsToastDismissed.emit({ componentId: this.componentId });
61
62
  }
62
63
  // Private methods
64
+ waitForDismissAnimation() {
65
+ const durationMs = this.getDismissAnimationDurationMs();
66
+ if (durationMs <= 0) {
67
+ return Promise.resolve();
68
+ }
69
+ return new Promise((resolve) => window.setTimeout(resolve, durationMs));
70
+ }
71
+ getDismissAnimationDurationMs() {
72
+ if (typeof window === 'undefined') {
73
+ return TOAST_DISMISS_ANIMATION_MS;
74
+ }
75
+ if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
76
+ return 0;
77
+ }
78
+ const fromCss = this.parseCssDurationToMs(getComputedStyle(this.el).getPropertyValue('--animation-duration').trim());
79
+ return fromCss !== null && fromCss !== void 0 ? fromCss : TOAST_DISMISS_ANIMATION_MS;
80
+ }
81
+ parseCssDurationToMs(value) {
82
+ if (!value) {
83
+ return undefined;
84
+ }
85
+ if (value === '0' || value === '0ms' || value === '0s') {
86
+ return 0;
87
+ }
88
+ if (value.endsWith('ms')) {
89
+ const ms = Number.parseFloat(value);
90
+ return Number.isFinite(ms) ? ms : undefined;
91
+ }
92
+ if (value.endsWith('s')) {
93
+ const seconds = Number.parseFloat(value);
94
+ return Number.isFinite(seconds) ? seconds * 1000 : undefined;
95
+ }
96
+ return undefined;
97
+ }
63
98
  cleanup() {
64
99
  if (this.dismissTimer) {
65
100
  window.clearTimeout(this.dismissTimer);
@@ -80,13 +115,13 @@ export class PdsToast {
80
115
  return this.icon && h("pds-icon", { name: this.icon, class: "pds-toast__icon" });
81
116
  }
82
117
  render() {
83
- return (h(Host, { key: '5a626d33e284f1d19498f1a15f91810e6c184116', hidden: !this.isVisible }, h("div", { key: '9e3d7c1ccd5ee162f9cdc6c1ec7ba8b36b2492f0', class: {
118
+ return (h(Host, { key: '7768cbf398d4592b774734abdf5e9f1f4d4fb7e8', hidden: !this.isVisible }, h("div", { key: 'c17b00c76bd42d1040b8ef08a354e10346a79aa4', class: {
84
119
  'pds-toast': true,
85
120
  [`pds-toast--${this.type}`]: this.type !== 'default',
86
121
  'pds-toast--animating-out': this.isAnimatingOut
87
- }, role: "alert", "aria-live": "polite" }, this.renderIcon(), h("span", { key: '07fa7e9da50a3f25ad66f633de05cd62c08963ad', class: "pds-toast__message" }, h("slot", { key: '94b97c868003945d884fe82fc132ccf9c93883d3' })), this.dismissible && (h("button", { key: 'bbb35c6f1a4f2635c29f56d3c71870289c3dd765', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
122
+ }, role: "alert", "aria-live": "polite" }, this.renderIcon(), h("span", { key: 'cb7066fd49ae8674d5de80ecde21e63eecbcdf29', class: "pds-toast__message" }, h("slot", { key: '5c08d8b5cc54e02bed2906c2d52b894301fdca5d' })), this.dismissible && (h("button", { key: '4edd83a8521f76a2abddfe64caaac932962745ff', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
88
123
  this.dismiss();
89
- }, "aria-label": "Dismiss message" }, h("pds-icon", { key: '5a39aa843a9585f8814b15f334d7eb74cf6e815c', name: "remove" }))))));
124
+ }, "aria-label": "Dismiss message" }, h("pds-icon", { key: 'c5cf65f889bfcd85e3fdab437539e7ee3f6e0465', name: "remove" }))))));
90
125
  }
91
126
  static get is() { return "pds-toast"; }
92
127
  static get encapsulation() { return "shadow"; }
@@ -256,6 +291,7 @@ export class PdsToast {
256
291
  }
257
292
  };
258
293
  }
294
+ static get elementRef() { return "el"; }
259
295
  static get watchers() {
260
296
  return [{
261
297
  "propName": "duration",
@@ -1 +1 @@
1
- {"version":3,"file":"pds-toast.js","sourceRoot":"","sources":["../../../../src/components/pds-toast/pds-toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\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 // 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 // Wait for animation to complete before hiding and cleanup\n await new Promise((resolve) => setTimeout(resolve, 300)); // Match --animation-duration\n\n this.isVisible = false;\n this.cleanup();\n this.pdsToastDismissed.emit({ componentId: this.componentId });\n }\n\n // Private methods\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"]}
1
+ {"version":3,"file":"pds-toast.js","sourceRoot":"","sources":["../../../../src/components/pds-toast/pds-toast.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
@@ -16,6 +16,7 @@
16
16
  max-width: var(--tooltip-dimension-max-width);
17
17
  opacity: 0;
18
18
  padding: var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);
19
+ position: relative;
19
20
  visibility: hidden;
20
21
  width: max-content;
21
22
  }
@@ -25,7 +26,7 @@
25
26
  z-index: var(--pine-z-index-raised);
26
27
  }
27
28
  .pds-tooltip.pds-tooltip--has-html-content .pds-tooltip__content {
28
- width: auto;
29
+ width: fit-content;
29
30
  }
30
31
  .pds-tooltip__content::after {
31
32
  border-color: transparent;
@@ -0,0 +1,78 @@
1
+ let cachedRtlScrollType = null;
2
+ /**
3
+ * Detects how this browser reports scrollLeft for RTL overflow containers.
4
+ * @see https://github.com/othree/jquery.rtl-scroll-type
5
+ */
6
+ export function getRtlScrollType() {
7
+ if (cachedRtlScrollType) {
8
+ return cachedRtlScrollType;
9
+ }
10
+ if (typeof document === 'undefined') {
11
+ cachedRtlScrollType = 'default';
12
+ return cachedRtlScrollType;
13
+ }
14
+ const probe = document.createElement('div');
15
+ probe.style.width = '100px';
16
+ probe.style.height = '100px';
17
+ probe.style.position = 'absolute';
18
+ probe.style.top = '-1000px';
19
+ probe.style.overflow = 'scroll';
20
+ probe.style.direction = 'rtl';
21
+ const inner = document.createElement('div');
22
+ inner.style.width = '200px';
23
+ inner.style.height = '100px';
24
+ probe.appendChild(inner);
25
+ document.body.appendChild(probe);
26
+ if (probe.scrollLeft > 0) {
27
+ cachedRtlScrollType = 'reverse';
28
+ }
29
+ else {
30
+ probe.scrollLeft = 1;
31
+ cachedRtlScrollType = probe.scrollLeft === 0 ? 'negative' : 'default';
32
+ }
33
+ document.body.removeChild(probe);
34
+ return cachedRtlScrollType;
35
+ }
36
+ /** Reset cached RTL scroll type (for tests). */
37
+ export function resetRtlScrollTypeCache() {
38
+ cachedRtlScrollType = null;
39
+ }
40
+ /** True when the element's used text direction is RTL (inherits from ancestors). */
41
+ export function isRtlDirection(element) {
42
+ return getComputedStyle(element).direction === 'rtl';
43
+ }
44
+ /**
45
+ * RTL scroll offset from inline-start for a known browser scrollLeft model.
46
+ * @see https://github.com/othree/jquery.rtl-scroll-type#3-types-of-scrollleft-scrollwidth--100
47
+ */
48
+ export function getRtlScrollOffsetFromStart(scrollLeft, maxScroll, rtlType) {
49
+ switch (rtlType) {
50
+ case 'negative':
51
+ return Math.max(0, -scrollLeft);
52
+ case 'reverse':
53
+ return Math.max(0, scrollLeft);
54
+ case 'default':
55
+ default:
56
+ return Math.max(0, maxScroll - scrollLeft);
57
+ }
58
+ }
59
+ /**
60
+ * Distance scrolled from the inline-start edge (LTR: left, RTL: right).
61
+ */
62
+ export function getScrollOffsetFromStart(container) {
63
+ const { scrollLeft, scrollWidth, clientWidth } = container;
64
+ const maxScroll = Math.max(0, scrollWidth - clientWidth);
65
+ if (maxScroll <= 0) {
66
+ return 0;
67
+ }
68
+ const isRtl = isRtlDirection(container);
69
+ if (!isRtl) {
70
+ return scrollLeft;
71
+ }
72
+ return getRtlScrollOffsetFromStart(scrollLeft, maxScroll, getRtlScrollType());
73
+ }
74
+ /** True when the container is scrolled away from its inline-start edge. */
75
+ export function isScrolledFromInlineStart(container) {
76
+ return getScrollOffsetFromStart(container) > 0;
77
+ }
78
+ //# sourceMappingURL=scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../../src/utils/scroll.ts"],"names":[],"mappings":"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","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"]}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Default tag filter applied by `runAxe`. Mirrors WCAG 2.0 + 2.1 levels A
3
+ * and AA. Override with `{ tags: [...] }` to widen or narrow the scope.
4
+ */
5
+ export const DEFAULT_AXE_TAGS = ['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa'];
6
+ /**
7
+ * Page-level axe rules that fire on the bare HTML harness Stencil's E2E
8
+ * provides (no `<title>`, no `<html lang>`, no landmarks, no `<h1>`).
9
+ * They are disabled by default because they describe document chrome,
10
+ * not component behavior — flagging them at component scope yields noise.
11
+ *
12
+ * Tests can opt back in for a specific case:
13
+ *
14
+ * ```ts
15
+ * await runAxe(page, { rules: { 'document-title': { enabled: true } } });
16
+ * ```
17
+ */
18
+ export const DEFAULT_DISABLED_RULES = [
19
+ 'document-title',
20
+ 'html-has-lang',
21
+ 'landmark-one-main',
22
+ 'page-has-heading-one',
23
+ 'region',
24
+ ];
25
+ /**
26
+ * Injects axe-core into an active Stencil E2EPage and returns any
27
+ * accessibility violations found in the current document.
28
+ *
29
+ * Usage:
30
+ *
31
+ * ```ts
32
+ * const page = await newE2EPage();
33
+ * await page.setContent('<pds-button>Click me</pds-button>');
34
+ * const violations = await runAxe(page);
35
+ * expect(violations).toEqual([]);
36
+ * ```
37
+ *
38
+ * Component tests should assert against the returned array directly so
39
+ * each component can document its own baseline (zero violations is the
40
+ * goal; suppressions should be deliberate and commented).
41
+ */
42
+ export async function runAxe(page, options = {}) {
43
+ var _a, _b;
44
+ // Resolve axe-core's UMD bundle from node_modules at test time so we
45
+ // do not depend on a build step injecting it.
46
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
47
+ const axePath = require.resolve('axe-core/axe.min.js');
48
+ await page.addScriptTag({ path: axePath });
49
+ const defaultRules = DEFAULT_DISABLED_RULES.reduce((acc, rule) => {
50
+ acc[rule] = { enabled: false };
51
+ return acc;
52
+ }, {});
53
+ const runOptions = {
54
+ runOnly: {
55
+ type: 'tag',
56
+ values: (_a = options.tags) !== null && _a !== void 0 ? _a : [...DEFAULT_AXE_TAGS],
57
+ },
58
+ rules: Object.assign(Object.assign({}, defaultRules), ((_b = options.rules) !== null && _b !== void 0 ? _b : {})),
59
+ };
60
+ // Embed options in a string-evaluated IIFE so Istanbul does not instrument
61
+ // the browser-side function (cov_* globals are undefined in Puppeteer).
62
+ const optsJson = JSON.stringify(runOptions);
63
+ const violations = await page.evaluate(`
64
+ (async () => {
65
+ const opts = ${optsJson};
66
+ const axe = window.axe;
67
+ if (!axe) {
68
+ throw new Error('axe-core failed to load on the page.');
69
+ }
70
+ const results = await axe.run(document, opts);
71
+ return results.violations;
72
+ })()
73
+ `);
74
+ return violations;
75
+ }
76
+ /**
77
+ * Formats an axe target selector, including nested arrays for shadow DOM
78
+ * and iframe boundaries (axe's `UnlabelledFrameSelector` shape).
79
+ */
80
+ export function formatAxeTarget(target) {
81
+ return target
82
+ .map((segment) => (Array.isArray(segment) ? segment.join(' ') : segment))
83
+ .join(' >> ');
84
+ }
85
+ /**
86
+ * Formats an array of axe violations into a readable failure message for
87
+ * use in test output. Returns an empty string when there are no
88
+ * violations, so it can be passed directly into `expect(...).toBe('')`.
89
+ */
90
+ export function formatViolations(violations) {
91
+ if (violations.length === 0)
92
+ return '';
93
+ return violations
94
+ .map((v) => {
95
+ var _a;
96
+ const targets = v.nodes.map((n) => formatAxeTarget(n.target)).join(', ');
97
+ return `• [${(_a = v.impact) !== null && _a !== void 0 ? _a : 'unknown'}] ${v.id} — ${v.help}\n ${targets}\n ${v.helpUrl}`;
98
+ })
99
+ .join('\n\n');
100
+ }
101
+ //# sourceMappingURL=axe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axe.js","sourceRoot":"","sources":["../../../../src/utils/test/axe.ts"],"names":[],"mappings":"AAqCA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAEtF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,sBAAsB;IACtB,QAAQ;CACA,CAAC;AAEX;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAa,EAAE,UAAyB,EAAE;;IACrE,qEAAqE;IACrE,8CAA8C;IAC9C,8DAA8D;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEvD,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,sBAAsB,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,OAAO,EAAE;YACP,IAAI,EAAE,KAAc;YACpB,MAAM,EAAE,MAAA,OAAO,CAAC,IAAI,mCAAI,CAAC,GAAG,gBAAgB,CAAC;SAC9C;QACD,KAAK,kCAAO,YAAY,GAAK,CAAC,MAAA,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAE;KACrD,CAAC;IAEF,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;;qBAEpB,QAAQ;;;;;;;;GAQ1B,CAAC,CAAC;IAEH,OAAO,UAA4B,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SACxE,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA0B;IACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,UAAU;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;QACT,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,OAAO,MAAM,MAAA,CAAC,CAAC,MAAM,mCAAI,SAAS,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,SAAS,OAAO,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9F,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC","sourcesContent":["/* istanbul ignore file -- page.evaluate runs in the browser; coverage globals are unavailable there */\nimport type { E2EPage } from '@stencil/core/testing';\n\n/** axe-core selector path; nested arrays represent iframe/shadow boundaries. */\nexport type AxeTarget = (string | string[])[];\n\n/**\n * Subset of an axe-core violation surfaced for test assertions. The shape\n * mirrors `axe.AxeResults['violations'][number]` without pulling axe-core's\n * full types into the component test surface.\n */\nexport interface AxeViolation {\n id: string;\n impact: 'minor' | 'moderate' | 'serious' | 'critical' | null;\n description: string;\n help: string;\n helpUrl: string;\n nodes: Array<{\n target: AxeTarget;\n html: string;\n failureSummary?: string;\n }>;\n}\n\nexport interface RunAxeOptions {\n /**\n * Limits the run to rules tagged with one or more of these values.\n * Defaults to WCAG 2.0 + 2.1 levels A and AA.\n */\n tags?: string[];\n\n /**\n * Per-rule overrides (e.g. `{ 'color-contrast': { enabled: false } }`).\n */\n rules?: Record<string, { enabled: boolean }>;\n}\n\n/**\n * Default tag filter applied by `runAxe`. Mirrors WCAG 2.0 + 2.1 levels A\n * and AA. Override with `{ tags: [...] }` to widen or narrow the scope.\n */\nexport const DEFAULT_AXE_TAGS = ['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa'] as const;\n\n/**\n * Page-level axe rules that fire on the bare HTML harness Stencil's E2E\n * provides (no `<title>`, no `<html lang>`, no landmarks, no `<h1>`).\n * They are disabled by default because they describe document chrome,\n * not component behavior — flagging them at component scope yields noise.\n *\n * Tests can opt back in for a specific case:\n *\n * ```ts\n * await runAxe(page, { rules: { 'document-title': { enabled: true } } });\n * ```\n */\nexport const DEFAULT_DISABLED_RULES = [\n 'document-title',\n 'html-has-lang',\n 'landmark-one-main',\n 'page-has-heading-one',\n 'region',\n] as const;\n\n/**\n * Injects axe-core into an active Stencil E2EPage and returns any\n * accessibility violations found in the current document.\n *\n * Usage:\n *\n * ```ts\n * const page = await newE2EPage();\n * await page.setContent('<pds-button>Click me</pds-button>');\n * const violations = await runAxe(page);\n * expect(violations).toEqual([]);\n * ```\n *\n * Component tests should assert against the returned array directly so\n * each component can document its own baseline (zero violations is the\n * goal; suppressions should be deliberate and commented).\n */\nexport async function runAxe(page: E2EPage, options: RunAxeOptions = {}): Promise<AxeViolation[]> {\n // Resolve axe-core's UMD bundle from node_modules at test time so we\n // do not depend on a build step injecting it.\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const axePath = require.resolve('axe-core/axe.min.js');\n\n await page.addScriptTag({ path: axePath });\n\n const defaultRules = DEFAULT_DISABLED_RULES.reduce<Record<string, { enabled: boolean }>>(\n (acc, rule) => {\n acc[rule] = { enabled: false };\n return acc;\n },\n {},\n );\n\n const runOptions = {\n runOnly: {\n type: 'tag' as const,\n values: options.tags ?? [...DEFAULT_AXE_TAGS],\n },\n rules: { ...defaultRules, ...(options.rules ?? {}) },\n };\n\n // Embed options in a string-evaluated IIFE so Istanbul does not instrument\n // the browser-side function (cov_* globals are undefined in Puppeteer).\n const optsJson = JSON.stringify(runOptions);\n const violations = await page.evaluate(`\n (async () => {\n const opts = ${optsJson};\n const axe = window.axe;\n if (!axe) {\n throw new Error('axe-core failed to load on the page.');\n }\n const results = await axe.run(document, opts);\n return results.violations;\n })()\n `);\n\n return violations as AxeViolation[];\n}\n\n/**\n * Formats an axe target selector, including nested arrays for shadow DOM\n * and iframe boundaries (axe's `UnlabelledFrameSelector` shape).\n */\nexport function formatAxeTarget(target: AxeTarget): string {\n return target\n .map((segment) => (Array.isArray(segment) ? segment.join(' ') : segment))\n .join(' >> ');\n}\n\n/**\n * Formats an array of axe violations into a readable failure message for\n * use in test output. Returns an empty string when there are no\n * violations, so it can be passed directly into `expect(...).toBe('')`.\n */\nexport function formatViolations(violations: AxeViolation[]): string {\n if (violations.length === 0) return '';\n return violations\n .map((v) => {\n const targets = v.nodes.map((n) => formatAxeTarget(n.target)).join(', ');\n return `• [${v.impact ?? 'unknown'}] ${v.id} — ${v.help}\\n ${targets}\\n ${v.helpUrl}`;\n })\n .join('\\n\\n');\n}\n"]}
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-05-18T19:36:21",
2
+ "timestamp": "2026-06-03T23:51:24",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.38.3",