@pine-ds/core 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/components/index.d.ts +20 -0
  2. package/components/index.js +10 -0
  3. package/components/index.js.map +1 -1
  4. package/components/mock-pds-modal.d.ts +11 -0
  5. package/components/mock-pds-modal.js +108 -0
  6. package/components/mock-pds-modal.js.map +1 -0
  7. package/components/pds-alert.d.ts +11 -0
  8. package/components/pds-alert.js +107 -0
  9. package/components/pds-alert.js.map +1 -0
  10. package/components/pds-avatar.js +1 -1
  11. package/components/pds-box.js +1 -110
  12. package/components/pds-box.js.map +1 -1
  13. package/components/pds-box2.js +115 -0
  14. package/components/pds-box2.js.map +1 -0
  15. package/components/pds-checkbox2.js +3 -3
  16. package/components/pds-chip.js +1 -1
  17. package/components/pds-copytext.js +1 -1
  18. package/components/pds-divider.js +1 -1
  19. package/components/pds-dropdown-menu-item.d.ts +11 -0
  20. package/components/pds-dropdown-menu-item.js +117 -0
  21. package/components/pds-dropdown-menu-item.js.map +1 -0
  22. package/components/pds-dropdown-menu-separator.d.ts +11 -0
  23. package/components/pds-dropdown-menu-separator.js +44 -0
  24. package/components/pds-dropdown-menu-separator.js.map +1 -0
  25. package/components/pds-dropdown-menu.d.ts +11 -0
  26. package/components/pds-dropdown-menu.js +1600 -0
  27. package/components/pds-dropdown-menu.js.map +1 -0
  28. package/components/pds-image.js +2 -2
  29. package/components/pds-input.js +4 -4
  30. package/components/pds-link.js +1 -67
  31. package/components/pds-link.js.map +1 -1
  32. package/components/pds-link2.js +85 -0
  33. package/components/pds-link2.js.map +1 -0
  34. package/components/pds-loader2.js +1 -1
  35. package/components/pds-modal-content.d.ts +11 -0
  36. package/components/pds-modal-content.js +111 -0
  37. package/components/pds-modal-content.js.map +1 -0
  38. package/components/pds-modal-footer.d.ts +11 -0
  39. package/components/pds-modal-footer.js +35 -0
  40. package/components/pds-modal-footer.js.map +1 -0
  41. package/components/pds-modal-header.d.ts +11 -0
  42. package/components/pds-modal-header.js +35 -0
  43. package/components/pds-modal-header.js.map +1 -0
  44. package/components/pds-modal.d.ts +11 -0
  45. package/components/pds-modal.js +278 -0
  46. package/components/pds-modal.js.map +1 -0
  47. package/components/pds-popover.js +33 -1
  48. package/components/pds-popover.js.map +1 -1
  49. package/components/pds-progress.js +1 -1
  50. package/components/pds-radio.js +3 -3
  51. package/components/pds-row.js +1 -1
  52. package/components/pds-select.js +2 -2
  53. package/components/pds-sortable-item.js +1 -1
  54. package/components/pds-sortable.js +1 -1
  55. package/components/pds-switch.js +3 -3
  56. package/components/pds-tab.js +3 -3
  57. package/components/pds-table-body.js +1 -1
  58. package/components/pds-table-cell2.js +2 -2
  59. package/components/pds-table-head-cell2.js +2 -2
  60. package/components/pds-table-head.js +1 -1
  61. package/components/pds-table-row.js +1 -1
  62. package/components/pds-table.js +1 -1
  63. package/components/pds-tabpanel.js +1 -1
  64. package/components/pds-tabs.js +1 -1
  65. package/components/pds-text.js +1 -53
  66. package/components/pds-text.js.map +1 -1
  67. package/components/pds-text2.js +58 -0
  68. package/components/pds-text2.js.map +1 -0
  69. package/components/pds-textarea.js +4 -4
  70. package/components/pds-toast.d.ts +11 -0
  71. package/components/pds-toast.js +137 -0
  72. package/components/pds-toast.js.map +1 -0
  73. package/components/pds-tooltip.js +283 -81
  74. package/components/pds-tooltip.js.map +1 -1
  75. package/components/utils.js +3 -2
  76. package/components/utils.js.map +1 -1
  77. package/dist/cjs/loader.cjs.js +1 -1
  78. package/dist/cjs/mock-pds-modal.cjs.entry.js +86 -0
  79. package/dist/cjs/mock-pds-modal.cjs.entry.js.map +1 -0
  80. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -0
  81. package/dist/cjs/pds-alert.cjs.entry.js +66 -0
  82. package/dist/cjs/pds-alert.cjs.entry.js.map +1 -0
  83. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -0
  84. package/dist/cjs/pds-avatar.cjs.entry.js +1 -1
  85. package/dist/cjs/pds-box.cjs.entry.js +2 -2
  86. package/dist/cjs/pds-box.cjs.entry.js.map +1 -1
  87. package/dist/cjs/pds-box.entry.cjs.js.map +1 -1
  88. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  89. package/dist/cjs/pds-checkbox.cjs.entry.js +3 -3
  90. package/dist/cjs/pds-chip.cjs.entry.js +1 -1
  91. package/dist/cjs/pds-copytext.cjs.entry.js +1 -1
  92. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  93. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +82 -0
  94. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js.map +1 -0
  95. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -0
  96. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +25 -0
  97. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js.map +1 -0
  98. package/dist/cjs/pds-dropdown-menu-separator.entry.cjs.js.map +1 -0
  99. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +1574 -0
  100. package/dist/cjs/pds-dropdown-menu.cjs.entry.js.map +1 -0
  101. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -0
  102. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  103. package/dist/cjs/pds-input.cjs.entry.js +5 -5
  104. package/dist/cjs/pds-link.cjs.entry.js +15 -3
  105. package/dist/cjs/pds-link.cjs.entry.js.map +1 -1
  106. package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
  107. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  108. package/dist/cjs/pds-modal-content.cjs.entry.js +93 -0
  109. package/dist/cjs/pds-modal-content.cjs.entry.js.map +1 -0
  110. package/dist/cjs/pds-modal-content.entry.cjs.js.map +1 -0
  111. package/dist/cjs/pds-modal-footer.cjs.entry.js +20 -0
  112. package/dist/cjs/pds-modal-footer.cjs.entry.js.map +1 -0
  113. package/dist/cjs/pds-modal-footer.entry.cjs.js.map +1 -0
  114. package/dist/cjs/pds-modal-header.cjs.entry.js +20 -0
  115. package/dist/cjs/pds-modal-header.cjs.entry.js.map +1 -0
  116. package/dist/cjs/pds-modal-header.entry.cjs.js.map +1 -0
  117. package/dist/cjs/pds-modal.cjs.entry.js +253 -0
  118. package/dist/cjs/pds-modal.cjs.entry.js.map +1 -0
  119. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -0
  120. package/dist/cjs/pds-popover.cjs.entry.js +33 -1
  121. package/dist/cjs/pds-popover.cjs.entry.js.map +1 -1
  122. package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
  123. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  124. package/dist/cjs/pds-radio.cjs.entry.js +3 -3
  125. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  126. package/dist/cjs/pds-select.cjs.entry.js +2 -2
  127. package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
  128. package/dist/cjs/pds-sortable.cjs.entry.js +1 -1
  129. package/dist/cjs/pds-switch.cjs.entry.js +3 -3
  130. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  131. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  132. package/dist/cjs/pds-table-cell.cjs.entry.js +2 -2
  133. package/dist/cjs/pds-table-head-cell.cjs.entry.js +2 -2
  134. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  135. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  136. package/dist/cjs/pds-table.cjs.entry.js +1 -1
  137. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  138. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  139. package/dist/cjs/pds-text.cjs.entry.js +2 -2
  140. package/dist/cjs/pds-text.cjs.entry.js.map +1 -1
  141. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  142. package/dist/cjs/pds-textarea.cjs.entry.js +5 -5
  143. package/dist/cjs/pds-toast.cjs.entry.js +104 -0
  144. package/dist/cjs/pds-toast.cjs.entry.js.map +1 -0
  145. package/dist/cjs/pds-toast.entry.cjs.js.map +1 -0
  146. package/dist/cjs/pds-tooltip.cjs.entry.js +281 -79
  147. package/dist/cjs/pds-tooltip.cjs.entry.js.map +1 -1
  148. package/dist/cjs/pds-tooltip.entry.cjs.js.map +1 -1
  149. package/dist/cjs/pine-core.cjs.js +1 -1
  150. package/dist/cjs/{utils-CQKIgzWg.js → utils-jWx-Mf12.js} +5 -4
  151. package/dist/cjs/utils-jWx-Mf12.js.map +1 -0
  152. package/dist/collection/collection-manifest.json +10 -0
  153. package/dist/collection/components/pds-alert/pds-alert.css +108 -0
  154. package/dist/collection/components/pds-alert/pds-alert.js +198 -0
  155. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -0
  156. package/dist/collection/components/pds-alert/pds-alert.tokens.css +32 -0
  157. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +97 -0
  158. package/dist/collection/components/pds-avatar/pds-avatar.js +1 -1
  159. package/dist/collection/components/pds-box/pds-box.js +8 -8
  160. package/dist/collection/components/pds-box/pds-box.js.map +1 -1
  161. package/dist/collection/components/pds-checkbox/pds-checkbox.js +3 -3
  162. package/dist/collection/components/pds-chip/pds-chip.js +1 -1
  163. package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +1 -1
  164. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  165. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  166. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +68 -0
  167. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +219 -0
  168. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -0
  169. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.css +4 -0
  170. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +72 -0
  171. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js.map +1 -0
  172. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +16 -0
  173. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +328 -0
  174. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -0
  175. package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +44 -0
  176. package/dist/collection/components/pds-image/pds-image.js +2 -2
  177. package/dist/collection/components/pds-input/pds-input.js +4 -4
  178. package/dist/collection/components/pds-link/pds-link.css +20 -1
  179. package/dist/collection/components/pds-link/pds-link.js +33 -2
  180. package/dist/collection/components/pds-link/pds-link.js.map +1 -1
  181. package/dist/collection/components/pds-link/stories/pds-link.stories.js +15 -2
  182. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  183. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.css +27 -0
  184. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +125 -0
  185. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +1 -0
  186. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.css +8 -0
  187. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +18 -0
  188. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js.map +1 -0
  189. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.css +8 -0
  190. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +18 -0
  191. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js.map +1 -0
  192. package/dist/collection/components/pds-modal/pds-modal.css +79 -0
  193. package/dist/collection/components/pds-modal/pds-modal.js +426 -0
  194. package/dist/collection/components/pds-modal/pds-modal.js.map +1 -0
  195. package/dist/collection/components/pds-modal/stories/pds-modal.stories.js +415 -0
  196. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +256 -0
  197. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +1 -0
  198. package/dist/collection/components/pds-popover/pds-popover.js +33 -1
  199. package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
  200. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  201. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  202. package/dist/collection/components/pds-row/pds-row.js +1 -1
  203. package/dist/collection/components/pds-select/pds-select.js +2 -2
  204. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  205. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  206. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  207. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  208. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  209. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  210. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  211. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  212. package/dist/collection/components/pds-table/pds-table.js +1 -1
  213. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  214. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  215. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  216. package/dist/collection/components/pds-text/pds-text.js +2 -2
  217. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  218. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  219. package/dist/collection/components/pds-toast/pds-toast.css +153 -0
  220. package/dist/collection/components/pds-toast/pds-toast.js +263 -0
  221. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -0
  222. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +103 -0
  223. package/dist/collection/components/pds-tooltip/pds-tooltip.css +2 -12
  224. package/dist/collection/components/pds-tooltip/pds-tooltip.js +211 -26
  225. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
  226. package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +7 -3
  227. package/dist/collection/utils/interfaces.js +2 -0
  228. package/dist/collection/utils/interfaces.js.map +1 -0
  229. package/dist/collection/utils/overlay.js +66 -49
  230. package/dist/collection/utils/overlay.js.map +1 -1
  231. package/dist/collection/utils/utils.js +3 -2
  232. package/dist/collection/utils/utils.js.map +1 -1
  233. package/dist/docs.json +1638 -266
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/mock-pds-modal.entry.js +84 -0
  236. package/dist/esm/mock-pds-modal.entry.js.map +1 -0
  237. package/dist/esm/pds-alert.entry.js +64 -0
  238. package/dist/esm/pds-alert.entry.js.map +1 -0
  239. package/dist/esm/pds-avatar.entry.js +1 -1
  240. package/dist/esm/pds-box.entry.js +2 -2
  241. package/dist/esm/pds-box.entry.js.map +1 -1
  242. package/dist/esm/pds-button.entry.js +1 -1
  243. package/dist/esm/pds-checkbox.entry.js +3 -3
  244. package/dist/esm/pds-chip.entry.js +1 -1
  245. package/dist/esm/pds-copytext.entry.js +1 -1
  246. package/dist/esm/pds-divider.entry.js +1 -1
  247. package/dist/esm/pds-dropdown-menu-item.entry.js +80 -0
  248. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -0
  249. package/dist/esm/pds-dropdown-menu-separator.entry.js +23 -0
  250. package/dist/esm/pds-dropdown-menu-separator.entry.js.map +1 -0
  251. package/dist/esm/pds-dropdown-menu.entry.js +1572 -0
  252. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -0
  253. package/dist/esm/pds-image.entry.js +2 -2
  254. package/dist/esm/pds-input.entry.js +5 -5
  255. package/dist/esm/pds-link.entry.js +15 -3
  256. package/dist/esm/pds-link.entry.js.map +1 -1
  257. package/dist/esm/pds-loader.entry.js +1 -1
  258. package/dist/esm/pds-modal-content.entry.js +91 -0
  259. package/dist/esm/pds-modal-content.entry.js.map +1 -0
  260. package/dist/esm/pds-modal-footer.entry.js +18 -0
  261. package/dist/esm/pds-modal-footer.entry.js.map +1 -0
  262. package/dist/esm/pds-modal-header.entry.js +18 -0
  263. package/dist/esm/pds-modal-header.entry.js.map +1 -0
  264. package/dist/esm/pds-modal.entry.js +251 -0
  265. package/dist/esm/pds-modal.entry.js.map +1 -0
  266. package/dist/esm/pds-popover.entry.js +33 -1
  267. package/dist/esm/pds-popover.entry.js.map +1 -1
  268. package/dist/esm/pds-progress.entry.js +1 -1
  269. package/dist/esm/pds-radio.entry.js +3 -3
  270. package/dist/esm/pds-row.entry.js +1 -1
  271. package/dist/esm/pds-select.entry.js +2 -2
  272. package/dist/esm/pds-sortable-item.entry.js +1 -1
  273. package/dist/esm/pds-sortable.entry.js +1 -1
  274. package/dist/esm/pds-switch.entry.js +3 -3
  275. package/dist/esm/pds-tab.entry.js +3 -3
  276. package/dist/esm/pds-table-body.entry.js +1 -1
  277. package/dist/esm/pds-table-cell.entry.js +2 -2
  278. package/dist/esm/pds-table-head-cell.entry.js +2 -2
  279. package/dist/esm/pds-table-head.entry.js +1 -1
  280. package/dist/esm/pds-table-row.entry.js +1 -1
  281. package/dist/esm/pds-table.entry.js +1 -1
  282. package/dist/esm/pds-tabpanel.entry.js +1 -1
  283. package/dist/esm/pds-tabs.entry.js +1 -1
  284. package/dist/esm/pds-text.entry.js +2 -2
  285. package/dist/esm/pds-text.entry.js.map +1 -1
  286. package/dist/esm/pds-textarea.entry.js +5 -5
  287. package/dist/esm/pds-toast.entry.js +102 -0
  288. package/dist/esm/pds-toast.entry.js.map +1 -0
  289. package/dist/esm/pds-tooltip.entry.js +281 -79
  290. package/dist/esm/pds-tooltip.entry.js.map +1 -1
  291. package/dist/esm/pine-core.js +1 -1
  292. package/dist/esm/{utils-Dw9B1JDC.js → utils-DkabwBZT.js} +5 -4
  293. package/dist/esm/utils-DkabwBZT.js.map +1 -0
  294. package/dist/esm-es5/loader.js +1 -1
  295. package/dist/esm-es5/mock-pds-modal.entry.js +2 -0
  296. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -0
  297. package/dist/esm-es5/pds-alert.entry.js +2 -0
  298. package/dist/esm-es5/pds-alert.entry.js.map +1 -0
  299. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  300. package/dist/esm-es5/pds-box.entry.js +1 -1
  301. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  302. package/dist/esm-es5/pds-button.entry.js +1 -1
  303. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  304. package/dist/esm-es5/pds-chip.entry.js +1 -1
  305. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  306. package/dist/esm-es5/pds-divider.entry.js +1 -1
  307. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +2 -0
  308. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -0
  309. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +2 -0
  310. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js.map +1 -0
  311. package/dist/esm-es5/pds-dropdown-menu.entry.js +2 -0
  312. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -0
  313. package/dist/esm-es5/pds-image.entry.js +1 -1
  314. package/dist/esm-es5/pds-input.entry.js +1 -1
  315. package/dist/esm-es5/pds-link.entry.js +1 -1
  316. package/dist/esm-es5/pds-link.entry.js.map +1 -1
  317. package/dist/esm-es5/pds-loader.entry.js +1 -1
  318. package/dist/esm-es5/pds-modal-content.entry.js +2 -0
  319. package/dist/esm-es5/pds-modal-content.entry.js.map +1 -0
  320. package/dist/esm-es5/pds-modal-footer.entry.js +2 -0
  321. package/dist/esm-es5/pds-modal-footer.entry.js.map +1 -0
  322. package/dist/esm-es5/pds-modal-header.entry.js +2 -0
  323. package/dist/esm-es5/pds-modal-header.entry.js.map +1 -0
  324. package/dist/esm-es5/pds-modal.entry.js +2 -0
  325. package/dist/esm-es5/pds-modal.entry.js.map +1 -0
  326. package/dist/esm-es5/pds-popover.entry.js +1 -1
  327. package/dist/esm-es5/pds-popover.entry.js.map +1 -1
  328. package/dist/esm-es5/pds-progress.entry.js +1 -1
  329. package/dist/esm-es5/pds-radio.entry.js +1 -1
  330. package/dist/esm-es5/pds-row.entry.js +1 -1
  331. package/dist/esm-es5/pds-select.entry.js +1 -1
  332. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  333. package/dist/esm-es5/pds-sortable.entry.js +1 -1
  334. package/dist/esm-es5/pds-switch.entry.js +1 -1
  335. package/dist/esm-es5/pds-tab.entry.js +1 -1
  336. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  337. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  338. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  339. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  340. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  341. package/dist/esm-es5/pds-table.entry.js +1 -1
  342. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  343. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  344. package/dist/esm-es5/pds-text.entry.js +1 -1
  345. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  346. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  347. package/dist/esm-es5/pds-toast.entry.js +2 -0
  348. package/dist/esm-es5/pds-toast.entry.js.map +1 -0
  349. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  350. package/dist/esm-es5/pds-tooltip.entry.js.map +1 -1
  351. package/dist/esm-es5/pine-core.js +1 -1
  352. package/dist/esm-es5/utils-DkabwBZT.js +2 -0
  353. package/dist/esm-es5/utils-DkabwBZT.js.map +1 -0
  354. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -0
  355. package/dist/pine-core/{p-38d2498e.system.entry.js → p-0069abf8.system.entry.js} +2 -2
  356. package/dist/pine-core/{p-a14c8ab4.system.entry.js → p-03d8cb4c.system.entry.js} +2 -2
  357. package/dist/pine-core/{p-a952d40c.system.entry.js → p-04df41d7.system.entry.js} +2 -2
  358. package/dist/pine-core/{p-0486ad57.entry.js → p-0572825b.entry.js} +2 -2
  359. package/dist/pine-core/{p-d2110923.system.entry.js → p-111e7da2.system.entry.js} +2 -2
  360. package/dist/pine-core/{p-103b62a1.system.entry.js → p-121e03ad.system.entry.js} +2 -2
  361. package/dist/pine-core/p-1224c874.entry.js +2 -0
  362. package/dist/pine-core/{p-82e05dcf.entry.js → p-146fcd44.entry.js} +2 -2
  363. package/dist/pine-core/{p-e88d58f4.entry.js → p-17d3fa8b.entry.js} +2 -2
  364. package/dist/pine-core/p-1b109c01.entry.js +2 -0
  365. package/dist/pine-core/p-1b109c01.entry.js.map +1 -0
  366. package/dist/pine-core/p-1bd715ee.system.entry.js +2 -0
  367. package/dist/pine-core/p-1bd715ee.system.entry.js.map +1 -0
  368. package/dist/pine-core/{p-d8e02aa9.system.entry.js → p-1eec6bea.system.entry.js} +2 -2
  369. package/dist/pine-core/p-21c3aaeb.entry.js +2 -0
  370. package/dist/pine-core/{p-f439922f.entry.js → p-2296c34f.entry.js} +2 -2
  371. package/dist/pine-core/{p-f439922f.entry.js.map → p-2296c34f.entry.js.map} +1 -1
  372. package/dist/pine-core/{p-5c396e75.entry.js → p-24607f93.entry.js} +2 -2
  373. package/dist/pine-core/p-28e28f42.system.entry.js +2 -0
  374. package/dist/pine-core/p-28e28f42.system.entry.js.map +1 -0
  375. package/dist/pine-core/{p-38246e2f.entry.js → p-29ad0b86.entry.js} +2 -2
  376. package/dist/pine-core/{p-c0f0b368.system.entry.js → p-30142a25.system.entry.js} +2 -2
  377. package/dist/pine-core/p-32bd3e33.entry.js +2 -0
  378. package/dist/pine-core/p-32bd3e33.entry.js.map +1 -0
  379. package/dist/pine-core/{p-8305cd4d.entry.js → p-367e188f.entry.js} +2 -2
  380. package/dist/pine-core/{p-6147b1ea.system.entry.js → p-3798a631.system.entry.js} +2 -2
  381. package/dist/pine-core/p-3D0orTx_.system.js.map +1 -0
  382. package/dist/pine-core/{p-c838b6ef.system.entry.js → p-3f82ac77.system.entry.js} +2 -2
  383. package/dist/pine-core/p-4288c861.entry.js +2 -0
  384. package/dist/pine-core/p-4288c861.entry.js.map +1 -0
  385. package/dist/pine-core/p-47a7a65b.entry.js +2 -0
  386. package/dist/pine-core/p-47a7a65b.entry.js.map +1 -0
  387. package/dist/pine-core/{p-ca09f86a.system.entry.js → p-48e76945.system.entry.js} +2 -2
  388. package/dist/pine-core/p-49265849.system.entry.js +2 -0
  389. package/dist/pine-core/p-49265849.system.entry.js.map +1 -0
  390. package/dist/pine-core/p-513c16c7.entry.js +2 -0
  391. package/dist/pine-core/p-513c16c7.entry.js.map +1 -0
  392. package/dist/pine-core/p-5c4aceb7.entry.js +2 -0
  393. package/dist/pine-core/p-5c4aceb7.entry.js.map +1 -0
  394. package/dist/pine-core/{p-598ade79.entry.js → p-5e1e7762.entry.js} +2 -2
  395. package/dist/pine-core/p-624db3d6.system.entry.js +2 -0
  396. package/dist/pine-core/p-624db3d6.system.entry.js.map +1 -0
  397. package/dist/pine-core/{p-c7d4f436.system.entry.js → p-6a2296e6.system.entry.js} +2 -2
  398. package/dist/pine-core/{p-b68cb43d.system.entry.js → p-71265b2a.system.entry.js} +2 -2
  399. package/dist/pine-core/p-71f01676.system.entry.js +2 -0
  400. package/dist/pine-core/p-71f01676.system.entry.js.map +1 -0
  401. package/dist/pine-core/{p-6ad460a7.entry.js → p-722012ac.entry.js} +2 -2
  402. package/dist/pine-core/{p-98181fa8.system.entry.js → p-730221a8.system.entry.js} +2 -2
  403. package/dist/pine-core/{p-a97952fc.system.entry.js → p-73412ca9.system.entry.js} +2 -2
  404. package/dist/pine-core/{p-a97952fc.system.entry.js.map → p-73412ca9.system.entry.js.map} +1 -1
  405. package/dist/pine-core/{p-8337c77c.entry.js → p-742d4490.entry.js} +2 -2
  406. package/dist/pine-core/{p-3ce8eb9f.entry.js → p-761946a0.entry.js} +2 -2
  407. package/dist/pine-core/{p-950427b2.entry.js → p-77c3a10d.entry.js} +2 -2
  408. package/dist/pine-core/{p-fed4c0c0.system.entry.js → p-78cb1c40.system.entry.js} +2 -2
  409. package/dist/pine-core/{p-1d92261f.system.entry.js → p-78fb945e.system.entry.js} +2 -2
  410. package/dist/pine-core/p-7b38e384.system.entry.js +2 -0
  411. package/dist/pine-core/{p-9d0c1b2e.system.entry.js.map → p-7b38e384.system.entry.js.map} +1 -1
  412. package/dist/pine-core/{p-d78bec50.system.entry.js → p-7e92ec48.system.entry.js} +2 -2
  413. package/dist/pine-core/{p-13b9ed06.system.entry.js → p-7ff213bb.system.entry.js} +2 -2
  414. package/dist/pine-core/{p-4ccd2d5e.entry.js → p-8023086c.entry.js} +2 -2
  415. package/dist/pine-core/p-83252078.system.entry.js +2 -0
  416. package/dist/pine-core/{p-f94703c9.entry.js → p-833f08f3.entry.js} +2 -2
  417. package/dist/pine-core/p-83c632f6.system.entry.js +2 -0
  418. package/dist/pine-core/p-83c632f6.system.entry.js.map +1 -0
  419. package/dist/pine-core/p-83ffc1cc.entry.js +2 -0
  420. package/dist/pine-core/p-83ffc1cc.entry.js.map +1 -0
  421. package/dist/pine-core/p-85ff1482.entry.js +2 -0
  422. package/dist/pine-core/{p-d5838288.entry.js.map → p-85ff1482.entry.js.map} +1 -1
  423. package/dist/pine-core/{p-12bee2e5.entry.js → p-86d388a2.entry.js} +2 -2
  424. package/dist/pine-core/p-929bb7ab.system.entry.js +2 -0
  425. package/dist/pine-core/p-929bb7ab.system.entry.js.map +1 -0
  426. package/dist/pine-core/p-942fa145.system.entry.js +2 -0
  427. package/dist/pine-core/p-942fa145.system.entry.js.map +1 -0
  428. package/dist/pine-core/{p-e045e337.system.entry.js → p-984578f8.system.entry.js} +2 -2
  429. package/dist/pine-core/{p-e281ac09.entry.js → p-99b5e1a5.entry.js} +2 -2
  430. package/dist/pine-core/{p-BFPxUBwH.system.js.map → p-B-pTdYoP.system.js.map} +1 -1
  431. package/dist/pine-core/p-B2gfQpwn.system.js.map +1 -0
  432. package/dist/pine-core/{p-CDhmuxC9.system.js.map → p-B5JFBYFw.system.js.map} +1 -1
  433. package/dist/pine-core/p-B5LBNcOw.system.js.map +1 -0
  434. package/dist/pine-core/{p-B46WXJMn.system.js.map → p-BHZ6CSg4.system.js.map} +1 -1
  435. package/dist/pine-core/{p-Cz3zRtiB.system.js.map → p-BO1OsmVU.system.js.map} +1 -1
  436. package/dist/pine-core/{p-Cj21y714.system.js.map → p-BOJnNd1p.system.js.map} +1 -1
  437. package/dist/pine-core/p-BVUeEWjl.system.js.map +1 -0
  438. package/dist/pine-core/{p-C94EgDFz.system.js → p-BhPuKJbQ.system.js} +2 -2
  439. package/dist/pine-core/p-BhPuKJbQ.system.js.map +1 -0
  440. package/dist/pine-core/p-Bo6FQRlR.system.js.map +1 -0
  441. package/dist/pine-core/{p-kMnJefdU.system.js.map → p-Bs9Nyvj2.system.js.map} +1 -1
  442. package/dist/pine-core/p-BsL2GDnH.system.js +1 -1
  443. package/dist/pine-core/{p-BJyPFOn0.system.js.map → p-C-oNYS10.system.js.map} +1 -1
  444. package/dist/pine-core/{p-Cg0JSYH5.system.js.map → p-CDIHBBTC.system.js.map} +1 -1
  445. package/dist/pine-core/{p-IK9NvSRG.system.js.map → p-CLNi-hRD.system.js.map} +1 -1
  446. package/dist/pine-core/{p-BjCOR1Nn.system.js.map → p-CV405yTU.system.js.map} +1 -1
  447. package/dist/pine-core/p-CWtKi9tV.system.js.map +1 -0
  448. package/dist/pine-core/{p-BoNavS-S.system.js.map → p-CcsZC7UR.system.js.map} +1 -1
  449. package/dist/pine-core/{p-DkJgkLjR.system.js.map → p-CiDIFl28.system.js.map} +1 -1
  450. package/dist/pine-core/{p-Dz6toWDZ.system.js.map → p-Cj2r1nL6.system.js.map} +1 -1
  451. package/dist/pine-core/{p-w3zTyPF1.system.js.map → p-CnPERKGo.system.js.map} +1 -1
  452. package/dist/pine-core/p-CsM74dxm.system.js.map +1 -0
  453. package/dist/pine-core/{p-DFmUOrRG.system.js.map → p-CtAVdPaE.system.js.map} +1 -1
  454. package/dist/pine-core/{p-9niWVsdd.system.js.map → p-CzKqvFNN.system.js.map} +1 -1
  455. package/dist/pine-core/{p-CmTz2SvK.system.js.map → p-D-4Xbxlj.system.js.map} +1 -1
  456. package/dist/pine-core/{p-BVNW4NmT.system.js.map → p-D5vuiRx2.system.js.map} +1 -1
  457. package/dist/pine-core/p-D8DRYw9w.system.js.map +1 -0
  458. package/dist/pine-core/{p-DVVPJPOu.system.js.map → p-D9LPgNmN.system.js.map} +1 -1
  459. package/dist/pine-core/p-DKSZziVY.system.js.map +1 -0
  460. package/dist/pine-core/{p-YuC61pNM.system.js.map → p-DN9puCWI.system.js.map} +1 -1
  461. package/dist/pine-core/{p-C0cdB2AV.system.js.map → p-DS7q5AvX.system.js.map} +1 -1
  462. package/dist/pine-core/{p-BSINexOf.system.js.map → p-DV_GadHU.system.js.map} +1 -1
  463. package/dist/pine-core/{p-BgcVBzVE.system.js.map → p-DbVkYdnF.system.js.map} +1 -1
  464. package/dist/pine-core/{p-eKz-xVcI.system.js.map → p-Derxa-nn.system.js.map} +1 -1
  465. package/dist/pine-core/{p-BW-n3jjz.system.js.map → p-DgOMN0Ur.system.js.map} +1 -1
  466. package/dist/pine-core/p-DiJV28pi.system.js.map +1 -0
  467. package/dist/pine-core/p-DkabwBZT.js +2 -0
  468. package/dist/pine-core/p-DkabwBZT.js.map +1 -0
  469. package/dist/pine-core/{p-Dv_jWtcr.system.js.map → p-DyQ_s5MV.system.js.map} +1 -1
  470. package/dist/pine-core/p-HBgo7i_E.system.js.map +1 -0
  471. package/dist/pine-core/{p-D8WAvG2e.system.js.map → p-M2Hhmwex.system.js.map} +1 -1
  472. package/dist/pine-core/p-PkSWq78_.system.js.map +1 -0
  473. package/dist/pine-core/{p-ceb48b05.system.entry.js → p-a2572675.system.entry.js} +2 -2
  474. package/dist/pine-core/{p-85073252.system.entry.js → p-a394645a.system.entry.js} +2 -2
  475. package/dist/pine-core/p-a52b1413.entry.js +2 -0
  476. package/dist/pine-core/p-a52b1413.entry.js.map +1 -0
  477. package/dist/pine-core/{p-4e7ca704.entry.js → p-abec6606.entry.js} +2 -2
  478. package/dist/pine-core/p-b2796d3c.system.entry.js +2 -0
  479. package/dist/pine-core/p-b2796d3c.system.entry.js.map +1 -0
  480. package/dist/pine-core/{p-1b81a8ec.entry.js → p-b3d05184.entry.js} +2 -2
  481. package/dist/pine-core/{p-b902f535.entry.js → p-b7ba6316.entry.js} +2 -2
  482. package/dist/pine-core/p-b9c13f99.entry.js +2 -0
  483. package/dist/pine-core/p-b9c13f99.entry.js.map +1 -0
  484. package/dist/pine-core/{p-6a716bff.entry.js → p-bcc4edaa.entry.js} +2 -2
  485. package/dist/pine-core/{p-1178485a.system.entry.js → p-bd04212c.system.entry.js} +2 -2
  486. package/dist/pine-core/{p-1178485a.system.entry.js.map → p-bd04212c.system.entry.js.map} +1 -1
  487. package/dist/pine-core/{p-9cdd57de.entry.js → p-c0f74199.entry.js} +2 -2
  488. package/dist/pine-core/{p-ed8c3064.system.entry.js → p-c1b0f921.system.entry.js} +2 -2
  489. package/dist/pine-core/{p-68de979e.entry.js → p-c4294be2.entry.js} +2 -2
  490. package/dist/pine-core/p-cd2cd116.entry.js +2 -0
  491. package/dist/pine-core/p-cd2cd116.entry.js.map +1 -0
  492. package/dist/pine-core/p-d1b222f5.entry.js +2 -0
  493. package/dist/pine-core/{p-b390c427.entry.js.map → p-d1b222f5.entry.js.map} +1 -1
  494. package/dist/pine-core/{p-7b6b354a.system.entry.js → p-d2ccda59.system.entry.js} +2 -2
  495. package/dist/pine-core/p-d6ac2862.system.entry.js +2 -0
  496. package/dist/pine-core/p-d6ac2862.system.entry.js.map +1 -0
  497. package/dist/pine-core/{p-6260135d.system.entry.js → p-e09a3682.system.entry.js} +2 -2
  498. package/dist/pine-core/{p-792355e6.entry.js → p-e2dc81c0.entry.js} +2 -2
  499. package/dist/pine-core/p-e6d6e103.entry.js +2 -0
  500. package/dist/pine-core/p-e6d6e103.entry.js.map +1 -0
  501. package/dist/pine-core/{p-fd9aa739.system.entry.js → p-e9d972db.system.entry.js} +2 -2
  502. package/dist/pine-core/p-ef9ed75a.system.entry.js +2 -0
  503. package/dist/pine-core/p-ef9ed75a.system.entry.js.map +1 -0
  504. package/dist/pine-core/{p-4b59cae8.entry.js → p-f256dd8a.entry.js} +2 -2
  505. package/dist/pine-core/{p-4b59cae8.entry.js.map → p-f256dd8a.entry.js.map} +1 -1
  506. package/dist/pine-core/p-f2c807ac.entry.js +2 -0
  507. package/dist/pine-core/p-f2c807ac.entry.js.map +1 -0
  508. package/dist/pine-core/{p-eda0dc79.entry.js → p-f47133fd.entry.js} +2 -2
  509. package/dist/pine-core/p-f4fff209.system.entry.js +2 -0
  510. package/dist/pine-core/p-f4fff209.system.entry.js.map +1 -0
  511. package/dist/pine-core/{p-5763df39.system.entry.js → p-f9e01886.system.entry.js} +2 -2
  512. package/dist/pine-core/{p-Bu94kuQa.system.js.map → p-xgOOHGQo.system.js.map} +1 -1
  513. package/dist/pine-core/p-yku4NLl6.system.js.map +1 -0
  514. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -0
  515. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  516. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -0
  517. package/dist/pine-core/pds-dropdown-menu-separator.entry.esm.js.map +1 -0
  518. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -0
  519. package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
  520. package/dist/pine-core/pds-modal-content.entry.esm.js.map +1 -0
  521. package/dist/pine-core/pds-modal-footer.entry.esm.js.map +1 -0
  522. package/dist/pine-core/pds-modal-header.entry.esm.js.map +1 -0
  523. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -0
  524. package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
  525. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  526. package/dist/pine-core/pds-toast.entry.esm.js.map +1 -0
  527. package/dist/pine-core/pds-tooltip.entry.esm.js.map +1 -1
  528. package/dist/pine-core/pine-core.esm.js +1 -1
  529. package/dist/types/components/pds-alert/pds-alert.d.ts +39 -0
  530. package/dist/types/components/pds-box/pds-box.d.ts +6 -6
  531. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +43 -0
  532. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.d.ts +13 -0
  533. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +33 -0
  534. package/dist/types/components/pds-link/pds-link.d.ts +5 -0
  535. package/dist/types/components/pds-modal/pds-modal-content/pds-modal-content.d.ts +25 -0
  536. package/dist/types/components/pds-modal/pds-modal-footer/pds-modal-footer.d.ts +3 -0
  537. package/dist/types/components/pds-modal/pds-modal-header/pds-modal-header.d.ts +3 -0
  538. package/dist/types/components/pds-modal/pds-modal.d.ts +72 -0
  539. package/dist/types/components/pds-modal/test/mock-pds-modal.d.ts +63 -0
  540. package/dist/types/components/pds-toast/pds-toast.d.ts +57 -0
  541. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +28 -3
  542. package/dist/types/components.d.ts +539 -14
  543. package/dist/types/utils/interfaces.d.ts +6 -0
  544. package/dist/types/utils/overlay.d.ts +3 -3
  545. package/dist/types/utils/utils.d.ts +1 -1
  546. package/hydrate/index.js +2897 -261
  547. package/hydrate/index.mjs +2897 -261
  548. package/package.json +6 -2
  549. package/dist/cjs/utils-CQKIgzWg.js.map +0 -1
  550. package/dist/esm/utils-Dw9B1JDC.js.map +0 -1
  551. package/dist/esm-es5/utils-Dw9B1JDC.js +0 -2
  552. package/dist/esm-es5/utils-Dw9B1JDC.js.map +0 -1
  553. package/dist/pine-core/p-1d690915.entry.js +0 -2
  554. package/dist/pine-core/p-294f9b1f.entry.js +0 -2
  555. package/dist/pine-core/p-433c6687.system.entry.js +0 -2
  556. package/dist/pine-core/p-433c6687.system.entry.js.map +0 -1
  557. package/dist/pine-core/p-82151ac5.entry.js +0 -2
  558. package/dist/pine-core/p-82151ac5.entry.js.map +0 -1
  559. package/dist/pine-core/p-953f619f.system.entry.js +0 -2
  560. package/dist/pine-core/p-9d0c1b2e.system.entry.js +0 -2
  561. package/dist/pine-core/p-C94EgDFz.system.js.map +0 -1
  562. package/dist/pine-core/p-CdkqpuKd.system.js.map +0 -1
  563. package/dist/pine-core/p-CnoLHUtr.system.js.map +0 -1
  564. package/dist/pine-core/p-DhwO1z4v.system.js.map +0 -1
  565. package/dist/pine-core/p-Dw9B1JDC.js +0 -2
  566. package/dist/pine-core/p-Dw9B1JDC.js.map +0 -1
  567. package/dist/pine-core/p-b390c427.entry.js +0 -2
  568. package/dist/pine-core/p-d3ab594c.system.entry.js +0 -2
  569. package/dist/pine-core/p-d3ab594c.system.entry.js.map +0 -1
  570. package/dist/pine-core/p-d5838288.entry.js +0 -2
  571. package/dist/pine-core/p-f4898d4f.entry.js +0 -2
  572. package/dist/pine-core/p-f4898d4f.entry.js.map +0 -1
  573. /package/dist/pine-core/{p-38d2498e.system.entry.js.map → p-0069abf8.system.entry.js.map} +0 -0
  574. /package/dist/pine-core/{p-a14c8ab4.system.entry.js.map → p-03d8cb4c.system.entry.js.map} +0 -0
  575. /package/dist/pine-core/{p-a952d40c.system.entry.js.map → p-04df41d7.system.entry.js.map} +0 -0
  576. /package/dist/pine-core/{p-0486ad57.entry.js.map → p-0572825b.entry.js.map} +0 -0
  577. /package/dist/pine-core/{p-d2110923.system.entry.js.map → p-111e7da2.system.entry.js.map} +0 -0
  578. /package/dist/pine-core/{p-103b62a1.system.entry.js.map → p-121e03ad.system.entry.js.map} +0 -0
  579. /package/dist/pine-core/{p-1d690915.entry.js.map → p-1224c874.entry.js.map} +0 -0
  580. /package/dist/pine-core/{p-82e05dcf.entry.js.map → p-146fcd44.entry.js.map} +0 -0
  581. /package/dist/pine-core/{p-e88d58f4.entry.js.map → p-17d3fa8b.entry.js.map} +0 -0
  582. /package/dist/pine-core/{p-d8e02aa9.system.entry.js.map → p-1eec6bea.system.entry.js.map} +0 -0
  583. /package/dist/pine-core/{p-294f9b1f.entry.js.map → p-21c3aaeb.entry.js.map} +0 -0
  584. /package/dist/pine-core/{p-5c396e75.entry.js.map → p-24607f93.entry.js.map} +0 -0
  585. /package/dist/pine-core/{p-38246e2f.entry.js.map → p-29ad0b86.entry.js.map} +0 -0
  586. /package/dist/pine-core/{p-c0f0b368.system.entry.js.map → p-30142a25.system.entry.js.map} +0 -0
  587. /package/dist/pine-core/{p-8305cd4d.entry.js.map → p-367e188f.entry.js.map} +0 -0
  588. /package/dist/pine-core/{p-6147b1ea.system.entry.js.map → p-3798a631.system.entry.js.map} +0 -0
  589. /package/dist/pine-core/{p-c838b6ef.system.entry.js.map → p-3f82ac77.system.entry.js.map} +0 -0
  590. /package/dist/pine-core/{p-ca09f86a.system.entry.js.map → p-48e76945.system.entry.js.map} +0 -0
  591. /package/dist/pine-core/{p-598ade79.entry.js.map → p-5e1e7762.entry.js.map} +0 -0
  592. /package/dist/pine-core/{p-c7d4f436.system.entry.js.map → p-6a2296e6.system.entry.js.map} +0 -0
  593. /package/dist/pine-core/{p-b68cb43d.system.entry.js.map → p-71265b2a.system.entry.js.map} +0 -0
  594. /package/dist/pine-core/{p-6ad460a7.entry.js.map → p-722012ac.entry.js.map} +0 -0
  595. /package/dist/pine-core/{p-98181fa8.system.entry.js.map → p-730221a8.system.entry.js.map} +0 -0
  596. /package/dist/pine-core/{p-8337c77c.entry.js.map → p-742d4490.entry.js.map} +0 -0
  597. /package/dist/pine-core/{p-3ce8eb9f.entry.js.map → p-761946a0.entry.js.map} +0 -0
  598. /package/dist/pine-core/{p-950427b2.entry.js.map → p-77c3a10d.entry.js.map} +0 -0
  599. /package/dist/pine-core/{p-fed4c0c0.system.entry.js.map → p-78cb1c40.system.entry.js.map} +0 -0
  600. /package/dist/pine-core/{p-1d92261f.system.entry.js.map → p-78fb945e.system.entry.js.map} +0 -0
  601. /package/dist/pine-core/{p-d78bec50.system.entry.js.map → p-7e92ec48.system.entry.js.map} +0 -0
  602. /package/dist/pine-core/{p-13b9ed06.system.entry.js.map → p-7ff213bb.system.entry.js.map} +0 -0
  603. /package/dist/pine-core/{p-4ccd2d5e.entry.js.map → p-8023086c.entry.js.map} +0 -0
  604. /package/dist/pine-core/{p-953f619f.system.entry.js.map → p-83252078.system.entry.js.map} +0 -0
  605. /package/dist/pine-core/{p-f94703c9.entry.js.map → p-833f08f3.entry.js.map} +0 -0
  606. /package/dist/pine-core/{p-12bee2e5.entry.js.map → p-86d388a2.entry.js.map} +0 -0
  607. /package/dist/pine-core/{p-e045e337.system.entry.js.map → p-984578f8.system.entry.js.map} +0 -0
  608. /package/dist/pine-core/{p-e281ac09.entry.js.map → p-99b5e1a5.entry.js.map} +0 -0
  609. /package/dist/pine-core/{p-ceb48b05.system.entry.js.map → p-a2572675.system.entry.js.map} +0 -0
  610. /package/dist/pine-core/{p-85073252.system.entry.js.map → p-a394645a.system.entry.js.map} +0 -0
  611. /package/dist/pine-core/{p-4e7ca704.entry.js.map → p-abec6606.entry.js.map} +0 -0
  612. /package/dist/pine-core/{p-1b81a8ec.entry.js.map → p-b3d05184.entry.js.map} +0 -0
  613. /package/dist/pine-core/{p-b902f535.entry.js.map → p-b7ba6316.entry.js.map} +0 -0
  614. /package/dist/pine-core/{p-6a716bff.entry.js.map → p-bcc4edaa.entry.js.map} +0 -0
  615. /package/dist/pine-core/{p-9cdd57de.entry.js.map → p-c0f74199.entry.js.map} +0 -0
  616. /package/dist/pine-core/{p-ed8c3064.system.entry.js.map → p-c1b0f921.system.entry.js.map} +0 -0
  617. /package/dist/pine-core/{p-68de979e.entry.js.map → p-c4294be2.entry.js.map} +0 -0
  618. /package/dist/pine-core/{p-7b6b354a.system.entry.js.map → p-d2ccda59.system.entry.js.map} +0 -0
  619. /package/dist/pine-core/{p-6260135d.system.entry.js.map → p-e09a3682.system.entry.js.map} +0 -0
  620. /package/dist/pine-core/{p-792355e6.entry.js.map → p-e2dc81c0.entry.js.map} +0 -0
  621. /package/dist/pine-core/{p-fd9aa739.system.entry.js.map → p-e9d972db.system.entry.js.map} +0 -0
  622. /package/dist/pine-core/{p-eda0dc79.entry.js.map → p-f47133fd.entry.js.map} +0 -0
  623. /package/dist/pine-core/{p-5763df39.system.entry.js.map → p-f9e01886.system.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-D8DRYw9w.system.js","sources":["src/utils/overlay.ts","src/components/pds-tooltip/pds-tooltip.scss?tag=pds-tooltip","src/components/pds-tooltip/pds-tooltip.tsx"],"sourcesContent":["interface OverlayArgs {\n elem: HTMLElement | null;\n elemPlacement: string;\n overlay: HTMLElement | null;\n offset?: number;\n}\n\nexport const positionTooltip = ({elem, elemPlacement, overlay, offset = 8}: OverlayArgs): boolean => {\n if (elem === null || overlay === null) return false;\n if (typeof elemPlacement !== 'string' || elemPlacement.trim() === '') {\n return false;\n }\n\n const rect = elem.getBoundingClientRect();\n const contentRect = overlay.getBoundingClientRect();\n\n // Reset styles\n overlay.style.top = '';\n overlay.style.left = '';\n overlay.style.right = '';\n overlay.style.bottom = '';\n overlay.style.transform = '';\n\n // Use fixed positioning for portal overlays\n overlay.style.position = 'fixed';\n\n // Detect if the trigger is a span with only text or a text node\n let isTextTrigger = false;\n if (elem.childNodes.length === 1 && elem.childNodes[0].nodeType === Node.TEXT_NODE) {\n isTextTrigger = true;\n } else if (elem.childNodes.length === 1 && elem.childNodes[0].nodeType === Node.ELEMENT_NODE) {\n const child = elem.childNodes[0] as HTMLElement;\n if (child.tagName === 'SPAN' && child.childNodes.length === 1 && child.childNodes[0].nodeType === Node.TEXT_NODE) {\n isTextTrigger = true;\n }\n }\n\n switch (true) {\n case elemPlacement.includes('right'):\n if (isTextTrigger) {\n // Align to the bottom of the trigger for text triggers\n overlay.style.top = `${rect.bottom - contentRect.height / 2}px`;\n } else {\n overlay.style.top = `${rect.top + rect.height / 2 - contentRect.height / 2}px`;\n }\n overlay.style.left = `${rect.right + offset}px`;\n if (elemPlacement.includes('start')) {\n overlay.style.top = `${rect.top}px`;\n }\n if (elemPlacement.includes('end')) {\n overlay.style.top = `${rect.bottom - contentRect.height}px`;\n }\n break;\n case elemPlacement.includes('left'):\n if (isTextTrigger) {\n overlay.style.top = `${rect.bottom - contentRect.height / 2}px`;\n } else {\n overlay.style.top = `${rect.top + rect.height / 2 - contentRect.height / 2}px`;\n }\n overlay.style.left = `${rect.left - contentRect.width - offset}px`;\n if (elemPlacement.includes('start')) {\n overlay.style.top = `${rect.top}px`;\n }\n if (elemPlacement.includes('end')) {\n overlay.style.top = `${rect.bottom - contentRect.height}px`;\n }\n break;\n case elemPlacement.includes('bottom'):\n overlay.style.top = `${rect.bottom + offset}px`;\n overlay.style.left = `${rect.left + rect.width / 2 - contentRect.width / 2}px`;\n if (elemPlacement.includes('start')) {\n overlay.style.left = `${rect.left}px`;\n }\n if (elemPlacement.includes('end')) {\n overlay.style.left = `${rect.right - contentRect.width}px`;\n overlay.style.right = 'initial';\n }\n break;\n case elemPlacement.includes('top'):\n overlay.style.top = `${rect.top - contentRect.height - offset}px`;\n overlay.style.left = `${rect.left + rect.width / 2 - contentRect.width / 2}px`;\n if (elemPlacement.includes('start')) {\n overlay.style.left = `${rect.left}px`;\n }\n if (elemPlacement.includes('end')) {\n overlay.style.left = `${rect.right - contentRect.width}px`;\n overlay.style.right = 'initial';\n }\n break;\n }\n return true;\n}\n",".pds-tooltip {\n --tooltip-border-width-arrow-down: var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;\n --tooltip-border-width-arrow-left: var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow) 0;\n --tooltip-border-width-arrow-right: var(--tooltip-sizing-arrow) 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);\n --tooltip-border-width-arrow-up: 0 var(--tooltip-sizing-arrow) var(--tooltip-sizing-arrow);\n --tooltip-sizing-arrow: 6px;\n --tooltip-sizing-arrow-offset: 14px;\n --tooltip-dimension-max-width: 320px;\n}\n\n.pds-tooltip__content {\n background-color: var(--pine-color-primary);\n border-radius: calc(var(--pine-dimension-xs) * 1.25);\n box-shadow: var(--pine-box-shadow);\n color: var(--pine-color-text-primary);\n // TODO: need to use block / none but the tooltip content width and height are needed for calculations\n max-width: var(--tooltip-dimension-max-width);\n opacity: 0;\n padding: var(--pine-dimension-xs) calc(var(--pine-dimension-md) / 2);\n position: absolute;\n visibility: hidden;\n width: max-content;\n\n .pds-tooltip--is-open & {\n // TODO: need to use block / none but the tooltip content width and height are needed for calculations\n opacity: 1;\n visibility: visible;\n z-index: 1;\n }\n\n .pds-tooltip.pds-tooltip--has-html-content & {\n width: auto;\n }\n\n &::after {\n border-color: transparent;\n border-right-color: transparent;\n border-style: solid;\n border-width: var(--tooltip-border-width-arrow-left);\n content: '';\n height: 0;\n position: absolute;\n width: 0;\n\n .pds-tooltip--right & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: 50%;\n transform: translateY(-50%);\n }\n\n .pds-tooltip--right-end & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n bottom: var(--tooltip-sizing-arrow-offset);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: initial;\n }\n\n .pds-tooltip--right-start & {\n border-inline-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-left);\n left: calc(var(--tooltip-sizing-arrow) * -1);\n top: var(--tooltip-sizing-arrow-offset);\n }\n\n .pds-tooltip--top & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: 50%;\n top: initial;\n transform: translateX(-50%);\n }\n\n .pds-tooltip--top-start & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: var(--tooltip-sizing-arrow-offset);\n top: initial;\n }\n\n .pds-tooltip--top-end & {\n border-block-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-down);\n bottom: calc(var(--tooltip-sizing-arrow) * -1);\n left: initial;\n right: var(--tooltip-sizing-arrow-offset);\n top: initial;\n }\n\n .pds-tooltip--left & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: 50%;\n transform: translateY(-50%);\n }\n\n .pds-tooltip--left-end & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n bottom: var(--tooltip-sizing-arrow-offset);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: initial;\n }\n\n .pds-tooltip--left-start & {\n border-inline-start-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-right);\n left: initial;\n right: calc(var(--tooltip-sizing-arrow) * -1);\n top: var(--tooltip-sizing-arrow-offset);\n }\n\n .pds-tooltip--bottom & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: 50%;\n top: calc(var(--tooltip-sizing-arrow) * -1);\n transform: translateX(-50%);\n }\n\n .pds-tooltip--bottom-end & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: initial;\n right: var(--tooltip-sizing-arrow-offset);\n top: calc(var(--tooltip-sizing-arrow) * -1);\n }\n\n .pds-tooltip--bottom-start & {\n border-block-end-color: var(--pine-color-primary);\n border-width: var(--tooltip-border-width-arrow-up);\n left: var(--tooltip-sizing-arrow-offset);\n top: calc(var(--tooltip-sizing-arrow) * -1);\n }\n\n .pds-tooltip--no-arrow & {\n border-width: 0;\n }\n }\n}\n","import { Component, Element, Host, Prop, State, h, Method, Watch } from '@stencil/core';\nimport { positionTooltip } from '../../utils/overlay';\n\n/**\n * @slot (default) - The tooltip's target element\n * @slot content - HTML content for the tooltip\n */\n\n@Component({\n tag: 'pds-tooltip',\n styleUrls: ['pds-tooltip.scss'],\n shadow: false,\n})\n\nexport class PdsTooltip {\n private static instanceCounter = 0;\n\n /**\n * Internal state: true if the tooltip was opened by user interaction (hover/focus),\n * false if opened via the `opened` prop or currently closed.\n */\n @State() private _isInteractiveOpen = false;\n\n private portalEl: HTMLElement | null = null;\n private triggerEl: HTMLElement | null = null;\n private contentDiv: HTMLElement | null = null;\n private slotMutationObserver: MutationObserver | null = null;\n private overlayResizeObserver: ResizeObserver | null = null;\n\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsTooltipElement;\n\n /**\n * Determines when the tooltip is open\n * @defaultValue false\n */\n @State() isOpen = false;\n\n /**\n * Content for the tooltip. If HTML is required, use the content slot\n */\n @Prop() content: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether or not the tooltip has an arrow\n * @defaultValue true\n */\n @Prop() hasArrow? = true;\n\n /**\n * Enable this option when using the content slot\n * @defaultValue false\n */\n @Prop() htmlContent = false;\n\n /**\n * Determines the preferred position of the tooltip\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement:\n 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'right';\n\n /**\n * Sets the maximum width of the tooltip content\n * @defaultValue \"352px\"\n */\n @Prop() maxWidth: string = '352px';\n\n /**\n * Determines whether or not the tooltip is visible\n * @defaultValue false\n */\n @Prop({mutable: true, reflect: true}) opened = false;\n\n @Watch('opened')\n\n handleOpenToggle(newValue: boolean, oldValue: boolean) {\n if (newValue === false && oldValue === true) {\n this._isInteractiveOpen = false;\n }\n }\n\n componentWillLoad() {\n this._isInteractiveOpen = false;\n }\n\n componentDidLoad() {\n window.addEventListener('pageshow', this.handlePageShow);\n this.triggerEl = this.el.querySelector('.pds-tooltip__trigger') as HTMLElement;\n const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');\n\n if (contentSlotWrapper !== null) {\n this.slotMutationObserver = new MutationObserver(() => {\n if (this.opened && this.portalEl !== null) {\n this.removePortal();\n this.createPortal();\n }\n });\n this.slotMutationObserver.observe(contentSlotWrapper, { childList: true, subtree: false });\n }\n\n return () => {\n window.removeEventListener('pageshow', this.handlePageShow);\n\n if (this.slotMutationObserver !== null) {\n this.slotMutationObserver.disconnect();\n }\n };\n }\n\n componentDidRender() {\n if (this.opened && this.portalEl === null) {\n this.createPortal();\n } else if (!this.opened && this.portalEl !== null) {\n this.removePortal();\n }\n }\n\n /**\n * Shows the tooltip by enabling the opened property\n */\n @Method()\n async showTooltip() {\n this.opened = true;\n }\n\n /**\n * Hides the tooltip by disabling the opened property\n */\n @Method()\n async hideTooltip() {\n this.opened = false;\n }\n\n private handleHide = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.hideTooltip();\n this._isInteractiveOpen = false;\n };\n\n private handleShow = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this._isInteractiveOpen = true;\n this.showTooltip();\n };\n\n private handlePageShow = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.opened = false;\n this._isInteractiveOpen = false;\n };\n\n private handleScroll = () => {\n if (this.opened) {\n if (!this._isInteractiveOpen) {\n this.repositionPortal();\n } else {\n this.hideTooltip();\n this._isInteractiveOpen = false;\n }\n }\n };\n\n private handleSpaNavigation = () => {\n if (this.opened && !this._isInteractiveOpen) {\n return;\n }\n\n this.hideTooltip();\n this._isInteractiveOpen = false;\n };\n\n /**\n * Determines the most accurate HTML element to use as the anchor for positioning the tooltip.\n * If `htmlContent` is false, it attempts to find the actual element slotted as the trigger.\n * Otherwise, or if no specific element is found, it defaults to the span wrapper around the trigger slot.\n * This helps with precise alignment.\n */\n private determinePositioningAnchor(): HTMLElement | null {\n let positioningAnchor: HTMLElement | null = this.triggerEl;\n\n if (this.triggerEl !== null) {\n const children = this.triggerEl.childNodes;\n\n for (let i = 0; i < children.length; i++) {\n const childNode = children[i];\n\n if (childNode.nodeType === Node.ELEMENT_NODE) {\n positioningAnchor = childNode as HTMLElement;\n break; // Found the first element, use it as the anchor\n }\n }\n }\n\n // If no ELEMENT_NODE is found within this.triggerEl (e.g., if trigger is just text),\n // positioningAnchor will correctly remain this.triggerEl (the span).\n return positioningAnchor;\n }\n\n /**\n * Centralized method to calculate and apply the tooltip's position.\n * Uses the determined anchor element and the current content dimensions.\n */\n private repositionPortal() {\n const anchor = this.determinePositioningAnchor();\n\n if (anchor !== null && this.contentDiv !== null) {\n positionTooltip({ elem: anchor, elemPlacement: this.placement, overlay: this.contentDiv });\n const placementParts = this.placement.split('-');\n const primaryPlacement = placementParts[0];\n const isCardinalCenterPlacement = placementParts.length === 1;\n\n if (isCardinalCenterPlacement) {\n const anchorRect = anchor.getBoundingClientRect();\n const overlayRect = this.contentDiv.getBoundingClientRect();\n\n if (primaryPlacement === 'left' || primaryPlacement === 'right') {\n const currentOverlayTop = parseFloat(this.contentDiv.style.top || '0');\n const anchorCenterY = anchorRect.top + (anchorRect.height / 2);\n const overlayCenterY = overlayRect.top + (overlayRect.height / 2);\n const adjustmentY = anchorCenterY - overlayCenterY;\n\n if (Math.abs(adjustmentY) > 0.5) {\n this.contentDiv.style.top = `${currentOverlayTop + adjustmentY}px`;\n }\n\n } else if (primaryPlacement === 'top' || primaryPlacement === 'bottom') {\n const currentOverlayLeft = parseFloat(this.contentDiv.style.left || '0');\n const anchorCenterX = anchorRect.left + (anchorRect.width / 2);\n const overlayCenterX = overlayRect.left + (overlayRect.width / 2);\n const adjustmentX = anchorCenterX - overlayCenterX;\n\n if (Math.abs(adjustmentX) > 0.5) {\n this.contentDiv.style.left = `${currentOverlayLeft + adjustmentX}px`;\n }\n }\n }\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = `pds-tooltip pds-tooltip--${this.placement} ${this.htmlContent ? 'pds-tooltip--has-html-content' : ''} ${this.opened ? 'pds-tooltip--is-open' : ''} ${this.hasArrow ? '' : 'pds-tooltip--no-arrow'}`;\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = '9999';\n\n if (this.portalEl.id === '') {\n this.portalEl.id = this.componentId || this.el.id || `pds-tooltip-portal-${PdsTooltip.instanceCounter++}`;\n }\n\n if (this.portalEl.getAttribute('id') !== this.portalEl.id) {\n this.portalEl.setAttribute('id', this.portalEl.id);\n }\n\n this.portalEl.setAttribute('role', 'tooltip');\n this.portalEl.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.portalEl.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n this.portalEl.style.maxWidth = this.maxWidth;\n\n this.contentDiv = document.createElement('div');\n this.contentDiv.className = 'pds-tooltip__content';\n this.contentDiv.setAttribute('aria-hidden', this.opened ? 'false' : 'true');\n this.contentDiv.setAttribute('aria-live', this.opened ? 'polite' : 'off');\n this.contentDiv.setAttribute('role', 'tooltip');\n this.contentDiv.style.maxWidth = this.maxWidth;\n\n const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');\n const slottedContentContainer = contentSlotWrapper?.querySelector('[slot=\"content\"]') as HTMLElement | null;\n let hasSlottedContent = false;\n\n if (slottedContentContainer !== null) {\n const childrenToClone = Array.from(slottedContentContainer.childNodes);\n\n if (childrenToClone.length > 0) {\n const hasMeaningfulNode = childrenToClone.some(node =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\n );\n\n if (hasMeaningfulNode) {\n hasSlottedContent = true;\n childrenToClone.forEach((node /*, index*/) => {\n if (node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')) {\n this.contentDiv.appendChild(node.cloneNode(true));\n }\n });\n }\n }\n }\n\n if (!hasSlottedContent) {\n if (this.content !== '') {\n this.contentDiv.textContent = this.content;\n }\n }\n\n this.portalEl.appendChild(this.contentDiv);\n document.body.appendChild(this.portalEl);\n\n this.repositionPortal();\n\n if (this.contentDiv !== null) {\n this.overlayResizeObserver = new ResizeObserver(() => {\n this.repositionPortal();\n });\n this.overlayResizeObserver.observe(this.contentDiv);\n }\n\n // Add global listeners when portal is created\n window.addEventListener('scroll', this.handleScroll, true);\n window.addEventListener('popstate', this.handleSpaNavigation, true);\n window.addEventListener('hashchange', this.handleSpaNavigation, true);\n\n // Add ARIA attribute to trigger, now that portalEl and its ID are confirmed\n if (this.triggerEl !== null && this.portalEl.id !== '') {\n this.triggerEl.setAttribute('aria-describedby', this.portalEl.id);\n }\n }\n\n private removePortal() {\n if (this.overlayResizeObserver !== null && this.contentDiv !== null) {\n this.overlayResizeObserver.unobserve(this.contentDiv);\n this.overlayResizeObserver = null;\n }\n\n if (this.portalEl !== null) {\n window.removeEventListener('scroll', this.handleScroll, true);\n window.removeEventListener('popstate', this.handleSpaNavigation, true);\n window.removeEventListener('hashchange', this.handleSpaNavigation, true);\n document.body.removeChild(this.portalEl);\n this.portalEl = null;\n }\n\n // Remove ARIA attribute from trigger\n if (this.triggerEl !== null) {\n this.triggerEl.removeAttribute('aria-describedby');\n }\n this.contentDiv = null;\n }\n\n render() {\n const hostId = this.componentId || undefined;\n\n return (\n <Host id={hostId} class={{ 'pds-tooltip--is-open': this.opened }}>\n <span\n class=\"pds-tooltip__trigger\"\n onMouseEnter={this.handleShow}\n onMouseLeave={this.handleHide}\n onFocus={this.handleShow}\n onBlur={this.handleHide}\n ref={el => this.triggerEl = el}\n >\n <slot />\n </span>\n <div class=\"pds-tooltip__content-slot-wrapper\" style={{ display: 'none' }}>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-DVVPJPOu.system.js","sources":["src/components/pds-text/pds-text.scss?tag=pds-text&encapsulation=shadow","src/components/pds-text/pds-text.tsx"],"sourcesContent":[":host {\n display: inline;\n}\n\n:host([decoration=\"underline-dotted\"]) > * {\n text-decoration-color: var(--pine-color-grey-600);\n text-decoration-line: underline;\n text-decoration-style: dotted;\n text-decoration-thickness: 12%;\n text-underline-offset: 0.3rem;\n text-underline-position: under;\n}\n\n:host([decoration=\"strikethrough\"])>* {\n text-decoration: line-through;\n}\n\n/* stylelint-disable */\nh1 {\n font: var(--pine-typography-heading-1);\n letter-spacing: var(--pine-letter-spacing-heading-1);\n}\n\nh2 {\n font: var(--pine-typography-heading-2);\n letter-spacing: var(--pine-letter-spacing-heading-2);\n}\n\nh3 {\n font: var(--pine-typography-heading-3);\n letter-spacing: var(--pine-letter-spacing-heading-3);\n}\n\nh4 {\n font: var(--pine-typography-heading-4);\n letter-spacing: var(--pine-letter-spacing-heading-4);\n}\n\nh5 {\n font: var(--pine-typography-heading-5);\n letter-spacing: var(--pine-letter-spacing-heading-5);\n}\n\nh6 {\n font: var(--pine-typography-heading-6);\n letter-spacing: var(--pine-letter-spacing-heading-6);\n}\n\ncode, em, p, pre, strong {\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n}\n/* stylelint-enable */\n\ncode, pre {\n font-family: monospace;\n letter-spacing: 0;\n line-height: 1;\n}\n\nem {\n font-style: normal;\n}\n\nstrong {\n font-weight: bolder;\n}\n\n:host([truncate]) > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host([italic]) > * {\n font-style: italic;\n}\n\n// Colors/Variants/Sentiment\n\n// Variable is set in TSX\n// If color prop value isn't valid, will default to body text color\n.pds-text {\n color: var(--color, var(--pine-color-text));\n margin: var(--pine-dimension-none);\n}\n\n// Font Sizes\n$type-sizes: (\n 2xl: var(--pine-font-size-body-2xl),\n xl: var(--pine-font-size-body-xl),\n lg: var(--pine-font-size-body-lg),\n md: var(--pine-font-size-body-md),\n sm: var(--pine-font-size-body-sm),\n xs: var(--pine-font-size-body-xs),\n 2xs: var(--pine-font-size-body-2xs),\n h1: var(--pine-font-size-heading-1),\n h2: var(--pine-font-size-heading-2),\n h3: var(--pine-font-size-heading-3),\n h4: var(--pine-font-size-heading-4),\n h5: var(--pine-font-size-heading-5),\n h6: var(--pine-font-size-heading-6),\n);\n\n@mixin generate-type-sizes($type-sizes) {\n @each $key, $value in $type-sizes {\n .pds-text--size-#{$key} {\n font-size: $value;\n }\n }\n}\n\n@include generate-type-sizes($type-sizes);\n\n// Font Weights\n$type-weights: (\n extra-light: var(--pine-font-weight-extra-light),\n light: var(--pine-font-weight-light),\n regular: var(--pine-font-weight-regular),\n medium: var(--pine-font-weight-medium),\n semibold: var(--pine-font-weight-semi-bold),\n bold: var(--pine-font-weight-bold),\n);\n\n@mixin generate-type-weights($type-weights) {\n @each $key, $value in $type-weights {\n .pds-text--weight-#{$key} {\n font-weight: $value;\n }\n }\n}\n\n@include generate-type-weights($type-weights);\n\n// Gutter Sizes\n$type-gutters: (\n 2xl: var(--pine-dimension-2xl),\n xl: var(--pine-dimension-xl),\n lg: var(--pine-dimension-lg),\n md: var(--pine-dimension-md),\n sm: var(--pine-dimension-sm),\n xs: var(--pine-dimension-xs),\n 2xs: var(--pine-dimension-2xs),\n);\n\n@mixin generate-type-gutters($type-gutters) {\n @each $key, $value in $type-gutters {\n .pds-text--gutter-#{$key} {\n margin-block-end: $value;\n }\n }\n}\n\n@include generate-type-gutters($type-gutters);\n\n// Text Alignment\n$type-alignments: (\n start: start,\n center: center,\n end: end,\n justify: justify,\n);\n\n@mixin generate-type-alignments($type-alignments) {\n @each $key, $value in $type-alignments {\n .pds-text--align-#{$key} {\n text-align: $value;\n }\n }\n}\n\n@include generate-type-alignments($type-alignments);\n","import { Component, h, Prop, Element } from '@stencil/core';\nimport { setColor } from '../../utils/utils';\n\n@Component({\n tag: 'pds-text',\n styleUrl: 'pds-text.scss',\n shadow: true,\n})\nexport class PdsText {\n @Element() el: HTMLPdsTextElement;\n /**\n * Sets the text alignment.\n */\n @Prop() align?: 'start' | 'center' | 'end' | 'justify';\n\n /**\n * Sets the text color.\n */\n @Prop() color?: string;\n\n /**\n * Sets the text decoration.\n */\n @Prop() decoration?:\n | 'strikethrough'\n | 'underline-dotted';\n\n /**\n * Set the bottom margin for the text.\n */\n @Prop() gutter?:\n | '2xl'\n | 'xl'\n | 'lg'\n | 'md'\n | 'sm'\n | 'xs'\n | '2xs';\n\n /**\n * If set or `true`, the text will be italic.\n */\n @Prop() italic?: boolean;\n\n /**\n * Sets the font size.\n */\n @Prop() size?:\n | '2xl'\n | 'xl'\n | 'lg'\n | 'md'\n | 'sm'\n | 'xs'\n | '2xs'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6';\n\n /**\n * Sets the font weight.\n */\n @Prop() weight?:\n | 'extra-light'\n | 'light'\n | 'regular'\n | 'medium'\n | 'semibold'\n | 'bold';\n\n /**\n * Determines what semantic text tag to render.\n */\n @Prop() tag:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'p'\n | 'code'\n | 'pre'\n | 'strong'\n | 'em' = \"p\";\n\n /**\n * If set or `true`, the text will be truncated. Must add a `width` to the element.\n */\n @Prop() truncate?: boolean;\n\n render() {\n const Tag = this.tag;\n\n const typeClasses = `\n pds-text\n ${this.align !== undefined && this.align.trim() !== '' ? `pds-text--align-${this.align}` : ''}\n ${this.gutter !== undefined && this.gutter.trim() !== '' ? `pds-text--gutter-${this.gutter}` : ''}\n ${this.size !== undefined && this.size.trim() !== '' ? `pds-text--size-${this.size}` : ''}\n ${this.weight !== undefined && this.weight.trim() !== '' ? `pds-text--weight-${this.weight}` : ''}\n ${this.decoration !== undefined && this.decoration.trim() !== '' ? `pds-text--decoration-${this.decoration}` : ''}\n `;\n\n return (\n <Tag style={this.color && setColor(this.color)} class={typeClasses}>\n <slot />\n </Tag>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;MAAA,MAAM,UAAU,GAAG,m+GAAm+G;;YCQz+G,OAAO,uBAAA,MAAA;MALpB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAsEE;;MAEG;MACK,QAAA,IAAG,CAAA,GAAA,GAWF,GAAG;MAyBb;UAlBC,MAAM,GAAA;MACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;MAEpB,QAAA,MAAM,WAAW,GAAG;;QAEhB,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,EAAE;QAC3F,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,MAAM,CAAE,CAAA,GAAG,EAAE;QAC/F,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,eAAA,EAAkB,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,EAAE;QACvF,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,MAAM,CAAE,CAAA,GAAG,EAAE;QAC/F,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,qBAAA,EAAwB,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,EAAE;KAClH;MAED,QAAA,QACE,CAAC,CAAA,GAAG,qDAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAA,EAChE,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;;"}
1
+ {"version":3,"file":"p-D9LPgNmN.system.js","sources":["src/components/pds-text/pds-text.scss?tag=pds-text&encapsulation=shadow","src/components/pds-text/pds-text.tsx"],"sourcesContent":[":host {\n display: inline;\n}\n\n:host([decoration=\"underline-dotted\"]) > * {\n text-decoration-color: var(--pine-color-grey-600);\n text-decoration-line: underline;\n text-decoration-style: dotted;\n text-decoration-thickness: 12%;\n text-underline-offset: 0.3rem;\n text-underline-position: under;\n}\n\n:host([decoration=\"strikethrough\"])>* {\n text-decoration: line-through;\n}\n\n/* stylelint-disable */\nh1 {\n font: var(--pine-typography-heading-1);\n letter-spacing: var(--pine-letter-spacing-heading-1);\n}\n\nh2 {\n font: var(--pine-typography-heading-2);\n letter-spacing: var(--pine-letter-spacing-heading-2);\n}\n\nh3 {\n font: var(--pine-typography-heading-3);\n letter-spacing: var(--pine-letter-spacing-heading-3);\n}\n\nh4 {\n font: var(--pine-typography-heading-4);\n letter-spacing: var(--pine-letter-spacing-heading-4);\n}\n\nh5 {\n font: var(--pine-typography-heading-5);\n letter-spacing: var(--pine-letter-spacing-heading-5);\n}\n\nh6 {\n font: var(--pine-typography-heading-6);\n letter-spacing: var(--pine-letter-spacing-heading-6);\n}\n\ncode, em, p, pre, strong {\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n}\n/* stylelint-enable */\n\ncode, pre {\n font-family: monospace;\n letter-spacing: 0;\n line-height: 1;\n}\n\nem {\n font-style: normal;\n}\n\nstrong {\n font-weight: bolder;\n}\n\n:host([truncate]) > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host([italic]) > * {\n font-style: italic;\n}\n\n// Colors/Variants/Sentiment\n\n// Variable is set in TSX\n// If color prop value isn't valid, will default to body text color\n.pds-text {\n color: var(--color, var(--pine-color-text));\n margin: var(--pine-dimension-none);\n}\n\n// Font Sizes\n$type-sizes: (\n 2xl: var(--pine-font-size-body-2xl),\n xl: var(--pine-font-size-body-xl),\n lg: var(--pine-font-size-body-lg),\n md: var(--pine-font-size-body-md),\n sm: var(--pine-font-size-body-sm),\n xs: var(--pine-font-size-body-xs),\n 2xs: var(--pine-font-size-body-2xs),\n h1: var(--pine-font-size-heading-1),\n h2: var(--pine-font-size-heading-2),\n h3: var(--pine-font-size-heading-3),\n h4: var(--pine-font-size-heading-4),\n h5: var(--pine-font-size-heading-5),\n h6: var(--pine-font-size-heading-6),\n);\n\n@mixin generate-type-sizes($type-sizes) {\n @each $key, $value in $type-sizes {\n .pds-text--size-#{$key} {\n font-size: $value;\n }\n }\n}\n\n@include generate-type-sizes($type-sizes);\n\n// Font Weights\n$type-weights: (\n extra-light: var(--pine-font-weight-extra-light),\n light: var(--pine-font-weight-light),\n regular: var(--pine-font-weight-regular),\n medium: var(--pine-font-weight-medium),\n semibold: var(--pine-font-weight-semi-bold),\n bold: var(--pine-font-weight-bold),\n);\n\n@mixin generate-type-weights($type-weights) {\n @each $key, $value in $type-weights {\n .pds-text--weight-#{$key} {\n font-weight: $value;\n }\n }\n}\n\n@include generate-type-weights($type-weights);\n\n// Gutter Sizes\n$type-gutters: (\n 2xl: var(--pine-dimension-2xl),\n xl: var(--pine-dimension-xl),\n lg: var(--pine-dimension-lg),\n md: var(--pine-dimension-md),\n sm: var(--pine-dimension-sm),\n xs: var(--pine-dimension-xs),\n 2xs: var(--pine-dimension-2xs),\n);\n\n@mixin generate-type-gutters($type-gutters) {\n @each $key, $value in $type-gutters {\n .pds-text--gutter-#{$key} {\n margin-block-end: $value;\n }\n }\n}\n\n@include generate-type-gutters($type-gutters);\n\n// Text Alignment\n$type-alignments: (\n start: start,\n center: center,\n end: end,\n justify: justify,\n);\n\n@mixin generate-type-alignments($type-alignments) {\n @each $key, $value in $type-alignments {\n .pds-text--align-#{$key} {\n text-align: $value;\n }\n }\n}\n\n@include generate-type-alignments($type-alignments);\n","import { Component, h, Prop, Element } from '@stencil/core';\nimport { setColor } from '../../utils/utils';\n\n@Component({\n tag: 'pds-text',\n styleUrl: 'pds-text.scss',\n shadow: true,\n})\nexport class PdsText {\n @Element() el: HTMLPdsTextElement;\n /**\n * Sets the text alignment.\n */\n @Prop() align?: 'start' | 'center' | 'end' | 'justify';\n\n /**\n * Sets the text color.\n */\n @Prop() color?: string;\n\n /**\n * Sets the text decoration.\n */\n @Prop() decoration?:\n | 'strikethrough'\n | 'underline-dotted';\n\n /**\n * Set the bottom margin for the text.\n */\n @Prop() gutter?:\n | '2xl'\n | 'xl'\n | 'lg'\n | 'md'\n | 'sm'\n | 'xs'\n | '2xs';\n\n /**\n * If set or `true`, the text will be italic.\n */\n @Prop() italic?: boolean;\n\n /**\n * Sets the font size.\n */\n @Prop() size?:\n | '2xl'\n | 'xl'\n | 'lg'\n | 'md'\n | 'sm'\n | 'xs'\n | '2xs'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6';\n\n /**\n * Sets the font weight.\n */\n @Prop() weight?:\n | 'extra-light'\n | 'light'\n | 'regular'\n | 'medium'\n | 'semibold'\n | 'bold';\n\n /**\n * Determines what semantic text tag to render.\n */\n @Prop() tag:\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'p'\n | 'code'\n | 'pre'\n | 'strong'\n | 'em' = \"p\";\n\n /**\n * If set or `true`, the text will be truncated. Must add a `width` to the element.\n */\n @Prop({ reflect: true }) truncate?: boolean;\n\n render() {\n const Tag = this.tag;\n\n const typeClasses = `\n pds-text\n ${this.align !== undefined && this.align.trim() !== '' ? `pds-text--align-${this.align}` : ''}\n ${this.gutter !== undefined && this.gutter.trim() !== '' ? `pds-text--gutter-${this.gutter}` : ''}\n ${this.size !== undefined && this.size.trim() !== '' ? `pds-text--size-${this.size}` : ''}\n ${this.weight !== undefined && this.weight.trim() !== '' ? `pds-text--weight-${this.weight}` : ''}\n ${this.decoration !== undefined && this.decoration.trim() !== '' ? `pds-text--decoration-${this.decoration}` : ''}\n `;\n\n return (\n <Tag style={this.color && setColor(this.color)} class={typeClasses}>\n <slot />\n </Tag>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;MAAA,MAAM,UAAU,GAAG,m+GAAm+G;;YCQz+G,OAAO,uBAAA,MAAA;MALpB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAsEE;;MAEG;MACK,QAAA,IAAG,CAAA,GAAA,GAWF,GAAG;MAyBb;UAlBC,MAAM,GAAA;MACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;MAEpB,QAAA,MAAM,WAAW,GAAG;;QAEhB,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,EAAE;QAC3F,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,MAAM,CAAE,CAAA,GAAG,EAAE;QAC/F,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,eAAA,EAAkB,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,EAAE;QACvF,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,MAAM,CAAE,CAAA,GAAG,EAAE;QAC/F,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,qBAAA,EAAwB,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,EAAE;KAClH;MAED,QAAA,QACE,CAAC,CAAA,GAAG,qDAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAA,EAChE,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-DKSZziVY.system.js","sources":["src/components/pds-modal/pds-modal-header/pds-modal-header.scss?tag=pds-modal-header","src/components/pds-modal/pds-modal-header/pds-modal-header.tsx"],"sourcesContent":["pds-modal-header {\n display: block;\n width: 100%;\n}\n\n.pds-modal__header {\n width: 100%;\n}\n","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal-header',\n styleUrl: 'pds-modal-header.scss',\n shadow: false,\n})\nexport class PdsModalHeader {\n render() {\n return (\n <header class=\"pds-modal__header\">\n <slot></slot>\n </header>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;MAAA,MAAM,iBAAiB,GAAG,0EAA0E;;YCOvF,cAAc,+BAAA,MAAA;;;;UACzB,MAAM,GAAA;cACJ,QACE,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,KAAK,EAAC,mBAAmB,EAAA,EAC/B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACN;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-YuC61pNM.system.js","sources":["src/components/pds-table/pds-table-head-cell/pds-table-head-cell.scss?tag=pds-table-head-cell&encapsulation=shadow","src/components/pds-table/pds-table-head-cell/pds-table-head-cell.tsx"],"sourcesContent":[":host {\n --border-head-cell-default: var(--pine-border-width-thin) solid var(--pine-color-grey-100);\n\n --box-shadow-default: 3px 3px 6px -2px rgba(0, 0, 0, 0.1);\n\n border-block-end: var(--border-head-cell-default);\n color: var(--pine-color-text);\n display: table-cell;\n font-family: var(--pine-font-family-body);\n font-size: var(--pine-font-size);\n font-weight: var(--pine-font-weight-regular);\n line-height: var(--pine-line-height-body);\n padding: 12px;\n text-align: start;\n vertical-align: inherit;\n}\n\n:host(.is-compact) {\n padding-block: var(--pine-dimension-2xs)\n}\n\n:host(.is-fixed) {\n background: var(--pine-color-background-container);\n left: var(--pine-dimension-none);\n position: sticky;\n z-index: 1;\n}\n\n// box shadow when table has scrolled and cell is fixed\n:host(.has-scrolled.is-fixed) {\n box-shadow: var(--box-shadow-default);\n}\n\n:host(.is-sortable) {\n cursor: pointer;\n\n pds-icon {\n margin-inline-start: var(--pine-dimension-2xs);\n padding-block-start: 2px;\n position: absolute;\n }\n}\n\n:host(.is-sortable:hover),\n:host(.is-active) {\n color: var(--pine-color-text-active);\n}\n","import { Component, Element, Host, Prop, h, Event, EventEmitter, State } from '@stencil/core';\n\nimport { downSmall, upSmall } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-table-head-cell',\n styleUrls: ['pds-table-head-cell.scss'],\n shadow: true,\n})\nexport class PdsTableHeadCell {\n @Element() hostElement: HTMLPdsTableHeadCellElement;\n private tableRef: HTMLPdsTableElement;\n\n /**\n * Determines whether the table column is sortable when set to `true`.\n */\n @Prop() sortable: boolean;\n\n /**\n * Event emitted to signal that a table column header has been sorted, providing information about the sorted column's name and sorting direction.\n */\n @Event() pdsTableSort: EventEmitter<{ column: string; direction: string }>;\n\n /**\n * The direction of sorting.\n */\n @State() private sortingDirection: 'asc' | 'desc' = 'asc';\n\n /**\n * Determines if the table is currently scrolling.\n * @defaultValue false\n */\n @State() private tableScrolling: boolean = false;\n\n /**\n * Determines if the table row is currently selected.\n * @defaultValue false\n */\n @State() isSelected: boolean = false;\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n\n componentDidLoad() {\n if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {\n this.tableRef.addEventListener('scroll', this.handleScroll);\n }\n }\n\n private handleScroll = () => {\n if (this.tableRef.scrollLeft > 0) {\n this.tableScrolling = true;\n } else {\n this.tableScrolling = false;\n }\n };\n\n private toggleSort = () => {\n if (this.sortable) {\n const column = this.hostElement.innerText.trim();\n this.sortingDirection = this.sortingDirection === 'asc' ? 'desc' : 'asc';\n\n this.tableRef.querySelectorAll('pds-table-head-cell').forEach((headCell) => {\n headCell.classList.remove('is-active');\n });\n\n this.hostElement.classList.toggle('is-active');\n this.pdsTableSort.emit({ column, direction: this.sortingDirection });\n }\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.tableRef && this.tableRef.compact) {\n classNames.push('is-compact');\n }\n\n if (this.sortable) {\n classNames.push('is-sortable');\n }\n\n if (this.sortable && this.sortingDirection !== null) {\n classNames.push('sort-' + this.sortingDirection);\n }\n\n if (this.tableRef && this.tableRef.fixedColumn && this.tableScrolling) {\n classNames.push('has-scrolled');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"columnheader\"\n onClick={this.toggleSort}\n style={\n this.tableRef &&\n this.tableRef.fixedColumn &&\n this.tableRef.selectable\n ? { '--fixed-cell-position': '40px' }\n : {}\n }\n >\n <slot></slot>\n {this.sortable && (\n <pds-icon icon={this.sortingDirection === 'asc' ? upSmall : downSmall} />\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;MAAA,MAAM,mBAAmB,GAAG,snCAAsnC;;YCSroC,gBAAgB,kCAAA,MAAA;MAL7B,IAAA,WAAA,CAAA,OAAA,EAAA;;;MAmBE;;MAEG;MACc,QAAA,IAAgB,CAAA,gBAAA,GAAmB,KAAK;MAEzD;;;MAGG;MACc,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK;MAEhD;;;MAGG;MACM,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK;MAY5B,QAAA,IAAY,CAAA,YAAA,GAAG,MAAK;kBAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE;MAChC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;uBACrB;MACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;MAE/B,SAAC;MAEO,QAAA,IAAU,CAAA,UAAA,GAAG,MAAK;MACxB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;sBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE;MAChD,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK;MAExE,gBAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;MACzE,oBAAA,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;MACxC,iBAAC,CAAC;sBAEF,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;MAC9C,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;;MAExE,SAAC;MA6CF;UA3EC,mBAAmB,GAAA;cACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAwB;;UAG9E,gBAAgB,GAAA;MACd,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;kBAC1E,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;;;UA0BvD,UAAU,GAAA;cAChB,MAAM,UAAU,GAAG,EAAE;cAErB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;MAC1C,YAAA,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;MAG/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,YAAA,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;;cAGhC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;kBACnD,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;;MAGlD,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;MACrE,YAAA,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;;MAGjC,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;UAG9B,MAAM,GAAA;MACJ,QAAA,QACE,CAAC,CAAA,IAAI,EACH,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,IAAI,EAAC,cAAc,EACnB,OAAO,EAAE,IAAI,CAAC,UAAU,EACxB,KAAK,EACH,IAAI,CAAC,QAAQ;sBACb,IAAI,CAAC,QAAQ,CAAC,WAAW;sBACzB,IAAI,CAAC,QAAQ,CAAC;MACZ,kBAAE,EAAE,uBAAuB,EAAE,MAAM;wBACjC,EAAE,EAAA,EAGR,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACZ,IAAI,CAAC,QAAQ,KACZ,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAU,IAAI,EAAE,IAAI,CAAC,gBAAgB,KAAK,KAAK,GAAG,OAAO,GAAG,SAAS,EAAI,CAAA,CAC1E,CACI;;;;;;;;;;;;"}
1
+ {"version":3,"file":"p-DN9puCWI.system.js","sources":["src/components/pds-table/pds-table-head-cell/pds-table-head-cell.scss?tag=pds-table-head-cell&encapsulation=shadow","src/components/pds-table/pds-table-head-cell/pds-table-head-cell.tsx"],"sourcesContent":[":host {\n --border-head-cell-default: var(--pine-border-width-thin) solid var(--pine-color-grey-100);\n\n --box-shadow-default: 3px 3px 6px -2px rgba(0, 0, 0, 0.1);\n\n border-block-end: var(--border-head-cell-default);\n color: var(--pine-color-text);\n display: table-cell;\n font-family: var(--pine-font-family-body);\n font-size: var(--pine-font-size);\n font-weight: var(--pine-font-weight-regular);\n line-height: var(--pine-line-height-body);\n padding: 12px;\n text-align: start;\n vertical-align: inherit;\n}\n\n:host(.is-compact) {\n padding-block: var(--pine-dimension-2xs)\n}\n\n:host(.is-fixed) {\n background: var(--pine-color-background-container);\n left: var(--pine-dimension-none);\n position: sticky;\n z-index: 1;\n}\n\n// box shadow when table has scrolled and cell is fixed\n:host(.has-scrolled.is-fixed) {\n box-shadow: var(--box-shadow-default);\n}\n\n:host(.is-sortable) {\n cursor: pointer;\n\n pds-icon {\n margin-inline-start: var(--pine-dimension-2xs);\n padding-block-start: 2px;\n position: absolute;\n }\n}\n\n:host(.is-sortable:hover),\n:host(.is-active) {\n color: var(--pine-color-text-active);\n}\n","import { Component, Element, Host, Prop, h, Event, EventEmitter, State } from '@stencil/core';\n\nimport { downSmall, upSmall } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-table-head-cell',\n styleUrls: ['pds-table-head-cell.scss'],\n shadow: true,\n})\nexport class PdsTableHeadCell {\n @Element() hostElement: HTMLPdsTableHeadCellElement;\n private tableRef: HTMLPdsTableElement;\n\n /**\n * Determines whether the table column is sortable when set to `true`.\n */\n @Prop() sortable: boolean;\n\n /**\n * Event emitted to signal that a table column header has been sorted, providing information about the sorted column's name and sorting direction.\n */\n @Event() pdsTableSort: EventEmitter<{ column: string; direction: string }>;\n\n /**\n * The direction of sorting.\n */\n @State() private sortingDirection: 'asc' | 'desc' = 'asc';\n\n /**\n * Determines if the table is currently scrolling.\n * @defaultValue false\n */\n @State() private tableScrolling: boolean = false;\n\n /**\n * Determines if the table row is currently selected.\n * @defaultValue false\n */\n @State() isSelected: boolean = false;\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n\n componentDidLoad() {\n if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {\n this.tableRef.addEventListener('scroll', this.handleScroll);\n }\n }\n\n private handleScroll = () => {\n if (this.tableRef.scrollLeft > 0) {\n this.tableScrolling = true;\n } else {\n this.tableScrolling = false;\n }\n };\n\n private toggleSort = () => {\n if (this.sortable) {\n const column = this.hostElement.innerText.trim();\n this.sortingDirection = this.sortingDirection === 'asc' ? 'desc' : 'asc';\n\n this.tableRef.querySelectorAll('pds-table-head-cell').forEach((headCell) => {\n headCell.classList.remove('is-active');\n });\n\n this.hostElement.classList.toggle('is-active');\n this.pdsTableSort.emit({ column, direction: this.sortingDirection });\n }\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.tableRef && this.tableRef.compact) {\n classNames.push('is-compact');\n }\n\n if (this.sortable) {\n classNames.push('is-sortable');\n }\n\n if (this.sortable && this.sortingDirection !== null) {\n classNames.push('sort-' + this.sortingDirection);\n }\n\n if (this.tableRef && this.tableRef.fixedColumn && this.tableScrolling) {\n classNames.push('has-scrolled');\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"columnheader\"\n onClick={this.toggleSort}\n style={\n this.tableRef &&\n this.tableRef.fixedColumn &&\n this.tableRef.selectable\n ? { '--fixed-cell-position': '40px' }\n : {}\n }\n >\n <slot></slot>\n {this.sortable && (\n <pds-icon icon={this.sortingDirection === 'asc' ? upSmall : downSmall} />\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-C0cdB2AV.system.js","sources":["src/components/pds-tabs/pds-tabs.scss?tag=pds-tabs&encapsulation=shadow","src/components/pds-tabs/pds-tabs.tsx"],"sourcesContent":[":host {\n /**\n * @prop --tabs-dimension-panel-margin-top: Optional margin-top for panels\n */\n --tabs-dimension-panel-margin-top: var(--pine-dimension-none);\n /**\n * @prop --tabs-dimension-panel-padding: Optional padding for panels\n */\n --tabs-dimension-panel-padding: 0;\n\n display: block;\n}\n\n.pds-tabs__tablist {\n display: flex;\n flex-wrap: wrap;\n gap: var(--pine-dimension-md);\n}\n\n:host(.pds-tabs--availability) .pds-tabs__tablist {\n gap: var(--pine-dimension-xs);\n}\n\n:host(.pds-tabs--filter) .pds-tabs__tablist {\n gap: var(--pine-dimension-sm);\n}\n\n:host(.pds-tabs--pill) .pds-tabs__tablist {\n background-color: var(--pine-color-grey-100);\n border: var(--pine-border-width-thin) solid var(--pine-color-grey-200);\n border-radius: var(--pine-dimension-100);\n display: inline-flex;\n display: flex;\n gap: 0;\n height: var(--pine-dimension-450);\n}\n","import { Component, Element, Host, h, Prop, Listen } from '@stencil/core';\n\n /**\n * @slot tabs - Content is placed within the `div[role=\"tablist\"]` element as children\n * @slot tabpanels - Content is placed directly after the `div[role=\"tablist\"]` element as siblings\n */\n@Component({\n tag: 'pds-tabs',\n styleUrls: ['pds-tabs.scss'],\n shadow: true,\n})\nexport class PdsTabs {\n private tabs;\n private tabPanels;\n\n @Element() el: HTMLPdsTabsElement;\n\n /**\n * Sets the aria-label attached to the tablist element\n */\n @Prop() tablistLabel!: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets tabs variant styles as outlined in Figma documentation\n */\n @Prop() variant!: 'primary' | 'availability' | 'filter' | 'pill';\n\n /**\n * Sets the starting active tab name and maintains the name as the component re-renders\n */\n @Prop({mutable: true}) activeTabName!: string;\n\n /**\n * Sets the starting active tab index number and maintains the index number as the component re-renders\n */\n /** @internal */\n @Prop({mutable: true}) activeTabIndex: number;\n\n @Listen('pdsTabClick', {\n target: 'body',\n })\n tabClickHandler(event: CustomEvent<any>) {\n if (this.componentId === event.detail[1]) {\n this.activeTabIndex = event.detail[0];\n this.activeTabName = this.tabs[this.activeTabIndex].name;\n }\n }\n\n @Listen('keydown', {})\n handleKeyDown(ev: KeyboardEvent) {\n const keySet = [\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"];\n\n if (keySet.includes(ev.key)) {\n ev.preventDefault();\n this.moveActiveTab(ev.key);\n }\n }\n\n private moveActiveTab(key: string) {\n const firstTabNumber = 0;\n const lastTabNumber = this.tabs.length - 1;\n\n let moveFocusTo = null;\n\n switch (key) {\n case 'ArrowLeft':\n moveFocusTo = (this.activeTabIndex === firstTabNumber) ? lastTabNumber : (this.activeTabIndex + (-1));\n break;\n case 'ArrowRight':\n moveFocusTo = (this.activeTabIndex === lastTabNumber) ? firstTabNumber : (this.activeTabIndex + 1);\n break;\n case 'Home':\n moveFocusTo = firstTabNumber;\n break;\n case 'End':\n moveFocusTo = lastTabNumber;\n break;\n }\n\n // Move focus to the button element within `pds-tab`\n this.tabs[moveFocusTo].children[0].focus();\n this.activeTabName = this.tabs[moveFocusTo].name;\n this.activeTabIndex = moveFocusTo;\n }\n\n private findAllChildren() {\n this.tabs = this.el.querySelectorAll('pds-tab');\n this.tabPanels = this.el.querySelectorAll('pds-tabpanel');\n }\n\n private propGeneration(child, index = 0) {\n child.parentComponentId = this.componentId.toString();\n child.variant = this.variant.toString();\n child.selected = (this.activeTabName === child.name) ? true : false;\n child['index'] = index;\n }\n\n private passPropsToChildren() {\n this.tabs.forEach((child, index) => {\n if (this.activeTabName === child.name) this.activeTabIndex = index;\n this.propGeneration(child, index);\n });\n\n this.tabPanels.forEach((child) => {\n this.propGeneration(child);\n });\n }\n\n private classNames() {\n let className = `pds-tabs`;\n if (this.variant && this.variant != 'primary') {\n const variantClassName = `pds-tabs--${this.variant}`;\n className += ' ' + variantClassName;\n }\n\n return className;\n };\n\n componentWillLoad() {\n this.findAllChildren();\n }\n\n componentWillRender() {\n this.passPropsToChildren();\n }\n\n render() {\n return (\n <Host active-tab-name={this.activeTabName} class={this.classNames()} id={this.componentId}>\n <div class=\"pds-tabs__tablist\" role=\"tablist\" aria-label={this.tablistLabel}>\n <slot name=\"tabs\" />\n </div>\n <slot name=\"tabpanels\" />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-DS7q5AvX.system.js","sources":["src/components/pds-tabs/pds-tabs.scss?tag=pds-tabs&encapsulation=shadow","src/components/pds-tabs/pds-tabs.tsx"],"sourcesContent":[":host {\n /**\n * @prop --tabs-dimension-panel-margin-top: Optional margin-top for panels\n */\n --tabs-dimension-panel-margin-top: var(--pine-dimension-none);\n /**\n * @prop --tabs-dimension-panel-padding: Optional padding for panels\n */\n --tabs-dimension-panel-padding: 0;\n\n display: block;\n}\n\n.pds-tabs__tablist {\n display: flex;\n flex-wrap: wrap;\n gap: var(--pine-dimension-md);\n}\n\n:host(.pds-tabs--availability) .pds-tabs__tablist {\n gap: var(--pine-dimension-xs);\n}\n\n:host(.pds-tabs--filter) .pds-tabs__tablist {\n gap: var(--pine-dimension-sm);\n}\n\n:host(.pds-tabs--pill) .pds-tabs__tablist {\n background-color: var(--pine-color-grey-100);\n border: var(--pine-border-width-thin) solid var(--pine-color-grey-200);\n border-radius: var(--pine-dimension-100);\n display: inline-flex;\n display: flex;\n gap: 0;\n height: var(--pine-dimension-450);\n}\n","import { Component, Element, Host, h, Prop, Listen } from '@stencil/core';\n\n /**\n * @slot tabs - Content is placed within the `div[role=\"tablist\"]` element as children\n * @slot tabpanels - Content is placed directly after the `div[role=\"tablist\"]` element as siblings\n */\n@Component({\n tag: 'pds-tabs',\n styleUrls: ['pds-tabs.scss'],\n shadow: true,\n})\nexport class PdsTabs {\n private tabs;\n private tabPanels;\n\n @Element() el: HTMLPdsTabsElement;\n\n /**\n * Sets the aria-label attached to the tablist element\n */\n @Prop() tablistLabel!: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Sets tabs variant styles as outlined in Figma documentation\n */\n @Prop() variant!: 'primary' | 'availability' | 'filter' | 'pill';\n\n /**\n * Sets the starting active tab name and maintains the name as the component re-renders\n */\n @Prop({mutable: true}) activeTabName!: string;\n\n /**\n * Sets the starting active tab index number and maintains the index number as the component re-renders\n */\n /** @internal */\n @Prop({mutable: true}) activeTabIndex: number;\n\n @Listen('pdsTabClick', {\n target: 'body',\n })\n tabClickHandler(event: CustomEvent<any>) {\n if (this.componentId === event.detail[1]) {\n this.activeTabIndex = event.detail[0];\n this.activeTabName = this.tabs[this.activeTabIndex].name;\n }\n }\n\n @Listen('keydown', {})\n handleKeyDown(ev: KeyboardEvent) {\n const keySet = [\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"];\n\n if (keySet.includes(ev.key)) {\n ev.preventDefault();\n this.moveActiveTab(ev.key);\n }\n }\n\n private moveActiveTab(key: string) {\n const firstTabNumber = 0;\n const lastTabNumber = this.tabs.length - 1;\n\n let moveFocusTo = null;\n\n switch (key) {\n case 'ArrowLeft':\n moveFocusTo = (this.activeTabIndex === firstTabNumber) ? lastTabNumber : (this.activeTabIndex + (-1));\n break;\n case 'ArrowRight':\n moveFocusTo = (this.activeTabIndex === lastTabNumber) ? firstTabNumber : (this.activeTabIndex + 1);\n break;\n case 'Home':\n moveFocusTo = firstTabNumber;\n break;\n case 'End':\n moveFocusTo = lastTabNumber;\n break;\n }\n\n // Move focus to the button element within `pds-tab`\n this.tabs[moveFocusTo].children[0].focus();\n this.activeTabName = this.tabs[moveFocusTo].name;\n this.activeTabIndex = moveFocusTo;\n }\n\n private findAllChildren() {\n this.tabs = this.el.querySelectorAll('pds-tab');\n this.tabPanels = this.el.querySelectorAll('pds-tabpanel');\n }\n\n private propGeneration(child, index = 0) {\n child.parentComponentId = this.componentId.toString();\n child.variant = this.variant.toString();\n child.selected = (this.activeTabName === child.name) ? true : false;\n child['index'] = index;\n }\n\n private passPropsToChildren() {\n this.tabs.forEach((child, index) => {\n if (this.activeTabName === child.name) this.activeTabIndex = index;\n this.propGeneration(child, index);\n });\n\n this.tabPanels.forEach((child) => {\n this.propGeneration(child);\n });\n }\n\n private classNames() {\n let className = `pds-tabs`;\n if (this.variant && this.variant != 'primary') {\n const variantClassName = `pds-tabs--${this.variant}`;\n className += ' ' + variantClassName;\n }\n\n return className;\n };\n\n componentWillLoad() {\n this.findAllChildren();\n }\n\n componentWillRender() {\n this.passPropsToChildren();\n }\n\n render() {\n return (\n <Host active-tab-name={this.activeTabName} class={this.classNames()} id={this.componentId}>\n <div class=\"pds-tabs__tablist\" role=\"tablist\" aria-label={this.tablistLabel}>\n <slot name=\"tabs\" />\n </div>\n <slot name=\"tabpanels\" />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-BSINexOf.system.js","sources":["src/components/pds-row/pds-row.scss?tag=pds-row","src/components/pds-row/pds-row.tsx"],"sourcesContent":[":host {\n --row-gap-y: var(--pine-dimension-125);\n --row-gap-x: var(--pine-dimension-125);\n\n display: block;\n margin-block-end: calc(var(--row-gap-y) * -1);\n margin-block-start: calc(var(--row-gap-y) * -1);\n margin-inline-end: calc(var(--row-gap-x) * -0.5);\n margin-inline-start: calc(var(--row-gap-x) * -0.5);\n}\n\n.pds-row {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n margin-block-end: calc(var(--row-gap-y) * -1);\n margin-block-start: calc(var(--row-gap-y) * -1);\n margin-inline-end: calc(var(--row-gap-x) * -1);\n margin-inline-start: calc(var(--row-gap-x) * -1);\n\n @layer layout {\n > * {\n padding-block-end: calc(var(--row-gap-y));\n padding-block-start: calc(var(--row-gap-y));\n padding-inline-end: calc(var(--row-gap-x));\n padding-inline-start: calc(var(--row-gap-x));\n }\n }\n}\n\n.pds-row--no-wrap {\n flex-wrap: nowrap;\n}\n\n.pds-row--border {\n border: var(--pine-border);\n}\n\n// Justify Content helpers\n.pds-justify-content-start {\n justify-content: start;\n}\n\n.pds-justify-content-center {\n justify-content: center;\n}\n\n.pds-justify-content-end {\n justify-content: end;\n}\n\n.pds-justify-content-space-between {\n justify-content: space-between;\n}\n\n.pds-justify-content-space-around {\n justify-content: space-around;\n}\n\n.pds-justify-content-space-evenly {\n justify-content: space-evenly;\n}\n\n// Align Items helpers\n.pds-align-items-start {\n align-items: start;\n}\n\n.pds-align-items-center {\n align-items: center;\n}\n\n.pds-align-items-end {\n align-items: end;\n}\n\n.pds-align-items-stretch {\n align-items: stretch;\n}\n\n.pds-align-items-baseline {\n align-items: baseline;\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\nimport { BoxTShirtSizeType } from '../../utils/types';\n\n@Component({\n tag: 'pds-row',\n styleUrl: 'pds-row.scss',\n})\nexport class PdsRow {\n /**\n * Defines the vertical alignment of the row items.\n * @defaultValue start\n */\n @Prop() alignItems?: `start` | `center` | `end` | `baseline` | `stretch`;\n\n /**\n * If `true`, the row will have a border.\n */\n @Prop() border? = false;\n\n /**\n * Defines the spacing between the row items.\n */\n @Prop() colGap?: BoxTShirtSizeType | null;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Defines the horizontal alignment of the row items.\n * @defaultValue start\n */\n @Prop() justifyContent?: `start` | `center` | `end` | `space-between` | `space-around`;\n\n /**\n * The minimum height of the row. Used in conjunction with alignment props\n */\n @Prop() minHeight?: string;\n\n /**\n * If `true`, the row items will not wrap to the next line if horizontal space is not available.\n */\n @Prop() noWrap? = false;\n\n private colGapMap: { [key in BoxTShirtSizeType]: string } = {\n none: '0',\n xxs: '.25rem',\n xs: '.5rem',\n sm: '1rem',\n md: '1.5rem',\n lg: '2.25rem',\n xl: '3rem',\n xxl: '4rem',\n };\n\n render() {\n const rowClasses = `\n ${this.alignItems !== undefined && this.alignItems.trim() !== '' ? `pds-align-items-${this.alignItems}` : ''}\n ${this.border ? 'pds-row--border' : ''}\n ${this.justifyContent !== undefined && this.justifyContent.trim() !== '' ? `pds-justify-content-${this.justifyContent}` : ''}\n ${this.noWrap ? 'pds-row--no-wrap' : ''}\n `;\n\n const rowInlineStyles = {\n ...(this.colGap && {\n '--row-gap-x': this.colGap !== undefined && this.colGap.trim() !== '' ? this.colGapMap[this.colGap] : '',\n '--row-gap-y': this.colGap !== undefined && this.colGap.trim() !== '' ? this.colGapMap[this.colGap] : '',\n }),\n ...(this.minHeight && {\n 'min-height': this.minHeight,\n }),\n };\n\n return <Host class={`pds-row ${rowClasses}`} style={rowInlineStyles}></Host>;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;MAAA,MAAM,SAAS,GAAG,wnFAAwnF;;YCQ7nF,MAAM,sBAAA,MAAA;MAJnB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAWE;;MAEG;MACK,QAAA,IAAM,CAAA,MAAA,GAAI,KAAK;MAuBvB;;MAEG;MACK,QAAA,IAAM,CAAA,MAAA,GAAI,KAAK;cAEf,IAAA,CAAA,SAAS,GAA2C;MAC1D,YAAA,IAAI,EAAE,GAAG;MACT,YAAA,GAAG,EAAE,QAAQ;MACb,YAAA,EAAE,EAAE,OAAO;MACX,YAAA,EAAE,EAAE,MAAM;MACV,YAAA,EAAE,EAAE,QAAQ;MACZ,YAAA,EAAE,EAAE,SAAS;MACb,YAAA,EAAE,EAAE,MAAM;MACV,YAAA,GAAG,EAAE,MAAM;eACZ;MAsBF;UApBC,MAAM,GAAA;MACJ,QAAA,MAAM,UAAU,GAAG;MACjB,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,EAAE;MAC1G,IAAI,CAAC,MAAM,GAAG,iBAAiB,GAAG,EAAE;MACpC,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,oBAAA,EAAuB,IAAI,CAAC,cAAc,CAAE,CAAA,GAAG,EAAE;MAC1H,IAAI,CAAC,MAAM,GAAG,kBAAkB,GAAG,EAAE;GACxC;MAEC,QAAA,MAAM,eAAe,GAChB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAC,IAAI,CAAC,MAAM,IAAI;MACjB,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;MACxG,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;MACzG,SAAA,EACE,GAAC,IAAI,CAAC,SAAS,IAAI;kBACpB,YAAY,EAAE,IAAI,CAAC,SAAS;MAC7B,SAAA,EACF;cAED,OAAO,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,CAAW,QAAA,EAAA,UAAU,EAAE,EAAE,KAAK,EAAE,eAAe,GAAS;;;;;;;;;;;"}
1
+ {"version":3,"file":"p-DV_GadHU.system.js","sources":["src/components/pds-row/pds-row.scss?tag=pds-row","src/components/pds-row/pds-row.tsx"],"sourcesContent":[":host {\n --row-gap-y: var(--pine-dimension-125);\n --row-gap-x: var(--pine-dimension-125);\n\n display: block;\n margin-block-end: calc(var(--row-gap-y) * -1);\n margin-block-start: calc(var(--row-gap-y) * -1);\n margin-inline-end: calc(var(--row-gap-x) * -0.5);\n margin-inline-start: calc(var(--row-gap-x) * -0.5);\n}\n\n.pds-row {\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n margin-block-end: calc(var(--row-gap-y) * -1);\n margin-block-start: calc(var(--row-gap-y) * -1);\n margin-inline-end: calc(var(--row-gap-x) * -1);\n margin-inline-start: calc(var(--row-gap-x) * -1);\n\n @layer layout {\n > * {\n padding-block-end: calc(var(--row-gap-y));\n padding-block-start: calc(var(--row-gap-y));\n padding-inline-end: calc(var(--row-gap-x));\n padding-inline-start: calc(var(--row-gap-x));\n }\n }\n}\n\n.pds-row--no-wrap {\n flex-wrap: nowrap;\n}\n\n.pds-row--border {\n border: var(--pine-border);\n}\n\n// Justify Content helpers\n.pds-justify-content-start {\n justify-content: start;\n}\n\n.pds-justify-content-center {\n justify-content: center;\n}\n\n.pds-justify-content-end {\n justify-content: end;\n}\n\n.pds-justify-content-space-between {\n justify-content: space-between;\n}\n\n.pds-justify-content-space-around {\n justify-content: space-around;\n}\n\n.pds-justify-content-space-evenly {\n justify-content: space-evenly;\n}\n\n// Align Items helpers\n.pds-align-items-start {\n align-items: start;\n}\n\n.pds-align-items-center {\n align-items: center;\n}\n\n.pds-align-items-end {\n align-items: end;\n}\n\n.pds-align-items-stretch {\n align-items: stretch;\n}\n\n.pds-align-items-baseline {\n align-items: baseline;\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\nimport { BoxTShirtSizeType } from '../../utils/types';\n\n@Component({\n tag: 'pds-row',\n styleUrl: 'pds-row.scss',\n})\nexport class PdsRow {\n /**\n * Defines the vertical alignment of the row items.\n * @defaultValue start\n */\n @Prop() alignItems?: `start` | `center` | `end` | `baseline` | `stretch`;\n\n /**\n * If `true`, the row will have a border.\n */\n @Prop() border? = false;\n\n /**\n * Defines the spacing between the row items.\n */\n @Prop() colGap?: BoxTShirtSizeType | null;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Defines the horizontal alignment of the row items.\n * @defaultValue start\n */\n @Prop() justifyContent?: `start` | `center` | `end` | `space-between` | `space-around`;\n\n /**\n * The minimum height of the row. Used in conjunction with alignment props\n */\n @Prop() minHeight?: string;\n\n /**\n * If `true`, the row items will not wrap to the next line if horizontal space is not available.\n */\n @Prop() noWrap? = false;\n\n private colGapMap: { [key in BoxTShirtSizeType]: string } = {\n none: '0',\n xxs: '.25rem',\n xs: '.5rem',\n sm: '1rem',\n md: '1.5rem',\n lg: '2.25rem',\n xl: '3rem',\n xxl: '4rem',\n };\n\n render() {\n const rowClasses = `\n ${this.alignItems !== undefined && this.alignItems.trim() !== '' ? `pds-align-items-${this.alignItems}` : ''}\n ${this.border ? 'pds-row--border' : ''}\n ${this.justifyContent !== undefined && this.justifyContent.trim() !== '' ? `pds-justify-content-${this.justifyContent}` : ''}\n ${this.noWrap ? 'pds-row--no-wrap' : ''}\n `;\n\n const rowInlineStyles = {\n ...(this.colGap && {\n '--row-gap-x': this.colGap !== undefined && this.colGap.trim() !== '' ? this.colGapMap[this.colGap] : '',\n '--row-gap-y': this.colGap !== undefined && this.colGap.trim() !== '' ? this.colGapMap[this.colGap] : '',\n }),\n ...(this.minHeight && {\n 'min-height': this.minHeight,\n }),\n };\n\n return <Host class={`pds-row ${rowClasses}`} style={rowInlineStyles}></Host>;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;MAAA,MAAM,SAAS,GAAG,wnFAAwnF;;YCQ7nF,MAAM,sBAAA,MAAA;MAJnB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAWE;;MAEG;MACK,QAAA,IAAM,CAAA,MAAA,GAAI,KAAK;MAuBvB;;MAEG;MACK,QAAA,IAAM,CAAA,MAAA,GAAI,KAAK;cAEf,IAAA,CAAA,SAAS,GAA2C;MAC1D,YAAA,IAAI,EAAE,GAAG;MACT,YAAA,GAAG,EAAE,QAAQ;MACb,YAAA,EAAE,EAAE,OAAO;MACX,YAAA,EAAE,EAAE,MAAM;MACV,YAAA,EAAE,EAAE,QAAQ;MACZ,YAAA,EAAE,EAAE,SAAS;MACb,YAAA,EAAE,EAAE,MAAM;MACV,YAAA,GAAG,EAAE,MAAM;eACZ;MAsBF;UApBC,MAAM,GAAA;MACJ,QAAA,MAAM,UAAU,GAAG;MACjB,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,EAAE;MAC1G,IAAI,CAAC,MAAM,GAAG,iBAAiB,GAAG,EAAE;MACpC,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAA,oBAAA,EAAuB,IAAI,CAAC,cAAc,CAAE,CAAA,GAAG,EAAE;MAC1H,IAAI,CAAC,MAAM,GAAG,kBAAkB,GAAG,EAAE;GACxC;MAEC,QAAA,MAAM,eAAe,GAChB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAC,IAAI,CAAC,MAAM,IAAI;MACjB,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;MACxG,YAAA,aAAa,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;MACzG,SAAA,EACE,GAAC,IAAI,CAAC,SAAS,IAAI;kBACpB,YAAY,EAAE,IAAI,CAAC,SAAS;MAC7B,SAAA,EACF;cAED,OAAO,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,CAAW,QAAA,EAAA,UAAU,EAAE,EAAE,KAAK,EAAE,eAAe,GAAS;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-BgcVBzVE.system.js","sources":["src/components/pds-table/pds-table.scss?tag=pds-table&encapsulation=shadow","src/components/pds-table/pds-table.tsx"],"sourcesContent":[":host {\n --color-background-default: var(--pine-color-white);\n\n background: var(--color-background-default);\n border-collapse: separate;\n box-sizing: border-box;\n display: table;\n width: 100%;\n}\n\n:host(:focus-visible) {\n outline: var(--pine-outline-focus);\n}\n\n:host(.is-responsive) {\n background-attachment: local, local, scroll, scroll;\n background-image: linear-gradient(to right, var(--color-background-default), var(--color-background-default)),\n linear-gradient(to right, var(--color-background-default), var(--color-background-default)),\n linear-gradient(to right, rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0)),\n linear-gradient(to left, rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0));\n background-position: left center, right center, left center, right center;\n background-repeat: no-repeat;\n background-size: 4px 100%, 4px 100%, 4px 100%, 4px 100%;\n display: block;\n margin: 0 auto;\n max-width: fit-content;\n overflow-x: auto;\n white-space: nowrap;\n}\n","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\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 * 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 checkbox is clicked, carrying the rowIndex and selected value.\n */\n @Event() pdsTableSelect: EventEmitter<{ rowIndex: number; isSelected: boolean }>;\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 componentWillLoad() {\n this.sortingColumn = null;\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 // 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);\n } else {\n return valueB.localeCompare(valueA);\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 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 headerCheckbox.checked = allSelectedRows;\n headerCheckbox.indeterminate = !allSelectedRows && !noneSelectedRows;\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-DbVkYdnF.system.js","sources":["src/components/pds-table/pds-table.scss?tag=pds-table&encapsulation=shadow","src/components/pds-table/pds-table.tsx"],"sourcesContent":[":host {\n --color-background-default: var(--pine-color-white);\n\n background: var(--color-background-default);\n border-collapse: separate;\n box-sizing: border-box;\n display: table;\n width: 100%;\n}\n\n:host(:focus-visible) {\n outline: var(--pine-outline-focus);\n}\n\n:host(.is-responsive) {\n background-attachment: local, local, scroll, scroll;\n background-image: linear-gradient(to right, var(--color-background-default), var(--color-background-default)),\n linear-gradient(to right, var(--color-background-default), var(--color-background-default)),\n linear-gradient(to right, rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0)),\n linear-gradient(to left, rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0));\n background-position: left center, right center, left center, right center;\n background-repeat: no-repeat;\n background-size: 4px 100%, 4px 100%, 4px 100%, 4px 100%;\n display: block;\n margin: 0 auto;\n max-width: fit-content;\n overflow-x: auto;\n white-space: nowrap;\n}\n","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\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 * 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 checkbox is clicked, carrying the rowIndex and selected value.\n */\n @Event() pdsTableSelect: EventEmitter<{ rowIndex: number; isSelected: boolean }>;\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 componentWillLoad() {\n this.sortingColumn = null;\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 // 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);\n } else {\n return valueB.localeCompare(valueA);\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 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 headerCheckbox.checked = allSelectedRows;\n headerCheckbox.indeterminate = !allSelectedRows && !noneSelectedRows;\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-eKz-xVcI.system.js","sources":["src/components/pds-tabs/pds-tabpanel/pds-tabpanel.scss?tag=pds-tabpanel","src/components/pds-tabs/pds-tabpanel/pds-tabpanel.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.pds-tabpanel {\n display: none;\n margin-top: var(--tabs-dimension-panel-margin-top);\n padding: var(--tabs-dimension-panel-padding);\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &.is-active {\n display: block;\n }\n}\n","import { Component, Element, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-tabpanel',\n styleUrl: 'pds-tabpanel.scss',\n shadow: false,\n})\nexport class PdsTabpanel {\n @Element() el: HTMLPdsTabpanelElement;\n\n /**\n * Sets the related tab name, this name must match a `pds-tab`'s tab name property\n */\n @Prop() name!: string;\n\n /**\n * Keeps track of the parentComponentId unique id, this property is passed by parent component\n */\n /** @internal */\n @Prop() parentComponentId: string;\n\n /**\n * Keeps track of if the expected tab variant, this property is passed by parent component\n */\n /** @internal */\n @Prop() variant: string;\n\n /**\n * Keeps track of the tabpanel selected state, this property is passed by parent component\n */\n /** @internal */\n @Prop({mutable: true}) selected = false; // eslint-disable-line @stencil-community/strict-mutable\n\n render() {\n return (\n <Host slot=\"tabpanels\">\n <div\n role=\"tabpanel\"\n id={this.parentComponentId + \"__\" + this.name + '-panel'}\n tabindex=\"0\"\n aria-labelledby={this.parentComponentId + \"__\" + this.name}\n class={this.selected ? \"pds-tabpanel is-active\" : \"pds-tabpanel\"}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;MAAA,MAAM,cAAc,GAAG,2RAA2R;;YCOrS,WAAW,2BAAA,MAAA;MALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAyBE;;MAEG;;MAEoB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC;MAiBzC;UAfC,MAAM,GAAA;MACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAA,EACpB,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EACxD,QAAQ,EAAC,GAAG,EAAA,iBAAA,EACK,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAC1D,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,wBAAwB,GAAG,cAAc,EAAA,EAEhE,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ,CACD;;;;;;;;;;;;"}
1
+ {"version":3,"file":"p-Derxa-nn.system.js","sources":["src/components/pds-tabs/pds-tabpanel/pds-tabpanel.scss?tag=pds-tabpanel","src/components/pds-tabs/pds-tabpanel/pds-tabpanel.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.pds-tabpanel {\n display: none;\n margin-top: var(--tabs-dimension-panel-margin-top);\n padding: var(--tabs-dimension-panel-padding);\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &.is-active {\n display: block;\n }\n}\n","import { Component, Element, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-tabpanel',\n styleUrl: 'pds-tabpanel.scss',\n shadow: false,\n})\nexport class PdsTabpanel {\n @Element() el: HTMLPdsTabpanelElement;\n\n /**\n * Sets the related tab name, this name must match a `pds-tab`'s tab name property\n */\n @Prop() name!: string;\n\n /**\n * Keeps track of the parentComponentId unique id, this property is passed by parent component\n */\n /** @internal */\n @Prop() parentComponentId: string;\n\n /**\n * Keeps track of if the expected tab variant, this property is passed by parent component\n */\n /** @internal */\n @Prop() variant: string;\n\n /**\n * Keeps track of the tabpanel selected state, this property is passed by parent component\n */\n /** @internal */\n @Prop({mutable: true}) selected = false; // eslint-disable-line @stencil-community/strict-mutable\n\n render() {\n return (\n <Host slot=\"tabpanels\">\n <div\n role=\"tabpanel\"\n id={this.parentComponentId + \"__\" + this.name + '-panel'}\n tabindex=\"0\"\n aria-labelledby={this.parentComponentId + \"__\" + this.name}\n class={this.selected ? \"pds-tabpanel is-active\" : \"pds-tabpanel\"}\n >\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;MAAA,MAAM,cAAc,GAAG,2RAA2R;;YCOrS,WAAW,2BAAA,MAAA;MALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAyBE;;MAEG;;MAEoB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC;MAiBzC;UAfC,MAAM,GAAA;MACJ,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAA,EACpB,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EACxD,QAAQ,EAAC,GAAG,EAAA,iBAAA,EACK,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAC1D,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,wBAAwB,GAAG,cAAc,EAAA,EAEhE,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ,CACD;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-BW-n3jjz.system.js","sources":["src/components/pds-table/pds-table-cell/pds-table-cell.scss?tag=pds-table-cell&encapsulation=shadow","src/components/pds-table/pds-table-cell/pds-table-cell.tsx"],"sourcesContent":[":host {\n --box-shadow-fixed: 3px 3px 6px -2px rgba(0, 0, 0, 0.2);\n\n color: var(--pine-color-text);\n display: table-cell;\n font-family: var(--pine-font-family-body);\n font-size: var(--pine-font-size);\n font-weight: var(--pine-font-weight-regular);\n inset-inline-start: var(--pine-dimension-none);\n letter-spacing: var(--pine-letter-spacing);\n line-height: var(--pine-line-height-body);\n padding: var(--pine-dimension-sm);\n vertical-align: inherit;\n}\n\n:host(.is-compact) {\n padding-block: var(--pine-dimension-2xs)\n}\n\n:host(.is-fixed) {\n background: var(--pine-color-background-container);\n left: 0;\n position: sticky;\n z-index: 1;\n}\n\n// box shadow when table has scrolled and cell is fixed\n:host(.has-scrolled.is-fixed) {\n box-shadow: var(--box-shadow-fixed);\n}\n\n:host(.is-truncated) {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host(.has-checkbox) {\n vertical-align: middle;\n width: 16px;\n}\n","import { Component, Element, Host, Prop, State, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-table-cell',\n styleUrls: ['pds-table-cell.scss'],\n shadow: true,\n})\nexport class PdsTableCell {\n @Element() hostElement: HTMLPdsTableCellElement;\n private tableRef: HTMLPdsTableElement;\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n\n componentDidLoad() {\n if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {\n this.tableRef.addEventListener('scroll', this.handleScroll);\n }\n }\n\n /**\n * Truncates content to a max width of 100px and adds an ellipsis.\n */\n @Prop() truncate: boolean;\n\n /**\n * Determines if the table is currently scrolling.\n * @defaultValue false\n */\n @State() private tableScrolling: boolean = false;\n\n private classNames() {\n const classNames = [];\n\n if (this.tableRef && this.tableRef.compact) {\n classNames.push('is-compact');\n }\n\n if (this.truncate) {\n classNames.push('is-truncated');\n }\n\n if (this.tableRef && this.tableRef.fixedColumn && this.tableScrolling) {\n classNames.push('has-scrolled');\n }\n\n return classNames.join(' ');\n }\n\n private handleScroll = () => {\n if (this.tableRef.scrollLeft > 0) {\n this.tableScrolling = true;\n } else {\n this.tableScrolling = false;\n }\n };\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"gridcell\"\n style={\n this.tableRef &&\n this.tableRef.fixedColumn &&\n this.tableRef.selectable\n ? { '--fixed-cell-position': '40px' }\n : {}\n }\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;MAAA,MAAM,eAAe,GAAG,q1BAAq1B;;YCOh2B,YAAY,6BAAA,MAAA;MALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAwBE;;;MAGG;MACc,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK;MAoBxC,QAAA,IAAY,CAAA,YAAA,GAAG,MAAK;kBAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE;MAChC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;uBACrB;MACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;MAE/B,SAAC;MAmBF;UAhEC,mBAAmB,GAAA;cACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAwB;;UAG9E,gBAAgB,GAAA;MACd,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;kBAC1E,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;;;UAevD,UAAU,GAAA;cAChB,MAAM,UAAU,GAAG,EAAE;cAErB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;MAC1C,YAAA,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;MAG/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,YAAA,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;;MAGjC,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;MACrE,YAAA,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;;MAGjC,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;UAW7B,MAAM,GAAA;cACJ,QACE,CAAC,CAAA,IAAI,qDACH,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,IAAI,EAAC,UAAU,EACf,KAAK,EACH,IAAI,CAAC,QAAQ;sBACb,IAAI,CAAC,QAAQ,CAAC,WAAW;sBACzB,IAAI,CAAC,QAAQ,CAAC;MACZ,kBAAE,EAAE,uBAAuB,EAAE,MAAM;MACnC,kBAAE,EAAE,EAAA,EAGR,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;;;;;"}
1
+ {"version":3,"file":"p-DgOMN0Ur.system.js","sources":["src/components/pds-table/pds-table-cell/pds-table-cell.scss?tag=pds-table-cell&encapsulation=shadow","src/components/pds-table/pds-table-cell/pds-table-cell.tsx"],"sourcesContent":[":host {\n --box-shadow-fixed: 3px 3px 6px -2px rgba(0, 0, 0, 0.2);\n\n color: var(--pine-color-text);\n display: table-cell;\n font-family: var(--pine-font-family-body);\n font-size: var(--pine-font-size);\n font-weight: var(--pine-font-weight-regular);\n inset-inline-start: var(--pine-dimension-none);\n letter-spacing: var(--pine-letter-spacing);\n line-height: var(--pine-line-height-body);\n padding: var(--pine-dimension-sm);\n vertical-align: inherit;\n}\n\n:host(.is-compact) {\n padding-block: var(--pine-dimension-2xs)\n}\n\n:host(.is-fixed) {\n background: var(--pine-color-background-container);\n left: 0;\n position: sticky;\n z-index: 1;\n}\n\n// box shadow when table has scrolled and cell is fixed\n:host(.has-scrolled.is-fixed) {\n box-shadow: var(--box-shadow-fixed);\n}\n\n:host(.is-truncated) {\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n:host(.has-checkbox) {\n vertical-align: middle;\n width: 16px;\n}\n","import { Component, Element, Host, Prop, State, h } from '@stencil/core';\n\n@Component({\n tag: 'pds-table-cell',\n styleUrls: ['pds-table-cell.scss'],\n shadow: true,\n})\nexport class PdsTableCell {\n @Element() hostElement: HTMLPdsTableCellElement;\n private tableRef: HTMLPdsTableElement;\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n\n componentDidLoad() {\n if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {\n this.tableRef.addEventListener('scroll', this.handleScroll);\n }\n }\n\n /**\n * Truncates content to a max width of 100px and adds an ellipsis.\n */\n @Prop() truncate: boolean;\n\n /**\n * Determines if the table is currently scrolling.\n * @defaultValue false\n */\n @State() private tableScrolling: boolean = false;\n\n private classNames() {\n const classNames = [];\n\n if (this.tableRef && this.tableRef.compact) {\n classNames.push('is-compact');\n }\n\n if (this.truncate) {\n classNames.push('is-truncated');\n }\n\n if (this.tableRef && this.tableRef.fixedColumn && this.tableScrolling) {\n classNames.push('has-scrolled');\n }\n\n return classNames.join(' ');\n }\n\n private handleScroll = () => {\n if (this.tableRef.scrollLeft > 0) {\n this.tableScrolling = true;\n } else {\n this.tableScrolling = false;\n }\n };\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"gridcell\"\n style={\n this.tableRef &&\n this.tableRef.fixedColumn &&\n this.tableRef.selectable\n ? { '--fixed-cell-position': '40px' }\n : {}\n }\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;MAAA,MAAM,eAAe,GAAG,q1BAAq1B;;YCOh2B,YAAY,6BAAA,MAAA;MALzB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAwBE;;;MAGG;MACc,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK;MAoBxC,QAAA,IAAY,CAAA,YAAA,GAAG,MAAK;kBAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE;MAChC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;uBACrB;MACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;;MAE/B,SAAC;MAmBF;UAhEC,mBAAmB,GAAA;cACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAwB;;UAG9E,gBAAgB,GAAA;MACd,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;kBAC1E,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC;;;UAevD,UAAU,GAAA;cAChB,MAAM,UAAU,GAAG,EAAE;cAErB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;MAC1C,YAAA,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;MAG/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,YAAA,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;;MAGjC,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;MACrE,YAAA,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;;MAGjC,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;UAW7B,MAAM,GAAA;cACJ,QACE,CAAC,CAAA,IAAI,qDACH,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,IAAI,EAAC,UAAU,EACf,KAAK,EACH,IAAI,CAAC,QAAQ;sBACb,IAAI,CAAC,QAAQ,CAAC,WAAW;sBACzB,IAAI,CAAC,QAAQ,CAAC;MACZ,kBAAE,EAAE,uBAAuB,EAAE,MAAM;MACnC,kBAAE,EAAE,EAAA,EAGR,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-DiJV28pi.system.js","sources":["src/components/pds-link/pds-link.scss?tag=pds-link&encapsulation=shadow","src/components/pds-link/pds-link.tsx"],"sourcesContent":[":host {\n display: inline;\n\n pds-icon {\n margin-inline-start: var(--pine-dimension-2xs);\n }\n}\n\n.pds-link {\n align-items: center;\n color: var(--color, var(--pine-color-text));\n display: inline-flex;\n font-weight: var(--pine-font-weight-medium);\n\n &:focus-visible {\n border-radius: var(--pine-dimension-2xs);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width-thick);\n position: relative;\n }\n\n &:hover {\n color: var(--color, var(--pine-color-text-hover));\n text-decoration: none;\n }\n\n :host([color=\"secondary\"]) & {\n color: var(--pine-color-text-primary);\n\n &:hover {\n color: var(--pine-color-grey-150);\n }\n }\n\n :host([color=\"accent\"]) & {\n color: var(--pine-color-accent);\n\n &:hover {\n color: var(--pine-color-accent-hover);\n }\n }\n\n :host([color=\"danger\"]) & {\n color: var(--pine-color-danger);\n\n &:hover {\n color: var(--pine-color-danger-hover);\n }\n }\n}\n\n// We have a small consensus stating that\n// fonts will be REMs, box-model will be\n// discussed later px or (r)em's\n.pds-link--sm {\n font-size: var(--pine-font-size-body-xs);\n\n pds-icon {\n height: var(--pine-dimension-xs);\n width: var(--pine-dimension-xs);\n }\n}\n\n.pds-link--md {\n font-size: var(--pine-font-size-body-sm);\n\n pds-icon {\n height: var(--pine-dimension-xs);\n width: var(--pine-dimension-xs);\n }\n}\n\n.pds-link--lg {\n font-size: var(--pine-font-size-body-md);\n\n pds-icon {\n height: var(--pine-dimension-sm);\n width: var(--pine-dimension-sm);\n }\n}\n\n.pds-link--plain {\n text-decoration: none;\n\n &:hover {\n color: var(--pine-color-text-hover);\n text-decoration: underline;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { setColor } from '../../utils/utils';\n\nimport { launch } from '@pine-ds/icons/icons';\n\n/**\n * @part link - Link element styles.\n * @slot (default) - Text content placed between the opening and closing tags. If no text is provided, the **href** will be used as a fallback.\n */\n@Component({\n tag: 'pds-link',\n styleUrls: ['pds-link.scss'],\n shadow: true,\n})\nexport class PdsLink {\n /**\n * Sets the link color.\n */\n @Prop() color?: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether the link should open in a new tab.\n * @defaultValue false\n */\n @Prop() external = false;\n\n /**\n * Sets the link variant styles.\n * @defaultValue inline\n */\n @Prop() variant: 'inline' | 'plain' = 'inline';\n\n /**\n * The font size of the link's text.\n * @defaultValue lg\n */\n @Prop() fontSize: 'sm' | 'md' | 'lg' = 'lg';\n\n /**\n * The hyperlink's destination URL. If no text is provided in the custom slot, the href will be used.\n */\n @Prop() href!: string;\n\n private classNames() {\n const classNames = ['pds-link'];\n\n if (this.fontSize) {\n classNames.push('pds-link--' + this.fontSize);\n }\n\n if (this.variant) {\n classNames.push('pds-link--' + this.variant);\n }\n\n return classNames.join(' ');\n }\n\n private setLinkStyles() {\n if (!this.color) return;\n\n const linkColors = {\n secondary: 'var(--pine-color-text-primary)',\n accent: 'var(--pine-color-accent)',\n danger: 'var(--pine-color-danger)',\n }\n\n const linkStyles = setColor(this.color, linkColors);\n\n return linkStyles;\n }\n\n render() {\n\n return (\n <a\n class={this.classNames()}\n href={this.href}\n id={this.componentId}\n part=\"link\"\n target={this.external ? '_blank' : undefined}\n style={this.setLinkStyles()}\n >\n <slot>{this.href}</slot>\n {this.external &&\n <pds-icon icon={launch} size={this.fontSize}></pds-icon>\n }\n </a>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAAA,MAAM,UAAU,GAAG,u/CAAu/C;;YCc7/C,OAAO,uBAAA,MAAA;MALpB,IAAA,WAAA,CAAA,OAAA,EAAA;;MAgBE;;;MAGG;MACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;MAExB;;;MAGG;MACK,QAAA,IAAO,CAAA,OAAA,GAAuB,QAAQ;MAE9C;;;MAGG;MACK,QAAA,IAAQ,CAAA,QAAA,GAAuB,IAAI;MAqD5C;UA9CS,UAAU,GAAA;MAChB,QAAA,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC;MAE/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;kBACjB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;;MAG/C,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;kBAChB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;;MAG9C,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;UAGrB,aAAa,GAAA;cACnB,IAAI,CAAC,IAAI,CAAC,KAAK;kBAAE;MAEjB,QAAA,MAAM,UAAU,GAAG;MACjB,YAAA,SAAS,EAAE,gCAAgC;MAC3C,YAAA,MAAM,EAAE,0BAA0B;MAClC,YAAA,MAAM,EAAE,0BAA0B;eACnC;cAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;MAEnD,QAAA,OAAO,UAAU;;UAGnB,MAAM,GAAA;MAEJ,QAAA,QACE,0DACE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAC5C,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,EAAA,EAE3B,CAAO,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,IAAI,CAAQ,EACvB,IAAI,CAAC,QAAQ;kBACZ,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAU,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAA,CAAa,CAExD;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ const r=r=>!!r.shadowRoot&&!!r.attachShadow;const e=(r,e)=>{const n=r._original||r;return{_original:r,emit:t(n.emit.bind(n),e)}};const t=(r,e=0)=>{let t;return(...n)=>{clearTimeout(t);t=setTimeout(r,e,...n)}};const n=(r,e)=>{var t;if(!r)return;const n={primary:"var(--pine-color-text-primary)",secondary:"var(--pine-color-text-secondary)",neutral:"var(--pine-color-text-neutral)",accent:"var(--pine-color-text-accent)",danger:"var(--pine-color-text-danger)",info:"var(--pine-color-text-info)",success:"var(--pine-color-text-success)",warning:"var(--pine-color-text-warning)"};const o=e||n;return{"--color":(t=o[r])!==null&&t!==void 0?t:r.startsWith("--")?`var(${r})`:r}};export{e as d,r as h,n as s};
2
+ //# sourceMappingURL=p-DkabwBZT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-DkabwBZT.js","sources":["src/utils/utils.ts"],"sourcesContent":["import type { EventEmitter } from \"@stencil/core\";\n\nexport const hasShadowDom = (el: HTMLElement) => {\n return !!el.shadowRoot && !!(el as any).attachShadow\n}\n\nexport const debounceEvent = (event: EventEmitter, wait: number): EventEmitter => {\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (func: (...args: any[]) => void, wait = 0) => {\n let timer: any;\n return (...args: any[]): any => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\nexport const setColor = (color: string, customColors?: Record<string, string>) => {\n if (!color) return;\n\n const defaultColors: Record<string, string> = {\n primary: 'var(--pine-color-text-primary)',\n secondary: 'var(--pine-color-text-secondary)',\n neutral: 'var(--pine-color-text-neutral)',\n accent: 'var(--pine-color-text-accent)',\n danger: 'var(--pine-color-text-danger)',\n info: 'var(--pine-color-text-info)',\n success: 'var(--pine-color-text-success)',\n warning: 'var(--pine-color-text-warning)',\n };\n\n const colors = customColors || defaultColors;\n\n return {\n '--color': colors[color] ?? (color.startsWith('--') ? `var(${color})` : color)\n };\n}\n"],"names":[],"mappings":"AAEa,MAAA,YAAY,GAAG,CAAC,EAAe,KAAI;IAC9C,OAAO,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAE,EAAU,CAAC,YAAY;AACtD;MAEa,aAAa,GAAG,CAAC,KAAmB,EAAE,IAAY,KAAkB;AAC/E,IAAA,MAAM,QAAQ,GAAI,KAAa,CAAC,SAAS,IAAI,KAAK;IAClD,OAAO;AACL,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;KACnC;AACnB;AAEO,MAAM,QAAQ,GAAG,CAAC,IAA8B,EAAE,IAAI,GAAG,CAAC,KAAI;AACnE,IAAA,IAAI,KAAU;AACd,IAAA,OAAO,CAAC,GAAG,IAAW,KAAS;QAC7B,YAAY,CAAC,KAAK,CAAC;QACnB,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AACzC,KAAC;AACH,CAAC;MAEY,QAAQ,GAAG,CAAC,KAAa,EAAE,YAAqC,KAAI;;AAC/E,IAAA,IAAI,CAAC,KAAK;QAAE;AAEZ,IAAA,MAAM,aAAa,GAA2B;AAC5C,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,SAAS,EAAE,kCAAkC;AAC7C,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,MAAM,EAAE,+BAA+B;AACvC,QAAA,IAAI,EAAE,6BAA6B;AACnC,QAAA,OAAO,EAAE,gCAAgC;AACzC,QAAA,OAAO,EAAE,gCAAgC;KAC1C;AAED,IAAA,MAAM,MAAM,GAAG,YAAY,IAAI,aAAa;IAE5C,OAAO;QACL,SAAS,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,IAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAO,IAAA,EAAA,KAAK,GAAG,GAAG,KAAK;KAC9E;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-Dv_jWtcr.system.js","sources":["src/components/pds-button/pds-button.scss?tag=pds-button&encapsulation=shadow","src/components/pds-button/pds-button.tsx"],"sourcesContent":[":host {\n --button-dimension: 40px;\n --color-border-default: transparent;\n --color-border-disabled: transparent;\n --color-border-focus: transparent;\n --color-border-hover: transparent;\n --button-loader-color: var(--color-text-default);\n\n display: inline-flex;\n vertical-align: middle;\n}\n\n:host([full-width=\"true\"]) {\n display: flex;\n width: 100%;\n\n button {\n justify-content: center;\n width: 100%;\n }\n\n .pds-button__content {\n justify-content: center;\n text-align: center;\n }\n}\n\n:host([loading=\"true\"]) {\n cursor: wait;\n pointer-events: none;\n}\n\n:host([disabled=\"true\"]) {\n pointer-events: none;\n}\n\n.pds-button {\n --pds-loader-color: var(--color-text-default);\n align-items: center;\n background-color: var(--color-background-default);\n border: var(--pine-border);\n border-color: var(--color-border-default);\n border-radius: var(--pine-border-radius-full);\n box-sizing: border-box;\n color: var(--color-text-default); // Set in the variant classes below\n cursor: pointer;\n display: flex;\n font: var(--pine-typography-body-brand-label);\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--button-dimension);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n text-decoration: none;\n\n pds-icon {\n color: currentColor;\n fill: currentColor;\n }\n\n &:hover {\n background-color: var(--color-background-hover);\n border-color: var(--color-border-hover);\n }\n\n &:focus-visible {\n border-color: var(--color-border-focus);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &:disabled {\n background-color: var(--color-background-disabled);\n border-color: var(--color-border-disabled);\n color: var(--color-text-disabled);\n pointer-events: none;\n }\n}\n\n.pds-button--primary {\n --color-background-default: var(--pine-color-primary);\n --color-background-hover: var(--pine-color-primary-hover);\n --color-background-disabled: var(--pine-color-primary-disabled);\n --color-border-default: var(--pine-color-primary);\n --color-border-hover: var(--pine-color-primary-hover);\n --color-text-default: var(--pine-color-text-primary);\n --color-text-disabled: var(--pine-color-text-primary-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-primary);\n}\n\n.pds-button--accent {\n --color-background-default: var(--pine-color-accent);\n --color-background-hover: var(--pine-color-accent-hover);\n --color-background-disabled: var(--pine-color-accent-disabled);\n --color-border-default: var(--pine-color-accent);\n --color-border-hover: var(--pine-color-accent-hover);\n --color-text-default: var(--pine-color-text-primary);\n --color-text-disabled: var(--pine-color-text-accent-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-primary);\n}\n\n.pds-button--destructive {\n --color-background-default: var(--pine-color-danger);\n --color-background-hover: var(--pine-color-danger-hover);\n --color-background-disabled: var(--pine-color-danger-disabled);\n --color-border-default: var(--pine-color-danger);\n --color-border-hover: var(--pine-color-danger-hover);\n --color-text-default: var(--pine-color-text-primary);\n --color-text-disabled: var(--pine-color-text-danger-disabled);\n --color-outline: var(--pine-color-focus-ring-danger);\n --button-loader-color: var(--pine-color-text-primary);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n}\n\n.pds-button--secondary,\n.pds-button--disclosure {\n --color-background-default: var(--pine-color-secondary);\n --color-background-hover: var(--pine-color-secondary-hover);\n --color-background-disabled: var(--pine-color-secondary-disabled);\n --color-border-disabled: var(--pine-color-border-disabled);\n --color-border-focus: var(--pine-color-border);\n --color-border-hover: var(--pine-color-border-hover);\n --color-border-default: var(--pine-color-border);\n --color-text-default: var(--pine-color-text-secondary);\n --color-text-disabled: var(--pine-color-text-secondary-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-secondary);\n\n &:hover {\n background-color: var(--pine-color-secondary-hover);\n }\n}\n\n.pds-button--unstyled {\n --color-background-default: transparent;\n --color-background-hover: transparent;\n --color-background-disabled: transparent;\n --color-text-default: inherit;\n --button-loader-color: inherit;\n border-width: var(--pine-dimension-none);\n margin: var(--pine-dimension-none);\n min-height: auto;\n padding: var(--pine-dimension-none);\n width: inherit;\n}\n\n.pds-button__content {\n align-items: center;\n display: inline-flex;\n gap: var(--pine-dimension-xs);\n position: relative;\n width: 100%;\n}\n\n.pds-button__icon {\n display: inline-flex;\n}\n\n.pds-button__text {\n align-items: center;\n display: inline-flex;\n}\n\n.pds-button__icon--hidden,\n.pds-button__text--hidden {\n opacity: 0;\n}\n\n.pds-button__loader {\n height: var(--pine-dimension-250);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--pine-dimension-250);\n}\n\n.pds-button--loading {\n cursor: wait;\n pointer-events: none;\n\n .pds-button__loader {\n pds-loader {\n --loader-color: var(--button-loader-color);\n }\n }\n}\n\n.pds-button--icon-only {\n align-items: center;\n border-radius: var(--pine-border-radius-full);\n height: var(--button-dimension);\n justify-content: center;\n min-height: var(--button-dimension);\n min-width: var(--button-dimension);\n padding: var(--pine-dimension-xs);\n width: var(--button-dimension);\n\n .pds-button__content {\n height: 100%;\n justify-content: center;\n width: 100%;\n }\n\n .pds-button__text--hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop } from '@stencil/core';\nimport { hasShadowDom } from '../../utils/utils';\n\nimport { caretDown } from '@pine-ds/icons/icons';\n\n/**\n * @part button - Exposes the button element for styling.\n * @part button-content - Exposes the button content for styling.\n * @part button-text - Exposes the button text for styling.\n * @part caret - Exposes the caret icon component for styling. Appears only on the disclosure variant.\n * @part icon - Exposes the icon component for styling.\n * @slot (default) - Button text.\n * @slot start - Content to display before the button text.\n * @slot end - Content to display after the button text.\n*/\n\n@Component({\n tag: 'pds-button',\n styleUrls: ['pds-button.scss'],\n shadow: true,\n})\nexport class PdsButton {\n @Element() el: HTMLPdsButtonElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines the button's disabled state.\n * @defaultValue false\n */\n @Prop() disabled? = false;\n\n /**\n * Determines if the button should take up the full width of its container.\n * @defaultValue false\n */\n @Prop() fullWidth? = false;\n\n /**\n * If provided, renders the component as an anchor (`<a>`) element instead of a button.\n * When using href, button-specific props (type, name, value, loading) will be ignored.\n */\n @Prop() href?: string;\n\n /**\n * Displays a leading icon in the button. DEPRECATED.\n * @defaultValue null\n * @deprecated Use `start` slot instead.\n */\n @Prop() icon?: string = null;\n\n /**\n * When true, displays only the icon and visually hides the text (keeping it accessible).\n */\n @Prop() iconOnly? = false;\n\n /**\n * Determines if the button is in a loading state.\n * When true, displays a loader and hides the button text.\n * @defaultValue false\n */\n @Prop() loading? = false;\n\n /**\n * Provides the button with a submittable name.\n */\n @Prop() name?: string;\n\n /**\n * Specifies where to open the linked document when href is provided.\n * Only applies when href is set.\n */\n @Prop() target?: '_blank' | '_self' | '_parent' | '_top';\n\n /**\n * Provides button with a type.\n * @defaultValue button\n */\n @Prop() type?: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * Provides button with a submittable value\n */\n @Prop() value?: string;\n\n /**\n * Sets the style variant of the button.\n * @defaultValue primary\n */\n @Prop() variant: 'primary' | 'secondary' | 'accent' | 'disclosure' | 'destructive' | 'unstyled' = 'primary';\n\n @Event() pdsClick: EventEmitter;\n\n private handleClick = (ev: Event) => {\n if (this.loading) {\n ev.preventDefault();\n return;\n }\n\n if (!this.href && this.type != 'button') {\n // If button clicked IS NOT associated with a form\n if (hasShadowDom(this.el)) {\n const form = this.el.closest('form');\n if (form) {\n ev.preventDefault();\n\n const fakeButton = document.createElement('button');\n fakeButton.type = this.type;\n fakeButton.style.display = 'none';\n form.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n }\n this.pdsClick.emit(ev);\n };\n\n private classNames() {\n const classNames = ['pds-button'];\n\n if (this.variant) {\n classNames.push('pds-button--' + this.variant);\n }\n\n if (this.iconOnly) {\n classNames.push('pds-button--icon-only');\n }\n\n if (this.loading) {\n classNames.push('pds-button--loading');\n }\n\n return classNames.join(' ');\n }\n\n private hasSlotContent(slotName: string): boolean {\n const elements = this.el.querySelectorAll(`[slot=\"${slotName}\"]`);\n return elements.length > 0;\n }\n\n private renderStartContent() {\n const hasIcon = this.icon && this.variant !== 'disclosure';\n const hasStartSlot = this.hasSlotContent('start');\n\n if (Boolean(hasIcon)) {\n return (\n <pds-icon class={this.loading ? 'pds-button__icon--hidden' : ''} name={this.icon} part=\"icon\" aria-hidden=\"true\"></pds-icon>\n );\n } else if (Boolean(hasStartSlot)) {\n return <span class={`pds-button__icon ${this.loading ? 'pds-button__icon--hidden' : ''}`}><slot name=\"start\" /></span>;\n }\n\n return null;\n }\n\n private renderEndContent() {\n if (this.iconOnly) {\n return null;\n }\n\n if (this.variant === 'disclosure') {\n return (\n <pds-icon class={this.loading ? 'pds-button__icon--hidden' : ''} icon={caretDown} part=\"caret\" aria-hidden=\"true\"></pds-icon>\n );\n } else if (this.hasSlotContent('end')) {\n return <span class={`pds-button__icon ${this.loading ? 'pds-button__icon--hidden' : ''}`}><slot name=\"end\" /></span>;\n }\n\n return null;\n }\n\n render() {\n // Common props for both button and anchor elements\n const commonProps = {\n class: this.classNames(),\n part: 'button',\n };\n\n const attributes = () => {\n if (this.href) {\n return {\n // Anchor element props\n ...commonProps,\n href: this.disabled ? null : this.href,\n target: this.target,\n };\n }\n\n return {\n // Button element props\n ...commonProps,\n 'aria-busy': this.loading ? 'true' : null,\n 'aria-live': this.loading ? 'polite' : null,\n 'disabled': this.disabled,\n 'name': this.name,\n 'type': this.type,\n 'value': this.value,\n };\n };\n\n const ContentElement = this.href ? 'a' : 'button';\n\n // Hide text when loading or iconOnly is true\n const hideText = this.loading || this.iconOnly;\n\n const content = (\n <div class=\"pds-button__content\" part=\"button-content\">\n {this.renderStartContent()}\n\n <span class={`pds-button__text ${hideText ? 'pds-button__text--hidden' : ''}`} part=\"button-text\">\n <slot />\n </span>\n\n {this.loading && (\n <span class=\"pds-button__loader\">\n <pds-loader is-loading={true} size=\"var(--pine-font-size-body-2xl)\" variant=\"spinner\">\n Loading...\n </pds-loader>\n </span>\n )}\n\n {this.renderEndContent()}\n </div>\n );\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n id={this.componentId}\n onClick={this.handleClick}\n variant={this.variant}\n >\n <ContentElement {...attributes()}>\n {content}\n </ContentElement>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-DyQ_s5MV.system.js","sources":["src/components/pds-button/pds-button.scss?tag=pds-button&encapsulation=shadow","src/components/pds-button/pds-button.tsx"],"sourcesContent":[":host {\n --button-dimension: 40px;\n --color-border-default: transparent;\n --color-border-disabled: transparent;\n --color-border-focus: transparent;\n --color-border-hover: transparent;\n --button-loader-color: var(--color-text-default);\n\n display: inline-flex;\n vertical-align: middle;\n}\n\n:host([full-width=\"true\"]) {\n display: flex;\n width: 100%;\n\n button {\n justify-content: center;\n width: 100%;\n }\n\n .pds-button__content {\n justify-content: center;\n text-align: center;\n }\n}\n\n:host([loading=\"true\"]) {\n cursor: wait;\n pointer-events: none;\n}\n\n:host([disabled=\"true\"]) {\n pointer-events: none;\n}\n\n.pds-button {\n --pds-loader-color: var(--color-text-default);\n align-items: center;\n background-color: var(--color-background-default);\n border: var(--pine-border);\n border-color: var(--color-border-default);\n border-radius: var(--pine-border-radius-full);\n box-sizing: border-box;\n color: var(--color-text-default); // Set in the variant classes below\n cursor: pointer;\n display: flex;\n font: var(--pine-typography-body-brand-label);\n letter-spacing: var(--pine-letter-spacing);\n min-height: var(--button-dimension);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n text-decoration: none;\n\n pds-icon {\n color: currentColor;\n fill: currentColor;\n }\n\n &:hover {\n background-color: var(--color-background-hover);\n border-color: var(--color-border-hover);\n }\n\n &:focus-visible {\n border-color: var(--color-border-focus);\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &:disabled {\n background-color: var(--color-background-disabled);\n border-color: var(--color-border-disabled);\n color: var(--color-text-disabled);\n pointer-events: none;\n }\n}\n\n.pds-button--primary {\n --color-background-default: var(--pine-color-primary);\n --color-background-hover: var(--pine-color-primary-hover);\n --color-background-disabled: var(--pine-color-primary-disabled);\n --color-border-default: var(--pine-color-primary);\n --color-border-hover: var(--pine-color-primary-hover);\n --color-text-default: var(--pine-color-text-primary);\n --color-text-disabled: var(--pine-color-text-primary-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-primary);\n}\n\n.pds-button--accent {\n --color-background-default: var(--pine-color-accent);\n --color-background-hover: var(--pine-color-accent-hover);\n --color-background-disabled: var(--pine-color-accent-disabled);\n --color-border-default: var(--pine-color-accent);\n --color-border-hover: var(--pine-color-accent-hover);\n --color-text-default: var(--pine-color-text-primary);\n --color-text-disabled: var(--pine-color-text-accent-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-primary);\n}\n\n.pds-button--destructive {\n --color-background-default: var(--pine-color-danger);\n --color-background-hover: var(--pine-color-danger-hover);\n --color-background-disabled: var(--pine-color-danger-disabled);\n --color-border-default: var(--pine-color-danger);\n --color-border-hover: var(--pine-color-danger-hover);\n --color-text-default: var(--pine-color-text-primary);\n --color-text-disabled: var(--pine-color-text-danger-disabled);\n --color-outline: var(--pine-color-focus-ring-danger);\n --button-loader-color: var(--pine-color-text-primary);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n}\n\n.pds-button--secondary,\n.pds-button--disclosure {\n --color-background-default: var(--pine-color-secondary);\n --color-background-hover: var(--pine-color-secondary-hover);\n --color-background-disabled: var(--pine-color-secondary-disabled);\n --color-border-disabled: var(--pine-color-border-disabled);\n --color-border-focus: var(--pine-color-border);\n --color-border-hover: var(--pine-color-border-hover);\n --color-border-default: var(--pine-color-border);\n --color-text-default: var(--pine-color-text-secondary);\n --color-text-disabled: var(--pine-color-text-secondary-disabled);\n --color-outline: var(--pine-color-focus-ring);\n --button-loader-color: var(--pine-color-text-secondary);\n\n &:hover {\n background-color: var(--pine-color-secondary-hover);\n }\n}\n\n.pds-button--unstyled {\n --color-background-default: transparent;\n --color-background-hover: transparent;\n --color-background-disabled: transparent;\n --color-text-default: inherit;\n --button-loader-color: inherit;\n border-width: var(--pine-dimension-none);\n margin: var(--pine-dimension-none);\n min-height: auto;\n padding: var(--pine-dimension-none);\n width: inherit;\n}\n\n.pds-button__content {\n align-items: center;\n display: inline-flex;\n gap: var(--pine-dimension-xs);\n position: relative;\n width: 100%;\n}\n\n.pds-button__icon {\n display: inline-flex;\n}\n\n.pds-button__text {\n align-items: center;\n display: inline-flex;\n}\n\n.pds-button__icon--hidden,\n.pds-button__text--hidden {\n opacity: 0;\n}\n\n.pds-button__loader {\n height: var(--pine-dimension-250);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--pine-dimension-250);\n}\n\n.pds-button--loading {\n cursor: wait;\n pointer-events: none;\n\n .pds-button__loader {\n pds-loader {\n --loader-color: var(--button-loader-color);\n }\n }\n}\n\n.pds-button--icon-only {\n align-items: center;\n border-radius: var(--pine-border-radius-full);\n height: var(--button-dimension);\n justify-content: center;\n min-height: var(--button-dimension);\n min-width: var(--button-dimension);\n padding: var(--pine-dimension-xs);\n width: var(--button-dimension);\n\n .pds-button__content {\n height: 100%;\n justify-content: center;\n width: 100%;\n }\n\n .pds-button__text--hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop } from '@stencil/core';\nimport { hasShadowDom } from '../../utils/utils';\n\nimport { caretDown } from '@pine-ds/icons/icons';\n\n/**\n * @part button - Exposes the button element for styling.\n * @part button-content - Exposes the button content for styling.\n * @part button-text - Exposes the button text for styling.\n * @part caret - Exposes the caret icon component for styling. Appears only on the disclosure variant.\n * @part icon - Exposes the icon component for styling.\n * @slot (default) - Button text.\n * @slot start - Content to display before the button text.\n * @slot end - Content to display after the button text.\n*/\n\n@Component({\n tag: 'pds-button',\n styleUrls: ['pds-button.scss'],\n shadow: true,\n})\nexport class PdsButton {\n @Element() el: HTMLPdsButtonElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines the button's disabled state.\n * @defaultValue false\n */\n @Prop() disabled? = false;\n\n /**\n * Determines if the button should take up the full width of its container.\n * @defaultValue false\n */\n @Prop() fullWidth? = false;\n\n /**\n * If provided, renders the component as an anchor (`<a>`) element instead of a button.\n * When using href, button-specific props (type, name, value, loading) will be ignored.\n */\n @Prop() href?: string;\n\n /**\n * Displays a leading icon in the button. DEPRECATED.\n * @defaultValue null\n * @deprecated Use `start` slot instead.\n */\n @Prop() icon?: string = null;\n\n /**\n * When true, displays only the icon and visually hides the text (keeping it accessible).\n */\n @Prop() iconOnly? = false;\n\n /**\n * Determines if the button is in a loading state.\n * When true, displays a loader and hides the button text.\n * @defaultValue false\n */\n @Prop() loading? = false;\n\n /**\n * Provides the button with a submittable name.\n */\n @Prop() name?: string;\n\n /**\n * Specifies where to open the linked document when href is provided.\n * Only applies when href is set.\n */\n @Prop() target?: '_blank' | '_self' | '_parent' | '_top';\n\n /**\n * Provides button with a type.\n * @defaultValue button\n */\n @Prop() type?: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * Provides button with a submittable value\n */\n @Prop() value?: string;\n\n /**\n * Sets the style variant of the button.\n * @defaultValue primary\n */\n @Prop() variant: 'primary' | 'secondary' | 'accent' | 'disclosure' | 'destructive' | 'unstyled' = 'primary';\n\n @Event() pdsClick: EventEmitter;\n\n private handleClick = (ev: Event) => {\n if (this.loading) {\n ev.preventDefault();\n return;\n }\n\n if (!this.href && this.type != 'button') {\n // If button clicked IS NOT associated with a form\n if (hasShadowDom(this.el)) {\n const form = this.el.closest('form');\n if (form) {\n ev.preventDefault();\n\n const fakeButton = document.createElement('button');\n fakeButton.type = this.type;\n fakeButton.style.display = 'none';\n form.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n }\n this.pdsClick.emit(ev);\n };\n\n private classNames() {\n const classNames = ['pds-button'];\n\n if (this.variant) {\n classNames.push('pds-button--' + this.variant);\n }\n\n if (this.iconOnly) {\n classNames.push('pds-button--icon-only');\n }\n\n if (this.loading) {\n classNames.push('pds-button--loading');\n }\n\n return classNames.join(' ');\n }\n\n private hasSlotContent(slotName: string): boolean {\n const elements = this.el.querySelectorAll(`[slot=\"${slotName}\"]`);\n return elements.length > 0;\n }\n\n private renderStartContent() {\n const hasIcon = this.icon && this.variant !== 'disclosure';\n const hasStartSlot = this.hasSlotContent('start');\n\n if (Boolean(hasIcon)) {\n return (\n <pds-icon class={this.loading ? 'pds-button__icon--hidden' : ''} name={this.icon} part=\"icon\" aria-hidden=\"true\"></pds-icon>\n );\n } else if (Boolean(hasStartSlot)) {\n return <span class={`pds-button__icon ${this.loading ? 'pds-button__icon--hidden' : ''}`}><slot name=\"start\" /></span>;\n }\n\n return null;\n }\n\n private renderEndContent() {\n if (this.iconOnly) {\n return null;\n }\n\n if (this.variant === 'disclosure') {\n return (\n <pds-icon class={this.loading ? 'pds-button__icon--hidden' : ''} icon={caretDown} part=\"caret\" aria-hidden=\"true\"></pds-icon>\n );\n } else if (this.hasSlotContent('end')) {\n return <span class={`pds-button__icon ${this.loading ? 'pds-button__icon--hidden' : ''}`}><slot name=\"end\" /></span>;\n }\n\n return null;\n }\n\n render() {\n // Common props for both button and anchor elements\n const commonProps = {\n class: this.classNames(),\n part: 'button',\n };\n\n const attributes = () => {\n if (this.href) {\n return {\n // Anchor element props\n ...commonProps,\n href: this.disabled ? null : this.href,\n target: this.target,\n };\n }\n\n return {\n // Button element props\n ...commonProps,\n 'aria-busy': this.loading ? 'true' : null,\n 'aria-live': this.loading ? 'polite' : null,\n 'disabled': this.disabled,\n 'name': this.name,\n 'type': this.type,\n 'value': this.value,\n };\n };\n\n const ContentElement = this.href ? 'a' : 'button';\n\n // Hide text when loading or iconOnly is true\n const hideText = this.loading || this.iconOnly;\n\n const content = (\n <div class=\"pds-button__content\" part=\"button-content\">\n {this.renderStartContent()}\n\n <span class={`pds-button__text ${hideText ? 'pds-button__text--hidden' : ''}`} part=\"button-text\">\n <slot />\n </span>\n\n {this.loading && (\n <span class=\"pds-button__loader\">\n <pds-loader is-loading={true} size=\"var(--pine-font-size-body-2xl)\" variant=\"spinner\">\n Loading...\n </pds-loader>\n </span>\n )}\n\n {this.renderEndContent()}\n </div>\n );\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n id={this.componentId}\n onClick={this.handleClick}\n variant={this.variant}\n >\n <ContentElement {...attributes()}>\n {content}\n </ContentElement>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-HBgo7i_E.system.js","sources":["src/components/pds-modal/pds-modal.scss?tag=pds-modal","src/components/pds-modal/pds-modal.tsx"],"sourcesContent":[".pds-modal__backdrop {\n align-items: flex-start;\n background-color: rgba(0, 0, 0, 0.4);\n border: 0;\n display: flex;\n height: 100%;\n inset: 0;\n justify-content: center;\n margin: 0;\n max-height: 100%;\n max-width: 100%;\n opacity: 0;\n padding: 0;\n position: fixed;\n transition: opacity 0.2s ease, visibility 0.2s ease;\n visibility: hidden;\n width: 100%;\n z-index: 1000;\n\n @supports (backdrop-filter: blur(3px)) {\n backdrop-filter: blur(3px);\n }\n\n // Increase z-index for nested modals\n pds-modal & {\n z-index: 1001;\n }\n\n &::backdrop {\n background: transparent;\n }\n\n &.open {\n opacity: 1;\n visibility: visible;\n }\n}\n\n.pds-modal {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-dimension-sm);\n box-shadow: var(--pine-box-shadow-400);\n display: flex;\n flex-direction: column;\n margin: var(--pine-dimension-md);\n max-height: calc(100vh - (calc(6vh + 96px)));\n width: 100%;\n\n @media (min-width: 992px) {\n margin-block-start: 6vh;\n }\n\n @media (min-width: 1200px) {\n margin-block-start: 8vh;\n }\n}\n\n.pds-modal--sm {\n max-width: 520px;\n}\n\n.pds-modal--md {\n max-width: 700px;\n}\n\n.pds-modal--lg {\n max-width: 900px;\n}\n\n.pds-modal--fullscreen {\n border-radius: 0;\n height: 100%;\n margin: 0;\n max-height: 100vh;\n max-width: 100%;\n}\n\n.pds-modal-content {\n .pds-modal--fullscreen & {\n flex: 1;\n }\n}\n\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'pds-modal',\n styleUrl: 'pds-modal.scss',\n shadow: false\n})\nexport class PdsModal {\n private modalRef: HTMLDialogElement;\n private previousActiveElement: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n\n @Element() el: HTMLPdsModalElement;\n\n /**\n * Whether the modal can be dismissed by clicking the backdrop\n * @default true\n */\n @Prop() backdropDismiss = true;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Whether the modal is open\n * @default false\n */\n @Prop({ mutable: true }) open = false;\n\n /**\n * The size of the modal\n * @default 'md'\n */\n @Prop() size: 'sm' | 'md' | 'lg' | 'fullscreen' = 'md';\n\n // Modal content is always scrollable by default\n\n /**\n * Emitted when the modal is opened\n */\n @Event() pdsModalOpen: EventEmitter<void>;\n\n /**\n * Emitted when the modal is closed\n */\n @Event() pdsModalClose: EventEmitter<void>;\n\n /**\n * Stores the list of focusable elements in the modal\n */\n @State() focusableElementsArray: HTMLElement[] = [];\n\n componentDidLoad() {\n this.modalRef = this.el.querySelector('.pds-modal__backdrop') as HTMLDialogElement;\n // Add keyboard event listener\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n // Clean up event listener\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n @Watch('open')\n handleOpenChange(newValue: boolean) {\n if (newValue) {\n this.showModal();\n } else {\n this.hideModal();\n }\n }\n\n /**\n * Updates the list of focusable elements in the modal\n */\n private updateFocusableElements() {\n if (!this.modalRef) return;\n\n // Get all focusable elements within the modal\n const selector = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'pds-button:not([disabled])',\n 'pds-link:not([disabled])',\n 'pds-input:not([disabled])',\n 'pds-checkbox:not([disabled])',\n 'pds-radio:not([disabled])',\n 'pds-switch:not([disabled])',\n 'pds-select:not([disabled])',\n ].join(',');\n\n this.focusableElements = Array.from(\n this.modalRef.querySelectorAll(selector)\n ) as HTMLElement[];\n\n // Filter out elements with display: none or visibility: hidden\n this.focusableElements = this.focusableElements.filter(el => {\n const style = window.getComputedStyle(el);\n return style.display !== 'none' && style.visibility !== 'hidden';\n });\n }\n\n /**\n * Sets focus to the first focusable element in the modal\n */\n private setInitialFocus() {\n if (this.focusableElements.length === 0) return;\n\n // Focus the first focusable element\n const firstElement = this.focusableElements[0];\n\n // For web components, we need to ensure they're properly focused\n this.focusElement(firstElement);\n }\n\n /**\n * Helper method to focus an element, with special handling for web components\n */\n private focusElement(element: HTMLElement) {\n if (!element) return;\n\n try {\n // Try standard focus first\n element.focus();\n\n // Check if focus worked\n setTimeout(() => {\n if (document.activeElement !== element) {\n // For web components, try to find a focusable element inside\n if (element.shadowRoot) {\n const focusableInShadow = element.shadowRoot.querySelector(\n 'button, [tabindex], input, a[href]'\n ) as HTMLElement;\n\n if (focusableInShadow) {\n focusableInShadow.focus();\n }\n }\n }\n }, 0);\n } catch (error) {\n console.error('Error focusing element:', error);\n }\n }\n\n /**\n * Opens the modal\n */\n @Method()\n async showModal() {\n if (this.modalRef) {\n try {\n // Store the currently focused element to restore focus when modal closes\n this.previousActiveElement = document.activeElement as HTMLElement;\n\n // Use native dialog showModal method which makes the rest of the page inert\n this.modalRef.showModal();\n this.open = true;\n\n // Update focusable elements and set initial focus\n // Using a longer timeout to ensure all components are fully rendered\n setTimeout(() => {\n this.updateFocusableElements();\n this.setInitialFocus();\n this.pdsModalOpen.emit();\n }, 100);\n } catch (error) {\n console.error('Failed to show modal:', error);\n }\n }\n }\n\n /**\n * Closes the modal\n */\n @Method()\n async hideModal() {\n if (this.modalRef) {\n try {\n this.modalRef.close();\n this.open = false;\n\n // Restore focus to the element that was focused before the modal was opened\n if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {\n this.previousActiveElement.focus();\n }\n\n this.pdsModalClose.emit();\n } catch (error) {\n console.error('Failed to hide modal:', error);\n }\n }\n }\n\n private handleBackdropClick = (e: MouseEvent) => {\n if (!this.backdropDismiss || !this.open) return;\n\n if ((e.target as HTMLElement).classList.contains('pds-modal__backdrop')) {\n e.stopPropagation();\n\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n this.hideModal();\n }\n }\n };\n\n /**\n * Gets the z-index of a modal's backdrop element\n */\n private getBackdropZIndex(modal: Element): number {\n const backdrop = modal.querySelector('.pds-modal__backdrop');\n return backdrop ? parseInt(getComputedStyle(backdrop).zIndex, 10) : -1;\n }\n\n /**\n * Checks if this modal is the innermost (highest z-index) modal\n */\n private isInnermostModal(): boolean {\n // Find all open modals\n const openModals = Array.from(document.querySelectorAll('pds-modal')).filter(\n modal => modal.open\n );\n\n if (openModals.length === 0) return false;\n\n // Get this modal's backdrop element\n const thisBackdrop = this.el.querySelector('.pds-modal__backdrop');\n if (!thisBackdrop) return false;\n\n // Get computed z-index of all open modal backdrops\n const modalZIndexes = openModals.map(modal => this.getBackdropZIndex(modal));\n\n // Get the highest z-index\n const maxZIndex = Math.max(...modalZIndexes);\n\n // Check if this modal's backdrop has the highest z-index\n const thisZIndex = this.getBackdropZIndex(this.el);\n return thisZIndex === maxZIndex;\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n // If the modal is not open, don't handle any keyboard events\n if (!this.open) return;\n\n // Handle Escape key to close the modal\n if (e.key === 'Escape') {\n // Only close if this is the innermost modal\n if (this.isInnermostModal()) {\n e.preventDefault();\n this.hideModal();\n }\n return;\n }\n\n // Handle Tab key for focus trapping\n if (e.key === 'Tab') {\n // If there are no focusable elements, do nothing\n if (this.focusableElements.length === 0) return;\n\n // Get the first and last focusable elements\n const firstFocusableElement = this.focusableElements[0];\n const lastFocusableElement = this.focusableElements[this.focusableElements.length - 1];\n\n // Get the current active element\n const activeElement = document.activeElement;\n\n // Check if we need to wrap focus\n const isFirstElement = activeElement === firstFocusableElement ||\n firstFocusableElement.contains(activeElement as Node);\n\n const isLastElement = activeElement === lastFocusableElement ||\n lastFocusableElement.contains(activeElement as Node);\n\n // If shift + tab is pressed and focus is on the first element, move to the last element\n if (e.shiftKey && isFirstElement) {\n e.preventDefault();\n this.focusElement(lastFocusableElement);\n }\n // If tab is pressed and focus is on the last element, move to the first element\n else if (!e.shiftKey && isLastElement) {\n e.preventDefault();\n this.focusElement(firstFocusableElement);\n }\n }\n };\n\n render() {\n return (\n <dialog\n class={{\n 'pds-modal__backdrop': true,\n 'open': this.open\n }}\n aria-modal=\"true\"\n aria-labelledby={`${this.componentId}-heading`}\n onClick={this.handleBackdropClick}\n >\n <div\n class={`pds-modal pds-modal--${this.size} pds-modal--scrollable`}\n >\n <slot></slot>\n </div>\n </dialog>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"p-D8WAvG2e.system.js","sources":["src/global/styles/utils/label.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-input/pds-input.tokens.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n","@use '~@kajabi-ui/styles/dist/pine/components/pds-input/pds-input.tokens'\n",":host {\n display: inline;\n}\n\n:host([aria-readonly=\"true\"]) {\n textarea {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n}\n\n.pds-textarea {\n display: flex;\n flex-direction: column;\n}\n\nlabel {\n display: block;\n margin-block-end: var(--pine-dimension-xs);\n}\n\n.pds-textarea__field {\n background-color: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: calc(var(--pine-dimension-xs) * 1.25);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n\n &:hover:not(:disabled, .is-invalid) {\n border: var(--pine-border-hover);\n }\n\n &:disabled {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n &.is-invalid {\n background-color: var(--pine-input-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n.pds-textarea__error-message,\n.pds-textarea__helper-message {\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--pine-dimension-xs);\n}\n\n.pds-textarea__error-message {\n align-items: center;\n color: var(--pine-color-text-message-danger);\n display: flex;\n gap: var(--pine-dimension-2xs);\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, isRequired, messageId } from '../../utils/form';\nimport { TextareaChangeEventDetail, TextareaInputEventDetail } from './textarea-interface';\nimport { debounceEvent } from '@utils/utils';\nimport type { Attributes } from '@utils/attributes';\nimport { inheritAttributes, inheritAriaAttributes } from '@utils/attributes';\nimport { danger } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-textarea',\n styleUrls: [\n '../../global/styles/utils/label.scss',\n '../pds-input/pds-input.tokens.scss',\n 'pds-textarea.scss'\n ],\n shadow: true,\n})\nexport class PdsTextarea {\n private nativeTextarea?: HTMLTextAreaElement\n private focusedValue?: string | null;\n private inheritedAttributes: Attributes = {};\n private originalPdsInput?: EventEmitter<TextareaInputEventDetail>;\n\n @Element() el: HTMLPdsTextareaElement;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n @Event() pdsInput: EventEmitter<TextareaInputEventDetail>;\n\n /**\n * Event emitted whenever the value of the textarea changes.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsTextareaChange: EventEmitter<TextareaChangeEventDetail>;\n\n /**\n * Sets focus on the native `textarea` in the `pds-texarea`. Use this method instead of the global\n * `textarea.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeTextarea) {\n this.nativeTextarea.focus();\n }\n }\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines whether or not the textarea is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the event after each keystroke.\n */\n @Prop() debounce?: number;\n\n /**\n * Displays an error message below the textarea field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the textarea field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the textarea is invalid or throws an error.\n * @defaultValue false\n */\n @Prop({mutable: true}) invalid = false; // eslint-disable-line @stencil-community/strict-mutable\n\n /**\n * Text to be displayed as the textarea label.\n */\n @Prop() label?: string;\n\n /**\n * Specifies the name. Submitted with the form name/value pair. This value will mirror the componentId.\n */\n @Prop() name: string = this.componentId;\n\n /**\n * Specifies a short hint that describes the expected value of the textarea.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the textarea is readonly.\n * @defaultValue false\n */\n @Prop() readonly = false;\n\n /**\n * Determines whether or not the textarea is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Sets number of rows of text visible without needing to scroll in the textarea.\n */\n @Prop() rows?: number;\n\n /**\n * The value of the textarea.\n */\n @Prop({mutable: true}) value?: string | null = '';\n\n @State() hasFocus = false;\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n const nativeTextarea = this.nativeTextarea;\n const value = this.getValue();\n\n if (nativeTextarea && nativeTextarea.value !== value) {\n nativeTextarea.value = value;\n }\n }\n\n /**\n * Emits an `pdsInput` event.\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n this.pdsInput.emit({ value, event });\n }\n\n /**\n * Emits an `pdsTextareaChange` event.\n */\n private emitValueChange(event?: Event) {\n const textarea = event.target as HTMLTextAreaElement;\n isRequired(textarea, this);\n\n const { value } = textarea;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n this.focusedValue = newValue;\n this.pdsTextareaChange.emit({ value: newValue, event });\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private onBlur = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLTextAreaElement | null;\n if (input) {\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n };\n\n private onTextareaChange = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private textareaClassNames() {\n const classNames = ['pds-textarea__field'];\n\n if (this.invalid && this.invalid === true) {\n classNames.push('is-invalid');\n }\n\n return classNames.join(' ');\n }\n\n connectedCallback() {\n this.debounceChanged();\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el),\n };\n }\n\n componentDidLoad() {\n this.originalPdsInput = this.pdsInput;\n }\n\n render() {\n const value = this.getValue();\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n >\n <div class=\"pds-textarea\">\n {this.label &&\n <label htmlFor={this.componentId}>{this.label}</label>\n }\n <textarea\n ref={(el) => this.nativeTextarea = el }\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n class={this.textareaClassNames()}\n disabled={this.disabled}\n id={this.componentId}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n rows={this.rows}\n onBlur={this.onBlur}\n onChange={this.onTextareaChange}\n onFocus={this.onFocus}\n onInput={this.onInput}\n {...this.inheritedAttributes}\n >\n {value}\n </textarea>\n {this.helperMessage &&\n <p\n class=\"pds-textarea__helper-message\"\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </p>\n }\n {this.invalid &&\n <p\n aria-live=\"assertive\"\n class=\"pds-textarea__error-message\"\n id={messageId(this.componentId, 'error')}\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n }\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p-M2Hhmwex.system.js","sources":["src/global/styles/utils/label.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-input/pds-input.tokens.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n","@use '~@kajabi-ui/styles/dist/pine/components/pds-input/pds-input.tokens'\n",":host {\n display: inline;\n}\n\n:host([aria-readonly=\"true\"]) {\n textarea {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n}\n\n.pds-textarea {\n display: flex;\n flex-direction: column;\n}\n\nlabel {\n display: block;\n margin-block-end: var(--pine-dimension-xs);\n}\n\n.pds-textarea__field {\n background-color: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: calc(var(--pine-dimension-xs) * 1.25);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n\n &:hover:not(:disabled, .is-invalid) {\n border: var(--pine-border-hover);\n }\n\n &:disabled {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n &.is-invalid {\n background-color: var(--pine-input-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n.pds-textarea__error-message,\n.pds-textarea__helper-message {\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--pine-dimension-xs);\n}\n\n.pds-textarea__error-message {\n align-items: center;\n color: var(--pine-color-text-message-danger);\n display: flex;\n gap: var(--pine-dimension-2xs);\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, isRequired, messageId } from '../../utils/form';\nimport { TextareaChangeEventDetail, TextareaInputEventDetail } from './textarea-interface';\nimport { debounceEvent } from '@utils/utils';\nimport type { Attributes } from '@utils/attributes';\nimport { inheritAttributes, inheritAriaAttributes } from '@utils/attributes';\nimport { danger } from '@pine-ds/icons/icons';\n\n@Component({\n tag: 'pds-textarea',\n styleUrls: [\n '../../global/styles/utils/label.scss',\n '../pds-input/pds-input.tokens.scss',\n 'pds-textarea.scss'\n ],\n shadow: true,\n})\nexport class PdsTextarea {\n private nativeTextarea?: HTMLTextAreaElement\n private focusedValue?: string | null;\n private inheritedAttributes: Attributes = {};\n private originalPdsInput?: EventEmitter<TextareaInputEventDetail>;\n\n @Element() el: HTMLPdsTextareaElement;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n @Event() pdsInput: EventEmitter<TextareaInputEventDetail>;\n\n /**\n * Event emitted whenever the value of the textarea changes.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsTextareaChange: EventEmitter<TextareaChangeEventDetail>;\n\n /**\n * Sets focus on the native `textarea` in the `pds-texarea`. Use this method instead of the global\n * `textarea.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeTextarea) {\n this.nativeTextarea.focus();\n }\n }\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines whether or not the textarea is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the event after each keystroke.\n */\n @Prop() debounce?: number;\n\n /**\n * Displays an error message below the textarea field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the textarea field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the textarea is invalid or throws an error.\n * @defaultValue false\n */\n @Prop({mutable: true}) invalid = false; // eslint-disable-line @stencil-community/strict-mutable\n\n /**\n * Text to be displayed as the textarea label.\n */\n @Prop() label?: string;\n\n /**\n * Specifies the name. Submitted with the form name/value pair. This value will mirror the componentId.\n */\n @Prop() name: string = this.componentId;\n\n /**\n * Specifies a short hint that describes the expected value of the textarea.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the textarea is readonly.\n * @defaultValue false\n */\n @Prop() readonly = false;\n\n /**\n * Determines whether or not the textarea is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Sets number of rows of text visible without needing to scroll in the textarea.\n */\n @Prop() rows?: number;\n\n /**\n * The value of the textarea.\n */\n @Prop({mutable: true}) value?: string | null = '';\n\n @State() hasFocus = false;\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n const nativeTextarea = this.nativeTextarea;\n const value = this.getValue();\n\n if (nativeTextarea && nativeTextarea.value !== value) {\n nativeTextarea.value = value;\n }\n }\n\n /**\n * Emits an `pdsInput` event.\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n this.pdsInput.emit({ value, event });\n }\n\n /**\n * Emits an `pdsTextareaChange` event.\n */\n private emitValueChange(event?: Event) {\n const textarea = event.target as HTMLTextAreaElement;\n isRequired(textarea, this);\n\n const { value } = textarea;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n this.focusedValue = newValue;\n this.pdsTextareaChange.emit({ value: newValue, event });\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private onBlur = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLTextAreaElement | null;\n if (input) {\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n };\n\n private onTextareaChange = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private textareaClassNames() {\n const classNames = ['pds-textarea__field'];\n\n if (this.invalid && this.invalid === true) {\n classNames.push('is-invalid');\n }\n\n return classNames.join(' ');\n }\n\n connectedCallback() {\n this.debounceChanged();\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el),\n };\n }\n\n componentDidLoad() {\n this.originalPdsInput = this.pdsInput;\n }\n\n render() {\n const value = this.getValue();\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n >\n <div class=\"pds-textarea\">\n {this.label &&\n <label htmlFor={this.componentId}>{this.label}</label>\n }\n <textarea\n ref={(el) => this.nativeTextarea = el }\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n class={this.textareaClassNames()}\n disabled={this.disabled}\n id={this.componentId}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n rows={this.rows}\n onBlur={this.onBlur}\n onChange={this.onTextareaChange}\n onFocus={this.onFocus}\n onInput={this.onInput}\n {...this.inheritedAttributes}\n >\n {value}\n </textarea>\n {this.helperMessage &&\n <p\n class=\"pds-textarea__helper-message\"\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </p>\n }\n {this.invalid &&\n <p\n aria-live=\"assertive\"\n class=\"pds-textarea__error-message\"\n id={messageId(this.componentId, 'error')}\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n }\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}