@pine-ds/core 4.8.0 → 4.9.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 (513) hide show
  1. package/components/attributes.js +1 -1
  2. package/components/floating-ui.dom.js +1 -1
  3. package/components/index.js +1 -1
  4. package/components/index2.js +1 -1
  5. package/components/keep-hydrated.js +1 -0
  6. package/components/mock-pds-modal.js +1 -1
  7. package/components/pds-alert.js +1 -1
  8. package/components/pds-avatar.js +1 -1
  9. package/components/pds-box2.js +1 -1
  10. package/components/pds-button2.js +1 -1
  11. package/components/pds-checkbox2.js +1 -1
  12. package/components/pds-chip2.js +1 -1
  13. package/components/pds-combobox.js +1 -1
  14. package/components/pds-container.js +1 -1
  15. package/components/pds-copytext.js +1 -1
  16. package/components/pds-datepicker.js +1 -1
  17. package/components/pds-divider.js +1 -1
  18. package/components/pds-drawer-content.js +1 -1
  19. package/components/pds-drawer-footer.js +1 -1
  20. package/components/pds-drawer-header.js +1 -1
  21. package/components/pds-drawer.js +1 -1
  22. package/components/pds-dropdown-menu-item.js +1 -1
  23. package/components/pds-dropdown-menu-separator.js +1 -1
  24. package/components/pds-dropdown-menu.js +1 -1
  25. package/components/pds-filter.js +1 -1
  26. package/components/pds-filters.js +1 -1
  27. package/components/pds-image.js +1 -1
  28. package/components/pds-input2.js +1 -1
  29. package/components/pds-link2.js +1 -1
  30. package/components/pds-loader2.js +1 -1
  31. package/components/pds-modal-content.js +1 -1
  32. package/components/pds-modal-footer.js +1 -1
  33. package/components/pds-modal-header.js +1 -1
  34. package/components/pds-modal2.js +1 -1
  35. package/components/pds-multiselect.js +1 -1
  36. package/components/pds-popover.js +1 -1
  37. package/components/pds-progress.js +1 -1
  38. package/components/pds-property.js +1 -1
  39. package/components/pds-radio-group.js +1 -1
  40. package/components/pds-radio.js +1 -1
  41. package/components/pds-row.js +1 -1
  42. package/components/pds-select.js +1 -1
  43. package/components/pds-sortable-item.js +1 -1
  44. package/components/pds-sortable.js +2 -2
  45. package/components/pds-switch.js +1 -1
  46. package/components/pds-table-body.js +1 -1
  47. package/components/pds-table-cell2.js +1 -1
  48. package/components/pds-table-head-cell2.js +1 -1
  49. package/components/pds-table-head.js +1 -1
  50. package/components/pds-table-row.js +1 -1
  51. package/components/pds-tabpanel.js +1 -1
  52. package/components/pds-tabs.js +1 -1
  53. package/components/pds-text2.js +1 -1
  54. package/components/pds-textarea.js +1 -1
  55. package/components/pds-toast.js +1 -1
  56. package/components/pds-tooltip.js +1 -1
  57. package/components/tabbable.js +1 -0
  58. package/dist/cjs/{attributes-BJ7KBHql.js → attributes-CW49XqaL.js} +1 -1
  59. package/dist/cjs/{floating-ui.dom-Dc8Anyel.js → floating-ui.dom-Dw41zbyY.js} +1 -0
  60. package/dist/cjs/{index-jl_Q819j.js → index-BsWY_xEJ.js} +1 -1
  61. package/dist/cjs/index.cjs.js +1 -1
  62. package/dist/cjs/{keep-hydrated-CiXgkEYd.js → keep-hydrated-AKoh0DG4.js} +1 -0
  63. package/dist/cjs/loader.cjs.js +3 -3
  64. package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -3
  65. package/dist/cjs/pds-accordion.cjs.entry.js +2 -2
  66. package/dist/cjs/pds-alert.cjs.entry.js +17 -4
  67. package/dist/cjs/pds-avatar.cjs.entry.js +21 -11
  68. package/dist/cjs/pds-box.cjs.entry.js +4 -4
  69. package/dist/cjs/pds-button.cjs.entry.js +57 -25
  70. package/dist/cjs/pds-checkbox.cjs.entry.js +15 -7
  71. package/dist/cjs/pds-chip.cjs.entry.js +6 -6
  72. package/dist/cjs/pds-combobox.cjs.entry.js +41 -11
  73. package/dist/cjs/pds-container.cjs.entry.js +3 -3
  74. package/dist/cjs/pds-copytext.cjs.entry.js +6 -6
  75. package/dist/cjs/pds-datepicker.cjs.entry.js +5 -5
  76. package/dist/cjs/pds-divider.cjs.entry.js +3 -3
  77. package/dist/cjs/pds-drawer-content.cjs.entry.js +3 -3
  78. package/dist/cjs/pds-drawer-footer.cjs.entry.js +3 -3
  79. package/dist/cjs/pds-drawer-header.cjs.entry.js +3 -3
  80. package/dist/cjs/pds-drawer.cjs.entry.js +4 -4
  81. package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +4 -4
  82. package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -3
  83. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +5 -5
  84. package/dist/cjs/pds-filter.cjs.entry.js +3 -3
  85. package/dist/cjs/pds-filters.cjs.entry.js +3 -3
  86. package/dist/cjs/pds-icon.cjs.entry.js +2 -2
  87. package/dist/cjs/pds-image.cjs.entry.js +4 -4
  88. package/dist/cjs/pds-input.cjs.entry.js +5 -5
  89. package/dist/cjs/pds-link.cjs.entry.js +14 -5
  90. package/dist/cjs/pds-loader.cjs.entry.js +4 -4
  91. package/dist/cjs/pds-modal-content.cjs.entry.js +4 -4
  92. package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -3
  93. package/dist/cjs/pds-modal-header.cjs.entry.js +3 -3
  94. package/dist/cjs/pds-modal.cjs.entry.js +8 -88
  95. package/dist/cjs/pds-multiselect.cjs.entry.js +6 -6
  96. package/dist/cjs/pds-popover.cjs.entry.js +230 -153
  97. package/dist/cjs/pds-progress.cjs.entry.js +4 -4
  98. package/dist/cjs/pds-property.cjs.entry.js +3 -3
  99. package/dist/cjs/pds-radio-group.cjs.entry.js +5 -5
  100. package/dist/cjs/pds-radio.cjs.entry.js +23 -10
  101. package/dist/cjs/pds-row.cjs.entry.js +4 -4
  102. package/dist/cjs/pds-select.cjs.entry.js +131 -20
  103. package/dist/cjs/pds-sortable-item.cjs.entry.js +4 -4
  104. package/dist/cjs/pds-sortable.cjs.entry.js +4 -4
  105. package/dist/cjs/pds-switch.cjs.entry.js +6 -6
  106. package/dist/cjs/pds-tab.cjs.entry.js +3 -3
  107. package/dist/cjs/pds-table-body.cjs.entry.js +3 -3
  108. package/dist/cjs/pds-table-cell.cjs.entry.js +6 -6
  109. package/dist/cjs/pds-table-head-cell.cjs.entry.js +4 -4
  110. package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
  111. package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
  112. package/dist/cjs/pds-table.cjs.entry.js +2 -2
  113. package/dist/cjs/pds-tabpanel.cjs.entry.js +4 -4
  114. package/dist/cjs/pds-tabs.cjs.entry.js +4 -4
  115. package/dist/cjs/pds-text.cjs.entry.js +5 -5
  116. package/dist/cjs/pds-textarea.cjs.entry.js +7 -7
  117. package/dist/cjs/pds-toast.cjs.entry.js +14 -8
  118. package/dist/cjs/pds-tooltip.cjs.entry.js +115 -44
  119. package/dist/cjs/pine-core.cjs.js +3 -3
  120. package/dist/cjs/tabbable-CddSt_Hi.js +85 -0
  121. package/dist/cjs/{truncation-tooltip-BtuiXLV0.js → truncation-tooltip-O5nQmXPw.js} +1 -1
  122. package/dist/collection/components/pds-alert/pds-alert.css +13 -0
  123. package/dist/collection/components/pds-alert/pds-alert.js +36 -1
  124. package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +4 -0
  125. package/dist/collection/components/pds-avatar/pds-avatar.js +41 -9
  126. package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +2 -0
  127. package/dist/collection/components/pds-box/pds-box.js +1 -1
  128. package/dist/collection/components/pds-button/pds-button.js +13 -23
  129. package/dist/collection/components/pds-checkbox/pds-checkbox.css +79 -0
  130. package/dist/collection/components/pds-checkbox/pds-checkbox.js +36 -5
  131. package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +38 -0
  132. package/dist/collection/components/pds-chip/pds-chip.js +1 -1
  133. package/dist/collection/components/pds-combobox/pds-combobox.css +33 -0
  134. package/dist/collection/components/pds-combobox/pds-combobox.js +60 -7
  135. package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +44 -0
  136. package/dist/collection/components/pds-container/pds-container.js +1 -1
  137. package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
  138. package/dist/collection/components/pds-datepicker/pds-datepicker.js +2 -2
  139. package/dist/collection/components/pds-divider/pds-divider.js +1 -1
  140. package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +1 -1
  141. package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +1 -1
  142. package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +1 -1
  143. package/dist/collection/components/pds-drawer/pds-drawer.js +2 -2
  144. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +24 -2
  145. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
  146. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +1 -1
  147. package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +1 -1
  148. package/dist/collection/components/pds-filters/pds-filters.js +1 -1
  149. package/dist/collection/components/pds-image/pds-image.js +2 -2
  150. package/dist/collection/components/pds-input/pds-input.js +2 -2
  151. package/dist/collection/components/pds-input/stories/pds-input.stories.js +6 -6
  152. package/dist/collection/components/pds-link/pds-link.js +34 -3
  153. package/dist/collection/components/pds-link/stories/pds-link.stories.js +3 -2
  154. package/dist/collection/components/pds-loader/pds-loader.js +1 -1
  155. package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +2 -2
  156. package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
  157. package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
  158. package/dist/collection/components/pds-modal/pds-modal.js +4 -84
  159. package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
  160. package/dist/collection/components/pds-multiselect/pds-multiselect.js +3 -3
  161. package/dist/collection/components/pds-popover/pds-popover.css +6 -0
  162. package/dist/collection/components/pds-popover/pds-popover.js +226 -149
  163. package/dist/collection/components/pds-progress/pds-progress.js +1 -1
  164. package/dist/collection/components/pds-property/pds-property.js +1 -1
  165. package/dist/collection/components/pds-radio/pds-radio.css +57 -0
  166. package/dist/collection/components/pds-radio/pds-radio.js +45 -9
  167. package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +15 -0
  168. package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
  169. package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +45 -0
  170. package/dist/collection/components/pds-row/pds-row.js +1 -1
  171. package/dist/collection/components/pds-select/pds-select.js +128 -17
  172. package/dist/collection/components/pds-select/stories/pds-select.stories.js +2 -2
  173. package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
  174. package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
  175. package/dist/collection/components/pds-switch/pds-switch.js +3 -3
  176. package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
  177. package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
  178. package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
  179. package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
  180. package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
  181. package/dist/collection/components/pds-table/stories/pds-table.stories.js +3 -3
  182. package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
  183. package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
  184. package/dist/collection/components/pds-text/pds-text.js +1 -1
  185. package/dist/collection/components/pds-textarea/pds-textarea.js +4 -4
  186. package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +2 -2
  187. package/dist/collection/components/pds-toast/pds-toast.css +13 -0
  188. package/dist/collection/components/pds-toast/pds-toast.js +33 -5
  189. package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +4 -1
  190. package/dist/collection/components/pds-tooltip/pds-tooltip.js +113 -41
  191. package/dist/collection/utils/aria-references.js +42 -0
  192. package/dist/collection/utils/tabbable.js +81 -0
  193. package/dist/docs.json +244 -7
  194. package/dist/esm/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
  195. package/dist/esm/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
  196. package/dist/esm/{index-Cw9J31qd.js → index-BFSwd-GQ.js} +1 -1
  197. package/dist/esm/{index-BWDu62Mo.js → index-m3pqpeWg.js} +1 -1
  198. package/dist/esm/index.js +1 -1
  199. package/dist/esm/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
  200. package/dist/esm/loader.js +4 -4
  201. package/dist/esm/mock-pds-modal.entry.js +3 -3
  202. package/dist/esm/pds-accordion.entry.js +3 -3
  203. package/dist/esm/pds-alert.entry.js +17 -4
  204. package/dist/esm/pds-avatar.entry.js +22 -12
  205. package/dist/esm/pds-box.entry.js +4 -4
  206. package/dist/esm/pds-button.entry.js +58 -26
  207. package/dist/esm/pds-checkbox.entry.js +16 -8
  208. package/dist/esm/pds-chip.entry.js +7 -7
  209. package/dist/esm/pds-combobox.entry.js +41 -11
  210. package/dist/esm/pds-container.entry.js +3 -3
  211. package/dist/esm/pds-copytext.entry.js +7 -7
  212. package/dist/esm/pds-datepicker.entry.js +6 -6
  213. package/dist/esm/pds-divider.entry.js +3 -3
  214. package/dist/esm/pds-drawer-content.entry.js +3 -3
  215. package/dist/esm/pds-drawer-footer.entry.js +3 -3
  216. package/dist/esm/pds-drawer-header.entry.js +3 -3
  217. package/dist/esm/pds-drawer.entry.js +4 -4
  218. package/dist/esm/pds-dropdown-menu-item.entry.js +4 -4
  219. package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -3
  220. package/dist/esm/pds-dropdown-menu.entry.js +5 -5
  221. package/dist/esm/pds-filter.entry.js +4 -4
  222. package/dist/esm/pds-filters.entry.js +3 -3
  223. package/dist/esm/pds-icon.entry.js +2 -2
  224. package/dist/esm/pds-image.entry.js +4 -4
  225. package/dist/esm/pds-input.entry.js +6 -6
  226. package/dist/esm/pds-link.entry.js +15 -6
  227. package/dist/esm/pds-loader.entry.js +4 -4
  228. package/dist/esm/pds-modal-content.entry.js +4 -4
  229. package/dist/esm/pds-modal-footer.entry.js +3 -3
  230. package/dist/esm/pds-modal-header.entry.js +3 -3
  231. package/dist/esm/pds-modal.entry.js +6 -86
  232. package/dist/esm/pds-multiselect.entry.js +7 -7
  233. package/dist/esm/pds-popover.entry.js +230 -153
  234. package/dist/esm/pds-progress.entry.js +4 -4
  235. package/dist/esm/pds-property.entry.js +3 -3
  236. package/dist/esm/pds-radio-group.entry.js +6 -6
  237. package/dist/esm/pds-radio.entry.js +24 -11
  238. package/dist/esm/pds-row.entry.js +4 -4
  239. package/dist/esm/pds-select.entry.js +132 -21
  240. package/dist/esm/pds-sortable-item.entry.js +5 -5
  241. package/dist/esm/pds-sortable.entry.js +4 -4
  242. package/dist/esm/pds-switch.entry.js +7 -7
  243. package/dist/esm/pds-tab.entry.js +3 -3
  244. package/dist/esm/pds-table-body.entry.js +3 -3
  245. package/dist/esm/pds-table-cell.entry.js +6 -6
  246. package/dist/esm/pds-table-head-cell.entry.js +5 -5
  247. package/dist/esm/pds-table-head.entry.js +3 -3
  248. package/dist/esm/pds-table-row.entry.js +3 -3
  249. package/dist/esm/pds-table.entry.js +2 -2
  250. package/dist/esm/pds-tabpanel.entry.js +4 -4
  251. package/dist/esm/pds-tabs.entry.js +4 -4
  252. package/dist/esm/pds-text.entry.js +5 -5
  253. package/dist/esm/pds-textarea.entry.js +8 -8
  254. package/dist/esm/pds-toast.entry.js +14 -8
  255. package/dist/esm/pds-tooltip.entry.js +115 -44
  256. package/dist/esm/pine-core.js +4 -4
  257. package/dist/esm/tabbable-DCKBKRUy.js +83 -0
  258. package/dist/esm/{truncation-tooltip-FaW67DiY.js → truncation-tooltip-D_gvhB9r.js} +1 -1
  259. package/dist/esm-es5/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
  260. package/dist/esm-es5/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
  261. package/dist/esm-es5/{index-Cw9J31qd.js → index-BFSwd-GQ.js} +2 -2
  262. package/dist/esm-es5/{index-BWDu62Mo.js → index-m3pqpeWg.js} +1 -1
  263. package/dist/esm-es5/index.js +1 -1
  264. package/dist/esm-es5/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
  265. package/dist/esm-es5/loader.js +1 -1
  266. package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
  267. package/dist/esm-es5/pds-accordion.entry.js +1 -1
  268. package/dist/esm-es5/pds-alert.entry.js +1 -1
  269. package/dist/esm-es5/pds-avatar.entry.js +1 -1
  270. package/dist/esm-es5/pds-box.entry.js +1 -1
  271. package/dist/esm-es5/pds-button.entry.js +1 -1
  272. package/dist/esm-es5/pds-checkbox.entry.js +1 -1
  273. package/dist/esm-es5/pds-chip.entry.js +1 -1
  274. package/dist/esm-es5/pds-combobox.entry.js +2 -2
  275. package/dist/esm-es5/pds-container.entry.js +1 -1
  276. package/dist/esm-es5/pds-copytext.entry.js +1 -1
  277. package/dist/esm-es5/pds-datepicker.entry.js +1 -1
  278. package/dist/esm-es5/pds-divider.entry.js +1 -1
  279. package/dist/esm-es5/pds-drawer-content.entry.js +1 -1
  280. package/dist/esm-es5/pds-drawer-footer.entry.js +1 -1
  281. package/dist/esm-es5/pds-drawer-header.entry.js +1 -1
  282. package/dist/esm-es5/pds-drawer.entry.js +1 -1
  283. package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
  284. package/dist/esm-es5/pds-dropdown-menu-separator.entry.js +1 -1
  285. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  286. package/dist/esm-es5/pds-filter.entry.js +1 -1
  287. package/dist/esm-es5/pds-filters.entry.js +1 -1
  288. package/dist/esm-es5/pds-icon.entry.js +1 -1
  289. package/dist/esm-es5/pds-image.entry.js +1 -1
  290. package/dist/esm-es5/pds-input.entry.js +1 -1
  291. package/dist/esm-es5/pds-link.entry.js +1 -1
  292. package/dist/esm-es5/pds-loader.entry.js +1 -1
  293. package/dist/esm-es5/pds-modal-content.entry.js +1 -1
  294. package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
  295. package/dist/esm-es5/pds-modal-header.entry.js +1 -1
  296. package/dist/esm-es5/pds-modal.entry.js +1 -1
  297. package/dist/esm-es5/pds-multiselect.entry.js +1 -1
  298. package/dist/esm-es5/pds-popover.entry.js +1 -1
  299. package/dist/esm-es5/pds-progress.entry.js +1 -1
  300. package/dist/esm-es5/pds-property.entry.js +1 -1
  301. package/dist/esm-es5/pds-radio-group.entry.js +1 -1
  302. package/dist/esm-es5/pds-radio.entry.js +1 -1
  303. package/dist/esm-es5/pds-row.entry.js +1 -1
  304. package/dist/esm-es5/pds-select.entry.js +1 -1
  305. package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
  306. package/dist/esm-es5/pds-sortable.entry.js +2 -2
  307. package/dist/esm-es5/pds-switch.entry.js +1 -1
  308. package/dist/esm-es5/pds-tab.entry.js +1 -1
  309. package/dist/esm-es5/pds-table-body.entry.js +1 -1
  310. package/dist/esm-es5/pds-table-cell.entry.js +1 -1
  311. package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
  312. package/dist/esm-es5/pds-table-head.entry.js +1 -1
  313. package/dist/esm-es5/pds-table-row.entry.js +1 -1
  314. package/dist/esm-es5/pds-table.entry.js +1 -1
  315. package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
  316. package/dist/esm-es5/pds-tabs.entry.js +1 -1
  317. package/dist/esm-es5/pds-text.entry.js +1 -1
  318. package/dist/esm-es5/pds-textarea.entry.js +1 -1
  319. package/dist/esm-es5/pds-toast.entry.js +1 -1
  320. package/dist/esm-es5/pds-tooltip.entry.js +1 -1
  321. package/dist/esm-es5/pine-core.js +1 -1
  322. package/dist/esm-es5/tabbable-DCKBKRUy.js +1 -0
  323. package/dist/esm-es5/{truncation-tooltip-FaW67DiY.js → truncation-tooltip-D_gvhB9r.js} +1 -1
  324. package/dist/pine-core/index.esm.js +1 -1
  325. package/dist/pine-core/p-001d4b86.entry.js +1 -0
  326. package/dist/pine-core/p-06279b93.system.entry.js +1 -0
  327. package/dist/pine-core/{p-b75b0d09.system.entry.js → p-0790dd0d.system.entry.js} +1 -1
  328. package/dist/pine-core/p-079c39d1.entry.js +1 -0
  329. package/dist/pine-core/{p-158b2f51.entry.js → p-07b4524e.entry.js} +1 -1
  330. package/dist/pine-core/{p-4bfc8b3e.system.entry.js → p-08bbd3e6.system.entry.js} +1 -1
  331. package/dist/pine-core/{p-d3d69ca4.system.entry.js → p-0bd61097.system.entry.js} +1 -1
  332. package/dist/pine-core/p-0c60f577.system.entry.js +1 -0
  333. package/dist/pine-core/{p-acca5f7b.system.entry.js → p-110b4051.system.entry.js} +1 -1
  334. package/dist/pine-core/p-11e7d660.entry.js +1 -0
  335. package/dist/pine-core/p-14d872d3.entry.js +1 -0
  336. package/dist/pine-core/p-17fc76e7.system.entry.js +1 -0
  337. package/dist/pine-core/{p-0913f696.system.entry.js → p-1e5648bf.system.entry.js} +1 -1
  338. package/dist/pine-core/{p-ef13f665.system.entry.js → p-22ae92f7.system.entry.js} +1 -1
  339. package/dist/pine-core/p-239774c9.entry.js +1 -0
  340. package/dist/pine-core/{p-0b71ecb6.system.entry.js → p-25bf2f26.system.entry.js} +2 -2
  341. package/dist/pine-core/{p-719542e1.system.entry.js → p-272b24ad.system.entry.js} +1 -1
  342. package/dist/pine-core/{p-d2c91e7a.entry.js → p-2c0047cd.entry.js} +1 -1
  343. package/dist/pine-core/p-2d5b1deb.entry.js +1 -0
  344. package/dist/pine-core/{p-c97bfac9.entry.js → p-3556f6ad.entry.js} +1 -1
  345. package/dist/pine-core/{p-BGLP3keB.js → p-35s7h-dk.js} +1 -1
  346. package/dist/pine-core/{p-3c977d8d.system.entry.js → p-38b87aa2.system.entry.js} +1 -1
  347. package/dist/pine-core/{p-25ea48d1.entry.js → p-3afb1208.entry.js} +1 -1
  348. package/dist/pine-core/{p-9df5e204.entry.js → p-3b5b8f73.entry.js} +1 -1
  349. package/dist/pine-core/{p-8c8cc079.system.entry.js → p-3cc19ea8.system.entry.js} +1 -1
  350. package/dist/pine-core/{p-ca4ee736.system.entry.js → p-3ce7e72e.system.entry.js} +1 -1
  351. package/dist/pine-core/p-3f62581a.system.entry.js +1 -0
  352. package/dist/pine-core/p-414faecf.entry.js +1 -0
  353. package/dist/pine-core/p-463a29fa.entry.js +1 -0
  354. package/dist/pine-core/{p-f029b7da.system.entry.js → p-4ee44585.system.entry.js} +1 -1
  355. package/dist/pine-core/p-50af67ea.system.entry.js +1 -0
  356. package/dist/pine-core/p-5133e8be.system.entry.js +1 -0
  357. package/dist/pine-core/p-55fce29e.entry.js +1 -0
  358. package/dist/pine-core/{p-77395d62.system.entry.js → p-568a9a79.system.entry.js} +1 -1
  359. package/dist/pine-core/{p-5cfd4d41.system.entry.js → p-5967d9fa.system.entry.js} +1 -1
  360. package/dist/pine-core/{p-5870b092.system.entry.js → p-5c46553f.system.entry.js} +1 -1
  361. package/dist/pine-core/{p-ea340c55.system.entry.js → p-5ce5836e.system.entry.js} +1 -1
  362. package/dist/pine-core/p-5f3242c8.system.entry.js +1 -0
  363. package/dist/pine-core/{p-80e6f3a0.system.entry.js → p-60d27247.system.entry.js} +1 -1
  364. package/dist/pine-core/{p-90d5edc6.entry.js → p-60e3b1af.entry.js} +1 -1
  365. package/dist/pine-core/{p-ca0a8f5c.entry.js → p-64283f7b.entry.js} +1 -1
  366. package/dist/pine-core/p-6602b4d0.entry.js +1 -0
  367. package/dist/pine-core/p-6845867f.system.entry.js +1 -0
  368. package/dist/pine-core/{p-332590c7.system.entry.js → p-68fdfb8f.system.entry.js} +1 -1
  369. package/dist/pine-core/p-6b6ae1be.entry.js +1 -0
  370. package/dist/pine-core/{p-e5420660.entry.js → p-6d64e6c7.entry.js} +1 -1
  371. package/dist/pine-core/{p-121612a7.system.entry.js → p-6dad76cb.system.entry.js} +1 -1
  372. package/dist/pine-core/p-6f34ad9c.entry.js +1 -0
  373. package/dist/pine-core/{p-55224683.entry.js → p-7073146f.entry.js} +1 -1
  374. package/dist/pine-core/{p-f1702281.entry.js → p-735b3631.entry.js} +1 -1
  375. package/dist/pine-core/p-7a14473e.entry.js +1 -0
  376. package/dist/pine-core/{p-9880d251.system.entry.js → p-7a19477e.system.entry.js} +1 -1
  377. package/dist/pine-core/{p-ea8f5d29.entry.js → p-7d3a20ba.entry.js} +1 -1
  378. package/dist/pine-core/{p-a939b471.entry.js → p-7fcf3d37.entry.js} +1 -1
  379. package/dist/pine-core/{p-26642718.entry.js → p-87642228.entry.js} +1 -1
  380. package/dist/pine-core/{p-62433f32.entry.js → p-89fefe36.entry.js} +1 -1
  381. package/dist/pine-core/{p-cccfe60f.system.entry.js → p-8b97dd57.system.entry.js} +1 -1
  382. package/dist/pine-core/{p-0092444c.system.entry.js → p-9201b497.system.entry.js} +1 -1
  383. package/dist/pine-core/{p-631f5bcc.entry.js → p-92a8cf7d.entry.js} +1 -1
  384. package/dist/pine-core/{p-e836a041.entry.js → p-94597b73.entry.js} +1 -1
  385. package/dist/pine-core/p-9713d6a5.system.entry.js +1 -0
  386. package/dist/pine-core/p-97be00f4.system.entry.js +1 -0
  387. package/dist/pine-core/{p-2ac2457b.system.entry.js → p-98843402.system.entry.js} +1 -1
  388. package/dist/pine-core/{p-b914dde8.entry.js → p-98cc327b.entry.js} +2 -2
  389. package/dist/pine-core/p-9a8971e2.system.entry.js +1 -0
  390. package/dist/pine-core/p-9a8d2985.system.entry.js +3 -0
  391. package/dist/pine-core/{p-ee0e30bf.system.entry.js → p-9dbc017f.system.entry.js} +1 -1
  392. package/dist/pine-core/p-9fbcba0d.entry.js +1 -0
  393. package/dist/pine-core/p-9fe4a64a.entry.js +1 -0
  394. package/dist/pine-core/{p-COtCa1Md.system.js → p-BNTlHhoO.system.js} +1 -1
  395. package/dist/pine-core/p-BZ1l3LGl.system.js +1 -0
  396. package/dist/pine-core/p-BgNaWLoS.js +1 -0
  397. package/dist/pine-core/{p-CmSJytt1.js → p-BplEmwUQ.js} +2 -2
  398. package/dist/pine-core/{p-Cy8cvR7I.system.js → p-CANeE7Ss.system.js} +1 -1
  399. package/dist/pine-core/{p-XW4H0W6i.system.js → p-CNXspDYs.system.js} +1 -1
  400. package/dist/pine-core/{p-jrkGLEPe.js → p-CirzxZ33.js} +1 -1
  401. package/dist/pine-core/{p-CGRdQc49.system.js → p-CjRCtzPD.system.js} +2 -2
  402. package/dist/pine-core/{p-BPqJgIq6.js → p-Cuc0DYlm.js} +1 -1
  403. package/dist/pine-core/{p-D04W0cAO.system.js → p-D52aRqFx.system.js} +1 -1
  404. package/dist/pine-core/p-DCKBKRUy.js +1 -0
  405. package/dist/pine-core/p-DXO1yd32.system.js +1 -0
  406. package/dist/pine-core/{p-ClDiSG97.system.js → p-DaCT2ssj.system.js} +1 -1
  407. package/dist/pine-core/{p-295f64ea.entry.js → p-a2078add.entry.js} +1 -1
  408. package/dist/pine-core/{p-f3067d90.system.entry.js → p-a48b025a.system.entry.js} +1 -1
  409. package/dist/pine-core/{p-9713fb36.entry.js → p-a7d25143.entry.js} +1 -1
  410. package/dist/pine-core/{p-9dcd2cdb.entry.js → p-ad3b1ec3.entry.js} +1 -1
  411. package/dist/pine-core/p-b017eb99.system.entry.js +1 -0
  412. package/dist/pine-core/p-b037dcbd.system.entry.js +1 -0
  413. package/dist/pine-core/{p-db17c626.system.entry.js → p-b243767b.system.entry.js} +1 -1
  414. package/dist/pine-core/{p-0af0d752.system.entry.js → p-b33ad96e.system.entry.js} +1 -1
  415. package/dist/pine-core/p-b6edfdfe.entry.js +2 -0
  416. package/dist/pine-core/{p-8191498f.system.entry.js → p-b7cbd913.system.entry.js} +1 -1
  417. package/dist/pine-core/{p-8f531063.entry.js → p-b9d71b76.entry.js} +1 -1
  418. package/dist/pine-core/p-bcf57566.entry.js +1 -0
  419. package/dist/pine-core/{p-4fd454f6.entry.js → p-bda7e3be.entry.js} +1 -1
  420. package/dist/pine-core/{p-bdac8f2b.entry.js → p-bdde1e53.entry.js} +1 -1
  421. package/dist/pine-core/{p-cb6a3e4c.system.entry.js → p-be3b4f12.system.entry.js} +1 -1
  422. package/dist/pine-core/{p-b1548a20.entry.js → p-bfdfbe9f.entry.js} +1 -1
  423. package/dist/pine-core/{p-8e3ff75d.entry.js → p-c02a32ec.entry.js} +1 -1
  424. package/dist/pine-core/p-c1da80e5.entry.js +1 -0
  425. package/dist/pine-core/{p-eaf85be6.system.entry.js → p-c233866c.system.entry.js} +1 -1
  426. package/dist/pine-core/{p-ecc7a531.system.entry.js → p-cb560aab.system.entry.js} +1 -1
  427. package/dist/pine-core/{p-8c588ca0.entry.js → p-ce554098.entry.js} +1 -1
  428. package/dist/pine-core/p-ced6a814.system.entry.js +1 -0
  429. package/dist/pine-core/{p-9aaedded.entry.js → p-d7930540.entry.js} +1 -1
  430. package/dist/pine-core/{p-11d98408.system.entry.js → p-d7db749a.system.entry.js} +1 -1
  431. package/dist/pine-core/{p-7a5b21d2.system.entry.js → p-d8bedb58.system.entry.js} +1 -1
  432. package/dist/pine-core/{p-1dc5a7e0.system.entry.js → p-d9243653.system.entry.js} +1 -1
  433. package/dist/pine-core/{p-9ab95438.entry.js → p-d94ebe84.entry.js} +1 -1
  434. package/dist/pine-core/{p-9109b90a.entry.js → p-de176bd9.entry.js} +1 -1
  435. package/dist/pine-core/{p-57a2f927.entry.js → p-dea2a254.entry.js} +1 -1
  436. package/dist/pine-core/p-dfadfcd1.entry.js +1 -0
  437. package/dist/pine-core/{p-047433a4.system.entry.js → p-e1fdd53a.system.entry.js} +1 -1
  438. package/dist/pine-core/{p-8987fd45.system.entry.js → p-e70cb112.system.entry.js} +1 -1
  439. package/dist/pine-core/{p-b9d145f8.system.entry.js → p-e9a53a88.system.entry.js} +1 -1
  440. package/dist/pine-core/p-eb93cc6e.entry.js +1 -0
  441. package/dist/pine-core/{p-4d03d1e2.system.entry.js → p-ebf0c51b.system.entry.js} +1 -1
  442. package/dist/pine-core/p-ebf74c43.system.entry.js +1 -0
  443. package/dist/pine-core/{p-138b278b.entry.js → p-ee449a4b.entry.js} +1 -1
  444. package/dist/pine-core/p-ef4d8fea.entry.js +1 -0
  445. package/dist/pine-core/p-f09f27ab.system.entry.js +1 -0
  446. package/dist/pine-core/{p-c483997a.entry.js → p-f2c487e6.entry.js} +1 -1
  447. package/dist/pine-core/p-f549f2bc.entry.js +1 -0
  448. package/dist/pine-core/{p-717323e4.entry.js → p-fc743f6e.entry.js} +1 -1
  449. package/dist/pine-core/{p-BWDu62Mo.js → p-m3pqpeWg.js} +1 -1
  450. package/dist/pine-core/p-wXfuz0Bd.system.js +1 -0
  451. package/dist/pine-core/pine-core.esm.js +1 -1
  452. package/dist/pine-core/pine-core.js +1 -1
  453. package/dist/types/components/pds-alert/pds-alert.d.ts +10 -0
  454. package/dist/types/components/pds-avatar/pds-avatar.d.ts +8 -0
  455. package/dist/types/components/pds-button/pds-button.d.ts +2 -2
  456. package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +7 -1
  457. package/dist/types/components/pds-combobox/pds-combobox.d.ts +9 -0
  458. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +7 -0
  459. package/dist/types/components/pds-link/pds-link.d.ts +8 -0
  460. package/dist/types/components/pds-popover/pds-popover.d.ts +44 -20
  461. package/dist/types/components/pds-radio/pds-radio.d.ts +9 -3
  462. package/dist/types/components/pds-select/pds-select.d.ts +32 -4
  463. package/dist/types/components/pds-toast/pds-toast.d.ts +9 -0
  464. package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +31 -0
  465. package/dist/types/components.d.ts +96 -8
  466. package/dist/types/utils/aria-references.d.ts +24 -0
  467. package/dist/types/utils/tabbable.d.ts +2 -0
  468. package/dist/vscode.html-data.json +79 -7
  469. package/hydrate/index.js +724 -337
  470. package/hydrate/index.mjs +724 -337
  471. package/package.json +2 -2
  472. package/dist/pine-core/p-00a50de5.system.entry.js +0 -3
  473. package/dist/pine-core/p-049f126a.entry.js +0 -1
  474. package/dist/pine-core/p-089c3e60.entry.js +0 -1
  475. package/dist/pine-core/p-17f97f1a.entry.js +0 -1
  476. package/dist/pine-core/p-19ba2788.system.entry.js +0 -1
  477. package/dist/pine-core/p-208c7dbf.entry.js +0 -1
  478. package/dist/pine-core/p-29cd4113.system.entry.js +0 -1
  479. package/dist/pine-core/p-2cb5483a.system.entry.js +0 -1
  480. package/dist/pine-core/p-36cb4bf6.entry.js +0 -1
  481. package/dist/pine-core/p-3d51891a.entry.js +0 -1
  482. package/dist/pine-core/p-432d5ec7.entry.js +0 -1
  483. package/dist/pine-core/p-44f546ae.entry.js +0 -1
  484. package/dist/pine-core/p-5442d983.system.entry.js +0 -1
  485. package/dist/pine-core/p-5833a072.system.entry.js +0 -1
  486. package/dist/pine-core/p-602c197f.entry.js +0 -1
  487. package/dist/pine-core/p-73f931a1.entry.js +0 -1
  488. package/dist/pine-core/p-75ee0403.entry.js +0 -1
  489. package/dist/pine-core/p-7a287635.system.entry.js +0 -1
  490. package/dist/pine-core/p-86040cac.system.entry.js +0 -1
  491. package/dist/pine-core/p-875b0436.system.entry.js +0 -1
  492. package/dist/pine-core/p-884cb31d.system.entry.js +0 -1
  493. package/dist/pine-core/p-8cc302aa.system.entry.js +0 -1
  494. package/dist/pine-core/p-91f60173.entry.js +0 -1
  495. package/dist/pine-core/p-9265497e.system.entry.js +0 -1
  496. package/dist/pine-core/p-94593f20.system.entry.js +0 -1
  497. package/dist/pine-core/p-99459e27.entry.js +0 -1
  498. package/dist/pine-core/p-99fdf70f.entry.js +0 -1
  499. package/dist/pine-core/p-BLG6RDBt.js +0 -1
  500. package/dist/pine-core/p-BR5nujVX.system.js +0 -1
  501. package/dist/pine-core/p-CuSNnuFu.system.js +0 -1
  502. package/dist/pine-core/p-a0960b3d.system.entry.js +0 -1
  503. package/dist/pine-core/p-a1230a74.system.entry.js +0 -1
  504. package/dist/pine-core/p-a826f290.entry.js +0 -1
  505. package/dist/pine-core/p-acce8eb2.entry.js +0 -1
  506. package/dist/pine-core/p-aff411d0.entry.js +0 -1
  507. package/dist/pine-core/p-b182f806.entry.js +0 -2
  508. package/dist/pine-core/p-bb68431a.entry.js +0 -1
  509. package/dist/pine-core/p-be9b6e63.system.entry.js +0 -1
  510. package/dist/pine-core/p-bf30dec0.entry.js +0 -1
  511. package/dist/pine-core/p-c4e12f0a.entry.js +0 -1
  512. package/dist/pine-core/p-e0917a26.entry.js +0 -1
  513. package/dist/pine-core/p-ea4d4741.system.entry.js +0 -1
@@ -3,7 +3,7 @@ import { HostStylingKeeper } from "../../utils/attributes";
3
3
  import { assignDescription, messageId, exposeTypeProperty } from "../../utils/form";
4
4
  import { danger } from "@pine-ds/icons/icons";
5
5
  /**
6
- * @slot image - Custom image content to display instead of the default radio input
6
+ * @slot image - Custom image content to display instead of the default radio input. Ignored when `variant` is `pill`.
7
7
  * @part image-container - The container for the image
8
8
  * @lightDom renders-markup
9
9
  */
@@ -23,7 +23,7 @@ export class PdsRadio {
23
23
  */
24
24
  this.disabled = false;
25
25
  /**
26
- * Adds a border around the radio component for better visual separation.
26
+ * Adds a border around the radio component for better visual separation. Ignored when `variant` is `pill`.
27
27
  * @defaultValue false
28
28
  */
29
29
  this.hasBorder = false;
@@ -37,6 +37,11 @@ export class PdsRadio {
37
37
  * @defaultValue false
38
38
  */
39
39
  this.required = false;
40
+ /**
41
+ * Sets the style variant of the radio. `pill` renders the label as a pill-shaped choice; the native input still handles keyboard, form, and screen reader behavior.
42
+ * @defaultValue default
43
+ */
44
+ this.variant = 'default';
40
45
  this.handleRadioChange = (e) => {
41
46
  if (this.disabled) {
42
47
  return;
@@ -58,6 +63,9 @@ export class PdsRadio {
58
63
  hasImage() {
59
64
  return this._hasImage;
60
65
  }
66
+ isPill() {
67
+ return this.variant === 'pill';
68
+ }
61
69
  classNames() {
62
70
  const classNames = [];
63
71
  if (this.invalid) {
@@ -66,10 +74,14 @@ export class PdsRadio {
66
74
  if (this.disabled) {
67
75
  classNames.push('is-disabled');
68
76
  }
69
- if (this.hasBorder) {
77
+ // A pill is its own bordered shape, so has-border doesn't stack a card around it.
78
+ if (this.hasBorder && !this.isPill()) {
70
79
  classNames.push('has-border');
71
80
  }
72
- if (this.hasImage()) {
81
+ if (this.isPill()) {
82
+ classNames.push('pds-radio--pill');
83
+ }
84
+ if (this.hasImage() && !this.isPill()) {
73
85
  classNames.push('has-image');
74
86
  }
75
87
  return classNames.join(' ');
@@ -99,13 +111,14 @@ export class PdsRadio {
99
111
  }
100
112
  render() {
101
113
  const renderLabelAndMessages = () => [
102
- h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, h("input", { key: 'ccd618855831bcee309e815f2cd2712fd4e8fe1f', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "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' : '' }), h("span", { key: '2e372a880c28f48fb804bac2518208082c141fad', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
114
+ h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, h("input", { key: 'fdd83248666907fa25c5406cdedcd0e6f8d45f50', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "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() || this.isPill() ? 'visually-hidden' : '' }), h("span", { key: '73166ffd57cdb1f3b9e2b61fe880216b23a6510b', class: this.hideLabel && !this.isPill() ? 'visually-hidden' : '' }, this.label)),
103
115
  this.helperMessage && (h("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
104
- this.errorMessage && (h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '08e7a2319eddc1d314ee9dddd51a5ce88cd4ae48', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))
116
+ this.errorMessage && (h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: 'e5bca81578382181b6fce61fa6830fd60e54234a', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))
105
117
  ];
106
118
  const hostClass = this.classNames();
107
119
  this.hostKeeper.record(hostClass);
108
- return (h(Host, { key: '351376552abee90f50c3aceb03ecf8a81ae1b82b', class: hostClass }, this.hasImage() && (h("div", { key: 'fd85fd36b2ebd99b12c3bb2a13cf3d3e3c26530f', class: "pds-radio__image-container", part: "image-container" }, h("slot", { key: 'abe75dbe38d29340b805f70861b084c1b3836be9', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
120
+ const showImage = this.hasImage() && !this.isPill();
121
+ return (h(Host, { key: '4cf39a988cc7642234ff62e7fa2f0d08b09e7d25', class: hostClass }, showImage && (h("div", { key: '7a88d32f896ad4696ea46b13f9ef01e7df0a1c3e', class: "pds-radio__image-container", part: "image-container" }, h("slot", { key: 'eb8399263443d36ab91c0875602d0dc31f036058', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), showImage ? (h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
109
122
  }
110
123
  static get is() { return "pds-radio"; }
111
124
  static get encapsulation() { return "scoped"; }
@@ -239,7 +252,7 @@ export class PdsRadio {
239
252
  "name": "defaultValue",
240
253
  "text": "false"
241
254
  }],
242
- "text": "Adds a border around the radio component for better visual separation."
255
+ "text": "Adds a border around the radio component for better visual separation. Ignored when `variant` is `pill`."
243
256
  },
244
257
  "getter": false,
245
258
  "setter": false,
@@ -301,7 +314,7 @@ export class PdsRadio {
301
314
  "optional": false,
302
315
  "docs": {
303
316
  "tags": [],
304
- "text": "Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers."
317
+ "text": "Visually hides the label text for instances where only the radio should be displayed. Label remains accessible to assistive technology such as screen readers. Ignored when `variant` is `pill`."
305
318
  },
306
319
  "getter": false,
307
320
  "setter": false,
@@ -368,6 +381,29 @@ export class PdsRadio {
368
381
  "setter": false,
369
382
  "reflect": false,
370
383
  "attribute": "value"
384
+ },
385
+ "variant": {
386
+ "type": "string",
387
+ "mutable": false,
388
+ "complexType": {
389
+ "original": "'default' | 'pill'",
390
+ "resolved": "\"default\" | \"pill\"",
391
+ "references": {}
392
+ },
393
+ "required": false,
394
+ "optional": false,
395
+ "docs": {
396
+ "tags": [{
397
+ "name": "defaultValue",
398
+ "text": "default"
399
+ }],
400
+ "text": "Sets the style variant of the radio. `pill` renders the label as a pill-shaped choice; the native input still handles keyboard, form, and screen reader behavior."
401
+ },
402
+ "getter": false,
403
+ "setter": false,
404
+ "reflect": false,
405
+ "attribute": "variant",
406
+ "defaultValue": "'default'"
371
407
  }
372
408
  };
373
409
  }
@@ -10,6 +10,13 @@ export default {
10
10
  invalid: false,
11
11
  hideLabel: false,
12
12
  required: false,
13
+ variant: 'default',
14
+ },
15
+ argTypes: {
16
+ variant: {
17
+ control: { type: 'select' },
18
+ options: ['default', 'pill'],
19
+ },
13
20
  },
14
21
  component: 'pds-radio',
15
22
  parameters: {},
@@ -30,6 +37,7 @@ const BaseTemplate = (args) =>
30
37
  ?required=${args.required}
31
38
  value=${args.value}
32
39
  ?invalid=${args.invalid}
40
+ variant=${args.variant}
33
41
  />`;
34
42
 
35
43
  export const Default = BaseTemplate.bind();
@@ -101,3 +109,10 @@ WithImage.args = {
101
109
  label: 'Option with image',
102
110
  helperMessage: 'This radio includes an image using the image slot',
103
111
  };
112
+
113
+ export const Pill = BaseTemplate.bind();
114
+ Pill.args = {
115
+ componentId: 'pill',
116
+ label: 'Label text',
117
+ variant: 'pill',
118
+ };
@@ -161,13 +161,13 @@ export class PdsRadioGroup {
161
161
  render() {
162
162
  const gapValue = this.getGapValue();
163
163
  const ariaDescribedBy = this.getAriaDescribedBy();
164
- return (h(Host, { key: 'bf8063c1a99e272bb3f6bc647998a6ef103f8a71', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
164
+ return (h(Host, { key: 'aaf53113f06a0f49706e53735701fba64e79cb4d', class: this.classNames(), id: this._groupId, role: "group", "aria-describedby": ariaDescribedBy, style: {
165
165
  '--pds-radio-group-gap': gapValue,
166
- } }, this.groupLabel && (h("div", { key: '8564ed3f8f99cdc1a0e5b189aacc6960923eb5f7', class: "pds-radio-group__label" }, this.groupLabel)), h("div", { key: '2309c9373790182cde030c1dbda88fa3bdcaaf12', class: {
166
+ } }, this.groupLabel && (h("div", { key: '4be5e43146bf348929e45498107862aaca161644', class: "pds-radio-group__label" }, this.groupLabel)), h("div", { key: 'b4a1b870c1a7167b8dcbcf0a11808bbd9a8cec4e', class: {
167
167
  'pds-radio-group__radios': true,
168
168
  'pds-radio-group__radios--row': this.direction === 'row',
169
169
  'pds-radio-group__radios--column': this.direction === 'column',
170
- } }, h("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (h("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (h("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '83b0129d3d45b74ef1f53acc923387b2de7f079b', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))));
170
+ } }, h("slot", { key: '2d841cc69c35a4f9da933bbb33c1384ca343e077', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (h("div", { key: 'a09bb9e739570c06dc1907cb4e2dceecca36f7d3', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (h("div", { key: 'b8fe891cc4b8683d18c19b3b4ddb70212185b954', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '9a15d81d8303eeb5a928b96c760f6b15e536e0dc', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))));
171
171
  }
172
172
  static get is() { return "pds-radio-group"; }
173
173
  static get encapsulation() { return "scoped"; }
@@ -132,3 +132,48 @@ Horizontal.args = {
132
132
  name: 'horizontal-group',
133
133
  };
134
134
 
135
+
136
+ const PillTemplate = (args) =>
137
+ html` <pds-radio-group
138
+ component-id=${args.componentId}
139
+ direction=${args.direction}
140
+ ?disabled=${args.disabled}
141
+ error-message=${args.errorMessage}
142
+ helper-message=${args.helperMessage}
143
+ ?invalid=${args.invalid}
144
+ group-label=${args.groupLabel}
145
+ name=${args.name}
146
+ ?required=${args.required}
147
+ >
148
+ <pds-radio component-id="pill-solo" label="Just me" value="solo" variant="pill" checked></pds-radio>
149
+ <pds-radio component-id="pill-small" label="2-10 people" value="small" variant="pill"></pds-radio>
150
+ <pds-radio component-id="pill-medium" label="11-50 people" value="medium" variant="pill"></pds-radio>
151
+ <pds-radio component-id="pill-large" label="More than 50" value="large" variant="pill"></pds-radio>
152
+ </pds-radio-group>`;
153
+
154
+ export const Pill = PillTemplate.bind();
155
+ Pill.args = {
156
+ componentId: 'pill-group',
157
+ direction: 'row',
158
+ groupLabel: 'How big is your team?',
159
+ name: 'pill-group',
160
+ };
161
+
162
+ export const PillDisabled = PillTemplate.bind();
163
+ PillDisabled.args = {
164
+ componentId: 'pill-group-disabled',
165
+ direction: 'row',
166
+ disabled: true,
167
+ groupLabel: 'How big is your team?',
168
+ name: 'pill-group-disabled',
169
+ };
170
+
171
+ export const PillInvalid = PillTemplate.bind();
172
+ PillInvalid.args = {
173
+ componentId: 'pill-group-invalid',
174
+ direction: 'row',
175
+ errorMessage: 'Choose a team size to continue',
176
+ groupLabel: 'How big is your team?',
177
+ invalid: true,
178
+ name: 'pill-group-invalid',
179
+ };
@@ -67,7 +67,7 @@ export class PdsRow {
67
67
  'min-height': this.minHeight,
68
68
  }));
69
69
  this.hostKeeper.record(`pds-row ${rowClasses}`, rowInlineStyles);
70
- return h(Host, { key: '452882c1105868f5d392e7cb165311b1abc4a243', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
70
+ return h(Host, { key: '589ee3251a4ee1d7824c8e2fa3e214de5466c3db', class: `pds-row ${rowClasses}`, style: rowInlineStyles });
71
71
  }
72
72
  static get is() { return "pds-row"; }
73
73
  static get originalStyleUrls() {
@@ -2,12 +2,34 @@ import { Host, h } from "@stencil/core";
2
2
  import { HostStylingKeeper } from "../../utils/attributes";
3
3
  import { assignDescription, isSpecTest, messageId, exposeTypeProperty } from "../../utils/form";
4
4
  import { danger, enlarge } from "@pine-ds/icons/icons";
5
+ /** The tags of an option list in order, optgroup contents included: equal shapes can be patched in place. */
6
+ const shapeOf = (items) => items.map((item) => item.tagName + (item.tagName === 'OPTGROUP' ? `(${shapeOf(Array.from(item.children))})` : '')).join();
7
+ /** Brings an existing option or optgroup up to date with its copy, keeping the element itself. */
8
+ const patchInPlace = (target, copy) => {
9
+ Array.from(target.attributes).forEach(({ name }) => {
10
+ if (!copy.hasAttribute(name))
11
+ target.removeAttribute(name);
12
+ });
13
+ Array.from(copy.attributes).forEach(({ name, value }) => {
14
+ if (target.getAttribute(name) !== value)
15
+ target.setAttribute(name, value);
16
+ });
17
+ if (copy.tagName === 'OPTGROUP') {
18
+ Array.from(copy.children).forEach((child, index) => patchInPlace(target.children[index], child));
19
+ }
20
+ else if (target.textContent !== copy.textContent) {
21
+ target.textContent = copy.textContent;
22
+ }
23
+ };
5
24
  /**
6
25
  * @slot action - Content to be displayed in the label area, typically for help icons or links
7
26
  */
8
27
  export class PdsSelect {
9
28
  constructor() {
10
29
  this._type = 'select-one';
30
+ this.optionObserver = null;
31
+ this.optionSyncFrame = null;
32
+ this.hasHadOptions = false;
11
33
  this.hostKeeper = new HostStylingKeeper();
12
34
  /**
13
35
  * Indicates whether or not the select field is disabled.
@@ -24,6 +46,16 @@ export class PdsSelect {
24
46
  * @defaultValue false
25
47
  */
26
48
  this.required = false;
49
+ /**
50
+ * Whether a mutation is inside an option or optgroup. The host's own attributes and children
51
+ * (top-level adds and removes reach `slotchange`) and the action slot's content are not.
52
+ */
53
+ this.touchesOption = ({ target }) => {
54
+ // Not just TEXT_NODE: characterData also reports comment nodes, and a Comment has no
55
+ // .closest() — treating anything non-Element as a Text node crashed on one.
56
+ const element = target.nodeType === Node.ELEMENT_NODE ? target : target.parentElement;
57
+ return target !== this.el && (element === null || element === void 0 ? void 0 : element.closest('option, optgroup')) != null;
58
+ };
27
59
  /**
28
60
  * Emits an event on input change.
29
61
  */
@@ -50,25 +82,47 @@ export class PdsSelect {
50
82
  this.pdsKeyDown.emit(ev);
51
83
  };
52
84
  /**
53
- * Handles the change event for the slot element.
54
- * This method is triggered when the slot content changes.
55
- * It updates the inner HTML of the select element by cloning and appending
56
- * the assigned <option> elements from the slot.
85
+ * Copies the slotted <option> and <optgroup> elements into the inner select, then
86
+ * reselects the current value. Runs on `slotchange` and when a slotted option changes
87
+ * (see startOptionSync).
88
+ *
89
+ * Nothing happens when the copies match what the select already holds. When only text or
90
+ * attributes changed, the select's own options are updated in place rather than replaced,
91
+ * so an open picker keeps its highlight, a multiple select keeps its range anchor, and a
92
+ * screen reader keeps its place. Selecting programmatically fires no change event, so a
93
+ * copy never emits `pdsSelectChange`.
57
94
  */
58
95
  this.handleSlotChange = () => {
59
- const slot = this.slotContainer.querySelector('slot');
60
- this.selectEl.innerHTML = '';
61
- const assignedElements = slot.assignedElements({ flatten: true });
62
- assignedElements.forEach((item) => {
63
- if (['OPTION', 'OPTGROUP'].includes(item.tagName)) {
64
- const clonedItem = item.cloneNode(true);
65
- if (clonedItem.tagName === 'OPTION' && clonedItem.value === this.value) {
66
- clonedItem.selected = true;
67
- }
68
- this.selectEl.appendChild(clonedItem);
69
- }
70
- });
96
+ var _a;
97
+ const slot = (_a = this.slotContainer) === null || _a === void 0 ? void 0 : _a.querySelector('slot');
98
+ if (slot === null || slot === undefined || this.selectEl === undefined)
99
+ return;
100
+ const copies = slot.assignedElements({ flatten: true })
101
+ .filter((item) => ['OPTION', 'OPTGROUP'].includes(item.tagName))
102
+ .map((item) => item.cloneNode(true));
103
+ const current = Array.from(this.selectEl.children);
104
+ // The very first copy populates an empty select, where falling back to the first option (like
105
+ // a native select) is correct; the no-match blank state is for options changing under a value
106
+ // that was already showing selected. Tracked separately from the select's current emptiness:
107
+ // an async reload that clears options before the next set lands would otherwise look like a
108
+ // first render again, and the no-match state must still apply once that next set arrives.
109
+ const hadOptions = this.hasHadOptions;
110
+ if (copies.length > 0)
111
+ this.hasHadOptions = true;
112
+ const markup = (items) => items.map((item) => item.outerHTML).join('');
113
+ if (markup(copies) === markup(current))
114
+ return;
115
+ if (shapeOf(copies) === shapeOf(current)) {
116
+ copies.forEach((copy, index) => patchInPlace(current[index], copy));
117
+ }
118
+ else {
119
+ this.selectEl.innerHTML = '';
120
+ copies.forEach((copy) => this.selectEl.appendChild(copy));
121
+ }
71
122
  this.updateSelectedOption();
123
+ if (hadOptions)
124
+ this.showNoSelectionWithoutMatch();
125
+ this.updateFormValue();
72
126
  };
73
127
  }
74
128
  /**
@@ -97,9 +151,16 @@ export class PdsSelect {
97
151
  }
98
152
  // Expose type property on the element instance to match native form element behavior
99
153
  exposeTypeProperty(this.el, () => this._type);
154
+ // Reconnected after a move: componentDidLoad won't run again, and options may have changed
155
+ // while it was out of the document.
156
+ if (this.selectEl !== undefined) {
157
+ this.startOptionSync();
158
+ this.scheduleOptionSync();
159
+ }
100
160
  }
101
161
  disconnectedCallback() {
102
162
  this.hostKeeper.disconnect();
163
+ this.stopOptionSync();
103
164
  }
104
165
  componentWillLoad() {
105
166
  // Set initial type based on multiple prop
@@ -109,6 +170,43 @@ export class PdsSelect {
109
170
  componentDidLoad() {
110
171
  // Set initial form value
111
172
  this.updateFormValue();
173
+ // Stencil holds componentDidLoad until the shadow root's pds-icon has loaded, so options can
174
+ // change between the first slotchange copy and here with nothing observing yet — the same gap
175
+ // the reconnect path closes with a catch-up sync.
176
+ this.startOptionSync();
177
+ this.scheduleOptionSync();
178
+ }
179
+ /**
180
+ * Keeps the inner select in step with the slotted options. `slotchange` only fires when
181
+ * top-level options are added or removed, so an option's text, value or disabled state
182
+ * changing, or an option added inside an optgroup, would otherwise never reach the select.
183
+ * Changes are batched into one copy per animation frame.
184
+ */
185
+ startOptionSync() {
186
+ if (this.optionObserver !== null || typeof MutationObserver === 'undefined' || !this.el.isConnected)
187
+ return;
188
+ this.optionObserver = new MutationObserver((mutations) => {
189
+ if (mutations.some(this.touchesOption))
190
+ this.scheduleOptionSync();
191
+ });
192
+ this.optionObserver.observe(this.el, { childList: true, subtree: true, attributes: true, characterData: true });
193
+ }
194
+ scheduleOptionSync() {
195
+ if (this.optionSyncFrame !== null)
196
+ return;
197
+ this.optionSyncFrame = requestAnimationFrame(() => {
198
+ this.optionSyncFrame = null;
199
+ this.handleSlotChange();
200
+ });
201
+ }
202
+ stopOptionSync() {
203
+ var _a;
204
+ (_a = this.optionObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
205
+ this.optionObserver = null;
206
+ if (this.optionSyncFrame !== null) {
207
+ cancelAnimationFrame(this.optionSyncFrame);
208
+ this.optionSyncFrame = null;
209
+ }
112
210
  }
113
211
  /**
114
212
  * Updates the selected option in the select element based on the current value.
@@ -135,6 +233,19 @@ export class PdsSelect {
135
233
  }
136
234
  ;
137
235
  }
236
+ /**
237
+ * After a copy that changes an existing option set, a value whose option was renamed or removed
238
+ * has nothing to select. Like a native select, show nothing selected rather than the first
239
+ * option; the value itself is kept, with no change event.
240
+ */
241
+ showNoSelectionWithoutMatch() {
242
+ var _a;
243
+ const wanted = [].concat((_a = this.value) !== null && _a !== void 0 ? _a : []).filter((value) => value !== '');
244
+ const options = Array.from(this.selectEl.options);
245
+ if (wanted.length > 0 && !options.some((option) => wanted.includes(option.value))) {
246
+ this.selectEl.selectedIndex = -1;
247
+ }
248
+ }
138
249
  getHelperMessage() {
139
250
  return this.helperMessage && (h("p", { class: "pds-select__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage));
140
251
  }
@@ -240,7 +351,7 @@ export class PdsSelect {
240
351
  'has-action': hasAction && !this.hideLabel ? 'true' : null,
241
352
  };
242
353
  this.hostKeeper.record(hostClass, {}, hostAttributes);
243
- return (h(Host, Object.assign({ key: '343ed671e67dd1d6f9eb284b07e06d59877c64e9', class: hostClass }, hostAttributes), h("div", { key: '650aed0869b02f658feb16ee99f17e1cd22e5a8e', class: "pds-select" }, !this.hideLabel && (h("div", { key: '74739461acbea33c92279ec8ec9042d6af1773c1', class: "pds-select__label-wrapper" }, h("label", { key: '1ad96ffd243000358edfbd79054ee770e1ba97d3', htmlFor: this.componentId }, h("span", { key: 'b832868db4f9cd4fd2f8313054d2e96e106189ab', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), h("select", { key: 'e83c1a1a0a5646fc8abf9e50bc374f52b56be773', "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-label": this.hideLabel ? this.label : undefined, autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onBlur: this.onBlur, onChange: this.onSelectUpdate, onFocus: this.onFocus, onKeyDown: this.onKeyDown, part: "select", required: this.required, ref: (el) => (this.selectEl = el) }), h("div", { key: 'a34880120b88124b5122350856d023368f96abf7', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, h("slot", { key: 'df6abaf6a630761a32b263813181ff3453757e0d', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && h("pds-icon", { key: 'f9197284ef9965d693242a652b583f48bc3d7097', "aria-hidden": "true", class: "pds-select__select-icon", icon: enlarge }))));
354
+ return (h(Host, Object.assign({ key: '37c2c3b72c13c3c4e3d81da29ddddc86a7300d70', class: hostClass }, hostAttributes), h("div", { key: 'ff1c311dca6fc25813e5473d0e8daff4dc12e807', class: "pds-select" }, !this.hideLabel && (h("div", { key: '77db17b0beb1fefabb26ffe1df0e5f03a0515996', class: "pds-select__label-wrapper" }, h("label", { key: 'c4dcba3bc148aada4a3afcca0a30c64a630e441f', htmlFor: this.componentId }, h("span", { key: '0fc3424ec1961d3b216c0fabb80cb8acee37f1a2', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), hasAction && this.renderAction())), h("select", { key: 'ff343a6653ccd081021cb669a428c780d0162e8b', "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-label": this.hideLabel ? this.label : undefined, autocomplete: this.autocomplete || undefined, class: "pds-select__field", disabled: this.disabled, id: this.componentId, multiple: this.multiple, name: this.name, onBlur: this.onBlur, onChange: this.onSelectUpdate, onFocus: this.onFocus, onKeyDown: this.onKeyDown, part: "select", required: this.required, ref: (el) => (this.selectEl = el) }), h("div", { key: '86fed1916c3b13d079492581a7c6bb621012a4a5', "aria-hidden": "true", class: "hidden", ref: (el) => (this.slotContainer = el) }, h("slot", { key: 'abe06eeef5be13b716573c8a806d6b7795edc65f', onSlotchange: this.handleSlotChange })), this.renderMessages(), !this.multiple && h("pds-icon", { key: '68c958666828f77114f2edeedb667070106046fa', "aria-hidden": "true", class: "pds-select__select-icon", icon: enlarge }))));
244
355
  }
245
356
  static get is() { return "pds-select"; }
246
357
  static get encapsulation() { return "shadow"; }
@@ -198,8 +198,8 @@ export const withActionButton = (args) => html`<pds-select
198
198
  ?required=${args.required}
199
199
  type="${args.type}"
200
200
  value="${args.value}">
201
- <pds-button slot="action" variant="unstyled">
202
- <pds-icon name="question-circle"></pds-icon>
201
+ <pds-button slot="action" variant="unstyled" aria-label="Help with country">
202
+ <pds-icon name="question-circle" aria-hidden="true"></pds-icon>
203
203
  </pds-button>
204
204
  ${options.map((option) => html`<option value="${option.value}">${option.label}</option>`)}
205
205
  </pds-select>`;
@@ -48,7 +48,7 @@ export class PdsSortableItem {
48
48
  }
49
49
  render() {
50
50
  this.hostKeeper.record('pds-sortable-item');
51
- return (h(Host, { key: '2065ccb474ae4b7032edc3c37aa6855f3048909d', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (h("div", { key: '32385cc94837a3d0bc1c496615135c79274afe35', class: "pds-sortable-item__handle" }, h("pds-icon", { key: 'ea94e28b2867aa20622ca073dc31d3b4a11eebbb', "aria-hidden": "true", icon: handleIcon }))), h("slot", { key: 'fb18aa90be0b8fa3832a5dd2b02a7b571205341f' }), this.enableActions && (h("div", { key: '4c6e59d77a7b2183552533a544f4a70ce0cc7011', class: "pds-sortable-item__actions" }, h("slot", { key: '497b1ff88436175d9365a28032e109b6fa118e44', name: "sortable-item-actions" })))));
51
+ return (h(Host, { key: 'c6b5402a54179d4e7caed3cc81874977d2d6c677', class: "pds-sortable-item", id: this.componentId }, this.showHandle && (h("div", { key: 'cd2d85286bcb3e47f76e4571d609d91f932b717b', class: "pds-sortable-item__handle" }, h("pds-icon", { key: '97e2e155283d86921f40198637abf596d6cc86e0', "aria-hidden": "true", icon: handleIcon }))), h("slot", { key: '99743c8e5be45ca76f276b47688843a621c8ded5' }), this.enableActions && (h("div", { key: '7cb1a8b99658d72067ccae036b2bc0276b8cf02e', class: "pds-sortable-item__actions" }, h("slot", { key: 'f9b3b7d1cc10ac077f65ec2cafac7a372deae511', name: "sortable-item-actions" })))));
52
52
  }
53
53
  static get is() { return "pds-sortable-item"; }
54
54
  static get encapsulation() { return "scoped"; }
@@ -70,7 +70,7 @@ export class PdsSortable {
70
70
  render() {
71
71
  const classNames = this.classNames();
72
72
  this.hostKeeper.record(classNames);
73
- return (h(Host, { key: 'a0e532d31561748b4632a6be9163562f990af804', class: classNames, id: this.componentId }, h("slot", { key: 'd1b0defb683f841e6708374fff4bf62eb7fd5080' })));
73
+ return (h(Host, { key: '6e9e7b769f57ebfd81541fbecbe17b3fb4ad3e47', class: classNames, id: this.componentId }, h("slot", { key: 'c9466a216862c0a3e578f3fcfc1ac1e26146722b' })));
74
74
  }
75
75
  static get is() { return "pds-sortable"; }
76
76
  static get encapsulation() { return "scoped"; }
@@ -113,9 +113,9 @@ export class PdsSwitch {
113
113
  const hostClass = this.switchClassNames();
114
114
  const ariaDisabled = this.disabled ? 'true' : null;
115
115
  this.hostKeeper.record(hostClass, {}, { 'aria-disabled': ariaDisabled });
116
- return (h(Host, { key: 'b8bd2870be101081aa8a65cdee45397bc4c21435', class: hostClass, "aria-disabled": ariaDisabled }, h("label", { key: '1e223f22f7fc6c576098353ad67dc11500def8b4', htmlFor: this.componentId }, h("input", Object.assign({ key: 'edf59869e165a65b97465ea9de06f7ea82fbc9a6', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), h("span", { key: '1c252b9455471069f8c6ea6c13f2e88c99308b41', class: this.hideLabel ? 'visually-hidden' : '' }, h("slot", { key: 'ce0d471918bd3018f5e55d0d1e6c5c2247790f81', name: "label", onSlotchange: this.updateHasLabelSlot }), !this.hasLabelSlot && this.label)), this.helperMessage &&
117
- h("div", { key: '64874b15403f1f42344715ac34febdfb8d94042a', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
118
- h("div", { key: '560ea486859124bb0ac2f75ab4bd34b0bca7efbc', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '2ae8dc876745af26fa2418f2265248aeb8f97a2b', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage)));
116
+ return (h(Host, { key: '0fa5beb83232b381ea5cdfa82d143afcb69eb4e1', class: hostClass, "aria-disabled": ariaDisabled }, h("label", { key: 'df5d08344d11cb334ef69a432d1c02557caacc96', htmlFor: this.componentId }, h("input", Object.assign({ key: '6908b328f0e2da2085ffbffe0d1e4d09f2c6fd86', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), h("span", { key: '1108ab3eae63a371f9e9b80f011211cba8287b67', class: this.hideLabel ? 'visually-hidden' : '' }, h("slot", { key: '8aac1d9b81deab92e1e27c06debf2b87bc697874', name: "label", onSlotchange: this.updateHasLabelSlot }), !this.hasLabelSlot && this.label)), this.helperMessage &&
117
+ h("div", { key: 'ef829fb6bc66060805a144995f60e2bebb915615', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
118
+ h("div", { key: '42ad678cc2179b4a26ed09151de41c2293b98011', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '8dc0b29b522247762010edb3b1e8e5fc8c8788fa', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage)));
119
119
  }
120
120
  static get is() { return "pds-switch"; }
121
121
  static get encapsulation() { return "shadow"; }
@@ -1,7 +1,7 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  export class PdsTableBody {
3
3
  render() {
4
- return (h(Host, { key: '817532e93c8f91ef64cd0f90aa6c4372c3b7d83f', role: "rowgroup", part: "body" }, h("slot", { key: '296ba876c6716e85252a06008bd55d59624223e3' })));
4
+ return (h(Host, { key: '4f1cba9505f56ff1ab0a19f9a88318d66a02eacc', role: "rowgroup", part: "body" }, h("slot", { key: 'ea0c620a15fcbe2915189e870d0815c5cbffdf8c' })));
5
5
  }
6
6
  static get is() { return "pds-table-body"; }
7
7
  static get encapsulation() { return "shadow"; }
@@ -143,11 +143,11 @@ export class PdsTableCell {
143
143
  return classNames.join(' ');
144
144
  }
145
145
  render() {
146
- return (h(Host, { key: 'de70a1002cc46e204f87349069b86ca43aa2129a', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
146
+ return (h(Host, { key: 'fd84150bcb9bd5d2029624394d4f69b0a7234bc0', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
147
147
  this.tableRef.fixedColumn &&
148
148
  this.tableRef.selectable
149
149
  ? { '--fixed-cell-position': '40px' }
150
- : {} }, h("slot", { key: '5e2b3308291e480323d7a1ac0575035758fb3695' })));
150
+ : {} }, h("slot", { key: '9256f033ec58b9cb2acc74d705acc9726507668b' })));
151
151
  }
152
152
  static get is() { return "pds-table-cell"; }
153
153
  static get encapsulation() { return "shadow"; }
@@ -42,7 +42,7 @@ export class PdsTableHead {
42
42
  }
43
43
  }
44
44
  render() {
45
- return (h(Host, { key: 'de3faae735e90f5fde1258b5acb826f5f9dbd170', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (h("pds-table-head-cell", { key: 'e590e57c8b37ec0ad18e96077401c4692bbd45a4', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, !this.tableRef.disableSelectAll && (h("pds-checkbox", { key: '44ca7eda63185672939909e121a86e6502080a7d', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" })))), h("slot", { key: '0671df85d7989cff7266bfd3d1b4d62b332d2e81' })));
45
+ return (h(Host, { key: '4fb8d7bf4a9b0bce672208651c0600fbc94214af', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (h("pds-table-head-cell", { key: '20b86146540208178bd63bd136e14e5534c7ec76', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, !this.tableRef.disableSelectAll && (h("pds-checkbox", { key: 'fa8054dd7ee36c6401e9eeb9c962a820d3a02558', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" })))), h("slot", { key: 'a0000270ae6ed1cab1c6e802ccc53ba0de3e54c9' })));
46
46
  }
47
47
  static get is() { return "pds-table-head"; }
48
48
  static get encapsulation() { return "shadow"; }
@@ -199,11 +199,11 @@ export class PdsTableHeadCell {
199
199
  return classNames.join(' ');
200
200
  }
201
201
  render() {
202
- return (h(Host, { key: '13de42d136c5b037cd1545cd5b789b4660e23b87', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
202
+ return (h(Host, { key: 'd609309180968913315c1428d0403c3974a4bfc0', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
203
203
  this.tableRef.fixedColumn &&
204
204
  this.tableRef.selectable
205
205
  ? { '--fixed-cell-position': '40px' }
206
- : {} }, h("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (h("pds-icon", { key: '79606519d810dc9882a91cbc3b6a199457086631', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon", "aria-hidden": "true" }))));
206
+ : {} }, h("slot", { key: '7aff5994fe4c5250ce83516960183dbd9ffa9c69' }), this.sortable && this.isActive && (h("pds-icon", { key: '0a7b99ab2c56ea0cfb3aa6f810bf802422a29bef', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon", "aria-hidden": "true" }))));
207
207
  }
208
208
  static get is() { return "pds-table-head-cell"; }
209
209
  static get encapsulation() { return "shadow"; }
@@ -137,7 +137,7 @@ export class PdsTableRow {
137
137
  }
138
138
  }
139
139
  render() {
140
- return (h(Host, { key: '5323521abc5c2464299cf77520fb38ec81297866', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (h("pds-table-cell", { key: 'eb94dd282f885d3466b6177b2454cbcc4f932466', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, h("pds-checkbox", { key: '222eaaedd4bebddc18cebf01bf4da81004773a96', componentId: this.generateUniqueId(), onPdsCheckboxChange: this.handleCheckboxChange, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), h("slot", { key: '010f222fa02b1809ff818f7a030c2a12fc3e3abb' })));
140
+ return (h(Host, { key: 'dc956e7253971bdadc003448822a83953ed4658f', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (h("pds-table-cell", { key: '1f119c5036ab1d27c5138106968a40492222b6f3', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, h("pds-checkbox", { key: 'f7a3534eceeabe478fb85e6e476f814e03988cfb', componentId: this.generateUniqueId(), onPdsCheckboxChange: this.handleCheckboxChange, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), h("slot", { key: '287c0fe2c39bac5df7a977e31290aeddd0cd46b3' })));
141
141
  }
142
142
  static get is() { return "pds-table-row"; }
143
143
  static get encapsulation() { return "shadow"; }
@@ -164,7 +164,7 @@ const ResponsiveTemplate = (args) => html`
164
164
  <pds-table-cell>Row Item Lima</pds-table-cell>
165
165
  <pds-table-cell>
166
166
  <pds-dropdown-menu placement="bottom-end">
167
- <pds-button slot="trigger" size="sm" variant="icon-only"><pds-icon name="dot-menu-horizontal"></pds-icon></pds-button>
167
+ <pds-button slot="trigger" size="small" variant="tertiary" icon-only aria-label="More actions"><pds-icon slot="start" name="dot-menu-horizontal" aria-hidden="true"></pds-icon></pds-button>
168
168
  <pds-dropdown-menu-item>Edit</pds-dropdown-menu-item>
169
169
  <pds-dropdown-menu-item>Duplicate</pds-dropdown-menu-item>
170
170
  <pds-dropdown-menu-separator></pds-dropdown-menu-separator>
@@ -186,7 +186,7 @@ const ResponsiveTemplate = (args) => html`
186
186
  <pds-table-cell>Row Item Lima</pds-table-cell>
187
187
  <pds-table-cell>
188
188
  <pds-dropdown-menu placement="bottom-end">
189
- <pds-button slot="trigger" size="sm" variant="icon-only"><pds-icon name="dot-menu-horizontal"></pds-icon></pds-button>
189
+ <pds-button slot="trigger" size="small" variant="tertiary" icon-only aria-label="More actions"><pds-icon slot="start" name="dot-menu-horizontal" aria-hidden="true"></pds-icon></pds-button>
190
190
  <pds-dropdown-menu-item>Edit</pds-dropdown-menu-item>
191
191
  <pds-dropdown-menu-item>Duplicate</pds-dropdown-menu-item>
192
192
  <pds-dropdown-menu-separator></pds-dropdown-menu-separator>
@@ -208,7 +208,7 @@ const ResponsiveTemplate = (args) => html`
208
208
  <pds-table-cell>Row Item Lima</pds-table-cell>
209
209
  <pds-table-cell>
210
210
  <pds-dropdown-menu placement="bottom-end">
211
- <pds-button slot="trigger" size="sm" variant="icon-only"><pds-icon name="dot-menu-horizontal"></pds-icon></pds-button>
211
+ <pds-button slot="trigger" size="small" variant="tertiary" icon-only aria-label="More actions"><pds-icon slot="start" name="dot-menu-horizontal" aria-hidden="true"></pds-icon></pds-button>
212
212
  <pds-dropdown-menu-item>Edit</pds-dropdown-menu-item>
213
213
  <pds-dropdown-menu-item>Duplicate</pds-dropdown-menu-item>
214
214
  <pds-dropdown-menu-separator></pds-dropdown-menu-separator>
@@ -33,7 +33,7 @@ export class PdsTabpanel {
33
33
  // The docs show consumers omitting `slot`, so server HTML doesn't carry it — a DOM morph
34
34
  // that strips it (and the stretch-active class) leaves this panel unslotted. Put both back.
35
35
  this.hostKeeper.record(hostClass, {}, { slot: 'tabpanels' });
36
- return (h(Host, { key: '5d867e31d0f5f14e18f1c81035991c90bb5fe529', slot: "tabpanels", class: hostClass || undefined }, h("div", { key: '255d37a73089904cfb170cd89f7b829756f6295f', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, h("slot", { key: '714d3d0cf0fc6173e243a2b077d9b9918ae4acf9' }))));
36
+ return (h(Host, { key: 'b649c0f9e0c103a2d7dad43b7db0a092194b4ba0', slot: "tabpanels", class: hostClass || undefined }, h("div", { key: 'a578722d33f7d04726185e393771838870833984', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, h("slot", { key: '2ebe5745c444563333ee175bb3a1f7401ba77ec1' }))));
37
37
  }
38
38
  static get is() { return "pds-tabpanel"; }
39
39
  static get originalStyleUrls() {
@@ -276,7 +276,7 @@ export class PdsTabs {
276
276
  // Only the classes: `active-tab-name` backs the mutable activeTabName prop, so a morph that drops
277
277
  // it is a prop change, not a strip.
278
278
  this.hostKeeper.record(hostClass);
279
- return (h(Host, { key: '91a9a5cf4348b73ef5ec21430db20468fb67906c', "active-tab-name": this.activeTabName, class: hostClass, id: this.componentId }, tabList, h("slot", { key: 'f0ec002e513f3e91956e905c23e35dae0e6328ad', name: "tabpanels" })));
279
+ return (h(Host, { key: '08ac02be358bebbd95dd5edca30cd99789445f50', "active-tab-name": this.activeTabName, class: hostClass, id: this.componentId }, tabList, h("slot", { key: '02395c056f80f46f1fa9117eafde68ef170b4188', name: "tabpanels" })));
280
280
  }
281
281
  static get is() { return "pds-tabs"; }
282
282
  static get encapsulation() { return "shadow"; }