@pine-ds/core 3.12.1 → 3.14.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 (417) hide show
  1. package/components/mock-pds-modal.js +9 -5
  2. package/components/mock-pds-modal.js.map +1 -1
  3. package/components/pds-alert.js +1 -1
  4. package/components/pds-alert.js.map +1 -1
  5. package/components/pds-avatar.js +18 -5
  6. package/components/pds-avatar.js.map +1 -1
  7. package/components/pds-button2.js.map +1 -1
  8. package/components/pds-checkbox2.js.map +1 -1
  9. package/components/pds-chip2.js.map +1 -1
  10. package/components/pds-combobox.js +1 -1
  11. package/components/pds-combobox.js.map +1 -1
  12. package/components/pds-dropdown-menu-item.js +1 -1
  13. package/components/pds-dropdown-menu-item.js.map +1 -1
  14. package/components/pds-filter.js +1 -1
  15. package/components/pds-filter.js.map +1 -1
  16. package/components/pds-input.js +6 -2
  17. package/components/pds-input.js.map +1 -1
  18. package/components/pds-link2.js +1 -1
  19. package/components/pds-link2.js.map +1 -1
  20. package/components/pds-modal.js +7 -6
  21. package/components/pds-modal.js.map +1 -1
  22. package/components/pds-radio-group.js +1 -1
  23. package/components/pds-radio-group.js.map +1 -1
  24. package/components/pds-radio.js +1 -1
  25. package/components/pds-radio.js.map +1 -1
  26. package/components/pds-select.js +14 -2
  27. package/components/pds-select.js.map +1 -1
  28. package/components/pds-tab.js +20 -4
  29. package/components/pds-tab.js.map +1 -1
  30. package/components/pds-table-cell2.js.map +1 -1
  31. package/components/pds-table-head-cell2.js +61 -5
  32. package/components/pds-table-head-cell2.js.map +1 -1
  33. package/components/pds-table-head.js +15 -3
  34. package/components/pds-table-head.js.map +1 -1
  35. package/components/pds-table-row.js +100 -4
  36. package/components/pds-table-row.js.map +1 -1
  37. package/components/pds-table.js +50 -3
  38. package/components/pds-table.js.map +1 -1
  39. package/components/pds-textarea.js +9 -5
  40. package/components/pds-textarea.js.map +1 -1
  41. package/dist/cjs/loader.cjs.js +1 -1
  42. package/dist/cjs/mock-pds-modal.cjs.entry.js +9 -5
  43. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  44. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  45. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  46. package/dist/cjs/pds-avatar.cjs.entry.js +17 -5
  47. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  48. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  49. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  50. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  51. package/dist/cjs/pds-combobox.cjs.entry.js +1 -1
  52. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  53. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  54. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  55. package/dist/cjs/pds-filter.cjs.entry.js +1 -1
  56. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  57. package/dist/cjs/pds-input.cjs.entry.js +6 -2
  58. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  59. package/dist/cjs/pds-link.cjs.entry.js +1 -1
  60. package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
  61. package/dist/cjs/pds-modal.cjs.entry.js +7 -6
  62. package/dist/cjs/pds-modal.entry.cjs.js.map +1 -1
  63. package/dist/cjs/pds-radio-group.cjs.entry.js +1 -1
  64. package/dist/cjs/pds-radio-group.entry.cjs.js.map +1 -1
  65. package/dist/cjs/pds-radio.cjs.entry.js +1 -1
  66. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  67. package/dist/cjs/pds-select.cjs.entry.js +14 -2
  68. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  69. package/dist/cjs/pds-tab.cjs.entry.js +19 -4
  70. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  71. package/dist/cjs/pds-table-cell.entry.cjs.js.map +1 -1
  72. package/dist/cjs/pds-table-head-cell.cjs.entry.js +57 -4
  73. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  74. package/dist/cjs/pds-table-head.cjs.entry.js +12 -2
  75. package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
  76. package/dist/cjs/pds-table-row.cjs.entry.js +97 -3
  77. package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
  78. package/dist/cjs/pds-table.cjs.entry.js +47 -3
  79. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  80. package/dist/cjs/pds-textarea.cjs.entry.js +9 -5
  81. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  82. package/dist/cjs/pine-core.cjs.js +1 -1
  83. package/dist/collection/components/pds-alert/pds-alert.css +22 -0
  84. package/dist/collection/components/pds-avatar/pds-avatar.css +14 -1
  85. package/dist/collection/components/pds-avatar/pds-avatar.js +39 -4
  86. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  87. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +15 -0
  88. package/dist/collection/components/pds-button/pds-button.css +3 -0
  89. package/dist/collection/components/pds-checkbox/pds-checkbox.css +2 -0
  90. package/dist/collection/components/pds-chip/pds-chip.css +7 -0
  91. package/dist/collection/components/pds-combobox/pds-combobox.css +6 -1
  92. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +4 -3
  93. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +1 -1
  94. package/dist/collection/components/pds-input/pds-input.css +5 -3
  95. package/dist/collection/components/pds-input/pds-input.js +24 -1
  96. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  97. package/dist/collection/components/pds-link/pds-link.css +3 -3
  98. package/dist/collection/components/pds-modal/pds-modal.css +1 -0
  99. package/dist/collection/components/pds-modal/pds-modal.js +7 -6
  100. package/dist/collection/components/pds-modal/pds-modal.js.map +1 -1
  101. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +10 -6
  102. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +1 -1
  103. package/dist/collection/components/pds-radio/pds-radio.css +4 -1
  104. package/dist/collection/components/pds-radio-group/pds-radio-group.css +3 -1
  105. package/dist/collection/components/pds-select/pds-select.css +5 -3
  106. package/dist/collection/components/pds-select/pds-select.js +71 -2
  107. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  108. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.css +1 -0
  109. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.css +18 -0
  110. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +57 -1
  111. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +1 -1
  112. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +12 -2
  113. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +87 -4
  114. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  115. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +10 -0
  116. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +102 -2
  117. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +1 -1
  118. package/dist/collection/components/pds-table/pds-table.css +2 -0
  119. package/dist/collection/components/pds-table/pds-table.js +112 -3
  120. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  121. package/dist/collection/components/pds-table/stories/pds-table.stories.js +150 -5
  122. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +23 -4
  123. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +41 -3
  124. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +1 -1
  125. package/dist/collection/components/pds-textarea/pds-textarea.css +3 -1
  126. package/dist/collection/components/pds-textarea/pds-textarea.js +27 -4
  127. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  128. package/dist/docs.json +341 -4
  129. package/dist/esm/loader.js +1 -1
  130. package/dist/esm/mock-pds-modal.entry.js +9 -5
  131. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  132. package/dist/esm/pds-alert.entry.js +1 -1
  133. package/dist/esm/pds-alert.entry.js.map +1 -1
  134. package/dist/esm/pds-avatar.entry.js +17 -5
  135. package/dist/esm/pds-avatar.entry.js.map +1 -1
  136. package/dist/esm/pds-button.entry.js.map +1 -1
  137. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  138. package/dist/esm/pds-chip.entry.js.map +1 -1
  139. package/dist/esm/pds-combobox.entry.js +1 -1
  140. package/dist/esm/pds-combobox.entry.js.map +1 -1
  141. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  142. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  143. package/dist/esm/pds-filter.entry.js +1 -1
  144. package/dist/esm/pds-filter.entry.js.map +1 -1
  145. package/dist/esm/pds-input.entry.js +6 -2
  146. package/dist/esm/pds-input.entry.js.map +1 -1
  147. package/dist/esm/pds-link.entry.js +1 -1
  148. package/dist/esm/pds-link.entry.js.map +1 -1
  149. package/dist/esm/pds-modal.entry.js +7 -6
  150. package/dist/esm/pds-modal.entry.js.map +1 -1
  151. package/dist/esm/pds-radio-group.entry.js +1 -1
  152. package/dist/esm/pds-radio-group.entry.js.map +1 -1
  153. package/dist/esm/pds-radio.entry.js +1 -1
  154. package/dist/esm/pds-radio.entry.js.map +1 -1
  155. package/dist/esm/pds-select.entry.js +14 -2
  156. package/dist/esm/pds-select.entry.js.map +1 -1
  157. package/dist/esm/pds-tab.entry.js +19 -4
  158. package/dist/esm/pds-tab.entry.js.map +1 -1
  159. package/dist/esm/pds-table-cell.entry.js.map +1 -1
  160. package/dist/esm/pds-table-head-cell.entry.js +57 -4
  161. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  162. package/dist/esm/pds-table-head.entry.js +12 -2
  163. package/dist/esm/pds-table-head.entry.js.map +1 -1
  164. package/dist/esm/pds-table-row.entry.js +97 -3
  165. package/dist/esm/pds-table-row.entry.js.map +1 -1
  166. package/dist/esm/pds-table.entry.js +47 -3
  167. package/dist/esm/pds-table.entry.js.map +1 -1
  168. package/dist/esm/pds-textarea.entry.js +9 -5
  169. package/dist/esm/pds-textarea.entry.js.map +1 -1
  170. package/dist/esm/pine-core.js +1 -1
  171. package/dist/esm-es5/loader.js +1 -1
  172. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  173. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
  174. package/dist/esm-es5/pds-alert.entry.js +1 -1
  175. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  176. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  177. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  178. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  179. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  180. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  181. package/dist/esm-es5/pds-combobox.entry.js +1 -1
  182. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  183. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  184. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  185. package/dist/esm-es5/pds-filter.entry.js +1 -1
  186. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  187. package/dist/esm-es5/pds-input.entry.js +1 -1
  188. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  189. package/dist/esm-es5/pds-link.entry.js +1 -1
  190. package/dist/esm-es5/pds-link.entry.js.map +1 -1
  191. package/dist/esm-es5/pds-modal.entry.js +1 -1
  192. package/dist/esm-es5/pds-modal.entry.js.map +1 -1
  193. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  194. package/dist/esm-es5/pds-radio-group.entry.js.map +1 -1
  195. package/dist/esm-es5/pds-radio.entry.js +1 -1
  196. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  197. package/dist/esm-es5/pds-select.entry.js +1 -1
  198. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  199. package/dist/esm-es5/pds-tab.entry.js +1 -1
  200. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  201. package/dist/esm-es5/pds-table-cell.entry.js.map +1 -1
  202. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  203. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  204. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  205. package/dist/esm-es5/pds-table-head.entry.js.map +1 -1
  206. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  207. package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
  208. package/dist/esm-es5/pds-table.entry.js +1 -1
  209. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  210. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  211. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  212. package/dist/esm-es5/pine-core.js +1 -1
  213. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  214. package/dist/pine-core/p--gPqixhD.system.js.map +1 -1
  215. package/dist/pine-core/p-002fe322.system.entry.js +2 -0
  216. package/dist/pine-core/p-002fe322.system.entry.js.map +1 -0
  217. package/dist/pine-core/p-098cbcd7.system.entry.js +2 -0
  218. package/dist/pine-core/p-098cbcd7.system.entry.js.map +1 -0
  219. package/dist/pine-core/p-35f644cf.system.entry.js +2 -0
  220. package/dist/pine-core/{p-36ad78b5.system.entry.js.map → p-35f644cf.system.entry.js.map} +1 -1
  221. package/dist/pine-core/p-41d89f20.entry.js +2 -0
  222. package/dist/pine-core/p-41d89f20.entry.js.map +1 -0
  223. package/dist/pine-core/p-478d1107.entry.js +2 -0
  224. package/dist/pine-core/{p-41cc9270.entry.js.map → p-478d1107.entry.js.map} +1 -1
  225. package/dist/pine-core/p-4SEjggIC.system.js.map +1 -0
  226. package/dist/pine-core/p-4d25449c.entry.js +2 -0
  227. package/dist/pine-core/p-4d25449c.entry.js.map +1 -0
  228. package/dist/pine-core/p-534e44cb.system.entry.js +4 -0
  229. package/dist/pine-core/{p-bee8d4b8.system.entry.js.map → p-534e44cb.system.entry.js.map} +1 -1
  230. package/dist/pine-core/p-54a56826.entry.js +3 -0
  231. package/dist/pine-core/{p-66160018.entry.js.map → p-54a56826.entry.js.map} +1 -1
  232. package/dist/pine-core/p-5b7ab891.entry.js +2 -0
  233. package/dist/pine-core/{p-233a6680.entry.js.map → p-5b7ab891.entry.js.map} +1 -1
  234. package/dist/pine-core/p-646ac76d.entry.js +2 -0
  235. package/dist/pine-core/p-646ac76d.entry.js.map +1 -0
  236. package/dist/pine-core/p-6bc7d67f.system.entry.js +2 -0
  237. package/dist/pine-core/{p-c03e2c5d.system.entry.js.map → p-6bc7d67f.system.entry.js.map} +1 -1
  238. package/dist/pine-core/p-6fcac53b.entry.js +2 -0
  239. package/dist/pine-core/{p-96be2d57.entry.js.map → p-6fcac53b.entry.js.map} +1 -1
  240. package/dist/pine-core/{p-2d3da08b.system.entry.js → p-8f2a5a4c.system.entry.js} +2 -2
  241. package/dist/pine-core/p-8f2a5a4c.system.entry.js.map +1 -0
  242. package/dist/pine-core/{p-43f1eead.entry.js → p-9b3794cd.entry.js} +2 -2
  243. package/dist/pine-core/p-9b3794cd.entry.js.map +1 -0
  244. package/dist/pine-core/p-9bfaed7e.system.entry.js +2 -0
  245. package/dist/pine-core/p-9bfaed7e.system.entry.js.map +1 -0
  246. package/dist/pine-core/p-9c0ec80a.entry.js +2 -0
  247. package/dist/pine-core/p-9c0ec80a.entry.js.map +1 -0
  248. package/dist/pine-core/{p-3f8a5f3d.system.entry.js → p-9d6b6ff3.system.entry.js} +2 -2
  249. package/dist/pine-core/p-9d6b6ff3.system.entry.js.map +1 -0
  250. package/dist/pine-core/p-9e62c418.system.entry.js +2 -0
  251. package/dist/pine-core/p-9e62c418.system.entry.js.map +1 -0
  252. package/dist/pine-core/p-B4EMeCRH.system.js.map +1 -0
  253. package/dist/pine-core/p-BCKPcTKX.system.js.map +1 -0
  254. package/dist/pine-core/p-B_Co5NfG.system.js.map +1 -0
  255. package/dist/pine-core/p-Bjj4Pcbb.system.js.map +1 -0
  256. package/dist/pine-core/p-Bnp3zJ0T.system.js.map +1 -0
  257. package/dist/pine-core/p-C48G0LPH.system.js.map +1 -0
  258. package/dist/pine-core/p-CCgKUhC7.system.js.map +1 -0
  259. package/dist/pine-core/p-CTfQ_9yC.system.js.map +1 -0
  260. package/dist/pine-core/p-CXGuX44q.system.js.map +1 -1
  261. package/dist/pine-core/p-DAvCgWA9.system.js.map +1 -0
  262. package/dist/pine-core/p-DSwKfctG.system.js.map +1 -0
  263. package/dist/pine-core/p-DfCCzxYg.system.js.map +1 -0
  264. package/dist/pine-core/p-DpeOrUYB.system.js.map +1 -1
  265. package/dist/pine-core/p-DyrNlfLT.system.js.map +1 -0
  266. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  267. package/dist/pine-core/p-LEkjdrKv.system.js.map +1 -0
  268. package/dist/pine-core/p-PMNjgK0C.system.js.map +1 -0
  269. package/dist/pine-core/p-WhfStK1C.system.js.map +1 -1
  270. package/dist/pine-core/p-XCTiWii8.system.js.map +1 -0
  271. package/dist/pine-core/p-a737df90.entry.js +2 -0
  272. package/dist/pine-core/{p-d5731a05.entry.js.map → p-a737df90.entry.js.map} +1 -1
  273. package/dist/pine-core/p-a847fad3.entry.js +2 -0
  274. package/dist/pine-core/p-a847fad3.entry.js.map +1 -0
  275. package/dist/pine-core/p-ac2f9463.entry.js +2 -0
  276. package/dist/pine-core/p-ac2f9463.entry.js.map +1 -0
  277. package/dist/pine-core/p-b30424e3.system.entry.js +2 -0
  278. package/dist/pine-core/{p-a4d094da.system.entry.js.map → p-b30424e3.system.entry.js.map} +1 -1
  279. package/dist/pine-core/p-bbc349b3.system.entry.js +2 -0
  280. package/dist/pine-core/p-bbc349b3.system.entry.js.map +1 -0
  281. package/dist/pine-core/p-cb6c279a.system.entry.js +2 -0
  282. package/dist/pine-core/{p-6bc81a5b.system.entry.js.map → p-cb6c279a.system.entry.js.map} +1 -1
  283. package/dist/pine-core/p-cf2e1c07.system.entry.js +2 -0
  284. package/dist/pine-core/{p-e31ea2ae.system.entry.js.map → p-cf2e1c07.system.entry.js.map} +1 -1
  285. package/dist/pine-core/p-d98310b9.system.entry.js +2 -0
  286. package/dist/pine-core/p-d98310b9.system.entry.js.map +1 -0
  287. package/dist/pine-core/{p-b8047816.system.entry.js → p-dcc6ad67.system.entry.js} +2 -2
  288. package/dist/pine-core/{p-b8047816.system.entry.js.map → p-dcc6ad67.system.entry.js.map} +1 -1
  289. package/dist/pine-core/p-e011d7e5.entry.js +2 -0
  290. package/dist/pine-core/p-e011d7e5.entry.js.map +1 -0
  291. package/dist/pine-core/p-e2104c31.entry.js +2 -0
  292. package/dist/pine-core/{p-66597ea5.entry.js.map → p-e2104c31.entry.js.map} +1 -1
  293. package/dist/pine-core/p-e3d76aa3.system.entry.js +2 -0
  294. package/dist/pine-core/p-e3d76aa3.system.entry.js.map +1 -0
  295. package/dist/pine-core/p-e8aad8dc.entry.js +2 -0
  296. package/dist/pine-core/p-e8aad8dc.entry.js.map +1 -0
  297. package/dist/pine-core/p-f69d3fd6.entry.js +2 -0
  298. package/dist/pine-core/p-f69d3fd6.entry.js.map +1 -0
  299. package/dist/pine-core/p-f79f6f08.system.entry.js +2 -0
  300. package/dist/pine-core/p-f79f6f08.system.entry.js.map +1 -0
  301. package/dist/pine-core/p-f82b464c.entry.js +2 -0
  302. package/dist/pine-core/{p-4c0797f2.entry.js.map → p-f82b464c.entry.js.map} +1 -1
  303. package/dist/pine-core/p-fc0ee6da.entry.js +2 -0
  304. package/dist/pine-core/p-fc0ee6da.entry.js.map +1 -0
  305. package/dist/pine-core/p-fe28b975.system.entry.js +2 -0
  306. package/dist/pine-core/p-fe28b975.system.entry.js.map +1 -0
  307. package/dist/pine-core/p-jBhqNO5u.system.js.map +1 -0
  308. package/dist/pine-core/p-r_cS5LMw.system.js.map +1 -0
  309. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  310. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  311. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  312. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  313. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  314. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  315. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  316. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  317. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  318. package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
  319. package/dist/pine-core/pds-modal.entry.esm.js.map +1 -1
  320. package/dist/pine-core/pds-radio-group.entry.esm.js.map +1 -1
  321. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  322. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  323. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  324. package/dist/pine-core/pds-table-cell.entry.esm.js.map +1 -1
  325. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  326. package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
  327. package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
  328. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  329. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  330. package/dist/pine-core/pine-core.esm.js +1 -1
  331. package/dist/types/components/pds-avatar/pds-avatar.d.ts +5 -0
  332. package/dist/types/components/pds-input/pds-input.d.ts +5 -0
  333. package/dist/types/components/pds-modal/test/mock-pds-modal.d.ts +2 -2
  334. package/dist/types/components/pds-select/pds-select.d.ts +16 -1
  335. package/dist/types/components/pds-table/pds-table-head/pds-table-head.d.ts +10 -0
  336. package/dist/types/components/pds-table/pds-table-head-cell/pds-table-head-cell.d.ts +18 -1
  337. package/dist/types/components/pds-table/pds-table-row/pds-table-row.d.ts +19 -0
  338. package/dist/types/components/pds-table/pds-table.d.ts +22 -1
  339. package/dist/types/components/pds-tabs/pds-tab/pds-tab.d.ts +6 -0
  340. package/dist/types/components/pds-textarea/pds-textarea.d.ts +5 -0
  341. package/dist/types/components.d.ts +101 -3
  342. package/dist/vscode.html-data.json +63 -6
  343. package/hydrate/index.js +318 -53
  344. package/hydrate/index.mjs +318 -53
  345. package/package.json +5 -5
  346. package/dist/pine-core/p-04f92b5a.system.entry.js +0 -2
  347. package/dist/pine-core/p-04f92b5a.system.entry.js.map +0 -1
  348. package/dist/pine-core/p-11d69ad5.system.entry.js +0 -2
  349. package/dist/pine-core/p-11d69ad5.system.entry.js.map +0 -1
  350. package/dist/pine-core/p-1282026f.entry.js +0 -2
  351. package/dist/pine-core/p-1282026f.entry.js.map +0 -1
  352. package/dist/pine-core/p-233a6680.entry.js +0 -2
  353. package/dist/pine-core/p-2d3da08b.system.entry.js.map +0 -1
  354. package/dist/pine-core/p-36ad78b5.system.entry.js +0 -2
  355. package/dist/pine-core/p-372a6081.entry.js +0 -2
  356. package/dist/pine-core/p-372a6081.entry.js.map +0 -1
  357. package/dist/pine-core/p-3f8a5f3d.system.entry.js.map +0 -1
  358. package/dist/pine-core/p-3fd0f8a9.system.entry.js +0 -2
  359. package/dist/pine-core/p-3fd0f8a9.system.entry.js.map +0 -1
  360. package/dist/pine-core/p-41cc9270.entry.js +0 -2
  361. package/dist/pine-core/p-43f1eead.entry.js.map +0 -1
  362. package/dist/pine-core/p-46e5a568.entry.js +0 -2
  363. package/dist/pine-core/p-46e5a568.entry.js.map +0 -1
  364. package/dist/pine-core/p-4c0797f2.entry.js +0 -2
  365. package/dist/pine-core/p-5d7c4fbb.entry.js +0 -2
  366. package/dist/pine-core/p-5d7c4fbb.entry.js.map +0 -1
  367. package/dist/pine-core/p-6150fb43.system.entry.js +0 -2
  368. package/dist/pine-core/p-6150fb43.system.entry.js.map +0 -1
  369. package/dist/pine-core/p-65c566a2.system.entry.js +0 -2
  370. package/dist/pine-core/p-65c566a2.system.entry.js.map +0 -1
  371. package/dist/pine-core/p-66160018.entry.js +0 -3
  372. package/dist/pine-core/p-66597ea5.entry.js +0 -2
  373. package/dist/pine-core/p-6bc81a5b.system.entry.js +0 -2
  374. package/dist/pine-core/p-6c3299f9.system.entry.js +0 -2
  375. package/dist/pine-core/p-6c3299f9.system.entry.js.map +0 -1
  376. package/dist/pine-core/p-6de73f62.entry.js +0 -2
  377. package/dist/pine-core/p-6de73f62.entry.js.map +0 -1
  378. package/dist/pine-core/p-8d6fa6f7.entry.js +0 -2
  379. package/dist/pine-core/p-8d6fa6f7.entry.js.map +0 -1
  380. package/dist/pine-core/p-96be2d57.entry.js +0 -2
  381. package/dist/pine-core/p-9ddf4f1f.entry.js +0 -2
  382. package/dist/pine-core/p-9ddf4f1f.entry.js.map +0 -1
  383. package/dist/pine-core/p-B81sAPMq.system.js.map +0 -1
  384. package/dist/pine-core/p-BUwuPP5j.system.js.map +0 -1
  385. package/dist/pine-core/p-BVjyFx0r.system.js.map +0 -1
  386. package/dist/pine-core/p-C9T6sYau.system.js.map +0 -1
  387. package/dist/pine-core/p-CWaidsBR.system.js.map +0 -1
  388. package/dist/pine-core/p-Ch7MRoFE.system.js.map +0 -1
  389. package/dist/pine-core/p-CiqRCskL.system.js.map +0 -1
  390. package/dist/pine-core/p-CoF_9_BM.system.js.map +0 -1
  391. package/dist/pine-core/p-CrzS8Mmy.system.js.map +0 -1
  392. package/dist/pine-core/p-Cwz8YTwo.system.js.map +0 -1
  393. package/dist/pine-core/p-DaQV83Gx.system.js.map +0 -1
  394. package/dist/pine-core/p-GKNvlYGa.system.js.map +0 -1
  395. package/dist/pine-core/p-Ma8AuMzD.system.js.map +0 -1
  396. package/dist/pine-core/p-RO-Y2DRT.system.js.map +0 -1
  397. package/dist/pine-core/p-a4d094da.system.entry.js +0 -2
  398. package/dist/pine-core/p-ac050f83.entry.js +0 -2
  399. package/dist/pine-core/p-ac050f83.entry.js.map +0 -1
  400. package/dist/pine-core/p-b59ac781.entry.js +0 -2
  401. package/dist/pine-core/p-b59ac781.entry.js.map +0 -1
  402. package/dist/pine-core/p-b6a503cc.system.entry.js +0 -2
  403. package/dist/pine-core/p-b6a503cc.system.entry.js.map +0 -1
  404. package/dist/pine-core/p-b9a14564.system.entry.js +0 -2
  405. package/dist/pine-core/p-b9a14564.system.entry.js.map +0 -1
  406. package/dist/pine-core/p-bee8d4b8.system.entry.js +0 -4
  407. package/dist/pine-core/p-c03e2c5d.system.entry.js +0 -2
  408. package/dist/pine-core/p-c2d17093.system.entry.js +0 -2
  409. package/dist/pine-core/p-c2d17093.system.entry.js.map +0 -1
  410. package/dist/pine-core/p-cf4df489.entry.js +0 -2
  411. package/dist/pine-core/p-cf4df489.entry.js.map +0 -1
  412. package/dist/pine-core/p-d5731a05.entry.js +0 -2
  413. package/dist/pine-core/p-e31ea2ae.system.entry.js +0 -2
  414. package/dist/pine-core/p-eHySdsWM.system.js.map +0 -1
  415. package/dist/pine-core/p-qkIMFuAW.system.js.map +0 -1
  416. package/dist/pine-core/p-s-tFgs4I.system.js.map +0 -1
  417. package/dist/pine-core/p-uv97KtT8.system.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"pds-table-row.js","mappings":"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","names":["PdsTableRow","__stencil_proxyCustomElement"],"sources":["src/components/pds-table/pds-table-row/pds-table-row.scss?tag=pds-table-row&encapsulation=shadow","src/components/pds-table/pds-table-row/pds-table-row.tsx"],"sourcesContent":[":host {\n --color-background-interactive: var(--pine-color-border-disabled);\n\n border-color: inherit;\n display: table-row;\n vertical-align: inherit;\n\n // used for pds-checkbox-cell\n // because it is in the ShadowDom\n &::part(checkbox-cell) {\n background-color: var(--pine-color-background-container);\n inset-inline-start: var(--pine-dimension-none);\n position: sticky;\n z-index: var(--pine-z-index-raised);\n }\n}\n\n:host(:hover),\n:host(:hover)::part(checkbox-cell),\n:host(:hover) ::slotted(pds-table-cell),\n:host(.is-selected),\n:host(.is-selected)::part(checkbox-cell),\n:host(.is-selected) ::slotted(pds-table-cell) {\n background: var(--color-background-interactive);\n}\n","import { Component, Element, Host, h, Event, EventEmitter, Prop } from '@stencil/core';\n\nimport { closest } from '../../../utils/closest';\n\n@Component({\n tag: 'pds-table-row',\n styleUrls: ['pds-table-row.scss'],\n shadow: true,\n})\nexport class PdsTableRow {\n @Element() hostElement: HTMLPdsTableRowElement;\n private tableRef: HTMLPdsTableElement;\n\n /**\n * Determines if the row selected is in an indeterminate state.\n */\n @Prop({ mutable: true }) indeterminate?: boolean;\n\n /**\n * Determines if the table row is currently selected.\n */\n @Prop({ mutable: true }) isSelected?: boolean;\n\n /**\n * Event that is emitted when the checkbox is clicked, carrying the selected value.\n */\n @Event() pdsTableRowSelected: EventEmitter<{ rowIndex: number; isSelected: boolean; }>;\n\n private handleClick = () => {\n this.isSelected = !this.isSelected; // Toggle the selected state\n this.handleSelect(this.isSelected);\n }\n\n private handleSelect = (isSelected: boolean) => {\n this.indeterminate = false;\n\n if (!closest('pds-table-head', this.hostElement)) {\n const rowIndex = Array.from(this.hostElement.parentNode.children).indexOf(this.hostElement)\n this.pdsTableRowSelected.emit({\n rowIndex,\n isSelected,\n })\n }\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.isSelected) {\n classNames.push(\"is-selected\");\n }\n\n return classNames.join(' ');\n }\n\n componentWillRender() {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n\n if (this.tableRef && this.tableRef.fixedColumn) {\n const tableCell = this.hostElement.querySelector('pds-table-cell');\n tableCell?.classList.add(\"is-fixed\");\n }\n }\n\n componentWillLoad() {\n if (this.isSelected) {\n this.handleSelect(this.isSelected);\n }\n }\n\n private generateUniqueId = () => {\n const randomString = Math.random().toString(36).substring(2, 8);\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const uniqueId = `${randomString}-${timestamp}`;\n\n return uniqueId;\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"row\"\n part=\"row\"\n >\n {this.tableRef && this.tableRef.selectable && (\n <pds-table-cell part={this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell'} class={this.tableRef.selectable ? 'has-checkbox' : ''} >\n <pds-checkbox\n componentId={this.generateUniqueId()}\n onClick={this.handleClick}\n indeterminate={this.indeterminate}\n label={\"Select Row\"}\n hideLabel={true}\n checked={this.isSelected}\n part=\"row-checkbox\"\n />\n </pds-table-cell>\n )}\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pds-table-row.js","mappings":"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","names":["PdsTableRow","__stencil_proxyCustomElement"],"sources":["src/components/pds-table/pds-table-row/pds-table-row.scss?tag=pds-table-row&encapsulation=shadow","src/components/pds-table/pds-table-row/pds-table-row.tsx"],"sourcesContent":[":host {\n --color-background-interactive: var(--pine-color-border-disabled);\n\n border-color: inherit;\n display: table-row;\n vertical-align: inherit;\n\n // used for pds-checkbox-cell\n // because it is in the ShadowDom\n &::part(checkbox-cell) {\n background-color: var(--pine-color-background-container);\n inset-inline-start: var(--pine-dimension-none);\n position: sticky;\n z-index: var(--pine-z-index-raised);\n }\n}\n\n:host(:hover),\n:host(:hover)::part(checkbox-cell),\n:host(:hover) ::slotted(pds-table-cell),\n:host(.is-selected),\n:host(.is-selected)::part(checkbox-cell),\n:host(.is-selected) ::slotted(pds-table-cell) {\n background: var(--color-background-interactive);\n}\n\n:host(.has-divider) ::slotted(pds-table-cell),\n:host(.has-divider) pds-table-cell {\n border-block-end: var(--pine-border-width-thin) solid var(--pine-color-border-subtle);\n}\n\n:host(.has-divider.is-last-row) ::slotted(pds-table-cell),\n:host(.has-divider.is-last-row) pds-table-cell {\n border-block-end: 0;\n}\n","import { Component, Element, Host, h, Event, EventEmitter, Prop, State } from '@stencil/core';\n\nimport { closest } from '../../../utils/closest';\n\n@Component({\n tag: 'pds-table-row',\n styleUrls: ['pds-table-row.scss'],\n shadow: true,\n})\nexport class PdsTableRow {\n @Element() hostElement: HTMLPdsTableRowElement;\n private tableRef: HTMLPdsTableElement;\n private observer: MutationObserver | null = null;\n private bodyObserver: MutationObserver | null = null;\n\n /**\n * Determines if the row selected is in an indeterminate state.\n */\n @Prop({ mutable: true }) indeterminate?: boolean;\n\n /**\n * Determines if the table row is currently selected.\n */\n @Prop({ mutable: true }) isSelected?: boolean;\n\n /**\n * Determines if the row should have a divider border.\n * @defaultValue false\n */\n @State() private hasDivider: boolean = false;\n\n /**\n * Determines if this is the last row in the table body.\n * @defaultValue false\n */\n @State() private isLastRow: boolean = false;\n\n /**\n * Event that is emitted when the checkbox is clicked, carrying the selected value.\n */\n @Event() pdsTableRowSelected: EventEmitter<{ rowIndex: number; isSelected: boolean; }>;\n\n private handleClick = () => {\n this.isSelected = !this.isSelected; // Toggle the selected state\n this.handleSelect(this.isSelected);\n }\n\n private handleSelect = (isSelected: boolean) => {\n this.indeterminate = false;\n\n if (!closest('pds-table-head', this.hostElement)) {\n const rowIndex = Array.from(this.hostElement.parentNode.children).indexOf(this.hostElement)\n this.pdsTableRowSelected.emit({\n rowIndex,\n isSelected,\n })\n }\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.isSelected) {\n classNames.push(\"is-selected\");\n }\n\n if (this.hasDivider) {\n classNames.push(\"has-divider\");\n }\n\n if (this.isLastRow) {\n classNames.push(\"is-last-row\");\n }\n\n return classNames.join(' ');\n }\n\n componentWillRender() {\n // Always refresh tableRef to get latest prop values\n // This ensures we pick up changes to parent table props\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n\n if (this.tableRef && this.tableRef.fixedColumn) {\n const tableCell = this.hostElement.querySelector('pds-table-cell');\n tableCell?.classList.add(\"is-fixed\");\n }\n }\n\n componentWillLoad() {\n // Handle initial selection state\n if (this.isSelected) {\n this.handleSelect(this.isSelected);\n }\n // Note: tableRef, observers, and divider state are set up in connectedCallback\n // which runs before componentWillLoad and also handles row re-attachment after sorting\n }\n\n connectedCallback() {\n // When a row is re-attached to the DOM (e.g., after sorting),\n // we need to re-setup the observers since disconnectedCallback cleared them\n // Note: componentDidLoad only fires once, but connectedCallback fires every time\n // the element is attached to the DOM (including after being moved)\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n this.setupObservers();\n this.updateDividerState();\n }\n\n disconnectedCallback() {\n this.cleanupObservers();\n }\n\n private cleanupObservers() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n if (this.bodyObserver) {\n this.bodyObserver.disconnect();\n this.bodyObserver = null;\n }\n }\n\n private setupObservers() {\n // Clean up any existing observers first\n this.cleanupObservers();\n\n // Watch for changes to the parent table's row-dividers attribute\n if (this.tableRef && typeof MutationObserver !== 'undefined') {\n this.observer = new MutationObserver(() => {\n this.updateDividerState();\n });\n\n this.observer.observe(this.tableRef, {\n attributes: true,\n attributeFilter: ['row-dividers']\n });\n }\n\n // Watch for child list changes in table body (e.g., when rows are reordered during sorting)\n const tableBody = this.hostElement.closest('pds-table-body');\n if (tableBody && typeof MutationObserver !== 'undefined') {\n this.bodyObserver = new MutationObserver(() => {\n this.updateLastRowState();\n });\n\n this.bodyObserver.observe(tableBody, {\n childList: true\n });\n }\n }\n\n private shouldHaveDivider(): boolean {\n if (!this.tableRef) {\n this.tableRef = this.hostElement.closest('pds-table') as HTMLPdsTableElement;\n }\n // Reads the parent pds-table component's rowDividers property value directly\n return !!(this.tableRef && this.tableRef.rowDividers);\n }\n\n private updateDividerState() {\n this.hasDivider = this.shouldHaveDivider();\n this.updateLastRowState();\n }\n\n private updateLastRowState() {\n if (!this.hasDivider) {\n this.isLastRow = false;\n return;\n }\n\n const tableBody = this.hostElement.closest('pds-table-body');\n if (tableBody) {\n const rows = Array.from(tableBody.querySelectorAll('pds-table-row'));\n this.isLastRow = rows[rows.length - 1] === this.hostElement;\n } else {\n this.isLastRow = false;\n }\n }\n\n private generateUniqueId = () => {\n const randomString = Math.random().toString(36).substring(2, 8);\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const uniqueId = `${randomString}-${timestamp}`;\n\n return uniqueId;\n }\n\n render() {\n return (\n <Host\n class={this.classNames()}\n role=\"row\"\n part=\"row\"\n >\n {this.tableRef && this.tableRef.selectable && (\n <pds-table-cell part={this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell'} class={this.tableRef.selectable ? 'has-checkbox' : ''} >\n <pds-checkbox\n componentId={this.generateUniqueId()}\n onClick={this.handleClick}\n indeterminate={this.indeterminate}\n label={\"Select Row\"}\n hideLabel={true}\n checked={this.isSelected}\n part=\"row-checkbox\"\n />\n </pds-table-cell>\n )}\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -16,6 +16,17 @@ const PdsTable$1 = /*@__PURE__*/ proxyCustomElement(class PdsTable extends HTMLE
16
16
  this._responsiveHandleResize = null;
17
17
  this._responsiveResizeObserver = null;
18
18
  this._teardownResponsive = null;
19
+ /**
20
+ * Adds divider borders between table rows. The last row will not have a bottom border.
21
+ * @defaultValue false
22
+ */
23
+ this.rowDividers = false;
24
+ /**
25
+ * The direction to sort the default column on initial load.
26
+ * Only applies if `defaultSortColumn` is set.
27
+ * @defaultValue 'asc'
28
+ */
29
+ this.defaultSortDirection = 'asc';
19
30
  /**
20
31
  * The name of the column being sorted.
21
32
  * @defaultValue null
@@ -27,13 +38,41 @@ const PdsTable$1 = /*@__PURE__*/ proxyCustomElement(class PdsTable extends HTMLE
27
38
  */
28
39
  this.sortingDirection = 'asc';
29
40
  }
30
- componentWillLoad() {
31
- this.sortingColumn = null;
32
- }
33
41
  componentDidLoad() {
34
42
  if (this.responsive) {
35
43
  this.setupResponsiveScrolling();
36
44
  }
45
+ // Apply default sort if specified
46
+ if (this.defaultSortColumn) {
47
+ void this.applyDefaultSort().catch((err) => {
48
+ console.warn('Failed to apply default sort.', err);
49
+ });
50
+ }
51
+ }
52
+ /**
53
+ * Applies the default sort configuration on initial load.
54
+ * Finds the matching column header and activates its sort state.
55
+ * @private
56
+ */
57
+ async applyDefaultSort() {
58
+ var _a;
59
+ // Normalize direction to handle invalid HTML attribute values
60
+ const direction = this.defaultSortDirection === 'desc' ? 'desc' : 'asc';
61
+ // Find the matching sortable header cell
62
+ const columnHeaderCells = Array.from(this.el.querySelectorAll('pds-table-head-cell[sortable]'));
63
+ const matchingCell = columnHeaderCells.find((cell) => { var _a; return ((_a = cell.textContent) !== null && _a !== void 0 ? _a : '').trim() === this.defaultSortColumn; });
64
+ if (matchingCell) {
65
+ const columnName = ((_a = matchingCell.textContent) !== null && _a !== void 0 ? _a : '').trim();
66
+ // Sort the table data
67
+ this.sortTable(columnName, direction);
68
+ this.sortingColumn = columnName;
69
+ this.sortingDirection = direction;
70
+ // Activate the visual state on the header cell
71
+ await matchingCell.setActiveSort(direction);
72
+ }
73
+ else {
74
+ console.warn(`Default sort column "${this.defaultSortColumn}" not found.`);
75
+ }
37
76
  }
38
77
  disconnectedCallback() {
39
78
  if (this._teardownResponsive) {
@@ -136,6 +175,9 @@ const PdsTable$1 = /*@__PURE__*/ proxyCustomElement(class PdsTable extends HTMLE
136
175
  }
137
176
  sortTable(column, direction) {
138
177
  const tableBody = this.el.querySelector('pds-table-body');
178
+ // Return early if no table body exists
179
+ if (!tableBody)
180
+ return;
139
181
  // Get the rows in the table body
140
182
  const tableRows = Array.from(tableBody.querySelectorAll('pds-table-row'));
141
183
  // Find the column index based on the column name
@@ -164,6 +206,8 @@ const PdsTable$1 = /*@__PURE__*/ proxyCustomElement(class PdsTable extends HTMLE
164
206
  });
165
207
  }
166
208
  handleTableSort(event) {
209
+ if (event.defaultPrevented)
210
+ return;
167
211
  const { direction } = event.detail;
168
212
  this.sortTable(event.detail.column, direction);
169
213
  this.sortingColumn = event.detail.column;
@@ -205,6 +249,9 @@ const PdsTable$1 = /*@__PURE__*/ proxyCustomElement(class PdsTable extends HTMLE
205
249
  "responsive": [4],
206
250
  "fixedColumn": [4, "fixed-column"],
207
251
  "selectable": [4],
252
+ "rowDividers": [516, "row-dividers"],
253
+ "defaultSortColumn": [1, "default-sort-column"],
254
+ "defaultSortDirection": [1, "default-sort-direction"],
208
255
  "sortingColumn": [32],
209
256
  "sortingDirection": [32]
210
257
  }, [[0, "pdsTableSort", "handleTableSort"], [0, "pdsTableSelectAll", "handleTableSelectAll"], [0, "pdsTableRowSelected", "handleTableSelect"]]]);
@@ -1 +1 @@
1
- {"file":"pds-table.js","mappings":"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","names":["PdsTable","__stencil_proxyCustomElement"],"sources":["src/components/pds-table/pds-table.scss?tag=pds-table&encapsulation=shadow","src/components/pds-table/pds-table.tsx"],"sourcesContent":[":host {\n --color-background-default: var(--pine-color-background-container);\n\n background: var(--color-background-default);\n border-collapse: separate;\n border-radius: inherit;\n box-sizing: border-box;\n display: table;\n width: 100%;\n}\n\n:host(:focus-visible) {\n outline: var(--pine-outline-focus);\n}\n\n/*\n * Responsive Table Architecture\n *\n * When responsive=true, the table uses a nested structure to provide horizontal scrolling\n * while maintaining proper width behavior and scroll shadows:\n *\n * Host (.pds-table-responsive-host)\n * ├── Shadow Left (positioned fixed to left edge)\n * ├── Shadow Right (positioned fixed to right edge)\n * └── Container (.pds-table-responsive-container)\n * └── Wrapper (.pds-table-responsive-wrapper)\n * └── Table (.pds-table)\n *\n * - Host: Constrains everything to parent width, clips shadows to border-radius\n * - Shadows: Stay fixed during scroll, provide visual scroll indicators\n * - Container: Handles horizontal scrolling (overflow-x: auto)\n * - Table: Expands to full width or scrolls based on content\n */\n:host(.pds-table-responsive-host) {\n border-radius: inherit;\n box-sizing: border-box !important;\n display: block !important;\n max-width: 100% !important;\n overflow: hidden !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-container {\n border-radius: inherit;\n box-sizing: border-box !important;\n overflow-x: auto !important;\n overflow-y: visible !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-wrapper {\n border-radius: inherit;\n box-sizing: border-box !important;\n display: block !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-wrapper .pds-table {\n display: table !important;\n min-width: max-content !important;\n table-layout: auto !important;\n white-space: nowrap !important;\n width: 100% !important;\n}\n\n/* Shadows positioned relative to host (non-scrolling), covering container edges */\n.scroll-shadow-left,\n.scroll-shadow-right {\n height: 100%;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n transition: opacity 0.1s ease;\n width: 4px;\n z-index: var(--pine-z-index);\n}\n\n.scroll-shadow-left {\n background: linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);\n border-bottom-left-radius: inherit;\n border-top-left-radius: inherit;\n left: 0;\n}\n\n.scroll-shadow-right {\n background: linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);\n border-bottom-right-radius: inherit;\n border-top-right-radius: inherit;\n right: 0;\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 private scrollContainer: HTMLElement | null = null;\n private _responsiveHandleScroll: (() => void) | null = null;\n private _responsiveHandleResize: (() => void) | null = null;\n private _responsiveResizeObserver: ResizeObserver | null = null;\n private _teardownResponsive: (() => void) | null = null;\n\n /**\n * Determines if the table displays with reduced table cell padding.\n */\n @Prop() compact: boolean;\n\n /**\n * A unique identifier used for the table `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Enables the table to be responsive by horizontally scrolling on smaller screens.\n */\n @Prop() responsive: boolean;\n\n /**\n * Determines if the should display a fixed first column.\n */\n @Prop() fixedColumn: boolean;\n\n /**\n * Determines if the table displays checkboxes for selectable rows.\n */\n @Prop() selectable: boolean;\n\n /**\n * 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 componentDidLoad() {\n if (this.responsive) {\n this.setupResponsiveScrolling();\n }\n }\n\n disconnectedCallback() {\n if (this._teardownResponsive) {\n this._teardownResponsive();\n this._teardownResponsive = null;\n }\n }\n\n /**\n * Sets up responsive scrolling behavior for the table.\n *\n * This method creates a horizontal scrolling system where:\n * - The table content can scroll horizontally when it exceeds the container width\n * - Scroll shadows appear at the left/right edges to indicate scrollable content\n * - Fixed columns remain sticky during horizontal scrolling\n * - Shadows respect border-radius and don't appear when there's nothing to scroll\n *\n * Architecture:\n * - Host element: Contains everything, respects parent constraints\n * - Container element: Handles horizontal scrolling (overflow-x: auto)\n * - Shadow elements: Positioned fixed relative to host, show scroll indicators\n *\n * @private\n */\n private setupResponsiveScrolling() {\n const container = this.el.shadowRoot?.querySelector('.pds-table-responsive-container') as HTMLElement;\n const leftShadow = this.el.shadowRoot?.querySelector('.scroll-shadow-left') as HTMLElement;\n const rightShadow = this.el.shadowRoot?.querySelector('.scroll-shadow-right') as HTMLElement;\n\n if (!container || !leftShadow || !rightShadow) return;\n\n // Store container reference for cleanup\n this.scrollContainer = container;\n\n /**\n * Updates the visibility of scroll shadows based on current scroll position.\n * Left shadow: Shows when scrolled away from start (hidden if fixedColumn is enabled)\n * Right shadow: Shows when there's content to scroll and not at the end\n */\n this._responsiveHandleScroll = () => {\n if (!this.scrollContainer) return;\n\n const scrollLeft = this.scrollContainer.scrollLeft;\n const maxScrollLeft = this.scrollContainer.scrollWidth - this.scrollContainer.clientWidth;\n\n // Show left shadow when scrolled away from start, but not if there's a fixed column\n leftShadow.style.opacity = (scrollLeft > 0 && !this.fixedColumn) ? '1' : '0';\n\n // Show right shadow only if there's content to scroll AND not at end\n rightShadow.style.opacity = (maxScrollLeft > 0 && scrollLeft < maxScrollLeft - 1) ? '1' : '0';\n };\n\n // Add scroll event listener to container element\n this.scrollContainer.addEventListener('scroll', this._responsiveHandleScroll, { passive: true });\n\n // Add resize observer to update shadows when container size changes\n if (typeof window !== 'undefined' && window.ResizeObserver) {\n try {\n this._responsiveResizeObserver = new ResizeObserver(() => {\n this._responsiveHandleScroll?.();\n });\n this._responsiveResizeObserver.observe(this.scrollContainer);\n } catch (error) {\n // ResizeObserver not available in some environments (e.g., tests)\n // Fall back to window resize listener only\n }\n }\n\n // Listen for window resize as fallback\n if (typeof window !== 'undefined') {\n this._responsiveHandleResize = () => {\n this._responsiveHandleScroll?.();\n };\n window.addEventListener('resize', this._responsiveHandleResize);\n }\n\n // Create teardown function for cleanup\n this._teardownResponsive = () => {\n if (this.scrollContainer && this._responsiveHandleScroll) {\n this.scrollContainer.removeEventListener('scroll', this._responsiveHandleScroll);\n this.scrollContainer = null;\n }\n\n if (this._responsiveResizeObserver) {\n this._responsiveResizeObserver.disconnect();\n this._responsiveResizeObserver = null;\n }\n\n if (typeof window !== 'undefined' && this._responsiveHandleResize) {\n window.removeEventListener('resize', this._responsiveHandleResize);\n this._responsiveHandleResize = null;\n }\n\n this._responsiveHandleScroll = null;\n };\n\n // Initial check after setup\n this._responsiveHandleScroll();\n }\n\n\n private classNames() {\n const classNames = ['pds-table'];\n\n if (this.compact) {\n classNames.push('is-compact');\n }\n\n if (this.responsive) {\n classNames.push('is-responsive');\n }\n\n return classNames.join(' ');\n }\n\n private sortTable(column: string, direction: 'asc' | 'desc') {\n const tableBody = this.el.querySelector('pds-table-body');\n\n // Get the rows in the table body\n const tableRows = Array.from(tableBody.querySelectorAll('pds-table-row'));\n\n // Find the column index based on the column name\n const columnHeaderCells: HTMLElement[] = Array.from(\n this.el.querySelectorAll('pds-table-head-cell[sortable]')\n );\n\n const columnHeaderCell = columnHeaderCells.find(\n (cell) => cell.innerText.trim() === column\n );\n\n if (!columnHeaderCell) {\n console.warn(`Column \"${column}\" not found.`);\n return;\n }\n\n const columnIndex = columnHeaderCells.indexOf(columnHeaderCell);\n\n // Sort the rows based on the content of the specified column\n tableRows.sort((a, b) => {\n const valueA = a.querySelector(`pds-table-cell:nth-child(${columnIndex + 1})`).textContent.trim();\n const valueB = b.querySelector(`pds-table-cell:nth-child(${columnIndex + 1})`).textContent.trim();\n\n if (direction === 'asc') {\n return valueA.localeCompare(valueB, undefined, { sensitivity: 'base' });\n } else {\n return valueB.localeCompare(valueA, undefined, { sensitivity: 'base' });\n }\n });\n\n // Clear and append the sorted rows back to the table body\n tableBody.innerHTML = '';\n tableRows.forEach((row) => {\n tableBody.appendChild(row);\n });\n }\n\n @Listen('pdsTableSort')\n handleTableSort(event: CustomEvent<{ column: string; direction: 'asc' | 'desc' }>) {\n 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 if (this.responsive) {\n return (\n <Host\n class=\"pds-table is-responsive pds-table-responsive-host\"\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n part=\"table responsive-table\"\n >\n <div class=\"scroll-shadow-left\" part=\"scroll-shadow-left\"></div>\n <div class=\"scroll-shadow-right\" part=\"scroll-shadow-right\"></div>\n <div class=\"pds-table-responsive-container\" part=\"responsive-container\">\n <div class=\"pds-table-responsive-wrapper\" part=\"responsive-wrapper\">\n <div class={this.classNames()} part=\"table-inner\">\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n return (\n <Host\n class={this.classNames()}\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n part=\"table\"\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pds-table.js","mappings":"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","names":["PdsTable","__stencil_proxyCustomElement"],"sources":["src/components/pds-table/pds-table.scss?tag=pds-table&encapsulation=shadow","src/components/pds-table/pds-table.tsx"],"sourcesContent":[":host {\n --color-background-default: var(--pine-color-background-container);\n\n background: var(--color-background-default);\n border-collapse: separate;\n border-radius: inherit;\n box-sizing: border-box;\n display: table;\n width: 100%;\n}\n\n:host(:focus-visible) {\n outline: var(--pine-outline-focus);\n}\n\n/*\n * Responsive Table Architecture\n *\n * When responsive=true, the table uses a nested structure to provide horizontal scrolling\n * while maintaining proper width behavior and scroll shadows:\n *\n * Host (.pds-table-responsive-host)\n * ├── Shadow Left (positioned fixed to left edge)\n * ├── Shadow Right (positioned fixed to right edge)\n * └── Container (.pds-table-responsive-container)\n * └── Wrapper (.pds-table-responsive-wrapper)\n * └── Table (.pds-table)\n *\n * - Host: Constrains everything to parent width, clips shadows to border-radius\n * - Shadows: Stay fixed during scroll, provide visual scroll indicators\n * - Container: Handles horizontal scrolling (overflow-x: auto)\n * - Table: Expands to full width or scrolls based on content\n */\n:host(.pds-table-responsive-host) {\n border-radius: inherit;\n box-sizing: border-box !important;\n display: block !important;\n max-width: 100% !important;\n overflow: hidden !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-container {\n border-radius: inherit;\n box-sizing: border-box !important;\n overflow-x: auto !important;\n overflow-y: visible !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-wrapper {\n border-radius: inherit;\n box-sizing: border-box !important;\n display: block !important;\n position: relative !important;\n width: 100% !important;\n}\n\n.pds-table-responsive-wrapper .pds-table {\n display: table !important;\n min-width: max-content !important;\n table-layout: auto !important;\n white-space: nowrap !important;\n width: 100% !important;\n}\n\n/* Shadows positioned relative to host (non-scrolling), covering container edges */\n.scroll-shadow-left,\n.scroll-shadow-right {\n height: 100%;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n transition: opacity 0.1s ease;\n width: 4px;\n z-index: var(--pine-z-index);\n}\n\n.scroll-shadow-left {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n background: linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);\n border-bottom-left-radius: inherit;\n border-top-left-radius: inherit;\n left: 0;\n}\n\n.scroll-shadow-right {\n /* stylelint-disable-next-line pine-design-system/no-hardcoded-colors */\n background: linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);\n border-bottom-right-radius: inherit;\n border-top-right-radius: inherit;\n right: 0;\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 private scrollContainer: HTMLElement | null = null;\n private _responsiveHandleScroll: (() => void) | null = null;\n private _responsiveHandleResize: (() => void) | null = null;\n private _responsiveResizeObserver: ResizeObserver | null = null;\n private _teardownResponsive: (() => void) | null = null;\n\n /**\n * Determines if the table displays with reduced table cell padding.\n */\n @Prop() compact: boolean;\n\n /**\n * A unique identifier used for the table `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Enables the table to be responsive by horizontally scrolling on smaller screens.\n */\n @Prop() responsive: boolean;\n\n /**\n * Determines if the should display a fixed first column.\n */\n @Prop() fixedColumn: boolean;\n\n /**\n * Determines if the table displays checkboxes for selectable rows.\n */\n @Prop() selectable: boolean;\n\n /**\n * Adds divider borders between table rows. The last row will not have a bottom border.\n * @defaultValue false\n */\n @Prop({ reflect: true }) rowDividers: boolean = false;\n\n /**\n * The name of the column to sort by on initial load.\n * Must match the text content of a sortable column header.\n */\n @Prop() defaultSortColumn?: string;\n\n /**\n * The direction to sort the default column on initial load.\n * Only applies if `defaultSortColumn` is set.\n * @defaultValue 'asc'\n */\n @Prop() defaultSortDirection?: 'asc' | 'desc' = 'asc';\n\n /**\n * The name of the column being sorted.\n * @defaultValue null\n */\n @State() sortingColumn: string | null = null;\n\n /**\n * The direction of sorting.\n * @defaultValue 'asc'\n */\n @State() sortingDirection: 'asc' | 'desc' = 'asc';\n\n\n /**\n * Event that is emitted when the 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 componentDidLoad() {\n if (this.responsive) {\n this.setupResponsiveScrolling();\n }\n\n // Apply default sort if specified\n if (this.defaultSortColumn) {\n void this.applyDefaultSort().catch((err) => {\n console.warn('Failed to apply default sort.', err);\n });\n }\n }\n\n /**\n * Applies the default sort configuration on initial load.\n * Finds the matching column header and activates its sort state.\n * @private\n */\n private async applyDefaultSort() {\n // Normalize direction to handle invalid HTML attribute values\n const direction: 'asc' | 'desc' = this.defaultSortDirection === 'desc' ? 'desc' : 'asc';\n\n // Find the matching sortable header cell\n const columnHeaderCells = Array.from(\n this.el.querySelectorAll('pds-table-head-cell[sortable]')\n ) as HTMLPdsTableHeadCellElement[];\n\n const matchingCell = columnHeaderCells.find(\n (cell) => (cell.textContent ?? '').trim() === this.defaultSortColumn\n );\n\n if (matchingCell) {\n const columnName = (matchingCell.textContent ?? '').trim();\n // Sort the table data\n this.sortTable(columnName, direction);\n this.sortingColumn = columnName;\n this.sortingDirection = direction;\n\n // Activate the visual state on the header cell\n await matchingCell.setActiveSort(direction);\n } else {\n console.warn(`Default sort column \"${this.defaultSortColumn}\" not found.`);\n }\n }\n\n disconnectedCallback() {\n if (this._teardownResponsive) {\n this._teardownResponsive();\n this._teardownResponsive = null;\n }\n }\n\n /**\n * Sets up responsive scrolling behavior for the table.\n *\n * This method creates a horizontal scrolling system where:\n * - The table content can scroll horizontally when it exceeds the container width\n * - Scroll shadows appear at the left/right edges to indicate scrollable content\n * - Fixed columns remain sticky during horizontal scrolling\n * - Shadows respect border-radius and don't appear when there's nothing to scroll\n *\n * Architecture:\n * - Host element: Contains everything, respects parent constraints\n * - Container element: Handles horizontal scrolling (overflow-x: auto)\n * - Shadow elements: Positioned fixed relative to host, show scroll indicators\n *\n * @private\n */\n private setupResponsiveScrolling() {\n const container = this.el.shadowRoot?.querySelector('.pds-table-responsive-container') as HTMLElement;\n const leftShadow = this.el.shadowRoot?.querySelector('.scroll-shadow-left') as HTMLElement;\n const rightShadow = this.el.shadowRoot?.querySelector('.scroll-shadow-right') as HTMLElement;\n\n if (!container || !leftShadow || !rightShadow) return;\n\n // Store container reference for cleanup\n this.scrollContainer = container;\n\n /**\n * Updates the visibility of scroll shadows based on current scroll position.\n * Left shadow: Shows when scrolled away from start (hidden if fixedColumn is enabled)\n * Right shadow: Shows when there's content to scroll and not at the end\n */\n this._responsiveHandleScroll = () => {\n if (!this.scrollContainer) return;\n\n const scrollLeft = this.scrollContainer.scrollLeft;\n const maxScrollLeft = this.scrollContainer.scrollWidth - this.scrollContainer.clientWidth;\n\n // Show left shadow when scrolled away from start, but not if there's a fixed column\n leftShadow.style.opacity = (scrollLeft > 0 && !this.fixedColumn) ? '1' : '0';\n\n // Show right shadow only if there's content to scroll AND not at end\n rightShadow.style.opacity = (maxScrollLeft > 0 && scrollLeft < maxScrollLeft - 1) ? '1' : '0';\n };\n\n // Add scroll event listener to container element\n this.scrollContainer.addEventListener('scroll', this._responsiveHandleScroll, { passive: true });\n\n // Add resize observer to update shadows when container size changes\n if (typeof window !== 'undefined' && window.ResizeObserver) {\n try {\n this._responsiveResizeObserver = new ResizeObserver(() => {\n this._responsiveHandleScroll?.();\n });\n this._responsiveResizeObserver.observe(this.scrollContainer);\n } catch (error) {\n // ResizeObserver not available in some environments (e.g., tests)\n // Fall back to window resize listener only\n }\n }\n\n // Listen for window resize as fallback\n if (typeof window !== 'undefined') {\n this._responsiveHandleResize = () => {\n this._responsiveHandleScroll?.();\n };\n window.addEventListener('resize', this._responsiveHandleResize);\n }\n\n // Create teardown function for cleanup\n this._teardownResponsive = () => {\n if (this.scrollContainer && this._responsiveHandleScroll) {\n this.scrollContainer.removeEventListener('scroll', this._responsiveHandleScroll);\n this.scrollContainer = null;\n }\n\n if (this._responsiveResizeObserver) {\n this._responsiveResizeObserver.disconnect();\n this._responsiveResizeObserver = null;\n }\n\n if (typeof window !== 'undefined' && this._responsiveHandleResize) {\n window.removeEventListener('resize', this._responsiveHandleResize);\n this._responsiveHandleResize = null;\n }\n\n this._responsiveHandleScroll = null;\n };\n\n // Initial check after setup\n this._responsiveHandleScroll();\n }\n\n\n private classNames() {\n const classNames = ['pds-table'];\n\n if (this.compact) {\n classNames.push('is-compact');\n }\n\n if (this.responsive) {\n classNames.push('is-responsive');\n }\n\n return classNames.join(' ');\n }\n\n private sortTable(column: string, direction: 'asc' | 'desc') {\n const tableBody = this.el.querySelector('pds-table-body');\n\n // Return early if no table body exists\n if (!tableBody) return;\n\n // Get the rows in the table body\n const tableRows = Array.from(tableBody.querySelectorAll('pds-table-row'));\n\n // Find the column index based on the column name\n const columnHeaderCells: HTMLElement[] = Array.from(\n this.el.querySelectorAll('pds-table-head-cell[sortable]')\n );\n\n const columnHeaderCell = columnHeaderCells.find(\n (cell) => cell.innerText.trim() === column\n );\n\n if (!columnHeaderCell) {\n console.warn(`Column \"${column}\" not found.`);\n return;\n }\n\n const columnIndex = columnHeaderCells.indexOf(columnHeaderCell);\n\n // Sort the rows based on the content of the specified column\n tableRows.sort((a, b) => {\n const valueA = a.querySelector(`pds-table-cell:nth-child(${columnIndex + 1})`).textContent.trim();\n const valueB = b.querySelector(`pds-table-cell:nth-child(${columnIndex + 1})`).textContent.trim();\n\n if (direction === 'asc') {\n return valueA.localeCompare(valueB, undefined, { sensitivity: 'base' });\n } else {\n return valueB.localeCompare(valueA, undefined, { sensitivity: 'base' });\n }\n });\n\n // Clear and append the sorted rows back to the table body\n tableBody.innerHTML = '';\n tableRows.forEach((row) => {\n tableBody.appendChild(row);\n });\n }\n\n @Listen('pdsTableSort')\n handleTableSort(event: CustomEvent<{ column: string; direction: 'asc' | 'desc' }>) {\n if (event.defaultPrevented) return;\n\n const { direction } = event.detail;\n this.sortTable(event.detail.column, direction);\n this.sortingColumn = event.detail.column;\n this.sortingDirection = direction;\n }\n\n @Listen('pdsTableSelectAll')\n handleTableSelectAll(event: CustomEvent<{ isSelected: boolean }>) {\n if (event.defaultPrevented) return;\n\n const pdsTableBody = this.el.querySelector('pds-table-body');\n const tableRows = Array.from(pdsTableBody.querySelectorAll('pds-table-row'));\n\n tableRows.forEach((row) => {\n row.isSelected = event.detail.isSelected;\n });\n }\n\n @Listen('pdsTableRowSelected')\n async handleTableSelect(event: CustomEvent<{ rowIndex: number; isSelected: boolean }>) {\n if (event.defaultPrevented) return;\n\n const allTableRows = this.el.querySelectorAll('pds-table-row');\n const allSelectedRows = Array.from(allTableRows).every((row) => row.isSelected);\n const noneSelectedRows = Array.from(allTableRows).every((row) => !row.isSelected);\n const pdsTableHead = this.el.querySelector('pds-table-head');\n if (!pdsTableHead) return;\n\n const headerCheckbox = pdsTableHead.shadowRoot.querySelector('pds-checkbox');\n headerCheckbox.checked = allSelectedRows;\n headerCheckbox.indeterminate = !allSelectedRows && !noneSelectedRows;\n }\n\n render() {\n if (this.responsive) {\n return (\n <Host\n class=\"pds-table is-responsive pds-table-responsive-host\"\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n part=\"table responsive-table\"\n >\n <div class=\"scroll-shadow-left\" part=\"scroll-shadow-left\"></div>\n <div class=\"scroll-shadow-right\" part=\"scroll-shadow-right\"></div>\n <div class=\"pds-table-responsive-container\" part=\"responsive-container\">\n <div class=\"pds-table-responsive-wrapper\" part=\"responsive-wrapper\">\n <div class={this.classNames()} part=\"table-inner\">\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n return (\n <Host\n class={this.classNames()}\n id={this.componentId}\n role=\"grid\"\n selectable={this.selectable}\n tabindex=\"0\"\n part=\"table\"\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -9,7 +9,7 @@ const labelCss = ":host{display:inline-block}:host([aria-disabled=true]) label{c
9
9
 
10
10
  const pdsInputTokensCss = ":host{--pine-input-color-background-danger:var(--pine-color-red-050)}";
11
11
 
12
- const pdsTextareaCss = ":host{display:inline-block;width:100%}:host([aria-readonly=true]) textarea{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([aria-readonly=true])) .pds-textarea__field:not(.is-invalid){background-color:var(--pine-color-accent-disabled);border-color:var(--pine-color-accent);color:var(--pine-color-text-accent)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([aria-readonly=true])) .pds-textarea__field:not(.is-invalid):hover{border-color:var(--pine-color-accent-hover)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([aria-readonly=true])) .pds-textarea__field:not(.is-invalid):focus-visible{outline-color:var(--pine-color-focus-ring)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([aria-readonly=true])) .pds-textarea__field:not(.is-invalid)~.pds-textarea__character-counter{background:color-mix(in srgb, var(--pine-color-accent-disabled) 80%, transparent);color:var(--pine-color-text-accent)}.pds-textarea{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.pds-textarea__label-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.pds-textarea__action{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}label{display:block;-webkit-margin-after:var(--pine-dimension-xs);margin-block-end:var(--pine-dimension-xs)}.pds-textarea__label-wrapper label{-webkit-margin-after:0;margin-block-end:0}.pds-textarea__helper-message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-textarea__error-message{-ms-flex-align:center;align-items:center;color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm-medium);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-textarea__field-wrapper{display:inline-block;position:relative;width:100%}.pds-textarea__field{background-color:var(--pine-color-background-container);border:var(--pine-border);border-radius:calc(var(--pine-dimension-xs) * 1.25);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-height:calc(var(--pine-dimension-xl) * 2);min-width:calc(var(--pine-dimension-xl) * 2);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);resize:both;width:100%}:host([max-length]) .pds-textarea__field{padding-bottom:calc(var(--pine-dimension-xs) + var(--pine-dimension-md))}.pds-textarea__field:hover:not(:disabled,.is-invalid){border:var(--pine-border-hover)}.pds-textarea__field:disabled{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-textarea__field:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-textarea__field::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field::placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field.is-invalid{background-color:var(--pine-input-color-background-danger);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) .pds-textarea__field.is-invalid{background-color:var(--pine-color-red-950)}.pds-textarea__field.is-invalid:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-textarea__character-counter{background:color-mix(in srgb, var(--pine-color-background-container) 80%, transparent);border-radius:calc(var(--pine-dimension-2xs) * 0.5);color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm-medium);padding:calc(var(--pine-dimension-2xs) * 0.5) var(--pine-dimension-2xs);pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;z-index:var(--pine-z-index)}:host([aria-disabled=true]) .pds-textarea__character-counter{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-disabled)}:host([aria-readonly=true]) .pds-textarea__character-counter{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}.pds-textarea__field.is-invalid~.pds-textarea__character-counter{background-color:var(--pine-input-color-background-danger)}:host-context([data-theme=dark]) .pds-textarea__field.is-invalid~.pds-textarea__character-counter{background-color:var(--pine-color-red-950)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
12
+ const pdsTextareaCss = ":host{display:inline-block;width:100%}:host([aria-readonly=true]) textarea{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([aria-readonly=true])) .pds-textarea__field:not(.is-invalid){background-color:var(--pine-color-accent-disabled);border-color:var(--pine-color-accent);color:var(--pine-color-text-accent)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([aria-readonly=true])) .pds-textarea__field:not(.is-invalid):hover{border-color:var(--pine-color-accent-hover)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([aria-readonly=true])) .pds-textarea__field:not(.is-invalid):focus-visible{outline-color:var(--pine-color-focus-ring)}:host([highlight]:not([disabled]):not([aria-disabled=true]):not([aria-readonly=true])) .pds-textarea__field:not(.is-invalid)~.pds-textarea__character-counter{background:color-mix(in srgb, var(--pine-color-accent-disabled) 80%, transparent);color:var(--pine-color-text-accent)}.pds-textarea{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.pds-textarea__label-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.pds-textarea__action{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);-webkit-margin-start:var(--pine-dimension-xs);margin-inline-start:var(--pine-dimension-xs)}label{display:block;-webkit-margin-after:var(--pine-dimension-xs);margin-block-end:var(--pine-dimension-xs)}.pds-textarea__label-wrapper label{-webkit-margin-after:0;margin-block-end:0}.pds-textarea__helper-message{color:var(--pine-color-text-message);font:var(--pine-typography-body-sm-medium);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-textarea__error-message{color:var(--pine-color-text-message-danger);display:-ms-flexbox;display:flex;font:var(--pine-typography-body-sm-medium);gap:var(--pine-dimension-2xs);-webkit-margin-before:var(--pine-dimension-2xs);margin-block-start:var(--pine-dimension-2xs)}.pds-textarea__error-message pds-icon{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.pds-textarea__field-wrapper{display:inline-block;position:relative;width:100%}.pds-textarea__field{background-color:var(--pine-color-background-container);border:var(--pine-border);border-radius:calc(var(--pine-dimension-xs) * 1.25);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text);font:var(--pine-typography-body);letter-spacing:var(--pine-letter-spacing);min-height:calc(var(--pine-dimension-xl) * 2);min-width:calc(var(--pine-dimension-xl) * 2);padding:var(--pine-dimension-xs) var(--pine-dimension-sm);resize:both;width:100%}:host([max-length]) .pds-textarea__field{padding-bottom:calc(var(--pine-dimension-xs) + var(--pine-dimension-md))}.pds-textarea__field:hover:not(:disabled,.is-invalid){border:var(--pine-border-hover)}.pds-textarea__field:disabled{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-textarea__field:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-textarea__field::-webkit-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field::-moz-placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field:-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field::-ms-input-placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field::placeholder{color:var(--pine-color-text-placeholder)}.pds-textarea__field.is-invalid{background-color:var(--pine-input-color-background-danger);border-color:var(--pine-color-border-danger)}:host-context([data-theme=dark]) .pds-textarea__field.is-invalid{background-color:var(--pine-color-red-950)}.pds-textarea__field.is-invalid:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-textarea__character-counter{background:color-mix(in srgb, var(--pine-color-background-container) 80%, transparent);border-radius:calc(var(--pine-dimension-2xs) * 0.5);color:var(--pine-color-text-muted);font:var(--pine-typography-body-sm-medium);padding:calc(var(--pine-dimension-2xs) * 0.5) var(--pine-dimension-2xs);pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;z-index:var(--pine-z-index)}:host([aria-disabled=true]) .pds-textarea__character-counter{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-disabled)}:host([aria-readonly=true]) .pds-textarea__character-counter{background-color:var(--pine-color-background-container-disabled);color:var(--pine-color-text-readonly)}.pds-textarea__field.is-invalid~.pds-textarea__character-counter{background-color:var(--pine-input-color-background-danger)}:host-context([data-theme=dark]) .pds-textarea__field.is-invalid~.pds-textarea__character-counter{background-color:var(--pine-color-red-950)}.visually-hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
13
13
 
14
14
  const PdsTextarea$1 = /*@__PURE__*/ proxyCustomElement(class PdsTextarea extends HTMLElement {
15
15
  constructor(registerHost) {
@@ -22,6 +22,7 @@ const PdsTextarea$1 = /*@__PURE__*/ proxyCustomElement(class PdsTextarea extends
22
22
  this.pdsFocus = createEvent(this, "pdsFocus", 7);
23
23
  this.pdsInput = createEvent(this, "pdsInput", 7);
24
24
  this.pdsTextareaChange = createEvent(this, "pdsTextareaChange", 7);
25
+ this.pdsKeyDown = createEvent(this, "pdsKeyDown", 7);
25
26
  this.inheritedAttributes = {};
26
27
  this._type = 'textarea';
27
28
  /**
@@ -91,6 +92,9 @@ const PdsTextarea$1 = /*@__PURE__*/ proxyCustomElement(class PdsTextarea extends
91
92
  this.onTextareaChange = (ev) => {
92
93
  this.emitValueChange(ev);
93
94
  };
95
+ this.onKeyDown = (ev) => {
96
+ this.pdsKeyDown.emit(ev);
97
+ };
94
98
  }
95
99
  /**
96
100
  * Sets focus on the native `textarea` in the `pds-textarea`. Use this method instead of the global
@@ -303,10 +307,10 @@ const PdsTextarea$1 = /*@__PURE__*/ proxyCustomElement(class PdsTextarea extends
303
307
  }
304
308
  render() {
305
309
  const value = this.getValue();
306
- return (h(Host, { key: '8e14fed28b2edd75aef6c5a1991518bb8b11931d', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, h("div", { key: '4dcf8471267223b0cd1f6e7b6dd2072550b3ac8b', class: "pds-textarea" }, this.label &&
307
- h("div", { key: '520d616798b2223a979955ed268378bc5ffd1571', class: "pds-textarea__label-wrapper" }, h("label", { key: 'b04566b03b0c809b4b6c639d75774d845a021636', htmlFor: this.componentId }, h("span", { key: 'a6b92315f11a7cf15c9aa2db0cd7d8a824ff88ae', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), h("div", { key: 'b4cebca68b014c837fa8415a8f67f611b150b083', class: "pds-textarea__field-wrapper" }, h("textarea", Object.assign({ key: 'ac49811c463709ed2918324005ec8f4285fb76f2', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, maxlength: this.maxLength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
308
- h("p", { key: '7a4cc4c278d39c675a5e6e3d0b4a917d63441cd1', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
309
- h("p", { key: 'd02251c55ef2baf92fd66c92a16154b805494b6c', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: 'd7632ac66b16c0c306f245a23d379689d65e8010', icon: danger, size: "small" }), this.errorMessage))));
310
+ return (h(Host, { key: '294f37b2751fd4fbc16e7b2cca62d1a5200b7f4e', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, h("div", { key: 'b785c5740642dafcdb771f3a9ffb933d8ada3f4e', class: "pds-textarea" }, this.label &&
311
+ h("div", { key: '31ad1d39efe78fc7a29e48d4a8d228a97422eba9', class: "pds-textarea__label-wrapper" }, h("label", { key: 'e37a18d36bffa47f00d5d3376df45b3f35c3e8a3', htmlFor: this.componentId }, h("span", { key: 'fc2d376e1dc976c3004f6ab225c921ebc7e46dd4', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), h("div", { key: '7b5db43c23fb9a2ddb3ebec0b684953a4b043ea1', class: "pds-textarea__field-wrapper" }, h("textarea", Object.assign({ key: '81355164c2b01ab7ef5d6adcb3f92a59eec2692f', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, maxlength: this.maxLength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
312
+ h("p", { key: 'abcdf1ef2aa24d0057e5b0c212c06b5324f0dd9b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
313
+ h("p", { key: '1c526c2aae382caabe83ff5e3dadd7510371a656', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: 'e8a0960b0e2dbacfe46113b3f1162e35d301afac', icon: danger, size: "small" }), this.errorMessage))));
310
314
  }
311
315
  static get formAssociated() { return true; }
312
316
  get el() { return this; }
@@ -1 +1 @@
1
- {"file":"pds-textarea.js","mappings":";;;;;;;AAAA,MAAM,QAAQ,GAAG,oTAAoT;;ACArU,MAAM,iBAAiB,GAAG,uEAAuE;;ACAjG,MAAM,cAAc,GAAG,0rKAA0rK;;MCqBpsKA,aAAW,iBAAAC,kBAAA,CAAA,MAAA,WAAA,SAAA,WAAA,CAAA;AAVxB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;;;;AAcU,QAAA,IAAmB,CAAA,mBAAA,GAAe,EAAE;AAK3B,QAAA,IAAK,CAAA,KAAA,GAAG,UAAmB;AAoD5C;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAiBxB;;;AAGG;AACoB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC;AAavC;;AAEG;AACK,QAAA,IAAA,CAAA,IAAI,GAAW,IAAI,CAAC,WAAW;AAOvC;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAExB;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAiBxB;;AAEG;AACoB,QAAA,IAAK,CAAA,KAAA,GAAmB,EAAE;AAExC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAGzB;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK;AA+ElB,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,EAAc,KAAI;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YAErB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;AACpC,gBAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;;AAG1B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,SAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,EAAc,KAAI;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;AAE9B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,SAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,EAAS,KAAI;AAC9B,YAAA,MAAM,KAAK,GAAG,EAAE,CAAC,MAAoC;YACrD,IAAI,KAAK,EAAE;;AAET,gBAAA,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;;AAEzD,oBAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;;gBAExD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE;;AAEhC,YAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;;YAGxB,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;;gBAE3D,qBAAqB,CAAC,MAAK;oBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,iBAAC,CAAC;;AAEN,SAAC;AAEO,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,EAAS,KAAI;AACvC,YAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AAC1B,SAAC;AAmQF;AAreC;;;AAGG;AAEH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;;;IAuGrB,eAAe,GAAA;QACvB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI;AAErD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,KAAK,SAAS,GAAG,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,cAAhB,gBAAgB,GAAI,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;;AAG3G;;AAEG;IAEO,YAAY,GAAA;AACpB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;QAE7B,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,KAAK,KAAK,EAAE;AACpD,YAAA,cAAc,CAAC,KAAK,GAAG,KAAK;;;QAI9B,IAAI,CAAC,eAAe,EAAE;;QAGtB,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YAC3D,IAAI,CAAC,8BAA8B,EAAE;;;IAK/B,gBAAgB,GAAA;;AAExB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;;QAGlC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE;;;AAI5B,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;AACvE,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,EAAE,OAAO,EAAE,SAAS,EAAE,EACtB,SAAS,GAAG,yBAAyB,GAAG,EAAE,EAC1C,IAAI,CAAC,cAAc,CACpB;;;AAIL;;AAEG;AACK,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AAGtC;;AAEG;AACK,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA6B;AACpD,QAAA,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;AAE1B,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ;;AAG1B,QAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE;AACzD,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;IAGjD,QAAQ,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE;;IA6CjB,kBAAkB,GAAA;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,qBAAqB,CAAC;QAE1C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzC,YAAA,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG/B,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG9B,iBAAiB,GAAA;QACf,IAAI,CAAC,eAAe,EAAE;;AAEtB,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE;;;IAI9C,oBAAoB,GAAA;;AAElB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;;;IAIpC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,EAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9B;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI;;IAGpE,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ;;QAErC,IAAI,CAAC,eAAe,EAAE;;QAGtB,IAAI,CAAC,mBAAmB,EAAE;;AAG1B,QAAA,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC;;AAG/C;;AAEG;IACK,mBAAmB,GAAA;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;;AAG7C,QAAA,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AACzC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAK;;gBAE5C,qBAAqB,CAAC,MAAK;oBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,iBAAC,CAAC;AACJ,aAAC,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;;YAGhD,qBAAqB,CAAC,MAAK;gBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,aAAC,CAAC;;;AAIN;;AAEG;IACK,8BAA8B,GAAA;QACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;;QAGpD,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE;;AAG3C,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,EAAE;;YAEvF;;;AAIF,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW;AACrD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY;AACvD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW;AACtD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY;;AAGxD,QAAA,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,CAAC;AACtD,QAAA,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,CAAC;;QAGzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC;;QAG1F,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;QACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI;QACnD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAI;QACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;QAC1C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;;AAG7C;;AAEG;IACK,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,IAAI;;QAGb,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;QAC5C,QACE,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,iCAAiC,EACvC,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,GAAG,EAAE,EACvC,IAAI,EAAC,QAAQ,EACH,WAAA,EAAA,QAAQ,EACN,YAAA,EAAA,CAAG,EAAA,aAAa,CAAO,IAAA,EAAA,IAAI,CAAC,SAAS,aAAa,EAAA,EAE7D,aAAa,SAAK,IAAI,CAAC,SAAS,CAC7B;;IAIF,YAAY,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI;QACnE,IAAI,SAAS,EAAE;YACb,QACE,WAAK,KAAK,EAAC,sBAAsB,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC7C,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,QAAQ,EAAQ,CAAA,CACvB;;AAGV,QAAA,OAAO,IAAI;;AAGb;;AAEG;IACK,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AACjD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC;;AAG1C,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvE,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,IAAI,CAAC,cAAc,CAAC,iBAAiB,EACrC,IAAI,CAAC,cAAc,CACpB;;;;AAMP;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,eAAe,EAAE;;AAGxB;;AAEG;AACH,IAAA,oBAAoB,CAAC,QAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B;;AAEG;AACH,IAAA,wBAAwB,CAAC,KAA+B,EAAA;AACtD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;aACb,IAAI,KAAK,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;;YAEjD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;;IAKxB,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAE7B,QAAA,QACE,CAAC,CAAA,IAAI,sEACY,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,mBAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,gBAChC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,EAAA,EAE7D,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACtB,IAAI,CAAC,KAAK;YACT,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EAC9B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAAA,EACjD,IAAI,CAAC,KAAK,CACN,CACD,EACP,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CACnC,EAER,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAA,EAAA,0CAAA,EACE,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,GAAG,EAAE,EACnB,kBAAA,EAAA,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAA,cAAA,EACzE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,EAC/C,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAA,EACjB,IAAI,CAAC,mBAAmB,CAAA,EAE3B,KAAK,CACG,EACV,IAAI,CAAC,sBAAsB,EAAE,CAC1B,EACL,IAAI,CAAC,aAAa;AACjB,YAAA,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,8BAA8B,EACpC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAExC,IAAI,CAAC,aAAa,CACjB,EAEL,IAAI,CAAC,OAAO;YACX,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EACY,WAAW,EACrB,KAAK,EAAC,6BAA6B,EACnC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAA,EAExC,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAU,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,OAAO,EAAG,CAAA,EACtC,IAAI,CAAC,YAAY,CAChB,CAEF,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PdsTextarea","__stencil_proxyCustomElement"],"sources":["src/global/styles/utils/label.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-input/pds-input.tokens.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n","@use '~@kajabi-ui/styles/dist/pine/components/pds-input/pds-input.tokens'\n",":host {\n display: inline-block;\n width: 100%;\n}\n\n:host([aria-readonly=\"true\"]) {\n textarea {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n}\n\n:host([highlight]:not([disabled]):not([aria-disabled=\"true\"]):not([aria-readonly=\"true\"])) {\n .pds-textarea__field:not(.is-invalid) {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-accent);\n color: var(--pine-color-text-accent);\n\n &:hover {\n border-color: var(--pine-color-accent-hover);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring);\n }\n\n ~ .pds-textarea__character-counter {\n background: color-mix(in srgb, var(--pine-color-accent-disabled) 80%, transparent);\n color: var(--pine-color-text-accent);\n }\n }\n}\n\n.pds-textarea {\n display: flex;\n flex-direction: column;\n}\n\n.pds-textarea__label-wrapper {\n align-items: center;\n display: flex;\n justify-content: space-between;\n}\n\n.pds-textarea__action {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-xs);\n margin-inline-start: var(--pine-dimension-xs);\n}\n\nlabel {\n display: block;\n margin-block-end: var(--pine-dimension-xs);\n}\n\n// When label is inside wrapper, remove its margin\n.pds-textarea__label-wrapper label {\n margin-block-end: 0;\n}\n\n.pds-textarea__helper-message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n.pds-textarea__error-message {\n align-items: center;\n color: var(--pine-color-text-message-danger);\n display: flex;\n font: var(--pine-typography-body-sm-medium);\n gap: var(--pine-dimension-2xs);\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n.pds-textarea__field-wrapper {\n display: inline-block;\n position: relative;\n width: 100%;\n}\n\n.pds-textarea__field {\n background-color: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: calc(var(--pine-dimension-xs) * 1.25);\n box-sizing: border-box;\n color: var(--pine-color-text);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n min-height: calc(var(--pine-dimension-xl) * 2);\n min-width: calc(var(--pine-dimension-xl) * 2);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n resize: both;\n width: 100%;\n\n // Add bottom padding when character counter is present\n :host([max-length]) & {\n padding-bottom: calc(var(--pine-dimension-xs) + var(--pine-dimension-md));\n }\n\n &:hover:not(:disabled, .is-invalid) {\n border: var(--pine-border-hover);\n }\n\n &:disabled {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n &.is-invalid {\n background-color: var(--pine-input-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n :host-context([data-theme=\"dark\"]) & {\n background-color: var(--pine-color-red-950);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n.pds-textarea__character-counter {\n background: color-mix(in srgb, var(--pine-color-background-container) 80%, transparent);\n border-radius: calc(var(--pine-dimension-2xs) * 0.5);\n color: var(--pine-color-text-muted);\n font: var(--pine-typography-body-sm-medium);\n padding: calc(var(--pine-dimension-2xs) * 0.5) var(--pine-dimension-2xs);\n pointer-events: none;\n position: absolute;\n user-select: none;\n white-space: nowrap;\n z-index: var(--pine-z-index);\n\n // Match textarea disabled state\n :host([aria-disabled=\"true\"]) & {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-disabled);\n }\n\n // Match textarea readonly state\n :host([aria-readonly=\"true\"]) & {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n\n // Match textarea invalid state - target when field has is-invalid class\n .pds-textarea__field.is-invalid ~ & {\n background-color: var(--pine-input-color-background-danger);\n\n :host-context([data-theme=\"dark\"]) & {\n background-color: var(--pine-color-red-950);\n }\n }\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, isRequired, messageId, exposeTypeProperty } from '../../utils/form';\nimport { TextareaChangeEventDetail, TextareaInputEventDetail } from './textarea-interface';\nimport { debounceEvent } from '@utils/utils';\nimport type { Attributes } from '@utils/attributes';\nimport { inheritAttributes, inheritAriaAttributes } from '@utils/attributes';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-textarea',\n styleUrls: [\n '../../global/styles/utils/label.scss',\n '../pds-input/pds-input.tokens.scss',\n 'pds-textarea.scss'\n ],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsTextarea {\n\n private nativeTextarea?: HTMLTextAreaElement\n private focusedValue?: string | null;\n private inheritedAttributes: Attributes = {};\n private originalPdsInput?: EventEmitter<TextareaInputEventDetail>;\n private internals?: ElementInternals;\n private resizeObserver?: ResizeObserver;\n private characterCounter?: HTMLElement;\n private readonly _type = 'textarea' as const;\n\n @Element() el: HTMLPdsTextareaElement;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n @Event() pdsInput: EventEmitter<TextareaInputEventDetail>;\n\n /**\n * Event emitted whenever the value of the textarea changes.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsTextareaChange: EventEmitter<TextareaChangeEventDetail>;\n\n /**\n * Sets focus on the native `textarea` in the `pds-textarea`. Use this method instead of the global\n * `textarea.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeTextarea) {\n this.nativeTextarea.focus();\n }\n }\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines whether or not the textarea is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the event after each keystroke.\n */\n @Prop() debounce?: number;\n\n /**\n * Displays an error message below the textarea field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the textarea field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the textarea is invalid or throws an error.\n * @defaultValue false\n */\n @Prop({mutable: true}) invalid = false; // eslint-disable-line @stencil-community/strict-mutable\n\n /**\n * Text to be displayed as the textarea label.\n */\n @Prop() label?: string;\n\n /**\n * Visually hides the label text for instances where only the textarea should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Specifies the name. Submitted with the form name/value pair. This value will mirror the componentId.\n */\n @Prop() name: string = this.componentId;\n\n /**\n * Specifies a short hint that describes the expected value of the textarea.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the textarea is readonly.\n * @defaultValue false\n */\n @Prop() readonly = false;\n\n /**\n * Determines whether or not the textarea is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Sets number of rows of text visible without needing to scroll in the textarea.\n */\n @Prop() rows?: number;\n\n /**\n * Specifies the maximum number of characters allowed in the textarea. When set, displays a character counter.\n */\n @Prop({ reflect: true }) maxLength?: number;\n\n /**\n * Applies highlight styling to the textarea field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\n\n /**\n * The value of the textarea.\n */\n @Prop({mutable: true}) value?: string | null = '';\n\n @State() hasFocus = false;\n\n\n /**\n * If true, the textarea has action content in the label area\n */\n @State() hasAction = false;\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n const nativeTextarea = this.nativeTextarea;\n const value = this.getValue();\n\n if (nativeTextarea && nativeTextarea.value !== value) {\n nativeTextarea.value = value;\n }\n\n // Update form value for Form Associated Custom Elements API\n this.updateFormValue();\n\n // Update character counter position in case content changes affect sizing\n if (this.maxLength && typeof ResizeObserver !== 'undefined') {\n this.updateCharacterCounterPosition();\n }\n }\n\n @Watch('maxLength')\n protected maxLengthChanged() {\n // Setup or teardown ResizeObserver based on maxLength\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.maxLength && this.nativeTextarea) {\n this.setupResizeObserver();\n }\n\n // Update ElementInternals validity when maxLength changes\n if (this.internals && this.internals.setValidity && this.nativeTextarea) {\n const isTooLong = this.nativeTextarea.value.length > (this.maxLength || 0);\n this.internals.setValidity(\n { tooLong: isTooLong },\n isTooLong ? 'Value exceeds maxLength' : '',\n this.nativeTextarea\n );\n }\n }\n\n /**\n * Emits an `pdsInput` event.\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n this.pdsInput.emit({ value, event });\n }\n\n /**\n * Emits an `pdsTextareaChange` event.\n */\n private emitValueChange(event?: Event) {\n const textarea = event.target as HTMLTextAreaElement;\n isRequired(textarea, this);\n\n const { value } = textarea;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n this.focusedValue = newValue;\n this.pdsTextareaChange.emit({ value: newValue, event });\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private onBlur = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLTextAreaElement | null;\n if (input) {\n // Handle maxLength validation\n if (this.maxLength && input.value.length > this.maxLength) {\n // Prevent input beyond maxLength\n input.value = input.value.substring(0, this.maxLength);\n }\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n\n // Update counter position when content changes\n if (this.maxLength && typeof ResizeObserver !== 'undefined') {\n // Use requestAnimationFrame to ensure DOM is updated\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n };\n\n private onTextareaChange = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private textareaClassNames() {\n const classNames = ['pds-textarea__field'];\n\n if (this.invalid && this.invalid === true) {\n classNames.push('is-invalid');\n }\n\n return classNames.join(' ');\n }\n\n connectedCallback() {\n this.debounceChanged();\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n disconnectedCallback() {\n // Clean up ResizeObserver\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el),\n };\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n }\n\n componentDidLoad() {\n this.originalPdsInput = this.pdsInput;\n // Set initial form value\n this.updateFormValue();\n\n // Setup ResizeObserver for character counter positioning\n this.setupResizeObserver();\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n /**\n * Sets up ResizeObserver to track textarea resize for character counter positioning\n */\n private setupResizeObserver() {\n if (!this.maxLength || !this.nativeTextarea) return;\n\n // ResizeObserver may not be available in test environments\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n // Use requestAnimationFrame to ensure DOM updates are complete\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n });\n\n this.resizeObserver.observe(this.nativeTextarea);\n\n // Initial positioning with a small delay to ensure counter is rendered\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n }\n\n /**\n * Updates character counter position to stay within textarea boundaries during resize\n */\n private updateCharacterCounterPosition() {\n if (!this.characterCounter || !this.nativeTextarea) return;\n\n // Skip positioning in test environments where ResizeObserver isn't available\n if (typeof ResizeObserver === 'undefined') return;\n\n // Ensure the character counter has been rendered and has dimensions\n if (this.characterCounter.offsetWidth === 0 || this.characterCounter.offsetHeight === 0) {\n // Counter not ready or component hidden - return and let resize/input observers handle positioning later\n return;\n }\n\n // Position based on textarea's actual dimensions (which change during manual resize)\n const textareaWidth = this.nativeTextarea.offsetWidth;\n const textareaHeight = this.nativeTextarea.offsetHeight;\n const counterWidth = this.characterCounter.offsetWidth;\n const counterHeight = this.characterCounter.offsetHeight;\n\n // Calculate position within textarea boundaries with padding from edges\n const rightPosition = textareaWidth - counterWidth - 8;\n const bottomPosition = textareaHeight - counterHeight - 8;\n\n // Ensure counter stays within textarea boundaries even when resized very small\n const finalLeft = Math.max(8, Math.min(rightPosition, textareaWidth - counterWidth - 8));\n const finalTop = Math.max(8, Math.min(bottomPosition, textareaHeight - counterHeight - 8));\n\n // Apply absolute positioning within the field wrapper\n this.characterCounter.style.position = 'absolute';\n this.characterCounter.style.left = `${finalLeft}px`;\n this.characterCounter.style.top = `${finalTop}px`;\n this.characterCounter.style.right = 'auto';\n this.characterCounter.style.bottom = 'auto';\n }\n\n /**\n * Renders the character counter when maxLength is set\n */\n private renderCharacterCounter() {\n if (!this.maxLength) {\n return null;\n }\n\n const currentLength = this.getValue().length;\n return (\n <div\n class=\"pds-textarea__character-counter\"\n ref={(el) => this.characterCounter = el}\n role=\"status\"\n aria-live=\"polite\"\n aria-label={`${currentLength} of ${this.maxLength} characters`}\n >\n {currentLength} / {this.maxLength}\n </div>\n );\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-textarea__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native textarea validation\n if (this.nativeTextarea && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeTextarea.validity,\n this.nativeTextarea.validationMessage,\n this.nativeTextarea\n );\n }\n }\n }\n\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the textarea's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\n }\n\n render() {\n const value = this.getValue();\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-action={this.hasAction && !this.hideLabel ? 'true' : null}\n >\n <div class=\"pds-textarea\">\n {this.label &&\n <div class=\"pds-textarea__label-wrapper\">\n <label htmlFor={this.componentId}>\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {!this.hideLabel && this.renderAction()}\n </div>\n }\n <div class=\"pds-textarea__field-wrapper\">\n <textarea\n ref={(el) => this.nativeTextarea = el }\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n class={this.textareaClassNames()}\n disabled={this.disabled}\n id={this.componentId}\n maxlength={this.maxLength}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n rows={this.rows}\n onBlur={this.onBlur}\n onChange={this.onTextareaChange}\n onFocus={this.onFocus}\n onInput={this.onInput}\n {...this.inheritedAttributes}\n >\n {value}\n </textarea>\n {this.renderCharacterCounter()}\n </div>\n {this.helperMessage &&\n <p\n class=\"pds-textarea__helper-message\"\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </p>\n }\n {this.invalid &&\n <p\n aria-live=\"assertive\"\n class=\"pds-textarea__error-message\"\n id={messageId(this.componentId, 'error')}\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n }\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pds-textarea.js","mappings":"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","names":["PdsTextarea","__stencil_proxyCustomElement"],"sources":["src/global/styles/utils/label.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-input/pds-input.tokens.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.scss?tag=pds-textarea&encapsulation=shadow","src/components/pds-textarea/pds-textarea.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n:host([aria-disabled=\"true\"]) label {\n color: var(--pine-color-text-label-disabled);\n}\n\n:host([aria-readonly=\"true\"]) {\n label {\n color: var(--pine-color-text-label-readonly);\n }\n}\n\nlabel {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-body-medium);\n letter-spacing: var(--pine-letter-spacing);\n}\n","@use '~@kajabi-ui/styles/dist/pine/components/pds-input/pds-input.tokens'\n",":host {\n display: inline-block;\n width: 100%;\n}\n\n:host([aria-readonly=\"true\"]) {\n textarea {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n}\n\n:host([highlight]:not([disabled]):not([aria-disabled=\"true\"]):not([aria-readonly=\"true\"])) {\n .pds-textarea__field:not(.is-invalid) {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-accent);\n color: var(--pine-color-text-accent);\n\n &:hover {\n border-color: var(--pine-color-accent-hover);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring);\n }\n\n ~ .pds-textarea__character-counter {\n background: color-mix(in srgb, var(--pine-color-accent-disabled) 80%, transparent);\n color: var(--pine-color-text-accent);\n }\n }\n}\n\n.pds-textarea {\n display: flex;\n flex-direction: column;\n}\n\n.pds-textarea__label-wrapper {\n align-items: center;\n display: flex;\n justify-content: space-between;\n}\n\n.pds-textarea__action {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-xs);\n margin-inline-start: var(--pine-dimension-xs);\n}\n\nlabel {\n display: block;\n margin-block-end: var(--pine-dimension-xs);\n}\n\n// When label is inside wrapper, remove its margin\n.pds-textarea__label-wrapper label {\n margin-block-end: 0;\n}\n\n.pds-textarea__helper-message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--pine-dimension-2xs);\n}\n\n.pds-textarea__error-message {\n color: var(--pine-color-text-message-danger);\n display: flex;\n font: var(--pine-typography-body-sm-medium);\n gap: var(--pine-dimension-2xs);\n margin-block-start: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n.pds-textarea__field-wrapper {\n display: inline-block;\n position: relative;\n width: 100%;\n}\n\n.pds-textarea__field {\n background-color: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: calc(var(--pine-dimension-xs) * 1.25);\n box-sizing: border-box;\n color: var(--pine-color-text);\n font: var(--pine-typography-body);\n letter-spacing: var(--pine-letter-spacing);\n min-height: calc(var(--pine-dimension-xl) * 2);\n min-width: calc(var(--pine-dimension-xl) * 2);\n padding: var(--pine-dimension-xs) var(--pine-dimension-sm);\n resize: both;\n width: 100%;\n\n // Add bottom padding when character counter is present\n :host([max-length]) & {\n padding-bottom: calc(var(--pine-dimension-xs) + var(--pine-dimension-md));\n }\n\n &:hover:not(:disabled, .is-invalid) {\n border: var(--pine-border-hover);\n }\n\n &:disabled {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-disabled);\n cursor: not-allowed;\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n }\n\n &::placeholder {\n color: var(--pine-color-text-placeholder);\n }\n\n &.is-invalid {\n background-color: var(--pine-input-color-background-danger);\n border-color: var(--pine-color-border-danger);\n\n :host-context([data-theme=\"dark\"]) & {\n background-color: var(--pine-color-red-950);\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n}\n\n.pds-textarea__character-counter {\n background: color-mix(in srgb, var(--pine-color-background-container) 80%, transparent);\n border-radius: calc(var(--pine-dimension-2xs) * 0.5);\n color: var(--pine-color-text-muted);\n font: var(--pine-typography-body-sm-medium);\n padding: calc(var(--pine-dimension-2xs) * 0.5) var(--pine-dimension-2xs);\n pointer-events: none;\n position: absolute;\n user-select: none;\n white-space: nowrap;\n z-index: var(--pine-z-index);\n\n // Match textarea disabled state\n :host([aria-disabled=\"true\"]) & {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-disabled);\n }\n\n // Match textarea readonly state\n :host([aria-readonly=\"true\"]) & {\n background-color: var(--pine-color-background-container-disabled);\n color: var(--pine-color-text-readonly);\n }\n\n // Match textarea invalid state - target when field has is-invalid class\n .pds-textarea__field.is-invalid ~ & {\n background-color: var(--pine-input-color-background-danger);\n\n :host-context([data-theme=\"dark\"]) & {\n background-color: var(--pine-color-red-950);\n }\n }\n}\n\n.visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: polygon(0 0, 0 0, 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { assignDescription, isRequired, messageId, exposeTypeProperty } from '../../utils/form';\nimport { TextareaChangeEventDetail, TextareaInputEventDetail } from './textarea-interface';\nimport { debounceEvent } from '@utils/utils';\nimport type { Attributes } from '@utils/attributes';\nimport { inheritAttributes, inheritAriaAttributes } from '@utils/attributes';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-textarea',\n styleUrls: [\n '../../global/styles/utils/label.scss',\n '../pds-input/pds-input.tokens.scss',\n 'pds-textarea.scss'\n ],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsTextarea {\n\n private nativeTextarea?: HTMLTextAreaElement\n private focusedValue?: string | null;\n private inheritedAttributes: Attributes = {};\n private originalPdsInput?: EventEmitter<TextareaInputEventDetail>;\n private internals?: ElementInternals;\n private resizeObserver?: ResizeObserver;\n private characterCounter?: HTMLElement;\n private readonly _type = 'textarea' as const;\n\n @Element() el: HTMLPdsTextareaElement;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n @Event() pdsInput: EventEmitter<TextareaInputEventDetail>;\n\n /**\n * Event emitted whenever the value of the textarea changes.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsTextareaChange: EventEmitter<TextareaChangeEventDetail>;\n\n /**\n * Emitted when a key is pressed down in the textarea.\n */\n @Event() pdsKeyDown!: EventEmitter<KeyboardEvent>;\n\n /**\n * Sets focus on the native `textarea` in the `pds-textarea`. Use this method instead of the global\n * `textarea.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeTextarea) {\n this.nativeTextarea.focus();\n }\n }\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines whether or not the textarea is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the event after each keystroke.\n */\n @Prop() debounce?: number;\n\n /**\n * Displays an error message below the textarea field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the textarea field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the textarea is invalid or throws an error.\n * @defaultValue false\n */\n @Prop({mutable: true}) invalid = false; // eslint-disable-line @stencil-community/strict-mutable\n\n /**\n * Text to be displayed as the textarea label.\n */\n @Prop() label?: string;\n\n /**\n * Visually hides the label text for instances where only the textarea should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Specifies the name. Submitted with the form name/value pair. This value will mirror the componentId.\n */\n @Prop() name: string = this.componentId;\n\n /**\n * Specifies a short hint that describes the expected value of the textarea.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the textarea is readonly.\n * @defaultValue false\n */\n @Prop() readonly = false;\n\n /**\n * Determines whether or not the textarea is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Sets number of rows of text visible without needing to scroll in the textarea.\n */\n @Prop() rows?: number;\n\n /**\n * Specifies the maximum number of characters allowed in the textarea. When set, displays a character counter.\n */\n @Prop({ reflect: true }) maxLength?: number;\n\n /**\n * Applies highlight styling to the textarea field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\n\n /**\n * The value of the textarea.\n */\n @Prop({mutable: true}) value?: string | null = '';\n\n @State() hasFocus = false;\n\n\n /**\n * If true, the textarea has action content in the label area\n */\n @State() hasAction = false;\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n const nativeTextarea = this.nativeTextarea;\n const value = this.getValue();\n\n if (nativeTextarea && nativeTextarea.value !== value) {\n nativeTextarea.value = value;\n }\n\n // Update form value for Form Associated Custom Elements API\n this.updateFormValue();\n\n // Update character counter position in case content changes affect sizing\n if (this.maxLength && typeof ResizeObserver !== 'undefined') {\n this.updateCharacterCounterPosition();\n }\n }\n\n @Watch('maxLength')\n protected maxLengthChanged() {\n // Setup or teardown ResizeObserver based on maxLength\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.maxLength && this.nativeTextarea) {\n this.setupResizeObserver();\n }\n\n // Update ElementInternals validity when maxLength changes\n if (this.internals && this.internals.setValidity && this.nativeTextarea) {\n const isTooLong = this.nativeTextarea.value.length > (this.maxLength || 0);\n this.internals.setValidity(\n { tooLong: isTooLong },\n isTooLong ? 'Value exceeds maxLength' : '',\n this.nativeTextarea\n );\n }\n }\n\n /**\n * Emits an `pdsInput` event.\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n this.pdsInput.emit({ value, event });\n }\n\n /**\n * Emits an `pdsTextareaChange` event.\n */\n private emitValueChange(event?: Event) {\n const textarea = event.target as HTMLTextAreaElement;\n isRequired(textarea, this);\n\n const { value } = textarea;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n this.focusedValue = newValue;\n this.pdsTextareaChange.emit({ value: newValue, event });\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private onBlur = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLTextAreaElement | null;\n if (input) {\n // Handle maxLength validation\n if (this.maxLength && input.value.length > this.maxLength) {\n // Prevent input beyond maxLength\n input.value = input.value.substring(0, this.maxLength);\n }\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n\n // Update counter position when content changes\n if (this.maxLength && typeof ResizeObserver !== 'undefined') {\n // Use requestAnimationFrame to ensure DOM is updated\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n };\n\n private onTextareaChange = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onKeyDown = (ev: KeyboardEvent) => {\n this.pdsKeyDown.emit(ev);\n };\n\n private textareaClassNames() {\n const classNames = ['pds-textarea__field'];\n\n if (this.invalid && this.invalid === true) {\n classNames.push('is-invalid');\n }\n\n return classNames.join(' ');\n }\n\n connectedCallback() {\n this.debounceChanged();\n // Initialize ElementInternals for form association\n if (this.el.attachInternals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n disconnectedCallback() {\n // Clean up ResizeObserver\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el),\n };\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n }\n\n componentDidLoad() {\n this.originalPdsInput = this.pdsInput;\n // Set initial form value\n this.updateFormValue();\n\n // Setup ResizeObserver for character counter positioning\n this.setupResizeObserver();\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n /**\n * Sets up ResizeObserver to track textarea resize for character counter positioning\n */\n private setupResizeObserver() {\n if (!this.maxLength || !this.nativeTextarea) return;\n\n // ResizeObserver may not be available in test environments\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n // Use requestAnimationFrame to ensure DOM updates are complete\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n });\n\n this.resizeObserver.observe(this.nativeTextarea);\n\n // Initial positioning with a small delay to ensure counter is rendered\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n }\n\n /**\n * Updates character counter position to stay within textarea boundaries during resize\n */\n private updateCharacterCounterPosition() {\n if (!this.characterCounter || !this.nativeTextarea) return;\n\n // Skip positioning in test environments where ResizeObserver isn't available\n if (typeof ResizeObserver === 'undefined') return;\n\n // Ensure the character counter has been rendered and has dimensions\n if (this.characterCounter.offsetWidth === 0 || this.characterCounter.offsetHeight === 0) {\n // Counter not ready or component hidden - return and let resize/input observers handle positioning later\n return;\n }\n\n // Position based on textarea's actual dimensions (which change during manual resize)\n const textareaWidth = this.nativeTextarea.offsetWidth;\n const textareaHeight = this.nativeTextarea.offsetHeight;\n const counterWidth = this.characterCounter.offsetWidth;\n const counterHeight = this.characterCounter.offsetHeight;\n\n // Calculate position within textarea boundaries with padding from edges\n const rightPosition = textareaWidth - counterWidth - 8;\n const bottomPosition = textareaHeight - counterHeight - 8;\n\n // Ensure counter stays within textarea boundaries even when resized very small\n const finalLeft = Math.max(8, Math.min(rightPosition, textareaWidth - counterWidth - 8));\n const finalTop = Math.max(8, Math.min(bottomPosition, textareaHeight - counterHeight - 8));\n\n // Apply absolute positioning within the field wrapper\n this.characterCounter.style.position = 'absolute';\n this.characterCounter.style.left = `${finalLeft}px`;\n this.characterCounter.style.top = `${finalTop}px`;\n this.characterCounter.style.right = 'auto';\n this.characterCounter.style.bottom = 'auto';\n }\n\n /**\n * Renders the character counter when maxLength is set\n */\n private renderCharacterCounter() {\n if (!this.maxLength) {\n return null;\n }\n\n const currentLength = this.getValue().length;\n return (\n <div\n class=\"pds-textarea__character-counter\"\n ref={(el) => this.characterCounter = el}\n role=\"status\"\n aria-live=\"polite\"\n aria-label={`${currentLength} of ${this.maxLength} characters`}\n >\n {currentLength} / {this.maxLength}\n </div>\n );\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-textarea__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native textarea validation\n if (this.nativeTextarea && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeTextarea.validity,\n this.nativeTextarea.validationMessage,\n this.nativeTextarea\n );\n }\n }\n }\n\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the textarea's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\n }\n\n render() {\n const value = this.getValue();\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-action={this.hasAction && !this.hideLabel ? 'true' : null}\n >\n <div class=\"pds-textarea\">\n {this.label &&\n <div class=\"pds-textarea__label-wrapper\">\n <label htmlFor={this.componentId}>\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {!this.hideLabel && this.renderAction()}\n </div>\n }\n <div class=\"pds-textarea__field-wrapper\">\n <textarea\n ref={(el) => this.nativeTextarea = el }\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n class={this.textareaClassNames()}\n disabled={this.disabled}\n id={this.componentId}\n maxlength={this.maxLength}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n rows={this.rows}\n onBlur={this.onBlur}\n onChange={this.onTextareaChange}\n onFocus={this.onFocus}\n onInput={this.onInput}\n onKeyDown={this.onKeyDown}\n {...this.inheritedAttributes}\n >\n {value}\n </textarea>\n {this.renderCharacterCounter()}\n </div>\n {this.helperMessage &&\n <p\n class=\"pds-textarea__helper-message\"\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </p>\n }\n {this.invalid &&\n <p\n aria-live=\"assertive\"\n class=\"pds-textarea__error-message\"\n id={messageId(this.componentId, 'error')}\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n }\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -5,7 +5,7 @@ var index = require('./index-CI0W8NCh.js');
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await index.globalScripts();
8
- return index.bootstrapLazy(JSON.parse("[[\"pds-alert.cjs\",[[257,\"pds-alert\",{\"componentId\":[1,\"component-id\"],\"heading\":[1],\"small\":[4],\"dismissible\":[4],\"variant\":[1],\"hasActionsContent\":[32]}]]],[\"pds-combobox.cjs\",[[321,\"pds-combobox\",{\"componentId\":[1,\"component-id\"],\"name\":[513],\"customOptionLayouts\":[4,\"custom-option-layouts\"],\"customTriggerContent\":[4,\"custom-trigger-content\"],\"disabled\":[4],\"dropdownPlacement\":[1,\"dropdown-placement\"],\"dropdownWidth\":[1,\"dropdown-width\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"maxHeight\":[1,\"max-height\"],\"mode\":[1],\"placeholder\":[1],\"trigger\":[1],\"triggerWidth\":[1,\"trigger-width\"],\"triggerVariant\":[1,\"trigger-variant\"],\"chipSentiment\":[1,\"chip-sentiment\"],\"chipLarge\":[4,\"chip-large\"],\"chipIcon\":[1,\"chip-icon\"],\"chipDot\":[4,\"chip-dot\"],\"value\":[1025],\"displayText\":[32],\"filteredItems\":[32],\"highlightedIndex\":[32],\"isOpen\":[32],\"selectedOption\":[32],\"selectedOptionLayoutContent\":[32],\"selectedOptionChipProps\":[32],\"setFocus\":[64],\"getSelectedValue\":[64]},null,{\"value\":[\"handleValueChange\"],\"selectedOption\":[\"handleSelectedOptionChange\"]}]]],[\"pds-copytext.cjs\",[[257,\"pds-copytext\",{\"border\":[516],\"componentId\":[1,\"component-id\"],\"fullWidth\":[4,\"full-width\"],\"truncate\":[4],\"value\":[1]}]]],[\"pds-table-head.cjs\",[[257,\"pds-table-head\",{\"indeterminate\":[1028],\"isSelected\":[1028,\"is-selected\"]}]]],[\"pds-table-row.cjs\",[[257,\"pds-table-row\",{\"indeterminate\":[1028],\"isSelected\":[1028,\"is-selected\"]}]]],[\"pds-dropdown-menu-item.cjs\",[[257,\"pds-dropdown-menu-item\",{\"componentId\":[1,\"component-id\"],\"destructive\":[4],\"disabled\":[4],\"href\":[1],\"hasFocus\":[32],\"clickItem\":[64]}]]],[\"pds-property.cjs\",[[257,\"pds-property\",{\"componentId\":[1,\"component-id\"],\"icon\":[1]}]]],[\"pds-accordion.cjs\",[[257,\"pds-accordion\",{\"componentId\":[1,\"component-id\"],\"isOpen\":[1540,\"open\"]},null,{\"isOpen\":[\"handleOpenState\"]}]]],[\"pds-avatar.cjs\",[[257,\"pds-avatar\",{\"alt\":[1],\"badge\":[4],\"componentId\":[1,\"component-id\"],\"dropdown\":[4],\"image\":[1],\"size\":[513],\"variant\":[513]}]]],[\"pds-dropdown-menu.cjs\",[[257,\"pds-dropdown-menu\",{\"componentId\":[1,\"component-id\"],\"placement\":[1],\"currentFocusIndex\":[32]},[[8,\"keydown\",\"handleKeyDown\"],[8,\"click\",\"handleWindowClick\"]]]]],[\"pds-filter.cjs\",[[257,\"pds-filter\",{\"componentId\":[1,\"component-id\"],\"variant\":[1],\"icon\":[1],\"text\":[1],\"isOpen\":[32],\"showFilter\":[64],\"hideFilter\":[64]},[[9,\"resize\",\"handleWindowResize\"],[9,\"scroll\",\"handleWindowScroll\"],[4,\"toggle\",\"handlePopoverToggle\"],[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleEscapeKey\"]]]]],[\"pds-input.cjs\",[[321,\"pds-input\",{\"autocomplete\":[1],\"componentId\":[1,\"component-id\"],\"debounce\":[2],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"invalid\":[4],\"label\":[1],\"hideLabel\":[4,\"hide-label\"],\"max\":[1],\"maxlength\":[1],\"min\":[1],\"minlength\":[1],\"name\":[1],\"pattern\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"step\":[1],\"type\":[1],\"value\":[1032],\"fullWidth\":[4,\"full-width\"],\"highlight\":[516],\"hasPrefix\":[32],\"hasSuffix\":[32],\"hasPrepend\":[32],\"hasAppend\":[32],\"hasAction\":[32],\"hasFocus\":[32],\"setFocus\":[64]},null,{\"debounce\":[\"debounceChanged\"],\"value\":[\"valueChanged\"]}]]],[\"pds-radio.cjs\",[[262,\"pds-radio\",{\"checked\":[4],\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"hasBorder\":[4,\"has-border\"],\"invalid\":[4],\"label\":[1],\"hideLabel\":[4,\"hide-label\"],\"name\":[1],\"required\":[4],\"value\":[1],\"_hasImage\":[32]}]]],[\"pds-radio-group.cjs\",[[262,\"pds-radio-group\",{\"componentId\":[1,\"component-id\"],\"direction\":[1],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"gap\":[1],\"disabled\":[4],\"invalid\":[4],\"groupLabel\":[1,\"group-label\"],\"name\":[1],\"required\":[4]},[[0,\"change\",\"handleRadioChange\"]],{\"name\":[\"handlePropsChange\"],\"disabled\":[\"handlePropsChange\"],\"invalid\":[\"handlePropsChange\"],\"required\":[\"handlePropsChange\"]}]]],[\"pds-select.cjs\",[[321,\"pds-select\",{\"autocomplete\":[1],\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"hideLabel\":[4,\"hide-label\"],\"helperMessage\":[1,\"helper-message\"],\"invalid\":[4],\"label\":[1],\"multiple\":[4],\"name\":[1],\"required\":[4],\"highlight\":[516],\"value\":[1025]},null,{\"value\":[\"valueChanged\"],\"multiple\":[\"multipleChanged\"]}]]],[\"pds-sortable-item.cjs\",[[262,\"pds-sortable-item\",{\"enableActions\":[4,\"enable-actions\"],\"componentId\":[1,\"component-id\"],\"showHandle\":[1028,\"show-handle\"]}]]],[\"pds-switch.cjs\",[[321,\"pds-switch\",{\"componentId\":[1,\"component-id\"],\"checked\":[1028],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"hideLabel\":[4,\"hide-label\"],\"helperMessage\":[1,\"helper-message\"],\"invalid\":[4],\"label\":[1],\"name\":[1],\"required\":[4],\"value\":[1]},null,{\"checked\":[\"checkedChanged\"]}]]],[\"pds-textarea.cjs\",[[321,\"pds-textarea\",{\"autocomplete\":[1],\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"debounce\":[2],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"invalid\":[1028],\"label\":[1],\"hideLabel\":[4,\"hide-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"rows\":[2],\"maxLength\":[514,\"max-length\"],\"highlight\":[516],\"value\":[1025],\"hasFocus\":[32],\"hasAction\":[32],\"setFocus\":[64]},null,{\"debounce\":[\"debounceChanged\"],\"value\":[\"valueChanged\"],\"maxLength\":[\"maxLengthChanged\"]}]]],[\"pds-toast.cjs\",[[257,\"pds-toast\",{\"componentId\":[1,\"component-id\"],\"dismissible\":[4],\"duration\":[2],\"icon\":[1],\"type\":[1],\"isVisible\":[32],\"isAnimatingOut\":[32],\"dismiss\":[64]},null,{\"duration\":[\"handleDurationChange\"]}]]],[\"mock-pds-modal.cjs\",[[260,\"mock-pds-modal\",{\"componentId\":[1,\"component-id\"],\"size\":[1],\"scrollable\":[4],\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"open\":[1028],\"showModal\":[64],\"hideModal\":[64]}]]],[\"pds-divider.cjs\",[[257,\"pds-divider\",{\"componentId\":[1,\"component-id\"],\"offset\":[1],\"vertical\":[4]}]]],[\"pds-dropdown-menu-separator.cjs\",[[257,\"pds-dropdown-menu-separator\",{\"componentId\":[1,\"component-id\"],\"disabled\":[4]}]]],[\"pds-filters.cjs\",[[257,\"pds-filters\",{\"componentId\":[1,\"component-id\"]}]]],[\"pds-image.cjs\",[[257,\"pds-image\",{\"alt\":[1],\"componentId\":[1,\"component-id\"],\"height\":[2],\"loading\":[1],\"sizes\":[1],\"src\":[1],\"srcset\":[1],\"width\":[2]}]]],[\"pds-modal.cjs\",[[260,\"pds-modal\",{\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"componentId\":[1,\"component-id\"],\"open\":[1028],\"size\":[1],\"scrollable\":[4],\"focusableElementsArray\":[32],\"showModal\":[64],\"hideModal\":[64]},null,{\"open\":[\"handleOpenChange\"]}]]],[\"pds-modal-content.cjs\",[[260,\"pds-modal-content\",{\"border\":[1537],\"contentMaxHeight\":[32]}]]],[\"pds-modal-footer.cjs\",[[260,\"pds-modal-footer\"]]],[\"pds-modal-header.cjs\",[[260,\"pds-modal-header\"]]],[\"pds-popover.cjs\",[[257,\"pds-popover\",{\"popoverTargetAction\":[1,\"popover-target-action\"],\"popoverType\":[1,\"popover-type\"],\"componentId\":[1,\"component-id\"],\"maxWidth\":[2,\"max-width\"],\"placement\":[513],\"active\":[32],\"show\":[64],\"hide\":[64],\"toggle\":[64]}]]],[\"pds-progress.cjs\",[[257,\"pds-progress\",{\"animated\":[4],\"componentId\":[1,\"component-id\"],\"fillColor\":[1,\"fill-color\"],\"label\":[1],\"percent\":[2],\"showPercent\":[4,\"show-percent\"]}]]],[\"pds-row.cjs\",[[256,\"pds-row\",{\"alignItems\":[1,\"align-items\"],\"border\":[4],\"colGap\":[1,\"col-gap\"],\"colGapBlock\":[1,\"col-gap-block\"],\"colGapInline\":[1,\"col-gap-inline\"],\"componentId\":[1,\"component-id\"],\"justifyContent\":[1,\"justify-content\"],\"minHeight\":[1,\"min-height\"],\"noWrap\":[4,\"no-wrap\"]}]]],[\"pds-sortable.cjs\",[[262,\"pds-sortable\",{\"border\":[516],\"componentId\":[1,\"component-id\"],\"dividers\":[516],\"handleType\":[1,\"handle-type\"]}]]],[\"pds-tab.cjs\",[[260,\"pds-tab\",{\"name\":[1],\"parentComponentId\":[1,\"parent-component-id\"],\"variant\":[1],\"index\":[2],\"selected\":[4]}]]],[\"pds-table.cjs\",[[257,\"pds-table\",{\"compact\":[4],\"componentId\":[1,\"component-id\"],\"responsive\":[4],\"fixedColumn\":[4,\"fixed-column\"],\"selectable\":[4],\"sortingColumn\":[32],\"sortingDirection\":[32]},[[0,\"pdsTableSort\",\"handleTableSort\"],[0,\"pdsTableSelectAll\",\"handleTableSelectAll\"],[0,\"pdsTableRowSelected\",\"handleTableSelect\"]]]]],[\"pds-table-body.cjs\",[[257,\"pds-table-body\"]]],[\"pds-tabpanel.cjs\",[[260,\"pds-tabpanel\",{\"name\":[1],\"parentComponentId\":[1,\"parent-component-id\"],\"variant\":[1],\"selected\":[1028]}]]],[\"pds-tabs.cjs\",[[257,\"pds-tabs\",{\"tablistLabel\":[1,\"tablist-label\"],\"componentId\":[1,\"component-id\"],\"variant\":[1],\"activeTabName\":[1025,\"active-tab-name\"],\"activeTabIndex\":[1026,\"active-tab-index\"]},[[16,\"pdsTabClick\",\"tabClickHandler\"],[0,\"keydown\",\"handleKeyDown\"]]]]],[\"pds-tooltip.cjs\",[[260,\"pds-tooltip\",{\"content\":[1],\"componentId\":[1,\"component-id\"],\"hasArrow\":[4,\"has-arrow\"],\"htmlContent\":[4,\"html-content\"],\"placement\":[513],\"maxWidth\":[1,\"max-width\"],\"opened\":[1540],\"_isInteractiveOpen\":[32],\"showTooltip\":[64],\"hideTooltip\":[64]},null,{\"opened\":[\"handleOpenToggle\"]}]]],[\"pds-icon.cjs\",[[257,\"pds-icon\",{\"color\":[1],\"flipRtl\":[4,\"flip-rtl\"],\"icon\":[8],\"name\":[513],\"size\":[513],\"src\":[1],\"ariaLabel\":[32],\"isVisible\":[32],\"svgContent\":[32]},null,{\"size\":[\"updateStyles\"],\"color\":[\"updateStyles\"],\"name\":[\"onIconPropertyChange\"],\"src\":[\"onIconPropertyChange\"],\"icon\":[\"onIconPropertyChange\"]}]]],[\"pds-button.cjs\",[[257,\"pds-button\",{\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"href\":[1],\"icon\":[1],\"iconOnly\":[4,\"icon-only\"],\"loading\":[4],\"name\":[1],\"target\":[1],\"type\":[1],\"value\":[1],\"size\":[1],\"variant\":[1]},[[16,\"keydown\",\"handleFormKeyDown\"]]]]],[\"pds-chip.cjs\",[[257,\"pds-chip\",{\"componentId\":[1,\"component-id\"],\"dot\":[4],\"icon\":[1],\"large\":[4],\"sentiment\":[1],\"variant\":[1]}]]],[\"pds-link.cjs\",[[257,\"pds-link\",{\"color\":[1],\"componentId\":[1,\"component-id\"],\"external\":[4],\"variant\":[1],\"fontSize\":[1,\"font-size\"],\"href\":[1]}]]],[\"pds-table-head-cell.cjs\",[[257,\"pds-table-head-cell\",{\"cellAlign\":[1,\"cell-align\"],\"sortable\":[4],\"sortingDirection\":[32],\"tableScrolling\":[32],\"isSelected\":[32]}]]],[\"pds-table-cell.cjs\",[[257,\"pds-table-cell\",{\"cellAlign\":[1,\"cell-align\"],\"truncate\":[4],\"tableScrolling\":[32]}]]],[\"pds-text.cjs\",[[257,\"pds-text\",{\"align\":[1],\"color\":[1],\"decoration\":[1],\"gutter\":[1],\"italic\":[4],\"size\":[1],\"weight\":[1],\"tag\":[1],\"truncate\":[516]}]]],[\"pds-checkbox.cjs\",[[321,\"pds-checkbox\",{\"checked\":[1028],\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"indeterminate\":[1028],\"invalid\":[4],\"label\":[1],\"hideLabel\":[4,\"hide-label\"],\"name\":[1],\"required\":[4],\"value\":[1]},null,{\"checked\":[\"updateIndeterminate\",\"checkedChanged\"]}]]],[\"pds-loader.cjs\",[[257,\"pds-loader\",{\"isLoading\":[4,\"is-loading\"],\"showLabel\":[4,\"show-label\"],\"size\":[513],\"variant\":[1]}]]],[\"pds-box.cjs\",[[256,\"pds-box\",{\"alignItems\":[1,\"align-items\"],\"alignItemsXs\":[1,\"align-items-xs\"],\"alignItemsSm\":[1,\"align-items-sm\"],\"alignItemsMd\":[1,\"align-items-md\"],\"alignItemsLg\":[1,\"align-items-lg\"],\"alignItemsXl\":[1,\"align-items-xl\"],\"alignSelf\":[1,\"align-self\"],\"alignSelfXs\":[1,\"align-self-xs\"],\"alignSelfSm\":[1,\"align-self-sm\"],\"alignSelfMd\":[1,\"align-self-md\"],\"alignSelfLg\":[1,\"align-self-lg\"],\"alignSelfXl\":[1,\"align-self-xl\"],\"auto\":[4],\"autoXs\":[4,\"auto-xs\"],\"autoSm\":[4,\"auto-sm\"],\"autoMd\":[4,\"auto-md\"],\"autoLg\":[4,\"auto-lg\"],\"autoXl\":[4,\"auto-xl\"],\"backgroundColor\":[1,\"background-color\"],\"border\":[4],\"borderColor\":[1,\"border-color\"],\"borderRadius\":[1,\"border-radius\"],\"direction\":[1],\"display\":[1],\"fit\":[4],\"fitXs\":[4,\"fit-xs\"],\"fitSm\":[4,\"fit-sm\"],\"fitMd\":[4,\"fit-md\"],\"fitLg\":[4,\"fit-lg\"],\"fitXl\":[4,\"fit-xl\"],\"gap\":[1],\"gapXs\":[1,\"gap-xs\"],\"gapSm\":[1,\"gap-sm\"],\"gapMd\":[1,\"gap-md\"],\"gapLg\":[1,\"gap-lg\"],\"gapXl\":[1,\"gap-xl\"],\"wrap\":[4],\"wrapXs\":[4,\"wrap-xs\"],\"wrapSm\":[4,\"wrap-sm\"],\"wrapMd\":[4,\"wrap-md\"],\"wrapLg\":[4,\"wrap-lg\"],\"wrapXl\":[4,\"wrap-xl\"],\"flex\":[1],\"justifyContent\":[1,\"justify-content\"],\"justifyContentXs\":[1,\"justify-content-xs\"],\"justifyContentSm\":[1,\"justify-content-sm\"],\"justifyContentMd\":[1,\"justify-content-md\"],\"justifyContentLg\":[1,\"justify-content-lg\"],\"justifyContentXl\":[1,\"justify-content-xl\"],\"marginBlockStart\":[1,\"margin-block-start\"],\"marginBlockStartXs\":[1,\"margin-block-start-xs\"],\"marginBlockStartSm\":[1,\"margin-block-start-sm\"],\"marginBlockStartMd\":[1,\"margin-block-start-md\"],\"marginBlockStartLg\":[1,\"margin-block-start-lg\"],\"marginBlockStartXl\":[1,\"margin-block-start-xl\"],\"marginInlineStart\":[1,\"margin-inline-start\"],\"marginInlineStartXs\":[1,\"margin-inline-start-xs\"],\"marginInlineStartSm\":[1,\"margin-inline-start-sm\"],\"marginInlineStartMd\":[1,\"margin-inline-start-md\"],\"marginInlineStartLg\":[1,\"margin-inline-start-lg\"],\"marginInlineStartXl\":[1,\"margin-inline-start-xl\"],\"marginInlineEnd\":[1,\"margin-inline-end\"],\"marginInlineEndXs\":[1,\"margin-inline-end-xs\"],\"marginInlineEndSm\":[1,\"margin-inline-end-sm\"],\"marginInlineEndMd\":[1,\"margin-inline-end-md\"],\"marginInlineEndLg\":[1,\"margin-inline-end-lg\"],\"marginInlineEndXl\":[1,\"margin-inline-end-xl\"],\"marginBlockEnd\":[1,\"margin-block-end\"],\"marginBlockEndXs\":[1,\"margin-block-end-xs\"],\"marginBlockEndSm\":[1,\"margin-block-end-sm\"],\"marginBlockEndMd\":[1,\"margin-block-end-md\"],\"marginBlockEndLg\":[1,\"margin-block-end-lg\"],\"marginBlockEndXl\":[1,\"margin-block-end-xl\"],\"minHeight\":[513,\"min-height\"],\"minWidth\":[513,\"min-width\"],\"offset\":[1],\"offsetXs\":[1,\"offset-xs\"],\"offsetSm\":[1,\"offset-sm\"],\"offsetMd\":[1,\"offset-md\"],\"offsetLg\":[1,\"offset-lg\"],\"offsetXl\":[1,\"offset-xl\"],\"padding\":[1],\"paddingXs\":[1,\"padding-xs\"],\"paddingSm\":[1,\"padding-sm\"],\"paddingMd\":[1,\"padding-md\"],\"paddingLg\":[1,\"padding-lg\"],\"paddingXl\":[1,\"padding-xl\"],\"paddingBlockStart\":[1,\"padding-block-start\"],\"paddingBlockStartXs\":[1,\"padding-block-start-xs\"],\"paddingBlockStartSm\":[1,\"padding-block-start-sm\"],\"paddingBlockStartMd\":[1,\"padding-block-start-md\"],\"paddingBlockStartLg\":[1,\"padding-block-start-lg\"],\"paddingBlockStartXl\":[1,\"padding-block-start-xl\"],\"paddingBlockEnd\":[1,\"padding-block-end\"],\"paddingBlockEndXs\":[1,\"padding-block-end-xs\"],\"paddingBlockEndSm\":[1,\"padding-block-end-sm\"],\"paddingBlockEndMd\":[1,\"padding-block-end-md\"],\"paddingBlockEndLg\":[1,\"padding-block-end-lg\"],\"paddingBlockEndXl\":[1,\"padding-block-end-xl\"],\"paddingInlineStart\":[1,\"padding-inline-start\"],\"paddingInlineStartXs\":[1,\"padding-inline-start-xs\"],\"paddingInlineStartSm\":[1,\"padding-inline-start-sm\"],\"paddingInlineStartMd\":[1,\"padding-inline-start-md\"],\"paddingInlineStartLg\":[1,\"padding-inline-start-lg\"],\"paddingInlineStartXl\":[1,\"padding-inline-start-xl\"],\"paddingInlineEnd\":[1,\"padding-inline-end\"],\"paddingInlineEndXs\":[1,\"padding-inline-end-xs\"],\"paddingInlineEndSm\":[1,\"padding-inline-end-sm\"],\"paddingInlineEndMd\":[1,\"padding-inline-end-md\"],\"paddingInlineEndLg\":[1,\"padding-inline-end-lg\"],\"paddingInlineEndXl\":[1,\"padding-inline-end-xl\"],\"shadow\":[1],\"size\":[1],\"sizeXs\":[1,\"size-xs\"],\"sizeSm\":[1,\"size-sm\"],\"sizeMd\":[1,\"size-md\"],\"sizeLg\":[1,\"size-lg\"],\"sizeXl\":[1,\"size-xl\"]}]]]]"), options);
8
+ return index.bootstrapLazy(JSON.parse("[[\"pds-alert.cjs\",[[257,\"pds-alert\",{\"componentId\":[1,\"component-id\"],\"heading\":[1],\"small\":[4],\"dismissible\":[4],\"variant\":[1],\"hasActionsContent\":[32]}]]],[\"pds-combobox.cjs\",[[321,\"pds-combobox\",{\"componentId\":[1,\"component-id\"],\"name\":[513],\"customOptionLayouts\":[4,\"custom-option-layouts\"],\"customTriggerContent\":[4,\"custom-trigger-content\"],\"disabled\":[4],\"dropdownPlacement\":[1,\"dropdown-placement\"],\"dropdownWidth\":[1,\"dropdown-width\"],\"hideLabel\":[4,\"hide-label\"],\"label\":[1],\"maxHeight\":[1,\"max-height\"],\"mode\":[1],\"placeholder\":[1],\"trigger\":[1],\"triggerWidth\":[1,\"trigger-width\"],\"triggerVariant\":[1,\"trigger-variant\"],\"chipSentiment\":[1,\"chip-sentiment\"],\"chipLarge\":[4,\"chip-large\"],\"chipIcon\":[1,\"chip-icon\"],\"chipDot\":[4,\"chip-dot\"],\"value\":[1025],\"displayText\":[32],\"filteredItems\":[32],\"highlightedIndex\":[32],\"isOpen\":[32],\"selectedOption\":[32],\"selectedOptionLayoutContent\":[32],\"selectedOptionChipProps\":[32],\"setFocus\":[64],\"getSelectedValue\":[64]},null,{\"value\":[\"handleValueChange\"],\"selectedOption\":[\"handleSelectedOptionChange\"]}]]],[\"pds-copytext.cjs\",[[257,\"pds-copytext\",{\"border\":[516],\"componentId\":[1,\"component-id\"],\"fullWidth\":[4,\"full-width\"],\"truncate\":[4],\"value\":[1]}]]],[\"pds-table-head.cjs\",[[257,\"pds-table-head\",{\"indeterminate\":[1028],\"isSelected\":[1028,\"is-selected\"],\"border\":[516],\"background\":[516]}]]],[\"pds-table-row.cjs\",[[257,\"pds-table-row\",{\"indeterminate\":[1028],\"isSelected\":[1028,\"is-selected\"],\"hasDivider\":[32],\"isLastRow\":[32]}]]],[\"pds-dropdown-menu-item.cjs\",[[257,\"pds-dropdown-menu-item\",{\"componentId\":[1,\"component-id\"],\"destructive\":[4],\"disabled\":[4],\"href\":[1],\"hasFocus\":[32],\"clickItem\":[64]}]]],[\"pds-property.cjs\",[[257,\"pds-property\",{\"componentId\":[1,\"component-id\"],\"icon\":[1]}]]],[\"pds-accordion.cjs\",[[257,\"pds-accordion\",{\"componentId\":[1,\"component-id\"],\"isOpen\":[1540,\"open\"]},null,{\"isOpen\":[\"handleOpenState\"]}]]],[\"pds-avatar.cjs\",[[257,\"pds-avatar\",{\"alt\":[1],\"badge\":[4],\"componentId\":[1,\"component-id\"],\"dropdown\":[4],\"image\":[1],\"initials\":[1],\"size\":[513],\"variant\":[513]}]]],[\"pds-dropdown-menu.cjs\",[[257,\"pds-dropdown-menu\",{\"componentId\":[1,\"component-id\"],\"placement\":[1],\"currentFocusIndex\":[32]},[[8,\"keydown\",\"handleKeyDown\"],[8,\"click\",\"handleWindowClick\"]]]]],[\"pds-filter.cjs\",[[257,\"pds-filter\",{\"componentId\":[1,\"component-id\"],\"variant\":[1],\"icon\":[1],\"text\":[1],\"isOpen\":[32],\"showFilter\":[64],\"hideFilter\":[64]},[[9,\"resize\",\"handleWindowResize\"],[9,\"scroll\",\"handleWindowScroll\"],[4,\"toggle\",\"handlePopoverToggle\"],[4,\"click\",\"handleDocumentClick\"],[4,\"keydown\",\"handleEscapeKey\"]]]]],[\"pds-input.cjs\",[[321,\"pds-input\",{\"autocomplete\":[1],\"componentId\":[1,\"component-id\"],\"debounce\":[2],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"invalid\":[4],\"label\":[1],\"hideLabel\":[4,\"hide-label\"],\"max\":[1],\"maxlength\":[1],\"min\":[1],\"minlength\":[1],\"name\":[1],\"pattern\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"step\":[1],\"type\":[1],\"value\":[1032],\"fullWidth\":[4,\"full-width\"],\"highlight\":[516],\"hasPrefix\":[32],\"hasSuffix\":[32],\"hasPrepend\":[32],\"hasAppend\":[32],\"hasAction\":[32],\"hasFocus\":[32],\"setFocus\":[64]},null,{\"debounce\":[\"debounceChanged\"],\"value\":[\"valueChanged\"]}]]],[\"pds-radio.cjs\",[[262,\"pds-radio\",{\"checked\":[4],\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"hasBorder\":[4,\"has-border\"],\"invalid\":[4],\"label\":[1],\"hideLabel\":[4,\"hide-label\"],\"name\":[1],\"required\":[4],\"value\":[1],\"_hasImage\":[32]}]]],[\"pds-radio-group.cjs\",[[262,\"pds-radio-group\",{\"componentId\":[1,\"component-id\"],\"direction\":[1],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"gap\":[1],\"disabled\":[4],\"invalid\":[4],\"groupLabel\":[1,\"group-label\"],\"name\":[1],\"required\":[4]},[[0,\"change\",\"handleRadioChange\"]],{\"name\":[\"handlePropsChange\"],\"disabled\":[\"handlePropsChange\"],\"invalid\":[\"handlePropsChange\"],\"required\":[\"handlePropsChange\"]}]]],[\"pds-select.cjs\",[[321,\"pds-select\",{\"autocomplete\":[1],\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"hideLabel\":[4,\"hide-label\"],\"helperMessage\":[1,\"helper-message\"],\"invalid\":[4],\"label\":[1],\"multiple\":[4],\"name\":[1],\"required\":[4],\"highlight\":[516],\"value\":[1025]},null,{\"value\":[\"valueChanged\"],\"multiple\":[\"multipleChanged\"]}]]],[\"pds-sortable-item.cjs\",[[262,\"pds-sortable-item\",{\"enableActions\":[4,\"enable-actions\"],\"componentId\":[1,\"component-id\"],\"showHandle\":[1028,\"show-handle\"]}]]],[\"pds-switch.cjs\",[[321,\"pds-switch\",{\"componentId\":[1,\"component-id\"],\"checked\":[1028],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"hideLabel\":[4,\"hide-label\"],\"helperMessage\":[1,\"helper-message\"],\"invalid\":[4],\"label\":[1],\"name\":[1],\"required\":[4],\"value\":[1]},null,{\"checked\":[\"checkedChanged\"]}]]],[\"pds-textarea.cjs\",[[321,\"pds-textarea\",{\"autocomplete\":[1],\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"debounce\":[2],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"invalid\":[1028],\"label\":[1],\"hideLabel\":[4,\"hide-label\"],\"name\":[1],\"placeholder\":[1],\"readonly\":[4],\"required\":[4],\"rows\":[2],\"maxLength\":[514,\"max-length\"],\"highlight\":[516],\"value\":[1025],\"hasFocus\":[32],\"hasAction\":[32],\"setFocus\":[64]},null,{\"debounce\":[\"debounceChanged\"],\"value\":[\"valueChanged\"],\"maxLength\":[\"maxLengthChanged\"]}]]],[\"pds-toast.cjs\",[[257,\"pds-toast\",{\"componentId\":[1,\"component-id\"],\"dismissible\":[4],\"duration\":[2],\"icon\":[1],\"type\":[1],\"isVisible\":[32],\"isAnimatingOut\":[32],\"dismiss\":[64]},null,{\"duration\":[\"handleDurationChange\"]}]]],[\"mock-pds-modal.cjs\",[[260,\"mock-pds-modal\",{\"componentId\":[1,\"component-id\"],\"size\":[1],\"scrollable\":[4],\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"open\":[1028],\"showModal\":[64],\"hideModal\":[64]}]]],[\"pds-divider.cjs\",[[257,\"pds-divider\",{\"componentId\":[1,\"component-id\"],\"offset\":[1],\"vertical\":[4]}]]],[\"pds-dropdown-menu-separator.cjs\",[[257,\"pds-dropdown-menu-separator\",{\"componentId\":[1,\"component-id\"],\"disabled\":[4]}]]],[\"pds-filters.cjs\",[[257,\"pds-filters\",{\"componentId\":[1,\"component-id\"]}]]],[\"pds-image.cjs\",[[257,\"pds-image\",{\"alt\":[1],\"componentId\":[1,\"component-id\"],\"height\":[2],\"loading\":[1],\"sizes\":[1],\"src\":[1],\"srcset\":[1],\"width\":[2]}]]],[\"pds-modal.cjs\",[[260,\"pds-modal\",{\"backdropDismiss\":[4,\"backdrop-dismiss\"],\"componentId\":[1,\"component-id\"],\"open\":[1028],\"size\":[1],\"scrollable\":[4],\"focusableElementsArray\":[32],\"showModal\":[64],\"hideModal\":[64]},null,{\"open\":[\"handleOpenChange\"]}]]],[\"pds-modal-content.cjs\",[[260,\"pds-modal-content\",{\"border\":[1537],\"contentMaxHeight\":[32]}]]],[\"pds-modal-footer.cjs\",[[260,\"pds-modal-footer\"]]],[\"pds-modal-header.cjs\",[[260,\"pds-modal-header\"]]],[\"pds-popover.cjs\",[[257,\"pds-popover\",{\"popoverTargetAction\":[1,\"popover-target-action\"],\"popoverType\":[1,\"popover-type\"],\"componentId\":[1,\"component-id\"],\"maxWidth\":[2,\"max-width\"],\"placement\":[513],\"active\":[32],\"show\":[64],\"hide\":[64],\"toggle\":[64]}]]],[\"pds-progress.cjs\",[[257,\"pds-progress\",{\"animated\":[4],\"componentId\":[1,\"component-id\"],\"fillColor\":[1,\"fill-color\"],\"label\":[1],\"percent\":[2],\"showPercent\":[4,\"show-percent\"]}]]],[\"pds-row.cjs\",[[256,\"pds-row\",{\"alignItems\":[1,\"align-items\"],\"border\":[4],\"colGap\":[1,\"col-gap\"],\"colGapBlock\":[1,\"col-gap-block\"],\"colGapInline\":[1,\"col-gap-inline\"],\"componentId\":[1,\"component-id\"],\"justifyContent\":[1,\"justify-content\"],\"minHeight\":[1,\"min-height\"],\"noWrap\":[4,\"no-wrap\"]}]]],[\"pds-sortable.cjs\",[[262,\"pds-sortable\",{\"border\":[516],\"componentId\":[1,\"component-id\"],\"dividers\":[516],\"handleType\":[1,\"handle-type\"]}]]],[\"pds-tab.cjs\",[[260,\"pds-tab\",{\"disabled\":[4],\"name\":[1],\"parentComponentId\":[1,\"parent-component-id\"],\"variant\":[1],\"index\":[2],\"selected\":[4]}]]],[\"pds-table.cjs\",[[257,\"pds-table\",{\"compact\":[4],\"componentId\":[1,\"component-id\"],\"responsive\":[4],\"fixedColumn\":[4,\"fixed-column\"],\"selectable\":[4],\"rowDividers\":[516,\"row-dividers\"],\"defaultSortColumn\":[1,\"default-sort-column\"],\"defaultSortDirection\":[1,\"default-sort-direction\"],\"sortingColumn\":[32],\"sortingDirection\":[32]},[[0,\"pdsTableSort\",\"handleTableSort\"],[0,\"pdsTableSelectAll\",\"handleTableSelectAll\"],[0,\"pdsTableRowSelected\",\"handleTableSelect\"]]]]],[\"pds-table-body.cjs\",[[257,\"pds-table-body\"]]],[\"pds-tabpanel.cjs\",[[260,\"pds-tabpanel\",{\"name\":[1],\"parentComponentId\":[1,\"parent-component-id\"],\"variant\":[1],\"selected\":[1028]}]]],[\"pds-tabs.cjs\",[[257,\"pds-tabs\",{\"tablistLabel\":[1,\"tablist-label\"],\"componentId\":[1,\"component-id\"],\"variant\":[1],\"activeTabName\":[1025,\"active-tab-name\"],\"activeTabIndex\":[1026,\"active-tab-index\"]},[[16,\"pdsTabClick\",\"tabClickHandler\"],[0,\"keydown\",\"handleKeyDown\"]]]]],[\"pds-tooltip.cjs\",[[260,\"pds-tooltip\",{\"content\":[1],\"componentId\":[1,\"component-id\"],\"hasArrow\":[4,\"has-arrow\"],\"htmlContent\":[4,\"html-content\"],\"placement\":[513],\"maxWidth\":[1,\"max-width\"],\"opened\":[1540],\"_isInteractiveOpen\":[32],\"showTooltip\":[64],\"hideTooltip\":[64]},null,{\"opened\":[\"handleOpenToggle\"]}]]],[\"pds-icon.cjs\",[[257,\"pds-icon\",{\"color\":[1],\"flipRtl\":[4,\"flip-rtl\"],\"icon\":[8],\"name\":[513],\"size\":[513],\"src\":[1],\"ariaLabel\":[32],\"isVisible\":[32],\"svgContent\":[32]},null,{\"size\":[\"updateStyles\"],\"color\":[\"updateStyles\"],\"name\":[\"onIconPropertyChange\"],\"src\":[\"onIconPropertyChange\"],\"icon\":[\"onIconPropertyChange\"]}]]],[\"pds-button.cjs\",[[257,\"pds-button\",{\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"fullWidth\":[4,\"full-width\"],\"href\":[1],\"icon\":[1],\"iconOnly\":[4,\"icon-only\"],\"loading\":[4],\"name\":[1],\"target\":[1],\"type\":[1],\"value\":[1],\"size\":[1],\"variant\":[1]},[[16,\"keydown\",\"handleFormKeyDown\"]]]]],[\"pds-chip.cjs\",[[257,\"pds-chip\",{\"componentId\":[1,\"component-id\"],\"dot\":[4],\"icon\":[1],\"large\":[4],\"sentiment\":[1],\"variant\":[1]}]]],[\"pds-link.cjs\",[[257,\"pds-link\",{\"color\":[1],\"componentId\":[1,\"component-id\"],\"external\":[4],\"variant\":[1],\"fontSize\":[1,\"font-size\"],\"href\":[1]}]]],[\"pds-table-head-cell.cjs\",[[257,\"pds-table-head-cell\",{\"cellAlign\":[1,\"cell-align\"],\"sortable\":[4],\"sortingDirection\":[32],\"tableScrolling\":[32],\"isSelected\":[32],\"hasHeadBorder\":[32],\"hasHeadBackground\":[32],\"setActiveSort\":[64]}]]],[\"pds-table-cell.cjs\",[[257,\"pds-table-cell\",{\"cellAlign\":[1,\"cell-align\"],\"truncate\":[4],\"tableScrolling\":[32]}]]],[\"pds-text.cjs\",[[257,\"pds-text\",{\"align\":[1],\"color\":[1],\"decoration\":[1],\"gutter\":[1],\"italic\":[4],\"size\":[1],\"weight\":[1],\"tag\":[1],\"truncate\":[516]}]]],[\"pds-checkbox.cjs\",[[321,\"pds-checkbox\",{\"checked\":[1028],\"componentId\":[1,\"component-id\"],\"disabled\":[4],\"errorMessage\":[1,\"error-message\"],\"helperMessage\":[1,\"helper-message\"],\"indeterminate\":[1028],\"invalid\":[4],\"label\":[1],\"hideLabel\":[4,\"hide-label\"],\"name\":[1],\"required\":[4],\"value\":[1]},null,{\"checked\":[\"updateIndeterminate\",\"checkedChanged\"]}]]],[\"pds-loader.cjs\",[[257,\"pds-loader\",{\"isLoading\":[4,\"is-loading\"],\"showLabel\":[4,\"show-label\"],\"size\":[513],\"variant\":[1]}]]],[\"pds-box.cjs\",[[256,\"pds-box\",{\"alignItems\":[1,\"align-items\"],\"alignItemsXs\":[1,\"align-items-xs\"],\"alignItemsSm\":[1,\"align-items-sm\"],\"alignItemsMd\":[1,\"align-items-md\"],\"alignItemsLg\":[1,\"align-items-lg\"],\"alignItemsXl\":[1,\"align-items-xl\"],\"alignSelf\":[1,\"align-self\"],\"alignSelfXs\":[1,\"align-self-xs\"],\"alignSelfSm\":[1,\"align-self-sm\"],\"alignSelfMd\":[1,\"align-self-md\"],\"alignSelfLg\":[1,\"align-self-lg\"],\"alignSelfXl\":[1,\"align-self-xl\"],\"auto\":[4],\"autoXs\":[4,\"auto-xs\"],\"autoSm\":[4,\"auto-sm\"],\"autoMd\":[4,\"auto-md\"],\"autoLg\":[4,\"auto-lg\"],\"autoXl\":[4,\"auto-xl\"],\"backgroundColor\":[1,\"background-color\"],\"border\":[4],\"borderColor\":[1,\"border-color\"],\"borderRadius\":[1,\"border-radius\"],\"direction\":[1],\"display\":[1],\"fit\":[4],\"fitXs\":[4,\"fit-xs\"],\"fitSm\":[4,\"fit-sm\"],\"fitMd\":[4,\"fit-md\"],\"fitLg\":[4,\"fit-lg\"],\"fitXl\":[4,\"fit-xl\"],\"gap\":[1],\"gapXs\":[1,\"gap-xs\"],\"gapSm\":[1,\"gap-sm\"],\"gapMd\":[1,\"gap-md\"],\"gapLg\":[1,\"gap-lg\"],\"gapXl\":[1,\"gap-xl\"],\"wrap\":[4],\"wrapXs\":[4,\"wrap-xs\"],\"wrapSm\":[4,\"wrap-sm\"],\"wrapMd\":[4,\"wrap-md\"],\"wrapLg\":[4,\"wrap-lg\"],\"wrapXl\":[4,\"wrap-xl\"],\"flex\":[1],\"justifyContent\":[1,\"justify-content\"],\"justifyContentXs\":[1,\"justify-content-xs\"],\"justifyContentSm\":[1,\"justify-content-sm\"],\"justifyContentMd\":[1,\"justify-content-md\"],\"justifyContentLg\":[1,\"justify-content-lg\"],\"justifyContentXl\":[1,\"justify-content-xl\"],\"marginBlockStart\":[1,\"margin-block-start\"],\"marginBlockStartXs\":[1,\"margin-block-start-xs\"],\"marginBlockStartSm\":[1,\"margin-block-start-sm\"],\"marginBlockStartMd\":[1,\"margin-block-start-md\"],\"marginBlockStartLg\":[1,\"margin-block-start-lg\"],\"marginBlockStartXl\":[1,\"margin-block-start-xl\"],\"marginInlineStart\":[1,\"margin-inline-start\"],\"marginInlineStartXs\":[1,\"margin-inline-start-xs\"],\"marginInlineStartSm\":[1,\"margin-inline-start-sm\"],\"marginInlineStartMd\":[1,\"margin-inline-start-md\"],\"marginInlineStartLg\":[1,\"margin-inline-start-lg\"],\"marginInlineStartXl\":[1,\"margin-inline-start-xl\"],\"marginInlineEnd\":[1,\"margin-inline-end\"],\"marginInlineEndXs\":[1,\"margin-inline-end-xs\"],\"marginInlineEndSm\":[1,\"margin-inline-end-sm\"],\"marginInlineEndMd\":[1,\"margin-inline-end-md\"],\"marginInlineEndLg\":[1,\"margin-inline-end-lg\"],\"marginInlineEndXl\":[1,\"margin-inline-end-xl\"],\"marginBlockEnd\":[1,\"margin-block-end\"],\"marginBlockEndXs\":[1,\"margin-block-end-xs\"],\"marginBlockEndSm\":[1,\"margin-block-end-sm\"],\"marginBlockEndMd\":[1,\"margin-block-end-md\"],\"marginBlockEndLg\":[1,\"margin-block-end-lg\"],\"marginBlockEndXl\":[1,\"margin-block-end-xl\"],\"minHeight\":[513,\"min-height\"],\"minWidth\":[513,\"min-width\"],\"offset\":[1],\"offsetXs\":[1,\"offset-xs\"],\"offsetSm\":[1,\"offset-sm\"],\"offsetMd\":[1,\"offset-md\"],\"offsetLg\":[1,\"offset-lg\"],\"offsetXl\":[1,\"offset-xl\"],\"padding\":[1],\"paddingXs\":[1,\"padding-xs\"],\"paddingSm\":[1,\"padding-sm\"],\"paddingMd\":[1,\"padding-md\"],\"paddingLg\":[1,\"padding-lg\"],\"paddingXl\":[1,\"padding-xl\"],\"paddingBlockStart\":[1,\"padding-block-start\"],\"paddingBlockStartXs\":[1,\"padding-block-start-xs\"],\"paddingBlockStartSm\":[1,\"padding-block-start-sm\"],\"paddingBlockStartMd\":[1,\"padding-block-start-md\"],\"paddingBlockStartLg\":[1,\"padding-block-start-lg\"],\"paddingBlockStartXl\":[1,\"padding-block-start-xl\"],\"paddingBlockEnd\":[1,\"padding-block-end\"],\"paddingBlockEndXs\":[1,\"padding-block-end-xs\"],\"paddingBlockEndSm\":[1,\"padding-block-end-sm\"],\"paddingBlockEndMd\":[1,\"padding-block-end-md\"],\"paddingBlockEndLg\":[1,\"padding-block-end-lg\"],\"paddingBlockEndXl\":[1,\"padding-block-end-xl\"],\"paddingInlineStart\":[1,\"padding-inline-start\"],\"paddingInlineStartXs\":[1,\"padding-inline-start-xs\"],\"paddingInlineStartSm\":[1,\"padding-inline-start-sm\"],\"paddingInlineStartMd\":[1,\"padding-inline-start-md\"],\"paddingInlineStartLg\":[1,\"padding-inline-start-lg\"],\"paddingInlineStartXl\":[1,\"padding-inline-start-xl\"],\"paddingInlineEnd\":[1,\"padding-inline-end\"],\"paddingInlineEndXs\":[1,\"padding-inline-end-xs\"],\"paddingInlineEndSm\":[1,\"padding-inline-end-sm\"],\"paddingInlineEndMd\":[1,\"padding-inline-end-md\"],\"paddingInlineEndLg\":[1,\"padding-inline-end-lg\"],\"paddingInlineEndXl\":[1,\"padding-inline-end-xl\"],\"shadow\":[1],\"size\":[1],\"sizeXs\":[1,\"size-xs\"],\"sizeSm\":[1,\"size-sm\"],\"sizeMd\":[1,\"size-md\"],\"sizeLg\":[1,\"size-lg\"],\"sizeXl\":[1,\"size-xl\"]}]]]]"), options);
9
9
  };
10
10
 
11
11
  exports.setNonce = index.setNonce;