@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
- {"version":3,"file":"pds-table.js","sourceRoot":"","sources":["../../../../src/components/pds-table/pds-table.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOtG,MAAM,OAAO,QAAQ;IALrB;QAOU,oBAAe,GAAuB,IAAI,CAAC;QAC3C,4BAAuB,GAAwB,IAAI,CAAC;QACpD,4BAAuB,GAAwB,IAAI,CAAC;QACpD,8BAAyB,GAA0B,IAAI,CAAC;QACxD,wBAAmB,GAAwB,IAAI,CAAC;QA2BxD;;;WAGG;QACM,kBAAa,GAAkB,IAAI,CAAC;QAE7C;;;WAGG;QACM,qBAAgB,GAAmB,KAAK,CAAC;KA0PnD;IA7OC,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,wBAAwB;;QAC9B,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,iCAAiC,CAAgB,CAAC;QACtG,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,qBAAqB,CAAgB,CAAC;QAC3F,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,sBAAsB,CAAgB,CAAC;QAE7F,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW;YAAE,OAAO;QAEtD,wCAAwC;QACxC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC;;;;WAIG;QACH,IAAI,CAAC,uBAAuB,GAAG,GAAG,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAElC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;YACnD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;YAE1F,oFAAoF;YACpF,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAE7E,qEAAqE;YACrE,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,UAAU,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChG,CAAC,CAAC;QAEF,iDAAiD;QACjD,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjG,oEAAoE;QACpE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACH,IAAI,CAAC,yBAAyB,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;;oBACvD,MAAA,IAAI,CAAC,uBAAuB,oDAAI,CAAC;gBACnC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kEAAkE;gBAClE,2CAA2C;YAC7C,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,GAAG,GAAG,EAAE;;gBAClC,MAAA,IAAI,CAAC,uBAAuB,oDAAI,CAAC;YACnC,CAAC,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAClE,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE;YAC9B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACjF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC;YAED,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACnC,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACxC,CAAC;YAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAClE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACnE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACtC,CAAC;YAED,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACtC,CAAC,CAAC;QAEF,4BAA4B;QAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAGO,UAAU;QAChB,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,SAAS,CAAC,MAAc,EAAE,SAAyB;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAE1D,iCAAiC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;QAE1E,iDAAiD;QACjD,MAAM,iBAAiB,GAAkB,KAAK,CAAC,IAAI,CACjD,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAC1D,CAAC;QAEF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAC7C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,MAAM,CAC3C,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,cAAc,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAEhE,6DAA6D;QAC7D,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,4BAA4B,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAClG,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,4BAA4B,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAElG,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;QACzB,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,eAAe,CAAC,KAAiE;QAC/E,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACpC,CAAC;IAGD,oBAAoB,CAAC,KAA2C;QAC9D,IAAI,KAAK,CAAC,gBAAgB;YAAE,OAAO;QAEnC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;QAE7E,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,KAAK,CAAC,iBAAiB,CAAC,KAA6D;QACnF,IAAI,KAAK,CAAC,gBAAgB;YAAE,OAAO;QAEnC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAC7E,cAAc,CAAC,OAAO,GAAG,eAAe,CAAC;QACzC,cAAc,CAAC,aAAa,GAAG,CAAC,eAAe,IAAI,CAAC,gBAAgB,CAAC;IACvE,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAC,mDAAmD,EACzD,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,IAAI,EAAC,MAAM,EACX,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,QAAQ,EAAC,GAAG,EACZ,IAAI,EAAC,wBAAwB;gBAE7B,WAAK,KAAK,EAAC,oBAAoB,EAAC,IAAI,EAAC,oBAAoB,GAAO;gBAChE,WAAK,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAC,qBAAqB,GAAO;gBAClE,WAAK,KAAK,EAAC,gCAAgC,EAAC,IAAI,EAAC,sBAAsB;oBACrE,WAAK,KAAK,EAAC,8BAA8B,EAAC,IAAI,EAAC,oBAAoB;wBACjE,WAAK,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAC,aAAa;4BAC/C,eAAa,CACT,CACF,CACF,CACD,CACR,CAAC;QACJ,CAAC;QAED,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,IAAI,EAAC,MAAM,EACX,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,QAAQ,EAAC,GAAG,EACZ,IAAI,EAAC,OAAO;YAEZ,eAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, EventEmitter, Host, h, Prop, State, Listen } from '@stencil/core';\n\n@Component({\n tag: 'pds-table',\n styleUrls: ['pds-table.scss'],\n shadow: true,\n})\nexport class PdsTable {\n @Element() el: HTMLPdsTableElement;\n private scrollContainer: HTMLElement | null = null;\n private _responsiveHandleScroll: (() => void) | null = null;\n private _responsiveHandleResize: (() => void) | null = null;\n private _responsiveResizeObserver: ResizeObserver | null = null;\n private _teardownResponsive: (() => void) | null = null;\n\n /**\n * Determines if the table displays with reduced table cell padding.\n */\n @Prop() compact: boolean;\n\n /**\n * A unique identifier used for the table `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Enables the table to be responsive by horizontally scrolling on smaller screens.\n */\n @Prop() responsive: boolean;\n\n /**\n * Determines if the should display a fixed first column.\n */\n @Prop() fixedColumn: boolean;\n\n /**\n * Determines if the table displays checkboxes for selectable rows.\n */\n @Prop() selectable: boolean;\n\n /**\n * 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"]}
1
+ {"version":3,"file":"pds-table.js","sourceRoot":"","sources":["../../../../src/components/pds-table/pds-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, Host, h, Prop, State, Listen } from '@stencil/core';\n\n@Component({\n tag: 'pds-table',\n styleUrls: ['pds-table.scss'],\n shadow: true,\n})\nexport class PdsTable {\n @Element() el: HTMLPdsTableElement;\n private scrollContainer: HTMLElement | null = null;\n private _responsiveHandleScroll: (() => void) | null = null;\n private _responsiveHandleResize: (() => void) | null = null;\n private _responsiveResizeObserver: ResizeObserver | null = null;\n private _teardownResponsive: (() => void) | null = null;\n\n /**\n * Determines if the table displays with reduced table cell padding.\n */\n @Prop() compact: boolean;\n\n /**\n * A unique identifier used for the table `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Enables the table to be responsive by horizontally scrolling on smaller screens.\n */\n @Prop() responsive: boolean;\n\n /**\n * Determines if the should display a fixed first column.\n */\n @Prop() fixedColumn: boolean;\n\n /**\n * Determines if the table displays checkboxes for selectable rows.\n */\n @Prop() selectable: boolean;\n\n /**\n * 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"]}
@@ -2,10 +2,44 @@ import { html } from 'lit-html';
2
2
 
3
3
 
4
4
  export default {
5
-
6
5
  component: 'pds-table',
7
6
  parameters: {},
8
7
  title: 'components/Table',
8
+ argTypes: {
9
+ border: {
10
+ control: { type: 'boolean' },
11
+ description: 'Adds top and bottom borders to the table head',
12
+ table: {
13
+ category: 'Table Head',
14
+ },
15
+ },
16
+ background: {
17
+ control: { type: 'boolean' },
18
+ description: 'Adds a subtle background color to the table head',
19
+ table: {
20
+ category: 'Table Head',
21
+ },
22
+ },
23
+ rowDividers: {
24
+ control: { type: 'boolean' },
25
+ description: 'Adds divider borders between table rows. The last row will not have a bottom border',
26
+ },
27
+ defaultSortColumn: {
28
+ control: { type: 'text' },
29
+ description: 'The name of the column to sort by on initial load. Must match the text content of a sortable column header.',
30
+ table: {
31
+ category: 'Sorting',
32
+ },
33
+ },
34
+ defaultSortDirection: {
35
+ control: { type: 'select' },
36
+ options: ['asc', 'desc'],
37
+ description: 'The direction to sort the default column on initial load.',
38
+ table: {
39
+ category: 'Sorting',
40
+ },
41
+ },
42
+ },
9
43
  };
10
44
 
11
45
  const BaseTemplate = (args) => html`
@@ -14,9 +48,13 @@ const BaseTemplate = (args) => html`
14
48
  component-id="${args.componentId}"
15
49
  ?fixed-column=${args.fixedColumn}
16
50
  ?responsive=${args.responsive}
51
+ ?row-dividers=${args.rowDividers}
17
52
  ?selectable=${args.selectable}
18
53
  >
19
- <pds-table-head>
54
+ <pds-table-head
55
+ ?border=${args.border}
56
+ ?background=${args.background}
57
+ >
20
58
  <pds-table-head-cell>Column Title</pds-table-head-cell>
21
59
  <pds-table-head-cell>Column Title</pds-table-head-cell>
22
60
  <pds-table-head-cell>Column Title</pds-table-head-cell>
@@ -46,9 +84,13 @@ const AlignmentTemplate = (args) => html`
46
84
  component-id="${args.componentId}"
47
85
  ?fixed-column=${args.fixedColumn}
48
86
  ?responsive=${args.responsive}
87
+ ?row-dividers=${args.rowDividers}
49
88
  ?selectable=${args.selectable}
50
89
  >
51
- <pds-table-head>
90
+ <pds-table-head
91
+ ?border=${args.border}
92
+ ?background=${args.background}
93
+ >
52
94
  <pds-table-head-cell cell-align="start">Name</pds-table-head-cell>
53
95
  <pds-table-head-cell cell-align="center">Amount</pds-table-head-cell>
54
96
  <pds-table-head-cell cell-align="end">Status</pds-table-head-cell>
@@ -82,9 +124,13 @@ const ResponsiveTemplate = (args) => html`
82
124
  component-id="${args.componentId}"
83
125
  ?fixed-column=${args.fixedColumn}
84
126
  ?responsive=${args.responsive}
127
+ ?row-dividers=${args.rowDividers}
85
128
  ?selectable=${args.selectable}
86
129
  >
87
- <pds-table-head>
130
+ <pds-table-head
131
+ ?border=${args.border}
132
+ ?background=${args.background}
133
+ >
88
134
  <pds-table-head-cell>Column Title</pds-table-head-cell>
89
135
  <pds-table-head-cell>Column Title</pds-table-head-cell>
90
136
  <pds-table-head-cell>Column Title</pds-table-head-cell>
@@ -150,9 +196,13 @@ const SortableTemplate = (args) => html`
150
196
  component-id="${args.componentId}"
151
197
  ?fixed-column=${args.fixedColumn}
152
198
  ?responsive=${args.responsive}
199
+ ?row-dividers=${args.rowDividers}
153
200
  ?selectable=${args.selectable}
154
201
  >
155
- <pds-table-head>
202
+ <pds-table-head
203
+ ?border=${args.border}
204
+ ?background=${args.background}
205
+ >
156
206
  <pds-table-head-cell sortable=${args.sortable}>Name</pds-table-head-cell>
157
207
  <pds-table-head-cell sortable=${args.sortable}>Email</pds-table-head-cell>
158
208
  <pds-table-head-cell sortable=${args.sortable}>Email Marketing</pds-table-head-cell>
@@ -201,12 +251,63 @@ const SortableTemplate = (args) => html`
201
251
  </pds-table-body>
202
252
  </pds-table>`;
203
253
 
254
+ const DefaultSortTemplate = (args) => html`
255
+ <pds-table
256
+ ?compact=${args.compact}
257
+ component-id="${args.componentId}"
258
+ ?fixed-column=${args.fixedColumn}
259
+ ?responsive=${args.responsive}
260
+ ?row-dividers=${args.rowDividers}
261
+ ?selectable=${args.selectable}
262
+ default-sort-column="${args.defaultSortColumn}"
263
+ default-sort-direction="${args.defaultSortDirection}"
264
+ >
265
+ <pds-table-head
266
+ ?border=${args.border}
267
+ ?background=${args.background}
268
+ >
269
+ <pds-table-head-cell sortable>Name</pds-table-head-cell>
270
+ <pds-table-head-cell sortable>Email</pds-table-head-cell>
271
+ <pds-table-head-cell sortable>Account</pds-table-head-cell>
272
+ </pds-table-head>
273
+ <pds-table-body>
274
+ <pds-table-row>
275
+ <pds-table-cell>John Doe</pds-table-cell>
276
+ <pds-table-cell>john.doe@example.com</pds-table-cell>
277
+ <pds-table-cell>47321</pds-table-cell>
278
+ </pds-table-row>
279
+ <pds-table-row>
280
+ <pds-table-cell>Jane Smith</pds-table-cell>
281
+ <pds-table-cell>jane.smith@example.com</pds-table-cell>
282
+ <pds-table-cell>89654</pds-table-cell>
283
+ </pds-table-row>
284
+ <pds-table-row>
285
+ <pds-table-cell>Michael Johnson</pds-table-cell>
286
+ <pds-table-cell>michael.johnson@example.com</pds-table-cell>
287
+ <pds-table-cell>21578</pds-table-cell>
288
+ </pds-table-row>
289
+ <pds-table-row>
290
+ <pds-table-cell>Susan Brown</pds-table-cell>
291
+ <pds-table-cell>susan.brown@example.com</pds-table-cell>
292
+ <pds-table-cell>63920</pds-table-cell>
293
+ </pds-table-row>
294
+ <pds-table-row>
295
+ <pds-table-cell>William Davis</pds-table-cell>
296
+ <pds-table-cell>william.davis@example.com</pds-table-cell>
297
+ <pds-table-cell>17436</pds-table-cell>
298
+ </pds-table-row>
299
+ </pds-table-body>
300
+ </pds-table>`;
301
+
204
302
  export const Default = BaseTemplate.bind();
205
303
  Default.args = {
206
304
  compact: false,
207
305
  componentId: 'default',
208
306
  fixedColumn: false,
307
+ border: false,
308
+ background: false,
209
309
  responsive: false,
310
+ rowDividers: false,
210
311
  selectable: false,
211
312
  };
212
313
 
@@ -215,7 +316,10 @@ Alignment.args = {
215
316
  compact: false,
216
317
  componentId: 'alignment',
217
318
  fixedColumn: false,
319
+ border: false,
320
+ background: false,
218
321
  responsive: false,
322
+ rowDividers: false,
219
323
  selectable: false,
220
324
  };
221
325
 
@@ -224,7 +328,10 @@ Compact.args = {
224
328
  compact: true,
225
329
  componentId: 'compact',
226
330
  fixedColumn: false,
331
+ border: false,
332
+ background: false,
227
333
  responsive: false,
334
+ rowDividers: false,
228
335
  selectable: false,
229
336
  };
230
337
 
@@ -233,7 +340,10 @@ Selectable.args = {
233
340
  compact: false,
234
341
  componentId: 'selectable',
235
342
  fixedColumn: false,
343
+ border: false,
344
+ background: false,
236
345
  responsive: false,
346
+ rowDividers: false,
237
347
  selectable: true,
238
348
  };
239
349
 
@@ -242,7 +352,10 @@ Responsive.args = {
242
352
  compact: false,
243
353
  componentId: 'responsive',
244
354
  fixedColumn: false,
355
+ border: false,
356
+ background: false,
245
357
  responsive: true,
358
+ rowDividers: false,
246
359
  selectable: false,
247
360
  };
248
361
 
@@ -251,7 +364,10 @@ fixedColumn.args = {
251
364
  compact: false,
252
365
  componentId: 'responsive',
253
366
  fixedColumn: true,
367
+ border: false,
368
+ background: false,
254
369
  responsive: true,
370
+ rowDividers: false,
255
371
  selectable: false,
256
372
  };
257
373
 
@@ -260,7 +376,36 @@ Sortable.args = {
260
376
  compact: false,
261
377
  componentId: 'sortable',
262
378
  fixedColumn: false,
379
+ border: false,
380
+ background: false,
263
381
  responsive: false,
382
+ rowDividers: false,
264
383
  selectable: false,
265
384
  sortable: true,
266
385
  };
386
+
387
+ export const DefaultSorting = DefaultSortTemplate.bind();
388
+ DefaultSorting.args = {
389
+ compact: false,
390
+ componentId: 'default-sort',
391
+ fixedColumn: false,
392
+ border: false,
393
+ background: false,
394
+ responsive: false,
395
+ rowDividers: false,
396
+ selectable: false,
397
+ defaultSortColumn: 'Name',
398
+ defaultSortDirection: 'desc',
399
+ };
400
+
401
+ export const RowDividers = BaseTemplate.bind();
402
+ RowDividers.args = {
403
+ compact: false,
404
+ componentId: 'row-dividers',
405
+ fixedColumn: false,
406
+ border: false,
407
+ background: false,
408
+ responsive: false,
409
+ rowDividers: true,
410
+ selectable: false,
411
+ };
@@ -29,7 +29,7 @@ pds-tab {
29
29
  .pds-tab.is-active .pds-tab__content::after, .pds-tab[aria-selected=true] .pds-tab__content::after {
30
30
  opacity: 1;
31
31
  }
32
- .pds-tab:hover {
32
+ .pds-tab:hover:not(:disabled) {
33
33
  color: var(--pine-color-text);
34
34
  }
35
35
  .pds-tab:focus {
@@ -39,6 +39,11 @@ pds-tab {
39
39
  outline: var(--pine-outline-focus);
40
40
  outline-offset: var(--pine-border-width);
41
41
  }
42
+ .pds-tab:disabled, .pds-tab.is-disabled {
43
+ color: var(--pine-color-text-disabled);
44
+ cursor: not-allowed;
45
+ pointer-events: none;
46
+ }
42
47
  .pds-tab .pds-tab__content {
43
48
  font-family: var(--pine-font-family-body);
44
49
  font-size: var(--pine-font-size);
@@ -81,13 +86,17 @@ pds-tab {
81
86
  .pds-tabs--availability .pds-tab.is-active .pds-tab-edge, .pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge {
82
87
  z-index: var(--pine-z-index-raised);
83
88
  }
84
- .pds-tabs--availability .pds-tab:hover:not(.is-active, [aria-selected=true]) {
89
+ .pds-tabs--availability .pds-tab:hover:not(.is-active, [aria-selected=true], :disabled) {
85
90
  --color-background-tab: var(--pine-color-secondary-hover);
86
91
  color: var(--pine-color-text);
87
92
  }
88
93
  .pds-tabs--availability .pds-tab:focus-visible {
89
94
  color: var(--pine-color-text-secondary);
90
95
  }
96
+ .pds-tabs--availability .pds-tab:disabled, .pds-tabs--availability .pds-tab.is-disabled {
97
+ --color-background-tab: transparent;
98
+ color: var(--pine-color-text-disabled);
99
+ }
91
100
  .pds-tabs--availability .pds-tab__content {
92
101
  padding-block-end: 7px;
93
102
  }
@@ -131,12 +140,19 @@ pds-tab {
131
140
  background-color: var(--pine-color-primary);
132
141
  color: var(--pine-color-text-primary);
133
142
  }
134
- .pds-tabs--filter .pds-tab.is-active:hover, .pds-tabs--filter .pds-tab[aria-selected=true]:hover {
143
+ .pds-tabs--filter .pds-tab.is-active:hover:not(:disabled), .pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled) {
135
144
  background-color: var(--pine-color-primary-hover);
136
145
  }
137
- .pds-tabs--filter .pds-tab:hover:not(.is-active, [aria-selected=true]) {
146
+ .pds-tabs--filter .pds-tab:hover:not(.is-active, [aria-selected=true], :disabled) {
138
147
  background-color: var(--pine-color-border-disabled);
139
148
  }
149
+ .pds-tabs--filter .pds-tab:disabled, .pds-tabs--filter .pds-tab.is-disabled {
150
+ background-color: transparent;
151
+ color: var(--pine-color-text-disabled);
152
+ }
153
+ .pds-tabs--filter .pds-tab:disabled.is-active, .pds-tabs--filter .pds-tab:disabled[aria-selected=true], .pds-tabs--filter .pds-tab.is-disabled.is-active, .pds-tabs--filter .pds-tab.is-disabled[aria-selected=true] {
154
+ background-color: var(--pine-color-primary-disabled);
155
+ }
140
156
  .pds-tabs--filter .pds-tab__content {
141
157
  padding-block-end: var(--pine-dimension-none);
142
158
  }
@@ -177,4 +193,7 @@ pds-tab {
177
193
  }
178
194
  .pds-tabs--pill .pds-tab.is-active .pds-tab__content::after, .pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after {
179
195
  opacity: 0;
196
+ }
197
+ .pds-tabs--pill .pds-tab:disabled, .pds-tabs--pill .pds-tab.is-disabled {
198
+ color: var(--pine-color-text-disabled);
180
199
  }
@@ -1,6 +1,11 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  export class PdsTab {
3
3
  constructor() {
4
+ /**
5
+ * Determines the tab's disabled state.
6
+ * @defaultValue false
7
+ */
8
+ this.disabled = false;
4
9
  /**
5
10
  * Keeps track of the tabpanel selected state, this property is passed by parent component
6
11
  */
@@ -8,12 +13,22 @@ export class PdsTab {
8
13
  this.selected = false;
9
14
  }
10
15
  onTabClick(index, parentComponentId) {
16
+ if (this.disabled)
17
+ return;
11
18
  this.pdsTabClick.emit([index, parentComponentId]);
12
19
  }
20
+ classNames() {
21
+ const classes = [
22
+ 'pds-tab',
23
+ this.selected && 'is-active',
24
+ this.disabled && 'is-disabled',
25
+ ];
26
+ return classes.filter(Boolean).join(' ');
27
+ }
13
28
  render() {
14
- const availabilityTabEdgeInlineStart = (h("span", { key: 'cfdef9bad0fab8534ba50414b60cc25caa49023f', class: "pds-tab-edge", role: "presentation" }));
15
- const availabilityTabEdgeInlineEnd = (h("span", { key: '15c876cd8e99451b7005827487a0a55b54f7f527', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
16
- return (h(Host, { key: 'abac9ce94b06e8adc64dd380ec9e675ca3b86087', variant: this.variant, slot: "tabs", index: this.index }, h("button", { key: '9f3dade0443564ff3cbd09b41628677e32c3cf9c', role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.selected ? "0" : "-1", "aria-selected": this.selected ? "true" : "false", class: this.selected ? "pds-tab is-active" : "pds-tab", onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, h("div", { key: 'af3bb75eb293a46dff3fdb92217235c98c5194e1', class: "pds-tab__content" }, h("slot", { key: '2c92498bc9ad02024ff61b487c1e42c430c577c3' })))));
29
+ const availabilityTabEdgeInlineStart = (h("span", { key: '7a70cf5b681ec05215920417c4ba590fed238f63', class: "pds-tab-edge", role: "presentation" }));
30
+ const availabilityTabEdgeInlineEnd = (h("span", { key: '21a1422bb00a6221f7db1b0e77abcd024eec60cd', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
31
+ return (h(Host, { key: 'bcf73da727080cdb5b9ec7356768dd2cefab44ae', variant: this.variant, slot: "tabs", index: this.index }, h("button", { key: '25e140fc63a8ddaa44d08198f14d568bca83f16a', role: "tab", id: this.parentComponentId + "__" + this.name, "aria-controls": this.parentComponentId + "__" + this.name + "-panel", tabindex: this.disabled ? "-1" : (this.selected ? "0" : "-1"), "aria-selected": this.selected ? "true" : "false", "aria-disabled": this.disabled ? "true" : null, disabled: this.disabled, class: this.classNames(), onClick: this.onTabClick.bind(this, this.index, this.parentComponentId) }, this.variant === "availability" && availabilityTabEdgeInlineStart, this.variant === "availability" && availabilityTabEdgeInlineEnd, h("div", { key: '002252b89b74bf2ab26bb33331f4296a22a4cf70', class: "pds-tab__content" }, h("slot", { key: '1f67182b80504391a87509567cb68ca8ff6f9b22' })))));
17
32
  }
18
33
  static get is() { return "pds-tab"; }
19
34
  static get originalStyleUrls() {
@@ -28,6 +43,29 @@ export class PdsTab {
28
43
  }
29
44
  static get properties() {
30
45
  return {
46
+ "disabled": {
47
+ "type": "boolean",
48
+ "mutable": false,
49
+ "complexType": {
50
+ "original": "boolean",
51
+ "resolved": "boolean",
52
+ "references": {}
53
+ },
54
+ "required": false,
55
+ "optional": true,
56
+ "docs": {
57
+ "tags": [{
58
+ "name": "defaultValue",
59
+ "text": "false"
60
+ }],
61
+ "text": "Determines the tab's disabled state."
62
+ },
63
+ "getter": false,
64
+ "setter": false,
65
+ "reflect": false,
66
+ "attribute": "disabled",
67
+ "defaultValue": "false"
68
+ },
31
69
  "name": {
32
70
  "type": "string",
33
71
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"pds-tab.js","sourceRoot":"","sources":["../../../../../src/components/pds-tabs/pds-tab/pds-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAOvF,MAAM,OAAO,MAAM;IALnB;QA+BE;;WAEG;QACH,gBAAgB;QACR,aAAQ,GAAG,KAAK,CAAC;KAsC1B;IA/BS,UAAU,CAAC,KAAK,EAAE,iBAAiB;QACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM;QACJ,MAAM,8BAA8B,GAAG,CACrC,6DAAM,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,cAAc,GAAQ,CACvD,CAAA;QAED,MAAM,4BAA4B,GAAG,CACnC,6DAAM,KAAK,EAAC,gCAAgC,EAAC,IAAI,EAAC,cAAc,GAAQ,CACzE,CAAA;QAED,OAAO,CACL,EAAC,IAAI,qDAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK;YACxD,+DACE,IAAI,EAAC,KAAK,EACV,EAAE,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,mBAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EACnE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,mBACrB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC/C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAEtE,IAAI,CAAC,OAAO,KAAK,cAAc,IAAI,8BAA8B;gBACjE,IAAI,CAAC,OAAO,KAAK,cAAc,IAAI,4BAA4B;gBAChE,4DAAK,KAAK,EAAC,kBAAkB;oBAAC,8DAAO,CAAM,CACpC,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'pds-tab',\n styleUrl: 'pds-tab.scss',\n shadow: false,\n})\nexport class PdsTab {\n @Element() el: HTMLPdsTabElement;\n\n /**\n * Sets the related tab name, this name must match a `pds-tabpanel`'s tab name property\n */\n @Prop() name!: string;\n\n /**\n * Keeps track of the parentComponentId unique id, this property is passed by parent component\n */\n /** @internal */\n @Prop() parentComponentId: string;\n\n /**\n * Keeps track of if the expected tab variant, this property is passed by parent component\n */\n /** @internal */\n @Prop() variant: string;\n\n /**\n * Keeps track of if the tab index number, this property is passed by parent component\n */\n /** @internal */\n @Prop() index: number;\n\n /**\n * Keeps track of the tabpanel selected state, this property is passed by parent component\n */\n /** @internal */\n @Prop() selected = false;\n\n /**\n * Emits an event upon tab click for `pds-tab` and `pds-tabpanel` to listen for\n */\n /** @internal */\n @Event() pdsTabClick: EventEmitter<object>;\n private onTabClick(index, parentComponentId) {\n this.pdsTabClick.emit([index, parentComponentId]);\n }\n\n render() {\n const availabilityTabEdgeInlineStart = (\n <span class=\"pds-tab-edge\" role=\"presentation\"></span>\n )\n\n const availabilityTabEdgeInlineEnd = (\n <span class=\"pds-tab-edge pds-tab-edge--end\" role=\"presentation\"></span>\n )\n\n return (\n <Host variant={this.variant} slot=\"tabs\" index={this.index}>\n <button\n role=\"tab\"\n id={this.parentComponentId + \"__\" + this.name}\n aria-controls={this.parentComponentId + \"__\" + this.name + \"-panel\"}\n tabindex={this.selected ? \"0\" : \"-1\"}\n aria-selected={this.selected ? \"true\" : \"false\"}\n class={this.selected ? \"pds-tab is-active\" : \"pds-tab\"}\n onClick={this.onTabClick.bind(this, this.index, this.parentComponentId)}\n >\n {this.variant === \"availability\" && availabilityTabEdgeInlineStart}\n {this.variant === \"availability\" && availabilityTabEdgeInlineEnd}\n <div class=\"pds-tab__content\"><slot/></div>\n </button>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"pds-tab.js","sourceRoot":"","sources":["../../../../../src/components/pds-tabs/pds-tab/pds-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAOvF,MAAM,OAAO,MAAM;IALnB;QAQE;;;WAGG;QACK,aAAQ,GAAI,KAAK,CAAC;QAyB1B;;WAEG;QACH,gBAAgB;QACR,aAAQ,GAAG,KAAK,CAAC;KAkD1B;IA3CS,UAAU,CAAC,KAAK,EAAE,iBAAiB;QACzC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACpD,CAAC;IAEO,UAAU;QAChB,MAAM,OAAO,GAAG;YACd,SAAS;YACT,IAAI,CAAC,QAAQ,IAAI,WAAW;YAC5B,IAAI,CAAC,QAAQ,IAAI,aAAa;SAC/B,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM;QACJ,MAAM,8BAA8B,GAAG,CACrC,6DAAM,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,cAAc,GAAQ,CACvD,CAAA;QAED,MAAM,4BAA4B,GAAG,CACnC,6DAAM,KAAK,EAAC,gCAAgC,EAAC,IAAI,EAAC,cAAc,GAAQ,CACzE,CAAA;QAED,OAAO,CACL,EAAC,IAAI,qDAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK;YACxD,+DACE,IAAI,EAAC,KAAK,EACV,EAAE,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,mBAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EACnE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mBAC9C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,mBAChC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAEtE,IAAI,CAAC,OAAO,KAAK,cAAc,IAAI,8BAA8B;gBACjE,IAAI,CAAC,OAAO,KAAK,cAAc,IAAI,4BAA4B;gBAChE,4DAAK,KAAK,EAAC,kBAAkB;oBAAC,8DAAO,CAAM,CACpC,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'pds-tab',\n styleUrl: 'pds-tab.scss',\n shadow: false,\n})\nexport class PdsTab {\n @Element() el: HTMLPdsTabElement;\n\n /**\n * Determines the tab's disabled state.\n * @defaultValue false\n */\n @Prop() disabled? = false;\n\n /**\n * Sets the related tab name, this name must match a `pds-tabpanel`'s tab name property\n */\n @Prop() name!: string;\n\n /**\n * Keeps track of the parentComponentId unique id, this property is passed by parent component\n */\n /** @internal */\n @Prop() parentComponentId: string;\n\n /**\n * Keeps track of if the expected tab variant, this property is passed by parent component\n */\n /** @internal */\n @Prop() variant: string;\n\n /**\n * Keeps track of if the tab index number, this property is passed by parent component\n */\n /** @internal */\n @Prop() index: number;\n\n /**\n * Keeps track of the tabpanel selected state, this property is passed by parent component\n */\n /** @internal */\n @Prop() selected = false;\n\n /**\n * Emits an event upon tab click for `pds-tab` and `pds-tabpanel` to listen for\n */\n /** @internal */\n @Event() pdsTabClick: EventEmitter<object>;\n private onTabClick(index, parentComponentId) {\n if (this.disabled) return;\n this.pdsTabClick.emit([index, parentComponentId]);\n }\n\n private classNames() {\n const classes = [\n 'pds-tab',\n this.selected && 'is-active',\n this.disabled && 'is-disabled',\n ];\n return classes.filter(Boolean).join(' ');\n }\n\n render() {\n const availabilityTabEdgeInlineStart = (\n <span class=\"pds-tab-edge\" role=\"presentation\"></span>\n )\n\n const availabilityTabEdgeInlineEnd = (\n <span class=\"pds-tab-edge pds-tab-edge--end\" role=\"presentation\"></span>\n )\n\n return (\n <Host variant={this.variant} slot=\"tabs\" index={this.index}>\n <button\n role=\"tab\"\n id={this.parentComponentId + \"__\" + this.name}\n aria-controls={this.parentComponentId + \"__\" + this.name + \"-panel\"}\n tabindex={this.disabled ? \"-1\" : (this.selected ? \"0\" : \"-1\")}\n aria-selected={this.selected ? \"true\" : \"false\"}\n aria-disabled={this.disabled ? \"true\" : null}\n disabled={this.disabled}\n class={this.classNames()}\n onClick={this.onTabClick.bind(this, this.index, this.parentComponentId)}\n >\n {this.variant === \"availability\" && availabilityTabEdgeInlineStart}\n {this.variant === \"availability\" && availabilityTabEdgeInlineEnd}\n <div class=\"pds-tab__content\"><slot/></div>\n </button>\n </Host>\n );\n }\n}\n"]}
@@ -58,13 +58,15 @@ label {
58
58
  }
59
59
 
60
60
  .pds-textarea__error-message {
61
- align-items: center;
62
61
  color: var(--pine-color-text-message-danger);
63
62
  display: flex;
64
63
  font: var(--pine-typography-body-sm-medium);
65
64
  gap: var(--pine-dimension-2xs);
66
65
  margin-block-start: var(--pine-dimension-2xs);
67
66
  }
67
+ .pds-textarea__error-message pds-icon {
68
+ margin-block-start: var(--pine-dimension-025);
69
+ }
68
70
 
69
71
  .pds-textarea__field-wrapper {
70
72
  display: inline-block;
@@ -77,6 +77,9 @@ export class PdsTextarea {
77
77
  this.onTextareaChange = (ev) => {
78
78
  this.emitValueChange(ev);
79
79
  };
80
+ this.onKeyDown = (ev) => {
81
+ this.pdsKeyDown.emit(ev);
82
+ };
80
83
  }
81
84
  /**
82
85
  * Sets focus on the native `textarea` in the `pds-textarea`. Use this method instead of the global
@@ -289,10 +292,10 @@ export class PdsTextarea {
289
292
  }
290
293
  render() {
291
294
  const value = this.getValue();
292
- 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 &&
293
- 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 &&
294
- h("p", { key: '7a4cc4c278d39c675a5e6e3d0b4a917d63441cd1', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
295
- 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))));
295
+ 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 &&
296
+ 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 &&
297
+ h("p", { key: 'abcdf1ef2aa24d0057e5b0c212c06b5324f0dd9b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
298
+ 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))));
296
299
  }
297
300
  static get is() { return "pds-textarea"; }
298
301
  static get encapsulation() { return "shadow"; }
@@ -741,6 +744,26 @@ export class PdsTextarea {
741
744
  }
742
745
  }
743
746
  }
747
+ }, {
748
+ "method": "pdsKeyDown",
749
+ "name": "pdsKeyDown",
750
+ "bubbles": true,
751
+ "cancelable": true,
752
+ "composed": true,
753
+ "docs": {
754
+ "tags": [],
755
+ "text": "Emitted when a key is pressed down in the textarea."
756
+ },
757
+ "complexType": {
758
+ "original": "KeyboardEvent",
759
+ "resolved": "KeyboardEvent",
760
+ "references": {
761
+ "KeyboardEvent": {
762
+ "location": "global",
763
+ "id": "global::KeyboardEvent"
764
+ }
765
+ }
766
+ }
744
767
  }];
745
768
  }
746
769
  static get methods() {