@pine-ds/core 3.22.1 → 3.23.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 (699) hide show
  1. package/components/floating-ui.dom.js +142 -129
  2. package/components/floating-ui.dom.js.map +1 -1
  3. package/components/form.js +14 -1
  4. package/components/form.js.map +1 -1
  5. package/components/index2.js +1 -1
  6. package/components/index2.js.map +1 -1
  7. package/components/mock-pds-modal.js +1 -1
  8. package/components/pds-alert.js +1 -1
  9. package/components/pds-alert.js.map +1 -1
  10. package/components/pds-avatar.js +1 -1
  11. package/components/pds-avatar.js.map +1 -1
  12. package/components/pds-checkbox2.js +5 -7
  13. package/components/pds-checkbox2.js.map +1 -1
  14. package/components/pds-chip2.js +1 -1
  15. package/components/pds-chip2.js.map +1 -1
  16. package/components/pds-combobox.js +46 -41
  17. package/components/pds-combobox.js.map +1 -1
  18. package/components/pds-copytext.js +1 -1
  19. package/components/pds-divider.js +1 -1
  20. package/components/pds-dropdown-menu-item.js +1 -1
  21. package/components/pds-dropdown-menu-item.js.map +1 -1
  22. package/components/pds-dropdown-menu-separator.js +1 -1
  23. package/components/pds-dropdown-menu.js +1 -1
  24. package/components/pds-filter.js +1 -1
  25. package/components/pds-filters.js +1 -1
  26. package/components/pds-image.js +2 -2
  27. package/components/pds-input.js +4 -2
  28. package/components/pds-input.js.map +1 -1
  29. package/components/pds-link2.js +2 -2
  30. package/components/pds-loader2.js +1 -1
  31. package/components/pds-modal-content.js +2 -2
  32. package/components/pds-modal-footer.js +1 -1
  33. package/components/pds-modal-header.js +1 -1
  34. package/components/pds-modal.js +3 -3
  35. package/components/pds-multiselect.js +199 -40
  36. package/components/pds-multiselect.js.map +1 -1
  37. package/components/pds-popover.js +1 -1
  38. package/components/pds-progress.js +1 -1
  39. package/components/pds-property.js +1 -1
  40. package/components/pds-radio-group.js +3 -3
  41. package/components/pds-radio.js +3 -3
  42. package/components/pds-row.js +1 -1
  43. package/components/pds-select.js +4 -2
  44. package/components/pds-select.js.map +1 -1
  45. package/components/pds-sortable-item.js +2 -2
  46. package/components/pds-sortable-item.js.map +1 -1
  47. package/components/pds-sortable.js +98 -93
  48. package/components/pds-sortable.js.map +1 -1
  49. package/components/pds-switch.js +5 -7
  50. package/components/pds-switch.js.map +1 -1
  51. package/components/pds-tab.js +3 -3
  52. package/components/pds-table-body.js +1 -1
  53. package/components/pds-table-cell2.js +2 -2
  54. package/components/pds-table-head-cell2.js +2 -2
  55. package/components/pds-table-head.js +1 -1
  56. package/components/pds-table-row.js +1 -1
  57. package/components/pds-tabpanel.js +1 -1
  58. package/components/pds-tabs.js +1 -1
  59. package/components/pds-text2.js +1 -1
  60. package/components/pds-textarea.js +8 -6
  61. package/components/pds-textarea.js.map +1 -1
  62. package/components/pds-toast.js +3 -3
  63. package/components/pds-toast.js.map +1 -1
  64. package/components/pds-tooltip.js +2 -2
  65. package/dist/cjs/{floating-ui.dom-Ca6tS7ef.js → floating-ui.dom-BZk7Blsu.js} +144 -131
  66. package/dist/cjs/floating-ui.dom-BZk7Blsu.js.map +1 -0
  67. package/dist/cjs/{form-DUqlzovE.js → form-CpM5Z8q7.js} +16 -2
  68. package/dist/cjs/form-CpM5Z8q7.js.map +1 -0
  69. package/dist/cjs/{index-D8mNsvM8.js → index-DGBoDsAL.js} +3 -3
  70. package/dist/cjs/index-DGBoDsAL.js.map +1 -0
  71. package/dist/cjs/loader.cjs.js +1 -1
  72. package/dist/cjs/mock-pds-modal.cjs.entry.js +1 -1
  73. package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
  74. package/dist/cjs/pds-alert.cjs.entry.js +1 -1
  75. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  76. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  77. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  78. package/dist/cjs/pds-button.cjs.entry.js +1 -1
  79. package/dist/cjs/pds-checkbox.cjs.entry.js +6 -8
  80. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  81. package/dist/cjs/pds-chip.cjs.entry.js +2 -2
  82. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  83. package/dist/cjs/pds-combobox.cjs.entry.js +46 -42
  84. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  85. package/dist/cjs/pds-copytext.cjs.entry.js +4 -4
  86. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  87. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +1 -1
  88. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  89. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +1 -1
  90. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +2 -2
  91. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  92. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  93. package/dist/cjs/pds-image.cjs.entry.js +2 -2
  94. package/dist/cjs/pds-input.cjs.entry.js +5 -3
  95. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  96. package/dist/cjs/pds-link.cjs.entry.js +3 -3
  97. package/dist/cjs/pds-loader.cjs.entry.js +1 -1
  98. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  99. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  100. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  101. package/dist/cjs/pds-modal.cjs.entry.js +3 -3
  102. package/dist/cjs/pds-multiselect.cjs.entry.js +187 -38
  103. package/dist/cjs/pds-multiselect.entry.cjs.js.map +1 -1
  104. package/dist/cjs/pds-popover.cjs.entry.js +1 -1
  105. package/dist/cjs/pds-progress.cjs.entry.js +1 -1
  106. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  107. package/dist/cjs/pds-radio-group.cjs.entry.js +5 -5
  108. package/dist/cjs/pds-radio.cjs.entry.js +5 -5
  109. package/dist/cjs/pds-row.cjs.entry.js +1 -1
  110. package/dist/cjs/pds-select.cjs.entry.js +5 -3
  111. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  112. package/dist/cjs/pds-sortable-item.cjs.entry.js +3 -3
  113. package/dist/cjs/pds-sortable-item.entry.cjs.js.map +1 -1
  114. package/dist/cjs/pds-sortable.cjs.entry.js +95 -93
  115. package/dist/cjs/pds-sortable.entry.cjs.js.map +1 -1
  116. package/dist/cjs/pds-switch.cjs.entry.js +6 -8
  117. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  118. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  119. package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
  120. package/dist/cjs/pds-table-cell.cjs.entry.js +4 -4
  121. package/dist/cjs/pds-table-head-cell.cjs.entry.js +3 -3
  122. package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
  123. package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
  124. package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
  125. package/dist/cjs/pds-tabs.cjs.entry.js +1 -1
  126. package/dist/cjs/pds-text.cjs.entry.js +3 -3
  127. package/dist/cjs/pds-textarea.cjs.entry.js +9 -7
  128. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  129. package/dist/cjs/pds-toast.cjs.entry.js +3 -3
  130. package/dist/cjs/pds-toast.entry.cjs.js.map +1 -1
  131. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  132. package/dist/cjs/pine-core.cjs.js +1 -1
  133. package/dist/cjs/{truncation-tooltip-BGGnm8SZ.js → truncation-tooltip-CVzAha5B.js} +3 -3
  134. package/dist/cjs/{truncation-tooltip-BGGnm8SZ.js.map → truncation-tooltip-CVzAha5B.js.map} +1 -1
  135. package/dist/collection/components/pds-alert/pds-alert.js +2 -1
  136. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -1
  137. package/dist/collection/components/pds-avatar/pds-avatar.js +3 -1
  138. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  139. package/dist/collection/components/pds-checkbox/pds-checkbox.js +5 -7
  140. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  141. package/dist/collection/components/pds-chip/pds-chip.js +2 -1
  142. package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
  143. package/dist/collection/components/pds-combobox/pds-combobox.css +5 -0
  144. package/dist/collection/components/pds-combobox/pds-combobox.js +53 -37
  145. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  146. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  147. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  148. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +4 -1
  149. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -1
  150. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  151. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  152. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  153. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  154. package/dist/collection/components/pds-image/pds-image.js +2 -2
  155. package/dist/collection/components/pds-input/pds-input.js +4 -2
  156. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  157. package/dist/collection/components/pds-link/pds-link.js +2 -2
  158. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  159. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  160. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  161. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  162. package/dist/collection/components/pds-modal/pds-modal.js +3 -3
  163. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  164. package/dist/collection/components/pds-multiselect/multiselect-interface.js.map +1 -1
  165. package/dist/collection/components/pds-multiselect/pds-multiselect.css +83 -1
  166. package/dist/collection/components/pds-multiselect/pds-multiselect.js +258 -37
  167. package/dist/collection/components/pds-multiselect/pds-multiselect.js.map +1 -1
  168. package/dist/collection/components/pds-multiselect/stories/pds-multiselect.stories.js +226 -0
  169. package/dist/collection/components/pds-popover/pds-popover.js +1 -1
  170. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  171. package/dist/collection/components/pds-property/pds-property.js +1 -1
  172. package/dist/collection/components/pds-radio/pds-radio.js +3 -3
  173. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  174. package/dist/collection/components/pds-row/pds-row.js +1 -1
  175. package/dist/collection/components/pds-select/pds-select.js +4 -2
  176. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  177. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.css +12 -2
  178. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  179. package/dist/collection/components/pds-sortable/pds-sortable.js +46 -4
  180. package/dist/collection/components/pds-sortable/pds-sortable.js.map +1 -1
  181. package/dist/collection/components/pds-sortable/sortable-interface.js.map +1 -1
  182. package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +19 -4
  183. package/dist/collection/components/pds-switch/pds-switch.js +5 -7
  184. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  185. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  186. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  187. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  188. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  189. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  190. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  191. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  192. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  193. package/dist/collection/components/pds-text/pds-text.js +1 -1
  194. package/dist/collection/components/pds-textarea/pds-textarea.js +8 -6
  195. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  196. package/dist/collection/components/pds-toast/pds-toast.js +6 -3
  197. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
  198. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  199. package/dist/collection/utils/form.js +13 -0
  200. package/dist/collection/utils/form.js.map +1 -1
  201. package/dist/docs.json +222 -15
  202. package/dist/esm/{floating-ui.dom-BO6p966C.js → floating-ui.dom-DDtwbwIl.js} +144 -131
  203. package/dist/esm/floating-ui.dom-DDtwbwIl.js.map +1 -0
  204. package/dist/esm/{form-CN-lL5QG.js → form-C3xDZBme.js} +16 -3
  205. package/dist/esm/form-C3xDZBme.js.map +1 -0
  206. package/dist/esm/{index-Bmf4Ow_8.js → index-D4ys0pep.js} +3 -3
  207. package/dist/esm/index-D4ys0pep.js.map +1 -0
  208. package/dist/esm/loader.js +1 -1
  209. package/dist/esm/mock-pds-modal.entry.js +1 -1
  210. package/dist/esm/pds-accordion.entry.js +1 -1
  211. package/dist/esm/pds-alert.entry.js +1 -1
  212. package/dist/esm/pds-alert.entry.js.map +1 -1
  213. package/dist/esm/pds-avatar.entry.js +2 -2
  214. package/dist/esm/pds-avatar.entry.js.map +1 -1
  215. package/dist/esm/pds-button.entry.js +1 -1
  216. package/dist/esm/pds-checkbox.entry.js +6 -8
  217. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  218. package/dist/esm/pds-chip.entry.js +2 -2
  219. package/dist/esm/pds-chip.entry.js.map +1 -1
  220. package/dist/esm/pds-combobox.entry.js +46 -42
  221. package/dist/esm/pds-combobox.entry.js.map +1 -1
  222. package/dist/esm/pds-copytext.entry.js +4 -4
  223. package/dist/esm/pds-divider.entry.js +1 -1
  224. package/dist/esm/pds-dropdown-menu-item.entry.js +1 -1
  225. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  226. package/dist/esm/pds-dropdown-menu-separator.entry.js +1 -1
  227. package/dist/esm/pds-dropdown-menu.entry.js +2 -2
  228. package/dist/esm/pds-filter.entry.js +2 -2
  229. package/dist/esm/pds-filters.entry.js +1 -1
  230. package/dist/esm/pds-image.entry.js +2 -2
  231. package/dist/esm/pds-input.entry.js +5 -3
  232. package/dist/esm/pds-input.entry.js.map +1 -1
  233. package/dist/esm/pds-link.entry.js +3 -3
  234. package/dist/esm/pds-loader.entry.js +1 -1
  235. package/dist/esm/pds-modal-content.entry.js +2 -2
  236. package/dist/esm/pds-modal-footer.entry.js +1 -1
  237. package/dist/esm/pds-modal-header.entry.js +1 -1
  238. package/dist/esm/pds-modal.entry.js +3 -3
  239. package/dist/esm/pds-multiselect.entry.js +187 -38
  240. package/dist/esm/pds-multiselect.entry.js.map +1 -1
  241. package/dist/esm/pds-popover.entry.js +1 -1
  242. package/dist/esm/pds-progress.entry.js +1 -1
  243. package/dist/esm/pds-property.entry.js +1 -1
  244. package/dist/esm/pds-radio-group.entry.js +5 -5
  245. package/dist/esm/pds-radio.entry.js +5 -5
  246. package/dist/esm/pds-row.entry.js +1 -1
  247. package/dist/esm/pds-select.entry.js +5 -3
  248. package/dist/esm/pds-select.entry.js.map +1 -1
  249. package/dist/esm/pds-sortable-item.entry.js +3 -3
  250. package/dist/esm/pds-sortable-item.entry.js.map +1 -1
  251. package/dist/esm/pds-sortable.entry.js +95 -93
  252. package/dist/esm/pds-sortable.entry.js.map +1 -1
  253. package/dist/esm/pds-switch.entry.js +6 -8
  254. package/dist/esm/pds-switch.entry.js.map +1 -1
  255. package/dist/esm/pds-tab.entry.js +3 -3
  256. package/dist/esm/pds-table-body.entry.js +1 -1
  257. package/dist/esm/pds-table-cell.entry.js +4 -4
  258. package/dist/esm/pds-table-head-cell.entry.js +3 -3
  259. package/dist/esm/pds-table-head.entry.js +1 -1
  260. package/dist/esm/pds-table-row.entry.js +1 -1
  261. package/dist/esm/pds-tabpanel.entry.js +1 -1
  262. package/dist/esm/pds-tabs.entry.js +1 -1
  263. package/dist/esm/pds-text.entry.js +3 -3
  264. package/dist/esm/pds-textarea.entry.js +9 -7
  265. package/dist/esm/pds-textarea.entry.js.map +1 -1
  266. package/dist/esm/pds-toast.entry.js +3 -3
  267. package/dist/esm/pds-toast.entry.js.map +1 -1
  268. package/dist/esm/pds-tooltip.entry.js +3 -3
  269. package/dist/esm/pine-core.js +1 -1
  270. package/dist/esm/{truncation-tooltip-CTHpMbU3.js → truncation-tooltip-Blk4GigP.js} +3 -3
  271. package/dist/{esm-es5/truncation-tooltip-CTHpMbU3.js.map → esm/truncation-tooltip-Blk4GigP.js.map} +1 -1
  272. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js +2 -0
  273. package/dist/esm-es5/floating-ui.dom-DDtwbwIl.js.map +1 -0
  274. package/dist/esm-es5/{form-CN-lL5QG.js → form-C3xDZBme.js} +2 -2
  275. package/dist/esm-es5/form-C3xDZBme.js.map +1 -0
  276. package/dist/esm-es5/{index-Bmf4Ow_8.js → index-D4ys0pep.js} +1 -1
  277. package/dist/esm-es5/index-D4ys0pep.js.map +1 -0
  278. package/dist/esm-es5/loader.js +1 -1
  279. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  280. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  281. package/dist/esm-es5/pds-alert.entry.js +1 -1
  282. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  283. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  284. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  285. package/dist/esm-es5/pds-button.entry.js +1 -1
  286. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  287. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  288. package/dist/esm-es5/pds-chip.entry.js +1 -1
  289. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  290. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  291. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  292. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  293. package/dist/esm-es5/pds-divider.entry.js +1 -1
  294. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  295. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  296. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  297. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  298. package/dist/esm-es5/pds-filter.entry.js +1 -1
  299. package/dist/esm-es5/pds-filters.entry.js +1 -1
  300. package/dist/esm-es5/pds-image.entry.js +1 -1
  301. package/dist/esm-es5/pds-input.entry.js +1 -1
  302. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  303. package/dist/esm-es5/pds-link.entry.js +1 -1
  304. package/dist/esm-es5/pds-loader.entry.js +1 -1
  305. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  306. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  307. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  308. package/dist/esm-es5/pds-modal.entry.js +1 -1
  309. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  310. package/dist/esm-es5/pds-multiselect.entry.js.map +1 -1
  311. package/dist/esm-es5/pds-popover.entry.js +1 -1
  312. package/dist/esm-es5/pds-progress.entry.js +1 -1
  313. package/dist/esm-es5/pds-property.entry.js +1 -1
  314. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  315. package/dist/esm-es5/pds-radio.entry.js +1 -1
  316. package/dist/esm-es5/pds-row.entry.js +1 -1
  317. package/dist/esm-es5/pds-select.entry.js +1 -1
  318. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  319. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  320. package/dist/esm-es5/pds-sortable-item.entry.js.map +1 -1
  321. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  322. package/dist/esm-es5/pds-sortable.entry.js.map +1 -1
  323. package/dist/esm-es5/pds-switch.entry.js +1 -1
  324. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  325. package/dist/esm-es5/pds-tab.entry.js +1 -1
  326. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  327. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  328. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  329. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  330. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  331. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  332. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  333. package/dist/esm-es5/pds-text.entry.js +1 -1
  334. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  335. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  336. package/dist/esm-es5/pds-toast.entry.js +1 -1
  337. package/dist/esm-es5/pds-toast.entry.js.map +1 -1
  338. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  339. package/dist/esm-es5/pine-core.js +1 -1
  340. package/dist/esm-es5/{truncation-tooltip-CTHpMbU3.js → truncation-tooltip-Blk4GigP.js} +2 -2
  341. package/dist/{esm/truncation-tooltip-CTHpMbU3.js.map → esm-es5/truncation-tooltip-Blk4GigP.js.map} +1 -1
  342. package/dist/pine-core/p--XSKe449.system.js.map +1 -0
  343. package/dist/pine-core/p-0582a3b3.entry.js +2 -0
  344. package/dist/pine-core/{p-e9eb3fc3.system.entry.js → p-0d7eddea.system.entry.js} +2 -2
  345. package/dist/pine-core/{p-b416cb4b.system.entry.js → p-0f990fae.system.entry.js} +2 -2
  346. package/dist/pine-core/{p-edbaff73.system.entry.js → p-13f28e2a.system.entry.js} +2 -2
  347. package/dist/pine-core/{p-838452e0.entry.js → p-14cceca6.entry.js} +2 -2
  348. package/dist/pine-core/{p-ea721a45.entry.js → p-16b7a61d.entry.js} +2 -2
  349. package/dist/pine-core/{p-5e83f6e3.system.entry.js → p-16bf3993.system.entry.js} +2 -2
  350. package/dist/pine-core/{p-9606f567.system.entry.js → p-182b5617.system.entry.js} +2 -2
  351. package/dist/pine-core/p-1855322f.entry.js +2 -0
  352. package/dist/pine-core/p-244f0325.system.entry.js +2 -0
  353. package/dist/pine-core/p-244f0325.system.entry.js.map +1 -0
  354. package/dist/pine-core/{p-8b7246ea.system.entry.js → p-2a185f0b.system.entry.js} +2 -2
  355. package/dist/pine-core/{p-c73ef42b.entry.js → p-32e54df7.entry.js} +2 -2
  356. package/dist/pine-core/{p-68f97bdf.entry.js → p-33e8d130.entry.js} +2 -2
  357. package/dist/pine-core/p-3XkugpdY.system.js.map +1 -0
  358. package/dist/pine-core/{p-1b0dc99e.system.entry.js → p-3e96ea38.system.entry.js} +2 -2
  359. package/dist/pine-core/{p-64c6c4a0.entry.js → p-3f8e9f3f.entry.js} +2 -2
  360. package/dist/pine-core/p-40734388.entry.js +2 -0
  361. package/dist/pine-core/p-40734388.entry.js.map +1 -0
  362. package/dist/pine-core/p-41382eb3.system.entry.js +2 -0
  363. package/dist/pine-core/p-41382eb3.system.entry.js.map +1 -0
  364. package/dist/pine-core/p-4175a61c.system.entry.js +2 -0
  365. package/dist/pine-core/{p-73be1c83.entry.js → p-46e11e20.entry.js} +2 -2
  366. package/dist/pine-core/p-48a646d8.entry.js +8 -0
  367. package/dist/pine-core/p-48a646d8.entry.js.map +1 -0
  368. package/dist/pine-core/{p-ed5ca877.system.entry.js → p-48a6762b.system.entry.js} +2 -2
  369. package/dist/pine-core/p-499dcb3b.system.entry.js +2 -0
  370. package/dist/pine-core/p-499dcb3b.system.entry.js.map +1 -0
  371. package/dist/pine-core/{p-3fc8dbc9.system.entry.js → p-4c7055bb.system.entry.js} +2 -2
  372. package/dist/pine-core/{p-7737e4e8.system.entry.js → p-4d2e9e8d.system.entry.js} +2 -2
  373. package/dist/pine-core/{p-18a3b6ba.system.entry.js → p-519d9af1.system.entry.js} +2 -2
  374. package/dist/pine-core/{p-f81b0dbb.system.entry.js → p-52d1a7a1.system.entry.js} +2 -2
  375. package/dist/pine-core/{p-9558fa60.entry.js → p-536451ee.entry.js} +2 -2
  376. package/dist/pine-core/p-5453ff49.system.entry.js +2 -0
  377. package/dist/pine-core/{p-3e2fc38f.entry.js → p-583c3ac5.entry.js} +2 -2
  378. package/dist/pine-core/{p-DKT0sVlZ.system.js.map → p-59--X9ih.system.js.map} +1 -1
  379. package/dist/pine-core/p-5KztFcgn.system.js.map +1 -0
  380. package/dist/pine-core/p-5f391ebf.entry.js +2 -0
  381. package/dist/pine-core/p-61943627.system.entry.js +2 -0
  382. package/dist/pine-core/p-61943627.system.entry.js.map +1 -0
  383. package/dist/pine-core/{p-bf157830.entry.js → p-645564d9.entry.js} +2 -2
  384. package/dist/pine-core/{p-2883cb69.system.entry.js → p-67b78dd8.system.entry.js} +2 -2
  385. package/dist/pine-core/{p-f179c88f.system.entry.js → p-6939924a.system.entry.js} +2 -2
  386. package/dist/pine-core/p-74392e33.system.entry.js +2 -0
  387. package/dist/pine-core/{p-766e52a3.entry.js → p-75dc3a1f.entry.js} +2 -2
  388. package/dist/pine-core/p-773d1b8d.entry.js +2 -0
  389. package/dist/pine-core/p-773d1b8d.entry.js.map +1 -0
  390. package/dist/pine-core/{p-8a53ae6d.system.entry.js → p-781bdbf7.system.entry.js} +2 -2
  391. package/dist/pine-core/{p-2f663747.system.entry.js → p-7dfb5b1f.system.entry.js} +2 -2
  392. package/dist/pine-core/{p-9c0e22d4.entry.js → p-82f9a81a.entry.js} +2 -2
  393. package/dist/pine-core/{p-6c25dfc3.entry.js → p-8f3d6de0.entry.js} +2 -2
  394. package/dist/pine-core/p-8f48fa0b.system.entry.js +2 -0
  395. package/dist/pine-core/p-8f48fa0b.system.entry.js.map +1 -0
  396. package/dist/pine-core/p-902818eb.system.entry.js +2 -0
  397. package/dist/pine-core/{p-d8d796ad.system.entry.js → p-91200079.system.entry.js} +2 -2
  398. package/dist/pine-core/{p-b2a7c2bf.entry.js → p-95af50ed.entry.js} +2 -2
  399. package/dist/pine-core/p-96c4106f.entry.js +2 -0
  400. package/dist/pine-core/p-96c4106f.entry.js.map +1 -0
  401. package/dist/pine-core/{p-51d2999d.entry.js → p-98b493e5.entry.js} +2 -2
  402. package/dist/pine-core/{p-b8f21554.system.entry.js → p-98d82bf0.system.entry.js} +2 -2
  403. package/dist/pine-core/{p-1d82417a.entry.js → p-9d2e89e5.entry.js} +2 -2
  404. package/dist/pine-core/{p-cbf49268.entry.js → p-9ea92b46.entry.js} +2 -2
  405. package/dist/pine-core/{p-Bch44a-T.system.js → p-B1u-QvFn.system.js} +2 -2
  406. package/dist/pine-core/p-B1u-QvFn.system.js.map +1 -0
  407. package/dist/pine-core/{p-ClY6yIBF.system.js.map → p-B5fynusC.system.js.map} +1 -1
  408. package/dist/pine-core/{p-BUtyruql.system.js.map → p-BMoAGblt.system.js.map} +1 -1
  409. package/dist/pine-core/{p-5hPM5knE.js → p-BNSGedhN.js} +2 -2
  410. package/dist/pine-core/{p-5hPM5knE.js.map → p-BNSGedhN.js.map} +1 -1
  411. package/dist/pine-core/{p-9SGoKSa6.system.js.map → p-BOuxAvbi.system.js.map} +1 -1
  412. package/dist/pine-core/p-BOuz9091.system.js.map +1 -0
  413. package/dist/pine-core/{p-2DR2iuEU.system.js.map → p-BQsz2Ppb.system.js.map} +1 -1
  414. package/dist/pine-core/{p-Bsen6aos.system.js.map → p-BR1tCsTx.system.js.map} +1 -1
  415. package/dist/pine-core/{p-sgZDP7ET.system.js.map → p-BR9D7jOC.system.js.map} +1 -1
  416. package/dist/pine-core/p-BTrLNF2B.system.js.map +1 -0
  417. package/dist/pine-core/{p-DFWnxG_e.system.js.map → p-BUEOyE3W.system.js.map} +1 -1
  418. package/dist/pine-core/{p-CSe1fQxQ.system.js.map → p-Bb4REZL1.system.js.map} +1 -1
  419. package/dist/pine-core/{p-B5CyjPYU.system.js.map → p-Be6iza_Y.system.js.map} +1 -1
  420. package/dist/pine-core/p-BpespFXE.system.js.map +1 -0
  421. package/dist/pine-core/p-BrLs99ML.system.js +2 -0
  422. package/dist/pine-core/p-BrLs99ML.system.js.map +1 -0
  423. package/dist/pine-core/p-C2pSDIG-.system.js.map +1 -0
  424. package/dist/pine-core/p-C3xDZBme.js +2 -0
  425. package/dist/pine-core/p-C3xDZBme.js.map +1 -0
  426. package/dist/pine-core/p-C4-dix13.system.js.map +1 -0
  427. package/dist/pine-core/{p-CFL53vBy.system.js → p-C62JIZmE.system.js} +1 -1
  428. package/dist/pine-core/p-C62JIZmE.system.js.map +1 -0
  429. package/dist/pine-core/{p-DQCerqxZ.system.js.map → p-C6TsH_RJ.system.js.map} +1 -1
  430. package/dist/pine-core/p-C9msrPdv.system.js.map +1 -0
  431. package/dist/pine-core/{p-CfNEp0k0.system.js.map → p-CG-bCfvj.system.js.map} +1 -1
  432. package/dist/pine-core/p-CHDzBR_K.system.js.map +1 -0
  433. package/dist/pine-core/{p-CUv9KdhN.system.js.map → p-CI57amJO.system.js.map} +1 -1
  434. package/dist/pine-core/{p-DenbFuEN.system.js.map → p-CP845yj_.system.js.map} +1 -1
  435. package/dist/pine-core/{p-DXVwADJT.system.js → p-CRCxGYgw.system.js} +2 -2
  436. package/dist/pine-core/{p-DXVwADJT.system.js.map → p-CRCxGYgw.system.js.map} +1 -1
  437. package/dist/pine-core/p-CXhVuzyx.system.js.map +1 -0
  438. package/dist/pine-core/{p-De6wHGVf.system.js.map → p-CYraaUrg.system.js.map} +1 -1
  439. package/dist/pine-core/{p-BR9M75xt.system.js.map → p-CjvjDEg9.system.js.map} +1 -1
  440. package/dist/pine-core/{p-BASnRvhy.system.js.map → p-Cw6YcRuA.system.js.map} +1 -1
  441. package/dist/pine-core/p-CyOICl1j.system.js.map +1 -0
  442. package/dist/pine-core/{p-Be8OBmYb.system.js.map → p-D32r9DeF.system.js.map} +1 -1
  443. package/dist/pine-core/{p-Bmf4Ow_8.js → p-D4ys0pep.js} +1 -1
  444. package/dist/pine-core/p-D4ys0pep.js.map +1 -0
  445. package/dist/pine-core/p-DAxrTjDa.system.js.map +1 -0
  446. package/dist/pine-core/p-DDtwbwIl.js +2 -0
  447. package/dist/pine-core/p-DDtwbwIl.js.map +1 -0
  448. package/dist/pine-core/{p-BqkabXR7.system.js.map → p-DMF-DSOl.system.js.map} +1 -1
  449. package/dist/pine-core/{p-CsWO_n3t.system.js.map → p-DNbBVaLv.system.js.map} +1 -1
  450. package/dist/pine-core/{p-B036z4h-.system.js.map → p-DOdbcaFd.system.js.map} +1 -1
  451. package/dist/pine-core/{p-8tpU1leU.system.js.map → p-DZLD6m8S.system.js.map} +1 -1
  452. package/dist/pine-core/{p-DmWm26A6.system.js.map → p-Dp80V3ht.system.js.map} +1 -1
  453. package/dist/pine-core/{p-B9rVdQdy.system.js.map → p-Dq_WxIls.system.js.map} +1 -1
  454. package/dist/pine-core/{p-DZt6ah_A.system.js.map → p-DwSw16ZT.system.js.map} +1 -1
  455. package/dist/pine-core/{p-dPhHNR2G.system.js.map → p-IEIIi5zq.system.js.map} +1 -1
  456. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  457. package/dist/pine-core/{p-BeJr-4oL.system.js.map → p-KVyVRPM1.system.js.map} +1 -1
  458. package/dist/pine-core/{p-CEE11B7K.system.js.map → p-Ob6d9Y86.system.js.map} +1 -1
  459. package/dist/pine-core/{p-P65hM6YU.system.js.map → p-PMiwIPVl.system.js.map} +1 -1
  460. package/dist/pine-core/{p-DzmLlvu3.system.js.map → p-WysX4rk5.system.js.map} +1 -1
  461. package/dist/pine-core/{p-439e3343.entry.js → p-a1d58592.entry.js} +2 -2
  462. package/dist/pine-core/p-a3543531.entry.js +2 -0
  463. package/dist/pine-core/{p-6cbad264.entry.js.map → p-a3543531.entry.js.map} +1 -1
  464. package/dist/pine-core/{p-08cdf7f2.system.entry.js → p-a55bc143.system.entry.js} +2 -2
  465. package/dist/pine-core/p-a61e92c3.system.entry.js +2 -0
  466. package/dist/pine-core/p-a61e92c3.system.entry.js.map +1 -0
  467. package/dist/pine-core/{p-9b2cd9fc.entry.js → p-a6b01b1e.entry.js} +2 -2
  468. package/dist/pine-core/{p-88eb4f6c.entry.js → p-a720a925.entry.js} +2 -2
  469. package/dist/pine-core/{p-abb72971.system.entry.js → p-a85e565c.system.entry.js} +2 -2
  470. package/dist/pine-core/{p-56d0e6f4.entry.js → p-aa331370.entry.js} +2 -2
  471. package/dist/pine-core/{p-445c5ec5.system.entry.js → p-ab2c2298.system.entry.js} +2 -2
  472. package/dist/pine-core/{p-7fc20a77.system.entry.js → p-adbe19c7.system.entry.js} +2 -2
  473. package/dist/pine-core/{p-36478643.system.entry.js → p-b2a5b6ae.system.entry.js} +2 -2
  474. package/dist/pine-core/p-b3c50d38.entry.js +2 -0
  475. package/dist/pine-core/{p-7c1b1fb8.entry.js.map → p-b3c50d38.entry.js.map} +1 -1
  476. package/dist/pine-core/p-b6465152.entry.js +2 -0
  477. package/dist/pine-core/p-b6465152.entry.js.map +1 -0
  478. package/dist/pine-core/{p-599a5903.system.entry.js → p-bc462592.system.entry.js} +2 -2
  479. package/dist/pine-core/{p-9ba4acdf.system.entry.js → p-bc7a4275.system.entry.js} +2 -2
  480. package/dist/pine-core/{p-9f09e116.system.entry.js → p-c6682c9d.system.entry.js} +2 -2
  481. package/dist/pine-core/p-c6dd00b1.entry.js +2 -0
  482. package/dist/pine-core/{p-1951d49e.entry.js → p-c78a7729.entry.js} +2 -2
  483. package/dist/pine-core/{p-ccdee55a.entry.js → p-c9ced0ee.entry.js} +2 -2
  484. package/dist/pine-core/{p-bf712423.entry.js → p-caf01891.entry.js} +2 -2
  485. package/dist/pine-core/{p-39cb879d.entry.js → p-ccf46b90.entry.js} +2 -2
  486. package/dist/pine-core/p-cdd8175e.entry.js +2 -0
  487. package/dist/pine-core/p-cdd8175e.entry.js.map +1 -0
  488. package/dist/pine-core/{p-b7f2f9f3.system.entry.js → p-ce47aaaa.system.entry.js} +2 -2
  489. package/dist/pine-core/p-d3e64f4e.system.entry.js +4 -0
  490. package/dist/pine-core/p-d3e64f4e.system.entry.js.map +1 -0
  491. package/dist/pine-core/{p-5f63b999.entry.js → p-d5d9cf28.entry.js} +2 -2
  492. package/dist/pine-core/{p-b3ee3c4c.system.entry.js → p-d6c72b79.system.entry.js} +2 -2
  493. package/dist/pine-core/p-d845fd1d.system.entry.js +2 -0
  494. package/dist/pine-core/p-d8698ac5.entry.js +3 -0
  495. package/dist/pine-core/p-d8698ac5.entry.js.map +1 -0
  496. package/dist/pine-core/{p-3e45826f.system.entry.js → p-e017b42e.system.entry.js} +2 -2
  497. package/dist/pine-core/{p-d0504aa8.system.entry.js → p-e1402563.system.entry.js} +2 -2
  498. package/dist/pine-core/{p-119ccf73.entry.js → p-e47524a6.entry.js} +2 -2
  499. package/dist/pine-core/p-e6097fd3.entry.js +2 -0
  500. package/dist/pine-core/{p-5107c129.entry.js → p-e73b5859.entry.js} +2 -2
  501. package/dist/pine-core/p-e776269e.system.entry.js +2 -0
  502. package/dist/pine-core/{p-46d61c98.system.entry.js.map → p-e776269e.system.entry.js.map} +1 -1
  503. package/dist/pine-core/{p-C1p8XJSR.system.js.map → p-e7dY1RIu.system.js.map} +1 -1
  504. package/dist/pine-core/{p-72ca815d.system.entry.js → p-ed125c22.system.entry.js} +2 -2
  505. package/dist/pine-core/{p-b6ede995.system.entry.js → p-eec6b183.system.entry.js} +2 -2
  506. package/dist/pine-core/{p-867ef2f1.entry.js → p-f352e850.entry.js} +2 -2
  507. package/dist/pine-core/p-f86fbde7.entry.js +2 -0
  508. package/dist/pine-core/p-f86fbde7.entry.js.map +1 -0
  509. package/dist/pine-core/p-fa4c5b6b.system.entry.js +9 -0
  510. package/dist/pine-core/p-fa4c5b6b.system.entry.js.map +1 -0
  511. package/dist/pine-core/{p-203f6e9e.entry.js → p-fa62518b.entry.js} +2 -2
  512. package/dist/pine-core/p-fc0df65c.entry.js +2 -0
  513. package/dist/pine-core/p-fe2ba477.entry.js +2 -0
  514. package/dist/pine-core/p-kR80YJVM.system.js.map +1 -0
  515. package/dist/pine-core/{p-D02u2D7r.system.js.map → p-ssoi7rVs.system.js.map} +1 -1
  516. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  517. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  518. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  519. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  520. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  521. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  522. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  523. package/dist/pine-core/pds-multiselect.entry.esm.js.map +1 -1
  524. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  525. package/dist/pine-core/pds-sortable-item.entry.esm.js.map +1 -1
  526. package/dist/pine-core/pds-sortable.entry.esm.js.map +1 -1
  527. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  528. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  529. package/dist/pine-core/pds-toast.entry.esm.js.map +1 -1
  530. package/dist/pine-core/pine-core.esm.js +1 -1
  531. package/dist/types/components/pds-alert/pds-alert.d.ts +1 -0
  532. package/dist/types/components/pds-avatar/pds-avatar.d.ts +2 -0
  533. package/dist/types/components/pds-chip/pds-chip.d.ts +1 -0
  534. package/dist/types/components/pds-combobox/pds-combobox.d.ts +9 -1
  535. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +3 -0
  536. package/dist/types/components/pds-multiselect/multiselect-interface.d.ts +8 -0
  537. package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +31 -0
  538. package/dist/types/components/pds-sortable/pds-sortable.d.ts +8 -1
  539. package/dist/types/components/pds-sortable/sortable-interface.d.ts +1 -0
  540. package/dist/types/components/pds-toast/pds-toast.d.ts +3 -0
  541. package/dist/types/components.d.ts +56 -6
  542. package/dist/types/utils/form.d.ts +10 -0
  543. package/dist/vscode.html-data.json +10479 -0
  544. package/hydrate/index.js +575 -375
  545. package/hydrate/index.mjs +575 -375
  546. package/package.json +2 -2
  547. package/dist/cjs/floating-ui.dom-Ca6tS7ef.js.map +0 -1
  548. package/dist/cjs/form-DUqlzovE.js.map +0 -1
  549. package/dist/cjs/index-D8mNsvM8.js.map +0 -1
  550. package/dist/esm/floating-ui.dom-BO6p966C.js.map +0 -1
  551. package/dist/esm/form-CN-lL5QG.js.map +0 -1
  552. package/dist/esm/index-Bmf4Ow_8.js.map +0 -1
  553. package/dist/esm-es5/floating-ui.dom-BO6p966C.js +0 -2
  554. package/dist/esm-es5/floating-ui.dom-BO6p966C.js.map +0 -1
  555. package/dist/esm-es5/form-CN-lL5QG.js.map +0 -1
  556. package/dist/esm-es5/index-Bmf4Ow_8.js.map +0 -1
  557. package/dist/pine-core/p-0b3d6527.entry.js +0 -2
  558. package/dist/pine-core/p-0b3d6527.entry.js.map +0 -1
  559. package/dist/pine-core/p-221b4348.entry.js +0 -2
  560. package/dist/pine-core/p-221b4348.entry.js.map +0 -1
  561. package/dist/pine-core/p-25255ab8.system.entry.js +0 -4
  562. package/dist/pine-core/p-25255ab8.system.entry.js.map +0 -1
  563. package/dist/pine-core/p-2a7b94ba.system.entry.js +0 -2
  564. package/dist/pine-core/p-2a7b94ba.system.entry.js.map +0 -1
  565. package/dist/pine-core/p-31bfac45.entry.js +0 -2
  566. package/dist/pine-core/p-3239c67a.entry.js +0 -2
  567. package/dist/pine-core/p-396d4b63.entry.js +0 -8
  568. package/dist/pine-core/p-396d4b63.entry.js.map +0 -1
  569. package/dist/pine-core/p-3fd70f83.entry.js +0 -2
  570. package/dist/pine-core/p-3fd70f83.entry.js.map +0 -1
  571. package/dist/pine-core/p-44035cf4.entry.js +0 -3
  572. package/dist/pine-core/p-44035cf4.entry.js.map +0 -1
  573. package/dist/pine-core/p-46d61c98.system.entry.js +0 -2
  574. package/dist/pine-core/p-4c0e71ce.entry.js +0 -2
  575. package/dist/pine-core/p-4c0e71ce.entry.js.map +0 -1
  576. package/dist/pine-core/p-4c82bff5.entry.js +0 -2
  577. package/dist/pine-core/p-50a439b5.entry.js +0 -2
  578. package/dist/pine-core/p-65d0032c.system.entry.js +0 -2
  579. package/dist/pine-core/p-6cbad264.entry.js +0 -2
  580. package/dist/pine-core/p-79f0b007.entry.js +0 -2
  581. package/dist/pine-core/p-79f0b007.entry.js.map +0 -1
  582. package/dist/pine-core/p-7c1b1fb8.entry.js +0 -2
  583. package/dist/pine-core/p-7da176b4.system.entry.js +0 -9
  584. package/dist/pine-core/p-7da176b4.system.entry.js.map +0 -1
  585. package/dist/pine-core/p-8a31ccd4.entry.js +0 -2
  586. package/dist/pine-core/p-8a31ccd4.entry.js.map +0 -1
  587. package/dist/pine-core/p-91781a0a.system.entry.js +0 -2
  588. package/dist/pine-core/p-91781a0a.system.entry.js.map +0 -1
  589. package/dist/pine-core/p-94a9ff2a.system.entry.js +0 -2
  590. package/dist/pine-core/p-BB9Md7vT.system.js.map +0 -1
  591. package/dist/pine-core/p-BGc1L0Ao.system.js.map +0 -1
  592. package/dist/pine-core/p-BO6p966C.js +0 -2
  593. package/dist/pine-core/p-BO6p966C.js.map +0 -1
  594. package/dist/pine-core/p-Bch44a-T.system.js.map +0 -1
  595. package/dist/pine-core/p-Bmf4Ow_8.js.map +0 -1
  596. package/dist/pine-core/p-BohZ8Mvm.system.js.map +0 -1
  597. package/dist/pine-core/p-CEll-OBZ.system.js.map +0 -1
  598. package/dist/pine-core/p-CFL53vBy.system.js.map +0 -1
  599. package/dist/pine-core/p-CFqOsbKv.system.js.map +0 -1
  600. package/dist/pine-core/p-CH2XYz0c.system.js.map +0 -1
  601. package/dist/pine-core/p-CN-lL5QG.js +0 -2
  602. package/dist/pine-core/p-CN-lL5QG.js.map +0 -1
  603. package/dist/pine-core/p-CTDKHxjD.system.js.map +0 -1
  604. package/dist/pine-core/p-D-iLwshJ.system.js.map +0 -1
  605. package/dist/pine-core/p-D2eS6fhD.system.js +0 -2
  606. package/dist/pine-core/p-D2eS6fhD.system.js.map +0 -1
  607. package/dist/pine-core/p-D497NWkn.system.js.map +0 -1
  608. package/dist/pine-core/p-DHNujrRT.system.js.map +0 -1
  609. package/dist/pine-core/p-DcrqbXJe.system.js.map +0 -1
  610. package/dist/pine-core/p-DdR8iWme.system.js.map +0 -1
  611. package/dist/pine-core/p-DqO0Rc5m.system.js.map +0 -1
  612. package/dist/pine-core/p-a553b40b.system.entry.js +0 -2
  613. package/dist/pine-core/p-a553b40b.system.entry.js.map +0 -1
  614. package/dist/pine-core/p-af5bf21d.entry.js +0 -2
  615. package/dist/pine-core/p-bPSIyJOo.system.js.map +0 -1
  616. package/dist/pine-core/p-ba195382.system.entry.js +0 -2
  617. package/dist/pine-core/p-bd2329cd.entry.js +0 -2
  618. package/dist/pine-core/p-c91fd600.entry.js +0 -2
  619. package/dist/pine-core/p-d6139188.system.entry.js +0 -2
  620. package/dist/pine-core/p-d62a5444.system.entry.js +0 -2
  621. package/dist/pine-core/p-ef7d0535.system.entry.js +0 -2
  622. package/dist/pine-core/p-ef7d0535.system.entry.js.map +0 -1
  623. package/dist/pine-core/p-f298baeb.system.entry.js +0 -2
  624. package/dist/pine-core/p-f298baeb.system.entry.js.map +0 -1
  625. package/dist/pine-core/p-f9c32940.system.entry.js +0 -2
  626. package/dist/pine-core/p-f9c32940.system.entry.js.map +0 -1
  627. /package/dist/pine-core/{p-bd2329cd.entry.js.map → p-0582a3b3.entry.js.map} +0 -0
  628. /package/dist/pine-core/{p-e9eb3fc3.system.entry.js.map → p-0d7eddea.system.entry.js.map} +0 -0
  629. /package/dist/pine-core/{p-b416cb4b.system.entry.js.map → p-0f990fae.system.entry.js.map} +0 -0
  630. /package/dist/pine-core/{p-edbaff73.system.entry.js.map → p-13f28e2a.system.entry.js.map} +0 -0
  631. /package/dist/pine-core/{p-838452e0.entry.js.map → p-14cceca6.entry.js.map} +0 -0
  632. /package/dist/pine-core/{p-ea721a45.entry.js.map → p-16b7a61d.entry.js.map} +0 -0
  633. /package/dist/pine-core/{p-5e83f6e3.system.entry.js.map → p-16bf3993.system.entry.js.map} +0 -0
  634. /package/dist/pine-core/{p-9606f567.system.entry.js.map → p-182b5617.system.entry.js.map} +0 -0
  635. /package/dist/pine-core/{p-4c82bff5.entry.js.map → p-1855322f.entry.js.map} +0 -0
  636. /package/dist/pine-core/{p-8b7246ea.system.entry.js.map → p-2a185f0b.system.entry.js.map} +0 -0
  637. /package/dist/pine-core/{p-c73ef42b.entry.js.map → p-32e54df7.entry.js.map} +0 -0
  638. /package/dist/pine-core/{p-68f97bdf.entry.js.map → p-33e8d130.entry.js.map} +0 -0
  639. /package/dist/pine-core/{p-1b0dc99e.system.entry.js.map → p-3e96ea38.system.entry.js.map} +0 -0
  640. /package/dist/pine-core/{p-64c6c4a0.entry.js.map → p-3f8e9f3f.entry.js.map} +0 -0
  641. /package/dist/pine-core/{p-94a9ff2a.system.entry.js.map → p-4175a61c.system.entry.js.map} +0 -0
  642. /package/dist/pine-core/{p-73be1c83.entry.js.map → p-46e11e20.entry.js.map} +0 -0
  643. /package/dist/pine-core/{p-ed5ca877.system.entry.js.map → p-48a6762b.system.entry.js.map} +0 -0
  644. /package/dist/pine-core/{p-3fc8dbc9.system.entry.js.map → p-4c7055bb.system.entry.js.map} +0 -0
  645. /package/dist/pine-core/{p-7737e4e8.system.entry.js.map → p-4d2e9e8d.system.entry.js.map} +0 -0
  646. /package/dist/pine-core/{p-18a3b6ba.system.entry.js.map → p-519d9af1.system.entry.js.map} +0 -0
  647. /package/dist/pine-core/{p-f81b0dbb.system.entry.js.map → p-52d1a7a1.system.entry.js.map} +0 -0
  648. /package/dist/pine-core/{p-9558fa60.entry.js.map → p-536451ee.entry.js.map} +0 -0
  649. /package/dist/pine-core/{p-d62a5444.system.entry.js.map → p-5453ff49.system.entry.js.map} +0 -0
  650. /package/dist/pine-core/{p-3e2fc38f.entry.js.map → p-583c3ac5.entry.js.map} +0 -0
  651. /package/dist/pine-core/{p-31bfac45.entry.js.map → p-5f391ebf.entry.js.map} +0 -0
  652. /package/dist/pine-core/{p-bf157830.entry.js.map → p-645564d9.entry.js.map} +0 -0
  653. /package/dist/pine-core/{p-2883cb69.system.entry.js.map → p-67b78dd8.system.entry.js.map} +0 -0
  654. /package/dist/pine-core/{p-f179c88f.system.entry.js.map → p-6939924a.system.entry.js.map} +0 -0
  655. /package/dist/pine-core/{p-65d0032c.system.entry.js.map → p-74392e33.system.entry.js.map} +0 -0
  656. /package/dist/pine-core/{p-766e52a3.entry.js.map → p-75dc3a1f.entry.js.map} +0 -0
  657. /package/dist/pine-core/{p-8a53ae6d.system.entry.js.map → p-781bdbf7.system.entry.js.map} +0 -0
  658. /package/dist/pine-core/{p-2f663747.system.entry.js.map → p-7dfb5b1f.system.entry.js.map} +0 -0
  659. /package/dist/pine-core/{p-9c0e22d4.entry.js.map → p-82f9a81a.entry.js.map} +0 -0
  660. /package/dist/pine-core/{p-6c25dfc3.entry.js.map → p-8f3d6de0.entry.js.map} +0 -0
  661. /package/dist/pine-core/{p-ba195382.system.entry.js.map → p-902818eb.system.entry.js.map} +0 -0
  662. /package/dist/pine-core/{p-d8d796ad.system.entry.js.map → p-91200079.system.entry.js.map} +0 -0
  663. /package/dist/pine-core/{p-b2a7c2bf.entry.js.map → p-95af50ed.entry.js.map} +0 -0
  664. /package/dist/pine-core/{p-51d2999d.entry.js.map → p-98b493e5.entry.js.map} +0 -0
  665. /package/dist/pine-core/{p-b8f21554.system.entry.js.map → p-98d82bf0.system.entry.js.map} +0 -0
  666. /package/dist/pine-core/{p-1d82417a.entry.js.map → p-9d2e89e5.entry.js.map} +0 -0
  667. /package/dist/pine-core/{p-cbf49268.entry.js.map → p-9ea92b46.entry.js.map} +0 -0
  668. /package/dist/pine-core/{p-439e3343.entry.js.map → p-a1d58592.entry.js.map} +0 -0
  669. /package/dist/pine-core/{p-08cdf7f2.system.entry.js.map → p-a55bc143.system.entry.js.map} +0 -0
  670. /package/dist/pine-core/{p-9b2cd9fc.entry.js.map → p-a6b01b1e.entry.js.map} +0 -0
  671. /package/dist/pine-core/{p-88eb4f6c.entry.js.map → p-a720a925.entry.js.map} +0 -0
  672. /package/dist/pine-core/{p-abb72971.system.entry.js.map → p-a85e565c.system.entry.js.map} +0 -0
  673. /package/dist/pine-core/{p-56d0e6f4.entry.js.map → p-aa331370.entry.js.map} +0 -0
  674. /package/dist/pine-core/{p-445c5ec5.system.entry.js.map → p-ab2c2298.system.entry.js.map} +0 -0
  675. /package/dist/pine-core/{p-7fc20a77.system.entry.js.map → p-adbe19c7.system.entry.js.map} +0 -0
  676. /package/dist/pine-core/{p-36478643.system.entry.js.map → p-b2a5b6ae.system.entry.js.map} +0 -0
  677. /package/dist/pine-core/{p-599a5903.system.entry.js.map → p-bc462592.system.entry.js.map} +0 -0
  678. /package/dist/pine-core/{p-9ba4acdf.system.entry.js.map → p-bc7a4275.system.entry.js.map} +0 -0
  679. /package/dist/pine-core/{p-9f09e116.system.entry.js.map → p-c6682c9d.system.entry.js.map} +0 -0
  680. /package/dist/pine-core/{p-af5bf21d.entry.js.map → p-c6dd00b1.entry.js.map} +0 -0
  681. /package/dist/pine-core/{p-1951d49e.entry.js.map → p-c78a7729.entry.js.map} +0 -0
  682. /package/dist/pine-core/{p-ccdee55a.entry.js.map → p-c9ced0ee.entry.js.map} +0 -0
  683. /package/dist/pine-core/{p-bf712423.entry.js.map → p-caf01891.entry.js.map} +0 -0
  684. /package/dist/pine-core/{p-39cb879d.entry.js.map → p-ccf46b90.entry.js.map} +0 -0
  685. /package/dist/pine-core/{p-b7f2f9f3.system.entry.js.map → p-ce47aaaa.system.entry.js.map} +0 -0
  686. /package/dist/pine-core/{p-5f63b999.entry.js.map → p-d5d9cf28.entry.js.map} +0 -0
  687. /package/dist/pine-core/{p-b3ee3c4c.system.entry.js.map → p-d6c72b79.system.entry.js.map} +0 -0
  688. /package/dist/pine-core/{p-d6139188.system.entry.js.map → p-d845fd1d.system.entry.js.map} +0 -0
  689. /package/dist/pine-core/{p-3e45826f.system.entry.js.map → p-e017b42e.system.entry.js.map} +0 -0
  690. /package/dist/pine-core/{p-d0504aa8.system.entry.js.map → p-e1402563.system.entry.js.map} +0 -0
  691. /package/dist/pine-core/{p-119ccf73.entry.js.map → p-e47524a6.entry.js.map} +0 -0
  692. /package/dist/pine-core/{p-50a439b5.entry.js.map → p-e6097fd3.entry.js.map} +0 -0
  693. /package/dist/pine-core/{p-5107c129.entry.js.map → p-e73b5859.entry.js.map} +0 -0
  694. /package/dist/pine-core/{p-72ca815d.system.entry.js.map → p-ed125c22.system.entry.js.map} +0 -0
  695. /package/dist/pine-core/{p-b6ede995.system.entry.js.map → p-eec6b183.system.entry.js.map} +0 -0
  696. /package/dist/pine-core/{p-867ef2f1.entry.js.map → p-f352e850.entry.js.map} +0 -0
  697. /package/dist/pine-core/{p-203f6e9e.entry.js.map → p-fa62518b.entry.js.map} +0 -0
  698. /package/dist/pine-core/{p-c91fd600.entry.js.map → p-fc0df65c.entry.js.map} +0 -0
  699. /package/dist/pine-core/{p-3239c67a.entry.js.map → p-fe2ba477.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { e as exposeTypeProperty, a as assignDescription, m as messageId } from './form.js';
2
+ import { e as exposeTypeProperty, i as isSpecTest, a as assignDescription, m as messageId } from './form.js';
3
3
  import { h as danger } from './index2.js';
4
4
  import { i as inheritAriaAttributes } from './attributes.js';
5
5
  import { d as defineCustomElement$2 } from './pds-icon2.js';
@@ -68,10 +68,8 @@ const PdsSwitch$1 = /*@__PURE__*/ proxyCustomElement(class PdsSwitch extends HTM
68
68
  this.updateFormValue();
69
69
  }
70
70
  updateFormValue() {
71
- var _a;
72
- if (typeof jest !== 'undefined' || typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === 'test') {
71
+ if (isSpecTest())
73
72
  return;
74
- }
75
73
  if (this.internals && this.internals.setFormValue) {
76
74
  // For switches, only send the value when checked, otherwise send null
77
75
  const formValue = this.checked ? (this.value || 'on') : null;
@@ -96,9 +94,9 @@ const PdsSwitch$1 = /*@__PURE__*/ proxyCustomElement(class PdsSwitch extends HTM
96
94
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
97
95
  }
98
96
  render() {
99
- return (h(Host, { key: 'e26422622075f925f0df3dbc2f5ea8223aed9902', class: this.switchClassNames(), "aria-disabled": this.disabled ? 'true' : null }, h("label", { key: 'b63cdac80d3cd55bc4845979f15b382c92883cf5', htmlFor: this.componentId }, h("input", Object.assign({ key: '910a7f6cd2093a6062c57c63600bb1721c147c75', "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), h("span", { key: '45661afcaba7852a6ddf6ebbf4606502bc8b72e2', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
100
- h("div", { key: 'be3a6fbf3938b7846ca3a9e6eef54d6ee25391fa', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
101
- h("div", { key: 'a5944169798ae8531f9e6414deac2c3631339b0a', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '5b864b6ac441c9bd71dc22dbc9722c87c1b781e6', icon: danger, size: "small" }), this.errorMessage)));
97
+ return (h(Host, { key: '44d1401d7a2a2001d75d62a498d12d6a3373aec6', class: this.switchClassNames(), "aria-disabled": this.disabled ? 'true' : null }, h("label", { key: '476d358c612e0ba5d6898171e25a6aee7e29bd74', htmlFor: this.componentId }, h("input", Object.assign({ key: 'afb21f7167b09ae8e84170565260fa1791309981', "aria-describedby": assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), h("span", { key: 'e517faec437110731f9c07fe0bad77923123bdf1', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), this.helperMessage &&
98
+ h("div", { key: '676f75e0738f3a95049a35f0887e935fd365f164', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
99
+ h("div", { key: '5c93d19c9599a7b06dc03f7be2cdbe585c64ebdb', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '11fbe6ef41fe639ae8cdf9369884a53602dd5f1f', icon: danger, size: "small" }), this.errorMessage)));
102
100
  }
103
101
  static get formAssociated() { return true; }
104
102
  get el() { return this; }
@@ -1 +1 @@
1
- {"file":"pds-switch.js","mappings":"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","names":["PdsSwitch","__stencil_proxyCustomElement"],"sources":["src/global/styles/utils/label.scss?tag=pds-switch&encapsulation=shadow","src/components/pds-switch/pds-switch.scss?tag=pds-switch&encapsulation=shadow","src/components/pds-switch/pds-switch.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",":host {\n// Need discussions\n --sizing-input-toggle-size: calc(var(--pine-dimension-250) - (var(--pine-dimension-025) * 2));\n --pine-dimension-025: 2px;\n --spacing-message-inline: calc(var(--pine-dimension-450) + var(--pine-dimension-150));\n --number-transition-timing: 0.15s ease-out;\n\n align-items: flex-start;\n color: var(--pine-color-text);\n display: inline-flex;\n flex-flow: row wrap;\n position: relative;\n}\n\n:host(.pds-switch--error) {\n color: var(--pine-color-text-message-danger);\n\n input,\n input:checked,\n input:hover:not(:disabled):not(:checked) {\n background-color: var(--pine-color-danger);\n }\n\n input:focus-visible:not(:disabled):not(:checked) {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n\n label {\n color: var(--color-text-error);\n }\n}\n\n// switch container\ninput {\n appearance: none;\n background: var(--pine-color-neutral);\n border: 0;\n border-radius: var(--pine-dimension-sm);\n cursor: pointer;\n display: inline-block;\n flex-shrink: 0;\n height: var(--pine-dimension-250);\n margin: 0;\n padding: 0;\n position: relative;\n transition: var(--number-transition-timing);\n transition-property: background, border, color;\n width: var(--pine-dimension-450);\n\n // switch toggle\n &::after {\n background: var(--pine-color-secondary);\n border-radius: var(--pine-border-radius-full);\n box-shadow: var(--pine-box-shadow);\n content: \"\";\n display: block;\n height: var(--sizing-input-toggle-size);\n inset-block-start: 50%;\n inset-inline-start: 50%;\n position: absolute;\n transform: translate3d(-100%, -50%, 0);\n transition: transform var(--number-transition-timing);\n width: var(--sizing-input-toggle-size);\n }\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-150);\n\n .pds-switch--error & {\n color: inherit;\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\n// Help and error messages\n.pds-switch__message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--pine-dimension-xs);\n margin-inline-start: var(--spacing-message-inline);\n width: 100%;\n\n + .pds-switch__message {\n margin-block-start: var(--spacing-message-inline);\n }\n}\n\n.pds-switch__message--error {\n color: inherit;\n display: flex;\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n// Disabled state\ninput:disabled {\n background-color: var(--pine-color-neutral-disabled);\n cursor: not-allowed;\n\n ~ label {\n cursor: initial;\n }\n\n &:hover::after {\n background-color: var(--pine-color-secondary);\n }\n\n .pds-switch__message {\n color: initial;\n }\n}\n\n// Hover state\ninput:hover:not(:disabled) {\n background-color: var(--pine-color-neutral-hover);\n}\n\n // Focus state\ninput:focus-visible:not(:disabled) {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n}\n\n// 'Checked' state\n// switch toggle\ninput:checked::after {\n transform: translate3d(0, -50%, 0);\n}\n\n// switch container\ninput:checked:not(:disabled) {\n background-color: currentColor;\n color: var(--pine-color-accent);\n\n &:hover {\n border-color: currentColor;\n color: var(--pine-color-accent-hover);\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, Watch } from '@stencil/core';\nimport { assignDescription, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\nimport { inheritAriaAttributes } from '@utils/attributes';\nimport type { Attributes } from '@utils/attributes';\n\n@Component({\n tag: 'pds-switch',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-switch.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsSwitch {\n private inheritedAttributes: Attributes = {};\n private internals?: ElementInternals;\n private readonly _type = 'checkbox' as const;\n\n @Element() el: HTMLPdsSwitchElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute and the label `for` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines the input 'checked' state.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Determines the input 'disabled' state, preventing user interaction.\n */\n @Prop() disabled? = false;\n\n /**\n * Displays message text describing an invalid state.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Visually hides the label text for instances where only the switch should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Displays help text for additional description of an input.\n */\n @Prop() helperMessage: string;\n\n /**\n * Determines the input 'invalid' state, signifying an error is present.\n */\n @Prop() invalid? = false;\n\n /**\n * Displays text to describe the input.\n */\n @Prop() label!: string;\n\n /**\n * Identifies form data and unifies a group of radio inputs for toggling a single property/value.\n */\n @Prop() name: string;\n\n /**\n * Determines the 'required' state of the input.\n */\n @Prop() required? = false;\n\n /**\n * Provides input with a string submitted in form data.\n */\n @Prop() value: string;\n\n\n /**\n * Emits an event on input change.\n */\n @Event() pdsSwitchChange: EventEmitter<InputEvent>;\n\n private onSwitchUpdate = (e: Event) => {\n if (this.disabled) return;\n\n const input = e.target as HTMLInputElement;\n this.checked = input.checked;\n\n this.updateFormValue();\n\n this.pdsSwitchChange.emit(e as InputEvent);\n };\n\n private switchClassNames = () => {\n let switchClasses = `pds-switch`;\n\n if (this.invalid === true) {\n switchClasses += \" pds-switch--error\";\n }\n if (this.helperMessage !== undefined) {\n switchClasses += \" pds-switch--message\";\n }\n return switchClasses;\n };\n\n connectedCallback() {\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n componentDidLoad() {\n this.updateFormValue();\n }\n\n @Watch('checked')\n checkedChanged() {\n this.updateFormValue();\n }\n\n private updateFormValue() {\n if (typeof jest !== 'undefined' || typeof process !== 'undefined' && process.env?.NODE_ENV === 'test') {\n return;\n }\n\n if (this.internals && this.internals.setFormValue) {\n // For switches, only send the value when checked, otherwise send null\n const formValue = this.checked ? (this.value || 'on') : null;\n this.internals.setFormValue(formValue);\n }\n\n if (this.internals && this.internals.setValidity) {\n this.internals.setValidity({});\n }\n }\n\n formStateRestoreCallback(state: string | FormData | null) {\n if (state instanceof FormData) {\n // For switches, restore if the value exists in FormData\n const value = this.value || 'on';\n this.checked = state.get(this.name || this.componentId) === value;\n } else if (typeof state === 'string') {\n // Restore from string state\n this.checked = state === (this.value || 'on');\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el)\n }\n }\n\n render() {\n return (\n <Host class={this.switchClassNames()} aria-disabled={this.disabled ? 'true' : null}>\n <label htmlFor={this.componentId}>\n <input\n aria-describedby={assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n checked={this.checked}\n class=\"pds-switch__input\"\n disabled={this.disabled}\n id={this.componentId}\n name={this.name ? this.name : this.componentId}\n onChange={this.onSwitchUpdate}\n required={this.required}\n type=\"checkbox\"\n value={this.value}\n {...this.inheritedAttributes}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {this.helperMessage &&\n <div\n class={`pds-switch__message`}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n }\n {this.errorMessage &&\n <div\n class={`pds-switch__message pds-switch__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </div>\n }\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pds-switch.js","mappings":"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","names":["PdsSwitch","__stencil_proxyCustomElement"],"sources":["src/global/styles/utils/label.scss?tag=pds-switch&encapsulation=shadow","src/components/pds-switch/pds-switch.scss?tag=pds-switch&encapsulation=shadow","src/components/pds-switch/pds-switch.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",":host {\n// Need discussions\n --sizing-input-toggle-size: calc(var(--pine-dimension-250) - (var(--pine-dimension-025) * 2));\n --pine-dimension-025: 2px;\n --spacing-message-inline: calc(var(--pine-dimension-450) + var(--pine-dimension-150));\n --number-transition-timing: 0.15s ease-out;\n\n align-items: flex-start;\n color: var(--pine-color-text);\n display: inline-flex;\n flex-flow: row wrap;\n position: relative;\n}\n\n:host(.pds-switch--error) {\n color: var(--pine-color-text-message-danger);\n\n input,\n input:checked,\n input:hover:not(:disabled):not(:checked) {\n background-color: var(--pine-color-danger);\n }\n\n input:focus-visible:not(:disabled):not(:checked) {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n\n label {\n color: var(--color-text-error);\n }\n}\n\n// switch container\ninput {\n appearance: none;\n background: var(--pine-color-neutral);\n border: 0;\n border-radius: var(--pine-dimension-sm);\n cursor: pointer;\n display: inline-block;\n flex-shrink: 0;\n height: var(--pine-dimension-250);\n margin: 0;\n padding: 0;\n position: relative;\n transition: var(--number-transition-timing);\n transition-property: background, border, color;\n width: var(--pine-dimension-450);\n\n // switch toggle\n &::after {\n background: var(--pine-color-secondary);\n border-radius: var(--pine-border-radius-full);\n box-shadow: var(--pine-box-shadow);\n content: \"\";\n display: block;\n height: var(--sizing-input-toggle-size);\n inset-block-start: 50%;\n inset-inline-start: 50%;\n position: absolute;\n transform: translate3d(-100%, -50%, 0);\n transition: transform var(--number-transition-timing);\n width: var(--sizing-input-toggle-size);\n }\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-150);\n\n .pds-switch--error & {\n color: inherit;\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\n// Help and error messages\n.pds-switch__message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body-sm-medium);\n margin-block-start: var(--pine-dimension-xs);\n margin-inline-start: var(--spacing-message-inline);\n width: 100%;\n\n + .pds-switch__message {\n margin-block-start: var(--spacing-message-inline);\n }\n}\n\n.pds-switch__message--error {\n color: inherit;\n display: flex;\n gap: var(--pine-dimension-2xs);\n\n pds-icon {\n margin-block-start: var(--pine-dimension-025);\n }\n}\n\n// Disabled state\ninput:disabled {\n background-color: var(--pine-color-neutral-disabled);\n cursor: not-allowed;\n\n ~ label {\n cursor: initial;\n }\n\n &:hover::after {\n background-color: var(--pine-color-secondary);\n }\n\n .pds-switch__message {\n color: initial;\n }\n}\n\n// Hover state\ninput:hover:not(:disabled) {\n background-color: var(--pine-color-neutral-hover);\n}\n\n // Focus state\ninput:focus-visible:not(:disabled) {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-border-width);\n}\n\n// 'Checked' state\n// switch toggle\ninput:checked::after {\n transform: translate3d(0, -50%, 0);\n}\n\n// switch container\ninput:checked:not(:disabled) {\n background-color: currentColor;\n color: var(--pine-color-accent);\n\n &:hover {\n border-color: currentColor;\n color: var(--pine-color-accent-hover);\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Prop, Watch } from '@stencil/core';\nimport { assignDescription, isSpecTest, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\nimport { inheritAriaAttributes } from '@utils/attributes';\nimport type { Attributes } from '@utils/attributes';\n\n@Component({\n tag: 'pds-switch',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-switch.scss'],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsSwitch {\n private inheritedAttributes: Attributes = {};\n private internals?: ElementInternals;\n private readonly _type = 'checkbox' as const;\n\n @Element() el: HTMLPdsSwitchElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute and the label `for` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines the input 'checked' state.\n */\n @Prop({ mutable: true }) checked = false;\n\n /**\n * Determines the input 'disabled' state, preventing user interaction.\n */\n @Prop() disabled? = false;\n\n /**\n * Displays message text describing an invalid state.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Visually hides the label text for instances where only the switch should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Displays help text for additional description of an input.\n */\n @Prop() helperMessage: string;\n\n /**\n * Determines the input 'invalid' state, signifying an error is present.\n */\n @Prop() invalid? = false;\n\n /**\n * Displays text to describe the input.\n */\n @Prop() label!: string;\n\n /**\n * Identifies form data and unifies a group of radio inputs for toggling a single property/value.\n */\n @Prop() name: string;\n\n /**\n * Determines the 'required' state of the input.\n */\n @Prop() required? = false;\n\n /**\n * Provides input with a string submitted in form data.\n */\n @Prop() value: string;\n\n\n /**\n * Emits an event on input change.\n */\n @Event() pdsSwitchChange: EventEmitter<InputEvent>;\n\n private onSwitchUpdate = (e: Event) => {\n if (this.disabled) return;\n\n const input = e.target as HTMLInputElement;\n this.checked = input.checked;\n\n this.updateFormValue();\n\n this.pdsSwitchChange.emit(e as InputEvent);\n };\n\n private switchClassNames = () => {\n let switchClasses = `pds-switch`;\n\n if (this.invalid === true) {\n switchClasses += \" pds-switch--error\";\n }\n if (this.helperMessage !== undefined) {\n switchClasses += \" pds-switch--message\";\n }\n return switchClasses;\n };\n\n connectedCallback() {\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n componentDidLoad() {\n this.updateFormValue();\n }\n\n @Watch('checked')\n checkedChanged() {\n this.updateFormValue();\n }\n\n private updateFormValue() {\n if (isSpecTest()) return;\n\n if (this.internals && this.internals.setFormValue) {\n // For switches, only send the value when checked, otherwise send null\n const formValue = this.checked ? (this.value || 'on') : null;\n this.internals.setFormValue(formValue);\n }\n\n if (this.internals && this.internals.setValidity) {\n this.internals.setValidity({});\n }\n }\n\n formStateRestoreCallback(state: string | FormData | null) {\n if (state instanceof FormData) {\n // For switches, restore if the value exists in FormData\n const value = this.value || 'on';\n this.checked = state.get(this.name || this.componentId) === value;\n } else if (typeof state === 'string') {\n // Restore from string state\n this.checked = state === (this.value || 'on');\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el)\n }\n }\n\n render() {\n return (\n <Host class={this.switchClassNames()} aria-disabled={this.disabled ? 'true' : null}>\n <label htmlFor={this.componentId}>\n <input\n aria-describedby={assignDescription(this.componentId, this.invalid, this.errorMessage || this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n checked={this.checked}\n class=\"pds-switch__input\"\n disabled={this.disabled}\n id={this.componentId}\n name={this.name ? this.name : this.componentId}\n onChange={this.onSwitchUpdate}\n required={this.required}\n type=\"checkbox\"\n value={this.value}\n {...this.inheritedAttributes}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {this.helperMessage &&\n <div\n class={`pds-switch__message`}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n }\n {this.errorMessage &&\n <div\n class={`pds-switch__message pds-switch__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </div>\n }\n </Host>\n );\n }\n}\n"],"version":3}
@@ -34,9 +34,9 @@ const PdsTab$1 = /*@__PURE__*/ proxyCustomElement(class PdsTab extends HTMLEleme
34
34
  return classes.filter(Boolean).join(' ');
35
35
  }
36
36
  render() {
37
- const availabilityTabEdgeInlineStart = (h("span", { key: '934d84846bd84471047f9ab7503e5bb151426cbc', class: "pds-tab-edge", role: "presentation" }));
38
- const availabilityTabEdgeInlineEnd = (h("span", { key: 'e35b9da7b312ed95dab7bf803c40a22b3485ee05', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
39
- return (h(Host, { key: '310188521230d3e16cff23b857769c4b5d04fd8d', variant: this.variant, slot: "tabs", index: this.index }, h("button", { key: '9df38c2aa1fa29487fdce62ce7dc5f67df6bcde1', 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: '4936599dd547f236880ea9a0ccabc4b50836d1d5', class: "pds-tab__content" }, h("slot", { key: '567388faf912bb307676cea9a4626ce9669087dd' })))));
37
+ const availabilityTabEdgeInlineStart = (h("span", { key: 'f960b1ef212d0df8cdb2ade77b4cac8ade1d0233', class: "pds-tab-edge", role: "presentation" }));
38
+ const availabilityTabEdgeInlineEnd = (h("span", { key: '07551a0482c3f4eb206e09e7b24b2ceacbd4f770', class: "pds-tab-edge pds-tab-edge--end", role: "presentation" }));
39
+ return (h(Host, { key: '986020fd62dbb4bd5c495523de307e5891281ccf', variant: this.variant, slot: "tabs", index: this.index }, h("button", { key: 'a3266df8aa33e59e66564db8475adc821b3d7e71', 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: 'ef72242d658212d4ea20a69167a99ba8f587f964', class: "pds-tab__content" }, h("slot", { key: '836e85c75266e858cce627a6a3de058a84937e41' })))));
40
40
  }
41
41
  get el() { return this; }
42
42
  static get style() { return pdsTabCss; }
@@ -11,7 +11,7 @@ const PdsTableBody$1 = /*@__PURE__*/ proxyCustomElement(class PdsTableBody exten
11
11
  this.__attachShadow();
12
12
  }
13
13
  render() {
14
- return (h(Host, { key: '457fc5406a1fe67055038398e03bfad97a393747', role: "rowgroup", part: "body" }, h("slot", { key: '5950bced36f7ba590f34173149cf8663ba76103b' })));
14
+ return (h(Host, { key: '109c20cf255df58dac0491ab4e82dfbb6bac96c5', role: "rowgroup", part: "body" }, h("slot", { key: 'e6bbfe380395df15bcc35107d5f3220dc817a374' })));
15
15
  }
16
16
  static get style() { return pdsTableBodyCss; }
17
17
  }, [257, "pds-table-body"]);
@@ -130,11 +130,11 @@ const PdsTableCell = /*@__PURE__*/ proxyCustomElement(class PdsTableCell extends
130
130
  return classNames.join(' ');
131
131
  }
132
132
  render() {
133
- return (h(Host, { key: 'f1526ebf858c52e01185174cb37770d130abd3ca', class: this.classNames(), role: "gridcell", part: "cell", tabIndex: this.truncate ? 0 : undefined, style: this.tableRef &&
133
+ return (h(Host, { key: '43707f930d90feb1364b9860a5dbc955049ff990', class: this.classNames(), role: "gridcell", part: "cell", tabIndex: this.truncate ? 0 : undefined, style: this.tableRef &&
134
134
  this.tableRef.fixedColumn &&
135
135
  this.tableRef.selectable
136
136
  ? { '--fixed-cell-position': '40px' }
137
- : {} }, h("slot", { key: '518a3cb3fad0bbbe029f218c2dc89596d1cd0b16' })));
137
+ : {} }, h("slot", { key: 'c4eca6f7dbf2e32e217cbfb170aba12a02acb50d' })));
138
138
  }
139
139
  get hostElement() { return this; }
140
140
  static get watchers() { return {
@@ -208,11 +208,11 @@ const PdsTableHeadCell = /*@__PURE__*/ proxyCustomElement(class PdsTableHeadCell
208
208
  return classNames.join(' ');
209
209
  }
210
210
  render() {
211
- return (h(Host, { key: 'a0196e242282574b969375a4767950ffd7a1e5b8', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
211
+ return (h(Host, { key: '8996942725c06b81a067c103510adea405b8fabb', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
212
212
  this.tableRef.fixedColumn &&
213
213
  this.tableRef.selectable
214
214
  ? { '--fixed-cell-position': '40px' }
215
- : {} }, h("slot", { key: '90f6d190ed912276fb8ff5607a80b592d1884d71' }), this.sortable && this.isActive && (h("pds-icon", { key: '128bd50d5163ea1690a66a4bef227480a0076f39', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
215
+ : {} }, h("slot", { key: 'ac103029fda6afad34db0c3978548f126bb4d2a6' }), this.sortable && this.isActive && (h("pds-icon", { key: '411adf3421f5f7524a995042af3f9411a321a944', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon" }))));
216
216
  }
217
217
  get hostElement() { return this; }
218
218
  static get style() { return pdsTableHeadCellCss; }
@@ -54,7 +54,7 @@ const PdsTableHead$1 = /*@__PURE__*/ proxyCustomElement(class PdsTableHead exten
54
54
  }
55
55
  }
56
56
  render() {
57
- return (h(Host, { key: 'd5d5906bdb23794b911ecd5904a4cc58aa5380d6', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (h("pds-table-head-cell", { key: '85df57fb4371e4fba855e16ce62c8329b49e08cf', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, !this.tableRef.disableSelectAll && (h("pds-checkbox", { key: '92bd5565463e29d249d1ac71d9dc0d000f3eea79', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" })))), h("slot", { key: '494dc0395da229a264c38540479f36967601cc26' })));
57
+ return (h(Host, { key: '51122f82508bc7572f932c58a87823ef36705047', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (h("pds-table-head-cell", { key: '8df08f916dbec551db5e6af62638ef3de1aaa4a2', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, !this.tableRef.disableSelectAll && (h("pds-checkbox", { key: 'c87c00d23d3a639c2a478ac1797b06f375179042', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" })))), h("slot", { key: '262bcd23f0258941235845fa12518e0aacaa8e55' })));
58
58
  }
59
59
  get hostElement() { return this; }
60
60
  static get style() { return pdsTableHeadCss; }
@@ -149,7 +149,7 @@ const PdsTableRow$1 = /*@__PURE__*/ proxyCustomElement(class PdsTableRow extends
149
149
  }
150
150
  }
151
151
  render() {
152
- return (h(Host, { key: '6bbd8bb7cd1f90de0e418748bf8d3b9240ab0cb8', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (h("pds-table-cell", { key: '9a92396654e7cdf819536335ebe95169d4d4c26d', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, h("pds-checkbox", { key: 'bf61a00da4d3c19280aae90d8eaff9515a716c52', componentId: this.generateUniqueId(), onPdsCheckboxChange: this.handleCheckboxChange, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), h("slot", { key: 'f77887e878913bea5e0ca0a281a639285a65f1c1' })));
152
+ return (h(Host, { key: '18321a22227ab1aaa558542bbc66d66378b79375', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (h("pds-table-cell", { key: 'bf0e90ee491224817ed7ae33c5c5cfa1da31a7aa', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, h("pds-checkbox", { key: 'f3dcd96601cbe822727d831827530051478046cf', componentId: this.generateUniqueId(), onPdsCheckboxChange: this.handleCheckboxChange, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), h("slot", { key: '11d1c549eb27db0909b180979bec66cc4f548de7' })));
153
153
  }
154
154
  get hostElement() { return this; }
155
155
  static get style() { return pdsTableRowCss; }
@@ -15,7 +15,7 @@ const PdsTabpanel$1 = /*@__PURE__*/ proxyCustomElement(class PdsTabpanel extends
15
15
  this.selected = false; // eslint-disable-line @stencil-community/strict-mutable
16
16
  }
17
17
  render() {
18
- return (h(Host, { key: '6ba83ea71c899d61f67884780731591a05aa1894', slot: "tabpanels" }, h("div", { key: 'abaa610f7a68a3977303e08f1221976ae2840272', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, h("slot", { key: 'b80ecc1380f424d545b31843b53de1b2854e9f28' }))));
18
+ return (h(Host, { key: '56e6a4e6523ca571c047797a17f98d0620a8655a', slot: "tabpanels" }, h("div", { key: '5abd0817b24fcc354f8c5ae3ee0465aea5daaf7d', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, h("slot", { key: '3fbcc5dcdc675de6923234d53f7877cf8ebd3586' }))));
19
19
  }
20
20
  get el() { return this; }
21
21
  static get style() { return pdsTabpanelCss; }
@@ -92,7 +92,7 @@ const PdsTabs$1 = /*@__PURE__*/ proxyCustomElement(class PdsTabs extends HTMLEle
92
92
  this.passPropsToChildren();
93
93
  }
94
94
  render() {
95
- return (h(Host, { key: '213dfbe8f2828b430ab81dce23f43c2137206861', "active-tab-name": this.activeTabName, class: this.classNames(), id: this.componentId }, h("div", { key: '68989e852e2eeed180f91e5ac901c4318d6c0d70', class: "pds-tabs__tablist", role: "tablist", "aria-label": this.tablistLabel, part: "tab-list" }, h("slot", { key: '4a06996745c049fdaf830460e8d57caefd50900b', name: "tabs" })), h("slot", { key: 'e0558392bff0955defb133b36dd4e7360f33acce', name: "tabpanels" })));
95
+ return (h(Host, { key: '9776af8309f3c013f5b313a645ba2edc67cdab6b', "active-tab-name": this.activeTabName, class: this.classNames(), id: this.componentId }, h("div", { key: '3d6ab06d67b4b45649bc045907b9a4aaa009fe47', class: "pds-tabs__tablist", role: "tablist", "aria-label": this.tablistLabel, part: "tab-list" }, h("slot", { key: '6e0edeb91ba3ed94a951fc452b89d1f61acfea54', name: "tabs" })), h("slot", { key: '9d62f9b411d18637d9a1f079d569d2c283aae4f7', name: "tabpanels" })));
96
96
  }
97
97
  get el() { return this; }
98
98
  static get style() { return pdsTabsCss; }
@@ -70,7 +70,7 @@ const PdsText = /*@__PURE__*/ proxyCustomElement(class PdsText extends HTMLEleme
70
70
  ? `pds-text--decoration-${this.decoration}`
71
71
  : ''}
72
72
  `;
73
- return (h(Tag, { key: '1d4952d18c09b26a5f2c7f64574be86c90cca553', ref: (el) => (this.contentEl = el), style: this.color && setColor(this.color), class: typeClasses, part: "content", tabIndex: this.truncate ? 0 : undefined }, h("slot", { key: '62a5caff5274601b79f35025c9382e2430118cdc' })));
73
+ return (h(Tag, { key: 'a7cf1fb996a4029573943f525a110f0ead195ad3', ref: (el) => (this.contentEl = el), style: this.color && setColor(this.color), class: typeClasses, part: "content", tabIndex: this.truncate ? 0 : undefined }, h("slot", { key: '5a6b694ac85ca92bd94c29c73b976c16cac44781' })));
74
74
  }
75
75
  get el() { return this; }
76
76
  static get watchers() { return {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { i as isRequired, e as exposeTypeProperty, a as assignDescription, m as messageId } from './form.js';
2
+ import { i as isSpecTest, b as isRequired, e as exposeTypeProperty, a as assignDescription, m as messageId } from './form.js';
3
3
  import { d as debounceEvent } from './utils.js';
4
4
  import { i as inheritAriaAttributes, a as inheritAttributes } from './attributes.js';
5
5
  import { h as danger } from './index2.js';
@@ -134,7 +134,7 @@ const PdsTextarea$1 = /*@__PURE__*/ proxyCustomElement(class PdsTextarea extends
134
134
  this.setupResizeObserver();
135
135
  }
136
136
  // Update ElementInternals validity when maxLength changes
137
- if (this.internals && this.internals.setValidity && this.nativeTextarea) {
137
+ if (!isSpecTest() && this.internals && this.internals.setValidity && this.nativeTextarea) {
138
138
  const isTooLong = this.nativeTextarea.value.length > (this.maxLength || 0);
139
139
  this.internals.setValidity({ tooLong: isTooLong }, isTooLong ? 'Value exceeds maxLength' : '', this.nativeTextarea);
140
140
  }
@@ -268,6 +268,8 @@ const PdsTextarea$1 = /*@__PURE__*/ proxyCustomElement(class PdsTextarea extends
268
268
  * Updates the form value using ElementInternals API
269
269
  */
270
270
  updateFormValue() {
271
+ if (isSpecTest())
272
+ return;
271
273
  if (this.internals && this.internals.setFormValue) {
272
274
  const value = this.getValue();
273
275
  this.internals.setFormValue(value || null);
@@ -307,10 +309,10 @@ const PdsTextarea$1 = /*@__PURE__*/ proxyCustomElement(class PdsTextarea extends
307
309
  }
308
310
  render() {
309
311
  const value = this.getValue();
310
- return (h(Host, { key: '3930616df94105a62fc1d837bda9a03526ab1f8d', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, h("div", { key: 'da1befdef1050646ebcd8dd27b93d8dc8d777a15', class: "pds-textarea" }, this.label &&
311
- h("div", { key: '4140a3852e9f3f7d490457b9c8d0d15ab04ea4c2', class: "pds-textarea__label-wrapper" }, h("label", { key: '7a38d1b5f394e0304252827c11ca5fc89c22abf9', htmlFor: this.componentId }, h("span", { key: 'da9a2cff7f0cf25d027de8cf05feae97a89e38d9', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), h("div", { key: '443e7d2fc01781ae0808c4212ba29887545c1225', class: "pds-textarea__field-wrapper" }, h("textarea", Object.assign({ key: '41c0cb685f60fec270102fb67a73d4c341033c6e', 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: '3bfc2cc6ff60ef1e54feec57c3b1194342ec6d45', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
313
- h("p", { key: 'cb288096c3398103b8458b09576fabb7154c9867', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '3274739f2dcea054a9df861f8ac5dd97f8267b4c', icon: danger, size: "small" }), this.errorMessage))));
312
+ return (h(Host, { key: '3d47132201223429519807348c47df3aa051bf40', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, h("div", { key: '6e82ddb0df1368cae8f031a85edea469d4ac017d', class: "pds-textarea" }, this.label &&
313
+ h("div", { key: '34b43e0de0a1e3731970740157bce3cc32f1d062', class: "pds-textarea__label-wrapper" }, h("label", { key: '0ce392058b43701520fae3473fc45a08a3e249b9', htmlFor: this.componentId }, h("span", { key: '8f4f4390d5fd5ef359b739dc27726eebf5c3d806', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), h("div", { key: '9d68043524998e90e07bfd57957dadac0656e972', class: "pds-textarea__field-wrapper" }, h("textarea", Object.assign({ key: '28de8bbcc85e484bc6aaaac0d4f69e80b7cbd67f', 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 &&
314
+ h("p", { key: 'b3eae1b73f8d8c4df0a227ca5763962527408766', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
315
+ h("p", { key: 'df92fc473847bd009b1e19e56ff4587c303a4403', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '109b8d6705740513e6632c4a57e9996aa25f1729', icon: danger, size: "small" }), this.errorMessage))));
314
316
  }
315
317
  static get formAssociated() { return true; }
316
318
  get el() { return this; }
@@ -1 +1 @@
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 (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n disconnectedCallback() {\n // Clean up ResizeObserver\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el),\n };\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n }\n\n componentDidLoad() {\n this.originalPdsInput = this.pdsInput;\n // Set initial form value\n this.updateFormValue();\n\n // Setup ResizeObserver for character counter positioning\n this.setupResizeObserver();\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n /**\n * Sets up ResizeObserver to track textarea resize for character counter positioning\n */\n private setupResizeObserver() {\n if (!this.maxLength || !this.nativeTextarea) return;\n\n // ResizeObserver may not be available in test environments\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n // Use requestAnimationFrame to ensure DOM updates are complete\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n });\n\n this.resizeObserver.observe(this.nativeTextarea);\n\n // Initial positioning with a small delay to ensure counter is rendered\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n }\n\n /**\n * Updates character counter position to stay within textarea boundaries during resize\n */\n private updateCharacterCounterPosition() {\n if (!this.characterCounter || !this.nativeTextarea) return;\n\n // Skip positioning in test environments where ResizeObserver isn't available\n if (typeof ResizeObserver === 'undefined') return;\n\n // Ensure the character counter has been rendered and has dimensions\n if (this.characterCounter.offsetWidth === 0 || this.characterCounter.offsetHeight === 0) {\n // Counter not ready or component hidden - return and let resize/input observers handle positioning later\n return;\n }\n\n // Position based on textarea's actual dimensions (which change during manual resize)\n const textareaWidth = this.nativeTextarea.offsetWidth;\n const textareaHeight = this.nativeTextarea.offsetHeight;\n const counterWidth = this.characterCounter.offsetWidth;\n const counterHeight = this.characterCounter.offsetHeight;\n\n // Calculate position within textarea boundaries with padding from edges\n const rightPosition = textareaWidth - counterWidth - 8;\n const bottomPosition = textareaHeight - counterHeight - 8;\n\n // Ensure counter stays within textarea boundaries even when resized very small\n const finalLeft = Math.max(8, Math.min(rightPosition, textareaWidth - counterWidth - 8));\n const finalTop = Math.max(8, Math.min(bottomPosition, textareaHeight - counterHeight - 8));\n\n // Apply absolute positioning within the field wrapper\n this.characterCounter.style.position = 'absolute';\n this.characterCounter.style.left = `${finalLeft}px`;\n this.characterCounter.style.top = `${finalTop}px`;\n this.characterCounter.style.right = 'auto';\n this.characterCounter.style.bottom = 'auto';\n }\n\n /**\n * Renders the character counter when maxLength is set\n */\n private renderCharacterCounter() {\n if (!this.maxLength) {\n return null;\n }\n\n const currentLength = this.getValue().length;\n return (\n <div\n class=\"pds-textarea__character-counter\"\n ref={(el) => this.characterCounter = el}\n role=\"status\"\n aria-live=\"polite\"\n aria-label={`${currentLength} of ${this.maxLength} characters`}\n >\n {currentLength} / {this.maxLength}\n </div>\n );\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-textarea__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (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}
1
+ {"file":"pds-textarea.js","mappings":";;;;;;;AAAA,MAAM,QAAQ,GAAG,oTAAoT;;ACArU,MAAM,iBAAiB,GAAG,uEAAuE;;ACAjG,MAAM,cAAc,GAAG,oxKAAoxK;;MCqB9xKA,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;AAyD5C;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAiBxB;;;AAGG;AACoB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC;AAavC;;AAEG;AACK,QAAA,IAAA,CAAA,IAAI,GAAW,IAAI,CAAC,WAAW;AAOvC;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAExB;;;AAGG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAiBxB;;AAEG;AACoB,QAAA,IAAK,CAAA,KAAA,GAAmB,EAAE;AAExC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAGzB;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK;AA+ElB,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,EAAc,KAAI;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YAErB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;AACpC,gBAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;;AAG1B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,SAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,EAAc,KAAI;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;AAE9B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,SAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,EAAS,KAAI;AAC9B,YAAA,MAAM,KAAK,GAAG,EAAE,CAAC,MAAoC;YACrD,IAAI,KAAK,EAAE;;AAET,gBAAA,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;;AAEzD,oBAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;;gBAExD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE;;AAEhC,YAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;;YAGxB,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;;gBAE3D,qBAAqB,CAAC,MAAK;oBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,iBAAC,CAAC;;AAEN,SAAC;AAEO,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,EAAS,KAAI;AACvC,YAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AAC1B,SAAC;AAEO,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,EAAiB,KAAI;AACxC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,SAAC;AAsQF;AA5eC;;;AAGG;AAEH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;;;IAuGrB,eAAe,GAAA;QACvB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI;AAErD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,KAAK,SAAS,GAAG,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,cAAhB,gBAAgB,GAAI,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;;AAG3G;;AAEG;IAEO,YAAY,GAAA;AACpB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;QAE7B,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,KAAK,KAAK,EAAE;AACpD,YAAA,cAAc,CAAC,KAAK,GAAG,KAAK;;;QAI9B,IAAI,CAAC,eAAe,EAAE;;QAGtB,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;YAC3D,IAAI,CAAC,8BAA8B,EAAE;;;IAK/B,gBAAgB,GAAA;;AAExB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;;QAGlC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE;;;AAI5B,QAAA,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;AACxF,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,EAAE,OAAO,EAAE,SAAS,EAAE,EACtB,SAAS,GAAG,yBAAyB,GAAG,EAAE,EAC1C,IAAI,CAAC,cAAc,CACpB;;;AAIL;;AAEG;AACK,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AAGtC;;AAEG;AACK,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA6B;AACpD,QAAA,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;AAE1B,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ;;AAG1B,QAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE;AACzD,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;IAGjD,QAAQ,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE;;IAiDjB,kBAAkB,GAAA;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,qBAAqB,CAAC;QAE1C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzC,YAAA,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;AAG/B,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG9B,iBAAiB,GAAA;QACf,IAAI,CAAC,eAAe,EAAE;;QAEtB,IAAI,IAAI,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE;;;IAI9C,oBAAoB,GAAA;;AAElB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;;;IAIpC,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,EAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9B;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI;;IAGpE,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ;;QAErC,IAAI,CAAC,eAAe,EAAE;;QAGtB,IAAI,CAAC,mBAAmB,EAAE;;AAG1B,QAAA,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC;;AAG/C;;AAEG;IACK,mBAAmB,GAAA;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;;AAG7C,QAAA,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AACzC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAK;;gBAE5C,qBAAqB,CAAC,MAAK;oBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,iBAAC,CAAC;AACJ,aAAC,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;;YAGhD,qBAAqB,CAAC,MAAK;gBACzB,IAAI,CAAC,8BAA8B,EAAE;AACvC,aAAC,CAAC;;;AAIN;;AAEG;IACK,8BAA8B,GAAA;QACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE;;QAGpD,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE;;AAG3C,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,EAAE;;YAEvF;;;AAIF,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW;AACrD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY;AACvD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW;AACtD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY;;AAGxD,QAAA,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,CAAC;AACtD,QAAA,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,CAAC;;QAGzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC;;QAG1F,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;QACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI;QACnD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAI;QACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;QAC1C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;;AAG7C;;AAEG;IACK,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,IAAI;;QAGb,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;QAC5C,QACE,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,iCAAiC,EACvC,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,GAAG,EAAE,EACvC,IAAI,EAAC,QAAQ,EACH,WAAA,EAAA,QAAQ,EACN,YAAA,EAAA,CAAG,EAAA,aAAa,CAAO,IAAA,EAAA,IAAI,CAAC,SAAS,aAAa,EAAA,EAE7D,aAAa,SAAK,IAAI,CAAC,SAAS,CAC7B;;IAIF,YAAY,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI;QACnE,IAAI,SAAS,EAAE;YACb,QACE,WAAK,KAAK,EAAC,sBAAsB,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC7C,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,QAAQ,EAAQ,CAAA,CACvB;;AAGV,QAAA,OAAO,IAAI;;AAGb;;AAEG;IACK,eAAe,GAAA;AACrB,QAAA,IAAI,UAAU,EAAE;YAAE;QAElB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AACjD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC;;AAG1C,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvE,IAAI,CAAC,SAAS,CAAC,WAAW,CACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,IAAI,CAAC,cAAc,CAAC,iBAAiB,EACrC,IAAI,CAAC,cAAc,CACpB;;;;AAMP;;AAEG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,eAAe,EAAE;;AAGxB;;AAEG;AACH,IAAA,oBAAoB,CAAC,QAAiB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B;;AAEG;AACH,IAAA,wBAAwB,CAAC,KAA+B,EAAA;AACtD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;aACb,IAAI,KAAK,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;;YAEjD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;;IAKxB,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAE7B,QAAA,QACE,CAAC,CAAA,IAAI,sEACY,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,mBAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,gBAChC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,IAAI,EAAA,EAE7D,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACtB,IAAI,CAAC,KAAK;YACT,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EAC9B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAAA,EACjD,IAAI,CAAC,KAAK,CACN,CACD,EACP,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CACnC,EAER,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAA,EAAA,0CAAA,EACE,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,GAAG,EAAE,sBACnB,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAA,cAAA,EACzE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,EAC/C,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAA,EACrB,IAAI,CAAC,mBAAmB,CAAA,EAE3B,KAAK,CACG,EACV,IAAI,CAAC,sBAAsB,EAAE,CAC1B,EACL,IAAI,CAAC,aAAa;AACjB,YAAA,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,8BAA8B,EACpC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAExC,IAAI,CAAC,aAAa,CACjB,EAEL,IAAI,CAAC,OAAO;YACX,CAAA,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EACY,WAAW,EACrB,KAAK,EAAC,6BAA6B,EACnC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAA,EAExC,CAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAU,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,OAAO,EAAG,CAAA,EACtC,IAAI,CAAC,YAAY,CAChB,CAEF,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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, isSpecTest, messageId, exposeTypeProperty } from '../../utils/form';\nimport { TextareaChangeEventDetail, TextareaInputEventDetail } from './textarea-interface';\nimport { debounceEvent } from '@utils/utils';\nimport type { Attributes } from '@utils/attributes';\nimport { inheritAttributes, inheritAriaAttributes } from '@utils/attributes';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot action - Content to be displayed in the label area, typically for help icons or links\n */\n@Component({\n tag: 'pds-textarea',\n styleUrls: [\n '../../global/styles/utils/label.scss',\n '../pds-input/pds-input.tokens.scss',\n 'pds-textarea.scss'\n ],\n shadow: true,\n formAssociated: true,\n})\nexport class PdsTextarea {\n\n private nativeTextarea?: HTMLTextAreaElement\n private focusedValue?: string | null;\n private inheritedAttributes: Attributes = {};\n private originalPdsInput?: EventEmitter<TextareaInputEventDetail>;\n private internals?: ElementInternals;\n private resizeObserver?: ResizeObserver;\n private characterCounter?: HTMLElement;\n private readonly _type = 'textarea' as const;\n\n @Element() el: HTMLPdsTextareaElement;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() pdsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the input has focus.\n */\n @Event() pdsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when a keyboard input occurs.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n @Event() pdsInput: EventEmitter<TextareaInputEventDetail>;\n\n /**\n * Event emitted whenever the value of the textarea changes.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n @Event() pdsTextareaChange: EventEmitter<TextareaChangeEventDetail>;\n\n /**\n * Emitted when a key is pressed down in the textarea.\n */\n @Event() pdsKeyDown!: EventEmitter<KeyboardEvent>;\n\n /**\n * Sets focus on the native `textarea` in the `pds-textarea`. Use this method instead of the global\n * `textarea.focus()`.\n */\n @Method()\n async setFocus() {\n if (this.nativeTextarea) {\n this.nativeTextarea.focus();\n }\n }\n\n /**\n * Specifies if and how the browser provides `autocomplete` assistance for the field.\n */\n @Prop() autocomplete: string;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Determines whether or not the textarea is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the event after each keystroke.\n */\n @Prop() debounce?: number;\n\n /**\n * Displays an error message below the textarea field.\n */\n @Prop() errorMessage?: string;\n\n /**\n * Displays a message or hint below the textarea field.\n */\n @Prop() helperMessage?: string;\n\n /**\n * Determines whether or not the textarea is invalid or throws an error.\n * @defaultValue false\n */\n @Prop({mutable: true}) invalid = false; // eslint-disable-line @stencil-community/strict-mutable\n\n /**\n * Text to be displayed as the textarea label.\n */\n @Prop() label?: string;\n\n /**\n * Visually hides the label text for instances where only the textarea should be displayed. Label remains accessible to assistive technology such as screen readers.\n * Note: When true, the action slot is also hidden to maintain a minimal UI.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * Specifies the name. Submitted with the form name/value pair. This value will mirror the componentId.\n */\n @Prop() name: string = this.componentId;\n\n /**\n * Specifies a short hint that describes the expected value of the textarea.\n */\n @Prop() placeholder?: string;\n\n /**\n * Determines whether or not the textarea is readonly.\n * @defaultValue false\n */\n @Prop() readonly = false;\n\n /**\n * Determines whether or not the textarea is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Sets number of rows of text visible without needing to scroll in the textarea.\n */\n @Prop() rows?: number;\n\n /**\n * Specifies the maximum number of characters allowed in the textarea. When set, displays a character counter.\n */\n @Prop({ reflect: true }) maxLength?: number;\n\n /**\n * Applies highlight styling to the textarea field.\n */\n @Prop({ reflect: true }) highlight?: boolean;\n\n /**\n * The value of the textarea.\n */\n @Prop({mutable: true}) value?: string | null = '';\n\n @State() hasFocus = false;\n\n\n /**\n * If true, the textarea has action content in the label area\n */\n @State() hasAction = false;\n\n @Watch('debounce')\n protected debounceChanged() {\n const { pdsInput, debounce, originalPdsInput } = this;\n\n this.pdsInput = debounce === undefined ? originalPdsInput ?? pdsInput : debounceEvent(pdsInput, debounce);\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n const nativeTextarea = this.nativeTextarea;\n const value = this.getValue();\n\n if (nativeTextarea && nativeTextarea.value !== value) {\n nativeTextarea.value = value;\n }\n\n // Update form value for Form Associated Custom Elements API\n this.updateFormValue();\n\n // Update character counter position in case content changes affect sizing\n if (this.maxLength && typeof ResizeObserver !== 'undefined') {\n this.updateCharacterCounterPosition();\n }\n }\n\n @Watch('maxLength')\n protected maxLengthChanged() {\n // Setup or teardown ResizeObserver based on maxLength\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.maxLength && this.nativeTextarea) {\n this.setupResizeObserver();\n }\n\n // Update ElementInternals validity when maxLength changes\n if (!isSpecTest() && this.internals && this.internals.setValidity && this.nativeTextarea) {\n const isTooLong = this.nativeTextarea.value.length > (this.maxLength || 0);\n this.internals.setValidity(\n { tooLong: isTooLong },\n isTooLong ? 'Value exceeds maxLength' : '',\n this.nativeTextarea\n );\n }\n }\n\n /**\n * Emits an `pdsInput` event.\n */\n private emitInputChange(event?: Event) {\n const { value } = this;\n this.pdsInput.emit({ value, event });\n }\n\n /**\n * Emits an `pdsTextareaChange` event.\n */\n private emitValueChange(event?: Event) {\n const textarea = event.target as HTMLTextAreaElement;\n isRequired(textarea, this);\n\n const { value } = textarea;\n\n // Checks for both null and undefined values\n const newValue = value == null ? value : value.toString();\n this.focusedValue = newValue;\n this.pdsTextareaChange.emit({ value: newValue, event });\n }\n\n private getValue(): string {\n return this.value || '';\n }\n\n private onBlur = (ev: FocusEvent) => {\n this.hasFocus = false;\n\n if (this.focusedValue !== this.value) {\n this.emitValueChange(ev);\n }\n\n this.pdsBlur.emit(ev);\n };\n\n private onFocus = (ev: FocusEvent) => {\n this.hasFocus = true;\n this.focusedValue = this.value;\n\n this.pdsFocus.emit(ev);\n };\n\n private onInput = (ev: Event) => {\n const input = ev.target as HTMLTextAreaElement | null;\n if (input) {\n // Handle maxLength validation\n if (this.maxLength && input.value.length > this.maxLength) {\n // Prevent input beyond maxLength\n input.value = input.value.substring(0, this.maxLength);\n }\n this.value = input.value || '';\n }\n this.emitInputChange(ev);\n\n // Update counter position when content changes\n if (this.maxLength && typeof ResizeObserver !== 'undefined') {\n // Use requestAnimationFrame to ensure DOM is updated\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n };\n\n private onTextareaChange = (ev: Event) => {\n this.emitValueChange(ev);\n };\n\n private onKeyDown = (ev: KeyboardEvent) => {\n this.pdsKeyDown.emit(ev);\n };\n\n private textareaClassNames() {\n const classNames = ['pds-textarea__field'];\n\n if (this.invalid && this.invalid === true) {\n classNames.push('is-invalid');\n }\n\n return classNames.join(' ');\n }\n\n connectedCallback() {\n this.debounceChanged();\n // Initialize ElementInternals for form association (only once per element instance)\n if (this.el.attachInternals && !this.internals) {\n this.internals = this.el.attachInternals();\n }\n }\n\n disconnectedCallback() {\n // Clean up ResizeObserver\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el),\n };\n this.hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n }\n\n componentDidLoad() {\n this.originalPdsInput = this.pdsInput;\n // Set initial form value\n this.updateFormValue();\n\n // Setup ResizeObserver for character counter positioning\n this.setupResizeObserver();\n\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n /**\n * Sets up ResizeObserver to track textarea resize for character counter positioning\n */\n private setupResizeObserver() {\n if (!this.maxLength || !this.nativeTextarea) return;\n\n // ResizeObserver may not be available in test environments\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n // Use requestAnimationFrame to ensure DOM updates are complete\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n });\n\n this.resizeObserver.observe(this.nativeTextarea);\n\n // Initial positioning with a small delay to ensure counter is rendered\n requestAnimationFrame(() => {\n this.updateCharacterCounterPosition();\n });\n }\n }\n\n /**\n * Updates character counter position to stay within textarea boundaries during resize\n */\n private updateCharacterCounterPosition() {\n if (!this.characterCounter || !this.nativeTextarea) return;\n\n // Skip positioning in test environments where ResizeObserver isn't available\n if (typeof ResizeObserver === 'undefined') return;\n\n // Ensure the character counter has been rendered and has dimensions\n if (this.characterCounter.offsetWidth === 0 || this.characterCounter.offsetHeight === 0) {\n // Counter not ready or component hidden - return and let resize/input observers handle positioning later\n return;\n }\n\n // Position based on textarea's actual dimensions (which change during manual resize)\n const textareaWidth = this.nativeTextarea.offsetWidth;\n const textareaHeight = this.nativeTextarea.offsetHeight;\n const counterWidth = this.characterCounter.offsetWidth;\n const counterHeight = this.characterCounter.offsetHeight;\n\n // Calculate position within textarea boundaries with padding from edges\n const rightPosition = textareaWidth - counterWidth - 8;\n const bottomPosition = textareaHeight - counterHeight - 8;\n\n // Ensure counter stays within textarea boundaries even when resized very small\n const finalLeft = Math.max(8, Math.min(rightPosition, textareaWidth - counterWidth - 8));\n const finalTop = Math.max(8, Math.min(bottomPosition, textareaHeight - counterHeight - 8));\n\n // Apply absolute positioning within the field wrapper\n this.characterCounter.style.position = 'absolute';\n this.characterCounter.style.left = `${finalLeft}px`;\n this.characterCounter.style.top = `${finalTop}px`;\n this.characterCounter.style.right = 'auto';\n this.characterCounter.style.bottom = 'auto';\n }\n\n /**\n * Renders the character counter when maxLength is set\n */\n private renderCharacterCounter() {\n if (!this.maxLength) {\n return null;\n }\n\n const currentLength = this.getValue().length;\n return (\n <div\n class=\"pds-textarea__character-counter\"\n ref={(el) => this.characterCounter = el}\n role=\"status\"\n aria-live=\"polite\"\n aria-label={`${currentLength} of ${this.maxLength} characters`}\n >\n {currentLength} / {this.maxLength}\n </div>\n );\n }\n\n private renderAction() {\n const hasAction = this.el.querySelector('[slot=\"action\"]') !== null;\n if (hasAction) {\n return (\n <div class=\"pds-textarea__action\" part=\"action\">\n <slot name=\"action\"></slot>\n </div>\n );\n }\n return null;\n }\n\n /**\n * Updates the form value using ElementInternals API\n */\n private updateFormValue() {\n if (isSpecTest()) return;\n\n if (this.internals && this.internals.setFormValue) {\n const value = this.getValue();\n this.internals.setFormValue(value || null);\n\n // Set validity based on native textarea validation\n if (this.nativeTextarea && this.internals && this.internals.setValidity) {\n this.internals.setValidity(\n this.nativeTextarea.validity,\n this.nativeTextarea.validationMessage,\n this.nativeTextarea\n );\n }\n }\n }\n\n\n /**\n * Form Associated Custom Elements API: Called when the form is reset\n */\n formResetCallback() {\n this.value = '';\n this.updateFormValue();\n }\n\n /**\n * Form Associated Custom Elements API: Called when the form is disabled\n */\n formDisabledCallback(disabled: boolean) {\n this.disabled = disabled;\n }\n\n /**\n * Form Associated Custom Elements API: Called to restore form state\n */\n formStateRestoreCallback(state: string | FormData | null) {\n if (typeof state === 'string') {\n this.value = state;\n } else if (state instanceof FormData && this.name) {\n // Extract value from FormData using the textarea's name\n const value = state.get(this.name);\n if (typeof value === 'string') {\n this.value = value;\n }\n }\n }\n\n render() {\n const value = this.getValue();\n\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n aria-readonly={this.readonly ? 'true' : null}\n has-action={this.hasAction && !this.hideLabel ? 'true' : null}\n >\n <div class=\"pds-textarea\">\n {this.label &&\n <div class=\"pds-textarea__label-wrapper\">\n <label htmlFor={this.componentId}>\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>\n {!this.hideLabel && this.renderAction()}\n </div>\n }\n <div class=\"pds-textarea__field-wrapper\">\n <textarea\n ref={(el) => this.nativeTextarea = el }\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n autocomplete={this.autocomplete}\n class={this.textareaClassNames()}\n disabled={this.disabled}\n id={this.componentId}\n maxlength={this.maxLength}\n name={this.name}\n placeholder={this.placeholder}\n readOnly={this.readonly}\n required={this.required}\n rows={this.rows}\n onBlur={this.onBlur}\n onChange={this.onTextareaChange}\n onFocus={this.onFocus}\n onInput={this.onInput}\n onKeyDown={this.onKeyDown}\n {...this.inheritedAttributes}\n >\n {value}\n </textarea>\n {this.renderCharacterCounter()}\n </div>\n {this.helperMessage &&\n <p\n class=\"pds-textarea__helper-message\"\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </p>\n }\n {this.invalid &&\n <p\n aria-live=\"assertive\"\n class=\"pds-textarea__error-message\"\n id={messageId(this.componentId, 'error')}\n >\n <pds-icon icon={danger} size=\"small\" />\n {this.errorMessage}\n </p>\n }\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -87,13 +87,13 @@ const PdsToast$1 = /*@__PURE__*/ proxyCustomElement(class PdsToast extends HTMLE
87
87
  return this.icon && h("pds-icon", { name: this.icon, class: "pds-toast__icon" });
88
88
  }
89
89
  render() {
90
- return (h(Host, { key: '321c06e28eefaf088bf4dfad01f0db68778e99b5', hidden: !this.isVisible }, h("div", { key: '540e3256517b8822cda1cf5aae6da42d8e6fbe65', class: {
90
+ return (h(Host, { key: 'c5334a7b7c5c711b5199648296ef135908e764f9', hidden: !this.isVisible }, h("div", { key: 'fde78b6b46b4b4c2382d84363a0776708802e1ff', class: {
91
91
  'pds-toast': true,
92
92
  [`pds-toast--${this.type}`]: this.type !== 'default',
93
93
  'pds-toast--animating-out': this.isAnimatingOut
94
- }, role: "alert", "aria-live": "polite" }, this.renderIcon(), h("span", { key: 'd558a8b71aac4cc37536b793dd75625ffa3d970e', class: "pds-toast__message" }, h("slot", { key: 'a208456409cafbe0f8fbba2d2de3e26e73ed412f' })), this.dismissible && (h("button", { key: '530a9adf4628ecfcbb40adf618685457c6088e8b', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
94
+ }, role: "alert", "aria-live": "polite" }, this.renderIcon(), h("span", { key: 'fcf8dab1c1fbae1931877d51d2c0bbdf2a560559', class: "pds-toast__message" }, h("slot", { key: '8c13032c06bb06fe54c9809b004f79458751d4c6' })), this.dismissible && (h("button", { key: '36a4442139bdf1f15bed18570360feef7d820434', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
95
95
  this.dismiss();
96
- }, "aria-label": "Dismiss message" }, h("pds-icon", { key: 'f49765dc7946c2d012b14d8f499e72c6ecd65c50', name: "remove" }))))));
96
+ }, "aria-label": "Dismiss message" }, h("pds-icon", { key: '21a9ab8088241e91e30d1cc0dd3fddd99fa893bd', name: "remove" }))))));
97
97
  }
98
98
  static get watchers() { return {
99
99
  "duration": ["handleDurationChange"]
@@ -1 +1 @@
1
- {"file":"pds-toast.js","mappings":"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","names":["PdsToast","__stencil_proxyCustomElement"],"sources":["src/components/pds-toast/pds-toast.scss?tag=pds-toast&encapsulation=shadow","src/components/pds-toast/pds-toast.tsx"],"sourcesContent":[":host {\n --animation-duration: 0.3s;\n --animation-timing: cubic-bezier(0.4, 0, 0.2, 1);\n --padding-inline: var(--pine-dimension-md);\n --padding-inline-desktop: var(--pine-dimension-2xl);\n --sizing-height-default: 68px;\n --sizing-min-width: calc(var(--sizing-total-width) - (var(--padding-inline) * 2));\n --sizing-min-width-desktop: calc(var(--sizing-total-width) - (var(--padding-inline-desktop) * 2));\n --sizing-total-width: 350px;\n\n box-sizing: border-box;\n display: block;\n font: var(--pine-typography-body-medium);\n}\n\n.pds-toast {\n align-items: center;\n animation: pds-toast-animate-in var(--animation-duration) var(--animation-timing);\n background-color: var(--pine-color-primary);\n border-radius: var(--pine-dimension-xs);\n box-shadow: var(--pine-box-shadow);\n color: var(--pine-color-text-primary);\n display: flex;\n height: var(--sizing-height-default);\n justify-content: flex-start;\n margin-block-end: var(--pine-dimension-2xs);\n max-width: 90vw;\n min-width: var(--sizing-min-width);\n padding: 0 var(--padding-inline);\n position: relative;\n width: fit-content;\n\n @media screen and (max-width: 767px) {\n height: 36px;\n max-width: calc(100vw - (var(--pine-dimension-2xs) * 2));\n min-width: auto;\n padding-inline: var(--pine-dimension-2xs);\n }\n\n &--danger {\n background-color: var(--pine-color-danger);\n }\n\n &--loading {\n .pds-toast__loader {\n align-items: center;\n display: flex;\n justify-content: center;\n margin-inline-end: var(--pine-dimension-sm);\n position: relative;\n\n &-spinner {\n animation: pds-toast-rotate 2s linear infinite;\n height: 20px;\n width: 20px;\n }\n\n &-path {\n animation: pds-toast-dash 1.5s ease-in-out infinite;\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n }\n }\n }\n}\n\n.pds-toast__icon {\n color: var(--pine-color-text-primary);\n display: inline-flex;\n margin-inline-end: var(--pine-dimension-sm);\n}\n\n.pds-toast__message {\n font: var(--pine-typography-body-sm-medium);\n margin-inline-end: auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n // Style all slotted links\n ::slotted(a) {\n color: var(--pine-color-text-primary);\n margin-inline-start: var(--pine-dimension-xs);\n opacity: 0.7;\n text-decoration: underline;\n\n &:hover,\n &:focus-visible {\n opacity: 1;\n }\n\n &:focus-visible {\n outline: 2px solid var(--pine-color-text-primary);\n outline-offset: 2px;\n }\n }\n}\n\n.pds-toast__button {\n align-items: center;\n background: none;\n border: 0;\n border-radius: var(--pine-border-radius-full);\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n margin-inline-start: var(--pine-dimension-md);\n opacity: 0.7;\n padding: 0;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n\n &:focus {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-dimension-2xs);\n }\n}\n\n// Animation keyframes\n@keyframes pds-toast-animate-in {\n from {\n opacity: 0;\n transform: translateY(100%);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes pds-toast-animate-out {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100%);\n }\n}\n\n// Loading animation keyframes\n@keyframes pds-toast-rotate {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pds-toast-dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124;\n }\n}\n\n// Animation for dismissing\n:host([hidden]) .pds-toast,\n.pds-toast--animating-out {\n animation: pds-toast-animate-out var(--animation-duration) var(--animation-timing) forwards;\n pointer-events: none; /* Prevent interaction during animation */\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'pds-toast',\n styleUrl: 'pds-toast.scss',\n shadow: true,\n})\nexport class PdsToast {\n // Props\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Whether the toast can be dismissed manually via the close button.\n * Note: This only controls manual dismissal. Auto-dismissal via duration still applies.\n * @default true\n */\n @Prop() dismissible: boolean = true;\n\n /**\n * The duration in milliseconds to show the toast before auto-dismissing.\n * Set to 0 to disable auto-dismiss.\n * @default 4500\n */\n @Prop() duration: number = 4500;\n\n /**\n * The name of the icon to display in the toast.\n */\n @Prop() icon?: string;\n\n /**\n * The type of toast to display.\n * - default: Grey background (default)\n * - danger: Red background\n * - loading: With spinner animation\n * @default 'default'\n */\n @Prop() type: 'default' | 'danger' | 'loading' = 'default';\n\n /**\n * Whether the toast is currently visible.\n */\n @State() isVisible: boolean = true;\n\n /**\n * Whether the toast is animating out.\n */\n @State() isAnimatingOut: boolean = false;\n\n // Private properties\n /**\n * Timer for auto-dismissal\n */\n private dismissTimer?: number;\n\n /**\n * Event emitted when the toast is dismissed, either manually or automatically.\n */\n @Event() pdsToastDismissed: EventEmitter<{ componentId?: string }>;\n\n componentDidLoad() {\n if (this.duration > 0) {\n this.startDismissTimer();\n }\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n\n @Watch('duration')\n handleDurationChange(newDuration: number) {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n if (newDuration > 0) {\n this.startDismissTimer();\n }\n }\n\n @Method()\n async dismiss(): Promise<void> {\n // Start the animation out\n this.isAnimatingOut = true;\n\n // Wait for animation to complete before hiding and cleanup\n await new Promise((resolve) => setTimeout(resolve, 300)); // Match --animation-duration\n\n this.isVisible = false;\n this.cleanup();\n this.pdsToastDismissed.emit({ componentId: this.componentId });\n }\n\n // Private methods\n private cleanup(): void {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n }\n\n private startDismissTimer(): void {\n this.dismissTimer = window.setTimeout(() => {\n this.dismiss();\n }, this.duration);\n }\n\n private renderIcon() {\n // Loading type takes priority\n if (this.type === 'loading') {\n return (\n <div class=\"pds-toast__loader\">\n <svg class=\"pds-toast__loader-spinner\" viewBox=\"25 25 50 50\" aria-hidden=\"true\">\n <circle class=\"pds-toast__loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" />\n </svg>\n </div>\n );\n }\n\n // Return icon if provided, otherwise undefined (which renders as nothing)\n return this.icon && <pds-icon name={this.icon} class=\"pds-toast__icon\" />;\n }\n\n render() {\n return (\n <Host hidden={!this.isVisible}>\n <div\n class={{\n 'pds-toast': true,\n [`pds-toast--${this.type}`]: this.type !== 'default',\n 'pds-toast--animating-out': this.isAnimatingOut\n }}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {this.renderIcon()}\n\n <span class=\"pds-toast__message\">\n <slot></slot>\n </span>\n\n {this.dismissible && (\n <button\n type=\"button\"\n part=\"dismiss\"\n class=\"pds-toast__button\"\n onClick={() => {\n this.dismiss();\n }}\n aria-label=\"Dismiss message\"\n >\n <pds-icon name=\"remove\" />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"pds-toast.js","mappings":"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","names":["PdsToast","__stencil_proxyCustomElement"],"sources":["src/components/pds-toast/pds-toast.scss?tag=pds-toast&encapsulation=shadow","src/components/pds-toast/pds-toast.tsx"],"sourcesContent":[":host {\n --animation-duration: 0.3s;\n --animation-timing: cubic-bezier(0.4, 0, 0.2, 1);\n --padding-inline: var(--pine-dimension-md);\n --padding-inline-desktop: var(--pine-dimension-2xl);\n --sizing-height-default: 68px;\n --sizing-min-width: calc(var(--sizing-total-width) - (var(--padding-inline) * 2));\n --sizing-min-width-desktop: calc(var(--sizing-total-width) - (var(--padding-inline-desktop) * 2));\n --sizing-total-width: 350px;\n\n box-sizing: border-box;\n display: block;\n font: var(--pine-typography-body-medium);\n}\n\n.pds-toast {\n align-items: center;\n animation: pds-toast-animate-in var(--animation-duration) var(--animation-timing);\n background-color: var(--pine-color-primary);\n border-radius: var(--pine-dimension-xs);\n box-shadow: var(--pine-box-shadow);\n color: var(--pine-color-text-primary);\n display: flex;\n height: var(--sizing-height-default);\n justify-content: flex-start;\n margin-block-end: var(--pine-dimension-2xs);\n max-width: 90vw;\n min-width: var(--sizing-min-width);\n padding: 0 var(--padding-inline);\n position: relative;\n width: fit-content;\n\n @media screen and (max-width: 767px) {\n height: 36px;\n max-width: calc(100vw - (var(--pine-dimension-2xs) * 2));\n min-width: auto;\n padding-inline: var(--pine-dimension-2xs);\n }\n\n &--danger {\n background-color: var(--pine-color-danger);\n }\n\n &--loading {\n .pds-toast__loader {\n align-items: center;\n display: flex;\n justify-content: center;\n margin-inline-end: var(--pine-dimension-sm);\n position: relative;\n\n &-spinner {\n animation: pds-toast-rotate 2s linear infinite;\n height: 20px;\n width: 20px;\n }\n\n &-path {\n animation: pds-toast-dash 1.5s ease-in-out infinite;\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n }\n }\n }\n}\n\n.pds-toast__icon {\n color: var(--pine-color-text-primary);\n display: inline-flex;\n margin-inline-end: var(--pine-dimension-sm);\n}\n\n.pds-toast__message {\n font: var(--pine-typography-body-sm-medium);\n margin-inline-end: auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n // Style all slotted links\n ::slotted(a) {\n color: var(--pine-color-text-primary);\n margin-inline-start: var(--pine-dimension-xs);\n opacity: 0.7;\n text-decoration: underline;\n\n &:hover,\n &:focus-visible {\n opacity: 1;\n }\n\n &:focus-visible {\n outline: 2px solid var(--pine-color-text-primary);\n outline-offset: 2px;\n }\n }\n}\n\n.pds-toast__button {\n align-items: center;\n background: none;\n border: 0;\n border-radius: var(--pine-border-radius-full);\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n margin-inline-start: var(--pine-dimension-md);\n opacity: 0.7;\n padding: 0;\n white-space: nowrap;\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n\n &:focus {\n outline: var(--pine-outline-focus);\n outline-offset: var(--pine-dimension-2xs);\n }\n}\n\n// Animation keyframes\n@keyframes pds-toast-animate-in {\n from {\n opacity: 0;\n transform: translateY(100%);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes pds-toast-animate-out {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(100%);\n }\n}\n\n// Loading animation keyframes\n@keyframes pds-toast-rotate {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pds-toast-dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124;\n }\n}\n\n// Animation for dismissing\n:host([hidden]) .pds-toast,\n.pds-toast--animating-out {\n animation: pds-toast-animate-out var(--animation-duration) var(--animation-timing) forwards;\n pointer-events: none; /* Prevent interaction during animation */\n}\n","import { Component, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from '@stencil/core';\n\n/**\n * @part dismiss\n */\n@Component({\n tag: 'pds-toast',\n styleUrl: 'pds-toast.scss',\n shadow: true,\n})\nexport class PdsToast {\n // Props\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * Whether the toast can be dismissed manually via the close button.\n * Note: This only controls manual dismissal. Auto-dismissal via duration still applies.\n * @default true\n */\n @Prop() dismissible: boolean = true;\n\n /**\n * The duration in milliseconds to show the toast before auto-dismissing.\n * Set to 0 to disable auto-dismiss.\n * @default 4500\n */\n @Prop() duration: number = 4500;\n\n /**\n * The name of the icon to display in the toast.\n */\n @Prop() icon?: string;\n\n /**\n * The type of toast to display.\n * - default: Grey background (default)\n * - danger: Red background\n * - loading: With spinner animation\n * @default 'default'\n */\n @Prop() type: 'default' | 'danger' | 'loading' = 'default';\n\n /**\n * Whether the toast is currently visible.\n */\n @State() isVisible: boolean = true;\n\n /**\n * Whether the toast is animating out.\n */\n @State() isAnimatingOut: boolean = false;\n\n // Private properties\n /**\n * Timer for auto-dismissal\n */\n private dismissTimer?: number;\n\n /**\n * Event emitted when the toast is dismissed, either manually or automatically.\n */\n @Event() pdsToastDismissed: EventEmitter<{ componentId?: string }>;\n\n componentDidLoad() {\n if (this.duration > 0) {\n this.startDismissTimer();\n }\n }\n\n disconnectedCallback() {\n this.cleanup();\n }\n\n @Watch('duration')\n handleDurationChange(newDuration: number) {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n if (newDuration > 0) {\n this.startDismissTimer();\n }\n }\n\n @Method()\n async dismiss(): Promise<void> {\n // Start the animation out\n this.isAnimatingOut = true;\n\n // Wait for animation to complete before hiding and cleanup\n await new Promise((resolve) => setTimeout(resolve, 300)); // Match --animation-duration\n\n this.isVisible = false;\n this.cleanup();\n this.pdsToastDismissed.emit({ componentId: this.componentId });\n }\n\n // Private methods\n private cleanup(): void {\n if (this.dismissTimer) {\n window.clearTimeout(this.dismissTimer);\n this.dismissTimer = undefined;\n }\n }\n\n private startDismissTimer(): void {\n this.dismissTimer = window.setTimeout(() => {\n this.dismiss();\n }, this.duration);\n }\n\n private renderIcon() {\n // Loading type takes priority\n if (this.type === 'loading') {\n return (\n <div class=\"pds-toast__loader\">\n <svg class=\"pds-toast__loader-spinner\" viewBox=\"25 25 50 50\" aria-hidden=\"true\">\n <circle class=\"pds-toast__loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" />\n </svg>\n </div>\n );\n }\n\n // Return icon if provided, otherwise undefined (which renders as nothing)\n return this.icon && <pds-icon name={this.icon} class=\"pds-toast__icon\" />;\n }\n\n render() {\n return (\n <Host hidden={!this.isVisible}>\n <div\n class={{\n 'pds-toast': true,\n [`pds-toast--${this.type}`]: this.type !== 'default',\n 'pds-toast--animating-out': this.isAnimatingOut\n }}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {this.renderIcon()}\n\n <span class=\"pds-toast__message\">\n <slot></slot>\n </span>\n\n {this.dismissible && (\n <button\n type=\"button\"\n part=\"dismiss\"\n class=\"pds-toast__button\"\n onClick={() => {\n this.dismiss();\n }}\n aria-label=\"Dismiss message\"\n >\n <pds-icon name=\"remove\" />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -315,9 +315,9 @@ const PdsTooltip$1 = /*@__PURE__*/ proxyCustomElement(class PdsTooltip extends H
315
315
  }
316
316
  render() {
317
317
  const hostId = this.componentId || undefined;
318
- return (h(Host, { key: '4e6188e03c2f1d33e571b96a3006a585840716bd', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, h("span", { key: '0b82d180295421c32548577fb2038422b8ebd3be', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
318
+ return (h(Host, { key: '1ac048fb5e323db27ac875ea987251e92a58853b', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, h("span", { key: '37b52157f53e8394befb80edb15c510377425df8', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
319
319
  /* focusin/out bubble; ensure keyboard users see tooltips */
320
- onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, h("slot", { key: '661014ee46b11bcc906e7b64ef8c8a5739d459f0' })), h("div", { key: '1861ce9b260f5f7d2eb0a1f337dadd63a0dfee97', class: "pds-tooltip__content-slot-wrapper", hidden: true }, h("slot", { key: '963fb263c72fba432c2b672a2c3e85ca524f2b67', name: "content" }))));
320
+ onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, h("slot", { key: '8b47c6349a370b92c908cf74d4ccd452cbba54fb' })), h("div", { key: 'abb222fd6be2e43c899ff9fb39f7a766dd8a7b87', class: "pds-tooltip__content-slot-wrapper", hidden: true }, h("slot", { key: '7e868254fcb0257e6cff0f1b47c4bdcfe690b105', name: "content" }))));
321
321
  }
322
322
  get el() { return this; }
323
323
  static get watchers() { return {