@pine-ds/core 3.11.0 → 3.12.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 (922) hide show
  1. package/components/index.d.ts +2 -0
  2. package/components/index.js +1 -0
  3. package/components/index.js.map +1 -1
  4. package/components/index2.js +1 -1
  5. package/components/mock-pds-modal.js +1 -1
  6. package/components/mock-pds-modal.js.map +1 -1
  7. package/components/pds-accordion.js +1 -1
  8. package/components/pds-accordion.js.map +1 -1
  9. package/components/pds-alert.js +2 -2
  10. package/components/pds-alert.js.map +1 -1
  11. package/components/pds-avatar.js +1 -1
  12. package/components/pds-avatar.js.map +1 -1
  13. package/components/pds-box2.js +1 -1
  14. package/components/pds-box2.js.map +1 -1
  15. package/components/pds-button2.js +1 -1
  16. package/components/pds-button2.js.map +1 -1
  17. package/components/pds-checkbox2.js +2 -2
  18. package/components/pds-checkbox2.js.map +1 -1
  19. package/components/pds-chip2.js +2 -2
  20. package/components/pds-chip2.js.map +1 -1
  21. package/components/pds-combobox.js +1 -1
  22. package/components/pds-combobox.js.map +1 -1
  23. package/components/pds-copytext.js +2 -2
  24. package/components/pds-copytext.js.map +1 -1
  25. package/components/pds-dropdown-menu-item.js +1 -1
  26. package/components/pds-dropdown-menu-item.js.map +1 -1
  27. package/components/pds-dropdown-menu-separator.js +1 -1
  28. package/components/pds-dropdown-menu-separator.js.map +1 -1
  29. package/components/pds-dropdown-menu.js +30 -11
  30. package/components/pds-dropdown-menu.js.map +1 -1
  31. package/components/pds-filter.js +1 -1
  32. package/components/pds-filter.js.map +1 -1
  33. package/components/pds-input.js +2 -2
  34. package/components/pds-input.js.map +1 -1
  35. package/components/pds-link2.js +1 -1
  36. package/components/pds-link2.js.map +1 -1
  37. package/components/pds-loader2.js +1 -1
  38. package/components/pds-loader2.js.map +1 -1
  39. package/components/pds-modal-content.js +1 -1
  40. package/components/pds-modal-content.js.map +1 -1
  41. package/components/pds-popover.js +6 -3
  42. package/components/pds-popover.js.map +1 -1
  43. package/components/pds-progress.js +1 -1
  44. package/components/pds-progress.js.map +1 -1
  45. package/components/pds-radio-group.d.ts +11 -0
  46. package/components/pds-radio-group.js +211 -0
  47. package/components/pds-radio-group.js.map +1 -0
  48. package/components/pds-radio.js +10 -5
  49. package/components/pds-radio.js.map +1 -1
  50. package/components/pds-row.js +1 -1
  51. package/components/pds-select.js +3 -3
  52. package/components/pds-select.js.map +1 -1
  53. package/components/pds-sortable-item.js +2 -2
  54. package/components/pds-sortable.js +1 -1
  55. package/components/pds-sortable.js.map +1 -1
  56. package/components/pds-switch.js +5 -5
  57. package/components/pds-switch.js.map +1 -1
  58. package/components/pds-tab.js +4 -4
  59. package/components/pds-tab.js.map +1 -1
  60. package/components/pds-table-body.js +1 -1
  61. package/components/pds-table-cell2.js +2 -2
  62. package/components/pds-table-head-cell2.js +3 -3
  63. package/components/pds-table-head-cell2.js.map +1 -1
  64. package/components/pds-table-head.js +2 -2
  65. package/components/pds-table-head.js.map +1 -1
  66. package/components/pds-table-row.js +2 -2
  67. package/components/pds-table-row.js.map +1 -1
  68. package/components/pds-table.js +1 -1
  69. package/components/pds-table.js.map +1 -1
  70. package/components/pds-tabpanel.js +1 -1
  71. package/components/pds-tabs.js +2 -2
  72. package/components/pds-tabs.js.map +1 -1
  73. package/components/pds-text2.js +2 -2
  74. package/components/pds-text2.js.map +1 -1
  75. package/components/pds-textarea.js +6 -6
  76. package/components/pds-textarea.js.map +1 -1
  77. package/components/pds-toast.js +3 -3
  78. package/components/pds-tooltip.js +2 -2
  79. package/dist/cjs/{index-2Lf0E1JO.js → index-CI0W8NCh.js} +3 -3
  80. package/dist/cjs/index-CI0W8NCh.js.map +1 -0
  81. package/dist/cjs/loader.cjs.js +2 -2
  82. package/dist/cjs/mock-pds-modal.cjs.entry.js +2 -2
  83. package/dist/cjs/mock-pds-modal.entry.cjs.js.map +1 -1
  84. package/dist/cjs/pds-accordion.cjs.entry.js +2 -2
  85. package/dist/cjs/pds-accordion.entry.cjs.js.map +1 -1
  86. package/dist/cjs/pds-alert.cjs.entry.js +3 -3
  87. package/dist/cjs/pds-alert.entry.cjs.js.map +1 -1
  88. package/dist/cjs/pds-avatar.cjs.entry.js +2 -2
  89. package/dist/cjs/pds-avatar.entry.cjs.js.map +1 -1
  90. package/dist/cjs/pds-box.cjs.entry.js +2 -2
  91. package/dist/cjs/pds-box.entry.cjs.js.map +1 -1
  92. package/dist/cjs/pds-button.cjs.entry.js +2 -2
  93. package/dist/cjs/pds-button.entry.cjs.js.map +1 -1
  94. package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
  95. package/dist/cjs/pds-checkbox.entry.cjs.js.map +1 -1
  96. package/dist/cjs/pds-chip.cjs.entry.js +3 -3
  97. package/dist/cjs/pds-chip.entry.cjs.js.map +1 -1
  98. package/dist/cjs/pds-combobox.cjs.entry.js +2 -2
  99. package/dist/cjs/pds-combobox.entry.cjs.js.map +1 -1
  100. package/dist/cjs/pds-copytext.cjs.entry.js +3 -3
  101. package/dist/cjs/pds-copytext.entry.cjs.js.map +1 -1
  102. package/dist/cjs/pds-divider.cjs.entry.js +1 -1
  103. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +2 -2
  104. package/dist/cjs/pds-dropdown-menu-item.entry.cjs.js.map +1 -1
  105. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +2 -2
  106. package/dist/cjs/pds-dropdown-menu-separator.entry.cjs.js.map +1 -1
  107. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +30 -11
  108. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  109. package/dist/cjs/pds-filter.cjs.entry.js +2 -2
  110. package/dist/cjs/pds-filter.entry.cjs.js.map +1 -1
  111. package/dist/cjs/pds-filters.cjs.entry.js +1 -1
  112. package/dist/cjs/pds-icon.cjs.entry.js +1 -1
  113. package/dist/cjs/pds-image.cjs.entry.js +1 -1
  114. package/dist/cjs/pds-input.cjs.entry.js +2 -2
  115. package/dist/cjs/pds-input.entry.cjs.js.map +1 -1
  116. package/dist/cjs/pds-link.cjs.entry.js +2 -2
  117. package/dist/cjs/pds-link.entry.cjs.js.map +1 -1
  118. package/dist/cjs/pds-loader.cjs.entry.js +2 -2
  119. package/dist/cjs/pds-loader.entry.cjs.js.map +1 -1
  120. package/dist/cjs/pds-modal-content.cjs.entry.js +2 -2
  121. package/dist/cjs/pds-modal-content.entry.cjs.js.map +1 -1
  122. package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
  123. package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
  124. package/dist/cjs/pds-modal.cjs.entry.js +1 -1
  125. package/dist/cjs/pds-popover.cjs.entry.js +7 -4
  126. package/dist/cjs/pds-popover.entry.cjs.js.map +1 -1
  127. package/dist/cjs/pds-progress.cjs.entry.js +2 -2
  128. package/dist/cjs/pds-progress.entry.cjs.js.map +1 -1
  129. package/dist/cjs/pds-property.cjs.entry.js +1 -1
  130. package/dist/cjs/pds-radio-group.cjs.entry.js +170 -0
  131. package/dist/cjs/pds-radio-group.entry.cjs.js.map +1 -0
  132. package/dist/cjs/pds-radio.cjs.entry.js +10 -5
  133. package/dist/cjs/pds-radio.entry.cjs.js.map +1 -1
  134. package/dist/cjs/pds-row.cjs.entry.js +2 -2
  135. package/dist/cjs/pds-select.cjs.entry.js +3 -3
  136. package/dist/cjs/pds-select.entry.cjs.js.map +1 -1
  137. package/dist/cjs/pds-sortable-item.cjs.entry.js +2 -2
  138. package/dist/cjs/pds-sortable.cjs.entry.js +2 -2
  139. package/dist/cjs/pds-sortable.entry.cjs.js.map +1 -1
  140. package/dist/cjs/pds-switch.cjs.entry.js +5 -5
  141. package/dist/cjs/pds-switch.entry.cjs.js.map +1 -1
  142. package/dist/cjs/pds-tab.cjs.entry.js +5 -5
  143. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  144. package/dist/cjs/pds-table-body.cjs.entry.js +2 -2
  145. package/dist/cjs/pds-table-cell.cjs.entry.js +3 -3
  146. package/dist/cjs/pds-table-head-cell.cjs.entry.js +4 -4
  147. package/dist/cjs/pds-table-head-cell.entry.cjs.js.map +1 -1
  148. package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
  149. package/dist/cjs/pds-table-head.entry.cjs.js.map +1 -1
  150. package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
  151. package/dist/cjs/pds-table-row.entry.cjs.js.map +1 -1
  152. package/dist/cjs/pds-table.cjs.entry.js +2 -2
  153. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  154. package/dist/cjs/pds-tabpanel.cjs.entry.js +2 -2
  155. package/dist/cjs/pds-tabs.cjs.entry.js +3 -3
  156. package/dist/cjs/pds-tabs.entry.cjs.js.map +1 -1
  157. package/dist/cjs/pds-text.cjs.entry.js +3 -3
  158. package/dist/cjs/pds-text.entry.cjs.js.map +1 -1
  159. package/dist/cjs/pds-textarea.cjs.entry.js +6 -6
  160. package/dist/cjs/pds-textarea.entry.cjs.js.map +1 -1
  161. package/dist/cjs/pds-toast.cjs.entry.js +4 -4
  162. package/dist/cjs/pds-tooltip.cjs.entry.js +3 -3
  163. package/dist/cjs/pine-core.cjs.js +2 -2
  164. package/dist/collection/collection-manifest.json +1 -0
  165. package/dist/collection/components/_internal/pds-label/pds-label.js.map +1 -1
  166. package/dist/collection/components/pds-accordion/pds-accordion.css +1 -1
  167. package/dist/collection/components/pds-accordion/pds-accordion.js.map +1 -1
  168. package/dist/collection/components/pds-accordion/stories/pds-accordion.stories.js +0 -2
  169. package/dist/collection/components/pds-alert/pds-alert.css +1 -0
  170. package/dist/collection/components/pds-alert/pds-alert.js +1 -1
  171. package/dist/collection/components/pds-alert/pds-alert.js.map +1 -1
  172. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +3 -9
  173. package/dist/collection/components/pds-avatar/pds-avatar.css +3 -3
  174. package/dist/collection/components/pds-avatar/pds-avatar.js.map +1 -1
  175. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +0 -2
  176. package/dist/collection/components/pds-box/pds-box.css +754 -30
  177. package/dist/collection/components/pds-box/pds-box.js.map +1 -1
  178. package/dist/collection/components/pds-box/stories/pds-box.stories.js +0 -2
  179. package/dist/collection/components/pds-button/pds-button.css +11 -8
  180. package/dist/collection/components/pds-button/pds-button.js +9 -3
  181. package/dist/collection/components/pds-button/pds-button.js.map +1 -1
  182. package/dist/collection/components/pds-button/stories/pds-button.stories.js +2 -5
  183. package/dist/collection/components/pds-checkbox/checkbox-interface.js.map +1 -1
  184. package/dist/collection/components/pds-checkbox/pds-checkbox.css +3 -3
  185. package/dist/collection/components/pds-checkbox/pds-checkbox.js.map +1 -1
  186. package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +1 -9
  187. package/dist/collection/components/pds-chip/pds-chip.css +3 -3
  188. package/dist/collection/components/pds-chip/pds-chip.js +3 -3
  189. package/dist/collection/components/pds-chip/pds-chip.js.map +1 -1
  190. package/dist/collection/components/pds-chip/stories/pds-chip.stories.js +3 -9
  191. package/dist/collection/components/pds-combobox/pds-combobox.css +7 -7
  192. package/dist/collection/components/pds-combobox/pds-combobox.js.map +1 -1
  193. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +2 -9
  194. package/dist/collection/components/pds-copytext/pds-copytext.css +1 -1
  195. package/dist/collection/components/pds-copytext/pds-copytext.js +3 -3
  196. package/dist/collection/components/pds-copytext/pds-copytext.js.map +1 -1
  197. package/dist/collection/components/pds-copytext/stories/pds-copytext.stories.js +3 -9
  198. package/dist/collection/components/pds-divider/pds-divider.js.map +1 -1
  199. package/dist/collection/components/pds-divider/stories/pds-divider.stories.js +0 -2
  200. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +2 -1
  201. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js.map +1 -1
  202. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.css +1 -1
  203. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js.map +1 -1
  204. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +4 -0
  205. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +32 -10
  206. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -1
  207. package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +3 -9
  208. package/dist/collection/components/pds-filters/pds-filter/filter-interface.js.map +1 -1
  209. package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +13 -13
  210. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js.map +1 -1
  211. package/dist/collection/components/pds-filters/pds-filter/stories/pds-filter.stories.js +3 -9
  212. package/dist/collection/components/pds-filters/pds-filters.js.map +1 -1
  213. package/dist/collection/components/pds-filters/stories/pds-filters.stories.js +3 -9
  214. package/dist/collection/components/pds-image/pds-image.js.map +1 -1
  215. package/dist/collection/components/pds-image/stories/pds-image.stories.js +0 -2
  216. package/dist/collection/components/pds-input/input-interface.js.map +1 -1
  217. package/dist/collection/components/pds-input/pds-input.css +8 -2
  218. package/dist/collection/components/pds-input/pds-input.js.map +1 -1
  219. package/dist/collection/components/pds-input/stories/pds-input.stories.js +3 -13
  220. package/dist/collection/components/pds-link/pds-link.css +1 -1
  221. package/dist/collection/components/pds-link/pds-link.js.map +1 -1
  222. package/dist/collection/components/pds-link/stories/pds-link.stories.js +0 -2
  223. package/dist/collection/components/pds-loader/pds-loader.css +2 -2
  224. package/dist/collection/components/pds-loader/pds-loader.js.map +1 -1
  225. package/dist/collection/components/pds-loader/stories/pds-loader.stories.js +0 -2
  226. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.css +4 -4
  227. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js.map +1 -1
  228. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js.map +1 -1
  229. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js.map +1 -1
  230. package/dist/collection/components/pds-modal/pds-modal.js.map +1 -1
  231. package/dist/collection/components/pds-modal/stories/pds-modal.stories.js +3 -9
  232. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +7 -7
  233. package/dist/collection/components/pds-modal/test/mock-pds-modal.js.map +1 -1
  234. package/dist/collection/components/pds-popover/pds-popover.js +6 -3
  235. package/dist/collection/components/pds-popover/pds-popover.js.map +1 -1
  236. package/dist/collection/components/pds-popover/popover-interface.js.map +1 -1
  237. package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +3 -9
  238. package/dist/collection/components/pds-progress/pds-progress.css +4 -4
  239. package/dist/collection/components/pds-progress/pds-progress.js.map +1 -1
  240. package/dist/collection/components/pds-progress/stories/pds-progress.stories.js +0 -2
  241. package/dist/collection/components/pds-property/pds-property.js.map +1 -1
  242. package/dist/collection/components/pds-property/stories/pds-property.stories.js +0 -4
  243. package/dist/collection/components/pds-radio/pds-radio.css +49 -50
  244. package/dist/collection/components/pds-radio/pds-radio.js +8 -3
  245. package/dist/collection/components/pds-radio/pds-radio.js.map +1 -1
  246. package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +4 -11
  247. package/dist/collection/components/pds-radio-group/pds-radio-group.css +43 -0
  248. package/dist/collection/components/pds-radio-group/pds-radio-group.js +431 -0
  249. package/dist/collection/components/pds-radio-group/pds-radio-group.js.map +1 -0
  250. package/dist/collection/components/pds-radio-group/radio-group-interface.js +2 -0
  251. package/dist/collection/components/pds-radio-group/radio-group-interface.js.map +1 -0
  252. package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +134 -0
  253. package/dist/collection/components/pds-row/pds-row.js +1 -1
  254. package/dist/collection/components/pds-row/pds-row.js.map +1 -1
  255. package/dist/collection/components/pds-row/stories/pds-row.stories.js +0 -2
  256. package/dist/collection/components/pds-select/pds-select.css +8 -0
  257. package/dist/collection/components/pds-select/pds-select.js +1 -1
  258. package/dist/collection/components/pds-select/pds-select.js.map +1 -1
  259. package/dist/collection/components/pds-select/stories/pds-select.stories.js +3 -9
  260. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  261. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js.map +1 -1
  262. package/dist/collection/components/pds-sortable/pds-sortable-item/stories/pds-sortable-item.stories.js +0 -2
  263. package/dist/collection/components/pds-sortable/pds-sortable.js +10 -4
  264. package/dist/collection/components/pds-sortable/pds-sortable.js.map +1 -1
  265. package/dist/collection/components/pds-sortable/sortable-interface.js.map +1 -1
  266. package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +3 -9
  267. package/dist/collection/components/pds-switch/pds-switch.css +1 -1
  268. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  269. package/dist/collection/components/pds-switch/pds-switch.js.map +1 -1
  270. package/dist/collection/components/pds-switch/stories/pds-switch.stories.js +3 -9
  271. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  272. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js.map +1 -1
  273. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  274. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js.map +1 -1
  275. package/dist/collection/components/pds-table/pds-table-cell/stories/pds-table-cell.stories.js +0 -4
  276. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.css +1 -1
  277. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  278. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js.map +1 -1
  279. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +2 -2
  280. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  281. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js.map +1 -1
  282. package/dist/collection/components/pds-table/pds-table-head-cell/stories/pds-table-head-cell.stories.js +0 -4
  283. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.css +1 -1
  284. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  285. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js.map +1 -1
  286. package/dist/collection/components/pds-table/pds-table-row/stories/pds-table-row.stories.js +3 -9
  287. package/dist/collection/components/pds-table/pds-table.css +1 -1
  288. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  289. package/dist/collection/components/pds-table/stories/pds-table.stories.js +3 -9
  290. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +6 -3
  291. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js +3 -3
  292. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.js.map +1 -1
  293. package/dist/collection/components/pds-tabs/pds-tab/stories/pds-tab.stories.js +0 -4
  294. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  295. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js.map +1 -1
  296. package/dist/collection/components/pds-tabs/pds-tabpanel/stories/pds-tabpanel.stories.js +0 -4
  297. package/dist/collection/components/pds-tabs/pds-tabs.css +2 -2
  298. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  299. package/dist/collection/components/pds-tabs/pds-tabs.js.map +1 -1
  300. package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +3 -9
  301. package/dist/collection/components/pds-text/pds-text.css +1 -1
  302. package/dist/collection/components/pds-text/pds-text.js +1 -1
  303. package/dist/collection/components/pds-text/pds-text.js.map +1 -1
  304. package/dist/collection/components/pds-text/stories/pds-text.stories.js +17 -30
  305. package/dist/collection/components/pds-textarea/pds-textarea.css +8 -1
  306. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  307. package/dist/collection/components/pds-textarea/pds-textarea.js.map +1 -1
  308. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +3 -14
  309. package/dist/collection/components/pds-textarea/textarea-interface.js.map +1 -1
  310. package/dist/collection/components/pds-toast/pds-toast.js +3 -3
  311. package/dist/collection/components/pds-toast/pds-toast.js.map +1 -1
  312. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +3 -11
  313. package/dist/collection/components/pds-tooltip/pds-tooltip.js +2 -2
  314. package/dist/collection/components/pds-tooltip/pds-tooltip.js.map +1 -1
  315. package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +3 -9
  316. package/dist/collection/global/pine-ui-global.js.map +1 -1
  317. package/dist/collection/index.js +1 -0
  318. package/dist/collection/index.js.map +1 -1
  319. package/dist/collection/utils/attributes.js.map +1 -1
  320. package/dist/collection/utils/closest.js.map +1 -1
  321. package/dist/collection/utils/form.js.map +1 -1
  322. package/dist/collection/utils/interfaces.js.map +1 -1
  323. package/dist/collection/utils/overlay.js.map +1 -1
  324. package/dist/collection/utils/types.js.map +1 -1
  325. package/dist/collection/utils/utils.js.map +1 -1
  326. package/dist/docs.json +391 -26
  327. package/dist/esm/{index-CvGEHHLR.js → index-CShvJnsl.js} +3 -3
  328. package/dist/{esm-es5/index-CvGEHHLR.js.map → esm/index-CShvJnsl.js.map} +1 -1
  329. package/dist/esm/{index-Bh07GI-d.js → index-DHPhrb5T.js} +3 -3
  330. package/dist/esm/index-DHPhrb5T.js.map +1 -0
  331. package/dist/esm/loader.js +3 -3
  332. package/dist/esm/mock-pds-modal.entry.js +2 -2
  333. package/dist/esm/mock-pds-modal.entry.js.map +1 -1
  334. package/dist/esm/pds-accordion.entry.js +3 -3
  335. package/dist/esm/pds-accordion.entry.js.map +1 -1
  336. package/dist/esm/pds-alert.entry.js +3 -3
  337. package/dist/esm/pds-alert.entry.js.map +1 -1
  338. package/dist/esm/pds-avatar.entry.js +3 -3
  339. package/dist/esm/pds-avatar.entry.js.map +1 -1
  340. package/dist/esm/pds-box.entry.js +2 -2
  341. package/dist/esm/pds-box.entry.js.map +1 -1
  342. package/dist/esm/pds-button.entry.js +3 -3
  343. package/dist/esm/pds-button.entry.js.map +1 -1
  344. package/dist/esm/pds-checkbox.entry.js +3 -3
  345. package/dist/esm/pds-checkbox.entry.js.map +1 -1
  346. package/dist/esm/pds-chip.entry.js +4 -4
  347. package/dist/esm/pds-chip.entry.js.map +1 -1
  348. package/dist/esm/pds-combobox.entry.js +2 -2
  349. package/dist/esm/pds-combobox.entry.js.map +1 -1
  350. package/dist/esm/pds-copytext.entry.js +4 -4
  351. package/dist/esm/pds-copytext.entry.js.map +1 -1
  352. package/dist/esm/pds-divider.entry.js +1 -1
  353. package/dist/esm/pds-dropdown-menu-item.entry.js +2 -2
  354. package/dist/esm/pds-dropdown-menu-item.entry.js.map +1 -1
  355. package/dist/esm/pds-dropdown-menu-separator.entry.js +2 -2
  356. package/dist/esm/pds-dropdown-menu-separator.entry.js.map +1 -1
  357. package/dist/esm/pds-dropdown-menu.entry.js +31 -12
  358. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  359. package/dist/esm/pds-filter.entry.js +3 -3
  360. package/dist/esm/pds-filter.entry.js.map +1 -1
  361. package/dist/esm/pds-filters.entry.js +1 -1
  362. package/dist/esm/pds-icon.entry.js +1 -1
  363. package/dist/esm/pds-image.entry.js +1 -1
  364. package/dist/esm/pds-input.entry.js +3 -3
  365. package/dist/esm/pds-input.entry.js.map +1 -1
  366. package/dist/esm/pds-link.entry.js +3 -3
  367. package/dist/esm/pds-link.entry.js.map +1 -1
  368. package/dist/esm/pds-loader.entry.js +2 -2
  369. package/dist/esm/pds-loader.entry.js.map +1 -1
  370. package/dist/esm/pds-modal-content.entry.js +2 -2
  371. package/dist/esm/pds-modal-content.entry.js.map +1 -1
  372. package/dist/esm/pds-modal-footer.entry.js +1 -1
  373. package/dist/esm/pds-modal-header.entry.js +1 -1
  374. package/dist/esm/pds-modal.entry.js +1 -1
  375. package/dist/esm/pds-popover.entry.js +7 -4
  376. package/dist/esm/pds-popover.entry.js.map +1 -1
  377. package/dist/esm/pds-progress.entry.js +2 -2
  378. package/dist/esm/pds-progress.entry.js.map +1 -1
  379. package/dist/esm/pds-property.entry.js +1 -1
  380. package/dist/esm/pds-radio-group.entry.js +168 -0
  381. package/dist/esm/pds-radio-group.entry.js.map +1 -0
  382. package/dist/esm/pds-radio.entry.js +11 -6
  383. package/dist/esm/pds-radio.entry.js.map +1 -1
  384. package/dist/esm/pds-row.entry.js +2 -2
  385. package/dist/esm/pds-select.entry.js +4 -4
  386. package/dist/esm/pds-select.entry.js.map +1 -1
  387. package/dist/esm/pds-sortable-item.entry.js +3 -3
  388. package/dist/esm/pds-sortable.entry.js +2 -2
  389. package/dist/esm/pds-sortable.entry.js.map +1 -1
  390. package/dist/esm/pds-switch.entry.js +6 -6
  391. package/dist/esm/pds-switch.entry.js.map +1 -1
  392. package/dist/esm/pds-tab.entry.js +5 -5
  393. package/dist/esm/pds-tab.entry.js.map +1 -1
  394. package/dist/esm/pds-table-body.entry.js +2 -2
  395. package/dist/esm/pds-table-cell.entry.js +3 -3
  396. package/dist/esm/pds-table-head-cell.entry.js +5 -5
  397. package/dist/esm/pds-table-head-cell.entry.js.map +1 -1
  398. package/dist/esm/pds-table-head.entry.js +3 -3
  399. package/dist/esm/pds-table-head.entry.js.map +1 -1
  400. package/dist/esm/pds-table-row.entry.js +3 -3
  401. package/dist/esm/pds-table-row.entry.js.map +1 -1
  402. package/dist/esm/pds-table.entry.js +2 -2
  403. package/dist/esm/pds-table.entry.js.map +1 -1
  404. package/dist/esm/pds-tabpanel.entry.js +2 -2
  405. package/dist/esm/pds-tabs.entry.js +3 -3
  406. package/dist/esm/pds-tabs.entry.js.map +1 -1
  407. package/dist/esm/pds-text.entry.js +3 -3
  408. package/dist/esm/pds-text.entry.js.map +1 -1
  409. package/dist/esm/pds-textarea.entry.js +7 -7
  410. package/dist/esm/pds-textarea.entry.js.map +1 -1
  411. package/dist/esm/pds-toast.entry.js +4 -4
  412. package/dist/esm/pds-tooltip.entry.js +3 -3
  413. package/dist/esm/pine-core.js +3 -3
  414. package/dist/esm-es5/{index-CvGEHHLR.js → index-CShvJnsl.js} +2 -2
  415. package/dist/{esm/index-CvGEHHLR.js.map → esm-es5/index-CShvJnsl.js.map} +1 -1
  416. package/dist/esm-es5/index-DHPhrb5T.js +3 -0
  417. package/dist/esm-es5/index-DHPhrb5T.js.map +1 -0
  418. package/dist/esm-es5/loader.js +1 -1
  419. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  420. package/dist/esm-es5/mock-pds-modal.entry.js.map +1 -1
  421. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  422. package/dist/esm-es5/pds-accordion.entry.js.map +1 -1
  423. package/dist/esm-es5/pds-alert.entry.js +1 -1
  424. package/dist/esm-es5/pds-alert.entry.js.map +1 -1
  425. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  426. package/dist/esm-es5/pds-avatar.entry.js.map +1 -1
  427. package/dist/esm-es5/pds-box.entry.js +1 -1
  428. package/dist/esm-es5/pds-box.entry.js.map +1 -1
  429. package/dist/esm-es5/pds-button.entry.js +1 -1
  430. package/dist/esm-es5/pds-button.entry.js.map +1 -1
  431. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  432. package/dist/esm-es5/pds-checkbox.entry.js.map +1 -1
  433. package/dist/esm-es5/pds-chip.entry.js +1 -1
  434. package/dist/esm-es5/pds-chip.entry.js.map +1 -1
  435. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  436. package/dist/esm-es5/pds-combobox.entry.js.map +1 -1
  437. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  438. package/dist/esm-es5/pds-copytext.entry.js.map +1 -1
  439. package/dist/esm-es5/pds-divider.entry.js +1 -1
  440. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  441. package/dist/esm-es5/pds-dropdown-menu-item.entry.js.map +1 -1
  442. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  443. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js.map +1 -1
  444. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  445. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  446. package/dist/esm-es5/pds-filter.entry.js +1 -1
  447. package/dist/esm-es5/pds-filter.entry.js.map +1 -1
  448. package/dist/esm-es5/pds-filters.entry.js +1 -1
  449. package/dist/esm-es5/pds-icon.entry.js +1 -1
  450. package/dist/esm-es5/pds-image.entry.js +1 -1
  451. package/dist/esm-es5/pds-input.entry.js +1 -1
  452. package/dist/esm-es5/pds-input.entry.js.map +1 -1
  453. package/dist/esm-es5/pds-link.entry.js +1 -1
  454. package/dist/esm-es5/pds-link.entry.js.map +1 -1
  455. package/dist/esm-es5/pds-loader.entry.js +1 -1
  456. package/dist/esm-es5/pds-loader.entry.js.map +1 -1
  457. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  458. package/dist/esm-es5/pds-modal-content.entry.js.map +1 -1
  459. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  460. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  461. package/dist/esm-es5/pds-modal.entry.js +1 -1
  462. package/dist/esm-es5/pds-popover.entry.js +1 -1
  463. package/dist/esm-es5/pds-popover.entry.js.map +1 -1
  464. package/dist/esm-es5/pds-progress.entry.js +1 -1
  465. package/dist/esm-es5/pds-progress.entry.js.map +1 -1
  466. package/dist/esm-es5/pds-property.entry.js +1 -1
  467. package/dist/esm-es5/pds-radio-group.entry.js +2 -0
  468. package/dist/esm-es5/pds-radio-group.entry.js.map +1 -0
  469. package/dist/esm-es5/pds-radio.entry.js +1 -1
  470. package/dist/esm-es5/pds-radio.entry.js.map +1 -1
  471. package/dist/esm-es5/pds-row.entry.js +1 -1
  472. package/dist/esm-es5/pds-select.entry.js +1 -1
  473. package/dist/esm-es5/pds-select.entry.js.map +1 -1
  474. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  475. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  476. package/dist/esm-es5/pds-sortable.entry.js.map +1 -1
  477. package/dist/esm-es5/pds-switch.entry.js +1 -1
  478. package/dist/esm-es5/pds-switch.entry.js.map +1 -1
  479. package/dist/esm-es5/pds-tab.entry.js +1 -1
  480. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  481. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  482. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  483. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  484. package/dist/esm-es5/pds-table-head-cell.entry.js.map +1 -1
  485. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  486. package/dist/esm-es5/pds-table-head.entry.js.map +1 -1
  487. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  488. package/dist/esm-es5/pds-table-row.entry.js.map +1 -1
  489. package/dist/esm-es5/pds-table.entry.js +1 -1
  490. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  491. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  492. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  493. package/dist/esm-es5/pds-tabs.entry.js.map +1 -1
  494. package/dist/esm-es5/pds-text.entry.js +1 -1
  495. package/dist/esm-es5/pds-text.entry.js.map +1 -1
  496. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  497. package/dist/esm-es5/pds-textarea.entry.js.map +1 -1
  498. package/dist/esm-es5/pds-toast.entry.js +1 -1
  499. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  500. package/dist/esm-es5/pine-core.js +1 -1
  501. package/dist/pine-core/mock-pds-modal.entry.esm.js.map +1 -1
  502. package/dist/pine-core/{p-37795a28.system.entry.js → p-00568c20.system.entry.js} +2 -2
  503. package/dist/pine-core/{p-53645ec6.system.entry.js → p-03209958.system.entry.js} +2 -2
  504. package/dist/pine-core/p-0398f6e3.entry.js +2 -0
  505. package/dist/pine-core/{p-d0efe5e1.entry.js.map → p-0398f6e3.entry.js.map} +1 -1
  506. package/dist/pine-core/p-04294b28.system.entry.js +2 -0
  507. package/dist/pine-core/{p-052eedc2.system.entry.js.map → p-04294b28.system.entry.js.map} +1 -1
  508. package/dist/pine-core/p-04a7b66c.system.entry.js +2 -0
  509. package/dist/pine-core/{p-a2c309fa.system.entry.js.map → p-04a7b66c.system.entry.js.map} +1 -1
  510. package/dist/pine-core/p-04f92b5a.system.entry.js +2 -0
  511. package/dist/pine-core/{p-1ac7cb0f.system.entry.js.map → p-04f92b5a.system.entry.js.map} +1 -1
  512. package/dist/pine-core/p-0869fe00.entry.js +2 -0
  513. package/dist/pine-core/p-0869fe00.entry.js.map +1 -0
  514. package/dist/pine-core/{p-1fbe221a.entry.js → p-0ace9c16.entry.js} +2 -2
  515. package/dist/pine-core/p-0b05708b.entry.js +2 -0
  516. package/dist/pine-core/{p-43b758af.entry.js.map → p-0b05708b.entry.js.map} +1 -1
  517. package/dist/pine-core/{p-e47fbd71.entry.js → p-10e0be55.entry.js} +2 -2
  518. package/dist/pine-core/{p-b0948892.system.entry.js → p-1df25b57.system.entry.js} +2 -2
  519. package/dist/pine-core/p-1f5ed7bb.system.entry.js +2 -0
  520. package/dist/pine-core/{p-e22c4870.system.entry.js.map → p-1f5ed7bb.system.entry.js.map} +1 -1
  521. package/dist/pine-core/{p-d6cff25a.entry.js → p-1fa303af.entry.js} +2 -2
  522. package/dist/pine-core/{p-996072ce.entry.js → p-2058a93a.entry.js} +2 -2
  523. package/dist/pine-core/p-227d5375.entry.js +2 -0
  524. package/dist/pine-core/{p-de4ebf0b.entry.js.map → p-227d5375.entry.js.map} +1 -1
  525. package/dist/pine-core/p-2319298c.system.entry.js +2 -0
  526. package/dist/pine-core/{p-5e1804a3.system.entry.js.map → p-2319298c.system.entry.js.map} +1 -1
  527. package/dist/pine-core/p-232e4282.system.entry.js +2 -0
  528. package/dist/pine-core/{p-49c5234f.system.entry.js.map → p-232e4282.system.entry.js.map} +1 -1
  529. package/dist/pine-core/{p-7bbe537d.system.entry.js → p-2d3da08b.system.entry.js} +2 -2
  530. package/dist/pine-core/{p-7a63e1ec.entry.js → p-2f6f60d9.entry.js} +2 -2
  531. package/dist/pine-core/p-372a6081.entry.js +2 -0
  532. package/dist/pine-core/{p-e25d2c53.entry.js.map → p-372a6081.entry.js.map} +1 -1
  533. package/dist/pine-core/p-3a231ae4.system.entry.js +2 -0
  534. package/dist/pine-core/{p-1c03ac40.system.entry.js.map → p-3a231ae4.system.entry.js.map} +1 -1
  535. package/dist/pine-core/{p-841a6445.entry.js → p-3f6b9520.entry.js} +2 -2
  536. package/dist/pine-core/{p-06f164fe.system.entry.js → p-3f8a5f3d.system.entry.js} +2 -2
  537. package/dist/pine-core/{p-ba1a4643.system.entry.js → p-3f8b0885.system.entry.js} +2 -2
  538. package/dist/pine-core/p-428a96f9.entry.js +2 -0
  539. package/dist/pine-core/{p-ac5eb57e.entry.js.map → p-428a96f9.entry.js.map} +1 -1
  540. package/dist/pine-core/{p-ba609b1e.entry.js → p-43990889.entry.js} +2 -2
  541. package/dist/pine-core/{p-6046e0b1.entry.js → p-43f1eead.entry.js} +2 -2
  542. package/dist/pine-core/p-4778ae70.entry.js +2 -0
  543. package/dist/pine-core/{p-a1ddcc69.entry.js.map → p-4778ae70.entry.js.map} +1 -1
  544. package/dist/pine-core/p-4c0797f2.entry.js +2 -0
  545. package/dist/pine-core/{p-3900b6f6.entry.js.map → p-4c0797f2.entry.js.map} +1 -1
  546. package/dist/pine-core/{p-D5MCs-6L.system.js.map → p-4fD2iHS9.system.js.map} +1 -1
  547. package/dist/pine-core/p-553e4543.entry.js +2 -0
  548. package/dist/pine-core/p-553e4543.entry.js.map +1 -0
  549. package/dist/pine-core/p-58fa5c8f.entry.js +2 -0
  550. package/dist/pine-core/{p-0837abe8.entry.js.map → p-58fa5c8f.entry.js.map} +1 -1
  551. package/dist/pine-core/{p-b151a37d.entry.js → p-596acf65.entry.js} +3 -3
  552. package/dist/pine-core/p-5D9wXQuJ.system.js +3 -0
  553. package/dist/pine-core/p-5D9wXQuJ.system.js.map +1 -0
  554. package/dist/pine-core/p-5b2b3e8a.entry.js +2 -0
  555. package/dist/pine-core/{p-7c2381c5.entry.js.map → p-5b2b3e8a.entry.js.map} +1 -1
  556. package/dist/pine-core/p-5d7c4fbb.entry.js +2 -0
  557. package/dist/pine-core/{p-730ea265.entry.js.map → p-5d7c4fbb.entry.js.map} +1 -1
  558. package/dist/pine-core/p-5f6cd30d.system.entry.js +2 -0
  559. package/dist/pine-core/p-5f6cd30d.system.entry.js.map +1 -0
  560. package/dist/pine-core/p-61588eac.entry.js +2 -0
  561. package/dist/pine-core/{p-55d120d1.entry.js.map → p-61588eac.entry.js.map} +1 -1
  562. package/dist/pine-core/p-65c566a2.system.entry.js +2 -0
  563. package/dist/pine-core/{p-1f28575b.system.entry.js.map → p-65c566a2.system.entry.js.map} +1 -1
  564. package/dist/pine-core/p-65db991d.entry.js +2 -0
  565. package/dist/pine-core/{p-1b299f58.entry.js.map → p-65db991d.entry.js.map} +1 -1
  566. package/dist/pine-core/p-66160018.entry.js +3 -0
  567. package/dist/pine-core/{p-bd11961c.entry.js.map → p-66160018.entry.js.map} +1 -1
  568. package/dist/pine-core/{p-f2344cb2.system.entry.js → p-670b1551.system.entry.js} +2 -2
  569. package/dist/pine-core/p-670b1551.system.entry.js.map +1 -0
  570. package/dist/pine-core/p-676f1f32.system.entry.js +2 -0
  571. package/dist/pine-core/p-676f1f32.system.entry.js.map +1 -0
  572. package/dist/pine-core/p-6ace63a3.system.entry.js +2 -0
  573. package/dist/pine-core/{p-4fe28624.system.entry.js.map → p-6ace63a3.system.entry.js.map} +1 -1
  574. package/dist/pine-core/p-6be19a23.system.entry.js +2 -0
  575. package/dist/pine-core/{p-c28c54c2.system.entry.js.map → p-6be19a23.system.entry.js.map} +1 -1
  576. package/dist/pine-core/{p-168b5a5b.system.entry.js → p-6dcd7876.system.entry.js} +2 -2
  577. package/dist/pine-core/p-6de73f62.entry.js +2 -0
  578. package/dist/pine-core/{p-1d3c4f2d.entry.js.map → p-6de73f62.entry.js.map} +1 -1
  579. package/dist/pine-core/p-711989de.entry.js +2 -0
  580. package/dist/pine-core/{p-2551ed1a.entry.js.map → p-711989de.entry.js.map} +1 -1
  581. package/dist/pine-core/p-7ccd2fd6.system.entry.js +2 -0
  582. package/dist/pine-core/{p-e715d22e.system.entry.js.map → p-7ccd2fd6.system.entry.js.map} +1 -1
  583. package/dist/pine-core/{p-ed214033.entry.js → p-7de73ac5.entry.js} +2 -2
  584. package/dist/pine-core/p-80017aa5.entry.js +2 -0
  585. package/dist/pine-core/{p-9f7318d7.entry.js.map → p-80017aa5.entry.js.map} +1 -1
  586. package/dist/pine-core/p-8007f4de.entry.js +2 -0
  587. package/dist/pine-core/p-8007f4de.entry.js.map +1 -0
  588. package/dist/pine-core/p-8323fe69.system.entry.js +2 -0
  589. package/dist/pine-core/{p-1ab0a7b1.system.entry.js.map → p-8323fe69.system.entry.js.map} +1 -1
  590. package/dist/pine-core/p-847fc77b.system.entry.js +2 -0
  591. package/dist/pine-core/{p-ab34c977.system.entry.js.map → p-847fc77b.system.entry.js.map} +1 -1
  592. package/dist/pine-core/{p-51e0ea73.entry.js → p-8c000d7c.entry.js} +2 -2
  593. package/dist/pine-core/p-8c7fdaf5.system.entry.js +2 -0
  594. package/dist/pine-core/{p-f38e87ad.system.entry.js.map → p-8c7fdaf5.system.entry.js.map} +1 -1
  595. package/dist/pine-core/p-91954848.entry.js +2 -0
  596. package/dist/pine-core/{p-6f5dfd01.entry.js.map → p-91954848.entry.js.map} +1 -1
  597. package/dist/pine-core/p-934229d8.entry.js +2 -0
  598. package/dist/pine-core/{p-4ea1a4fb.entry.js.map → p-934229d8.entry.js.map} +1 -1
  599. package/dist/pine-core/p-94788439.system.entry.js +2 -0
  600. package/dist/pine-core/{p-5565ee41.system.entry.js.map → p-94788439.system.entry.js.map} +1 -1
  601. package/dist/pine-core/{p-5a94e426.system.entry.js → p-94b1997d.system.entry.js} +2 -2
  602. package/dist/pine-core/{p-f74bcc1d.entry.js → p-9998c2a0.entry.js} +2 -2
  603. package/dist/pine-core/p-9f0f1389.entry.js +2 -0
  604. package/dist/pine-core/{p-a494b7d1.entry.js.map → p-9f0f1389.entry.js.map} +1 -1
  605. package/dist/pine-core/{p-CNOoGfj8.system.js.map → p-B0Y1Zs9b.system.js.map} +1 -1
  606. package/dist/pine-core/p-B1wJrRWz.system.js.map +1 -0
  607. package/dist/pine-core/p-BK-Kji1Y.system.js.map +1 -0
  608. package/dist/pine-core/p-BQImnLWy.system.js.map +1 -0
  609. package/dist/pine-core/p-BUwuPP5j.system.js.map +1 -0
  610. package/dist/pine-core/p-BVjyFx0r.system.js.map +1 -0
  611. package/dist/pine-core/p-BZj284A2.system.js.map +1 -0
  612. package/dist/pine-core/{p-BynWb21G.system.js.map → p-BjRES1T-.system.js.map} +1 -1
  613. package/dist/pine-core/p-Bp1qn6CS.system.js.map +1 -0
  614. package/dist/pine-core/{p-Btz7Q5Hx.system.js.map → p-Brpt0zl5.system.js.map} +1 -1
  615. package/dist/pine-core/p-C56crVDC.system.js.map +1 -0
  616. package/dist/pine-core/p-CAnnMfDw.system.js.map +1 -0
  617. package/dist/pine-core/{p-BMv60T1z.system.js.map → p-CI7DD4Gj.system.js.map} +1 -1
  618. package/dist/pine-core/p-CJJ3xfku.system.js.map +1 -0
  619. package/dist/pine-core/{p-CvGEHHLR.js → p-CShvJnsl.js} +2 -2
  620. package/dist/pine-core/{p-CvGEHHLR.js.map → p-CShvJnsl.js.map} +1 -1
  621. package/dist/pine-core/{p-CqtdHqyo.system.js.map → p-CUmDvil2.system.js.map} +1 -1
  622. package/dist/pine-core/p-CgF-S6vZ.system.js.map +1 -0
  623. package/dist/pine-core/{p-CoBzoZzZ.system.js.map → p-CijIWK3K.system.js.map} +1 -1
  624. package/dist/pine-core/{p-oqHEiE2W.system.js.map → p-ClPf_JF1.system.js.map} +1 -1
  625. package/dist/pine-core/p-CrjhL65U.system.js.map +1 -0
  626. package/dist/pine-core/p-CrzS8Mmy.system.js.map +1 -0
  627. package/dist/pine-core/p-CsVpJw_i.system.js.map +1 -0
  628. package/dist/pine-core/{p-DCLLstWD.system.js.map → p-Cwz8YTwo.system.js.map} +1 -1
  629. package/dist/pine-core/p-D2aexWnE.system.js.map +1 -0
  630. package/dist/pine-core/p-D8Jc24Qq.system.js.map +1 -0
  631. package/dist/pine-core/p-D8bibuWO.system.js.map +1 -0
  632. package/dist/pine-core/p-DBdgdjLr.system.js.map +1 -0
  633. package/dist/pine-core/p-DHPhrb5T.js +3 -0
  634. package/dist/pine-core/p-DHPhrb5T.js.map +1 -0
  635. package/dist/pine-core/p-DM7CGpRH.system.js.map +1 -0
  636. package/dist/pine-core/p-DYq1Mef8.system.js.map +1 -0
  637. package/dist/pine-core/p-D_LvnDUT.system.js.map +1 -0
  638. package/dist/pine-core/p-DaQV83Gx.system.js.map +1 -0
  639. package/dist/pine-core/{p-CbrMVAcu.system.js.map → p-DkNlmqjM.system.js.map} +1 -1
  640. package/dist/pine-core/{p-dWrReyPk.system.js.map → p-DmUcUg32.system.js.map} +1 -1
  641. package/dist/pine-core/p-DmVKABQy.system.js.map +1 -0
  642. package/dist/pine-core/{p-B9oQYxlC.system.js.map → p-DoP8Sl1O.system.js.map} +1 -1
  643. package/dist/pine-core/{p-BeaxER_z.system.js.map → p-DpOZDNuz.system.js.map} +1 -1
  644. package/dist/pine-core/{p-B8ftT2uA.system.js.map → p-DpeOrUYB.system.js.map} +1 -1
  645. package/dist/pine-core/p-Drfvoxcd.system.js.map +1 -0
  646. package/dist/pine-core/p-GKNvlYGa.system.js.map +1 -0
  647. package/dist/pine-core/{p-pStt9pIi.system.js.map → p-IH8oGXiE.system.js.map} +1 -1
  648. package/dist/pine-core/p-JAVnELnm.system.js +2 -0
  649. package/dist/pine-core/{p-Cua7cmvq.system.js.map → p-JAVnELnm.system.js.map} +1 -1
  650. package/dist/pine-core/p-PAmjcE4m.system.js.map +1 -0
  651. package/dist/pine-core/p-RO-Y2DRT.system.js.map +1 -0
  652. package/dist/pine-core/p-X0_TH-op.system.js.map +1 -0
  653. package/dist/pine-core/{p-e948a514.system.entry.js → p-a11c3642.system.entry.js} +2 -2
  654. package/dist/pine-core/p-a226ecdb.system.entry.js +2 -0
  655. package/dist/pine-core/{p-619a6667.system.entry.js.map → p-a226ecdb.system.entry.js.map} +1 -1
  656. package/dist/pine-core/p-a4b16b32.system.entry.js +2 -0
  657. package/dist/pine-core/{p-f70327de.system.entry.js.map → p-a4b16b32.system.entry.js.map} +1 -1
  658. package/dist/pine-core/p-a54f4dfd.system.entry.js +2 -0
  659. package/dist/pine-core/{p-6d9ca1ff.system.entry.js.map → p-a54f4dfd.system.entry.js.map} +1 -1
  660. package/dist/pine-core/{p-6448829b.system.entry.js → p-ac14c8e3.system.entry.js} +3 -3
  661. package/dist/pine-core/{p-1bf75b30.system.entry.js → p-ac186cd4.system.entry.js} +2 -2
  662. package/dist/pine-core/{p-fe23aa6f.system.entry.js → p-b59a0c6b.system.entry.js} +2 -2
  663. package/dist/pine-core/p-b59ac781.entry.js +2 -0
  664. package/dist/pine-core/{p-fb877b9d.entry.js.map → p-b59ac781.entry.js.map} +1 -1
  665. package/dist/pine-core/p-b64407a4.entry.js +2 -0
  666. package/dist/pine-core/{p-da23f4cf.entry.js.map → p-b64407a4.entry.js.map} +1 -1
  667. package/dist/pine-core/p-b6a503cc.system.entry.js +2 -0
  668. package/dist/pine-core/{p-7a12238d.system.entry.js.map → p-b6a503cc.system.entry.js.map} +1 -1
  669. package/dist/pine-core/p-b8047816.system.entry.js +2 -0
  670. package/dist/pine-core/{p-5a332f9e.system.entry.js.map → p-b8047816.system.entry.js.map} +1 -1
  671. package/dist/pine-core/p-b9a14564.system.entry.js +2 -0
  672. package/dist/pine-core/{p-eb3fe298.system.entry.js.map → p-b9a14564.system.entry.js.map} +1 -1
  673. package/dist/pine-core/p-bd53ca9a.system.entry.js +2 -0
  674. package/dist/pine-core/p-bd53ca9a.system.entry.js.map +1 -0
  675. package/dist/pine-core/{p-105951b7.system.entry.js → p-bdf8bff3.system.entry.js} +2 -2
  676. package/dist/pine-core/p-be647b2a.entry.js +2 -0
  677. package/dist/pine-core/{p-19e6bce5.entry.js.map → p-be647b2a.entry.js.map} +1 -1
  678. package/dist/pine-core/p-bee8d4b8.system.entry.js +4 -0
  679. package/dist/pine-core/{p-6e4be339.system.entry.js.map → p-bee8d4b8.system.entry.js.map} +1 -1
  680. package/dist/pine-core/{p-C2AG52JP.system.js.map → p-bkQbPz-z.system.js.map} +1 -1
  681. package/dist/pine-core/p-c08ab042.system.entry.js +2 -0
  682. package/dist/pine-core/p-c08ab042.system.entry.js.map +1 -0
  683. package/dist/pine-core/{p-1d83f560.entry.js → p-c5013d20.entry.js} +2 -2
  684. package/dist/pine-core/p-c9f97ccb.system.entry.js +2 -0
  685. package/dist/pine-core/p-c9f97ccb.system.entry.js.map +1 -0
  686. package/dist/pine-core/p-cd564179.entry.js +2 -0
  687. package/dist/pine-core/{p-a3503596.entry.js.map → p-cd564179.entry.js.map} +1 -1
  688. package/dist/pine-core/{p-01c4eac9.entry.js → p-cf4df489.entry.js} +2 -2
  689. package/dist/pine-core/p-cf910e8b.system.entry.js +2 -0
  690. package/dist/pine-core/p-cf910e8b.system.entry.js.map +1 -0
  691. package/dist/pine-core/p-d0e336b7.system.entry.js +2 -0
  692. package/dist/pine-core/{p-b07bb58f.system.entry.js → p-d1313dd6.system.entry.js} +2 -2
  693. package/dist/pine-core/p-dba5ca37.system.entry.js +2 -0
  694. package/dist/pine-core/p-dba5ca37.system.entry.js.map +1 -0
  695. package/dist/pine-core/p-dfcdd55d.system.entry.js +2 -0
  696. package/dist/pine-core/{p-ee6c07d6.system.entry.js.map → p-dfcdd55d.system.entry.js.map} +1 -1
  697. package/dist/pine-core/{p-2c3ede8e.entry.js → p-e08503a7.entry.js} +2 -2
  698. package/dist/pine-core/{p-2c3ede8e.entry.js.map → p-e08503a7.entry.js.map} +1 -1
  699. package/dist/pine-core/{p-fbf10641.entry.js → p-e0f21c22.entry.js} +2 -2
  700. package/dist/pine-core/{p-B7x-ddku.system.js → p-e50YjICS.system.js} +2 -2
  701. package/dist/pine-core/{p-B7x-ddku.system.js.map → p-e50YjICS.system.js.map} +1 -1
  702. package/dist/pine-core/p-e6b39ec1.entry.js +2 -0
  703. package/dist/pine-core/{p-73a6c002.entry.js.map → p-e6b39ec1.entry.js.map} +1 -1
  704. package/dist/pine-core/p-e7e25d42.entry.js +2 -0
  705. package/dist/pine-core/p-e837b577.entry.js +2 -0
  706. package/dist/pine-core/p-e837b577.entry.js.map +1 -0
  707. package/dist/pine-core/p-eUcBQ_fh.system.js.map +1 -0
  708. package/dist/pine-core/{p-5d379706.system.entry.js → p-ec32c44f.system.entry.js} +2 -2
  709. package/dist/pine-core/p-ejoWgOZK.system.js.map +1 -0
  710. package/dist/pine-core/p-f64ea4f7.entry.js +2 -0
  711. package/dist/pine-core/{p-239cbdb2.entry.js.map → p-f64ea4f7.entry.js.map} +1 -1
  712. package/dist/pine-core/p-f8fba315.entry.js +2 -0
  713. package/dist/pine-core/p-f8fba315.entry.js.map +1 -0
  714. package/dist/pine-core/{p-2f5d1411.entry.js → p-f92055f3.entry.js} +2 -2
  715. package/dist/pine-core/{p-4792d0c8.system.entry.js → p-fa21e054.system.entry.js} +2 -2
  716. package/dist/pine-core/p-qkIMFuAW.system.js.map +1 -0
  717. package/dist/pine-core/{p-CIoeutZO.system.js.map → p-tHMXRB8d.system.js.map} +1 -1
  718. package/dist/pine-core/p-zgS7Vsk7.system.js.map +1 -0
  719. package/dist/pine-core/pds-accordion.entry.esm.js.map +1 -1
  720. package/dist/pine-core/pds-alert.entry.esm.js.map +1 -1
  721. package/dist/pine-core/pds-avatar.entry.esm.js.map +1 -1
  722. package/dist/pine-core/pds-box.entry.esm.js.map +1 -1
  723. package/dist/pine-core/pds-button.entry.esm.js.map +1 -1
  724. package/dist/pine-core/pds-checkbox.entry.esm.js.map +1 -1
  725. package/dist/pine-core/pds-chip.entry.esm.js.map +1 -1
  726. package/dist/pine-core/pds-combobox.entry.esm.js.map +1 -1
  727. package/dist/pine-core/pds-copytext.entry.esm.js.map +1 -1
  728. package/dist/pine-core/pds-dropdown-menu-item.entry.esm.js.map +1 -1
  729. package/dist/pine-core/pds-dropdown-menu-separator.entry.esm.js.map +1 -1
  730. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  731. package/dist/pine-core/pds-filter.entry.esm.js.map +1 -1
  732. package/dist/pine-core/pds-input.entry.esm.js.map +1 -1
  733. package/dist/pine-core/pds-link.entry.esm.js.map +1 -1
  734. package/dist/pine-core/pds-loader.entry.esm.js.map +1 -1
  735. package/dist/pine-core/pds-modal-content.entry.esm.js.map +1 -1
  736. package/dist/pine-core/pds-popover.entry.esm.js.map +1 -1
  737. package/dist/pine-core/pds-progress.entry.esm.js.map +1 -1
  738. package/dist/pine-core/pds-radio-group.entry.esm.js.map +1 -0
  739. package/dist/pine-core/pds-radio.entry.esm.js.map +1 -1
  740. package/dist/pine-core/pds-select.entry.esm.js.map +1 -1
  741. package/dist/pine-core/pds-sortable.entry.esm.js.map +1 -1
  742. package/dist/pine-core/pds-switch.entry.esm.js.map +1 -1
  743. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  744. package/dist/pine-core/pds-table-head-cell.entry.esm.js.map +1 -1
  745. package/dist/pine-core/pds-table-head.entry.esm.js.map +1 -1
  746. package/dist/pine-core/pds-table-row.entry.esm.js.map +1 -1
  747. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  748. package/dist/pine-core/pds-tabs.entry.esm.js.map +1 -1
  749. package/dist/pine-core/pds-text.entry.esm.js.map +1 -1
  750. package/dist/pine-core/pds-textarea.entry.esm.js.map +1 -1
  751. package/dist/pine-core/pine-core.css +1 -1
  752. package/dist/pine-core/pine-core.esm.js +1 -1
  753. package/dist/pine-core/pine-core.js +1 -1
  754. package/dist/scripts/vscode-custom-data-generator.js +407 -0
  755. package/dist/scripts/vscode-custom-data-generator.js.map +1 -0
  756. package/dist/scripts/vscode-settings-patcher.cjs +89 -0
  757. package/dist/types/components/pds-button/pds-button.d.ts +1 -1
  758. package/dist/types/components/pds-chip/pds-chip.d.ts +1 -1
  759. package/dist/types/components/pds-copytext/pds-copytext.d.ts +1 -1
  760. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +5 -0
  761. package/dist/types/components/pds-input/input-interface.d.ts +1 -1
  762. package/dist/types/components/pds-modal/test/mock-pds-modal.d.ts +3 -3
  763. package/dist/types/components/pds-popover/pds-popover.d.ts +1 -1
  764. package/dist/types/components/pds-radio-group/pds-radio-group.d.ts +72 -0
  765. package/dist/types/components/pds-radio-group/radio-group-interface.d.ts +5 -0
  766. package/dist/types/components/pds-sortable/pds-sortable.d.ts +2 -1
  767. package/dist/types/components/pds-sortable/sortable-interface.d.ts +2 -1
  768. package/dist/types/components.d.ts +142 -14
  769. package/dist/types/home/runner/work/pine/pine/libs/core/.stencil/scripts/vscode-custom-data-generator.d.ts +6 -0
  770. package/dist/types/index.d.ts +1 -0
  771. package/dist/vscode.html-data.json +9965 -0
  772. package/hydrate/index.js +292 -77
  773. package/hydrate/index.mjs +292 -77
  774. package/package.json +29 -15
  775. package/dist/cjs/index-2Lf0E1JO.js.map +0 -1
  776. package/dist/collection/stories/_helpers/index.js +0 -15
  777. package/dist/collection/stories/_helpers/index.js.map +0 -1
  778. package/dist/esm/index-Bh07GI-d.js.map +0 -1
  779. package/dist/esm-es5/index-Bh07GI-d.js +0 -3
  780. package/dist/esm-es5/index-Bh07GI-d.js.map +0 -1
  781. package/dist/pine-core/p-052eedc2.system.entry.js +0 -2
  782. package/dist/pine-core/p-0837abe8.entry.js +0 -2
  783. package/dist/pine-core/p-09cab3b5.system.entry.js +0 -2
  784. package/dist/pine-core/p-09cab3b5.system.entry.js.map +0 -1
  785. package/dist/pine-core/p-198fce07.system.entry.js +0 -2
  786. package/dist/pine-core/p-198fce07.system.entry.js.map +0 -1
  787. package/dist/pine-core/p-19e6bce5.entry.js +0 -2
  788. package/dist/pine-core/p-1W8OgEyK.system.js.map +0 -1
  789. package/dist/pine-core/p-1ab0a7b1.system.entry.js +0 -2
  790. package/dist/pine-core/p-1ac7cb0f.system.entry.js +0 -2
  791. package/dist/pine-core/p-1b299f58.entry.js +0 -2
  792. package/dist/pine-core/p-1c03ac40.system.entry.js +0 -2
  793. package/dist/pine-core/p-1d3c4f2d.entry.js +0 -2
  794. package/dist/pine-core/p-1f28575b.system.entry.js +0 -2
  795. package/dist/pine-core/p-239cbdb2.entry.js +0 -2
  796. package/dist/pine-core/p-2551ed1a.entry.js +0 -2
  797. package/dist/pine-core/p-285bc185.entry.js +0 -2
  798. package/dist/pine-core/p-2NVJY0Vc.system.js.map +0 -1
  799. package/dist/pine-core/p-3900b6f6.entry.js +0 -2
  800. package/dist/pine-core/p-43b758af.entry.js +0 -2
  801. package/dist/pine-core/p-49c5234f.system.entry.js +0 -2
  802. package/dist/pine-core/p-4HGk7WFM.system.js.map +0 -1
  803. package/dist/pine-core/p-4ea1a4fb.entry.js +0 -2
  804. package/dist/pine-core/p-4fe28624.system.entry.js +0 -2
  805. package/dist/pine-core/p-54e04c59.system.entry.js +0 -2
  806. package/dist/pine-core/p-54e04c59.system.entry.js.map +0 -1
  807. package/dist/pine-core/p-5565ee41.system.entry.js +0 -2
  808. package/dist/pine-core/p-55d120d1.entry.js +0 -2
  809. package/dist/pine-core/p-5a332f9e.system.entry.js +0 -2
  810. package/dist/pine-core/p-5e1804a3.system.entry.js +0 -2
  811. package/dist/pine-core/p-619a6667.system.entry.js +0 -2
  812. package/dist/pine-core/p-6d9ca1ff.system.entry.js +0 -2
  813. package/dist/pine-core/p-6e4be339.system.entry.js +0 -4
  814. package/dist/pine-core/p-6f5dfd01.entry.js +0 -2
  815. package/dist/pine-core/p-730ea265.entry.js +0 -2
  816. package/dist/pine-core/p-73a6c002.entry.js +0 -2
  817. package/dist/pine-core/p-7a12238d.system.entry.js +0 -2
  818. package/dist/pine-core/p-7c2381c5.entry.js +0 -2
  819. package/dist/pine-core/p-7c69ca77.entry.js +0 -2
  820. package/dist/pine-core/p-7c69ca77.entry.js.map +0 -1
  821. package/dist/pine-core/p-7ccd095b.entry.js +0 -2
  822. package/dist/pine-core/p-7ccd095b.entry.js.map +0 -1
  823. package/dist/pine-core/p-818dd3d8.system.entry.js +0 -2
  824. package/dist/pine-core/p-818dd3d8.system.entry.js.map +0 -1
  825. package/dist/pine-core/p-9f7318d7.entry.js +0 -2
  826. package/dist/pine-core/p-BCCWozKV.system.js.map +0 -1
  827. package/dist/pine-core/p-BCGaZxvq.system.js.map +0 -1
  828. package/dist/pine-core/p-BF6EelyL.system.js.map +0 -1
  829. package/dist/pine-core/p-BLpHPllL.system.js.map +0 -1
  830. package/dist/pine-core/p-Bh07GI-d.js +0 -3
  831. package/dist/pine-core/p-Bh07GI-d.js.map +0 -1
  832. package/dist/pine-core/p-Bhj5-yqf.system.js.map +0 -1
  833. package/dist/pine-core/p-BhoJR5O9.system.js.map +0 -1
  834. package/dist/pine-core/p-Bj1vPZM7.system.js.map +0 -1
  835. package/dist/pine-core/p-BnrgLbVq.system.js.map +0 -1
  836. package/dist/pine-core/p-BvtgWXBT.system.js.map +0 -1
  837. package/dist/pine-core/p-C4UrydrO.system.js.map +0 -1
  838. package/dist/pine-core/p-C6_QgODF.system.js.map +0 -1
  839. package/dist/pine-core/p-CSVIgMVz.system.js.map +0 -1
  840. package/dist/pine-core/p-CVjjaBaW.system.js.map +0 -1
  841. package/dist/pine-core/p-CVoRTJJv.system.js.map +0 -1
  842. package/dist/pine-core/p-CZsWy9_t.system.js +0 -3
  843. package/dist/pine-core/p-CZsWy9_t.system.js.map +0 -1
  844. package/dist/pine-core/p-ChQGk39M.system.js.map +0 -1
  845. package/dist/pine-core/p-CpcN1meO.system.js.map +0 -1
  846. package/dist/pine-core/p-CrpTd0PB.system.js.map +0 -1
  847. package/dist/pine-core/p-CtiVxXhr.system.js.map +0 -1
  848. package/dist/pine-core/p-CuF_eckL.system.js.map +0 -1
  849. package/dist/pine-core/p-Cua7cmvq.system.js +0 -2
  850. package/dist/pine-core/p-D-CArvsF.system.js.map +0 -1
  851. package/dist/pine-core/p-DCiTnlD3.system.js.map +0 -1
  852. package/dist/pine-core/p-DPmRw4fA.system.js.map +0 -1
  853. package/dist/pine-core/p-DTMMULoz.system.js.map +0 -1
  854. package/dist/pine-core/p-DvfECQRp.system.js.map +0 -1
  855. package/dist/pine-core/p-O9Boj8Mc.system.js.map +0 -1
  856. package/dist/pine-core/p-a1ddcc69.entry.js +0 -2
  857. package/dist/pine-core/p-a2c309fa.system.entry.js +0 -2
  858. package/dist/pine-core/p-a3503596.entry.js +0 -2
  859. package/dist/pine-core/p-a494b7d1.entry.js +0 -2
  860. package/dist/pine-core/p-ab34c977.system.entry.js +0 -2
  861. package/dist/pine-core/p-ac5eb57e.entry.js +0 -2
  862. package/dist/pine-core/p-bd11961c.entry.js +0 -3
  863. package/dist/pine-core/p-c28c54c2.system.entry.js +0 -2
  864. package/dist/pine-core/p-c7175497.entry.js +0 -2
  865. package/dist/pine-core/p-c7175497.entry.js.map +0 -1
  866. package/dist/pine-core/p-d0efe5e1.entry.js +0 -2
  867. package/dist/pine-core/p-da23f4cf.entry.js +0 -2
  868. package/dist/pine-core/p-db3b827e.system.entry.js +0 -2
  869. package/dist/pine-core/p-db3b827e.system.entry.js.map +0 -1
  870. package/dist/pine-core/p-de4ebf0b.entry.js +0 -2
  871. package/dist/pine-core/p-e22c4870.system.entry.js +0 -2
  872. package/dist/pine-core/p-e25d2c53.entry.js +0 -2
  873. package/dist/pine-core/p-e715d22e.system.entry.js +0 -2
  874. package/dist/pine-core/p-eb3fe298.system.entry.js +0 -2
  875. package/dist/pine-core/p-ee6c07d6.system.entry.js +0 -2
  876. package/dist/pine-core/p-f2344cb2.system.entry.js.map +0 -1
  877. package/dist/pine-core/p-f38e87ad.system.entry.js +0 -2
  878. package/dist/pine-core/p-f70327de.system.entry.js +0 -2
  879. package/dist/pine-core/p-f72243c4.entry.js +0 -2
  880. package/dist/pine-core/p-f72243c4.entry.js.map +0 -1
  881. package/dist/pine-core/p-fb877b9d.entry.js +0 -2
  882. package/dist/pine-core/p-fcde1f61.system.entry.js +0 -2
  883. package/dist/pine-core/p-fcde1f61.system.entry.js.map +0 -1
  884. package/dist/pine-core/p-fdf7a1db.system.entry.js +0 -2
  885. package/dist/pine-core/p-pKEraGuG.system.js.map +0 -1
  886. package/dist/pine-core/p-y8wq27x0.system.js.map +0 -1
  887. package/dist/pine-core/p-zZn2-0Xb.system.js.map +0 -1
  888. package/dist/types/stories/_helpers/index.d.ts +0 -12
  889. /package/dist/pine-core/{p-37795a28.system.entry.js.map → p-00568c20.system.entry.js.map} +0 -0
  890. /package/dist/pine-core/{p-53645ec6.system.entry.js.map → p-03209958.system.entry.js.map} +0 -0
  891. /package/dist/pine-core/{p-1fbe221a.entry.js.map → p-0ace9c16.entry.js.map} +0 -0
  892. /package/dist/pine-core/{p-e47fbd71.entry.js.map → p-10e0be55.entry.js.map} +0 -0
  893. /package/dist/pine-core/{p-b0948892.system.entry.js.map → p-1df25b57.system.entry.js.map} +0 -0
  894. /package/dist/pine-core/{p-d6cff25a.entry.js.map → p-1fa303af.entry.js.map} +0 -0
  895. /package/dist/pine-core/{p-996072ce.entry.js.map → p-2058a93a.entry.js.map} +0 -0
  896. /package/dist/pine-core/{p-7bbe537d.system.entry.js.map → p-2d3da08b.system.entry.js.map} +0 -0
  897. /package/dist/pine-core/{p-7a63e1ec.entry.js.map → p-2f6f60d9.entry.js.map} +0 -0
  898. /package/dist/pine-core/{p-841a6445.entry.js.map → p-3f6b9520.entry.js.map} +0 -0
  899. /package/dist/pine-core/{p-06f164fe.system.entry.js.map → p-3f8a5f3d.system.entry.js.map} +0 -0
  900. /package/dist/pine-core/{p-ba1a4643.system.entry.js.map → p-3f8b0885.system.entry.js.map} +0 -0
  901. /package/dist/pine-core/{p-ba609b1e.entry.js.map → p-43990889.entry.js.map} +0 -0
  902. /package/dist/pine-core/{p-6046e0b1.entry.js.map → p-43f1eead.entry.js.map} +0 -0
  903. /package/dist/pine-core/{p-b151a37d.entry.js.map → p-596acf65.entry.js.map} +0 -0
  904. /package/dist/pine-core/{p-168b5a5b.system.entry.js.map → p-6dcd7876.system.entry.js.map} +0 -0
  905. /package/dist/pine-core/{p-ed214033.entry.js.map → p-7de73ac5.entry.js.map} +0 -0
  906. /package/dist/pine-core/{p-51e0ea73.entry.js.map → p-8c000d7c.entry.js.map} +0 -0
  907. /package/dist/pine-core/{p-5a94e426.system.entry.js.map → p-94b1997d.system.entry.js.map} +0 -0
  908. /package/dist/pine-core/{p-f74bcc1d.entry.js.map → p-9998c2a0.entry.js.map} +0 -0
  909. /package/dist/pine-core/{p-e948a514.system.entry.js.map → p-a11c3642.system.entry.js.map} +0 -0
  910. /package/dist/pine-core/{p-6448829b.system.entry.js.map → p-ac14c8e3.system.entry.js.map} +0 -0
  911. /package/dist/pine-core/{p-1bf75b30.system.entry.js.map → p-ac186cd4.system.entry.js.map} +0 -0
  912. /package/dist/pine-core/{p-fe23aa6f.system.entry.js.map → p-b59a0c6b.system.entry.js.map} +0 -0
  913. /package/dist/pine-core/{p-105951b7.system.entry.js.map → p-bdf8bff3.system.entry.js.map} +0 -0
  914. /package/dist/pine-core/{p-1d83f560.entry.js.map → p-c5013d20.entry.js.map} +0 -0
  915. /package/dist/pine-core/{p-01c4eac9.entry.js.map → p-cf4df489.entry.js.map} +0 -0
  916. /package/dist/pine-core/{p-fdf7a1db.system.entry.js.map → p-d0e336b7.system.entry.js.map} +0 -0
  917. /package/dist/pine-core/{p-b07bb58f.system.entry.js.map → p-d1313dd6.system.entry.js.map} +0 -0
  918. /package/dist/pine-core/{p-fbf10641.entry.js.map → p-e0f21c22.entry.js.map} +0 -0
  919. /package/dist/pine-core/{p-285bc185.entry.js.map → p-e7e25d42.entry.js.map} +0 -0
  920. /package/dist/pine-core/{p-5d379706.system.entry.js.map → p-ec32c44f.system.entry.js.map} +0 -0
  921. /package/dist/pine-core/{p-2f5d1411.entry.js.map → p-f92055f3.entry.js.map} +0 -0
  922. /package/dist/pine-core/{p-4792d0c8.system.entry.js.map → p-fa21e054.system.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"pds-popover.entry.cjs.js","sources":["src/components/pds-popover/pds-popover.scss?tag=pds-popover&encapsulation=shadow","src/components/pds-popover/pds-popover.tsx"],"sourcesContent":[":host {\n --sizing-max-width-default: 352px;\n\n display: inline-block;\n\n // Trigger wrapper for slotted content\n .pds-popover__trigger-wrapper {\n display: inline-block;\n }\n\n // Content slot wrapper is hidden (content is rendered in portal)\n .pds-popover__content-slot-wrapper {\n display: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State } from '@stencil/core';\nimport { PlacementType } from '@utils/types';\nimport { PdsPopoverEventDetail } from './popover-interface';\n\n/**\n * @slot trigger - The trigger element for the popover\n * @slot (default) - The content to display inside the popover\n */\n@Component({\n tag: 'pds-popover',\n styleUrl: 'pds-popover.scss',\n shadow: true,\n})\nexport class PdsPopover {\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsPopoverElement;\n\n /**\n * Determines when the popover is active\n * @defaultValue false\n */\n @State() active = false;\n\n /**\n * Tracks if the component is still mounted to prevent memory leaks\n */\n private isComponentMounted = true;\n\n /**\n * Reference to the trigger element\n */\n private triggerEl: HTMLElement | null = null;\n\n /**\n * Portal element rendered in document.body\n */\n private portalEl: HTMLElement | null = null;\n\n /**\n * Guard to prevent repositioning loops\n */\n private isRepositioning = false;\n\n /**\n * Debounce timers for performance optimization\n */\n private scrollDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n private resizeDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Track moved nodes and their placeholders for restoration\n */\n private movedNodes: Array<{ node: Node; placeholder: Comment }> = [];\n\n /**\n * Timestamp when popover was opened (for preventing immediate close)\n */\n private openTimestamp = 0;\n\n /**\n * Instance counter for unique IDs\n */\n private static instanceCounter = 0;\n\n /**\n * Bound handlers for cleanup\n */\n private boundClickOutsideHandler: (event: MouseEvent) => void;\n private boundEscapeKeyHandler: (event: KeyboardEvent) => void;\n private boundScrollHandler: () => void;\n private boundResizeHandler: () => void;\n\n /**\n * Emitted when the popover is opened\n */\n @Event() pdsPopoverOpen: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Emitted when the popover is closed\n */\n @Event() pdsPopoverClose: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.\n * @defaultValue \"show\"\n */\n @Prop() popoverTargetAction: 'show' | 'toggle' | 'hide' = 'show';\n\n /**\n * Determines the type of popover. Auto popovers can be \"light dismissed\" by clicking outside of the popover.\n * Manual popovers require the consumer to handle the visibility of the popover.\n */\n @Prop() popoverType: 'auto' | 'manual' = 'auto';\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Sets the maximum width of the popover content\n * @defaultValue 352\n */\n @Prop() maxWidth?: number = 352;\n\n /**\n * Determines the preferred position of the popover\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement: PlacementType = 'right';\n\n componentDidLoad() {\n // Bind event handlers for cleanup\n this.boundClickOutsideHandler = this.handleClickOutside.bind(this);\n this.boundEscapeKeyHandler = this.handleEscapeKey.bind(this);\n this.boundScrollHandler = this.handleScroll.bind(this);\n this.boundResizeHandler = this.handleResize.bind(this);\n\n // Create portal element\n this.createPortal();\n\n // Initialize trigger element by calling slot change handler\n // This is a fallback for environments where slot change might not fire reliably\n const triggerSlot = this.el.shadowRoot?.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement;\n if (triggerSlot && this.triggerEl == null) {\n const CustomEvent = (typeof window !== 'undefined' ? window.Event : global.Event) as any;\n const slotChangeEvent = new CustomEvent('slotchange');\n Object.defineProperty(slotChangeEvent, 'target', { value: triggerSlot, enumerable: true });\n this.handleTriggerSlotChange(slotChangeEvent);\n }\n }\n\n /**\n * Handles changes to the trigger slot\n */\n private handleTriggerSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n const assignedElements = slot.assignedElements();\n\n // Clean up previous trigger's event listener if it exists\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n if (assignedElements.length > 0) {\n // Use the first assigned element as the trigger\n this.triggerEl = assignedElements[0] as HTMLElement;\n\n // Set ARIA attributes to establish relationship between trigger and popover\n // This mirrors the native Popover API's accessibility behavior\n if (this.portalEl) {\n this.triggerEl.setAttribute('aria-expanded', String(this.active));\n this.triggerEl.setAttribute('aria-controls', this.portalEl.id);\n }\n\n // Attach click listener to handle popover visibility\n this.triggerEl.addEventListener('click', this.handleTriggerClick);\n } else {\n this.triggerEl = null;\n }\n };\n\n /**\n * Handles changes to the default slot (popover content)\n * When the popover is active, re-sync content with portal to handle dynamic updates\n */\n private handleContentSlotChange = () => {\n if (!this.active) return;\n this.updatePortalContent();\n };\n\n /**\n * Handles clicks on the trigger element\n */\n private handleTriggerClick = (event: Event) => {\n // Only prevent default if the trigger is not an anchor with href\n // This allows link navigation while still controlling popover visibility\n const composedPath = event.composedPath();\n const anchorWithHref = composedPath.find(\n (el) => el instanceof HTMLAnchorElement && (el as HTMLAnchorElement).href\n );\n\n if (!anchorWithHref) {\n event.preventDefault();\n }\n\n // Execute the appropriate action based on popoverTargetAction prop\n switch (this.popoverTargetAction) {\n case 'show':\n this.show();\n break;\n case 'hide':\n this.hide();\n break;\n case 'toggle':\n default:\n this.toggle();\n break;\n }\n };\n\n disconnectedCallback() {\n this.isComponentMounted = false;\n\n // Clean up trigger click event listener\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n // Clean up all event listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending debounce timers\n this.clearDebounceTimers();\n\n // Remove portal from DOM\n this.removePortal();\n }\n\n /**\n * Clears any pending debounce timers\n */\n private clearDebounceTimers() {\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n this.scrollDebounceTimer = null;\n }\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n this.resizeDebounceTimer = null;\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = 'pds-popover';\n\n // Apply all styles inline since portal is outside shadow DOM\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = 'var(--pine-z-index-raised)';\n this.portalEl.style.maxWidth = `${this.maxWidth}px`;\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n this.portalEl.style.backgroundColor = 'var(--pine-color-background-container)';\n this.portalEl.style.borderRadius = 'var(--pine-dimension-125)';\n this.portalEl.style.boxShadow = 'var(--pine-box-shadow-200)';\n this.portalEl.style.margin = 'var(--pine-dimension-none)';\n this.portalEl.style.padding = 'var(--pine-dimension-md)';\n\n // Generate unique ID\n if (!this.componentId) {\n const suffix = PdsPopover.instanceCounter++;\n this.portalEl.id = `pds-popover-portal-${suffix}`;\n } else {\n this.portalEl.id = `${this.componentId}-portal`;\n }\n\n // Add accessibility attributes for screen readers\n // Note: Native Popover API doesn't add a specific role, keeping semantic HTML\n this.portalEl.setAttribute('aria-modal', 'false'); // Not a modal, can interact with rest of page\n\n // Append to body\n document.body.appendChild(this.portalEl);\n\n // Add global focus styles to match Pine design system\n // This is done after appending to ensure it's part of the document and can access CSS variables\n this.addPortalFocusStyles();\n }\n\n /**\n * Adds Pine design system focus styles to the portal element\n * Uses CSS variables from Pine's design tokens\n */\n private addPortalFocusStyles() {\n if (!this.portalEl) return;\n\n const portalId = this.portalEl.id;\n\n // Check if style element already exists\n const existingStyle = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (existingStyle) return;\n\n // Create style element with Pine's focus ring styles\n const styleEl = document.createElement('style');\n styleEl.setAttribute('data-pds-popover-focus', portalId);\n styleEl.textContent = `\n #${portalId}:focus {\n outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;\n outline-offset: var(--pine-border-width, 1px);\n }\n #${portalId}:focus:not(:focus-visible) {\n outline: none;\n }\n `;\n\n document.head.appendChild(styleEl);\n }\n\n /**\n * Moves slot content into portal (preserves event handlers and component instances)\n */\n private updatePortalContent() {\n if (!this.portalEl) return;\n\n const contentSlotWrapper = this.el.shadowRoot?.querySelector('.pds-popover__content-slot-wrapper');\n const defaultSlot = contentSlotWrapper?.querySelector('slot');\n\n if (defaultSlot) {\n const assignedNodes = defaultSlot.assignedNodes();\n\n // Move each node into portal and track with placeholder for restoration\n assignedNodes.forEach(node => {\n // Skip if node is already in the portal or already tracked\n const isAlreadyInPortal = node.parentNode === this.portalEl;\n const isAlreadyTracked = this.movedNodes.some(moved => moved.node === node);\n\n if (isAlreadyInPortal || isAlreadyTracked) {\n return;\n }\n\n // Create a placeholder comment to mark original position\n const placeholder = document.createComment('pds-popover-placeholder');\n\n // Insert placeholder before moving the node\n node.parentNode?.insertBefore(placeholder, node);\n\n // Move the actual node to portal (preserves all handlers and state)\n this.portalEl!.appendChild(node);\n\n // Track for restoration\n this.movedNodes.push({ node, placeholder });\n });\n }\n }\n\n /**\n * Restores moved nodes back to their original positions\n */\n private restorePortalContent() {\n // Restore each moved node to its original position\n this.movedNodes.forEach(({ node, placeholder }) => {\n if (placeholder.parentNode) {\n placeholder.parentNode.insertBefore(node, placeholder);\n placeholder.parentNode.removeChild(placeholder);\n }\n });\n\n // Clear tracking array\n this.movedNodes = [];\n }\n\n private removePortal() {\n if (this.portalEl) {\n // Remove the portal element from DOM\n if (this.portalEl.parentNode) {\n this.portalEl.parentNode.removeChild(this.portalEl);\n }\n\n // Remove the associated focus style element\n const portalId = this.portalEl.id;\n const styleEl = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (styleEl && styleEl.parentNode) {\n styleEl.parentNode.removeChild(styleEl);\n }\n }\n this.portalEl = null;\n }\n\n /**\n * Opens the popover programmatically\n */\n @Method()\n async show() {\n if (this.active || !this.portalEl) return;\n\n this.active = true;\n\n // Record open timestamp to prevent immediate close from opening click\n this.openTimestamp = Date.now();\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Update portal content with latest slot content\n this.updatePortalContent();\n\n // Show portal\n this.portalEl.style.display = 'block';\n this.portalEl.style.opacity = '1';\n this.portalEl.style.visibility = 'visible';\n\n // Position the popover\n requestAnimationFrame(() => {\n if (!this.isComponentMounted) return;\n this.handlePopoverPositioning();\n });\n\n // Add scroll and resize listeners for repositioning (always)\n this.addScrollAndResizeListeners();\n\n // Add document listeners for light dismiss and escape key (auto type only)\n if (this.popoverType === 'auto') {\n this.addLightDismissListeners();\n }\n\n // Emit open event\n this.pdsPopoverOpen.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover programmatically\n */\n @Method()\n async hide() {\n if (!this.active || !this.portalEl) return;\n\n this.active = false;\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n // Restore content back to original slot positions\n this.restorePortalContent();\n\n // Hide portal\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n\n // Return focus to trigger for keyboard accessibility\n // This mirrors native Popover API behavior on close\n this.returnFocusToTrigger();\n\n // Remove all listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending timers\n this.clearDebounceTimers();\n\n // Emit close event\n this.pdsPopoverClose.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Toggles the popover open/closed state programmatically\n */\n @Method()\n async toggle() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Adds light dismiss listeners (click outside and escape key)\n */\n private addLightDismissListeners() {\n // Add listeners immediately - handleClickOutside will check timestamp\n document.addEventListener('click', this.boundClickOutsideHandler, true);\n document.addEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Removes light dismiss listeners\n */\n private removeLightDismissListeners() {\n document.removeEventListener('click', this.boundClickOutsideHandler, true);\n document.removeEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Adds scroll and resize listeners for repositioning\n */\n private addScrollAndResizeListeners() {\n window.addEventListener('scroll', this.boundScrollHandler, true);\n window.addEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Removes scroll and resize listeners\n */\n private removeScrollAndResizeListeners() {\n window.removeEventListener('scroll', this.boundScrollHandler, true);\n window.removeEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Handles clicks outside the popover for light dismiss (auto type only)\n */\n private handleClickOutside(event: MouseEvent) {\n // Ignore events that occurred at or before the popover opened\n // This prevents the opening click from immediately closing the popover\n // Convert event.timeStamp (DOMHighResTimeStamp from performance.now()) to epoch time\n // by calculating: currentEpochTime - (currentPerfTime - eventPerfTime)\n const eventTime = event.timeStamp\n ? Date.now() - (performance.now() - event.timeStamp)\n : Date.now();\n\n if (eventTime <= this.openTimestamp) {\n return;\n }\n\n const target = event.target as Node;\n\n // Check if click is outside both the popover portal and the trigger\n const clickedInsidePopover = this.portalEl?.contains(target);\n const clickedInsideTrigger = this.triggerEl?.contains(target);\n\n if (!clickedInsidePopover && !clickedInsideTrigger) {\n this.hide();\n }\n }\n\n /**\n * Returns focus to the trigger element with visible focus indicator\n * This ensures focus rings/outlines are shown as they would be with keyboard navigation\n */\n private returnFocusToTrigger() {\n if (!this.triggerEl) return;\n\n // Focus immediately while still in keyboard event context\n // This ensures the browser treats it as keyboard-initiated and shows focus ring\n this.triggerEl.focus({ preventScroll: true });\n }\n\n /**\n * Handles escape key press to close the popover\n * Mirrors native Popover API: Escape closes and returns focus to trigger\n */\n private handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n // Prevent default Escape behavior and stop propagation\n // This mirrors native Popover API which handles Escape exclusively\n event.preventDefault();\n event.stopPropagation();\n\n // Close popover and return focus to trigger\n this.hide();\n }\n }\n\n /**\n * Handles scroll events to reposition the popover (debounced for performance)\n */\n private handleScroll() {\n if (!this.active) return;\n\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n }\n\n this.scrollDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.scrollDebounceTimer = null;\n }, 10); // 10ms debounce for smooth repositioning\n }\n\n /**\n * Handles resize events to reposition the popover (debounced for performance)\n */\n private handleResize() {\n if (!this.active) return;\n\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n }\n\n this.resizeDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.resizeDebounceTimer = null;\n }, 100); // 100ms debounce for resize\n }\n\n /**\n * Positions the popover relative to its trigger element\n */\n private handlePopoverPositioning() {\n // Prevent repositioning loops\n if (this.isRepositioning) {\n return;\n }\n\n this.isRepositioning = true;\n\n if (this.triggerEl == null || this.portalEl == null) {\n this.isRepositioning = false;\n return;\n }\n\n const triggerRect = this.triggerEl.getBoundingClientRect();\n const popoverRect = this.portalEl.getBoundingClientRect();\n\n // Safety check: ensure trigger has valid dimensions (is rendered and visible)\n if (triggerRect.width === 0 || triggerRect.height === 0) {\n this.isRepositioning = false;\n return;\n }\n\n let top = 0;\n let left = 0;\n const offset = 8;\n\n switch (this.placement) {\n case 'top':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'top-start':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left;\n break;\n case 'top-end':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'right':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.right + offset;\n break;\n case 'right-start':\n top = triggerRect.top;\n left = triggerRect.right + offset;\n break;\n case 'right-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.right + offset;\n break;\n case 'bottom':\n top = triggerRect.bottom + offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'bottom-start':\n top = triggerRect.bottom + offset;\n left = triggerRect.left;\n break;\n case 'bottom-end':\n top = triggerRect.bottom + offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'left':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-start':\n top = triggerRect.top;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n }\n\n this.portalEl.style.top = `${top}px`;\n this.portalEl.style.left = `${left}px`;\n\n // Reset the repositioning guard after a short delay\n setTimeout(() => {\n this.isRepositioning = false;\n }, 16); // ~1 frame at 60fps\n }\n\n render() {\n return (\n <Host id={this.componentId}>\n <span class=\"pds-popover__trigger-wrapper\">\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange}></slot>\n </span>\n\n <div class=\"pds-popover__content-slot-wrapper\">\n <slot onSlotchange={this.handleContentSlotChange}></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":["h","Host"],"mappings":"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"}
1
+ {"version":3,"file":"pds-popover.entry.cjs.js","sources":["src/components/pds-popover/pds-popover.scss?tag=pds-popover&encapsulation=shadow","src/components/pds-popover/pds-popover.tsx"],"sourcesContent":[":host {\n --sizing-max-width-default: 352px;\n\n display: inline-block;\n\n // Trigger wrapper for slotted content\n .pds-popover__trigger-wrapper {\n display: inline-block;\n }\n\n // Content slot wrapper is hidden (content is rendered in portal)\n .pds-popover__content-slot-wrapper {\n display: none;\n }\n}\n","import { Component, Element, Event, EventEmitter, Host, h, Method, Prop, State } from '@stencil/core';\nimport { PlacementType } from '@utils/types';\nimport { PdsPopoverEventDetail } from './popover-interface';\n\n/**\n * @slot trigger - The trigger element for the popover\n * @slot (default) - The content to display inside the popover\n */\n@Component({\n tag: 'pds-popover',\n styleUrl: 'pds-popover.scss',\n shadow: true,\n})\nexport class PdsPopover {\n /**\n * Reference to the Host element\n */\n @Element() el: HTMLPdsPopoverElement;\n\n /**\n * Determines when the popover is active\n * @defaultValue false\n */\n @State() active = false;\n\n /**\n * Tracks if the component is still mounted to prevent memory leaks\n */\n private isComponentMounted = true;\n\n /**\n * Reference to the trigger element\n */\n private triggerEl: HTMLElement | null = null;\n\n /**\n * Portal element rendered in document.body\n */\n private portalEl: HTMLElement | null = null;\n\n /**\n * Guard to prevent repositioning loops\n */\n private isRepositioning = false;\n\n /**\n * Debounce timers for performance optimization\n */\n private scrollDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n private resizeDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Track moved nodes and their placeholders for restoration\n */\n private movedNodes: Array<{ node: Node; placeholder: Comment }> = [];\n\n /**\n * Timestamp when popover was opened (for preventing immediate close)\n */\n private openTimestamp = 0;\n\n /**\n * Instance counter for unique IDs\n */\n private static instanceCounter = 0;\n\n /**\n * Bound handlers for cleanup\n */\n private boundClickOutsideHandler: (event: MouseEvent) => void;\n private boundEscapeKeyHandler: (event: KeyboardEvent) => void;\n private boundScrollHandler: () => void;\n private boundResizeHandler: () => void;\n\n /**\n * Emitted when the popover is opened\n */\n @Event() pdsPopoverOpen: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Emitted when the popover is closed\n */\n @Event() pdsPopoverClose: EventEmitter<PdsPopoverEventDetail>;\n\n /**\n * Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.\n * @defaultValue \"show\"\n */\n @Prop() popoverTargetAction: 'show' | 'toggle' | 'hide' = 'show';\n\n /**\n * Determines the type of popover. Auto popovers can be \"light dismissed\" by clicking outside of the popover.\n * Manual popovers require the consumer to handle the visibility of the popover.\n */\n @Prop() popoverType: 'auto' | 'manual' = 'auto';\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Sets the maximum width of the popover content\n * @defaultValue 352\n */\n @Prop() maxWidth?: number = 352;\n\n /**\n * Determines the preferred position of the popover\n * @defaultValue \"right\"\n */\n @Prop({ reflect: true }) placement: PlacementType = 'right';\n\n componentDidLoad() {\n // Bind event handlers for cleanup\n this.boundClickOutsideHandler = this.handleClickOutside.bind(this);\n this.boundEscapeKeyHandler = this.handleEscapeKey.bind(this);\n this.boundScrollHandler = this.handleScroll.bind(this);\n this.boundResizeHandler = this.handleResize.bind(this);\n\n // Create portal element\n this.createPortal();\n\n // Initialize trigger element by calling slot change handler\n // This is a fallback for environments where slot change might not fire reliably\n const triggerSlot = this.el.shadowRoot?.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement;\n if (triggerSlot && this.triggerEl == null) {\n const CustomEvent = (typeof window !== 'undefined' ? window.Event : global.Event) as any;\n const slotChangeEvent = new CustomEvent('slotchange');\n Object.defineProperty(slotChangeEvent, 'target', { value: triggerSlot, enumerable: true });\n this.handleTriggerSlotChange(slotChangeEvent);\n }\n }\n\n /**\n * Handles changes to the trigger slot\n */\n private handleTriggerSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n const assignedElements = slot.assignedElements();\n\n // Clean up previous trigger's event listener if it exists\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n if (assignedElements.length > 0) {\n // Use the first assigned element as the trigger\n this.triggerEl = assignedElements[0] as HTMLElement;\n\n // Set ARIA attributes to establish relationship between trigger and popover\n // This mirrors the native Popover API's accessibility behavior\n if (this.portalEl) {\n this.triggerEl.setAttribute('aria-expanded', String(this.active));\n this.triggerEl.setAttribute('aria-controls', this.portalEl.id);\n }\n\n // Attach click listener to handle popover visibility\n this.triggerEl.addEventListener('click', this.handleTriggerClick);\n } else {\n this.triggerEl = null;\n }\n };\n\n /**\n * Handles changes to the default slot (popover content)\n * When the popover is active, re-sync content with portal to handle dynamic updates\n */\n private handleContentSlotChange = () => {\n if (!this.active) return;\n this.updatePortalContent();\n };\n\n /**\n * Handles clicks on the trigger element\n */\n private handleTriggerClick = (event: Event) => {\n // Only prevent default if the trigger is not an anchor with href\n // This allows link navigation while still controlling popover visibility\n const composedPath = event.composedPath();\n const anchorWithHref = composedPath.find(\n (el) => el instanceof HTMLAnchorElement && (el as HTMLAnchorElement).href\n );\n\n if (!anchorWithHref) {\n event.preventDefault();\n }\n\n // Execute the appropriate action based on popoverTargetAction prop\n switch (this.popoverTargetAction) {\n case 'show':\n this.show();\n break;\n case 'hide':\n this.hide();\n break;\n case 'toggle':\n default:\n this.toggle();\n break;\n }\n };\n\n disconnectedCallback() {\n this.isComponentMounted = false;\n\n // Clean up trigger click event listener\n if (this.triggerEl != null) {\n this.triggerEl.removeEventListener('click', this.handleTriggerClick);\n }\n\n // Clean up all event listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending debounce timers\n this.clearDebounceTimers();\n\n // Remove portal from DOM\n this.removePortal();\n }\n\n /**\n * Clears any pending debounce timers\n */\n private clearDebounceTimers() {\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n this.scrollDebounceTimer = null;\n }\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n this.resizeDebounceTimer = null;\n }\n }\n\n private createPortal() {\n if (this.portalEl !== null) return;\n\n this.portalEl = document.createElement('div');\n this.portalEl.className = 'pds-popover';\n\n // Apply all styles inline since portal is outside shadow DOM\n this.portalEl.style.position = 'fixed';\n this.portalEl.style.zIndex = 'var(--pine-z-index-raised)';\n this.portalEl.style.maxWidth = `${this.maxWidth}px`;\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n this.portalEl.style.backgroundColor = 'var(--pine-color-background-container)';\n this.portalEl.style.borderRadius = 'var(--pine-dimension-125)';\n this.portalEl.style.boxShadow = 'var(--pine-box-shadow-200)';\n this.portalEl.style.margin = 'var(--pine-dimension-none)';\n this.portalEl.style.padding = 'var(--pine-dimension-md)';\n\n // Generate unique ID\n if (!this.componentId) {\n const suffix = PdsPopover.instanceCounter++;\n this.portalEl.id = `pds-popover-portal-${suffix}`;\n } else {\n this.portalEl.id = `${this.componentId}-portal`;\n }\n\n // Add accessibility attributes for screen readers\n // Note: Native Popover API doesn't add a specific role, keeping semantic HTML\n this.portalEl.setAttribute('aria-modal', 'false'); // Not a modal, can interact with rest of page\n\n // Append to body\n document.body.appendChild(this.portalEl);\n\n // Add global focus styles to match Pine design system\n // This is done after appending to ensure it's part of the document and can access CSS variables\n this.addPortalFocusStyles();\n }\n\n /**\n * Adds Pine design system focus styles and dark mode border to the portal element\n * Uses CSS variables from Pine's design tokens\n */\n private addPortalFocusStyles() {\n if (!this.portalEl) return;\n\n const portalId = this.portalEl.id;\n\n // Check if style element already exists\n const existingStyle = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (existingStyle) return;\n\n // Create style element with Pine's focus ring styles and dark mode border\n const styleEl = document.createElement('style');\n styleEl.setAttribute('data-pds-popover-focus', portalId);\n styleEl.textContent = `\n #${portalId}:focus {\n outline: var(--pine-outline-focus, 2px solid var(--pine-color-focus-ring, #6366f1)) !important;\n outline-offset: var(--pine-border-width, 1px);\n }\n #${portalId}:focus:not(:focus-visible) {\n outline: none;\n }\n [data-theme=\"dark\"] #${portalId} {\n border: var(--pine-border);\n }\n `;\n\n document.head.appendChild(styleEl);\n }\n\n /**\n * Moves slot content into portal (preserves event handlers and component instances)\n */\n private updatePortalContent() {\n if (!this.portalEl) return;\n\n const contentSlotWrapper = this.el.shadowRoot?.querySelector('.pds-popover__content-slot-wrapper');\n const defaultSlot = contentSlotWrapper?.querySelector('slot');\n\n if (defaultSlot) {\n const assignedNodes = defaultSlot.assignedNodes();\n\n // Move each node into portal and track with placeholder for restoration\n assignedNodes.forEach(node => {\n // Skip if node is already in the portal or already tracked\n const isAlreadyInPortal = node.parentNode === this.portalEl;\n const isAlreadyTracked = this.movedNodes.some(moved => moved.node === node);\n\n if (isAlreadyInPortal || isAlreadyTracked) {\n return;\n }\n\n // Create a placeholder comment to mark original position\n const placeholder = document.createComment('pds-popover-placeholder');\n\n // Insert placeholder before moving the node\n node.parentNode?.insertBefore(placeholder, node);\n\n // Move the actual node to portal (preserves all handlers and state)\n this.portalEl!.appendChild(node);\n\n // Track for restoration\n this.movedNodes.push({ node, placeholder });\n });\n }\n }\n\n /**\n * Restores moved nodes back to their original positions\n */\n private restorePortalContent() {\n // Restore each moved node to its original position\n this.movedNodes.forEach(({ node, placeholder }) => {\n if (placeholder.parentNode) {\n placeholder.parentNode.insertBefore(node, placeholder);\n placeholder.parentNode.removeChild(placeholder);\n }\n });\n\n // Clear tracking array\n this.movedNodes = [];\n }\n\n private removePortal() {\n if (this.portalEl) {\n // Remove the portal element from DOM\n if (this.portalEl.parentNode) {\n this.portalEl.parentNode.removeChild(this.portalEl);\n }\n\n // Remove the associated focus style element\n const portalId = this.portalEl.id;\n const styleEl = document.querySelector(`style[data-pds-popover-focus=\"${portalId}\"]`);\n if (styleEl && styleEl.parentNode) {\n styleEl.parentNode.removeChild(styleEl);\n }\n }\n this.portalEl = null;\n }\n\n /**\n * Opens the popover programmatically\n */\n @Method()\n async show() {\n if (this.active || !this.portalEl) return;\n\n this.active = true;\n\n // Record open timestamp to prevent immediate close from opening click\n this.openTimestamp = Date.now();\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'true');\n }\n\n // Update portal content with latest slot content\n this.updatePortalContent();\n\n // Show portal\n this.portalEl.style.display = 'block';\n this.portalEl.style.opacity = '1';\n this.portalEl.style.visibility = 'visible';\n\n // Position the popover\n requestAnimationFrame(() => {\n if (!this.isComponentMounted) return;\n this.handlePopoverPositioning();\n });\n\n // Add scroll and resize listeners for repositioning (always)\n this.addScrollAndResizeListeners();\n\n // Add document listeners for light dismiss and escape key (auto type only)\n if (this.popoverType === 'auto') {\n this.addLightDismissListeners();\n }\n\n // Emit open event\n this.pdsPopoverOpen.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover programmatically\n */\n @Method()\n async hide() {\n if (!this.active || !this.portalEl) return;\n\n this.active = false;\n\n // Update ARIA expanded state on trigger\n if (this.triggerEl) {\n this.triggerEl.setAttribute('aria-expanded', 'false');\n }\n\n // Restore content back to original slot positions\n this.restorePortalContent();\n\n // Hide portal\n this.portalEl.style.display = 'none';\n this.portalEl.style.opacity = '0';\n this.portalEl.style.visibility = 'hidden';\n\n // Return focus to trigger for keyboard accessibility\n // This mirrors native Popover API behavior on close\n this.returnFocusToTrigger();\n\n // Remove all listeners\n this.removeLightDismissListeners();\n this.removeScrollAndResizeListeners();\n\n // Clear any pending timers\n this.clearDebounceTimers();\n\n // Emit close event\n this.pdsPopoverClose.emit({\n componentId: this.componentId,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Toggles the popover open/closed state programmatically\n */\n @Method()\n async toggle() {\n if (this.active) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Adds light dismiss listeners (click outside and escape key)\n */\n private addLightDismissListeners() {\n // Add listeners immediately - handleClickOutside will check timestamp\n document.addEventListener('click', this.boundClickOutsideHandler, true);\n document.addEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Removes light dismiss listeners\n */\n private removeLightDismissListeners() {\n document.removeEventListener('click', this.boundClickOutsideHandler, true);\n document.removeEventListener('keydown', this.boundEscapeKeyHandler);\n }\n\n /**\n * Adds scroll and resize listeners for repositioning\n */\n private addScrollAndResizeListeners() {\n window.addEventListener('scroll', this.boundScrollHandler, true);\n window.addEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Removes scroll and resize listeners\n */\n private removeScrollAndResizeListeners() {\n window.removeEventListener('scroll', this.boundScrollHandler, true);\n window.removeEventListener('resize', this.boundResizeHandler);\n }\n\n /**\n * Handles clicks outside the popover for light dismiss (auto type only)\n */\n private handleClickOutside(event: MouseEvent) {\n // Ignore events that occurred at or before the popover opened\n // This prevents the opening click from immediately closing the popover\n // Convert event.timeStamp (DOMHighResTimeStamp from performance.now()) to epoch time\n // by calculating: currentEpochTime - (currentPerfTime - eventPerfTime)\n const eventTime = event.timeStamp\n ? Date.now() - (performance.now() - event.timeStamp)\n : Date.now();\n\n if (eventTime <= this.openTimestamp) {\n return;\n }\n\n const target = event.target as Node;\n\n // Check if click is outside both the popover portal and the trigger\n const clickedInsidePopover = this.portalEl?.contains(target);\n const clickedInsideTrigger = this.triggerEl?.contains(target);\n\n if (!clickedInsidePopover && !clickedInsideTrigger) {\n this.hide();\n }\n }\n\n /**\n * Returns focus to the trigger element with visible focus indicator\n * This ensures focus rings/outlines are shown as they would be with keyboard navigation\n */\n private returnFocusToTrigger() {\n if (!this.triggerEl) return;\n\n // Focus immediately while still in keyboard event context\n // This ensures the browser treats it as keyboard-initiated and shows focus ring\n this.triggerEl.focus({ preventScroll: true });\n }\n\n /**\n * Handles escape key press to close the popover\n * Mirrors native Popover API: Escape closes and returns focus to trigger\n */\n private handleEscapeKey(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n // Prevent default Escape behavior and stop propagation\n // This mirrors native Popover API which handles Escape exclusively\n event.preventDefault();\n event.stopPropagation();\n\n // Close popover and return focus to trigger\n this.hide();\n }\n }\n\n /**\n * Handles scroll events to reposition the popover (debounced for performance)\n */\n private handleScroll() {\n if (!this.active) return;\n\n if (this.scrollDebounceTimer !== null) {\n clearTimeout(this.scrollDebounceTimer);\n }\n\n this.scrollDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.scrollDebounceTimer = null;\n }, 10); // 10ms debounce for smooth repositioning\n }\n\n /**\n * Handles resize events to reposition the popover (debounced for performance)\n */\n private handleResize() {\n if (!this.active) return;\n\n if (this.resizeDebounceTimer !== null) {\n clearTimeout(this.resizeDebounceTimer);\n }\n\n this.resizeDebounceTimer = setTimeout(() => {\n this.handlePopoverPositioning();\n this.resizeDebounceTimer = null;\n }, 100); // 100ms debounce for resize\n }\n\n /**\n * Positions the popover relative to its trigger element\n */\n private handlePopoverPositioning() {\n // Prevent repositioning loops\n if (this.isRepositioning) {\n return;\n }\n\n this.isRepositioning = true;\n\n if (this.triggerEl == null || this.portalEl == null) {\n this.isRepositioning = false;\n return;\n }\n\n const triggerRect = this.triggerEl.getBoundingClientRect();\n const popoverRect = this.portalEl.getBoundingClientRect();\n\n // Safety check: ensure trigger has valid dimensions (is rendered and visible)\n if (triggerRect.width === 0 || triggerRect.height === 0) {\n this.isRepositioning = false;\n return;\n }\n\n let top = 0;\n let left = 0;\n const offset = 8;\n\n switch (this.placement) {\n case 'top':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'top-start':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.left;\n break;\n case 'top-end':\n top = triggerRect.top - popoverRect.height - offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'right':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.right + offset;\n break;\n case 'right-start':\n top = triggerRect.top;\n left = triggerRect.right + offset;\n break;\n case 'right-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.right + offset;\n break;\n case 'bottom':\n top = triggerRect.bottom + offset;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case 'bottom-start':\n top = triggerRect.bottom + offset;\n left = triggerRect.left;\n break;\n case 'bottom-end':\n top = triggerRect.bottom + offset;\n left = triggerRect.right - popoverRect.width;\n break;\n case 'left':\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-start':\n top = triggerRect.top;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n case 'left-end':\n top = triggerRect.bottom - popoverRect.height;\n left = triggerRect.left - popoverRect.width - offset;\n break;\n }\n\n this.portalEl.style.top = `${top}px`;\n this.portalEl.style.left = `${left}px`;\n\n // Reset the repositioning guard after a short delay\n setTimeout(() => {\n this.isRepositioning = false;\n }, 16); // ~1 frame at 60fps\n }\n\n render() {\n return (\n <Host id={this.componentId}>\n <span class=\"pds-popover__trigger-wrapper\">\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange}></slot>\n </span>\n\n <div class=\"pds-popover__content-slot-wrapper\">\n <slot onSlotchange={this.handleContentSlotChange}></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":["h","Host"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-2Lf0E1JO.js');
3
+ var index = require('./index-CI0W8NCh.js');
4
4
 
5
- const pdsProgressCss = ":host{--color-progress-fill:var(--pine-color-brand);--sizing-progress-bar-width:100%;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:var(--sizing-progress-bar-width)}@-webkit-keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}@keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}.pds-progress{-ms-flex-align:center;align-items:center;background-color:var(--pine-color-background-container-disabled);border-radius:var(--pine-dimension-2xs);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:var(--pine-dimension-xs);position:relative;width:100%}:host(.is-animated) progress,:host(.is-animated) progress::-webkit-progress-bar{-webkit-animation:progressBar 3s ease;animation:progressBar 3s ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}progress,progress::-webkit-progress-bar{background-color:transparent;border:0;height:var(--pine-dimension-xs);width:100%}progress::-webkit-progress-value{background:var(--color-progress-fill, var(--pine-color-brand));border-radius:var(--pine-dimension-2xs)}progress::-moz-progress-bar{background:var(--color-progress-fill, var(--pine-color-brand));border-radius:var(--pine-dimension-2xs)}.pds-progress__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pds-progress__percentage{font-weight:var(--pine-font-weight-medium);-webkit-margin-start:calc(var(--pine-dimension-md) / 2);margin-inline-start:calc(var(--pine-dimension-md) / 2)}";
5
+ const pdsProgressCss = ":host{--color-progress-fill:var(--pine-color-primary);--sizing-progress-bar-width:100%;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;width:var(--sizing-progress-bar-width)}@-webkit-keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}@keyframes progressBar{0%{width:0}100%{width:var(--sizing-progress-bar-width)}}.pds-progress{-ms-flex-align:center;align-items:center;background-color:var(--pine-color-background-muted);border-radius:var(--pine-dimension-2xs);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;height:var(--pine-dimension-xs);position:relative;width:100%}:host(.is-animated) progress,:host(.is-animated) progress::-webkit-progress-bar{-webkit-animation:progressBar 3s ease;animation:progressBar 3s ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}progress,progress::-webkit-progress-bar{background-color:transparent;border:0;height:var(--pine-dimension-xs);width:100%}progress::-webkit-progress-value{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}progress::-moz-progress-bar{background:var(--color-progress-fill, var(--pine-color-primary));border-radius:var(--pine-dimension-2xs)}.pds-progress__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pds-progress__percentage{font-weight:var(--pine-font-weight-medium);-webkit-margin-start:calc(var(--pine-dimension-md) / 2);margin-inline-start:calc(var(--pine-dimension-md) / 2)}";
6
6
 
7
7
  const PdsProgress = class {
8
8
  constructor(hostRef) {
@@ -1 +1 @@
1
- {"version":3,"file":"pds-progress.entry.cjs.js","sources":["src/components/pds-progress/pds-progress.scss?tag=pds-progress&encapsulation=shadow","src/components/pds-progress/pds-progress.tsx"],"sourcesContent":[":host {\n --color-progress-fill: var(--pine-color-brand);\n\n --sizing-progress-bar-width: 100%;\n\n align-items: center;\n display: flex;\n width: var(--sizing-progress-bar-width);\n}\n\n@keyframes progressBar {\n 0% {\n width: 0\n }\n\n 100% {\n width: var(--sizing-progress-bar-width);\n }\n}\n\n.pds-progress {\n align-items: center;\n background-color: var(--pine-color-background-container-disabled);\n border-radius: var(--pine-dimension-2xs);\n display: flex;\n flex-direction: row;\n height: var(--pine-dimension-xs);\n position: relative;\n width: 100%;\n}\n\n:host(.is-animated) progress,\n:host(.is-animated) progress::-webkit-progress-bar {\n animation: progressBar 3s ease;\n animation-fill-mode: forwards;\n}\n\nprogress,\nprogress::-webkit-progress-bar {\n background-color: transparent;\n border: 0;\n height: var(--pine-dimension-xs);\n width: 100%;\n}\n\nprogress::-webkit-progress-value {\n background: var(--color-progress-fill, var(--pine-color-brand));\n border-radius: var(--pine-dimension-2xs);\n}\n\nprogress::-moz-progress-bar {\n background: var(--color-progress-fill, var(--pine-color-brand));\n border-radius: var(--pine-dimension-2xs);\n}\n\n.pds-progress__label {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.pds-progress__percentage {\n font-weight: var(--pine-font-weight-medium);\n margin-inline-start: calc(var(--pine-dimension-md) / 2);\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-progress',\n styleUrls: ['pds-progress.scss'],\n shadow: true,\n})\nexport class PdsProgress {\n /**\n * Determines whether or not progress is animated.\n * @defaultValue false\n */\n @Prop() animated = false;\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 * Sets the progress fill color. Accepts a color token or a [valid color value](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).\n * @defaultValue 'var(--pine-color-blue-300)'\n */\n @Prop() fillColor: string;\n\n /**\n * String used for label text. Label is visually hidden but required for better accessibility.\n */\n @Prop() label!: string;\n\n /**\n * Sets the progress fill pecentage and visually displayed when `show-percentage=true`.\n * @defaultValue 0\n */\n @Prop() percent = 0;\n\n /**\n * Determines whether or not the percent value should be displayed as text.\n * @defaultValue false\n */\n @Prop() showPercent = false;\n\n render() {\n return (\n <Host class={this.animated ? { 'is-animated': this.animated } : ''}>\n <div class=\"pds-progress\">\n <label class=\"pds-progress__label\" htmlFor={this.componentId}>\n {this.label}\n </label>\n <progress\n id={this.componentId}\n max=\"100\"\n style={this.fillColor ? { '--color-progress-fill': this.fillColor } : {}}\n value={this.percent}\n >\n </progress>\n </div>\n {this.showPercent && <div class=\"pds-progress__percentage\">{this.percent}%</div>}\n </Host>\n );\n }\n}\n"],"names":["h","Host"],"mappings":";;;;AAAA,MAAM,cAAc,GAAG,kiDAAkiD;;MCO5iD,WAAW,GAAA,MAAA;AALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;;AAGE;AACM,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAkBxB;;;AAGE;AACM,QAAA,IAAO,CAAA,OAAA,GAAG,CAAC;AAEnB;;;AAGE;AACM,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK;AAqB5B;IAnBC,MAAM,GAAA;AACJ,QAAA,QACEA,QAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAA,EAChED,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvBA,OAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAC,qBAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EACzD,IAAI,CAAC,KAAK,CACL,EACRA,OAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,GAAG,EAAC,KAAK,EACT,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,uBAAuB,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,EACxE,KAAK,EAAE,IAAI,CAAC,OAAO,GAEV,CACP,EACL,IAAI,CAAC,WAAW,IAAIA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EAAE,IAAI,CAAC,OAAO,EAAQ,GAAA,CAAA,CAC3E;;;;;;;"}
1
+ {"version":3,"file":"pds-progress.entry.cjs.js","sources":["src/components/pds-progress/pds-progress.scss?tag=pds-progress&encapsulation=shadow","src/components/pds-progress/pds-progress.tsx"],"sourcesContent":[":host {\n --color-progress-fill: var(--pine-color-primary);\n\n --sizing-progress-bar-width: 100%;\n\n align-items: center;\n display: flex;\n width: var(--sizing-progress-bar-width);\n}\n\n@keyframes progressBar {\n 0% {\n width: 0\n }\n\n 100% {\n width: var(--sizing-progress-bar-width);\n }\n}\n\n.pds-progress {\n align-items: center;\n background-color: var(--pine-color-background-muted);\n border-radius: var(--pine-dimension-2xs);\n display: flex;\n flex-direction: row;\n height: var(--pine-dimension-xs);\n position: relative;\n width: 100%;\n}\n\n:host(.is-animated) progress,\n:host(.is-animated) progress::-webkit-progress-bar {\n animation: progressBar 3s ease;\n animation-fill-mode: forwards;\n}\n\nprogress,\nprogress::-webkit-progress-bar {\n background-color: transparent;\n border: 0;\n height: var(--pine-dimension-xs);\n width: 100%;\n}\n\nprogress::-webkit-progress-value {\n background: var(--color-progress-fill, var(--pine-color-primary));\n border-radius: var(--pine-dimension-2xs);\n}\n\nprogress::-moz-progress-bar {\n background: var(--color-progress-fill, var(--pine-color-primary));\n border-radius: var(--pine-dimension-2xs);\n}\n\n.pds-progress__label {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.pds-progress__percentage {\n font-weight: var(--pine-font-weight-medium);\n margin-inline-start: calc(var(--pine-dimension-md) / 2);\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-progress',\n styleUrls: ['pds-progress.scss'],\n shadow: true,\n})\nexport class PdsProgress {\n /**\n * Determines whether or not progress is animated.\n * @defaultValue false\n */\n @Prop() animated = false;\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 * Sets the progress fill color. Accepts a color token or a [valid color value](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).\n * @defaultValue 'var(--pine-color-blue-300)'\n */\n @Prop() fillColor: string;\n\n /**\n * String used for label text. Label is visually hidden but required for better accessibility.\n */\n @Prop() label!: string;\n\n /**\n * Sets the progress fill pecentage and visually displayed when `show-percentage=true`.\n * @defaultValue 0\n */\n @Prop() percent = 0;\n\n /**\n * Determines whether or not the percent value should be displayed as text.\n * @defaultValue false\n */\n @Prop() showPercent = false;\n\n render() {\n return (\n <Host class={this.animated ? { 'is-animated': this.animated } : ''}>\n <div class=\"pds-progress\">\n <label class=\"pds-progress__label\" htmlFor={this.componentId}>\n {this.label}\n </label>\n <progress\n id={this.componentId}\n max=\"100\"\n style={this.fillColor ? { '--color-progress-fill': this.fillColor } : {}}\n value={this.percent}\n >\n </progress>\n </div>\n {this.showPercent && <div class=\"pds-progress__percentage\">{this.percent}%</div>}\n </Host>\n );\n }\n}\n"],"names":["h","Host"],"mappings":";;;;AAAA,MAAM,cAAc,GAAG,2hDAA2hD;;MCOriD,WAAW,GAAA,MAAA;AALxB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;;AAGE;AACM,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAkBxB;;;AAGE;AACM,QAAA,IAAO,CAAA,OAAA,GAAG,CAAC;AAEnB;;;AAGE;AACM,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK;AAqB5B;IAnBC,MAAM,GAAA;AACJ,QAAA,QACEA,QAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAA,EAChED,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvBA,OAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAO,KAAK,EAAC,qBAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EACzD,IAAI,CAAC,KAAK,CACL,EACRA,OAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,GAAG,EAAC,KAAK,EACT,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,uBAAuB,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,EACxE,KAAK,EAAE,IAAI,CAAC,OAAO,GAEV,CACP,EACL,IAAI,CAAC,WAAW,IAAIA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EAAE,IAAI,CAAC,OAAO,EAAQ,GAAA,CAAA,CAC3E;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-2Lf0E1JO.js');
3
+ var index = require('./index-CI0W8NCh.js');
4
4
 
5
5
  const pdsPropertyCss = ":host{color:var(--pine-color-text-message);font:var(--pine-typography-body-medium)}";
6
6
 
@@ -0,0 +1,170 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-CI0W8NCh.js');
4
+ var form = require('./form-hmpgbT1I.js');
5
+ var index$1 = require('./index-BIrlTMGo.js');
6
+
7
+ const pdsRadioGroupCss = ".sc-pds-radio-group-h{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-sm)}.is-invalid.sc-pds-radio-group-h .pds-radio-group__message--error.sc-pds-radio-group{color:var(--pine-color-text-message-danger)}.pds-radio-group__label.sc-pds-radio-group{color:var(--pine-color-text-label);font:var(--pine-typography-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-radio-group__radios.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pds-radio-group-gap, var(--pine-dimension-xs))}.pds-radio-group__radios--row.sc-pds-radio-group{-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.pds-radio-group__radios--column.sc-pds-radio-group{-ms-flex-direction:column;flex-direction:column}.pds-radio-group__message.sc-pds-radio-group{color:var(--pine-color-text-message);font:var(--pine-typography-body);width:100%}.pds-radio-group__message--error.sc-pds-radio-group{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}";
8
+
9
+ const PdsRadioGroup = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ this.pdsRadioGroupChange = index.createEvent(this, "pdsRadioGroupChange");
13
+ /**
14
+ * Layout direction for the radio group.
15
+ * @defaultValue column
16
+ */
17
+ this.direction = 'column';
18
+ /**
19
+ * Spacing between radio items. Accepts t-shirt sizes (none, xxs, xs, sm, md, lg, xl, xxl) or core spacing tokens (025, 050, 100, etc.).
20
+ * @defaultValue xs
21
+ */
22
+ this.gap = 'xs';
23
+ /**
24
+ * Determines whether or not the radio group is disabled.
25
+ * @defaultValue false
26
+ */
27
+ this.disabled = false;
28
+ /**
29
+ * Determines whether or not the radio group is invalid.
30
+ * @defaultValue false
31
+ */
32
+ this.invalid = false;
33
+ /**
34
+ * Determines whether or not the radio group is required.
35
+ * @defaultValue false
36
+ */
37
+ this.required = false;
38
+ }
39
+ handlePropsChange() {
40
+ this.updateChildRadios();
41
+ }
42
+ handleRadioChange(event) {
43
+ const target = event.target;
44
+ // Only handle events from radio inputs
45
+ if (target.type !== 'radio') {
46
+ return;
47
+ }
48
+ // Only emit if the radio is being checked (not unchecked)
49
+ if (target.checked) {
50
+ const radioElement = target.closest('pds-radio');
51
+ if (radioElement) {
52
+ this.pdsRadioGroupChange.emit({
53
+ checked: true,
54
+ value: radioElement.value,
55
+ componentId: radioElement.componentId,
56
+ });
57
+ }
58
+ }
59
+ }
60
+ updateChildRadios() {
61
+ const radios = this.el.querySelectorAll('pds-radio');
62
+ radios.forEach((radio) => {
63
+ if (this.name) {
64
+ radio.setAttribute('name', this.name);
65
+ }
66
+ else {
67
+ radio.removeAttribute('name');
68
+ }
69
+ if (this.disabled) {
70
+ radio.setAttribute('disabled', 'true');
71
+ }
72
+ else {
73
+ radio.removeAttribute('disabled');
74
+ }
75
+ if (this.invalid) {
76
+ radio.setAttribute('invalid', 'true');
77
+ }
78
+ else {
79
+ radio.removeAttribute('invalid');
80
+ }
81
+ if (this.required) {
82
+ radio.setAttribute('required', 'true');
83
+ }
84
+ else {
85
+ radio.removeAttribute('required');
86
+ }
87
+ });
88
+ }
89
+ componentWillLoad() {
90
+ // Generate stable group ID once during initialization
91
+ // This ensures DOM stability and accessibility relationships remain consistent across re-renders
92
+ if (this.componentId) {
93
+ this._groupId = this.componentId;
94
+ }
95
+ else {
96
+ // Generate unique ID with fallback for test environments where crypto.randomUUID may not be available
97
+ const uniqueId = typeof crypto !== 'undefined' && crypto.randomUUID
98
+ ? crypto.randomUUID()
99
+ : `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
100
+ this._groupId = `radio-group-${uniqueId}`;
101
+ }
102
+ }
103
+ componentDidLoad() {
104
+ if (!this.name) {
105
+ console.warn('pds-radio-group: name prop is required for proper radio group functionality');
106
+ }
107
+ this.updateChildRadios();
108
+ }
109
+ classNames() {
110
+ const classNames = [];
111
+ if (this.invalid) {
112
+ classNames.push('is-invalid');
113
+ }
114
+ // The host always uses flex-direction: column, so the label stays above.
115
+ // The direction prop now only affects the .pds-radio-group__radios container.
116
+ // No class needed on host for direction.
117
+ return classNames.join(' ');
118
+ }
119
+ getGapValue() {
120
+ // Map t-shirt sizes to dimension tokens
121
+ const gapMap = {
122
+ none: '0',
123
+ xxs: 'var(--pine-dimension-xxs)',
124
+ xs: 'var(--pine-dimension-xs)',
125
+ sm: 'var(--pine-dimension-sm)',
126
+ md: 'var(--pine-dimension-md)',
127
+ lg: 'var(--pine-dimension-lg)',
128
+ xl: 'var(--pine-dimension-xl)',
129
+ xxl: 'var(--pine-dimension-xxl)',
130
+ };
131
+ // If it's a t-shirt size, use the mapped value
132
+ if (gapMap[this.gap]) {
133
+ return gapMap[this.gap];
134
+ }
135
+ // Otherwise, assume it's a dimension token like "100", "200", etc.
136
+ return `var(--pine-dimension-${this.gap})`;
137
+ }
138
+ getAriaDescribedBy() {
139
+ const messageIds = [];
140
+ if (this.errorMessage) {
141
+ messageIds.push(form.messageId(this._groupId, 'error'));
142
+ }
143
+ if (this.helperMessage) {
144
+ messageIds.push(form.messageId(this._groupId, 'helper'));
145
+ }
146
+ return messageIds.length > 0 ? messageIds.join(' ') : undefined;
147
+ }
148
+ render() {
149
+ const gapValue = this.getGapValue();
150
+ const ariaDescribedBy = this.getAriaDescribedBy();
151
+ return (index.h(index.Host, { key: '3354fc555d3158c26d8bc8d63f372bc98bec959b', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
152
+ '--pds-radio-group-gap': gapValue,
153
+ } }, this.groupLabel && (index.h("div", { key: '64961e1a1857bb1c31ed97f20f4a1b04731ea3cf', class: "pds-radio-group__label" }, this.groupLabel)), index.h("div", { key: '2525254fbbaf39fd0c59a830e5a3115ddce0326b', class: {
154
+ 'pds-radio-group__radios': true,
155
+ 'pds-radio-group__radios--row': this.direction === 'row',
156
+ 'pds-radio-group__radios--column': this.direction === 'column',
157
+ } }, index.h("slot", { key: '484340d3d920532b32a821322dee3b391429cfae', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (index.h("div", { key: '41a0d1105d5f23296382f228d7a2c8b31b3a863a', class: "pds-radio-group__message", id: form.messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (index.h("div", { key: '31e67f67b1525426c449abe8daaf8d1af8957b14', class: "pds-radio-group__message pds-radio-group__message--error", id: form.messageId(this._groupId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: 'f5ac7ac61e9a5b2fd2a14ee334b3417d9fbd52ca', icon: index$1.danger, size: "small" }), this.errorMessage))));
158
+ }
159
+ get el() { return index.getElement(this); }
160
+ static get watchers() { return {
161
+ "name": ["handlePropsChange"],
162
+ "disabled": ["handlePropsChange"],
163
+ "invalid": ["handlePropsChange"],
164
+ "required": ["handlePropsChange"]
165
+ }; }
166
+ };
167
+ PdsRadioGroup.style = pdsRadioGroupCss;
168
+
169
+ exports.pds_radio_group = PdsRadioGroup;
170
+ //# sourceMappingURL=pds-radio-group.entry.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pds-radio-group.entry.cjs.js","sources":["src/components/pds-radio-group/pds-radio-group.scss?tag=pds-radio-group&encapsulation=scoped","src/components/pds-radio-group/pds-radio-group.tsx"],"sourcesContent":[":host {\n display: flex;\n flex-direction: column;\n gap: var(--pine-dimension-sm);\n}\n\n:host(.is-invalid) {\n .pds-radio-group__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\n.pds-radio-group__label {\n color: var(--pine-color-text-label);\n font: var(--pine-typography-heading-6);\n font-weight: var(--pine-font-weight-medium);\n letter-spacing: var(--pine-letter-spacing-heading-6);\n}\n\n.pds-radio-group__radios {\n display: flex;\n gap: var(--pds-radio-group-gap, var(--pine-dimension-xs));\n}\n\n.pds-radio-group__radios--row {\n align-items: flex-start; // Align radios to the left\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.pds-radio-group__radios--column {\n flex-direction: column;\n}\n\n.pds-radio-group__message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body);\n width: 100%;\n}\n\n.pds-radio-group__message--error {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-2xs);\n}\n\n","import { Component, Host, h, Prop, Element, Watch, Event, EventEmitter, Listen } from '@stencil/core';\nimport { messageId } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\nimport { RadioGroupChangeEventDetail } from './radio-group-interface';\n\n/**\n * @slot (default) - Child pds-radio components\n */\n@Component({\n tag: 'pds-radio-group',\n styleUrls: ['pds-radio-group.scss'],\n scoped: true,\n})\nexport class PdsRadioGroup {\n @Element() el: HTMLPdsRadioGroupElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Stable group ID generated once during component initialization.\n * Used to maintain DOM stability and accessibility relationships across re-renders.\n */\n private _groupId: string;\n\n /**\n * Layout direction for the radio group.\n * @defaultValue column\n */\n @Prop() direction: 'row' | 'column' = 'column';\n\n /**\n * Displays error message text describing an invalid state for the entire group.\n */\n @Prop() errorMessage: string;\n\n /**\n * Displays helper message text below the radio group.\n */\n @Prop() helperMessage: string;\n\n /**\n * Spacing between radio items. Accepts t-shirt sizes (none, xxs, xs, sm, md, lg, xl, xxl) or core spacing tokens (025, 050, 100, etc.).\n * @defaultValue xs\n */\n @Prop() gap: string = 'xs';\n\n /**\n * Determines whether or not the radio group is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Determines whether or not the radio group is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * String used for group label/heading.\n */\n @Prop() groupLabel: string;\n\n /**\n * String used for radio `name` attribute. Applied to all child radios.\n * Required for proper radio group behavior (mutual exclusivity and form submission).\n */\n @Prop() name: string;\n\n /**\n * Determines whether or not the radio group is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * Emits when a radio in the group is selected, providing the selected value and component ID.\n */\n @Event() pdsRadioGroupChange: EventEmitter<RadioGroupChangeEventDetail>;\n\n @Watch('name')\n @Watch('disabled')\n @Watch('invalid')\n @Watch('required')\n handlePropsChange() {\n this.updateChildRadios();\n }\n\n @Listen('change')\n handleRadioChange(event: Event) {\n const target = event.target as HTMLInputElement;\n\n // Only handle events from radio inputs\n if (target.type !== 'radio') {\n return;\n }\n\n // Only emit if the radio is being checked (not unchecked)\n if (target.checked) {\n const radioElement = target.closest('pds-radio') as HTMLPdsRadioElement;\n if (radioElement) {\n this.pdsRadioGroupChange.emit({\n checked: true,\n value: radioElement.value,\n componentId: radioElement.componentId,\n });\n }\n }\n }\n\n private updateChildRadios() {\n const radios = this.el.querySelectorAll('pds-radio');\n radios.forEach((radio) => {\n if (this.name) {\n radio.setAttribute('name', this.name);\n } else {\n radio.removeAttribute('name');\n }\n if (this.disabled) {\n radio.setAttribute('disabled', 'true');\n } else {\n radio.removeAttribute('disabled');\n }\n if (this.invalid) {\n radio.setAttribute('invalid', 'true');\n } else {\n radio.removeAttribute('invalid');\n }\n if (this.required) {\n radio.setAttribute('required', 'true');\n } else {\n radio.removeAttribute('required');\n }\n });\n }\n\n componentWillLoad() {\n // Generate stable group ID once during initialization\n // This ensures DOM stability and accessibility relationships remain consistent across re-renders\n if (this.componentId) {\n this._groupId = this.componentId;\n } else {\n // Generate unique ID with fallback for test environments where crypto.randomUUID may not be available\n const uniqueId = typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID()\n : `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n this._groupId = `radio-group-${uniqueId}`;\n }\n }\n\n componentDidLoad() {\n if (!this.name) {\n console.warn('pds-radio-group: name prop is required for proper radio group functionality');\n }\n this.updateChildRadios();\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) {\n classNames.push('is-invalid');\n }\n // The host always uses flex-direction: column, so the label stays above.\n // The direction prop now only affects the .pds-radio-group__radios container.\n // No class needed on host for direction.\n\n return classNames.join(' ');\n }\n\n private getGapValue(): string {\n // Map t-shirt sizes to dimension tokens\n const gapMap: Record<string, string> = {\n none: '0',\n xxs: 'var(--pine-dimension-xxs)',\n xs: 'var(--pine-dimension-xs)',\n sm: 'var(--pine-dimension-sm)',\n md: 'var(--pine-dimension-md)',\n lg: 'var(--pine-dimension-lg)',\n xl: 'var(--pine-dimension-xl)',\n xxl: 'var(--pine-dimension-xxl)',\n };\n\n // If it's a t-shirt size, use the mapped value\n if (gapMap[this.gap]) {\n return gapMap[this.gap];\n }\n\n // Otherwise, assume it's a dimension token like \"100\", \"200\", etc.\n return `var(--pine-dimension-${this.gap})`;\n }\n\n private getAriaDescribedBy(): string | undefined {\n const messageIds: string[] = [];\n\n if (this.errorMessage) {\n messageIds.push(messageId(this._groupId, 'error'));\n }\n\n if (this.helperMessage) {\n messageIds.push(messageId(this._groupId, 'helper'));\n }\n\n return messageIds.length > 0 ? messageIds.join(' ') : undefined;\n }\n\n render() {\n const gapValue = this.getGapValue();\n const ariaDescribedBy = this.getAriaDescribedBy();\n\n return (\n <Host\n class={this.classNames()}\n id={this._groupId}\n role=\"group\"\n aria-describedby={ariaDescribedBy}\n style={{\n '--pds-radio-group-gap': gapValue,\n }}\n >\n {this.groupLabel && (\n <div class=\"pds-radio-group__label\">\n {this.groupLabel}\n </div>\n )}\n <div class={{\n 'pds-radio-group__radios': true,\n 'pds-radio-group__radios--row': this.direction === 'row',\n 'pds-radio-group__radios--column': this.direction === 'column',\n }}>\n <slot onSlotchange={() => this.updateChildRadios()} />\n </div>\n {this.helperMessage && (\n <div\n class=\"pds-radio-group__message\"\n id={messageId(this._groupId, 'helper')}\n >\n {this.helperMessage}\n </div>\n )}\n {this.errorMessage && (\n <div\n class=\"pds-radio-group__message pds-radio-group__message--error\"\n id={messageId(this._groupId, '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\n"],"names":["messageId","h","Host","danger"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-2Lf0E1JO.js');
3
+ var index = require('./index-CI0W8NCh.js');
4
4
  var form = require('./form-hmpgbT1I.js');
5
5
  var index$1 = require('./index-BIrlTMGo.js');
6
6
 
7
7
  const labelCss = ".sc-pds-radio-h{display:inline-block}[aria-disabled=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-disabled)}[aria-readonly=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-readonly)}label.sc-pds-radio{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}";
8
8
 
9
- const pdsRadioCss = ".sc-pds-radio-h{--sizing-check-size:6px;--sizing-input-size:var(--pine-dimension-sm);--sizing-margin-block-start:6px;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;position:relative}.is-invalid.sc-pds-radio-h input.sc-pds-radio{border-color:var(--pine-color-border-danger)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:checked{background:var(--pine-color-border-danger)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:checked:hover{background:var(--pine-color-border-danger-hover);border-color:var(--pine-color-border-danger-hover)}.is-invalid.sc-pds-radio-h input.sc-pds-radio:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.is-invalid.sc-pds-radio-h label.sc-pds-radio,.is-invalid.sc-pds-radio-h .pds-radio__message--error.sc-pds-radio{color:var(--pine-color-text-message-danger)}.has-border.sc-pds-radio-h{-ms-flex-align:start;align-items:flex-start;border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-column-gap:var(--pine-dimension-xs);-moz-column-gap:var(--pine-dimension-xs);column-gap:var(--pine-dimension-xs);display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;padding:var(--pine-dimension-md)}.has-border.sc-pds-radio-h:hover{border:var(--pine-border-hover)}.has-border.sc-pds-radio-h:has(input:checked){-webkit-box-shadow:0 0 0 2px var(--pine-color-primary-hover);box-shadow:0 0 0 2px var(--pine-color-primary-hover)}.has-border.sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text);font-weight:var(--pine-font-weight-semi-bold)}.has-border.sc-pds-radio-h label.sc-pds-radio::after{content:\"\";cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}input.sc-pds-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-border-radius-full);-ms-flex:none;flex:none;height:var(--sizing-input-size);margin:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025);position:relative;width:var(--sizing-input-size)}input.visually-hidden.sc-pds-radio{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}input.sc-pds-radio:hover{background:var(--pine-color-background-container-hover);border:var(--pine-border-hover)}input.sc-pds-radio:checked{background:var(--pine-color-accent);border-color:var(--pine-color-accent)}input.sc-pds-radio:checked:hover{background:var(--pine-color-accent-hover);border-color:var(--pine-color-accent-hover)}input.sc-pds-radio:checked::after{background:var(--pine-color-background-container);border-radius:var(--pine-border-radius-full);content:\"\";display:block;height:var(--sizing-check-size);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:var(--sizing-check-size)}input.sc-pds-radio:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);cursor:not-allowed}input.sc-pds-radio:disabled:checked{background-color:var(--pine-color-accent-disabled);border-color:var(--pine-color-border-disabled)}input.sc-pds-radio:disabled:checked::after{border-color:var(--pine-color-border-disabled)}input.sc-pds-radio:disabled+label.sc-pds-radio{cursor:not-allowed}input.sc-pds-radio:disabled~.pds-radio__message.sc-pds-radio{color:var(--pine-color-text-message-disabled)}input.sc-pds-radio:focus-visible{outline:var(--pine-outline-focus)}label.sc-pds-radio{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}.visually-hidden.sc-pds-radio{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-radio__message.sc-pds-radio{color:var(--pine-color-text-message);font:var(--pine-typography-body);-webkit-margin-start:var(--pine-dimension-md);margin-inline-start:var(--pine-dimension-md);width:100%}.pds-radio__message--error.sc-pds-radio{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-radio__message--error.sc-pds-radio pds-icon.sc-pds-radio{-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025)}.has-image.sc-pds-radio-h{-ms-flex-align:center;align-items:center;border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-column-gap:var(--pine-dimension-xs);-moz-column-gap:var(--pine-dimension-xs);column-gap:var(--pine-dimension-xs);display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;padding:var(--pine-dimension-md)}.has-image.sc-pds-radio-h:hover{border:var(--pine-border-hover)}.has-image.sc-pds-radio-h:has(input:checked){-webkit-box-shadow:0 0 0 2px var(--pine-color-primary-hover);box-shadow:0 0 0 2px var(--pine-color-primary-hover)}.has-image.sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text);display:-ms-flexbox;display:flex;font-weight:var(--pine-font-weight-semi-bold);gap:var(--pine-dimension-xs)}.has-image.sc-pds-radio-h label.sc-pds-radio::after{content:\"\";cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.has-image.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio{-ms-flex-align:center;align-items:center;align-self:center;border:var(--pine-border);border-radius:var(--pine-border-radius-full);cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex:none;flex:none;grid-area:image;-ms-flex-pack:center;justify-content:center;overflow:hidden;position:relative;-webkit-transition:all 0.2s ease;transition:all 0.2s ease}.has-image.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio:hover{border-color:var(--pine-color-border-hover)}.has-image.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio .pds-radio__image.sc-pds-radio{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.has-image.sc-pds-radio-h .pds-radio__message.sc-pds-radio{grid-area:message;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:0;margin-inline-start:0}.has-image.is-disabled.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio{border-color:var(--pine-color-border-disabled);cursor:not-allowed;opacity:0.6}.has-image.is-disabled.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio:hover{border-color:var(--pine-color-border-disabled)}.has-image.is-disabled.sc-pds-radio-h label.sc-pds-radio{cursor:not-allowed}.has-image.is-invalid.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio{border-color:var(--pine-color-border-danger)}.has-image.is-invalid.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio:hover{border-color:var(--pine-color-border-danger-hover)}.has-image.is-invalid.sc-pds-radio-h:has(input:checked){-webkit-box-shadow:0 0 0 2px var(--pine-color-border-danger);box-shadow:0 0 0 2px var(--pine-color-border-danger)}.has-image.is-invalid.sc-pds-radio-h:has(input:checked) .pds-radio__image-container.sc-pds-radio{border-color:var(--pine-color-border-danger);-webkit-box-shadow:0 0 0 2px var(--pine-color-border-danger);box-shadow:0 0 0 2px var(--pine-color-border-danger)}.has-image.is-invalid.sc-pds-radio-h:has(input:checked) .pds-radio__image-container.sc-pds-radio::after{background:var(--pine-color-border-danger)}.has-image.is-invalid.sc-pds-radio-h:has(input:checked) .pds-radio__image-container.sc-pds-radio:hover{border-color:var(--pine-color-border-danger-hover);-webkit-box-shadow:0 0 0 2px var(--pine-color-border-danger-hover);box-shadow:0 0 0 2px var(--pine-color-border-danger-hover)}.has-image.is-invalid.sc-pds-radio-h:has(input:checked):hover{-webkit-box-shadow:0 0 0 2px var(--pine-color-border-danger-hover);box-shadow:0 0 0 2px var(--pine-color-border-danger-hover)}.has-image.is-invalid.sc-pds-radio-h label.sc-pds-radio,.has-image.is-invalid.sc-pds-radio-h .pds-radio__message--error.sc-pds-radio{color:var(--pine-color-text-message-danger)}";
9
+ const pdsRadioCss = ".sc-pds-radio-h{--sizing-check-size:6px;--sizing-input-size:var(--pine-dimension-sm);--sizing-margin-block-start:6px;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;position:relative}.is-invalid.sc-pds-radio-h .pds-radio__message--error.sc-pds-radio{color:var(--pine-color-text-message-danger)}.has-border.sc-pds-radio-h{-ms-flex-align:start;align-items:flex-start;border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-column-gap:var(--pine-dimension-xs);-moz-column-gap:var(--pine-dimension-xs);column-gap:var(--pine-dimension-xs);display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;padding:var(--pine-dimension-md)}@media (max-width: 767px){.has-border.sc-pds-radio-h{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%;min-width:0}}.has-border.sc-pds-radio-h:hover{border:var(--pine-border-hover)}.has-border.sc-pds-radio-h:has(input:checked){-webkit-box-shadow:0 0 0 2px var(--pine-color-primary-hover);box-shadow:0 0 0 2px var(--pine-color-primary-hover)}.has-border.sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text);font-weight:var(--pine-font-weight-semi-bold)}.has-border.sc-pds-radio-h label.sc-pds-radio::after{content:\"\";cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.has-border.sc-pds-radio-h:has(input:disabled){background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);cursor:not-allowed}.has-border.sc-pds-radio-h:has(input:disabled) label.sc-pds-radio{color:var(--pine-color-text-label-disabled);cursor:not-allowed}.has-border.is-invalid.sc-pds-radio-h .pds-radio__message--error.sc-pds-radio{color:var(--pine-color-text-message-danger)}input.sc-pds-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--pine-color-background-container);border:var(--pine-border);border-radius:var(--pine-border-radius-full);-ms-flex:none;flex:none;height:var(--sizing-input-size);margin:0;-webkit-margin-before:var(--pine-dimension-025);margin-block-start:var(--pine-dimension-025);position:relative;width:var(--sizing-input-size)}input.visually-hidden.sc-pds-radio{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}input.sc-pds-radio:hover{background:var(--pine-color-background-container-hover);border:var(--pine-border-hover)}input.sc-pds-radio:checked{background:var(--pine-color-accent);border-color:var(--pine-color-accent)}input.sc-pds-radio:checked:hover{background:var(--pine-color-accent-hover);border-color:var(--pine-color-accent-hover)}input.sc-pds-radio:checked::after{background:var(--pine-color-white);border-radius:var(--pine-border-radius-full);content:\"\";display:block;height:var(--sizing-check-size);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:var(--sizing-check-size)}input.sc-pds-radio:disabled{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);cursor:not-allowed}input.sc-pds-radio:disabled:checked{background-color:var(--pine-color-accent-disabled);border-color:var(--pine-color-border-disabled)}input.sc-pds-radio:disabled:checked::after{border-color:var(--pine-color-border-disabled)}input.sc-pds-radio:focus-visible{outline:var(--pine-outline-focus)}label.sc-pds-radio{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs)}label.sc-pds-radio:has(input:disabled){color:var(--pine-color-text-label-disabled);cursor:not-allowed}.sc-pds-radio-h:has(input:disabled) .pds-radio__message.sc-pds-radio{color:var(--pine-color-text-label-disabled)}.visually-hidden.sc-pds-radio{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-radio__message.sc-pds-radio{color:var(--pine-color-text-message);-ms-flex-preferred-size:100%;flex-basis:100%;font:var(--pine-typography-body);-webkit-margin-start:var(--pine-dimension-md);margin-inline-start:var(--pine-dimension-md);width:100%}.pds-radio__message--error.sc-pds-radio{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.has-image.sc-pds-radio-h{-ms-flex-align:center;align-items:center;border:var(--pine-border);border-radius:var(--pine-dimension-125);-webkit-column-gap:var(--pine-dimension-xs);-moz-column-gap:var(--pine-dimension-xs);column-gap:var(--pine-dimension-xs);display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;padding:var(--pine-dimension-md)}@media (max-width: 767px){.has-image.sc-pds-radio-h{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex:1 1 100%;flex:1 1 100%;max-width:100%;min-width:0}}.has-image.sc-pds-radio-h:hover{border:var(--pine-border-hover)}.has-image.sc-pds-radio-h:has(input:checked){-webkit-box-shadow:0 0 0 2px var(--pine-color-primary-hover);box-shadow:0 0 0 2px var(--pine-color-primary-hover)}.has-image.sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text);display:-ms-flexbox;display:flex;font-weight:var(--pine-font-weight-semi-bold);gap:var(--pine-dimension-xs)}.has-image.sc-pds-radio-h label.sc-pds-radio::after{content:\"\";cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.has-image.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio{-ms-flex-align:center;align-items:center;align-self:center;border:var(--pine-border);border-radius:var(--pine-border-radius-full);cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex:none;flex:none;grid-area:image;-ms-flex-pack:center;justify-content:center;overflow:hidden;position:relative;-webkit-transition:all 0.2s ease;transition:all 0.2s ease}.has-image.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio:hover{border-color:var(--pine-color-border-hover)}.has-image.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio .pds-radio__image.sc-pds-radio{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.has-image.sc-pds-radio-h .pds-radio__message.sc-pds-radio{grid-area:message;-webkit-margin-before:0;margin-block-start:0;-webkit-margin-start:0;margin-inline-start:0}.has-image.is-disabled.sc-pds-radio-h{background:var(--pine-color-background-container-disabled);border-color:var(--pine-color-border-disabled);cursor:not-allowed}.has-image.is-disabled.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio{border-color:var(--pine-color-border-disabled);cursor:not-allowed;opacity:0.5}.has-image.is-disabled.sc-pds-radio-h .pds-radio__image-container.sc-pds-radio:hover{border-color:var(--pine-color-border-disabled)}.has-image.is-disabled.sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-disabled);cursor:not-allowed}.has-image.is-disabled.sc-pds-radio-h .pds-radio__message.sc-pds-radio{color:var(--pine-color-text-label-disabled)}.has-image.is-invalid.sc-pds-radio-h .pds-radio__message--error.sc-pds-radio{color:var(--pine-color-text-message-danger)}";
10
10
 
11
11
  const PdsRadio = class {
12
12
  constructor(hostRef) {
@@ -45,6 +45,11 @@ const PdsRadio = class {
45
45
  }
46
46
  const target = e.target;
47
47
  const isChecked = target.checked;
48
+ // If this radio is inside a pds-radio-group, don't emit the individual event
49
+ // The group will handle emitting its own event
50
+ if (this.el.closest('pds-radio-group')) {
51
+ return;
52
+ }
48
53
  this.pdsRadioChange.emit(isChecked);
49
54
  };
50
55
  }
@@ -80,11 +85,11 @@ const PdsRadio = class {
80
85
  }
81
86
  render() {
82
87
  const renderLabelAndMessages = () => [
83
- index.h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, index.h("input", { key: '5ec06b8b4e017027a3fe20cef0241a612abec196', "aria-describedby": form.assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), index.h("span", { key: 'f7bc6d0bd0759a833a668499039ba97a10bf18ec', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
88
+ index.h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, index.h("input", { key: 'c2361c9041baae2cf222314101f390fbf19266fd', "aria-describedby": form.assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), index.h("span", { key: 'ce704f1c12d7e9a214f2a93499bd065037631586', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
84
89
  this.helperMessage && (index.h("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: form.messageId(this.componentId, 'helper') }, this.helperMessage)),
85
- this.errorMessage && (index.h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: form.messageId(this.componentId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '629e33e9c80a6dc3af11e471d4342b4f992e0084', icon: index$1.danger, size: "small" }), this.errorMessage))
90
+ this.errorMessage && (index.h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: form.messageId(this.componentId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '138adf48418372b3ca28ab4b6998e74f7a2de8b2', icon: index$1.danger, size: "small" }), this.errorMessage))
86
91
  ];
87
- return (index.h(index.Host, { key: '706822a4f2b85462533dedc7c204679272537c2d', class: this.classNames() }, this.hasImage() && (index.h("div", { key: 'cc19b9c47bc9b3c38aa322754ff9bf51f6e75d76', class: "pds-radio__image-container", part: "image-container" }, index.h("slot", { key: 'cf4fe8dbdc464cb0ad39cafb21e67e9e184a2e4f', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (index.h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
92
+ return (index.h(index.Host, { key: '25a216197228fc211ab2fd3ce3ee767e34d90ac0', class: this.classNames() }, this.hasImage() && (index.h("div", { key: 'b19b9c38cd8ba864328c4d4a3e0402b38b096f44', class: "pds-radio__image-container", part: "image-container" }, index.h("slot", { key: '72723bbd792394d1f358acf6a3a6969c6ac4012d', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (index.h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
88
93
  }
89
94
  get el() { return index.getElement(this); }
90
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pds-radio.entry.cjs.js","sources":["src/global/styles/utils/label.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.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 --sizing-check-size: 6px;\n --sizing-input-size: var(--pine-dimension-sm);\n --sizing-margin-block-start: 6px;\n\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n position: relative;\n}\n\n:host(.is-invalid) {\n input {\n border-color: var(--pine-color-border-danger);\n\n &:checked {\n background: var(--pine-color-border-danger);\n\n &:hover {\n background: var(--pine-color-border-danger-hover);\n border-color: var(--pine-color-border-danger-hover);\n }\n }\n\n &:focus-visible {\n outline-color: var(--pine-color-focus-ring-danger);\n }\n }\n\n label,\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\n:host(.has-border) {\n align-items: flex-start;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n flex-direction: column;\n padding: var(--pine-dimension-md);\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n font-weight: var(--pine-font-weight-semi-bold);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n}\n\ninput {\n appearance: none;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n flex: none;\n height: var(--sizing-input-size);\n margin: 0;\n margin-block-start: var(--pine-dimension-025);\n position: relative;\n width: var(--sizing-input-size);\n\n /* stylelint-disable-next-line selector-no-qualifying-type */\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 &:hover {\n background: var(--pine-color-background-container-hover);\n border: var(--pine-border-hover);\n }\n\n &:checked {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent);\n\n &:hover {\n background: var(--pine-color-accent-hover);\n border-color: var(--pine-color-accent-hover);\n }\n\n &::after {\n background: var(--pine-color-background-container);\n border-radius: var(--pine-border-radius-full);\n content: \"\";\n display: block;\n height: var(--sizing-check-size);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--sizing-check-size);\n }\n }\n\n &:disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n &:checked {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-border-disabled);\n\n &::after {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n + label {\n cursor: not-allowed;\n }\n\n ~ .pds-radio__message {\n color: var(--pine-color-text-message-disabled);\n }\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-xs);\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.pds-radio__message {\n color: var(--pine-color-text-message);\n font: var(--pine-typography-body);\n margin-inline-start: var(--pine-dimension-md);\n width: 100%;\n}\n\n.pds-radio__message--error {\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// Image-based radio styles - matches bordered layout\n:host(.has-image) {\n align-items: center;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n padding: var(--pine-dimension-md);\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n display: flex;\n font-weight: var(--pine-font-weight-semi-bold);\n gap: var(--pine-dimension-xs);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n .pds-radio__image-container {\n align-items: center;\n align-self: center;\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n cursor: pointer;\n display: flex;\n flex: none;\n grid-area: image;\n justify-content: center;\n overflow: hidden;\n position: relative;\n transition: all 0.2s ease;\n\n &:hover {\n border-color: var(--pine-color-border-hover);\n }\n\n .pds-radio__image {\n height: 100%;\n object-fit: cover;\n width: 100%;\n }\n }\n\n .pds-radio__message {\n grid-area: message;\n margin-block-start: 0;\n margin-inline-start: 0;\n }\n\n // Disabled state\n &.is-disabled {\n .pds-radio__image-container {\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n opacity: 0.6;\n\n &:hover {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n label {\n cursor: not-allowed;\n }\n }\n\n // Invalid state\n &.is-invalid {\n .pds-radio__image-container {\n border-color: var(--pine-color-border-danger);\n\n &:hover {\n border-color: var(--pine-color-border-danger-hover);\n }\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-border-danger);\n\n .pds-radio__image-container {\n border-color: var(--pine-color-border-danger);\n box-shadow: 0 0 0 2px var(--pine-color-border-danger);\n\n /* stylelint-disable-next-line */\n &::after {\n background: var(--pine-color-border-danger);\n }\n\n /* stylelint-disable-next-line */\n &:hover {\n border-color: var(--pine-color-border-danger-hover);\n box-shadow: 0 0 0 2px var(--pine-color-border-danger-hover);\n }\n }\n\n &:hover {\n box-shadow: 0 0 0 2px var(--pine-color-border-danger-hover);\n }\n }\n\n label,\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State } from '@stencil/core';\nimport { assignDescription, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot image - Custom image content to display instead of the default radio input\n * @part image-container - The container for the image\n */\n@Component({\n tag: 'pds-radio',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-radio.scss'],\n scoped: true,\n})\nexport class PdsRadio {\n private readonly _type = 'radio' as const;\n\n @Element() el: HTMLPdsRadioElement;\n\n @State() private _hasImage = false;\n\n /**\n * Determines whether or not the radio is checked.\n * @defaultValue false\n */\n @Prop() checked = false;\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 whether or not the radio is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Displays error message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Displays helper message text below radio.\n */\n @Prop() helperMessage: string;\n\n /**\n * Adds a border around the radio component for better visual separation.\n * @defaultValue false\n */\n @Prop() hasBorder = false;\n\n /**\n * Determines whether or not the radio is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * String used for label text next to radio.\n */\n @Prop() label: string;\n\n /**\n * Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * String used for radio `name` attribute.\n */\n @Prop() name: string;\n\n /**\n * Determines whether or not the radio is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * The value of the radio that is submitted with a form.\n */\n @Prop() value: string;\n\n\n /**\n * Emits a boolean indicating whether the radio is currently checked or unchecked.\n */\n @Event() pdsRadioChange: EventEmitter<boolean>;\n\n private handleRadioChange = (e: Event) => {\n if (this.disabled) {\n return;\n }\n\n const target = e.target as HTMLInputElement;\n const isChecked = target.checked;\n\n this.pdsRadioChange.emit(isChecked);\n }\n\n private hasImageSlot(): boolean {\n const imageSlot = this.el.querySelector('[slot=\"image\"]');\n return !!imageSlot;\n }\n\n private hasImage(): boolean {\n return this._hasImage;\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) {\n classNames.push('is-invalid');\n }\n if (this.disabled) {\n classNames.push('is-disabled');\n }\n if (this.hasBorder) {\n classNames.push('has-border');\n }\n if (this.hasImage()) {\n classNames.push('has-image');\n }\n\n return classNames.join(' ');\n }\n\n componentWillLoad() {\n this._hasImage = this.hasImageSlot();\n }\n\n connectedCallback() {\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n render() {\n const renderLabelAndMessages = () => [\n <label htmlFor={this.componentId} key={`${this.componentId}-label`}>\n <input\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n type=\"radio\"\n id={this.componentId}\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleRadioChange}\n class={this.hasImage() ? 'visually-hidden' : ''}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>,\n this.helperMessage && (\n <div\n key={`${this.componentId}-helper`}\n class={'pds-radio__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n ),\n this.errorMessage && (\n <div\n key={`${this.componentId}-error`}\n class={`pds-radio__message pds-radio__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 ];\n\n return (\n <Host class={this.classNames()}>\n {this.hasImage() && (\n <div class=\"pds-radio__image-container\" part=\"image-container\">\n <slot name=\"image\" onSlotchange={() => (this._hasImage = this.hasImageSlot())} />\n </div>\n )}\n {this.hasImage() ? (\n <div class=\"pds-radio__content-wrapper\">\n {renderLabelAndMessages()}\n </div>\n ) : (\n renderLabelAndMessages()\n )}\n </Host>\n );\n }\n}\n"],"names":["exposeTypeProperty","h","assignDescription","messageId","danger","Host"],"mappings":"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"}
1
+ {"version":3,"file":"pds-radio.entry.cjs.js","sources":["src/global/styles/utils/label.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.scss?tag=pds-radio&encapsulation=scoped","src/components/pds-radio/pds-radio.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 --sizing-check-size: 6px;\n --sizing-input-size: var(--pine-dimension-sm);\n --sizing-margin-block-start: 6px;\n\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n position: relative;\n}\n\n:host(.is-invalid) {\n // Invalid state only affects error message styling, not the radio itself\n // This allows radio-group to handle error display without red radios\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n}\n\n:host(.has-border) {\n align-items: flex-start;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n flex-direction: column;\n padding: var(--pine-dimension-md);\n\n // On small screens, ensure full width when in a row layout\n @media (max-width: 767px) {\n box-sizing: border-box;\n flex: 1 1 100%;\n max-width: 100%;\n min-width: 0;\n }\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n font-weight: var(--pine-font-weight-semi-bold);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n // Disabled state for bordered radios\n &:has(input:disabled) {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n label {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n }\n }\n\n // Invalid state for bordered radios - no red styling, only error message\n &.is-invalid {\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n }\n}\n\ninput {\n appearance: none;\n background: var(--pine-color-background-container);\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n flex: none;\n height: var(--sizing-input-size);\n margin: 0;\n margin-block-start: var(--pine-dimension-025);\n position: relative;\n width: var(--sizing-input-size);\n\n /* stylelint-disable-next-line selector-no-qualifying-type */\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 &:hover {\n background: var(--pine-color-background-container-hover);\n border: var(--pine-border-hover);\n }\n\n &:checked {\n background: var(--pine-color-accent);\n border-color: var(--pine-color-accent);\n\n &:hover {\n background: var(--pine-color-accent-hover);\n border-color: var(--pine-color-accent-hover);\n }\n\n &::after {\n background: var(--pine-color-white);\n border-radius: var(--pine-border-radius-full);\n content: \"\";\n display: block;\n height: var(--sizing-check-size);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: var(--sizing-check-size);\n }\n }\n\n &:disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n &:checked {\n background-color: var(--pine-color-accent-disabled);\n border-color: var(--pine-color-border-disabled);\n\n &::after {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n\n }\n\n &:focus-visible {\n outline: var(--pine-outline-focus);\n }\n\n}\n\nlabel {\n display: flex;\n gap: var(--pine-dimension-xs);\n}\n\n// Disabled label styling\nlabel:has(input:disabled) {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n}\n\n// Disabled message styling\n:host:has(input:disabled) .pds-radio__message {\n color: var(--pine-color-text-label-disabled);\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.pds-radio__message {\n color: var(--pine-color-text-message);\n flex-basis: 100%; // Ensure message wraps to new line in flex container\n font: var(--pine-typography-body);\n margin-inline-start: var(--pine-dimension-md);\n width: 100%;\n}\n\n.pds-radio__message--error {\n align-items: center;\n display: flex;\n gap: var(--pine-dimension-2xs);\n}\n\n// Image-based radio styles - matches bordered layout\n:host(.has-image) {\n align-items: center;\n border: var(--pine-border);\n border-radius: var(--pine-dimension-125);\n column-gap: var(--pine-dimension-xs);\n display: flex;\n flex: 1;\n padding: var(--pine-dimension-md);\n\n // On small screens, ensure full width when in a row layout\n @media (max-width: 767px) {\n box-sizing: border-box;\n flex: 1 1 100%;\n max-width: 100%;\n min-width: 0;\n }\n\n &:hover {\n border: var(--pine-border-hover);\n }\n\n &:has(input:checked) {\n box-shadow: 0 0 0 2px var(--pine-color-primary-hover);\n }\n\n label {\n color: var(--pine-color-text);\n display: flex;\n font-weight: var(--pine-font-weight-semi-bold);\n gap: var(--pine-dimension-xs);\n\n &::after {\n content: \"\";\n cursor: pointer;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n }\n }\n\n .pds-radio__image-container {\n align-items: center;\n align-self: center;\n border: var(--pine-border);\n border-radius: var(--pine-border-radius-full);\n cursor: pointer;\n display: flex;\n flex: none;\n grid-area: image;\n justify-content: center;\n overflow: hidden;\n position: relative;\n transition: all 0.2s ease;\n\n &:hover {\n border-color: var(--pine-color-border-hover);\n }\n\n .pds-radio__image {\n height: 100%;\n object-fit: cover;\n width: 100%;\n }\n }\n\n .pds-radio__message {\n grid-area: message;\n margin-block-start: 0;\n margin-inline-start: 0;\n }\n\n // Disabled state\n &.is-disabled {\n background: var(--pine-color-background-container-disabled);\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n\n .pds-radio__image-container {\n border-color: var(--pine-color-border-disabled);\n cursor: not-allowed;\n opacity: 0.5;\n\n &:hover {\n border-color: var(--pine-color-border-disabled);\n }\n }\n\n label {\n color: var(--pine-color-text-label-disabled);\n cursor: not-allowed;\n }\n\n .pds-radio__message {\n color: var(--pine-color-text-label-disabled);\n }\n }\n\n // Invalid state - no red styling, only error message\n &.is-invalid {\n .pds-radio__message--error {\n color: var(--pine-color-text-message-danger);\n }\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Element, State } from '@stencil/core';\nimport { assignDescription, messageId, exposeTypeProperty } from '../../utils/form';\nimport { danger } from '@pine-ds/icons/icons';\n\n/**\n * @slot image - Custom image content to display instead of the default radio input\n * @part image-container - The container for the image\n */\n@Component({\n tag: 'pds-radio',\n styleUrls: ['../../global/styles/utils/label.scss', 'pds-radio.scss'],\n scoped: true,\n})\nexport class PdsRadio {\n private readonly _type = 'radio' as const;\n\n @Element() el: HTMLPdsRadioElement;\n\n @State() private _hasImage = false;\n\n /**\n * Determines whether or not the radio is checked.\n * @defaultValue false\n */\n @Prop() checked = false;\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 whether or not the radio is disabled.\n * @defaultValue false\n */\n @Prop() disabled = false;\n\n /**\n * Displays error message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * Displays helper message text below radio.\n */\n @Prop() helperMessage: string;\n\n /**\n * Adds a border around the radio component for better visual separation.\n * @defaultValue false\n */\n @Prop() hasBorder = false;\n\n /**\n * Determines whether or not the radio is invalid.\n * @defaultValue false\n */\n @Prop() invalid = false;\n\n /**\n * String used for label text next to radio.\n */\n @Prop() label: string;\n\n /**\n * Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers.\n */\n @Prop() hideLabel: boolean;\n\n /**\n * String used for radio `name` attribute.\n */\n @Prop() name: string;\n\n /**\n * Determines whether or not the radio is required.\n * @defaultValue false\n */\n @Prop() required = false;\n\n /**\n * The value of the radio that is submitted with a form.\n */\n @Prop() value: string;\n\n\n /**\n * Emits a boolean indicating whether the radio is currently checked or unchecked.\n */\n @Event() pdsRadioChange: EventEmitter<boolean>;\n\n private handleRadioChange = (e: Event) => {\n if (this.disabled) {\n return;\n }\n\n const target = e.target as HTMLInputElement;\n const isChecked = target.checked;\n\n // If this radio is inside a pds-radio-group, don't emit the individual event\n // The group will handle emitting its own event\n if (this.el.closest('pds-radio-group')) {\n return;\n }\n\n this.pdsRadioChange.emit(isChecked);\n }\n\n private hasImageSlot(): boolean {\n const imageSlot = this.el.querySelector('[slot=\"image\"]');\n return !!imageSlot;\n }\n\n private hasImage(): boolean {\n return this._hasImage;\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) {\n classNames.push('is-invalid');\n }\n if (this.disabled) {\n classNames.push('is-disabled');\n }\n if (this.hasBorder) {\n classNames.push('has-border');\n }\n if (this.hasImage()) {\n classNames.push('has-image');\n }\n\n return classNames.join(' ');\n }\n\n componentWillLoad() {\n this._hasImage = this.hasImageSlot();\n }\n\n connectedCallback() {\n // Expose type property on the element instance to match native form element behavior\n exposeTypeProperty(this.el, () => this._type);\n }\n\n render() {\n const renderLabelAndMessages = () => [\n <label htmlFor={this.componentId} key={`${this.componentId}-label`}>\n <input\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n type=\"radio\"\n id={this.componentId}\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleRadioChange}\n class={this.hasImage() ? 'visually-hidden' : ''}\n />\n <span class={this.hideLabel ? 'visually-hidden' : ''}>\n {this.label}\n </span>\n </label>,\n this.helperMessage && (\n <div\n key={`${this.componentId}-helper`}\n class={'pds-radio__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n ),\n this.errorMessage && (\n <div\n key={`${this.componentId}-error`}\n class={`pds-radio__message pds-radio__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 ];\n\n return (\n <Host class={this.classNames()}>\n {this.hasImage() && (\n <div class=\"pds-radio__image-container\" part=\"image-container\">\n <slot name=\"image\" onSlotchange={() => (this._hasImage = this.hasImageSlot())} />\n </div>\n )}\n {this.hasImage() ? (\n <div class=\"pds-radio__content-wrapper\">\n {renderLabelAndMessages()}\n </div>\n ) : (\n renderLabelAndMessages()\n )}\n </Host>\n );\n }\n}\n"],"names":["exposeTypeProperty","h","assignDescription","messageId","danger","Host"],"mappings":"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"}