@riverty/web-components 6.0.0 → 6.2.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 (274) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/custom-elements.json +259 -2
  3. package/dist/cjs/{index-DJ4H_bFj.js → index-BnETQtSf.js} +9 -382
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/r-accordion-panel.cjs.entry.js +1 -1
  6. package/dist/cjs/r-accordion-section.cjs.entry.js +1 -1
  7. package/dist/cjs/r-accordion-trigger.cjs.entry.js +1 -1
  8. package/dist/cjs/r-accordion.cjs.entry.js +1 -1
  9. package/dist/cjs/r-alert.cjs.entry.js +9 -6
  10. package/dist/cjs/r-badge.cjs.entry.js +1 -1
  11. package/dist/cjs/r-button.cjs.entry.js +6 -2
  12. package/dist/cjs/r-checkbox-group.cjs.entry.js +1 -1
  13. package/dist/cjs/r-checkbox.cjs.entry.js +4 -4
  14. package/dist/cjs/r-design-system-devtools.cjs.entry.js +1 -1
  15. package/dist/cjs/r-dialog.cjs.entry.js +1 -1
  16. package/dist/cjs/r-hint_2.cjs.entry.js +3 -3
  17. package/dist/cjs/r-icon-button_2.cjs.entry.js +27 -7
  18. package/dist/cjs/r-icon.cjs.entry.js +2 -2
  19. package/dist/cjs/r-illustration.cjs.entry.js +396 -0
  20. package/dist/cjs/r-input-code.cjs.entry.js +34 -12
  21. package/dist/cjs/r-input-date.cjs.entry.js +7 -7
  22. package/dist/cjs/r-input-password.cjs.entry.js +3 -3
  23. package/dist/cjs/r-input-phone-number.cjs.entry.js +4 -4
  24. package/dist/cjs/r-input.cjs.entry.js +8 -5
  25. package/dist/cjs/r-list-item.cjs.entry.js +17 -16
  26. package/dist/cjs/r-pagination.cjs.entry.js +56 -50
  27. package/dist/cjs/r-panel.cjs.entry.js +6 -6
  28. package/dist/cjs/r-popover-action.cjs.entry.js +2 -2
  29. package/dist/cjs/r-popover-content.cjs.entry.js +2 -2
  30. package/dist/cjs/r-popover-headline.cjs.entry.js +2 -2
  31. package/dist/cjs/r-popover-trigger.cjs.entry.js +2 -2
  32. package/dist/cjs/r-popover.cjs.entry.js +46 -5
  33. package/dist/cjs/r-progress-bar.cjs.entry.js +2 -2
  34. package/dist/cjs/r-radio-button-description.cjs.entry.js +2 -2
  35. package/dist/cjs/r-radio-button-leading.cjs.entry.js +2 -2
  36. package/dist/cjs/r-radio-button-title.cjs.entry.js +2 -2
  37. package/dist/cjs/r-radio-button-trailing.cjs.entry.js +2 -2
  38. package/dist/cjs/r-radio-button.cjs.entry.js +8 -7
  39. package/dist/cjs/r-radio-group.cjs.entry.js +83 -10
  40. package/dist/cjs/r-select-option.cjs.entry.js +2 -2
  41. package/dist/cjs/r-select.cjs.entry.js +6 -4
  42. package/dist/cjs/r-skip-link.cjs.entry.js +2 -2
  43. package/dist/cjs/r-stepper-item.cjs.entry.js +19 -4
  44. package/dist/cjs/r-stepper.cjs.entry.js +76 -3
  45. package/dist/cjs/r-tab-panel.cjs.entry.js +2 -2
  46. package/dist/cjs/r-tab.cjs.entry.js +7 -3
  47. package/dist/cjs/r-tabs-list.cjs.entry.js +161 -3
  48. package/dist/cjs/r-tabs.cjs.entry.js +35 -7
  49. package/dist/cjs/r-textarea.cjs.entry.js +2 -2
  50. package/dist/cjs/r-toast-group.cjs.entry.js +13 -4
  51. package/dist/cjs/r-toast.cjs.entry.js +104 -15
  52. package/dist/cjs/web-components.cjs.js +2 -2
  53. package/dist/collection/collection-manifest.json +1 -0
  54. package/dist/collection/components/alert/alert.css +6 -6
  55. package/dist/collection/components/alert/alert.js +7 -4
  56. package/dist/collection/components/button/button.js +30 -1
  57. package/dist/collection/components/button/exports.js +1 -0
  58. package/dist/collection/components/checkbox/checkbox.js +3 -3
  59. package/dist/collection/components/icon/exports.js +1 -1
  60. package/dist/collection/components/icon/icon.js +1 -1
  61. package/dist/collection/components/icon/riverty-kit.js +1 -1
  62. package/dist/collection/components/icon-button/icon-button.js +22 -3
  63. package/dist/collection/components/illustration/data.js +112 -0
  64. package/dist/collection/components/illustration/exports.js +3 -0
  65. package/dist/collection/components/illustration/illustration.js +540 -0
  66. package/dist/collection/components/illustration/illustration.scss +56 -0
  67. package/dist/collection/components/illustration/illustrations-ui-kit.js +2 -0
  68. package/dist/collection/components/input/exports.js +3 -0
  69. package/dist/collection/components/input/input.css +3 -0
  70. package/dist/collection/components/input/input.js +100 -3
  71. package/dist/collection/components/input-code/exports.js +2 -2
  72. package/dist/collection/components/input-code/input-code.css +6 -0
  73. package/dist/collection/components/input-code/input-code.js +54 -16
  74. package/dist/collection/components/input-date/input-date.js +6 -6
  75. package/dist/collection/components/input-password/input-password.js +2 -2
  76. package/dist/collection/components/input-phone-number/input-phone-number.js +3 -3
  77. package/dist/collection/components/label/label.js +2 -2
  78. package/dist/collection/components/list-item/list-item/list-item.css +46 -12
  79. package/dist/collection/components/list-item/list-item/list-item.js +34 -14
  80. package/dist/collection/components/pagination/pagination.css +33 -72
  81. package/dist/collection/components/pagination/pagination.js +194 -48
  82. package/dist/collection/components/panel/panel.css +40 -17
  83. package/dist/collection/components/panel/panel.js +6 -6
  84. package/dist/collection/components/popover/popover.css +0 -1
  85. package/dist/collection/components/popover/popover.js +44 -3
  86. package/dist/collection/components/popover-action/popover-action.js +1 -1
  87. package/dist/collection/components/popover-content/popover-content.js +1 -1
  88. package/dist/collection/components/popover-headline/popover-headline.js +1 -1
  89. package/dist/collection/components/popover-trigger/popover-trigger.js +1 -1
  90. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  91. package/dist/collection/components/radio-button/radio-button.js +7 -6
  92. package/dist/collection/components/radio-button-description/radio-button-description.js +1 -1
  93. package/dist/collection/components/radio-button-leading/radio-button-leading.js +1 -1
  94. package/dist/collection/components/radio-button-title/radio-button-title.js +1 -1
  95. package/dist/collection/components/radio-button-trailing/radio-button-trailing.js +1 -1
  96. package/dist/collection/components/radio-group/radio-group.css +4 -1
  97. package/dist/collection/components/radio-group/radio-group.js +100 -8
  98. package/dist/collection/components/select/select.js +5 -3
  99. package/dist/collection/components/select-option/select-option.js +1 -1
  100. package/dist/collection/components/skip-link/skip-link.js +1 -1
  101. package/dist/collection/components/stepper/stepper.css +5 -2
  102. package/dist/collection/components/stepper/stepper.js +125 -1
  103. package/dist/collection/components/stepper-item/stepper-item.css +25 -12
  104. package/dist/collection/components/stepper-item/stepper-item.js +36 -2
  105. package/dist/collection/components/tab/tab.css +29 -29
  106. package/dist/collection/components/tab/tab.js +5 -1
  107. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  108. package/dist/collection/components/tabs/tabs.js +34 -6
  109. package/dist/collection/components/tabs-list/exports.js +2 -0
  110. package/dist/collection/components/tabs-list/tabs-list.css +43 -2
  111. package/dist/collection/components/tabs-list/tabs-list.js +277 -1
  112. package/dist/collection/components/textarea/textarea.css +1 -1
  113. package/dist/collection/components/toast/toast.css +37 -11
  114. package/dist/collection/components/toast/toast.js +140 -18
  115. package/dist/collection/components/toast-group/toast-group.css +5 -11
  116. package/dist/collection/components/toast-group/toast-group.js +12 -3
  117. package/dist/collection/components/tooltip/tooltip.js +24 -4
  118. package/dist/esm/{index-Da7qOBFr.js → index-CTxpqopm.js} +9 -382
  119. package/dist/esm/loader.js +3 -3
  120. package/dist/esm/r-accordion-panel.entry.js +1 -1
  121. package/dist/esm/r-accordion-section.entry.js +1 -1
  122. package/dist/esm/r-accordion-trigger.entry.js +1 -1
  123. package/dist/esm/r-accordion.entry.js +1 -1
  124. package/dist/esm/r-alert.entry.js +9 -6
  125. package/dist/esm/r-badge.entry.js +1 -1
  126. package/dist/esm/r-button.entry.js +6 -2
  127. package/dist/esm/r-checkbox-group.entry.js +1 -1
  128. package/dist/esm/r-checkbox.entry.js +4 -4
  129. package/dist/esm/r-design-system-devtools.entry.js +1 -1
  130. package/dist/esm/r-dialog.entry.js +1 -1
  131. package/dist/esm/r-hint_2.entry.js +3 -3
  132. package/dist/esm/r-icon-button_2.entry.js +27 -7
  133. package/dist/esm/r-icon.entry.js +2 -2
  134. package/dist/esm/r-illustration.entry.js +394 -0
  135. package/dist/esm/r-input-code.entry.js +34 -12
  136. package/dist/esm/r-input-date.entry.js +7 -7
  137. package/dist/esm/r-input-password.entry.js +3 -3
  138. package/dist/esm/r-input-phone-number.entry.js +4 -4
  139. package/dist/esm/r-input.entry.js +8 -5
  140. package/dist/esm/r-list-item.entry.js +17 -16
  141. package/dist/esm/r-pagination.entry.js +56 -50
  142. package/dist/esm/r-panel.entry.js +6 -6
  143. package/dist/esm/r-popover-action.entry.js +2 -2
  144. package/dist/esm/r-popover-content.entry.js +2 -2
  145. package/dist/esm/r-popover-headline.entry.js +2 -2
  146. package/dist/esm/r-popover-trigger.entry.js +2 -2
  147. package/dist/esm/r-popover.entry.js +46 -5
  148. package/dist/esm/r-progress-bar.entry.js +2 -2
  149. package/dist/esm/r-radio-button-description.entry.js +2 -2
  150. package/dist/esm/r-radio-button-leading.entry.js +2 -2
  151. package/dist/esm/r-radio-button-title.entry.js +2 -2
  152. package/dist/esm/r-radio-button-trailing.entry.js +2 -2
  153. package/dist/esm/r-radio-button.entry.js +8 -7
  154. package/dist/esm/r-radio-group.entry.js +83 -10
  155. package/dist/esm/r-select-option.entry.js +2 -2
  156. package/dist/esm/r-select.entry.js +6 -4
  157. package/dist/esm/r-skip-link.entry.js +2 -2
  158. package/dist/esm/r-stepper-item.entry.js +19 -4
  159. package/dist/esm/r-stepper.entry.js +76 -3
  160. package/dist/esm/r-tab-panel.entry.js +2 -2
  161. package/dist/esm/r-tab.entry.js +7 -3
  162. package/dist/esm/r-tabs-list.entry.js +161 -3
  163. package/dist/esm/r-tabs.entry.js +35 -7
  164. package/dist/esm/r-textarea.entry.js +2 -2
  165. package/dist/esm/r-toast-group.entry.js +13 -4
  166. package/dist/esm/r-toast.entry.js +104 -15
  167. package/dist/esm/web-components.js +3 -3
  168. package/dist/types/components/alert/alert.d.ts +1 -0
  169. package/dist/types/components/button/button.d.ts +8 -1
  170. package/dist/types/components/button/exports.d.ts +2 -0
  171. package/dist/types/components/icon/{icon-data.d.ts → data.d.ts} +2 -1
  172. package/dist/types/components/icon/exports.d.ts +2 -1
  173. package/dist/types/components/icon/riverty-kit.d.ts +2 -1
  174. package/dist/types/components/icon-button/icon-button.d.ts +4 -0
  175. package/dist/types/components/illustration/data.d.ts +52 -0
  176. package/dist/types/components/illustration/exports.d.ts +23 -0
  177. package/dist/types/components/illustration/illustration.d.ts +51 -0
  178. package/dist/types/components/illustration/illustrations-ui-kit.d.ts +21 -0
  179. package/dist/types/components/input/exports.d.ts +6 -0
  180. package/dist/types/components/input/input.d.ts +31 -1
  181. package/dist/types/components/input-code/exports.d.ts +4 -4
  182. package/dist/types/components/input-code/input-code.d.ts +18 -4
  183. package/dist/types/components/list-item/list-item/list-item.d.ts +5 -3
  184. package/dist/types/components/pagination/pagination.d.ts +19 -0
  185. package/dist/types/components/popover/popover.d.ts +9 -0
  186. package/dist/types/components/radio-group/radio-group.d.ts +16 -0
  187. package/dist/types/components/stepper/stepper.d.ts +11 -0
  188. package/dist/types/components/stepper-item/stepper-item.d.ts +7 -0
  189. package/dist/types/components/tabs/tabs.d.ts +1 -0
  190. package/dist/types/components/tabs-list/exports.d.ts +4 -0
  191. package/dist/types/components/tabs-list/tabs-list.d.ts +38 -0
  192. package/dist/types/components/toast/toast.d.ts +20 -3
  193. package/dist/types/components/tooltip/tooltip.d.ts +5 -0
  194. package/dist/types/components.d.ts +360 -17
  195. package/dist/web-components/p-02b22f8e.entry.js +1 -0
  196. package/dist/web-components/{p-d054eb4d.entry.js → p-075a8dc8.entry.js} +1 -1
  197. package/dist/web-components/{p-8a66d20c.entry.js → p-0a34d33b.entry.js} +1 -1
  198. package/dist/web-components/{p-8c31cbd5.entry.js → p-10cc9983.entry.js} +1 -1
  199. package/dist/web-components/{p-d7726e46.entry.js → p-253068b9.entry.js} +1 -1
  200. package/dist/web-components/{p-3884c6e7.entry.js → p-3b8c8951.entry.js} +1 -1
  201. package/dist/web-components/{p-550e2237.entry.js → p-3beacdab.entry.js} +1 -1
  202. package/dist/web-components/{p-e2188953.entry.js → p-4214867d.entry.js} +1 -1
  203. package/dist/web-components/{p-3f60c6c0.entry.js → p-42c857e9.entry.js} +1 -1
  204. package/dist/web-components/{p-7fed6f4d.entry.js → p-44f87e16.entry.js} +1 -1
  205. package/dist/web-components/p-477614c5.entry.js +1 -0
  206. package/dist/web-components/{p-1da75540.entry.js → p-495ba3d2.entry.js} +1 -1
  207. package/dist/web-components/p-4de76291.entry.js +1 -0
  208. package/dist/web-components/{p-05738503.entry.js → p-55600d47.entry.js} +1 -1
  209. package/dist/web-components/p-562051aa.entry.js +1 -0
  210. package/dist/web-components/p-5b850e0f.entry.js +1 -0
  211. package/dist/web-components/p-6013dfc8.entry.js +1 -0
  212. package/dist/web-components/{p-6cc2ea2c.entry.js → p-62e7ae04.entry.js} +1 -1
  213. package/dist/web-components/p-71519d37.entry.js +1 -0
  214. package/dist/web-components/p-88f7b47f.entry.js +1 -0
  215. package/dist/web-components/p-8975a6a3.entry.js +1 -0
  216. package/dist/web-components/p-8e125826.entry.js +1 -0
  217. package/dist/web-components/p-91cc0bde.entry.js +1 -0
  218. package/dist/web-components/{p-0347feff.entry.js → p-93435fcd.entry.js} +1 -1
  219. package/dist/web-components/p-947969d7.entry.js +1 -0
  220. package/dist/web-components/p-95396b5c.entry.js +1 -0
  221. package/dist/web-components/p-9de3a1a5.entry.js +1 -0
  222. package/dist/web-components/p-9f583ed1.entry.js +1 -0
  223. package/dist/web-components/p-CTxpqopm.js +2 -0
  224. package/dist/web-components/{p-e5945c01.entry.js → p-a1086abe.entry.js} +1 -1
  225. package/dist/web-components/{p-f9d5004c.entry.js → p-bbba6d79.entry.js} +1 -1
  226. package/dist/web-components/{p-c478712b.entry.js → p-bde44ec4.entry.js} +1 -1
  227. package/dist/web-components/p-bfc7e6c0.entry.js +1 -0
  228. package/dist/web-components/p-c1030394.entry.js +1 -0
  229. package/dist/web-components/p-c1f59ed1.entry.js +1 -0
  230. package/dist/web-components/{p-26ef77d6.entry.js → p-c80a5541.entry.js} +1 -1
  231. package/dist/web-components/{p-9ef1bbee.entry.js → p-c96ee61a.entry.js} +1 -1
  232. package/dist/web-components/{p-8dac326b.entry.js → p-caf8f067.entry.js} +1 -1
  233. package/dist/web-components/p-cc363c3d.entry.js +1 -0
  234. package/dist/web-components/p-cf4ff357.entry.js +1 -0
  235. package/dist/web-components/p-d0310ed4.entry.js +1 -0
  236. package/dist/web-components/p-d1412932.entry.js +1 -0
  237. package/dist/web-components/{p-62b788bf.entry.js → p-d2447e30.entry.js} +1 -1
  238. package/dist/web-components/p-dc9cca06.entry.js +1 -0
  239. package/dist/web-components/p-e5b943a2.entry.js +1 -0
  240. package/dist/web-components/{p-4cc58c6a.entry.js → p-e67b13df.entry.js} +1 -1
  241. package/dist/web-components/p-efec231a.entry.js +1 -0
  242. package/dist/web-components/{p-4595fa8e.entry.js → p-f867e4c3.entry.js} +1 -1
  243. package/dist/web-components/web-components.esm.js +1 -1
  244. package/package.json +5 -2
  245. package/dist/collection/components/icon/bundled-icons/all-kit.json +0 -1
  246. package/dist/collection/components/icon/bundled-icons/riverty-kit.json +0 -1
  247. package/dist/web-components/bundled-icons/all-kit.json +0 -1
  248. package/dist/web-components/bundled-icons/riverty-kit.json +0 -1
  249. package/dist/web-components/p-0e4c8bf1.entry.js +0 -1
  250. package/dist/web-components/p-3a5a67e7.entry.js +0 -1
  251. package/dist/web-components/p-4254a383.entry.js +0 -1
  252. package/dist/web-components/p-5441b746.entry.js +0 -1
  253. package/dist/web-components/p-589baaf9.entry.js +0 -1
  254. package/dist/web-components/p-60341de2.entry.js +0 -1
  255. package/dist/web-components/p-60ca994e.entry.js +0 -1
  256. package/dist/web-components/p-6303b9fe.entry.js +0 -1
  257. package/dist/web-components/p-63fd817d.entry.js +0 -1
  258. package/dist/web-components/p-673dbfd0.entry.js +0 -1
  259. package/dist/web-components/p-67fa3f84.entry.js +0 -1
  260. package/dist/web-components/p-6a4f3836.entry.js +0 -1
  261. package/dist/web-components/p-70784685.entry.js +0 -1
  262. package/dist/web-components/p-8b4d2448.entry.js +0 -1
  263. package/dist/web-components/p-Da7qOBFr.js +0 -2
  264. package/dist/web-components/p-a0dbde7c.entry.js +0 -1
  265. package/dist/web-components/p-a71485d8.entry.js +0 -1
  266. package/dist/web-components/p-a7d22c76.entry.js +0 -1
  267. package/dist/web-components/p-ae251d2f.entry.js +0 -1
  268. package/dist/web-components/p-b98ab649.entry.js +0 -1
  269. package/dist/web-components/p-b9e3b3d6.entry.js +0 -1
  270. package/dist/web-components/p-c1e748f2.entry.js +0 -1
  271. package/dist/web-components/p-d433a828.entry.js +0 -1
  272. package/dist/web-components/p-d819c8e5.entry.js +0 -1
  273. package/dist/web-components/p-f7adb875.entry.js +0 -1
  274. /package/dist/collection/components/icon/{icon-data.js → data.js} +0 -0
@@ -60,12 +60,17 @@ export class Popover {
60
60
  this.isOpen = false;
61
61
  requestAnimationFrame(() => {
62
62
  this.setBlur();
63
- this.triggerElement.focus();
63
+ const interactiveElement = this.getInteractiveElement(this.activeElement || this.triggerElement);
64
+ interactiveElement === null || interactiveElement === void 0 ? void 0 : interactiveElement.focus();
64
65
  });
65
66
  };
66
67
  this.onClickDismiss = () => {
67
68
  this.hide();
68
69
  };
70
+ this.updateTriggerAttributes = () => {
71
+ const interactiveElement = this.getInteractiveElement(this.activeElement);
72
+ interactiveElement === null || interactiveElement === void 0 ? void 0 : interactiveElement.setAttribute('aria-expanded', `${this.isOpen}`);
73
+ };
69
74
  this.onKeyDown = async (event) => {
70
75
  if (event.key === 'Tab') {
71
76
  event.preventDefault();
@@ -165,6 +170,7 @@ export class Popover {
165
170
  (_h = (_g = this.hidePopover) === null || _g === void 0 ? void 0 : _g.emit) === null || _h === void 0 ? void 0 : _h.call(_g);
166
171
  }
167
172
  (_k = (_j = this.popoverOpenChange) === null || _j === void 0 ? void 0 : _j.emit) === null || _k === void 0 ? void 0 : _k.call(_j);
173
+ this.updateTriggerAttributes();
168
174
  }
169
175
  handlePreferredPositionChange() {
170
176
  this.renderPosition();
@@ -194,6 +200,30 @@ export class Popover {
194
200
  var _a;
195
201
  return (_a = this.boardElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
196
202
  }
203
+ get activeElement() {
204
+ var _a;
205
+ return (_a = this.host.querySelector('r-popover-trigger')) === null || _a === void 0 ? void 0 : _a.querySelector('r-button, r-icon-button, a, button, [tabindex]:not([tabindex="-1"])');
206
+ }
207
+ get headlineSlotContent() {
208
+ var _a;
209
+ const el = this.host.querySelector('[slot="headline"]');
210
+ return (_a = el === null || el === void 0 ? void 0 : el.textContent) === null || _a === void 0 ? void 0 : _a.trim();
211
+ }
212
+ /**
213
+ * Gets the actual interactive element (button/link) from within r-button or r-icon-button shadow DOM,
214
+ * or returns the element itself if it's already interactive
215
+ */
216
+ getInteractiveElement(element) {
217
+ if (!element)
218
+ return null;
219
+ if (element.tagName === 'R-BUTTON' || element.tagName === 'R-ICON-BUTTON') {
220
+ const shadowRoot = element.shadowRoot;
221
+ if (shadowRoot) {
222
+ return shadowRoot.querySelector('button, a');
223
+ }
224
+ }
225
+ return element;
226
+ }
197
227
  /** Position logic */
198
228
  renderPosition() {
199
229
  if (!this.triggerRect)
@@ -276,12 +306,23 @@ export class Popover {
276
306
  this.host.setAttribute('data-horizontal', horizontalPosition);
277
307
  return this;
278
308
  }
309
+ setTriggerInitialAttributes() {
310
+ const interactiveElement = this.getInteractiveElement(this.activeElement);
311
+ interactiveElement === null || interactiveElement === void 0 ? void 0 : interactiveElement.setAttribute('aria-haspopup', 'dialog');
312
+ interactiveElement === null || interactiveElement === void 0 ? void 0 : interactiveElement.setAttribute('aria-expanded', `${this.isOpen}`);
313
+ }
279
314
  componentDidLoad() {
315
+ var _a;
280
316
  this.open ? this.show() : this.hide();
317
+ this.setTriggerInitialAttributes();
318
+ (_a = this.activeElement) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {
319
+ this.toggle();
320
+ });
281
321
  }
282
322
  render() {
283
- return (h(Host, { key: '13318df823b3f54e05823c9fc9821839f56583b2', id: this.uniqueId, "data-position": this.positionState, "data-open": `${this.isOpen}`, open: this.isOpen }, h("div", { key: '3f750ac2a82236f6a4074fa419b44f0c42f2b7e6', class: "r-popover" }, h("button", { key: '46e4bb247c2eda0e0cc0c4774acac6daf8801bc4', class: "r-popover--trigger", "aria-label": this.triggerAriaLabel, ref: el => this.triggerElement = el, popoverTarget: `${this.uniqueId}-board`, popoverTargetAction: this.triggerAction }, h("slot", { key: 'fac2e6d0ee9ac8830df16d379a0ec5e873becd58', name: "trigger" })), h("div", { key: '636c2ee45476903dc8b812924081f3b45499b18a', class: "r-popover--board", id: `${this.uniqueId}-board`, popover: this.dismissMode, ref: el => this.boardElement = el, onToggle: this.onToggle, onKeyDown: this.onKeyDown }, this.hasDismiss &&
284
- h("r-icon-button", { key: '4f6a1168587faf500cddb85981f0dd7209af4020', ref: el => this.dismissElement = el, class: "r-popover--dismiss", name: "cross", onClick: this.onClickDismiss, label: this.dismissAriaLabel }), h("div", { key: 'bfa17c2df8022a01192550c315ba32e3a5247e3f', class: "r-popover--board-content" }, h("slot", { key: '001d74737028aee0d413e9ed679ff853070d5559', name: "headline" }), h("slot", { key: '9a33119f2e2f6bf10f0005f83283a1e964332583', name: "content" }), h("slot", { key: '2ff477aed3ef83d6bfff4fb3fdaeb3501dfba7c7', name: "action" })), h("div", { key: '6c0b891bc2e9def0892f65fe8882deef565b2037', class: "r-popover--board-pointer", "aria-hidden": "true" }, h("svg", { key: 'e9da72e80bb395041f4a9cc269cf835b643a335c', width: "16", height: "8", viewBox: "0 0 16 8", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '44eb8e0fa2c3d294074787595097fcdf82311052', d: "M8 8L0 0L16 0L8 8Z", fill: "currentColor" })))))));
323
+ const TAG = !this.activeElement ? 'button' : 'div';
324
+ return (h(Host, { key: 'f836d35a44519d273dc399d0ae6142f17e78888e', id: this.uniqueId, "data-position": this.positionState, "data-open": `${this.isOpen}`, open: this.isOpen }, h("div", { key: '88146350c8695487a18028a20bf1313052b35870', class: "r-popover" }, h(TAG, { key: 'de1a53f1f921acc223ebd0276b46e43832e5a82f', class: "r-popover--trigger", "aria-label": !this.activeElement ? this.triggerAriaLabel : null, ref: el => this.triggerElement = el, "aria-haspopup": "dialog", popoverTarget: !this.activeElement ? `${this.uniqueId}-board` : null, popoverTargetAction: !this.activeElement ? this.triggerAction : null }, h("slot", { key: '2946f68024273f6b7bbb250faca7794eb712cc58', name: "trigger" })), h("div", { key: 'cf44066fb1ec34178d73b812f5bcca3b1977575d', class: "r-popover--board", id: `${this.uniqueId}-board`, role: "dialog", "aria-label": this.headlineSlotContent, popover: this.dismissMode, ref: el => this.boardElement = el, onToggle: this.onToggle, onKeyDown: this.onKeyDown }, this.hasDismiss &&
325
+ h("r-icon-button", { key: '41e3e2bef98b88328984233271e7378a767eaf76', ref: el => this.dismissElement = el, class: "r-popover--dismiss", name: "cross", onClick: this.onClickDismiss, label: this.dismissAriaLabel }), h("div", { key: '9d47e8f5e2cb4d27118b64cfcf3eb83dd7d84ff0', class: "r-popover--board-content" }, h("slot", { key: '68f384a418a32a14b01adb7e3d407e4e46f8ca95', name: "headline" }), h("slot", { key: '3536f9f3aa738919115c1ad017cd0f66438fb044', name: "content" }), h("slot", { key: '4ecbf5d23cb23f9adaade04f3694a6d17f773365', name: "action" })), h("div", { key: '1c3acee058d689e106b9fca008d77229d52b2aea', class: "r-popover--board-pointer", "aria-hidden": "true" }, h("svg", { key: 'bb211b28714acc84753bbaaafee1ab1624d51b6c', width: "16", height: "8", viewBox: "0 0 16 8", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '0ad29cb4ef8d2d7f62738af3b1749c5b5e007d87', d: "M8 8L0 0L16 0L8 8Z", fill: "currentColor" })))))));
285
326
  }
286
327
  static get is() { return "r-popover"; }
287
328
  static get encapsulation() { return "shadow"; }
@@ -64,7 +64,7 @@ export class PopoverAction {
64
64
  return focusableElements(this.host);
65
65
  }
66
66
  render() {
67
- return (h(Host, { key: '898d4a649622403956b34ea5065ca5135e67c595', slot: "action" }, h("slot", { key: 'f61e085a1797778c33f07eaf3987cd743d56a662', onSlotchange: this.handleSlotChange })));
67
+ return (h(Host, { key: '8e0de158033b48c66aa49930911e1f383c2010ae', slot: "action" }, h("slot", { key: 'b9c762d2c1774600a29306559253125abc21cbcd', onSlotchange: this.handleSlotChange })));
68
68
  }
69
69
  static get is() { return "r-popover-action"; }
70
70
  static get encapsulation() { return "shadow"; }
@@ -44,7 +44,7 @@ export class PopoverContent {
44
44
  return focusableElements(this.host);
45
45
  }
46
46
  render() {
47
- return (h(Host, { key: 'b85780e40b627c6d859af763113bc88e21768f88', slot: "content", class: "r-typography" }, h("slot", { key: '7bd5e6152e29a4e20d837c21e1df7bff68a673da' })));
47
+ return (h(Host, { key: 'f05a31b3948094f5f7ca657f4bd81474af2fcb6e', slot: "content", class: "r-typography" }, h("slot", { key: '0ecbe8de6c0ec200499aead61fc883804c4c4dd7' })));
48
48
  }
49
49
  static get is() { return "r-popover-content"; }
50
50
  static get encapsulation() { return "shadow"; }
@@ -10,7 +10,7 @@ export class PopoverHeadline {
10
10
  stopInverseThemeAwareness(this.host, themeContextElement);
11
11
  }
12
12
  render() {
13
- return (h(Host, { key: '6b604401e4e82c17a300f00d6af33902b38f493c', slot: "headline" }, h("slot", { key: '64c8c6ff661e0317ba3ae0d4f32f6424d91fccbe' })));
13
+ return (h(Host, { key: '21f1656241f40201d5eb98cfb454d9c509f6cfe1', slot: "headline" }, h("slot", { key: 'fa9861bd13bcb23b420c5b5aa085ba6ceecb3df4' })));
14
14
  }
15
15
  static get is() { return "r-popover-headline"; }
16
16
  static get encapsulation() { return "shadow"; }
@@ -53,7 +53,7 @@ export class PopoverTrigger {
53
53
  (_a = this.activeElement) === null || _a === void 0 ? void 0 : _a.blur();
54
54
  }
55
55
  render() {
56
- return (h(Host, { key: 'fe285ee3a91600ee0e0cebeb9f5818eb30d89f06', slot: "trigger", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("slot", { key: '3782871f7aac634d3c1ccef2f516cdf00916b4f6' })));
56
+ return (h(Host, { key: '313cccef6d7f463a6088581b2efc3057a97d61b2', slot: "trigger", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("slot", { key: '65ff3ba6c677c693445c0c82feae795a94768cf8' })));
57
57
  }
58
58
  static get is() { return "r-popover-trigger"; }
59
59
  static get encapsulation() { return "shadow"; }
@@ -11,7 +11,7 @@ export class ProgressBar {
11
11
  max: '100',
12
12
  'aria-label': rAriaLabel
13
13
  };
14
- return (h(Host, { key: 'f79c73155a42eef63910abde1fc2cebd147b7129' }, h("progress", Object.assign({ key: 'ce94e9a20124fa8cd1561612e2797e17f0ebe19f' }, progressBarAttrs, { class: "r-progress-bar" }))));
14
+ return (h(Host, { key: '8d8307ebac0b8a231569bd86c35175d9f11e14ac' }, h("progress", Object.assign({ key: '631b8ecaaca4fde5c14ddabb74ff076610557832' }, progressBarAttrs, { class: "r-progress-bar" }))));
15
15
  }
16
16
  static get is() { return "r-progress-bar"; }
17
17
  static get encapsulation() { return "shadow"; }
@@ -64,7 +64,8 @@ export class RadioButton {
64
64
  /** Reference to the radio button elements */
65
65
  get radioElements() {
66
66
  if (this.groupEl) {
67
- return this.groupEl.querySelectorAll(`r-radio-button`);
67
+ // Use :scope > to only select direct children, excluding nested radio-group buttons
68
+ return this.groupEl.querySelectorAll(`:scope > r-radio-button`);
68
69
  }
69
70
  if (this.parentFormEl) {
70
71
  return this.parentFormEl.querySelectorAll(`r-radio-button[name=${this.name}]`);
@@ -117,11 +118,11 @@ export class RadioButton {
117
118
  required,
118
119
  autofocus
119
120
  };
120
- return (h(Host, { key: '718b29840798212b4a31a2250fe79620554a9fb5' }, h("label", { key: 'ab86d4ca9bb300628a5b7f4bf10ba2ce88656d6d', class: "r-radio-button", onClick: this.onClick, onKeyDown: this.onKeydown }, h("input", Object.assign({ key: '529324a5ae32238b56ab9443a9ba3dd67b9b76bd' }, inputAttrs, { id: `${uniqueId}-input`, class: "r-radio-button--input", ref: el => this.nativeEl = el, onFocus: this.onFocus, onBlur: this.onBlur })), h("span", { key: 'a90a3704b4fc2d431482cca0c4064241001e09d2', class: "r-radio-button--box" }), this.isLeading &&
121
- h("div", { key: '8a067dc10dc0f764c507be6610a8bf6f80565f8b', class: "r-radio-button--leading" }, h("slot", { key: 'db99a204cdf0932b203a65698f6167ede11309c4', name: "leading" }, this.icon && h("r-icon", { key: '8f6b1c585e0dcfcee9bb471e59f4d911ff72e7bc', name: this.icon, size: "m" }))), h("div", { key: 'b2ec0c20df6bffa599c5331016f3c52ce5661a17', class: "r-radio-button--text" }, h("slot", { key: '82ed5be7758c72ece18d4df27c0dbeb7e00ab1fc', name: "title" }, h("div", { key: '9c839853016eb5e7a3940bea0f9c5c755933ae55', style: { display: 'contents' } }, h("slot", { key: '78875045c000e5dcd0375fe2143e3032bf3a5226' }))), h("slot", { key: 'd75f2511dc33c734eb34c0d8953ed5be2f4cb7ea', name: "description" }, this.description)), this.isTrailing &&
122
- h("div", { key: 'fd204a1c99ac54d60fc4479de3ca650d8ecf6508', class: "r-radio-button--trailing" }, h("slot", { key: '9a82590bc860567d1a60f9125622b1e63471ad94', name: "trailing" }))), invalid && error &&
123
- h("r-hint", { key: '1fc760af1aff4ca5aaa595270c294b492fdb14e3', role: "alert", variant: "error", id: `${uniqueId}-hint` }, this.error), hint &&
124
- h("r-hint", { key: '079a060908d285505f7093820933c173194f2348', role: "note", variant: "information", id: `${uniqueId}-hint` }, hint)));
121
+ return (h(Host, { key: 'cf6b1b5db202773a2c6eea4df6a9303275054a73' }, h("label", { key: '4e203583a2b779e239c2893eadccc3514f84b0c4', class: "r-radio-button", onClick: this.onClick, onKeyDown: this.onKeydown }, h("input", Object.assign({ key: '14e89b050928abd51b66e8637c39bbd8da8e9856' }, inputAttrs, { id: `${uniqueId}-input`, class: "r-radio-button--input", ref: el => this.nativeEl = el, onFocus: this.onFocus, onBlur: this.onBlur })), h("span", { key: 'ee55afd60c5dbb947e9c12fffc401f7acfcefada', class: "r-radio-button--box" }), this.isLeading &&
122
+ h("div", { key: 'eabd27b399dee0bc2cef0fb7a92adad55095708b', class: "r-radio-button--leading" }, h("slot", { key: '5ec99653141268456cf9c8b2398f70c7b1afd36d', name: "leading" }, this.icon && h("r-icon", { key: '47662e84ad1aac02e867ddd040b5b7e1890ba986', name: this.icon, size: "m" }))), h("div", { key: 'bcaaf67c6cdf95a0bfa0dd5784d69c237e551a0e', class: "r-radio-button--text" }, h("slot", { key: 'a54f1823afe368d85f9bd4743ac0aa1df7298049', name: "title" }, h("div", { key: 'b531b659b920d7f064f10e622b83099d14270935', style: { display: 'contents' } }, h("slot", { key: 'b51f3e83234681804c49cb1043d90de70e4929db' }))), h("slot", { key: 'd217abfd3675898afd5b41a543200f7104019aed', name: "description" }, this.description)), this.isTrailing &&
123
+ h("div", { key: '664ddcc19dba3029343532caa13b05a6e3834977', class: "r-radio-button--trailing" }, h("slot", { key: 'b4ec626236a01c9c74b20ae09194ea414bc7699c', name: "trailing" }))), invalid && error &&
124
+ h("r-hint", { key: 'bd60d4337984662f410613b470b6e3be695343f5', role: "alert", variant: "error", id: `${uniqueId}-hint` }, this.error), hint &&
125
+ h("r-hint", { key: '31c5712fe6f2164219e28484a40ce5452a836743', role: "note", variant: "information", id: `${uniqueId}-hint` }, hint)));
125
126
  }
126
127
  static get is() { return "r-radio-button"; }
127
128
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ import { Host, h } from "@stencil/core";
4
4
  */
5
5
  export class RadioButtonDescription {
6
6
  render() {
7
- return (h(Host, { key: 'cd678f2b6c1e00e95ecfc56b1e460b3b3ab37597', slot: "description" }, h("div", { key: 'a19901417798ef6dacd6ad82c9eab7e2a8227cd5', class: "r-radio-button-description", style: { display: 'contents' } }, h("slot", { key: 'ba9308abf507f84affb24bb7eb8a43c8da4fd613' }))));
7
+ return (h(Host, { key: '0cc8dafb54d3b65f6c3af977bde4019ac413042d', slot: "description" }, h("div", { key: '7347ec0238fbf3c8471cdcf6fb3cf303a0f9c4e7', class: "r-radio-button-description", style: { display: 'contents' } }, h("slot", { key: '940714dd9b350c10b47486454139506d38fa0366' }))));
8
8
  }
9
9
  static get is() { return "r-radio-button-description"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ import { Host, h } from "@stencil/core";
4
4
  */
5
5
  export class RadioButtonLeading {
6
6
  render() {
7
- return (h(Host, { key: '272870387e6e1abe3db2a67a38cfcd502a0e5aac', slot: "leading" }, h("div", { key: '7fd29eb8b31cda51e7a3bebebf8d80c7b0a79622', class: "r-radio-button-leading", style: { display: 'contents' } }, h("slot", { key: '542afc33263c2f06007b1c50225457af3e1b9051' }))));
7
+ return (h(Host, { key: '2f4f3dae827959cebf6a5b5797d8942b6fbbeded', slot: "leading" }, h("div", { key: '6dfda6f9bf0c88056d3d46f095b1f30e615ac5d7', class: "r-radio-button-leading", style: { display: 'contents' } }, h("slot", { key: 'd909c93595d5f43ad3d8b93262134b52fbfde23c' }))));
8
8
  }
9
9
  static get is() { return "r-radio-button-leading"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ import { Host, h } from "@stencil/core";
4
4
  */
5
5
  export class RadioButtonTitle {
6
6
  render() {
7
- return (h(Host, { key: '705ecfa00df2a6e5f1976e1e45dca02c2d63d0fb', slot: "title" }, h("div", { key: '9845596a7638b53995157c26ee89be55677ff2e9', class: "r-radio-button-title", style: { display: 'contents' } }, h("slot", { key: '5ec9a59d7d71f976513dddb471676d640e13e239' }))));
7
+ return (h(Host, { key: '2d2ae73f63409f55e0d5920c351cfed20d3b69d9', slot: "title" }, h("div", { key: '8f0ed8680798a41ddf827e74b245e43464f51eb0', class: "r-radio-button-title", style: { display: 'contents' } }, h("slot", { key: '336df52466bdad5baa93b1ed6abb192bee958e30' }))));
8
8
  }
9
9
  static get is() { return "r-radio-button-title"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -4,7 +4,7 @@ import { Host, h } from "@stencil/core";
4
4
  */
5
5
  export class RadioButtonTrailing {
6
6
  render() {
7
- return (h(Host, { key: '844ad8251f30a4b0b6e700d0864798957e53750b', slot: "trailing" }, h("div", { key: '26a3458b5a448a9d8a687081325a5aa93c83e512', class: "r-radio-button-trailing", style: { display: 'contents' } }, h("slot", { key: 'fc1634011f555127d3281351a8ba9d7fdc1a7a38' }))));
7
+ return (h(Host, { key: '628b87d2952aad3e25f8fd6b0b61c6db06a15959', slot: "trailing" }, h("div", { key: '93d2888f3e10e6346fda143ba8d0757d2913a503', class: "r-radio-button-trailing", style: { display: 'contents' } }, h("slot", { key: '5929143a1c1b54e9e3f082dd54c2e1376a80dece' }))));
8
8
  }
9
9
  static get is() { return "r-radio-button-trailing"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -32,6 +32,9 @@
32
32
  :host .r-radio-group {
33
33
  display: var(--r-radio-group--display, flex);
34
34
  flex-direction: var(--r-radio-group--flex-direction, column);
35
+ padding: var(--r-radio-group--padding, 0);
36
+ margin: var(--r-radio-group--margin, 0);
37
+ border: var(--r-radio-group--border, none);
35
38
  }
36
39
  :host .r-radio-group--label-container {
37
40
  display: var(--r-radio-group--label-container--display, flex);
@@ -57,6 +60,6 @@
57
60
  flex-wrap: var(--r-radio-group--content--flex-wrap, nowrap);
58
61
  gap: var(--r-radio-group--content--gap, var(--r-spacing-050, 0.5rem));
59
62
  }
60
- :host .r-radio-group + r-hint {
63
+ :host .r-radio-group + .r-radio-group--message r-hint {
61
64
  margin-top: var(--r-radio-group--hint--margin-top, var(--r-spacing-050, 0.5rem));
62
65
  }
@@ -71,8 +71,36 @@ export class RadioGroup {
71
71
  this.contributeToFormData = (event) => {
72
72
  appendControlToFormData(this.host, event.formData);
73
73
  };
74
+ /**
75
+ * Handles parent radio group value changes for nested groups.
76
+ * If this is a nested group with a parentValue specified, it will reset when
77
+ * the parent group's value changes to something other than the parentValue.
78
+ */
79
+ this.onParentGroupChange = (event) => {
80
+ // Only proceed if this group has a parentValue specified (indicating it's nested)
81
+ if (!this.parentValue)
82
+ return;
83
+ const parentNewValue = event.detail.value;
84
+ // If parent changed to a different value than our parentValue, reset this nested group
85
+ if (parentNewValue !== this.parentValue) {
86
+ this.clearValue();
87
+ // Emit rReset event to notify that the nested group was automatically reset
88
+ this.rReset.emit({
89
+ element: this.host,
90
+ value: null
91
+ });
92
+ }
93
+ };
74
94
  }
75
95
  rChangeAction(event) {
96
+ // Only handle events from direct children, not from nested radio-groups
97
+ const targetElement = event.target;
98
+ const isDirectChild = targetElement.parentElement === this.host;
99
+ if (!isDirectChild) {
100
+ return; // Ignore events from nested radio-groups
101
+ }
102
+ // Stop event from bubbling to parent radio-groups
103
+ event.stopPropagation();
76
104
  this.resetValidity();
77
105
  this.setValue(event.detail.value);
78
106
  }
@@ -82,6 +110,14 @@ export class RadioGroup {
82
110
  * to their initial values.
83
111
  */
84
112
  radioButtonClickAction(event) {
113
+ // Only handle events from direct children, not from nested radio-groups
114
+ const targetElement = event.target;
115
+ const isDirectChild = targetElement.parentElement === this.host;
116
+ if (!isDirectChild) {
117
+ return; // Ignore events from nested radio-groups
118
+ }
119
+ // Stop event from bubbling to parent radio-groups
120
+ event.stopPropagation();
85
121
  !event.target.disabled && event.target.select();
86
122
  }
87
123
  get selectedIndex() {
@@ -93,6 +129,7 @@ export class RadioGroup {
93
129
  return isnativeFirstElement || isNoSelected ? this.radioButtonElements.length - 1 : this.selectedIndex - 1;
94
130
  }
95
131
  get focusedRadioButtonEl() {
132
+ // Query all descendants to find focused element, but it will only be used for direct children
96
133
  return this.host.querySelector('r-radio-button.focused');
97
134
  }
98
135
  get focusedRadioButtonElIndex() {
@@ -108,6 +145,14 @@ export class RadioGroup {
108
145
  }
109
146
  radioButtonKeydownAction(event) {
110
147
  var _a;
148
+ // Only handle events from direct children, not from nested radio-groups
149
+ const targetElement = event.target;
150
+ const isDirectChild = targetElement.parentElement === this.host;
151
+ if (!isDirectChild) {
152
+ return; // Ignore events from nested radio-groups
153
+ }
154
+ // Stop event from bubbling to parent radio-groups
155
+ event.stopPropagation();
111
156
  switch (event.detail.code) {
112
157
  case 'ArrowUp':
113
158
  case 'ArrowLeft':
@@ -254,7 +299,8 @@ export class RadioGroup {
254
299
  return this.host.closest('form') || document.querySelector(`#${this.form}`) || null;
255
300
  }
256
301
  get radioButtonElements() {
257
- return this.host.querySelectorAll('r-radio-button:not([disabled]:not([disabled="false"]))');
302
+ // Use :scope > to only select direct children, excluding nested radio-group buttons
303
+ return this.host.querySelectorAll(':scope > r-radio-button:not([disabled]:not([disabled="false"]))');
258
304
  }
259
305
  get selectedRadioButtonElement() {
260
306
  return Array.from(this.radioButtonElements).find(el => el.checked || el.hasAttribute('checked')) || null;
@@ -292,6 +338,11 @@ export class RadioGroup {
292
338
  const el = this.nativeSelectedEl || this.nativeFirstEl;
293
339
  el === null || el === void 0 ? void 0 : el.setAttribute('tabindex', '0');
294
340
  }
341
+ get parentRadioGroup() {
342
+ var _a;
343
+ // Find the parent radio group element
344
+ return ((_a = this.host.parentElement) === null || _a === void 0 ? void 0 : _a.closest('r-radio-group')) || null;
345
+ }
295
346
  connectFormEventListeners() {
296
347
  var _a, _b, _c;
297
348
  (_a = this.parentFormEl) === null || _a === void 0 ? void 0 : _a.addEventListener('formdata', this.contributeToFormData);
@@ -304,11 +355,28 @@ export class RadioGroup {
304
355
  (_b = this.parentFormEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('reset', this.onResetForm);
305
356
  (_c = this.parentFormEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('submit', this.onSubmitForm);
306
357
  }
358
+ connectParentGroupListener() {
359
+ // Only connect if this is a nested group (has parentValue specified)
360
+ if (this.parentValue && this.parentRadioGroup) {
361
+ this.parentRadioGroup.addEventListener('rChange', this.onParentGroupChange);
362
+ }
363
+ }
364
+ disconnectParentGroupListener() {
365
+ if (this.parentValue && this.parentRadioGroup) {
366
+ this.parentRadioGroup.removeEventListener('rChange', this.onParentGroupChange);
367
+ }
368
+ }
369
+ get ariaDescribedBy() {
370
+ const messageId = `${this.uniqueId}-message`;
371
+ return this.hint ? `${this.uniqueId}-hint ${messageId}` : messageId;
372
+ }
307
373
  connectedCallback() {
308
374
  this.connectFormEventListeners();
375
+ this.connectParentGroupListener();
309
376
  }
310
377
  disconnectedCallback() {
311
378
  this.disconnectFormEventListeners();
379
+ this.disconnectParentGroupListener();
312
380
  }
313
381
  componentWillLoad() {
314
382
  const { required, name } = this;
@@ -323,18 +391,23 @@ export class RadioGroup {
323
391
  this.passPropsToGroupItems({ name, required });
324
392
  this.setTabindex();
325
393
  if (this.autofocus) {
326
- queueMicrotask(() => {
394
+ // Use setTimeout to ensure setValue has completed and checked state is synced
395
+ setTimeout(() => {
327
396
  this.setFocus();
328
- });
397
+ }, 0);
329
398
  }
330
399
  }
331
400
  render() {
332
401
  const { label, hint, fieldIndicator, error, uniqueId, invalid } = this;
333
- return (h(Host, { key: '598a714f75ce283c76278d52fb7684c5818700f9' }, h("div", { key: '0c691e6738d11dcc8b621fe90b356980944ce5ec', class: "r-radio-group", onClick: this.onLabelClick }, label &&
334
- h("div", { key: '3071e2dedc5e9935bd6f80cc3e01883d8bffacc6', class: "r-radio-group--label-container" }, h("r-label", { key: '6175d4620468c3d2b06790baf11673c47e797bd7', id: `${uniqueId}-label`, class: "r-radio-group--label", "field-indicator": fieldIndicator }, label), h("slot", { key: '9c3595a94234b99bec2001c9667c53cd41d8fdde', name: "popover" })), hint &&
335
- h("r-hint", { key: '8d9ef5dbaacac8a9cae05a633c942c8009b3d686', id: `${uniqueId}-hint`, class: "r-radio-group--hint", role: "note" }, hint), h("div", { key: '9206c8f841cc20ee632f58da3775e1d967730c58', class: "r-radio-group--content" }, h("slot", { key: '1f7edd0e36e16956acf7dbe5dd17c16a43b39666' }))), invalid && error &&
336
- h("r-hint", { key: 'e4780947cede5a39e553d639eb37aeb842f1cda3', "aria-live": "polite", id: `${uniqueId}-message`, role: "alert", variant: "error" }, error), this.validityState !== 'valid' && this.validityMessage &&
337
- h("r-hint", { key: '4c9867129f7da323cc9e99b350332ac1d5740a0e', "aria-live": "polite", id: `${uniqueId}-message`, role: "alert", variant: "error" }, this.customErrorMessage || this.validityMessage)));
402
+ const fieldsetAttrs = {
403
+ 'aria-invalid': `${invalid || false}`,
404
+ 'aria-describedby': this.ariaDescribedBy
405
+ };
406
+ return (h(Host, { key: 'bd1b1d42f3efab78cf0a2cce7b1a1e2568f21765' }, h("fieldset", Object.assign({ key: 'c449667b014cf8aeea4176b0d94c82573b661182', class: "r-radio-group" }, fieldsetAttrs, { onClick: this.onLabelClick }), label &&
407
+ h("legend", { key: '212e27fd8d20b31cf6d84078870ec59796bb59c6', class: "r-radio-group--label-container" }, h("r-label", { key: '69907b0e2bdb49bcdea00d1849bc0c5c4d3404ae', id: `${uniqueId}-label`, class: "r-radio-group--label", "field-indicator": fieldIndicator }, label), h("slot", { key: 'd208c147248154ba26ecc5b412233d2cf479bb68', name: "popover" })), hint &&
408
+ h("r-hint", { key: 'b409e053226d88ac3619524b2d63864b49972985', id: `${uniqueId}-hint`, class: "r-radio-group--hint", role: "note" }, hint), h("div", { key: 'c8e98214e9b14f6fdcf97677b392abd14d653a56', class: "r-radio-group--content" }, h("slot", { key: '5e4aa07801e8f1bd7ec3262511d28f553d8740a7' })), h("div", { key: 'a576e8c91d33877eb677d5551ac18d10924586fd', id: `${uniqueId}-message`, "aria-live": "polite", role: "alert", class: "r-radio-group--message" }, invalid && error &&
409
+ h("r-hint", { key: '98f7fa6855c0803ae5d31a3a248c146679204af9', variant: "error" }, error), this.validityState !== 'valid' && this.validityMessage &&
410
+ h("r-hint", { key: 'de1997af842a7e5fdb887a830fd0fe701e4fa5ce', variant: "error" }, this.customErrorMessage || this.validityMessage)))));
338
411
  }
339
412
  static get is() { return "r-radio-group"; }
340
413
  static get encapsulation() { return "shadow"; }
@@ -642,6 +715,25 @@ export class RadioGroup {
642
715
  "setter": false,
643
716
  "reflect": false,
644
717
  "defaultValue": "false"
718
+ },
719
+ "parentValue": {
720
+ "type": "string",
721
+ "attribute": "parent-value",
722
+ "mutable": false,
723
+ "complexType": {
724
+ "original": "string",
725
+ "resolved": "string",
726
+ "references": {}
727
+ },
728
+ "required": false,
729
+ "optional": true,
730
+ "docs": {
731
+ "tags": [],
732
+ "text": "For nested radio groups: specifies the parent radio button value that this nested group belongs to.\nWhen the parent group's value changes to a different value, this nested group will be automatically reset.\nThis ensures nested selections are only maintained when their parent context is active."
733
+ },
734
+ "getter": false,
735
+ "setter": false,
736
+ "reflect": false
645
737
  }
646
738
  };
647
739
  }
@@ -445,7 +445,9 @@ export class Select {
445
445
  if (!this.isExpanded)
446
446
  return;
447
447
  e.stopPropagation();
448
- if (!this.host.contains(e.target)) {
448
+ const path = e.composedPath ? e.composedPath() : [];
449
+ const isInsideSelect = path.includes(this.host);
450
+ if (!isInsideSelect) {
449
451
  this.collapse();
450
452
  this.reportValidity();
451
453
  }
@@ -1080,8 +1082,8 @@ export class Select {
1080
1082
  disabled,
1081
1083
  required: isRequired
1082
1084
  };
1083
- return (h(Host, { key: '7f1fb8ee95b7da1cd7aad0d212d1efa9da744dc2', "data-value": this.currentValue, expanded: !this.disabled && this.isExpanded, "data-listbox-position": this.listboxPositionState, "data-initial-value": this.initial['value'], "data-is-placeholder": `${!!this.isPlaceholder}`, "data-value-focused": `${!!this.isValueFocused}`, "data-option-focused": `${!!this.focusedOption}`, "data-validity-state": `${this.validityState || ''}`, "data-validity-message": `${this.validityMessage || ''}`, "data-readonly": `${!!this.isReadonly}`, "data-touched": `${this.touched}`, "data-dirty": `${this.dirty}` }, h("div", { key: 'cb2a21da12f1f1c0dc298f42338d32b709f62375', class: `r-select--label ${!internal ? 'r-select--label__margin-bottom' : ''}` }, h("div", { key: 'd293ba41b9846d24ba4a2c44fb8fcb9895637c03', class: internal ? 'visually-hidden' : 'r-select--label-container' }, h("label", { key: 'b562d22174f435deed545a94d0fd7ce0233ba3de', id: `${uniqueId}-label`, onClick: this.isInteractive ? this.onValueClick : null }, h("r-label", Object.assign({ key: '2412f39f04b62a1fac018b588fb463efc9760ae0' }, labelAttr), label)), h("slot", { key: '99c5c78534118199fc1e99daac2737b78d55bc28', name: "popover" })), hint &&
1084
- h("r-hint", { key: '74f3cf98c25ba600e8faf8a1793d56ab14c01466', id: `${uniqueId}-hint`, class: "r-select--hint" }, hint)), h("div", { key: '1960780639c8896bc52d1b62269d9453645132ef', class: "r-select" }, h("select", Object.assign({ key: '2b9d75c37066bfeb8e06b4097ecc73bd96358702', class: "r-select--native", ref: el => this.nativeElement = el }, nativeAttrs)), h("div", { key: '3eff5f8f263a013e0ba7ba64eace1da6167b6d1f', class: "r-select--container" }, this.combobox ? this.renderCombobox(comboboxAttrs) : this.renderSelect(comboboxAttrs), h("div", Object.assign({ key: 'bbfb28e905d17feee0bd2693faac327d8ef97894', role: "listbox", tabindex: "-1", id: `${uniqueId}-list`, class: "r-select--options", ref: el => this.listboxElement = el }, listboxAttrs), (this.isNoResultsFound || !((_a = this.optionElements) === null || _a === void 0 ? void 0 : _a.length)) && h("r-select-option", { key: '319993c58f2133c271c2db357d22132497751958', "data-no-results": "true", value: "no_results" }, this.noResultsFound), h("slot", { key: 'bbb21659679bb22e3aeb9471a34e3e007ab835d8', onSlotchange: this.handleSlotChange })))), h("div", { key: '5971e5c4f3bbb453dcae9f3ecbdf2c2f14cf0293', id: `${uniqueId}-message`, "aria-live": "polite", "aria-atomic": "true", ref: (el) => this.messageContainer = el, class: this.hasMessage && !internal ? 'r-select--message' : 'visually-hidden' }, this.hasMessage && h("r-hint", { key: '1c1aba3c4f3baa93cd6ecab59dd40d99ad5bd0b2', variant: this.invalid ? 'error' : 'success' }, this.hasError && this.error, this.hasValidationError && this.validityMessage))));
1085
+ return (h(Host, { key: 'f52fa96bdacace6070cd2baa15f8fab939d05916', "data-value": this.currentValue, expanded: !this.disabled && this.isExpanded, "data-listbox-position": this.listboxPositionState, "data-initial-value": this.initial['value'], "data-is-placeholder": `${!!this.isPlaceholder}`, "data-value-focused": `${!!this.isValueFocused}`, "data-option-focused": `${!!this.focusedOption}`, "data-validity-state": `${this.validityState || ''}`, "data-validity-message": `${this.validityMessage || ''}`, "data-readonly": `${!!this.isReadonly}`, "data-touched": `${this.touched}`, "data-dirty": `${this.dirty}` }, h("div", { key: '80326d43674f8caac11678ca4d5a6ca8178f9454', class: `r-select--label ${!internal ? 'r-select--label__margin-bottom' : ''}` }, h("div", { key: '25fa25960350a338c7c9156d38c974c0ad8a0861', class: internal ? 'visually-hidden' : 'r-select--label-container' }, h("label", { key: 'b52ac4d91e32df39459492bbeaf166d2a71d165c', id: `${uniqueId}-label`, onClick: this.isInteractive ? this.onValueClick : null }, h("r-label", Object.assign({ key: 'ac75955086f424e781baf66e6853cbc89ec20d56' }, labelAttr), label)), h("slot", { key: '4cd953da5c64a473070ce4b8a3e5721a36561685', name: "popover" })), hint &&
1086
+ h("r-hint", { key: '2d6a2e9eae51d56f31886725274c637e76ab4d75', id: `${uniqueId}-hint`, class: "r-select--hint" }, hint)), h("div", { key: '8107a1d2475d11d6e827d7394ade84f9c4c85ea5', class: "r-select" }, h("select", Object.assign({ key: 'd7a60a4ff2f8f568da1ea90d859d5de78a1e73ef', class: "r-select--native", ref: el => this.nativeElement = el }, nativeAttrs)), h("div", { key: '9d49470c7e4cc179dfd93cb1233e2bbf86ac7641', class: "r-select--container" }, this.combobox ? this.renderCombobox(comboboxAttrs) : this.renderSelect(comboboxAttrs), h("div", Object.assign({ key: '9594f3439c7591a4e4ef359a205a55d1c56dbb80', role: "listbox", tabindex: "-1", id: `${uniqueId}-list`, class: "r-select--options", ref: el => this.listboxElement = el }, listboxAttrs), (this.isNoResultsFound || !((_a = this.optionElements) === null || _a === void 0 ? void 0 : _a.length)) && h("r-select-option", { key: 'ae0ef701ff3e7db4c17aba7d57265122c3bf6587', "data-no-results": "true", value: "no_results" }, this.noResultsFound), h("slot", { key: '012fcee55283c7bc5a3230ff23b692eca33d853b', onSlotchange: this.handleSlotChange })))), h("div", { key: '94fc769d8eeb0bd92f1d12d553b033a3de9ad8dc', id: `${uniqueId}-message`, "aria-live": "polite", "aria-atomic": "true", ref: (el) => this.messageContainer = el, class: this.hasMessage && !internal ? 'r-select--message' : 'visually-hidden' }, this.hasMessage && h("r-hint", { key: '881e60130bd3cbc9004aacbb027911357286a516', variant: this.invalid ? 'error' : 'success' }, this.hasError && this.error, this.hasValidationError && this.validityMessage))));
1085
1087
  }
1086
1088
  static get is() { return "r-select"; }
1087
1089
  static get encapsulation() { return "shadow"; }
@@ -128,7 +128,7 @@ export class SelectOption {
128
128
  size: iconSize,
129
129
  color: iconColor
130
130
  };
131
- return (h(Host, { key: 'd059d75cec11ef39ddea8c4ddc9ce8bc9d1a57e7', id: uniqueId, role: "option", onClick: this.handleClick, onKeydown: this.handleKeydown, "aria-disabled": `${disabled}`, "aria-selected": `${this.isSelected}`, "data-value": this.definedValue, "data-focused": `${this.isFocused}` }, h("div", { key: '70fa5c2fc9194d197b4124b6afad296d2849032c', class: "r-select-option" }, icon && h("span", { key: '07bdfeb2d8330c989e6b59c34ee85cac029135cb', class: "r-select-option--icon" }, h("r-icon", Object.assign({ key: '358748199ca580e8a9d397ed4f5642a722703441' }, iconAttributes))), !icon && hasIconSlot && h("span", { key: '60a4e6059188b27d0fbe6e9b0134882cea803d90', class: "r-select-option--icon" }, h("slot", { key: '08b11beec2c086b21ab92ad6cab080bae1cd0eac', name: "icon" })), h("span", { key: '4397696c7b8ec172098d9bd82e0c89c55781bb91', class: "r-select-option--label" }, h("slot", { key: 'b9dddec8b9c455f130ed38577c9321cb6aced0dd' })))));
131
+ return (h(Host, { key: 'd75c7a753d325360d4bee79ef7b96fbedd2d9b96', id: uniqueId, role: "option", onClick: this.handleClick, onKeydown: this.handleKeydown, "aria-disabled": `${disabled}`, "aria-selected": `${this.isSelected}`, "data-value": this.definedValue, "data-focused": `${this.isFocused}` }, h("div", { key: '8d8d449a5352f90d7731df10ea011856537b02f4', class: "r-select-option" }, icon && h("span", { key: 'f74192805472c8023b921f0a2869772f4c007d78', class: "r-select-option--icon" }, h("r-icon", Object.assign({ key: '6ac112921c222e83df33b2cf0113f3b158a98407' }, iconAttributes))), !icon && hasIconSlot && h("span", { key: '8c5779ab3446a8d4b8880bf1f9958f02d32ca5e4', class: "r-select-option--icon" }, h("slot", { key: '05647b1a0f7fb6f3c996461a825d8d60bb966b50', name: "icon" })), h("span", { key: 'a4de330d788288995da81cd7cbe7a9f8e9ba44c0', class: "r-select-option--label" }, h("slot", { key: '2cb6ac3d005a3bf9b75b0c23d27cbf1930bc15cc' })))));
132
132
  }
133
133
  static get is() { return "r-select-option"; }
134
134
  static get encapsulation() { return "shadow"; }
@@ -5,7 +5,7 @@ export class SkipLink {
5
5
  this.position = 'center';
6
6
  }
7
7
  render() {
8
- return (h(Host, { key: '5097cfa89ded56bcfb98dc24ca0b1e42c389e4ae' }, h("slot", { key: 'bba803efc4b82b0612e270665d5f80b740a786f1' })));
8
+ return (h(Host, { key: '08280b6003ccf78bf96eba9778fd3ddcaebc8947' }, h("slot", { key: '7808e8156601912e0192fe0b74bdedda2c359e1c' })));
9
9
  }
10
10
  static get is() { return "r-skip-link"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -1,6 +1,9 @@
1
1
  .r-stepper {
2
2
  display: var(--r-stepper--display, flex);
3
3
  align-items: var(--r-stepper--align-items, top);
4
+ list-style-type: var(--r-stepper--list-style-type, none);
5
+ padding: var(--r-stepper--padding, 0);
6
+ margin: var(--r-stepper--margin, 0);
4
7
  }
5
8
  .r-stepper > r-stepper-item,
6
9
  .r-stepper ::slotted(r-stepper-item) {
@@ -17,6 +20,6 @@
17
20
  position: var(--r-stepper-divider--position, relative);
18
21
  width: var(--r-stepper-divider--width, 100%);
19
22
  height: var(--r-stepper-divider--height, 1px);
20
- top: var(--r-stepper-divider--top, 10px);
21
- background-color: var(--r-stepper-divider--background-color, var(--r-border-soft, #686868));
23
+ top: var(--r-stepper-divider--top, 0.625rem);
24
+ background-color: var(--r-stepper-divider--background-color, var(--r-text-regular, #282828));
22
25
  }