@beeq/core 1.10.0-beta.3 → 1.10.0-beta.5

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 (468) hide show
  1. package/dist/beeq/beeq.css +1 -1
  2. package/dist/beeq/beeq.esm.js +1 -1
  3. package/dist/beeq/beeq.esm.js.map +1 -1
  4. package/dist/beeq/bq-button.bq-icon.entry.esm.js.map +1 -1
  5. package/dist/beeq/bq-card.entry.esm.js.map +1 -1
  6. package/dist/beeq/bq-date-picker.entry.esm.js.map +1 -1
  7. package/dist/beeq/bq-drawer.entry.esm.js.map +1 -1
  8. package/dist/beeq/bq-option-group.entry.esm.js.map +1 -1
  9. package/dist/beeq/bq-option-list.bq-tag.entry.esm.js.map +1 -1
  10. package/dist/beeq/bq-page-title.entry.esm.js.map +1 -1
  11. package/dist/beeq/bq-progress.entry.esm.js.map +1 -1
  12. package/dist/beeq/bq-radio-group.entry.esm.js.map +1 -1
  13. package/dist/beeq/bq-radio.entry.esm.js.map +1 -1
  14. package/dist/beeq/bq-select.entry.esm.js.map +1 -1
  15. package/dist/beeq/bq-side-menu-item.entry.esm.js.map +1 -1
  16. package/dist/beeq/bq-slider.entry.esm.js.map +1 -1
  17. package/dist/beeq/bq-step-item.entry.esm.js.map +1 -1
  18. package/dist/beeq/bq-steps.entry.esm.js.map +1 -1
  19. package/dist/beeq/bq-tooltip.entry.esm.js.map +1 -1
  20. package/dist/beeq/index.esm.js +1 -1
  21. package/dist/beeq/{p-d5e90f0c.entry.js → p-00f6ab04.entry.js} +2 -2
  22. package/dist/beeq/{p-62613d0d.entry.js → p-01d832d0.entry.js} +2 -2
  23. package/dist/beeq/{p-724c516b.entry.js → p-0bf9984d.entry.js} +2 -2
  24. package/dist/beeq/{p-724c516b.entry.js.map → p-0bf9984d.entry.js.map} +1 -1
  25. package/dist/beeq/{p-b6a03fdd.entry.js → p-12249759.entry.js} +2 -2
  26. package/dist/beeq/{p-dac34b15.entry.js → p-126b0e1a.entry.js} +2 -2
  27. package/dist/beeq/p-126b0e1a.entry.js.map +1 -0
  28. package/dist/beeq/{p-a8ab0de7.entry.js → p-146fa7e8.entry.js} +2 -2
  29. package/dist/beeq/{p-a8ab0de7.entry.js.map → p-146fa7e8.entry.js.map} +1 -1
  30. package/dist/beeq/{p-c6773ae2.entry.js → p-1a19b5fa.entry.js} +2 -2
  31. package/dist/beeq/p-2e94c104.entry.js +6 -0
  32. package/dist/beeq/{p-1a52ac27.entry.js.map → p-2e94c104.entry.js.map} +1 -1
  33. package/dist/beeq/{p-58f07415.entry.js → p-3464beb1.entry.js} +2 -2
  34. package/dist/beeq/{p-7deffb9e.entry.js → p-38b70ecf.entry.js} +2 -2
  35. package/dist/beeq/{p-9d5293fe.entry.js → p-3bac8fc4.entry.js} +2 -2
  36. package/dist/beeq/{p-415691fd.entry.js → p-49e6f079.entry.js} +2 -2
  37. package/dist/beeq/{p-415691fd.entry.js.map → p-49e6f079.entry.js.map} +1 -1
  38. package/dist/beeq/{p-a2c91633.entry.js → p-4a3d974a.entry.js} +2 -2
  39. package/dist/beeq/p-4aa72d5a.entry.js +6 -0
  40. package/dist/beeq/p-4aa72d5a.entry.js.map +1 -0
  41. package/dist/beeq/{p-96a76f8d.entry.js → p-50b2fd06.entry.js} +2 -2
  42. package/dist/beeq/{p-da447add.entry.js → p-55017e05.entry.js} +2 -2
  43. package/dist/beeq/{p-71b947ad.entry.js → p-58541f26.entry.js} +2 -2
  44. package/dist/beeq/{p-0ea42c3f.entry.js → p-5b5442ce.entry.js} +2 -2
  45. package/dist/beeq/{p-0ea42c3f.entry.js.map → p-5b5442ce.entry.js.map} +1 -1
  46. package/dist/beeq/{p-37315c83.entry.js → p-622b9249.entry.js} +2 -2
  47. package/dist/beeq/{p-37315c83.entry.js.map → p-622b9249.entry.js.map} +1 -1
  48. package/dist/beeq/{p-355a197e.entry.js → p-7eb5259f.entry.js} +2 -2
  49. package/dist/beeq/{p-458f38a0.entry.js → p-968a4833.entry.js} +2 -2
  50. package/dist/beeq/{p-458f38a0.entry.js.map → p-968a4833.entry.js.map} +1 -1
  51. package/dist/beeq/{p-4iHDua0i.js → p-BsSDkLU5.js} +1 -1
  52. package/dist/beeq/p-BsSDkLU5.js.map +1 -0
  53. package/dist/beeq/p-BtpBVYE0.js +6 -0
  54. package/dist/beeq/p-BtpBVYE0.js.map +1 -0
  55. package/dist/beeq/p-C4jSqdYP.js +7 -0
  56. package/dist/beeq/p-C4jSqdYP.js.map +1 -0
  57. package/dist/beeq/p-a8c20aaf.entry.js +6 -0
  58. package/dist/beeq/p-a8c20aaf.entry.js.map +1 -0
  59. package/dist/beeq/{p-0fc66165.entry.js → p-a9070048.entry.js} +2 -2
  60. package/dist/beeq/{p-e3eb683b.entry.js → p-afb356b4.entry.js} +2 -2
  61. package/dist/beeq/{p-f79665be.entry.js → p-b3f103da.entry.js} +2 -2
  62. package/dist/beeq/{p-6e523256.entry.js → p-b99ea02f.entry.js} +2 -2
  63. package/dist/beeq/p-b99ea02f.entry.js.map +1 -0
  64. package/dist/beeq/{p-6891bdf1.entry.js → p-bb038cc5.entry.js} +2 -2
  65. package/dist/beeq/{p-4a77e03c.entry.js → p-c00bcbe6.entry.js} +2 -2
  66. package/dist/beeq/{p-e1e2b79f.entry.js → p-c110a7ea.entry.js} +2 -2
  67. package/dist/beeq/{p-e1e2b79f.entry.js.map → p-c110a7ea.entry.js.map} +1 -1
  68. package/dist/beeq/{p-7a110f32.entry.js → p-c5b7bad2.entry.js} +2 -2
  69. package/dist/beeq/p-cb1ec3ac.entry.js +6 -0
  70. package/dist/beeq/p-cb1ec3ac.entry.js.map +1 -0
  71. package/dist/beeq/{p-a35b4722.entry.js → p-d4b0dcda.entry.js} +2 -2
  72. package/dist/beeq/{p-01e2d9a2.entry.js → p-d58133b8.entry.js} +2 -2
  73. package/dist/beeq/{p-6f24fea1.entry.js → p-d88394b9.entry.js} +2 -2
  74. package/dist/beeq/p-d88394b9.entry.js.map +1 -0
  75. package/dist/beeq/p-dbe8b775.entry.js +6 -0
  76. package/dist/beeq/p-dbe8b775.entry.js.map +1 -0
  77. package/dist/beeq/{p-1f758004.entry.js → p-e2b24948.entry.js} +2 -2
  78. package/dist/beeq/{p-8d8ccade.entry.js → p-ea1244cc.entry.js} +2 -2
  79. package/dist/beeq/{p-8d8ccade.entry.js.map → p-ea1244cc.entry.js.map} +1 -1
  80. package/dist/beeq/{p-33a39834.entry.js → p-f738ef10.entry.js} +2 -2
  81. package/dist/beeq/{p-be4a88df.entry.js → p-fc2f0022.entry.js} +2 -2
  82. package/dist/beeq.html-custom-data.json +400 -399
  83. package/dist/cjs/beeq.cjs.js +3 -3
  84. package/dist/cjs/beeq.cjs.js.map +1 -1
  85. package/dist/cjs/bq-accordion-group.cjs.entry.js +2 -2
  86. package/dist/cjs/bq-accordion.cjs.entry.js +2 -2
  87. package/dist/cjs/bq-alert.cjs.entry.js +2 -2
  88. package/dist/cjs/bq-avatar.cjs.entry.js +2 -2
  89. package/dist/cjs/bq-badge.cjs.entry.js +2 -2
  90. package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +2 -2
  91. package/dist/cjs/bq-breadcrumb.cjs.entry.js +2 -2
  92. package/dist/cjs/bq-button.bq-icon.entry.cjs.js.map +1 -1
  93. package/dist/cjs/bq-button_2.cjs.entry.js +8 -8
  94. package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
  95. package/dist/cjs/bq-card.cjs.entry.js +4 -4
  96. package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
  97. package/dist/cjs/bq-card.entry.cjs.js.map +1 -1
  98. package/dist/cjs/bq-checkbox.cjs.entry.js +2 -2
  99. package/dist/cjs/bq-date-picker.cjs.entry.js +56 -43
  100. package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
  101. package/dist/cjs/bq-date-picker.entry.cjs.js.map +1 -1
  102. package/dist/cjs/bq-dialog.cjs.entry.js +2 -2
  103. package/dist/cjs/bq-divider.cjs.entry.js +2 -2
  104. package/dist/cjs/bq-drawer.cjs.entry.js +6 -6
  105. package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
  106. package/dist/cjs/bq-drawer.entry.cjs.js.map +1 -1
  107. package/dist/cjs/bq-dropdown_2.cjs.entry.js +4 -4
  108. package/dist/cjs/bq-empty-state.cjs.entry.js +2 -2
  109. package/dist/cjs/bq-input.cjs.entry.js +2 -2
  110. package/dist/cjs/bq-notification.cjs.entry.js +2 -2
  111. package/dist/cjs/bq-option-group.cjs.entry.js +2 -2
  112. package/dist/cjs/bq-option-group.cjs.entry.js.map +1 -1
  113. package/dist/cjs/bq-option-group.entry.cjs.js.map +1 -1
  114. package/dist/cjs/bq-option-list.bq-tag.entry.cjs.js.map +1 -1
  115. package/dist/cjs/bq-option-list_2.cjs.entry.js +6 -6
  116. package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
  117. package/dist/cjs/bq-option.cjs.entry.js +2 -2
  118. package/dist/cjs/bq-page-title.cjs.entry.js +4 -4
  119. package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
  120. package/dist/cjs/bq-page-title.entry.cjs.js.map +1 -1
  121. package/dist/cjs/bq-progress.cjs.entry.js +5 -5
  122. package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
  123. package/dist/cjs/bq-progress.entry.cjs.js.map +1 -1
  124. package/dist/cjs/bq-radio-group.cjs.entry.js +209 -102
  125. package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
  126. package/dist/cjs/bq-radio-group.entry.cjs.js.map +1 -1
  127. package/dist/cjs/bq-radio.cjs.entry.js +24 -15
  128. package/dist/cjs/bq-radio.cjs.entry.js.map +1 -1
  129. package/dist/cjs/bq-radio.entry.cjs.js.map +1 -1
  130. package/dist/cjs/bq-select.cjs.entry.js +2 -2
  131. package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
  132. package/dist/cjs/bq-select.entry.cjs.js.map +1 -1
  133. package/dist/cjs/bq-side-menu-item.cjs.entry.js +6 -6
  134. package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
  135. package/dist/cjs/bq-side-menu-item.entry.cjs.js.map +1 -1
  136. package/dist/cjs/bq-side-menu.cjs.entry.js +4 -4
  137. package/dist/cjs/bq-slider.cjs.entry.js +7 -5
  138. package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
  139. package/dist/cjs/bq-slider.entry.cjs.js.map +1 -1
  140. package/dist/cjs/bq-spinner.cjs.entry.js +6 -6
  141. package/dist/cjs/bq-status.cjs.entry.js +3 -3
  142. package/dist/cjs/bq-step-item.cjs.entry.js +38 -15
  143. package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
  144. package/dist/cjs/bq-step-item.entry.cjs.js.map +1 -1
  145. package/dist/cjs/bq-steps.cjs.entry.js +18 -7
  146. package/dist/cjs/bq-steps.cjs.entry.js.map +1 -1
  147. package/dist/cjs/bq-steps.entry.cjs.js.map +1 -1
  148. package/dist/cjs/bq-switch.cjs.entry.js +4 -4
  149. package/dist/cjs/bq-tab-group.cjs.entry.js +6 -6
  150. package/dist/cjs/bq-tab.cjs.entry.js +4 -4
  151. package/dist/cjs/bq-textarea.cjs.entry.js +5 -5
  152. package/dist/cjs/bq-toast.cjs.entry.js +3 -3
  153. package/dist/cjs/bq-tooltip.cjs.entry.js +4 -4
  154. package/dist/cjs/bq-tooltip.cjs.entry.js.map +1 -1
  155. package/dist/cjs/bq-tooltip.entry.cjs.js.map +1 -1
  156. package/dist/cjs/{getNextElement-B5h_gmRG.js → getNextElement-Bcdj4jIn.js} +4 -4
  157. package/dist/cjs/getNextElement-Bcdj4jIn.js.map +1 -0
  158. package/dist/cjs/{index-CbmPaaDD.js → index-BKXwzJHW.js} +545 -168
  159. package/dist/cjs/index-BKXwzJHW.js.map +1 -0
  160. package/dist/cjs/{index-CD2anR4A.js → index-BZ6JRHUg.js} +56 -32
  161. package/dist/cjs/index-BZ6JRHUg.js.map +1 -0
  162. package/dist/cjs/index.cjs.js +1 -1
  163. package/dist/cjs/loader.cjs.js +2 -2
  164. package/dist/collection/collection-manifest.json +1 -1
  165. package/dist/collection/components/accordion/scss/bq-accordion.css +1 -1
  166. package/dist/collection/components/accordion-group/scss/bq-accordion-group.css +1 -1
  167. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  168. package/dist/collection/components/avatar/scss/bq-avatar.css +1 -1
  169. package/dist/collection/components/badge/scss/bq-badge.css +1 -1
  170. package/dist/collection/components/breadcrumb/scss/bq-breadcrumb.css +1 -1
  171. package/dist/collection/components/breadcrumb-item/scss/bq-breadcrumb-item.css +1 -1
  172. package/dist/collection/components/button/bq-button.js +8 -8
  173. package/dist/collection/components/button/bq-button.js.map +1 -1
  174. package/dist/collection/components/button/scss/bq-button.css +1 -1
  175. package/dist/collection/components/card/bq-card.js +2 -2
  176. package/dist/collection/components/card/bq-card.js.map +1 -1
  177. package/dist/collection/components/card/scss/bq-card.css +1 -1
  178. package/dist/collection/components/checkbox/scss/bq-checkbox.css +1 -1
  179. package/dist/collection/components/date-picker/bq-date-picker.js +54 -41
  180. package/dist/collection/components/date-picker/bq-date-picker.js.map +1 -1
  181. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  182. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  183. package/dist/collection/components/divider/scss/bq-divider.css +1 -1
  184. package/dist/collection/components/drawer/bq-drawer.js +4 -4
  185. package/dist/collection/components/drawer/bq-drawer.js.map +1 -1
  186. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  187. package/dist/collection/components/dropdown/scss/bq-dropdown.css +1 -1
  188. package/dist/collection/components/empty-state/scss/bq-empty-state.css +1 -1
  189. package/dist/collection/components/icon/scss/bq-icon.css +1 -1
  190. package/dist/collection/components/input/scss/bq-input.css +1 -1
  191. package/dist/collection/components/notification/scss/bq-notification.css +1 -1
  192. package/dist/collection/components/option/scss/bq-option.css +1 -1
  193. package/dist/collection/components/option-group/scss/bq-option-group.css +1 -1
  194. package/dist/collection/components/option-list/scss/bq-option-list.css +1 -1
  195. package/dist/collection/components/page-title/bq-page-title.js +2 -2
  196. package/dist/collection/components/page-title/bq-page-title.js.map +1 -1
  197. package/dist/collection/components/page-title/scss/bq-page-title.css +1 -1
  198. package/dist/collection/components/panel/scss/bq-panel.css +1 -1
  199. package/dist/collection/components/progress/bq-progress.js +3 -3
  200. package/dist/collection/components/progress/bq-progress.js.map +1 -1
  201. package/dist/collection/components/progress/scss/bq-progress.css +1 -1
  202. package/dist/collection/components/radio/bq-radio.js +61 -28
  203. package/dist/collection/components/radio/bq-radio.js.map +1 -1
  204. package/dist/collection/components/radio/scss/bq-radio.css +1 -1
  205. package/dist/collection/components/radio-group/bq-radio-group.js +220 -115
  206. package/dist/collection/components/radio-group/bq-radio-group.js.map +1 -1
  207. package/dist/collection/components/radio-group/scss/bq-radio-group.css +1 -1
  208. package/dist/collection/components/select/scss/bq-select.css +1 -1
  209. package/dist/collection/components/side-menu/bq-side-menu.js +2 -2
  210. package/dist/collection/components/side-menu/scss/bq-side-menu.css +1 -1
  211. package/dist/collection/components/side-menu-item/bq-side-menu-item.js +7 -10
  212. package/dist/collection/components/side-menu-item/bq-side-menu-item.js.map +1 -1
  213. package/dist/collection/components/side-menu-item/scss/bq-side-menu-item.css +1 -1
  214. package/dist/collection/components/slider/bq-slider.js +5 -3
  215. package/dist/collection/components/slider/bq-slider.js.map +1 -1
  216. package/dist/collection/components/slider/scss/bq-slider.css +1 -1
  217. package/dist/collection/components/spinner/bq-spinner.js +4 -4
  218. package/dist/collection/components/spinner/scss/bq-spinner.css +1 -1
  219. package/dist/collection/components/status/bq-status.js +1 -1
  220. package/dist/collection/components/status/scss/bq-status.css +1 -1
  221. package/dist/collection/components/step-item/bq-step-item.js +78 -17
  222. package/dist/collection/components/step-item/bq-step-item.js.map +1 -1
  223. package/dist/collection/components/step-item/scss/bq-step-item.css +1 -1
  224. package/dist/collection/components/steps/bq-steps.js +48 -5
  225. package/dist/collection/components/steps/bq-steps.js.map +1 -1
  226. package/dist/collection/components/steps/scss/bq-steps.css +1 -1
  227. package/dist/collection/components/switch/bq-switch.js +2 -2
  228. package/dist/collection/components/switch/scss/bq-switch.css +1 -1
  229. package/dist/collection/components/tab/bq-tab.js +2 -2
  230. package/dist/collection/components/tab/scss/bq-tab.css +1 -1
  231. package/dist/collection/components/tab-group/bq-tab-group.js +3 -3
  232. package/dist/collection/components/tab-group/scss/bq-tab-group.css +1 -1
  233. package/dist/collection/components/tag/bq-tag.js +3 -3
  234. package/dist/collection/components/tag/scss/bq-tag.css +1 -1
  235. package/dist/collection/components/textarea/bq-textarea.js +3 -3
  236. package/dist/collection/components/textarea/scss/bq-textarea.css +1 -1
  237. package/dist/collection/components/toast/bq-toast.js +1 -1
  238. package/dist/collection/components/toast/scss/bq-toast.css +1 -1
  239. package/dist/collection/components/tooltip/bq-tooltip.js +1 -1
  240. package/dist/collection/components/tooltip/scss/bq-tooltip.css +1 -1
  241. package/dist/collection/shared/test-utils/index.js +1 -0
  242. package/dist/collection/shared/test-utils/index.js.map +1 -1
  243. package/dist/collection/shared/test-utils/setProperties.js +10 -2
  244. package/dist/collection/shared/test-utils/setProperties.js.map +1 -1
  245. package/dist/collection/shared/test-utils/waitForSvgLoad.js +61 -0
  246. package/dist/collection/shared/test-utils/waitForSvgLoad.js.map +1 -0
  247. package/dist/collection/shared/utils/getNextElement.js +2 -2
  248. package/dist/collection/shared/utils/getNextElement.js.map +1 -1
  249. package/dist/components/bq-accordion-group.js +1 -1
  250. package/dist/components/bq-accordion.js +1 -1
  251. package/dist/components/bq-alert.js +1 -1
  252. package/dist/components/bq-avatar.js +1 -1
  253. package/dist/components/bq-badge.js +1 -1
  254. package/dist/components/bq-breadcrumb-item.js +1 -1
  255. package/dist/components/bq-breadcrumb.js +1 -1
  256. package/dist/components/bq-button.js +1 -1
  257. package/dist/components/bq-card.js +1 -1
  258. package/dist/components/bq-card.js.map +1 -1
  259. package/dist/components/bq-checkbox.js +1 -1
  260. package/dist/components/bq-date-picker.js +1 -1
  261. package/dist/components/bq-date-picker.js.map +1 -1
  262. package/dist/components/bq-dialog.js +1 -1
  263. package/dist/components/bq-divider.js +1 -1
  264. package/dist/components/bq-drawer.js +1 -1
  265. package/dist/components/bq-drawer.js.map +1 -1
  266. package/dist/components/bq-dropdown.js +1 -1
  267. package/dist/components/bq-empty-state.js +1 -1
  268. package/dist/components/bq-icon.js +1 -1
  269. package/dist/components/bq-input.js +1 -1
  270. package/dist/components/bq-notification.js +1 -1
  271. package/dist/components/bq-option-group.js +1 -1
  272. package/dist/components/bq-option-group.js.map +1 -1
  273. package/dist/components/bq-option-list.js +1 -1
  274. package/dist/components/bq-option.js +1 -1
  275. package/dist/components/bq-page-title.js +1 -1
  276. package/dist/components/bq-page-title.js.map +1 -1
  277. package/dist/components/bq-panel.js +1 -1
  278. package/dist/components/bq-progress.js +1 -1
  279. package/dist/components/bq-progress.js.map +1 -1
  280. package/dist/components/bq-radio-group.js +1 -1
  281. package/dist/components/bq-radio-group.js.map +1 -1
  282. package/dist/components/bq-radio.js +1 -1
  283. package/dist/components/bq-radio.js.map +1 -1
  284. package/dist/components/bq-select.js +1 -1
  285. package/dist/components/bq-select.js.map +1 -1
  286. package/dist/components/bq-side-menu-item.js +1 -1
  287. package/dist/components/bq-side-menu-item.js.map +1 -1
  288. package/dist/components/bq-side-menu.js +1 -1
  289. package/dist/components/bq-slider.js +1 -1
  290. package/dist/components/bq-slider.js.map +1 -1
  291. package/dist/components/bq-spinner.js +1 -1
  292. package/dist/components/bq-status.js +1 -1
  293. package/dist/components/bq-step-item.js +1 -1
  294. package/dist/components/bq-step-item.js.map +1 -1
  295. package/dist/components/bq-steps.js +1 -1
  296. package/dist/components/bq-steps.js.map +1 -1
  297. package/dist/components/bq-switch.js +1 -1
  298. package/dist/components/bq-tab-group.js +1 -1
  299. package/dist/components/bq-tab-group.js.map +1 -1
  300. package/dist/components/bq-tab.js +1 -1
  301. package/dist/components/bq-tag.js +1 -1
  302. package/dist/components/bq-textarea.js +1 -1
  303. package/dist/components/bq-textarea.js.map +1 -1
  304. package/dist/components/bq-toast.js +1 -1
  305. package/dist/components/bq-toast.js.map +1 -1
  306. package/dist/components/bq-tooltip.js +1 -1
  307. package/dist/components/index.js +1 -1
  308. package/dist/components/index.js.map +1 -1
  309. package/dist/components/{p-B-HVvLrd.js → p-3kuGtVv3.js} +2 -2
  310. package/dist/components/{p-DWR8iX59.js → p-9gvSRSmi.js} +2 -2
  311. package/dist/components/{p-CaWrrLKB.js → p-B8eXbMij.js} +2 -2
  312. package/dist/components/{p-CaWrrLKB.js.map → p-B8eXbMij.js.map} +1 -1
  313. package/dist/components/{p-D0zwGLLG.js → p-BrcJUBET.js} +2 -2
  314. package/dist/components/p-BsSDkLU5.js +6 -0
  315. package/dist/components/p-BsSDkLU5.js.map +1 -0
  316. package/dist/components/p-BtpBVYE0.js +6 -0
  317. package/dist/components/p-BtpBVYE0.js.map +1 -0
  318. package/dist/components/{p-vH9q8NAw.js → p-C63H4SKY.js} +2 -2
  319. package/dist/components/{p-Dbba-Ppg.js → p-CB5lnB31.js} +2 -2
  320. package/dist/components/{p-Dbba-Ppg.js.map → p-CB5lnB31.js.map} +1 -1
  321. package/dist/components/{p-C0L4R3iu.js → p-DSDQV9S1.js} +2 -2
  322. package/dist/components/p-DZoizZde.js +6 -0
  323. package/dist/components/p-DZoizZde.js.map +1 -0
  324. package/dist/components/{p-Cbtgc6ah.js → p-YV07eeSP.js} +2 -2
  325. package/dist/components/{p-Cbtgc6ah.js.map → p-YV07eeSP.js.map} +1 -1
  326. package/dist/components/{p-DpyHfE7c.js → p-ibgfh-jN.js} +2 -2
  327. package/dist/custom-elements.json +7183 -7057
  328. package/dist/esm/beeq.js +4 -4
  329. package/dist/esm/beeq.js.map +1 -1
  330. package/dist/esm/bq-accordion-group.entry.js +2 -2
  331. package/dist/esm/bq-accordion.entry.js +2 -2
  332. package/dist/esm/bq-alert.entry.js +2 -2
  333. package/dist/esm/bq-avatar.entry.js +2 -2
  334. package/dist/esm/bq-badge.entry.js +2 -2
  335. package/dist/esm/bq-breadcrumb-item.entry.js +2 -2
  336. package/dist/esm/bq-breadcrumb.entry.js +2 -2
  337. package/dist/esm/bq-button.bq-icon.entry.js.map +1 -1
  338. package/dist/esm/bq-button_2.entry.js +8 -8
  339. package/dist/esm/bq-button_2.entry.js.map +1 -1
  340. package/dist/esm/bq-card.entry.js +4 -4
  341. package/dist/esm/bq-card.entry.js.map +1 -1
  342. package/dist/esm/bq-checkbox.entry.js +2 -2
  343. package/dist/esm/bq-date-picker.entry.js +56 -43
  344. package/dist/esm/bq-date-picker.entry.js.map +1 -1
  345. package/dist/esm/bq-dialog.entry.js +2 -2
  346. package/dist/esm/bq-divider.entry.js +2 -2
  347. package/dist/esm/bq-drawer.entry.js +6 -6
  348. package/dist/esm/bq-drawer.entry.js.map +1 -1
  349. package/dist/esm/bq-dropdown_2.entry.js +4 -4
  350. package/dist/esm/bq-empty-state.entry.js +2 -2
  351. package/dist/esm/bq-input.entry.js +2 -2
  352. package/dist/esm/bq-notification.entry.js +2 -2
  353. package/dist/esm/bq-option-group.entry.js +2 -2
  354. package/dist/esm/bq-option-group.entry.js.map +1 -1
  355. package/dist/esm/bq-option-list.bq-tag.entry.js.map +1 -1
  356. package/dist/esm/bq-option-list_2.entry.js +6 -6
  357. package/dist/esm/bq-option-list_2.entry.js.map +1 -1
  358. package/dist/esm/bq-option.entry.js +2 -2
  359. package/dist/esm/bq-page-title.entry.js +4 -4
  360. package/dist/esm/bq-page-title.entry.js.map +1 -1
  361. package/dist/esm/bq-progress.entry.js +5 -5
  362. package/dist/esm/bq-progress.entry.js.map +1 -1
  363. package/dist/esm/bq-radio-group.entry.js +206 -99
  364. package/dist/esm/bq-radio-group.entry.js.map +1 -1
  365. package/dist/esm/bq-radio.entry.js +24 -15
  366. package/dist/esm/bq-radio.entry.js.map +1 -1
  367. package/dist/esm/bq-select.entry.js +2 -2
  368. package/dist/esm/bq-select.entry.js.map +1 -1
  369. package/dist/esm/bq-side-menu-item.entry.js +6 -6
  370. package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
  371. package/dist/esm/bq-side-menu.entry.js +4 -4
  372. package/dist/esm/bq-slider.entry.js +7 -5
  373. package/dist/esm/bq-slider.entry.js.map +1 -1
  374. package/dist/esm/bq-spinner.entry.js +6 -6
  375. package/dist/esm/bq-status.entry.js +3 -3
  376. package/dist/esm/bq-step-item.entry.js +38 -15
  377. package/dist/esm/bq-step-item.entry.js.map +1 -1
  378. package/dist/esm/bq-steps.entry.js +18 -7
  379. package/dist/esm/bq-steps.entry.js.map +1 -1
  380. package/dist/esm/bq-switch.entry.js +4 -4
  381. package/dist/esm/bq-tab-group.entry.js +6 -6
  382. package/dist/esm/bq-tab.entry.js +4 -4
  383. package/dist/esm/bq-textarea.entry.js +5 -5
  384. package/dist/esm/bq-toast.entry.js +3 -3
  385. package/dist/esm/bq-tooltip.entry.js +4 -4
  386. package/dist/esm/bq-tooltip.entry.js.map +1 -1
  387. package/dist/esm/{getNextElement-4iHDua0i.js → getNextElement-BsSDkLU5.js} +4 -4
  388. package/dist/esm/getNextElement-BsSDkLU5.js.map +1 -0
  389. package/dist/esm/{index-DJ_hypV7.js → index-BtpBVYE0.js} +56 -32
  390. package/dist/esm/index-BtpBVYE0.js.map +1 -0
  391. package/dist/esm/{index-BZCppx8n.js → index-C4jSqdYP.js} +546 -168
  392. package/dist/esm/index-C4jSqdYP.js.map +1 -0
  393. package/dist/esm/index.js +1 -1
  394. package/dist/esm/loader.js +3 -3
  395. package/dist/hydrate/index.js +836 -484
  396. package/dist/hydrate/index.mjs +836 -484
  397. package/dist/stencil.config.js +1 -0
  398. package/dist/stencil.config.js.map +1 -1
  399. package/dist/types/components/button/bq-button.d.ts +3 -3
  400. package/dist/types/components/date-picker/bq-date-picker.d.ts +5 -3
  401. package/dist/types/components/radio/bq-radio.d.ts +15 -7
  402. package/dist/types/components/radio-group/bq-radio-group.d.ts +57 -16
  403. package/dist/types/components/side-menu-item/bq-side-menu-item.d.ts +2 -5
  404. package/dist/types/components/step-item/bq-step-item.d.ts +10 -6
  405. package/dist/types/components/steps/bq-steps.d.ts +5 -0
  406. package/dist/types/components.d.ts +45 -36
  407. package/dist/types/shared/test-utils/index.d.ts +1 -0
  408. package/dist/types/shared/test-utils/setProperties.d.ts +1 -1
  409. package/dist/types/shared/test-utils/waitForSvgLoad.d.ts +19 -0
  410. package/dist/types/shared/utils/getNextElement.d.ts +2 -2
  411. package/dist/types/stencil-public-runtime.d.ts +12 -5
  412. package/package.json +1 -1
  413. package/dist/beeq/p-1a52ac27.entry.js +0 -6
  414. package/dist/beeq/p-4iHDua0i.js.map +0 -1
  415. package/dist/beeq/p-59209ae4.entry.js +0 -6
  416. package/dist/beeq/p-59209ae4.entry.js.map +0 -1
  417. package/dist/beeq/p-5a4768b2.entry.js +0 -6
  418. package/dist/beeq/p-5a4768b2.entry.js.map +0 -1
  419. package/dist/beeq/p-6abd3dbb.entry.js +0 -6
  420. package/dist/beeq/p-6abd3dbb.entry.js.map +0 -1
  421. package/dist/beeq/p-6e523256.entry.js.map +0 -1
  422. package/dist/beeq/p-6f24fea1.entry.js.map +0 -1
  423. package/dist/beeq/p-BZCppx8n.js +0 -7
  424. package/dist/beeq/p-BZCppx8n.js.map +0 -1
  425. package/dist/beeq/p-DJ_hypV7.js +0 -6
  426. package/dist/beeq/p-DJ_hypV7.js.map +0 -1
  427. package/dist/beeq/p-d0d85576.entry.js +0 -6
  428. package/dist/beeq/p-d0d85576.entry.js.map +0 -1
  429. package/dist/beeq/p-dac34b15.entry.js.map +0 -1
  430. package/dist/cjs/getNextElement-B5h_gmRG.js.map +0 -1
  431. package/dist/cjs/index-CD2anR4A.js.map +0 -1
  432. package/dist/cjs/index-CbmPaaDD.js.map +0 -1
  433. package/dist/components/p-C-PPt5Je.js +0 -6
  434. package/dist/components/p-C-PPt5Je.js.map +0 -1
  435. package/dist/components/p-DJ_hypV7.js +0 -6
  436. package/dist/components/p-DJ_hypV7.js.map +0 -1
  437. package/dist/esm/getNextElement-4iHDua0i.js.map +0 -1
  438. package/dist/esm/index-BZCppx8n.js.map +0 -1
  439. package/dist/esm/index-DJ_hypV7.js.map +0 -1
  440. /package/dist/beeq/{p-d5e90f0c.entry.js.map → p-00f6ab04.entry.js.map} +0 -0
  441. /package/dist/beeq/{p-62613d0d.entry.js.map → p-01d832d0.entry.js.map} +0 -0
  442. /package/dist/beeq/{p-b6a03fdd.entry.js.map → p-12249759.entry.js.map} +0 -0
  443. /package/dist/beeq/{p-c6773ae2.entry.js.map → p-1a19b5fa.entry.js.map} +0 -0
  444. /package/dist/beeq/{p-58f07415.entry.js.map → p-3464beb1.entry.js.map} +0 -0
  445. /package/dist/beeq/{p-7deffb9e.entry.js.map → p-38b70ecf.entry.js.map} +0 -0
  446. /package/dist/beeq/{p-9d5293fe.entry.js.map → p-3bac8fc4.entry.js.map} +0 -0
  447. /package/dist/beeq/{p-a2c91633.entry.js.map → p-4a3d974a.entry.js.map} +0 -0
  448. /package/dist/beeq/{p-96a76f8d.entry.js.map → p-50b2fd06.entry.js.map} +0 -0
  449. /package/dist/beeq/{p-da447add.entry.js.map → p-55017e05.entry.js.map} +0 -0
  450. /package/dist/beeq/{p-71b947ad.entry.js.map → p-58541f26.entry.js.map} +0 -0
  451. /package/dist/beeq/{p-355a197e.entry.js.map → p-7eb5259f.entry.js.map} +0 -0
  452. /package/dist/beeq/{p-0fc66165.entry.js.map → p-a9070048.entry.js.map} +0 -0
  453. /package/dist/beeq/{p-e3eb683b.entry.js.map → p-afb356b4.entry.js.map} +0 -0
  454. /package/dist/beeq/{p-f79665be.entry.js.map → p-b3f103da.entry.js.map} +0 -0
  455. /package/dist/beeq/{p-6891bdf1.entry.js.map → p-bb038cc5.entry.js.map} +0 -0
  456. /package/dist/beeq/{p-4a77e03c.entry.js.map → p-c00bcbe6.entry.js.map} +0 -0
  457. /package/dist/beeq/{p-7a110f32.entry.js.map → p-c5b7bad2.entry.js.map} +0 -0
  458. /package/dist/beeq/{p-a35b4722.entry.js.map → p-d4b0dcda.entry.js.map} +0 -0
  459. /package/dist/beeq/{p-01e2d9a2.entry.js.map → p-d58133b8.entry.js.map} +0 -0
  460. /package/dist/beeq/{p-1f758004.entry.js.map → p-e2b24948.entry.js.map} +0 -0
  461. /package/dist/beeq/{p-33a39834.entry.js.map → p-f738ef10.entry.js.map} +0 -0
  462. /package/dist/beeq/{p-be4a88df.entry.js.map → p-fc2f0022.entry.js.map} +0 -0
  463. /package/dist/components/{p-B-HVvLrd.js.map → p-3kuGtVv3.js.map} +0 -0
  464. /package/dist/components/{p-DWR8iX59.js.map → p-9gvSRSmi.js.map} +0 -0
  465. /package/dist/components/{p-D0zwGLLG.js.map → p-BrcJUBET.js.map} +0 -0
  466. /package/dist/components/{p-vH9q8NAw.js.map → p-C63H4SKY.js.map} +0 -0
  467. /package/dist/components/{p-C0L4R3iu.js.map → p-DSDQV9S1.js.map} +0 -0
  468. /package/dist/components/{p-DpyHfE7c.js.map → p-ibgfh-jN.js.map} +0 -0
@@ -4,16 +4,23 @@
4
4
  */
5
5
  'use strict';
6
6
 
7
- var index = require('./index-CbmPaaDD.js');
7
+ var index = require('./index-BKXwzJHW.js');
8
8
  var debounce = require('./debounce-DFaAa1Cu.js');
9
- var isHTMLElement = require('./isHTMLElement-DMA6t4n4.js');
9
+ var event = require('./event-BhuEFC-I.js');
10
+ var getNextElement = require('./getNextElement-Bcdj4jIn.js');
10
11
  var isNil = require('./isNil-CFhdj92S.js');
11
12
  var props = require('./props-DzFXZXSF.js');
12
13
 
13
14
  const RADIO_GROUP_ORIENTATION = ['horizontal', 'vertical'];
14
15
 
15
- const bqRadioGroupCss = "::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:\"Outfit\",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq:not([bq-mode]),.light,:root:not([bq-theme]):not([bq-mode]),:root[bq-theme=beeq]:not([bq-mode]),[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:\"Poppins\",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,.endava:not([bq-mode]),[bq-theme=endava]:not([bq-mode]),[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.inline-block{display:inline-block}.flex{display:flex}.flex-col{flex-direction:column}.border-0{border-width:0}.p-b-0{padding-block:0}.p-i-0{padding-inline:0}.m-b-0{margin-block:0}.m-i-0{margin-inline:0}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{display:inline-block}.bq-radio-group{margin-block:0;margin-inline:0}.bq-radio-group:not(.has-fieldset){border-width:0;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.bq-radio-group--horizontal{display:flex}.bq-radio-group--vertical{display:flex;flex-direction:column}.static{position:static}";
16
+ const bqRadioGroupCss = "::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{text-size-adjust:none;font-family:var(--bq-font-family);font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);line-height:var(--bq-font-line-height--regular);min-height:100vb;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:where(:root){--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:\"Outfit\",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq:not([bq-mode]),.light,:root:not([bq-theme]):not([bq-mode]),:root[bq-theme=beeq]:not([bq-mode]),[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}:where(.endava),:where([bq-theme=endava]){--bq-font-family:\"Poppins\",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,.endava:not([bq-mode]),[bq-theme=endava]:not([bq-mode]),[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-100);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-950);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.inline-block{display:inline-block}.flex{display:flex}.flex-col{flex-direction:column}.border-0{border-width:0}.p-b-0{padding-block:0}.p-i-0{padding-inline:0}.m-b-0{margin-block:0}.m-i-0{margin-inline:0}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{display:inline-block}.bq-radio-group{margin-block:0;margin-inline:0}.bq-radio-group:not(.has-fieldset){border-width:0;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.bq-radio-group--horizontal{display:flex}.bq-radio-group--vertical{display:flex;flex-direction:column}.static{position:static}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}";
16
17
 
18
+ const KEY_MAP = {
19
+ ArrowDown: 'forward',
20
+ ArrowRight: 'forward',
21
+ ArrowUp: 'backward',
22
+ ArrowLeft: 'backward',
23
+ };
17
24
  const BqRadioGroup = class {
18
25
  constructor(hostRef) {
19
26
  index.registerInstance(this, hostRef);
@@ -28,8 +35,11 @@ const BqRadioGroup = class {
28
35
  }
29
36
  // Own Properties
30
37
  // ====================
31
- focusedBqRadio = null;
38
+ initialValue;
32
39
  debouncedBqChange;
40
+ focusedBqRadio = null;
41
+ radioElementsSet = new Set();
42
+ cachedRadioElements = [];
33
43
  // Reference to host HTML element
34
44
  // ===================================
35
45
  internals;
@@ -37,6 +47,8 @@ const BqRadioGroup = class {
37
47
  // State() variables
38
48
  // Inlined decorator, alphabetical order
39
49
  // =======================================
50
+ checkedRadio;
51
+ tabIndex = '0';
40
52
  // Public Property API
41
53
  // ========================
42
54
  /** If true, all radio inputs in the group will display a background on hover */
@@ -59,33 +71,42 @@ const BqRadioGroup = class {
59
71
  value;
60
72
  // Prop lifecycle events
61
73
  // =======================
74
+ handleDebounceTimeChange() {
75
+ const MIN_DEBOUNCE_TIME = 0;
76
+ const normalizedDebounceTime = Math.max(MIN_DEBOUNCE_TIME, this.debounceTime);
77
+ if (normalizedDebounceTime !== this.debounceTime) {
78
+ this.debounceTime = normalizedDebounceTime;
79
+ }
80
+ this.debouncedBqChange?.cancel();
81
+ this.debouncedBqChange = debounce.debounce((event) => {
82
+ this.bqChange?.emit(event);
83
+ }, this.debounceTime);
84
+ }
85
+ handleDisabledChange() {
86
+ this.tabIndex = this.disabled ? '-1' : '0';
87
+ this.updateRadioTabIndexes();
88
+ }
62
89
  handleGroupProperties() {
63
- if (!this.bqRadioElements)
64
- return;
65
- this.bqRadioElements.forEach((bqRadio) => {
66
- bqRadio.backgroundOnHover = this.backgroundOnHover;
67
- bqRadio.checked = !isNil.isNil(this.value) ? bqRadio.value === this.value : false;
68
- bqRadio.disabled = this.disabled;
69
- bqRadio.name = this.name;
70
- bqRadio.required = this.required;
71
- });
90
+ this.updateRadioProperties();
72
91
  }
73
92
  checkPropValues() {
74
93
  props.validatePropValue(RADIO_GROUP_ORIENTATION, 'vertical', this.el, 'orientation');
75
94
  }
76
- checkDebounceChange() {
77
- if (this.debounceTime < 0) {
78
- this.debounceTime = Math.max(0, this.debounceTime);
95
+ handleRequiredChange() {
96
+ this.updateFormValidity();
97
+ }
98
+ handleValueChange() {
99
+ this.updateRadioProperties();
100
+ this.updateFormValidity();
101
+ // Find and update the checked radio based on the new value
102
+ const newCheckedRadio = this.cachedRadioElements.find((radio) => radio.value === this.value);
103
+ if (newCheckedRadio) {
104
+ this.checkedRadio = newCheckedRadio;
105
+ this.debouncedBqChange?.({ value: this.value, target: newCheckedRadio });
79
106
  }
80
- if (this.debouncedBqChange) {
81
- this.debouncedBqChange.cancel();
107
+ else {
108
+ this.checkedRadio = undefined;
82
109
  }
83
- this.debouncedBqChange = debounce.debounce((event) => {
84
- this.bqChange.emit(event);
85
- }, this.debounceTime);
86
- }
87
- async handleRequiredChange() {
88
- await this.updateFormValidity();
89
110
  }
90
111
  // Events section
91
112
  // Requires JSDocs for public API documentation
@@ -96,67 +117,65 @@ const BqRadioGroup = class {
96
117
  // Ordered by their natural call order
97
118
  // =====================================
98
119
  componentWillLoad() {
99
- this.checkPropValues();
100
- this.checkDebounceChange();
101
- this.internals.setFormValue(this.value);
120
+ this.initialValue = this.value;
121
+ this.handleDebounceTimeChange();
122
+ this.internals.setFormValue(this.value ?? null);
123
+ this.updateCustomStates();
124
+ this.updateFormValidity();
102
125
  }
103
- componentDidLoad() {
104
- this.handleGroupProperties();
126
+ disconnectedCallback() {
127
+ this.debouncedBqChange?.cancel();
105
128
  }
106
- async formAssociatedCallback() {
107
- this.internals.setFormValue(this.value);
108
- await this.updateFormValidity();
129
+ formAssociatedCallback() {
130
+ this.internals.setFormValue(this.value ?? null);
131
+ this.updateFormValidity();
109
132
  }
110
133
  formResetCallback() {
111
- this.value = null;
112
- this.internals.setFormValue(this.value);
134
+ this.value = this.initialValue;
135
+ this.internals.setFormValue(this.value ?? null);
136
+ this.updateFormValidity();
137
+ this.updateCustomStates();
113
138
  }
114
139
  // Listeners
115
140
  // ==============
116
- onMouseDown(event) {
117
- if (!isNil.isNil(this.focusedBqRadio) && isHTMLElement.isHTMLElement(event.target, 'bq-radio') && this.el.contains(event.target)) {
118
- this.focusedBqRadio = event.target;
119
- }
141
+ async onBqClick(event$1) {
142
+ if (!event.isEventTargetChildOfElement(event$1, this.el))
143
+ return;
144
+ const { target, value } = event$1.detail;
145
+ if (value === this.value)
146
+ return;
147
+ requestAnimationFrame(() => {
148
+ if (event$1.defaultPrevented)
149
+ return;
150
+ this.updateRadioSelection(target);
151
+ });
120
152
  }
121
- onBqClick(event) {
122
- if (isNil.isNil(this.focusedBqRadio)) {
123
- this.focusedBqRadio = event.detail;
124
- }
125
- if (event.detail.value === this.value)
153
+ onBqKeyDown(event$1) {
154
+ if (!event.isEventTargetChildOfElement(event$1, this.el))
155
+ return;
156
+ const direction = KEY_MAP[event$1.detail.key];
157
+ if (!direction)
126
158
  return;
127
- const target = event.detail;
128
- this.bqRadioElements.forEach((bqRadioElement) => (bqRadioElement.checked = bqRadioElement === target));
129
- this.setCheckedRadioItem(event.detail);
159
+ this.focusRadioInputSibling(event$1.detail.target, direction);
130
160
  }
131
- onBqKeyDown(event) {
132
- const { target } = event;
133
- if (!isHTMLElement.isHTMLElement(target, 'bq-radio'))
161
+ onBqFocus(event$1) {
162
+ if (!event.isEventTargetChildOfElement(event$1, this.el))
134
163
  return;
135
- switch (event.detail.key) {
136
- case 'ArrowDown':
137
- case 'ArrowRight': {
138
- this.focusRadioInputSibling(target, true);
139
- break;
140
- }
141
- case 'ArrowUp':
142
- case 'ArrowLeft': {
143
- this.focusRadioInputSibling(target, false);
144
- break;
145
- }
164
+ const shouldStopPropagation = this.focusedBqRadio && event$1.detail !== this.focusedBqRadio;
165
+ if (shouldStopPropagation) {
166
+ event$1.stopPropagation();
146
167
  }
168
+ this.focusedBqRadio = event$1.detail;
147
169
  }
148
- onBqFocus(event) {
149
- if (event.detail !== this.focusedBqRadio)
170
+ onBqBlur(event$1) {
171
+ if (!event.isEventTargetChildOfElement(event$1, this.el))
172
+ return;
173
+ const shouldStopPropagation = this.focusedBqRadio && event$1.detail !== this.focusedBqRadio;
174
+ if (shouldStopPropagation) {
175
+ event$1.stopPropagation();
150
176
  return;
151
- event.stopPropagation();
152
- }
153
- onBqBlur(event) {
154
- if (!isNil.isNil(this.focusedBqRadio) && event.detail !== this.focusedBqRadio) {
155
- event.stopPropagation();
156
- }
157
- else {
158
- this.focusedBqRadio = null;
159
177
  }
178
+ this.focusedBqRadio = null;
160
179
  }
161
180
  // Public methods API
162
181
  // These methods are exposed on the host element.
@@ -168,66 +187,154 @@ const BqRadioGroup = class {
168
187
  // Internal business logic.
169
188
  // These methods cannot be called from the host element.
170
189
  // =======================================================
171
- focusRadioInputSibling = (currentTarget, next) => {
172
- this.bqRadioElements.forEach((bqRadioElement, index, elements) => {
173
- if (bqRadioElement === currentTarget) {
174
- const target = this.getNextRadioElement(elements, index, next);
175
- currentTarget.checked = false;
176
- target.vFocus();
177
- this.setCheckedRadioItem(target);
178
- }
190
+ /**
191
+ * Initializes the radio elements set by querying the host element for `ds-radio` elements.
192
+ * This is done to avoid re-querying the host element for radio elements on every change.
193
+ */
194
+ initializeRadioElements = () => {
195
+ this.radioElementsSet.clear();
196
+ this.el.querySelectorAll('bq-radio').forEach((radio) => this.radioElementsSet.add(radio));
197
+ // Caching the radio elements in an array for faster access and iteration
198
+ this.cachedRadioElements = Array.from(this.radioElementsSet);
199
+ // Set the tabIndex of the host element to -1 if there are no radio elements or the group is disabled, otherwise set it to 0
200
+ this.tabIndex = this.cachedRadioElements.length === 0 || this.disabled ? '-1' : '0';
201
+ // Set initial tabIndex for all radios
202
+ this.updateRadioTabIndexes();
203
+ };
204
+ /**
205
+ * Sets tabIndex for all radio elements based on current state
206
+ * Handles all scenarios: disabled state, checked radio, value matching, fallback to first
207
+ */
208
+ updateRadioTabIndexes = () => {
209
+ if (this.cachedRadioElements.length === 0)
210
+ return;
211
+ // If disabled, all radios get tabIndex -1
212
+ if (this.disabled) {
213
+ this.cachedRadioElements.forEach((radio) => (radio.tabIndex = -1));
214
+ return;
215
+ }
216
+ // Find which radio should be focusable
217
+ let focusableRadio;
218
+ // Priority 1: Currently checked radio
219
+ focusableRadio = this.cachedRadioElements.find((radio) => radio.checked);
220
+ // Priority 2: Radio matching current value
221
+ if (!focusableRadio && this.value) {
222
+ focusableRadio = this.cachedRadioElements.find((radio) => radio.value === this.value);
223
+ }
224
+ // Priority 3: First enabled radio (fallback)
225
+ if (!focusableRadio) {
226
+ focusableRadio = this.cachedRadioElements.find((radio) => !radio.disabled);
227
+ }
228
+ // Apply tabIndex to all radios
229
+ this.cachedRadioElements.forEach((radio) => {
230
+ radio.tabIndex = radio === focusableRadio ? 0 : -1;
179
231
  });
180
232
  };
181
- setCheckedRadioItem = (target) => {
182
- const { value } = target;
233
+ /**
234
+ * Updates the radio selection and focus.
235
+ * @param target - The radio element to update.
236
+ */
237
+ updateRadioSelection = (target) => {
238
+ // Only uncheck the previously checked radio if it's different
239
+ if (this.checkedRadio && this.checkedRadio !== target) {
240
+ this.checkedRadio.checked = false;
241
+ this.checkedRadio.tabIndex = -1;
242
+ }
183
243
  target.checked = true;
184
- this.value = value;
185
- this.focusedBqRadio = target;
186
- this.internals.setFormValue(value);
187
- this.debouncedBqChange({ value, target });
244
+ target.tabIndex = 0;
245
+ target.vFocus();
246
+ this.checkedRadio = target;
247
+ this.value = target.value;
248
+ this.internals?.setFormValue(this.value ?? null);
249
+ this.updateRadioTabIndexes();
188
250
  };
189
- getNextRadioElement = (elements, index, forward = true) => {
190
- let element = null;
191
- let elementIndex = index;
192
- do {
193
- elementIndex = (elements.length + (elementIndex + (forward ? 1 : -1))) % elements.length;
194
- element = elements[elementIndex];
195
- } while (element.disabled);
196
- return element;
251
+ /**
252
+ * Synchronizes properties of child radio elements with the group's state.
253
+ */
254
+ updateRadioProperties = () => {
255
+ if (this.cachedRadioElements.length === 0)
256
+ return;
257
+ const { backgroundOnHover, disabled, name, required, value } = this;
258
+ for (const radio of this.cachedRadioElements) {
259
+ radio.backgroundOnHover = backgroundOnHover;
260
+ radio.checked = value === radio.value;
261
+ // This will allows us to force all radio elements to be disabled
262
+ // while keeping the disabled state of the radio element if it was set individually by the user
263
+ radio.forceDisabled = disabled;
264
+ radio.name = name;
265
+ radio.required = required;
266
+ }
267
+ };
268
+ /**
269
+ * Focuses the next/previous radio element in the group based on the current target.
270
+ * Handles circular navigation and skips disabled elements.
271
+ * @param currentTarget - The currently focused radio element
272
+ * @param direction - The navigation direction ('forward' | 'backward')
273
+ */
274
+ focusRadioInputSibling = (currentTarget, direction) => {
275
+ // If there is none or only one radio element, there will be no sibling to focus
276
+ if (this.cachedRadioElements.length <= 1)
277
+ return;
278
+ const currentIndex = this.cachedRadioElements.indexOf(currentTarget);
279
+ // If the index of the radio element target is not found, it means that it's not part of the group
280
+ if (currentIndex === -1)
281
+ return;
282
+ const nextElement = getNextElement.getNextElement(this.cachedRadioElements, currentIndex, direction);
283
+ this.updateRadioSelection(nextElement);
197
284
  };
198
285
  updateFormValidity = async () => {
199
286
  const { internals, required, requiredValidationMessage, value } = this;
200
287
  // Clear the validity state
201
288
  internals?.states.clear();
202
289
  if (!required || (required && !isNil.isNil(value))) {
203
- // If the checkbox is not required or is checked, set the validity state to valid
290
+ // If the radio group is not required or has a value, set the validity state to valid
204
291
  internals?.states.add('valid');
205
292
  internals?.setValidity({});
206
293
  return;
207
294
  }
208
- // If the checkbox is required and not checked, set the validity state to invalid
295
+ const firstRadio = this.cachedRadioElements[0];
296
+ if (!firstRadio)
297
+ return;
298
+ // If the radio group is required and has no value, set the validity state to invalid
209
299
  internals?.states.add('invalid');
210
- internals?.setValidity({ valueMissing: true }, requiredValidationMessage, await this.bqRadioElements[0].getNativeInput());
300
+ // We need to pass the native input element to the setValidity method as anchor element
301
+ internals?.setValidity({ valueMissing: true }, requiredValidationMessage ?? 'Please select an option', await firstRadio.getNativeInput());
302
+ };
303
+ /**
304
+ * Updates the custom states based on the component properties.
305
+ * The custom states can be used to style the component based on the component properties.
306
+ * The custom states are `disabled`, based on the component properties.
307
+ */
308
+ updateCustomStates = () => {
309
+ const states = new Set();
310
+ if (this.disabled)
311
+ states.add('disabled');
312
+ if (this.orientation)
313
+ states.add(this.orientation);
314
+ // Update states
315
+ this.internals?.states.clear();
316
+ states.forEach((state) => this.internals?.states.add(state));
317
+ };
318
+ handleSlotChange = () => {
319
+ this.initializeRadioElements();
320
+ this.updateRadioProperties();
211
321
  };
212
- get bqRadioElements() {
213
- return Array.from(this.el.querySelectorAll('bq-radio'));
214
- }
215
322
  // render() function
216
323
  // Always the last one in the class.
217
324
  // ===================================
218
325
  render() {
219
- return (index.h("fieldset", { key: 'f6802fdedbf33e5863a68e159d1add1dfc3df7a8', class: { 'bq-radio-group': true, 'has-fieldset': this.fieldset }, "aria-labelledby": "bq-radio-group__label", "aria-controls": "bq-radiogroup", role: "radiogroup", part: "base" }, index.h("legend", { key: '379b6151d63422ed543b7c520ff035f6ae4154a0', part: "label" }, index.h("slot", { key: '622478a3c8c4acb4d656aef8bedbc7961e5aa6e1', id: "bq-radiogroup__label", name: "label" })), index.h("div", { key: 'e993a782177088dafd25b49a693e6dcf8255b2c2', class: `bq-radio-group--${this.orientation}`, part: "group" }, index.h("slot", { key: 'cf52a7bdd57bc4e6204ec4355a2c335bd6a4b7e4', id: "bq-radiogroup" }))));
326
+ return (index.h(index.Host, { key: '0f3d7f7b43b4d98eaee94ffa79ad0e23c0f80cd9', tabindex: this.tabIndex }, index.h("fieldset", { key: 'e48c6c15370dd881ed26b7df9e578350f3a42e34', class: { 'bq-radio-group': true, 'has-fieldset': this.fieldset }, "aria-controls": "bq-radiogroup", "aria-labelledby": "bq-radio-group__label", "aria-disabled": this.disabled, "aria-required": this.required, disabled: this.disabled, role: "radiogroup", part: "base" }, index.h("legend", { key: '56faba3e726d627fe1b76f96d2eb0dc352c72165', part: "label" }, index.h("slot", { key: '87ae7a460396a150e136123be5b895f2e50b229e', id: "bq-radiogroup__label", name: "label" })), index.h("div", { key: '6aad53784020d3e1a4fe1a22d4e53812f6311058', class: `bq-radio-group--${this.orientation}`, part: "group" }, index.h("slot", { key: '9753cae782f6e3e4a2a419d31d786b7d838336bd', id: "bq-radiogroup", onSlotchange: this.handleSlotChange })))));
220
327
  }
221
328
  static get delegatesFocus() { return true; }
222
329
  static get formAssociated() { return true; }
223
330
  static get watchers() { return {
331
+ "debounceTime": ["handleDebounceTimeChange"],
332
+ "disabled": ["handleDisabledChange", "handleGroupProperties"],
224
333
  "backgroundOnHover": ["handleGroupProperties"],
225
- "disabled": ["handleGroupProperties"],
226
334
  "name": ["handleGroupProperties"],
227
335
  "required": ["handleGroupProperties", "handleRequiredChange"],
228
- "value": ["handleGroupProperties", "handleRequiredChange"],
229
336
  "orientation": ["checkPropValues"],
230
- "debounceTime": ["checkDebounceChange"]
337
+ "value": ["handleValueChange"]
231
338
  }; }
232
339
  };
233
340
  BqRadioGroup.style = bqRadioGroupCss;
@@ -1 +1 @@
1
- {"file":"bq-radio-group.entry.cjs.js","mappings":"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","names":["isNil","validatePropValue","debounce","isHTMLElement","h"],"sources":["../../packages/beeq/src/components/radio-group/bq-radio-group.types.ts","../../packages/beeq/src/components/radio-group/scss/bq-radio-group.scss?tag=bq-radio-group&encapsulation=shadow","../../packages/beeq/src/components/radio-group/bq-radio-group.tsx"],"sourcesContent":["export const RADIO_GROUP_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TRadioGroupOrientation = (typeof RADIO_GROUP_ORIENTATION)[number];\n","/* -------------------------------------------------------------------------- */\n/* Radio group styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply inline-block;\n}\n\n.bq-radio-group {\n @apply m-b-0 m-i-0;\n\n &:not(.has-fieldset) {\n @apply border-0 m-b-0 m-i-0 p-b-0 p-i-0;\n }\n\n &--horizontal {\n @apply flex;\n }\n\n &--vertical {\n @apply flex flex-col;\n }\n}\n","import { AttachInternals, Component, Element, Event, h, Listen, Prop, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport { RADIO_GROUP_ORIENTATION } from './bq-radio-group.types';\nimport type { TRadioGroupOrientation } from './bq-radio-group.types';\nimport { debounce, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\n\n/**\n * The radio group is a user interface component that groups radio buttons to enable a single selection within the group.\n *\n * @example How to use it\n * ```html\n * <bq-radio-group fieldset value=\"option1\">\n * <span slot=\"label\">radio group</span>\n * <bq-radio value=\"option1\">Radio option 1</bq-radio>\n * <bq-radio value=\"option2\">Radio option 2</bq-radio>\n * <bq-radio value=\"option3\">Radio option 3</bq-radio>\n * </bq-radio-group>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/9718e1-radio-button/b/09d7b1\n * @status stable\n *\n * @attr {boolean} background-on-hover - If `true`, the radio displays background on hover\n * @attr {number} debounce-time - A number representing the delay time (in milliseconds) that bqChange event handler gets triggered once the value change\n * @attr {boolean} disabled - If `true` radio inputs are disabled\n * @attr {boolean} fieldset - If `true` displays fieldset\n * @attr {string} name - Name of the HTML input form control. Submitted with the form as part of a name/value pair\n * @attr {\"horizontal\" | \"vertical\"} orientation - The display orientation of the radio inputs\n * @attr {boolean} required - If `true`, the radio group is required\n * @attr {string} required-validation-message - The native form validation message when the radio group is required\n * @attr {string} value - The display orientation of the radio inputs\n *\n * @method vClick - Simulate a click event on the native `<input>` HTML element used under the hood\n * @method vFocus - Sets focus on the native `<input>` HTML element used under the hood\n * @method vBlur - Remove focus from the native `<input>` HTML element used under the hood\n *\n * @event bqChange - Handler to be called when the radio state changes\n *\n * @slot - The bq-radio items to group\n * @slot label - The label content of radio group\n *\n * @part base - The component's internal wrapper of the radio components.\n * @part label - The `<legend>` element that holds the text content.\n * @part group - The `<div>` element that holds the radio inputs.\n */\n@Component({\n tag: 'bq-radio-group',\n styleUrl: './scss/bq-radio-group.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqRadioGroup {\n // Own Properties\n // ====================\n\n private focusedBqRadio: HTMLBqRadioElement | null = null;\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqRadioElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @AttachInternals() internals!: ElementInternals;\n @Element() el!: HTMLBqRadioGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, all radio inputs in the group will display a background on hover */\n @Prop({ reflect: true }) backgroundOnHover? = false;\n\n /** A number representing the delay time (in milliseconds) that `bqChange` event handler gets triggered once the value change */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n /** If true radio inputs are disabled */\n @Prop({ reflect: true }) disabled? = false;\n\n /** If true displays fieldset */\n @Prop({ reflect: true }) fieldset? = false;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** The display orientation of the radio inputs */\n @Prop({ reflect: true, mutable: true }) orientation?: TRadioGroupOrientation = 'vertical';\n\n /** If true, the radio group is required */\n @Prop({ reflect: true }) required? = false;\n\n /** The native form validation message when the radio group is required */\n @Prop({ reflect: true }) requiredValidationMessage?: string;\n\n /** A string representing the value of the radio. */\n @Prop({ reflect: true, mutable: true }) value?: string;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('backgroundOnHover')\n @Watch('disabled')\n @Watch('name')\n @Watch('required')\n @Watch('value')\n handleGroupProperties() {\n if (!this.bqRadioElements) return;\n\n this.bqRadioElements.forEach((bqRadio) => {\n bqRadio.backgroundOnHover = this.backgroundOnHover;\n bqRadio.checked = !isNil(this.value) ? bqRadio.value === this.value : false;\n bqRadio.disabled = this.disabled;\n bqRadio.name = this.name;\n bqRadio.required = this.required;\n });\n }\n\n @Watch('orientation')\n checkPropValues() {\n validatePropValue(RADIO_GROUP_ORIENTATION, 'vertical', this.el, 'orientation');\n }\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n @Watch('required')\n @Watch('value')\n async handleRequiredChange() {\n await this.updateFormValidity();\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the radio state changes */\n @Event() bqChange: EventEmitter<{ value: string; target: HTMLBqRadioElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n this.checkDebounceChange();\n this.internals.setFormValue(this.value);\n }\n\n componentDidLoad() {\n this.handleGroupProperties();\n }\n\n async formAssociatedCallback() {\n this.internals.setFormValue(this.value);\n await this.updateFormValidity();\n }\n\n formResetCallback() {\n this.value = null;\n this.internals.setFormValue(this.value);\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'body', passive: true })\n onMouseDown(event: MouseEvent) {\n if (!isNil(this.focusedBqRadio) && isHTMLElement(event.target, 'bq-radio') && this.el.contains(event.target)) {\n this.focusedBqRadio = event.target;\n }\n }\n\n @Listen('bqClick')\n onBqClick(event: CustomEvent<HTMLBqRadioElement>) {\n if (isNil(this.focusedBqRadio)) {\n this.focusedBqRadio = event.detail;\n }\n\n if (event.detail.value === this.value) return;\n\n const target = event.detail;\n this.bqRadioElements.forEach((bqRadioElement) => (bqRadioElement.checked = bqRadioElement === target));\n this.setCheckedRadioItem(event.detail);\n }\n\n @Listen('bqKeyDown')\n onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n if (!isHTMLElement(target, 'bq-radio')) return;\n\n switch (event.detail.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n this.focusRadioInputSibling(target, true);\n break;\n }\n\n case 'ArrowUp':\n case 'ArrowLeft': {\n this.focusRadioInputSibling(target, false);\n break;\n }\n\n default:\n }\n }\n\n @Listen('bqFocus', { capture: true })\n onBqFocus(event: CustomEvent<HTMLBqRadioElement>) {\n if (event.detail !== this.focusedBqRadio) return;\n\n event.stopPropagation();\n }\n\n @Listen('bqBlur', { capture: true })\n onBqBlur(event: CustomEvent<HTMLBqRadioElement>) {\n if (!isNil(this.focusedBqRadio) && event.detail !== this.focusedBqRadio) {\n event.stopPropagation();\n } else {\n this.focusedBqRadio = null;\n }\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private focusRadioInputSibling = (currentTarget: HTMLBqRadioElement, next: boolean): void => {\n this.bqRadioElements.forEach((bqRadioElement, index, elements) => {\n if (bqRadioElement === currentTarget) {\n const target = this.getNextRadioElement(elements, index, next);\n\n currentTarget.checked = false;\n\n target.vFocus();\n this.setCheckedRadioItem(target);\n }\n });\n };\n\n private setCheckedRadioItem = (target: HTMLBqRadioElement): void => {\n const { value } = target;\n target.checked = true;\n this.value = value;\n this.focusedBqRadio = target;\n this.internals.setFormValue(value);\n this.debouncedBqChange({ value, target });\n };\n\n private getNextRadioElement = (elements: HTMLBqRadioElement[], index: number, forward = true): HTMLBqRadioElement => {\n let element = null;\n let elementIndex = index;\n\n do {\n elementIndex = (elements.length + (elementIndex + (forward ? 1 : -1))) % elements.length;\n element = elements[elementIndex];\n } while (element.disabled);\n\n return element;\n };\n\n private updateFormValidity = async (): Promise<void> => {\n const { internals, required, requiredValidationMessage, value } = this;\n // Clear the validity state\n internals?.states.clear();\n\n if (!required || (required && !isNil(value))) {\n // If the checkbox is not required or is checked, set the validity state to valid\n internals?.states.add('valid');\n internals?.setValidity({});\n return;\n }\n\n // If the checkbox is required and not checked, set the validity state to invalid\n internals?.states.add('invalid');\n internals?.setValidity(\n { valueMissing: true },\n requiredValidationMessage,\n await this.bqRadioElements[0].getNativeInput(),\n );\n };\n\n private get bqRadioElements(): HTMLBqRadioElement[] {\n return Array.from(this.el.querySelectorAll('bq-radio'));\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <fieldset\n class={{ 'bq-radio-group': true, 'has-fieldset': this.fieldset }}\n aria-labelledby=\"bq-radio-group__label\"\n aria-controls=\"bq-radiogroup\"\n role=\"radiogroup\"\n part=\"base\"\n >\n <legend part=\"label\">\n <slot id=\"bq-radiogroup__label\" name=\"label\" />\n </legend>\n <div class={`bq-radio-group--${this.orientation}`} part=\"group\">\n <slot id=\"bq-radiogroup\" />\n </div>\n </fieldset>\n );\n }\n}\n"],"version":3}
1
+ {"file":"bq-radio-group.entry.cjs.js","mappings":";;;;;;;;;;;;;AAAO,MAAM,uBAAuB,GAAG,CAAC,YAAY,EAAE,UAAU,CAAU;;ACA1E,MAAM,eAAe,GAAG,womBAAwomB;;ACchqmB,MAAM,OAAO,GAAG;AACd,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,SAAS,EAAE,UAAU;CACb;MAmDG,YAAY,GAAA,MAAA;;;;;;;;;;;;;;AAIf,IAAA,YAAY;AACZ,IAAA,iBAAiB;IACjB,cAAc,GAA8B,IAAI;AACvC,IAAA,gBAAgB,GAAG,IAAI,GAAG,EAAsB;IACzD,mBAAmB,GAAyB,EAAE;;;AAKnC,IAAA,SAAS;;;;;AAOnB,IAAA,YAAY;IACZ,QAAQ,GAAe,GAAG;;;;IAMV,iBAAiB,GAAG,KAAK;;IAGV,YAAY,GAAG,CAAC;;IAG/B,QAAQ,GAAG,KAAK;;IAGhB,QAAQ,GAAG,KAAK;;AAGhB,IAAA,IAAI;;IAGW,WAAW,GAA2B,UAAU;;IAG/D,QAAQ,GAAG,KAAK;;AAGhB,IAAA,yBAAyB;;AAGV,IAAA,KAAK;;;IAM7C,wBAAwB,GAAA;QACtB,MAAM,iBAAiB,GAAG,CAAC;AAC3B,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC;AAE7E,QAAA,IAAI,sBAAsB,KAAK,IAAI,CAAC,YAAY,EAAE;AAChD,YAAA,IAAI,CAAC,YAAY,GAAG,sBAAsB;;AAG5C,QAAA,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAChC,IAAI,CAAC,iBAAiB,GAAGA,iBAAQ,CAAC,CAAC,KAAoD,KAAU;AAC/F,YAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;AAC5B,SAAC,EAAE,IAAI,CAAC,YAAY,CAAC;;IAIvB,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG;QAC1C,IAAI,CAAC,qBAAqB,EAAE;;IAO9B,qBAAqB,GAAA;QACnB,IAAI,CAAC,qBAAqB,EAAE;;IAI9B,eAAe,GAAA;QACbC,uBAAiB,CAAC,uBAAuB,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC;;IAIhF,oBAAoB,GAAA;QAClB,IAAI,CAAC,kBAAkB,EAAE;;IAI3B,iBAAiB,GAAA;QACf,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,kBAAkB,EAAE;;QAGzB,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QAC5F,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,eAAe;AACnC,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;;aACnE;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;;;;;;;AASxB,IAAA,QAAQ;;;;IAMjB,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;QAC9B,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;QAE/C,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,kBAAkB,EAAE;;IAG3B,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;;IAGlC,sBAAsB,GAAA;QACpB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,kBAAkB,EAAE;;IAG3B,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY;QAC9B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,kBAAkB,EAAE;;;;IAO3B,MAAM,SAAS,CAACC,OAAiE,EAAA;QAC/E,IAAI,CAACC,iCAA2B,CAACD,OAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAAE;QAElD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAGA,OAAK,CAAC,MAAM;AACtC,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;YAAE;QAE1B,qBAAqB,CAAC,MAAK;YACzB,IAAIA,OAAK,CAAC,gBAAgB;gBAAE;AAC5B,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;AACnC,SAAC,CAAC;;AAIJ,IAAA,WAAW,CAACA,OAA+D,EAAA;QACzE,IAAI,CAACC,iCAA2B,CAACD,OAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAAE;QAElD,MAAM,SAAS,GAA0B,OAAO,CAACA,OAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AAClE,QAAA,IAAI,CAAC,SAAS;YAAE;QAEhB,IAAI,CAAC,sBAAsB,CAACA,OAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;;AAI7D,IAAA,SAAS,CAACA,OAAsC,EAAA;QAC9C,IAAI,CAACC,iCAA2B,CAACD,OAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAAE;AAElD,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,IAAIA,OAAK,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc;QACzF,IAAI,qBAAqB,EAAE;YACzBA,OAAK,CAAC,eAAe,EAAE;;AAGzB,QAAA,IAAI,CAAC,cAAc,GAAGA,OAAK,CAAC,MAAM;;AAIpC,IAAA,QAAQ,CAACA,OAAsC,EAAA;QAC7C,IAAI,CAACC,iCAA2B,CAACD,OAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAAE;AAElD,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,IAAIA,OAAK,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc;QACzF,IAAI,qBAAqB,EAAE;YACzBA,OAAK,CAAC,eAAe,EAAE;YACvB;;AAGF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;;;;;;;;;;;AAe5B;;;AAGG;IACK,uBAAuB,GAAG,MAAW;AAC3C,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;QAC7B,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;QAEzF,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;;QAE5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG;;QAEnF,IAAI,CAAC,qBAAqB,EAAE;AAC9B,KAAC;AAED;;;AAGG;IACK,qBAAqB,GAAG,MAAW;AACzC,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;YAAE;;AAG3C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;YAClE;;;AAIF,QAAA,IAAI,cAA8C;;AAGlD,QAAA,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC;;AAGxE,QAAA,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE;YACjC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;;;QAIvF,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;;;QAI5E,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AACzC,YAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE;AACpD,SAAC,CAAC;AACJ,KAAC;AAED;;;AAGG;AACK,IAAA,oBAAoB,GAAG,CAAC,MAA0B,KAAU;;QAElE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;AACrD,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE;;AAGjC,QAAA,MAAM,CAAC,OAAO,GAAG,IAAI;AACrB,QAAA,MAAM,CAAC,QAAQ,GAAG,CAAC;QACnB,MAAM,CAAC,MAAM,EAAE;AAEf,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;QACzB,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;QAEhD,IAAI,CAAC,qBAAqB,EAAE;AAC9B,KAAC;AAED;;AAEG;IACK,qBAAqB,GAAG,MAAW;AACzC,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;YAAE;AAE3C,QAAA,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI;AAEnE,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5C,YAAA,KAAK,CAAC,iBAAiB,GAAG,iBAAiB;YAC3C,KAAK,CAAC,OAAO,GAAG,KAAK,KAAK,KAAK,CAAC,KAAK;;;AAGrC,YAAA,KAAK,CAAC,aAAa,GAAG,QAAQ;AAC9B,YAAA,KAAK,CAAC,IAAI,GAAG,IAAI;AACjB,YAAA,KAAK,CAAC,QAAQ,GAAG,QAAQ;;AAE7B,KAAC;AAED;;;;;AAKG;AACK,IAAA,sBAAsB,GAAG,CAAC,aAAiC,EAAE,SAAoB,KAAU;;AAEjG,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC;YAAE;QAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;;QAEpE,IAAI,YAAY,KAAK,EAAE;YAAE;AAEzB,QAAA,MAAM,WAAW,GAAGE,6BAAc,CAAC,IAAI,CAAC,mBAAmB,EAAE,YAAY,EAAE,SAAS,CAAC;AACrF,QAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;AACxC,KAAC;IAEO,kBAAkB,GAAG,YAA0B;QACrD,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,yBAAyB,EAAE,KAAK,EAAE,GAAG,IAAI;;AAEtE,QAAA,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE;AAEzB,QAAA,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAACC,WAAK,CAAC,KAAK,CAAC,CAAC,EAAE;;AAE5C,YAAA,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9B,YAAA,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;YAC1B;;QAGF,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU;YAAE;;AAEjB,QAAA,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;;AAEhC,QAAA,SAAS,EAAE,WAAW,CACpB,EAAE,YAAY,EAAE,IAAI,EAAE,EACtB,yBAAyB,IAAI,yBAAyB,EACtD,MAAM,UAAU,CAAC,cAAc,EAAE,CAClC;AACH,KAAC;AAED;;;;AAIG;IACK,kBAAkB,GAAG,MAAW;AACtC,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU;QAEhC,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QACzC,IAAI,IAAI,CAAC,WAAW;AAAE,YAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGlD,QAAA,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE;AAC9B,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9D,KAAC;IAEO,gBAAgB,GAAG,MAAW;QACpC,IAAI,CAAC,uBAAuB,EAAE;QAC9B,IAAI,CAAC,qBAAqB,EAAE;AAC9B,KAAC;;;;IAMD,MAAM,GAAA;AACJ,QAAA,QACEC,QAACC,UAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,EAC3BD,OAAA,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAClD,eAAe,EAAA,iBAAA,EACb,uBAAuB,EACxB,eAAA,EAAA,IAAI,CAAC,QAAQ,mBACb,IAAI,CAAC,QAAQ,EAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,YAAY,EACjB,IAAI,EAAC,MAAM,EAAA,EAEXA,OAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,OAAO,EAAA,EAClBA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAC,sBAAsB,EAAC,IAAI,EAAC,OAAO,GAAG,CACxC,EACTA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,CAAmB,gBAAA,EAAA,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAC,OAAO,EAAA,EAC7DA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,EAAE,EAAC,eAAe,EAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAI,CAAA,CAC5D,CACG,CACN;;;;;;;;;;;;;;;;;;","names":["debounce","validatePropValue","event","isEventTargetChildOfElement","getNextElement","isNil","h","Host"],"sources":["../../packages/beeq/src/components/radio-group/bq-radio-group.types.ts","../../packages/beeq/src/components/radio-group/scss/bq-radio-group.scss?tag=bq-radio-group&encapsulation=shadow","../../packages/beeq/src/components/radio-group/bq-radio-group.tsx"],"sourcesContent":["export const RADIO_GROUP_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TRadioGroupOrientation = (typeof RADIO_GROUP_ORIENTATION)[number];\n","/* -------------------------------------------------------------------------- */\n/* Radio group styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply inline-block;\n}\n\n.bq-radio-group {\n @apply m-b-0 m-i-0;\n\n &:not(.has-fieldset) {\n @apply border-0 m-b-0 m-i-0 p-b-0 p-i-0;\n }\n\n &--horizontal {\n @apply flex;\n }\n\n &--vertical {\n @apply flex flex-col;\n }\n}\n","import { AttachInternals, Component, Element, Event, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\nimport type { EventEmitter } from '@stencil/core';\n\nimport { RADIO_GROUP_ORIENTATION } from './bq-radio-group.types';\nimport type { TRadioGroupOrientation } from './bq-radio-group.types';\nimport {\n debounce,\n getNextElement,\n isEventTargetChildOfElement,\n isNil,\n TDebounce,\n validatePropValue,\n} from '../../shared/utils';\n\nconst KEY_MAP = {\n ArrowDown: 'forward',\n ArrowRight: 'forward',\n ArrowUp: 'backward',\n ArrowLeft: 'backward',\n} as const;\n\ntype Direction = (typeof KEY_MAP)[keyof typeof KEY_MAP];\n\n/**\n * The radio group is a user interface component that groups radio buttons to enable a single selection within the group.\n *\n * @example How to use it\n * ```html\n * <bq-radio-group fieldset value=\"option1\">\n * <span slot=\"label\">radio group</span>\n * <bq-radio value=\"option1\">Radio option 1</bq-radio>\n * <bq-radio value=\"option2\">Radio option 2</bq-radio>\n * <bq-radio value=\"option3\">Radio option 3</bq-radio>\n * </bq-radio-group>\n * ```\n *\n * @documentation https://www.beeq.design/3d466e231/p/9718e1-radio-button/b/09d7b1\n * @status stable\n *\n * @attr {boolean} background-on-hover - If `true`, the radio displays background on hover\n * @attr {number} debounce-time - A number representing the delay time (in milliseconds) that bqChange event handler gets triggered once the value change\n * @attr {boolean} disabled - If `true` radio inputs are disabled\n * @attr {boolean} fieldset - If `true` displays fieldset\n * @attr {string} name - Name of the HTML input form control. Submitted with the form as part of a name/value pair\n * @attr {\"horizontal\" | \"vertical\"} orientation - The display orientation of the radio inputs\n * @attr {boolean} required - If `true`, the radio group is required\n * @attr {string} required-validation-message - The native form validation message when the radio group is required\n * @attr {string} value - The display orientation of the radio inputs\n *\n * @method vClick - Simulate a click event on the native `<input>` HTML element used under the hood\n * @method vFocus - Sets focus on the native `<input>` HTML element used under the hood\n * @method vBlur - Remove focus from the native `<input>` HTML element used under the hood\n *\n * @event bqChange - Handler to be called when the radio state changes\n *\n * @slot - The bq-radio items to group\n * @slot label - The label content of radio group\n *\n * @part base - The component's internal wrapper of the radio components.\n * @part label - The `<legend>` element that holds the text content.\n * @part group - The `<div>` element that holds the radio inputs.\n */\n@Component({\n tag: 'bq-radio-group',\n styleUrl: './scss/bq-radio-group.scss',\n formAssociated: true,\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqRadioGroup {\n // Own Properties\n // ====================\n\n private initialValue?: string;\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqRadioElement }>;\n private focusedBqRadio: HTMLBqRadioElement | null = null;\n private readonly radioElementsSet = new Set<HTMLBqRadioElement>();\n private cachedRadioElements: HTMLBqRadioElement[] = [];\n\n // Reference to host HTML element\n // ===================================\n\n @AttachInternals() internals!: ElementInternals;\n @Element() el!: HTMLBqRadioGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() checkedRadio?: HTMLBqRadioElement;\n @State() tabIndex: '0' | '-1' = '0';\n\n // Public Property API\n // ========================\n\n /** If true, all radio inputs in the group will display a background on hover */\n @Prop({ reflect: true }) backgroundOnHover = false;\n\n /** A number representing the delay time (in milliseconds) that `bqChange` event handler gets triggered once the value change */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n /** If true radio inputs are disabled */\n @Prop({ reflect: true }) disabled = false;\n\n /** If true displays fieldset */\n @Prop({ reflect: true }) fieldset = false;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** The display orientation of the radio inputs */\n @Prop({ reflect: true, mutable: true }) orientation: TRadioGroupOrientation = 'vertical';\n\n /** If true, the radio group is required */\n @Prop({ reflect: true }) required = false;\n\n /** The native form validation message when the radio group is required */\n @Prop({ reflect: true }) requiredValidationMessage?: string;\n\n /** A string representing the value of the radio. */\n @Prop({ reflect: true, mutable: true }) value?: string;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('debounceTime')\n handleDebounceTimeChange() {\n const MIN_DEBOUNCE_TIME = 0;\n const normalizedDebounceTime = Math.max(MIN_DEBOUNCE_TIME, this.debounceTime);\n\n if (normalizedDebounceTime !== this.debounceTime) {\n this.debounceTime = normalizedDebounceTime;\n }\n\n this.debouncedBqChange?.cancel();\n this.debouncedBqChange = debounce((event: { value: string; target: HTMLBqRadioElement }): void => {\n this.bqChange?.emit(event);\n }, this.debounceTime);\n }\n\n @Watch('disabled')\n handleDisabledChange() {\n this.tabIndex = this.disabled ? '-1' : '0';\n this.updateRadioTabIndexes();\n }\n\n @Watch('backgroundOnHover')\n @Watch('disabled')\n @Watch('name')\n @Watch('required')\n handleGroupProperties() {\n this.updateRadioProperties();\n }\n\n @Watch('orientation')\n checkPropValues() {\n validatePropValue(RADIO_GROUP_ORIENTATION, 'vertical', this.el, 'orientation');\n }\n\n @Watch('required')\n handleRequiredChange() {\n this.updateFormValidity();\n }\n\n @Watch('value')\n handleValueChange() {\n this.updateRadioProperties();\n this.updateFormValidity();\n\n // Find and update the checked radio based on the new value\n const newCheckedRadio = this.cachedRadioElements.find((radio) => radio.value === this.value);\n if (newCheckedRadio) {\n this.checkedRadio = newCheckedRadio;\n this.debouncedBqChange?.({ value: this.value, target: newCheckedRadio });\n } else {\n this.checkedRadio = undefined;\n }\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the radio state changes */\n @Event() bqChange: EventEmitter<{ value: string; target: HTMLBqRadioElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.initialValue = this.value;\n this.handleDebounceTimeChange();\n this.internals.setFormValue(this.value ?? null);\n\n this.updateCustomStates();\n this.updateFormValidity();\n }\n\n disconnectedCallback() {\n this.debouncedBqChange?.cancel();\n }\n\n formAssociatedCallback() {\n this.internals.setFormValue(this.value ?? null);\n this.updateFormValidity();\n }\n\n formResetCallback() {\n this.value = this.initialValue;\n this.internals.setFormValue(this.value ?? null);\n this.updateFormValidity();\n this.updateCustomStates();\n }\n\n // Listeners\n // ==============\n\n @Listen('bqClick', { capture: true })\n async onBqClick(event: CustomEvent<{ value: string; target: HTMLBqRadioElement }>) {\n if (!isEventTargetChildOfElement(event, this.el)) return;\n\n const { target, value } = event.detail;\n if (value === this.value) return;\n\n requestAnimationFrame(() => {\n if (event.defaultPrevented) return;\n this.updateRadioSelection(target);\n });\n }\n\n @Listen('bqKeyDown')\n onBqKeyDown(event: CustomEvent<{ key: string; target: HTMLBqRadioElement }>) {\n if (!isEventTargetChildOfElement(event, this.el)) return;\n\n const direction: Direction | undefined = KEY_MAP[event.detail.key];\n if (!direction) return;\n\n this.focusRadioInputSibling(event.detail.target, direction);\n }\n\n @Listen('bqFocus', { capture: true })\n onBqFocus(event: CustomEvent<HTMLBqRadioElement>) {\n if (!isEventTargetChildOfElement(event, this.el)) return;\n\n const shouldStopPropagation = this.focusedBqRadio && event.detail !== this.focusedBqRadio;\n if (shouldStopPropagation) {\n event.stopPropagation();\n }\n\n this.focusedBqRadio = event.detail;\n }\n\n @Listen('bqBlur', { capture: true })\n onBqBlur(event: CustomEvent<HTMLBqRadioElement>) {\n if (!isEventTargetChildOfElement(event, this.el)) return;\n\n const shouldStopPropagation = this.focusedBqRadio && event.detail !== this.focusedBqRadio;\n if (shouldStopPropagation) {\n event.stopPropagation();\n return;\n }\n\n this.focusedBqRadio = null;\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n /**\n * Initializes the radio elements set by querying the host element for `ds-radio` elements.\n * This is done to avoid re-querying the host element for radio elements on every change.\n */\n private initializeRadioElements = (): void => {\n this.radioElementsSet.clear();\n this.el.querySelectorAll('bq-radio').forEach((radio) => this.radioElementsSet.add(radio));\n // Caching the radio elements in an array for faster access and iteration\n this.cachedRadioElements = Array.from(this.radioElementsSet);\n // Set the tabIndex of the host element to -1 if there are no radio elements or the group is disabled, otherwise set it to 0\n this.tabIndex = this.cachedRadioElements.length === 0 || this.disabled ? '-1' : '0';\n // Set initial tabIndex for all radios\n this.updateRadioTabIndexes();\n };\n\n /**\n * Sets tabIndex for all radio elements based on current state\n * Handles all scenarios: disabled state, checked radio, value matching, fallback to first\n */\n private updateRadioTabIndexes = (): void => {\n if (this.cachedRadioElements.length === 0) return;\n\n // If disabled, all radios get tabIndex -1\n if (this.disabled) {\n this.cachedRadioElements.forEach((radio) => (radio.tabIndex = -1));\n return;\n }\n\n // Find which radio should be focusable\n let focusableRadio: HTMLBqRadioElement | undefined;\n\n // Priority 1: Currently checked radio\n focusableRadio = this.cachedRadioElements.find((radio) => radio.checked);\n\n // Priority 2: Radio matching current value\n if (!focusableRadio && this.value) {\n focusableRadio = this.cachedRadioElements.find((radio) => radio.value === this.value);\n }\n\n // Priority 3: First enabled radio (fallback)\n if (!focusableRadio) {\n focusableRadio = this.cachedRadioElements.find((radio) => !radio.disabled);\n }\n\n // Apply tabIndex to all radios\n this.cachedRadioElements.forEach((radio) => {\n radio.tabIndex = radio === focusableRadio ? 0 : -1;\n });\n };\n\n /**\n * Updates the radio selection and focus.\n * @param target - The radio element to update.\n */\n private updateRadioSelection = (target: HTMLBqRadioElement): void => {\n // Only uncheck the previously checked radio if it's different\n if (this.checkedRadio && this.checkedRadio !== target) {\n this.checkedRadio.checked = false;\n this.checkedRadio.tabIndex = -1;\n }\n\n target.checked = true;\n target.tabIndex = 0;\n target.vFocus();\n\n this.checkedRadio = target;\n this.value = target.value;\n this.internals?.setFormValue(this.value ?? null);\n\n this.updateRadioTabIndexes();\n };\n\n /**\n * Synchronizes properties of child radio elements with the group's state.\n */\n private updateRadioProperties = (): void => {\n if (this.cachedRadioElements.length === 0) return;\n\n const { backgroundOnHover, disabled, name, required, value } = this;\n\n for (const radio of this.cachedRadioElements) {\n radio.backgroundOnHover = backgroundOnHover;\n radio.checked = value === radio.value;\n // This will allows us to force all radio elements to be disabled\n // while keeping the disabled state of the radio element if it was set individually by the user\n radio.forceDisabled = disabled;\n radio.name = name;\n radio.required = required;\n }\n };\n\n /**\n * Focuses the next/previous radio element in the group based on the current target.\n * Handles circular navigation and skips disabled elements.\n * @param currentTarget - The currently focused radio element\n * @param direction - The navigation direction ('forward' | 'backward')\n */\n private focusRadioInputSibling = (currentTarget: HTMLBqRadioElement, direction: Direction): void => {\n // If there is none or only one radio element, there will be no sibling to focus\n if (this.cachedRadioElements.length <= 1) return;\n\n const currentIndex = this.cachedRadioElements.indexOf(currentTarget);\n // If the index of the radio element target is not found, it means that it's not part of the group\n if (currentIndex === -1) return;\n\n const nextElement = getNextElement(this.cachedRadioElements, currentIndex, direction);\n this.updateRadioSelection(nextElement);\n };\n\n private updateFormValidity = async (): Promise<void> => {\n const { internals, required, requiredValidationMessage, value } = this;\n // Clear the validity state\n internals?.states.clear();\n\n if (!required || (required && !isNil(value))) {\n // If the radio group is not required or has a value, set the validity state to valid\n internals?.states.add('valid');\n internals?.setValidity({});\n return;\n }\n\n const firstRadio = this.cachedRadioElements[0];\n if (!firstRadio) return;\n // If the radio group is required and has no value, set the validity state to invalid\n internals?.states.add('invalid');\n // We need to pass the native input element to the setValidity method as anchor element\n internals?.setValidity(\n { valueMissing: true },\n requiredValidationMessage ?? 'Please select an option',\n await firstRadio.getNativeInput(),\n );\n };\n\n /**\n * Updates the custom states based on the component properties.\n * The custom states can be used to style the component based on the component properties.\n * The custom states are `disabled`, based on the component properties.\n */\n private updateCustomStates = (): void => {\n const states = new Set<string>();\n\n if (this.disabled) states.add('disabled');\n if (this.orientation) states.add(this.orientation);\n\n // Update states\n this.internals?.states.clear();\n states.forEach((state) => this.internals?.states.add(state));\n };\n\n private handleSlotChange = (): void => {\n this.initializeRadioElements();\n this.updateRadioProperties();\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host tabindex={this.tabIndex}>\n <fieldset\n class={{ 'bq-radio-group': true, 'has-fieldset': this.fieldset }}\n aria-controls=\"bq-radiogroup\"\n aria-labelledby=\"bq-radio-group__label\"\n aria-disabled={this.disabled}\n aria-required={this.required}\n disabled={this.disabled}\n role=\"radiogroup\"\n part=\"base\"\n >\n <legend part=\"label\">\n <slot id=\"bq-radiogroup__label\" name=\"label\" />\n </legend>\n <div class={`bq-radio-group--${this.orientation}`} part=\"group\">\n <slot id=\"bq-radiogroup\" onSlotchange={this.handleSlotChange} />\n </div>\n </fieldset>\n </Host>\n );\n }\n}\n"],"version":3}