@fluentui/web-components 3.0.0-rc.2 → 3.0.0-rc.20

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 (679) hide show
  1. package/CHANGELOG.md +177 -2
  2. package/custom-elements.json +9653 -9708
  3. package/dist/esm/accordion/accordion.d.ts +11 -8
  4. package/dist/esm/accordion/accordion.definition.js +2 -2
  5. package/dist/esm/accordion/accordion.definition.js.map +1 -1
  6. package/dist/esm/accordion/accordion.js +47 -46
  7. package/dist/esm/accordion/accordion.js.map +1 -1
  8. package/dist/esm/accordion/accordion.options.d.ts +7 -1
  9. package/dist/esm/accordion/accordion.options.js +7 -0
  10. package/dist/esm/accordion/accordion.options.js.map +1 -1
  11. package/dist/esm/accordion/accordion.styles.js +1 -1
  12. package/dist/esm/accordion/accordion.styles.js.map +1 -1
  13. package/dist/esm/accordion/index.d.ts +1 -0
  14. package/dist/esm/accordion/index.js +1 -0
  15. package/dist/esm/accordion/index.js.map +1 -1
  16. package/dist/esm/accordion-item/accordion-item.base.d.ts +0 -8
  17. package/dist/esm/accordion-item/accordion-item.base.js +3 -12
  18. package/dist/esm/accordion-item/accordion-item.base.js.map +1 -1
  19. package/dist/esm/accordion-item/accordion-item.d.ts +2 -4
  20. package/dist/esm/accordion-item/accordion-item.definition.js +2 -2
  21. package/dist/esm/accordion-item/accordion-item.definition.js.map +1 -1
  22. package/dist/esm/accordion-item/accordion-item.js +1 -1
  23. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  24. package/dist/esm/accordion-item/accordion-item.options.d.ts +17 -1
  25. package/dist/esm/accordion-item/accordion-item.options.js +19 -0
  26. package/dist/esm/accordion-item/accordion-item.options.js.map +1 -1
  27. package/dist/esm/accordion-item/accordion-item.styles.js +1 -1
  28. package/dist/esm/accordion-item/accordion-item.styles.js.map +1 -1
  29. package/dist/esm/accordion-item/accordion-item.template.js +7 -7
  30. package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
  31. package/dist/esm/accordion-item/index.d.ts +1 -0
  32. package/dist/esm/accordion-item/index.js +1 -0
  33. package/dist/esm/accordion-item/index.js.map +1 -1
  34. package/dist/esm/anchor-button/anchor-button.base.d.ts +1 -1
  35. package/dist/esm/anchor-button/anchor-button.base.js +9 -6
  36. package/dist/esm/anchor-button/anchor-button.base.js.map +1 -1
  37. package/dist/esm/anchor-button/anchor-button.d.ts +1 -2
  38. package/dist/esm/anchor-button/anchor-button.definition.js +2 -2
  39. package/dist/esm/anchor-button/anchor-button.definition.js.map +1 -1
  40. package/dist/esm/anchor-button/anchor-button.js +1 -1
  41. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  42. package/dist/esm/anchor-button/anchor-button.options.d.ts +7 -1
  43. package/dist/esm/anchor-button/anchor-button.options.js +7 -0
  44. package/dist/esm/anchor-button/anchor-button.options.js.map +1 -1
  45. package/dist/esm/anchor-button/anchor-button.styles.js +4 -3
  46. package/dist/esm/anchor-button/anchor-button.styles.js.map +1 -1
  47. package/dist/esm/anchor-button/anchor-button.template.js +1 -1
  48. package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
  49. package/dist/esm/anchor-button/index.d.ts +1 -0
  50. package/dist/esm/anchor-button/index.js +1 -0
  51. package/dist/esm/anchor-button/index.js.map +1 -1
  52. package/dist/esm/avatar/avatar.base.d.ts +64 -10
  53. package/dist/esm/avatar/avatar.base.js +100 -27
  54. package/dist/esm/avatar/avatar.base.js.map +1 -1
  55. package/dist/esm/avatar/avatar.definition.js +2 -2
  56. package/dist/esm/avatar/avatar.definition.js.map +1 -1
  57. package/dist/esm/avatar/avatar.options.d.ts +7 -1
  58. package/dist/esm/avatar/avatar.options.js +7 -0
  59. package/dist/esm/avatar/avatar.options.js.map +1 -1
  60. package/dist/esm/avatar/avatar.styles.js +25 -8
  61. package/dist/esm/avatar/avatar.styles.js.map +1 -1
  62. package/dist/esm/avatar/avatar.template.js +4 -3
  63. package/dist/esm/avatar/avatar.template.js.map +1 -1
  64. package/dist/esm/avatar/index.d.ts +1 -0
  65. package/dist/esm/avatar/index.js +1 -0
  66. package/dist/esm/avatar/index.js.map +1 -1
  67. package/dist/esm/badge/badge.d.ts +1 -1
  68. package/dist/esm/badge/badge.definition.js +2 -2
  69. package/dist/esm/badge/badge.definition.js.map +1 -1
  70. package/dist/esm/badge/badge.js +1 -1
  71. package/dist/esm/badge/badge.js.map +1 -1
  72. package/dist/esm/badge/badge.options.d.ts +12 -3
  73. package/dist/esm/badge/badge.options.js +7 -0
  74. package/dist/esm/badge/badge.options.js.map +1 -1
  75. package/dist/esm/badge/badge.styles.js +5 -4
  76. package/dist/esm/badge/badge.styles.js.map +1 -1
  77. package/dist/esm/badge/badge.template.js +1 -1
  78. package/dist/esm/badge/badge.template.js.map +1 -1
  79. package/dist/esm/badge/index.d.ts +3 -3
  80. package/dist/esm/badge/index.js +3 -3
  81. package/dist/esm/badge/index.js.map +1 -1
  82. package/dist/esm/button/button.base.d.ts +15 -1
  83. package/dist/esm/button/button.base.js +28 -26
  84. package/dist/esm/button/button.base.js.map +1 -1
  85. package/dist/esm/button/button.d.ts +1 -1
  86. package/dist/esm/button/button.definition.js +2 -2
  87. package/dist/esm/button/button.definition.js.map +1 -1
  88. package/dist/esm/button/button.js +1 -1
  89. package/dist/esm/button/button.js.map +1 -1
  90. package/dist/esm/button/button.options.d.ts +8 -2
  91. package/dist/esm/button/button.options.js +7 -0
  92. package/dist/esm/button/button.options.js.map +1 -1
  93. package/dist/esm/button/button.styles.js +5 -3
  94. package/dist/esm/button/button.styles.js.map +1 -1
  95. package/dist/esm/button/button.template.d.ts +3 -3
  96. package/dist/esm/button/button.template.js +1 -1
  97. package/dist/esm/button/button.template.js.map +1 -1
  98. package/dist/esm/button/index.d.ts +1 -0
  99. package/dist/esm/button/index.js +1 -0
  100. package/dist/esm/button/index.js.map +1 -1
  101. package/dist/esm/checkbox/checkbox.definition.js +2 -2
  102. package/dist/esm/checkbox/checkbox.definition.js.map +1 -1
  103. package/dist/esm/checkbox/checkbox.options.d.ts +6 -0
  104. package/dist/esm/checkbox/checkbox.options.js +7 -0
  105. package/dist/esm/checkbox/checkbox.options.js.map +1 -1
  106. package/dist/esm/checkbox/checkbox.styles.js +4 -3
  107. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  108. package/dist/esm/checkbox/index.d.ts +1 -0
  109. package/dist/esm/checkbox/index.js +1 -0
  110. package/dist/esm/checkbox/index.js.map +1 -1
  111. package/dist/esm/compound-button/compound-button.definition.js +2 -2
  112. package/dist/esm/compound-button/compound-button.definition.js.map +1 -1
  113. package/dist/esm/compound-button/compound-button.options.d.ts +7 -1
  114. package/dist/esm/compound-button/compound-button.options.js +7 -0
  115. package/dist/esm/compound-button/compound-button.options.js.map +1 -1
  116. package/dist/esm/compound-button/compound-button.styles.js +4 -3
  117. package/dist/esm/compound-button/compound-button.styles.js.map +1 -1
  118. package/dist/esm/compound-button/compound-button.template.d.ts +3 -1
  119. package/dist/esm/compound-button/compound-button.template.js +8 -3
  120. package/dist/esm/compound-button/compound-button.template.js.map +1 -1
  121. package/dist/esm/compound-button/index.d.ts +1 -0
  122. package/dist/esm/compound-button/index.js +1 -0
  123. package/dist/esm/compound-button/index.js.map +1 -1
  124. package/dist/esm/counter-badge/counter-badge.base.d.ts +55 -0
  125. package/dist/esm/counter-badge/counter-badge.base.js +84 -0
  126. package/dist/esm/counter-badge/counter-badge.base.js.map +1 -0
  127. package/dist/esm/counter-badge/counter-badge.d.ts +5 -57
  128. package/dist/esm/counter-badge/counter-badge.definition.js +2 -2
  129. package/dist/esm/counter-badge/counter-badge.definition.js.map +1 -1
  130. package/dist/esm/counter-badge/counter-badge.js +6 -76
  131. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  132. package/dist/esm/counter-badge/counter-badge.options.d.ts +26 -12
  133. package/dist/esm/counter-badge/counter-badge.options.js +15 -4
  134. package/dist/esm/counter-badge/counter-badge.options.js.map +1 -1
  135. package/dist/esm/counter-badge/counter-badge.styles.js +1 -1
  136. package/dist/esm/counter-badge/counter-badge.styles.js.map +1 -1
  137. package/dist/esm/counter-badge/counter-badge.template.d.ts +9 -1
  138. package/dist/esm/counter-badge/counter-badge.template.js +15 -7
  139. package/dist/esm/counter-badge/counter-badge.template.js.map +1 -1
  140. package/dist/esm/counter-badge/index.d.ts +4 -3
  141. package/dist/esm/counter-badge/index.js +4 -3
  142. package/dist/esm/counter-badge/index.js.map +1 -1
  143. package/dist/esm/define-all.d.ts +42 -0
  144. package/dist/esm/define-all.js +43 -0
  145. package/dist/esm/define-all.js.map +1 -0
  146. package/dist/esm/dialog/dialog.d.ts +59 -11
  147. package/dist/esm/dialog/dialog.definition.js +2 -2
  148. package/dist/esm/dialog/dialog.definition.js.map +1 -1
  149. package/dist/esm/dialog/dialog.js +90 -33
  150. package/dist/esm/dialog/dialog.js.map +1 -1
  151. package/dist/esm/dialog/dialog.options.d.ts +7 -1
  152. package/dist/esm/dialog/dialog.options.js +7 -0
  153. package/dist/esm/dialog/dialog.options.js.map +1 -1
  154. package/dist/esm/dialog/dialog.styles.js +4 -3
  155. package/dist/esm/dialog/dialog.styles.js.map +1 -1
  156. package/dist/esm/dialog/dialog.template.js +5 -3
  157. package/dist/esm/dialog/dialog.template.js.map +1 -1
  158. package/dist/esm/dialog/index.d.ts +1 -0
  159. package/dist/esm/dialog/index.js +1 -0
  160. package/dist/esm/dialog/index.js.map +1 -1
  161. package/dist/esm/dialog-body/dialog-body.definition.js +2 -2
  162. package/dist/esm/dialog-body/dialog-body.definition.js.map +1 -1
  163. package/dist/esm/dialog-body/dialog-body.js +1 -1
  164. package/dist/esm/dialog-body/dialog-body.js.map +1 -1
  165. package/dist/esm/dialog-body/dialog-body.options.d.ts +6 -0
  166. package/dist/esm/dialog-body/dialog-body.options.js +8 -0
  167. package/dist/esm/dialog-body/dialog-body.options.js.map +1 -0
  168. package/dist/esm/dialog-body/dialog-body.styles.js +1 -1
  169. package/dist/esm/dialog-body/dialog-body.styles.js.map +1 -1
  170. package/dist/esm/dialog-body/index.d.ts +1 -0
  171. package/dist/esm/dialog-body/index.js +1 -0
  172. package/dist/esm/dialog-body/index.js.map +1 -1
  173. package/dist/esm/divider/divider.definition.js +2 -2
  174. package/dist/esm/divider/divider.definition.js.map +1 -1
  175. package/dist/esm/divider/divider.options.d.ts +7 -1
  176. package/dist/esm/divider/divider.options.js +8 -1
  177. package/dist/esm/divider/divider.options.js.map +1 -1
  178. package/dist/esm/divider/divider.styles.js +5 -3
  179. package/dist/esm/divider/divider.styles.js.map +1 -1
  180. package/dist/esm/divider/index.d.ts +1 -0
  181. package/dist/esm/divider/index.js +1 -0
  182. package/dist/esm/divider/index.js.map +1 -1
  183. package/dist/esm/drawer/drawer.d.ts +62 -23
  184. package/dist/esm/drawer/drawer.definition.js +2 -2
  185. package/dist/esm/drawer/drawer.definition.js.map +1 -1
  186. package/dist/esm/drawer/drawer.js +91 -54
  187. package/dist/esm/drawer/drawer.js.map +1 -1
  188. package/dist/esm/drawer/drawer.options.d.ts +7 -1
  189. package/dist/esm/drawer/drawer.options.js +7 -0
  190. package/dist/esm/drawer/drawer.options.js.map +1 -1
  191. package/dist/esm/drawer/drawer.styles.js +1 -1
  192. package/dist/esm/drawer/drawer.styles.js.map +1 -1
  193. package/dist/esm/drawer/drawer.template.js +5 -3
  194. package/dist/esm/drawer/drawer.template.js.map +1 -1
  195. package/dist/esm/drawer/index.d.ts +1 -0
  196. package/dist/esm/drawer/index.js +1 -0
  197. package/dist/esm/drawer/index.js.map +1 -1
  198. package/dist/esm/drawer-body/drawer-body.definition.js +2 -2
  199. package/dist/esm/drawer-body/drawer-body.definition.js.map +1 -1
  200. package/dist/esm/drawer-body/drawer-body.js +1 -1
  201. package/dist/esm/drawer-body/drawer-body.js.map +1 -1
  202. package/dist/esm/drawer-body/drawer-body.options.d.ts +6 -0
  203. package/dist/esm/drawer-body/drawer-body.options.js +8 -0
  204. package/dist/esm/drawer-body/drawer-body.options.js.map +1 -0
  205. package/dist/esm/drawer-body/drawer-body.styles.js +1 -1
  206. package/dist/esm/drawer-body/drawer-body.styles.js.map +1 -1
  207. package/dist/esm/drawer-body/index.d.ts +1 -0
  208. package/dist/esm/drawer-body/index.js +1 -0
  209. package/dist/esm/drawer-body/index.js.map +1 -1
  210. package/dist/esm/dropdown/dropdown.base.d.ts +6 -0
  211. package/dist/esm/dropdown/dropdown.base.js +47 -25
  212. package/dist/esm/dropdown/dropdown.base.js.map +1 -1
  213. package/dist/esm/dropdown/dropdown.definition.js +2 -2
  214. package/dist/esm/dropdown/dropdown.definition.js.map +1 -1
  215. package/dist/esm/dropdown/dropdown.options.d.ts +6 -0
  216. package/dist/esm/dropdown/dropdown.options.js +7 -0
  217. package/dist/esm/dropdown/dropdown.options.js.map +1 -1
  218. package/dist/esm/dropdown/dropdown.styles.js +2 -0
  219. package/dist/esm/dropdown/dropdown.styles.js.map +1 -1
  220. package/dist/esm/dropdown/index.d.ts +1 -0
  221. package/dist/esm/dropdown/index.js +1 -0
  222. package/dist/esm/dropdown/index.js.map +1 -1
  223. package/dist/esm/field/field.base.js +1 -1
  224. package/dist/esm/field/field.base.js.map +1 -1
  225. package/dist/esm/field/field.definition.js +2 -2
  226. package/dist/esm/field/field.definition.js.map +1 -1
  227. package/dist/esm/field/field.options.d.ts +6 -0
  228. package/dist/esm/field/field.options.js +7 -0
  229. package/dist/esm/field/field.options.js.map +1 -1
  230. package/dist/esm/field/index.d.ts +1 -0
  231. package/dist/esm/field/index.js +1 -0
  232. package/dist/esm/field/index.js.map +1 -1
  233. package/dist/esm/fluent-design-system.js +1 -1
  234. package/dist/esm/fluent-design-system.js.map +1 -1
  235. package/dist/esm/image/image.definition.js +2 -2
  236. package/dist/esm/image/image.definition.js.map +1 -1
  237. package/dist/esm/image/image.options.d.ts +7 -1
  238. package/dist/esm/image/image.options.js +7 -0
  239. package/dist/esm/image/image.options.js.map +1 -1
  240. package/dist/esm/image/index.d.ts +1 -0
  241. package/dist/esm/image/index.js +1 -0
  242. package/dist/esm/image/index.js.map +1 -1
  243. package/dist/esm/index-all-rollup.d.ts +2 -0
  244. package/dist/esm/index-all-rollup.js +9 -0
  245. package/dist/esm/index-all-rollup.js.map +1 -0
  246. package/dist/esm/index-rollup.d.ts +1 -44
  247. package/dist/esm/index-rollup.js +6 -44
  248. package/dist/esm/index-rollup.js.map +1 -1
  249. package/dist/esm/index.d.ts +8 -11
  250. package/dist/esm/index.js +6 -8
  251. package/dist/esm/index.js.map +1 -1
  252. package/dist/esm/label/index.d.ts +1 -0
  253. package/dist/esm/label/index.js +1 -0
  254. package/dist/esm/label/index.js.map +1 -1
  255. package/dist/esm/label/label.definition.js +2 -2
  256. package/dist/esm/label/label.definition.js.map +1 -1
  257. package/dist/esm/label/label.options.d.ts +7 -1
  258. package/dist/esm/label/label.options.js +7 -0
  259. package/dist/esm/label/label.options.js.map +1 -1
  260. package/dist/esm/label/label.styles.js +1 -1
  261. package/dist/esm/label/label.styles.js.map +1 -1
  262. package/dist/esm/link/index.d.ts +1 -0
  263. package/dist/esm/link/index.js +1 -0
  264. package/dist/esm/link/index.js.map +1 -1
  265. package/dist/esm/link/link.definition.js +2 -2
  266. package/dist/esm/link/link.definition.js.map +1 -1
  267. package/dist/esm/link/link.options.d.ts +7 -1
  268. package/dist/esm/link/link.options.js +7 -0
  269. package/dist/esm/link/link.options.js.map +1 -1
  270. package/dist/esm/link/link.styles.js +5 -3
  271. package/dist/esm/link/link.styles.js.map +1 -1
  272. package/dist/esm/listbox/index.d.ts +1 -0
  273. package/dist/esm/listbox/index.js +1 -0
  274. package/dist/esm/listbox/index.js.map +1 -1
  275. package/dist/esm/listbox/listbox.d.ts +12 -7
  276. package/dist/esm/listbox/listbox.definition.js +2 -2
  277. package/dist/esm/listbox/listbox.definition.js.map +1 -1
  278. package/dist/esm/listbox/listbox.js +27 -17
  279. package/dist/esm/listbox/listbox.js.map +1 -1
  280. package/dist/esm/listbox/listbox.options.d.ts +6 -0
  281. package/dist/esm/listbox/listbox.options.js +7 -0
  282. package/dist/esm/listbox/listbox.options.js.map +1 -1
  283. package/dist/esm/listbox/listbox.template.js +2 -3
  284. package/dist/esm/listbox/listbox.template.js.map +1 -1
  285. package/dist/esm/menu/index.d.ts +1 -0
  286. package/dist/esm/menu/index.js +1 -0
  287. package/dist/esm/menu/index.js.map +1 -1
  288. package/dist/esm/menu/menu.d.ts +31 -15
  289. package/dist/esm/menu/menu.definition.js +2 -2
  290. package/dist/esm/menu/menu.definition.js.map +1 -1
  291. package/dist/esm/menu/menu.js +78 -79
  292. package/dist/esm/menu/menu.js.map +1 -1
  293. package/dist/esm/menu/menu.options.d.ts +6 -0
  294. package/dist/esm/menu/menu.options.js +8 -0
  295. package/dist/esm/menu/menu.options.js.map +1 -0
  296. package/dist/esm/menu/menu.styles.js +1 -1
  297. package/dist/esm/menu/menu.styles.js.map +1 -1
  298. package/dist/esm/menu-button/index.d.ts +1 -0
  299. package/dist/esm/menu-button/index.js +1 -0
  300. package/dist/esm/menu-button/index.js.map +1 -1
  301. package/dist/esm/menu-button/menu-button.definition.js +2 -2
  302. package/dist/esm/menu-button/menu-button.definition.js.map +1 -1
  303. package/dist/esm/menu-button/menu-button.options.d.ts +7 -1
  304. package/dist/esm/menu-button/menu-button.options.js +7 -0
  305. package/dist/esm/menu-button/menu-button.options.js.map +1 -1
  306. package/dist/esm/menu-item/index.d.ts +1 -0
  307. package/dist/esm/menu-item/index.js +1 -0
  308. package/dist/esm/menu-item/index.js.map +1 -1
  309. package/dist/esm/menu-item/menu-item.d.ts +3 -1
  310. package/dist/esm/menu-item/menu-item.definition.js +2 -2
  311. package/dist/esm/menu-item/menu-item.definition.js.map +1 -1
  312. package/dist/esm/menu-item/menu-item.js +23 -12
  313. package/dist/esm/menu-item/menu-item.js.map +1 -1
  314. package/dist/esm/menu-item/menu-item.options.d.ts +7 -1
  315. package/dist/esm/menu-item/menu-item.options.js +7 -0
  316. package/dist/esm/menu-item/menu-item.options.js.map +1 -1
  317. package/dist/esm/menu-item/menu-item.styles.js +5 -3
  318. package/dist/esm/menu-item/menu-item.styles.js.map +1 -1
  319. package/dist/esm/menu-item/menu-item.template.js +3 -2
  320. package/dist/esm/menu-item/menu-item.template.js.map +1 -1
  321. package/dist/esm/menu-list/index.d.ts +2 -0
  322. package/dist/esm/menu-list/index.js +2 -0
  323. package/dist/esm/menu-list/index.js.map +1 -1
  324. package/dist/esm/menu-list/menu-list.base.d.ts +57 -0
  325. package/dist/esm/menu-list/menu-list.base.js +152 -0
  326. package/dist/esm/menu-list/menu-list.base.js.map +1 -0
  327. package/dist/esm/menu-list/menu-list.d.ts +6 -69
  328. package/dist/esm/menu-list/menu-list.definition.js +2 -2
  329. package/dist/esm/menu-list/menu-list.definition.js.map +1 -1
  330. package/dist/esm/menu-list/menu-list.js +18 -237
  331. package/dist/esm/menu-list/menu-list.js.map +1 -1
  332. package/dist/esm/menu-list/menu-list.options.d.ts +6 -0
  333. package/dist/esm/menu-list/menu-list.options.js +8 -0
  334. package/dist/esm/menu-list/menu-list.options.js.map +1 -0
  335. package/dist/esm/menu-list/menu-list.styles.js +1 -1
  336. package/dist/esm/menu-list/menu-list.styles.js.map +1 -1
  337. package/dist/esm/menu-list/menu-list.template.js +1 -5
  338. package/dist/esm/menu-list/menu-list.template.js.map +1 -1
  339. package/dist/esm/message-bar/index.d.ts +1 -0
  340. package/dist/esm/message-bar/index.js +1 -0
  341. package/dist/esm/message-bar/index.js.map +1 -1
  342. package/dist/esm/message-bar/message-bar.d.ts +2 -1
  343. package/dist/esm/message-bar/message-bar.definition.js +2 -1
  344. package/dist/esm/message-bar/message-bar.definition.js.map +1 -1
  345. package/dist/esm/message-bar/message-bar.js +2 -1
  346. package/dist/esm/message-bar/message-bar.js.map +1 -1
  347. package/dist/esm/message-bar/message-bar.options.d.ts +12 -3
  348. package/dist/esm/message-bar/message-bar.options.js +13 -3
  349. package/dist/esm/message-bar/message-bar.options.js.map +1 -1
  350. package/dist/esm/message-bar/message-bar.template.d.ts +3 -3
  351. package/dist/esm/message-bar/message-bar.template.js +3 -3
  352. package/dist/esm/option/index.d.ts +1 -0
  353. package/dist/esm/option/index.js +1 -0
  354. package/dist/esm/option/index.js.map +1 -1
  355. package/dist/esm/option/option.definition.js +2 -2
  356. package/dist/esm/option/option.definition.js.map +1 -1
  357. package/dist/esm/option/option.js +1 -1
  358. package/dist/esm/option/option.js.map +1 -1
  359. package/dist/esm/option/option.options.d.ts +6 -0
  360. package/dist/esm/option/option.options.js +7 -0
  361. package/dist/esm/option/option.options.js.map +1 -1
  362. package/dist/esm/patterns/start-end.d.ts +1 -1
  363. package/dist/esm/patterns/start-end.js +1 -1
  364. package/dist/esm/patterns/start-end.js.map +1 -1
  365. package/dist/esm/progress-bar/index.d.ts +1 -0
  366. package/dist/esm/progress-bar/index.js +1 -0
  367. package/dist/esm/progress-bar/index.js.map +1 -1
  368. package/dist/esm/progress-bar/progress-bar.base.d.ts +35 -8
  369. package/dist/esm/progress-bar/progress-bar.base.js +41 -20
  370. package/dist/esm/progress-bar/progress-bar.base.js.map +1 -1
  371. package/dist/esm/progress-bar/progress-bar.d.ts +8 -2
  372. package/dist/esm/progress-bar/progress-bar.definition.js +2 -2
  373. package/dist/esm/progress-bar/progress-bar.definition.js.map +1 -1
  374. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  375. package/dist/esm/progress-bar/progress-bar.options.d.ts +7 -1
  376. package/dist/esm/progress-bar/progress-bar.options.js +7 -0
  377. package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
  378. package/dist/esm/progress-bar/progress-bar.styles.js +5 -3
  379. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  380. package/dist/esm/radio/index.d.ts +1 -0
  381. package/dist/esm/radio/index.js +1 -0
  382. package/dist/esm/radio/index.js.map +1 -1
  383. package/dist/esm/radio/radio.d.ts +1 -1
  384. package/dist/esm/radio/radio.definition.js +2 -2
  385. package/dist/esm/radio/radio.definition.js.map +1 -1
  386. package/dist/esm/radio/radio.js +1 -1
  387. package/dist/esm/radio/radio.options.d.ts +15 -0
  388. package/dist/esm/radio/radio.options.js +19 -1
  389. package/dist/esm/radio/radio.options.js.map +1 -1
  390. package/dist/esm/radio/radio.styles.js +4 -3
  391. package/dist/esm/radio/radio.styles.js.map +1 -1
  392. package/dist/esm/radio/radio.template.js +1 -1
  393. package/dist/esm/radio/radio.template.js.map +1 -1
  394. package/dist/esm/radio-group/index.d.ts +2 -0
  395. package/dist/esm/radio-group/index.js +2 -0
  396. package/dist/esm/radio-group/index.js.map +1 -1
  397. package/dist/esm/radio-group/radio-group.base.d.ts +272 -0
  398. package/dist/esm/radio-group/radio-group.base.js +438 -0
  399. package/dist/esm/radio-group/radio-group.base.js.map +1 -0
  400. package/dist/esm/radio-group/radio-group.d.ts +8 -273
  401. package/dist/esm/radio-group/radio-group.definition.js +2 -2
  402. package/dist/esm/radio-group/radio-group.definition.js.map +1 -1
  403. package/dist/esm/radio-group/radio-group.js +20 -492
  404. package/dist/esm/radio-group/radio-group.js.map +1 -1
  405. package/dist/esm/radio-group/radio-group.options.d.ts +7 -1
  406. package/dist/esm/radio-group/radio-group.options.js +8 -1
  407. package/dist/esm/radio-group/radio-group.options.js.map +1 -1
  408. package/dist/esm/radio-group/radio-group.styles.js +1 -1
  409. package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
  410. package/dist/esm/radio-group/radio-group.template.js +3 -3
  411. package/dist/esm/radio-group/radio-group.template.js.map +1 -1
  412. package/dist/esm/rating-display/index.d.ts +1 -0
  413. package/dist/esm/rating-display/index.js +1 -0
  414. package/dist/esm/rating-display/index.js.map +1 -1
  415. package/dist/esm/rating-display/rating-display.base.d.ts +11 -1
  416. package/dist/esm/rating-display/rating-display.base.js +24 -11
  417. package/dist/esm/rating-display/rating-display.base.js.map +1 -1
  418. package/dist/esm/rating-display/rating-display.definition.js +2 -2
  419. package/dist/esm/rating-display/rating-display.definition.js.map +1 -1
  420. package/dist/esm/rating-display/rating-display.options.d.ts +7 -1
  421. package/dist/esm/rating-display/rating-display.options.js +7 -0
  422. package/dist/esm/rating-display/rating-display.options.js.map +1 -1
  423. package/dist/esm/rating-display/rating-display.styles.js +5 -3
  424. package/dist/esm/rating-display/rating-display.styles.js.map +1 -1
  425. package/dist/esm/slider/index.d.ts +1 -0
  426. package/dist/esm/slider/index.js +1 -0
  427. package/dist/esm/slider/index.js.map +1 -1
  428. package/dist/esm/slider/slider-utilities.d.ts +1 -1
  429. package/dist/esm/slider/slider-utilities.js +2 -1
  430. package/dist/esm/slider/slider-utilities.js.map +1 -1
  431. package/dist/esm/slider/slider.d.ts +9 -4
  432. package/dist/esm/slider/slider.definition.js +2 -2
  433. package/dist/esm/slider/slider.definition.js.map +1 -1
  434. package/dist/esm/slider/slider.js +55 -35
  435. package/dist/esm/slider/slider.js.map +1 -1
  436. package/dist/esm/slider/slider.options.d.ts +9 -2
  437. package/dist/esm/slider/slider.options.js +8 -1
  438. package/dist/esm/slider/slider.options.js.map +1 -1
  439. package/dist/esm/slider/slider.styles.js +5 -3
  440. package/dist/esm/slider/slider.styles.js.map +1 -1
  441. package/dist/esm/spinner/index.d.ts +1 -0
  442. package/dist/esm/spinner/index.js +1 -0
  443. package/dist/esm/spinner/index.js.map +1 -1
  444. package/dist/esm/spinner/spinner.definition.js +2 -2
  445. package/dist/esm/spinner/spinner.definition.js.map +1 -1
  446. package/dist/esm/spinner/spinner.options.d.ts +7 -1
  447. package/dist/esm/spinner/spinner.options.js +7 -0
  448. package/dist/esm/spinner/spinner.options.js.map +1 -1
  449. package/dist/esm/spinner/spinner.styles.js +5 -3
  450. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  451. package/dist/esm/styles/index.d.ts +2 -1
  452. package/dist/esm/styles/index.js +2 -1
  453. package/dist/esm/styles/index.js.map +1 -1
  454. package/dist/esm/styles/partials/badge.partials.d.ts +2 -1
  455. package/dist/esm/styles/partials/badge.partials.js +3 -2
  456. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  457. package/dist/esm/switch/index.d.ts +1 -0
  458. package/dist/esm/switch/index.js +1 -0
  459. package/dist/esm/switch/index.js.map +1 -1
  460. package/dist/esm/switch/switch.d.ts +1 -1
  461. package/dist/esm/switch/switch.definition.js +2 -2
  462. package/dist/esm/switch/switch.definition.js.map +1 -1
  463. package/dist/esm/switch/switch.options.d.ts +7 -1
  464. package/dist/esm/switch/switch.options.js +7 -0
  465. package/dist/esm/switch/switch.options.js.map +1 -1
  466. package/dist/esm/switch/switch.styles.js +4 -3
  467. package/dist/esm/switch/switch.styles.js.map +1 -1
  468. package/dist/esm/switch/switch.template.js +1 -1
  469. package/dist/esm/switch/switch.template.js.map +1 -1
  470. package/dist/esm/tab/index.d.ts +1 -0
  471. package/dist/esm/tab/index.js +1 -0
  472. package/dist/esm/tab/index.js.map +1 -1
  473. package/dist/esm/tab/tab.d.ts +15 -1
  474. package/dist/esm/tab/tab.definition.js +2 -2
  475. package/dist/esm/tab/tab.definition.js.map +1 -1
  476. package/dist/esm/tab/tab.js +26 -2
  477. package/dist/esm/tab/tab.js.map +1 -1
  478. package/dist/esm/tab/tab.options.d.ts +6 -0
  479. package/dist/esm/tab/tab.options.js +7 -0
  480. package/dist/esm/tab/tab.options.js.map +1 -1
  481. package/dist/esm/tab/tab.styles.js +23 -3
  482. package/dist/esm/tab/tab.styles.js.map +1 -1
  483. package/dist/esm/tab/tab.template.js +2 -2
  484. package/dist/esm/tab/tab.template.js.map +1 -1
  485. package/dist/esm/tablist/index.d.ts +1 -0
  486. package/dist/esm/tablist/index.js +1 -0
  487. package/dist/esm/tablist/index.js.map +1 -1
  488. package/dist/esm/tablist/tablist.base.d.ts +15 -46
  489. package/dist/esm/tablist/tablist.base.js +114 -209
  490. package/dist/esm/tablist/tablist.base.js.map +1 -1
  491. package/dist/esm/tablist/tablist.d.ts +7 -74
  492. package/dist/esm/tablist/tablist.definition.js +2 -2
  493. package/dist/esm/tablist/tablist.definition.js.map +1 -1
  494. package/dist/esm/tablist/tablist.js +22 -132
  495. package/dist/esm/tablist/tablist.js.map +1 -1
  496. package/dist/esm/tablist/tablist.options.d.ts +7 -1
  497. package/dist/esm/tablist/tablist.options.js +8 -1
  498. package/dist/esm/tablist/tablist.options.js.map +1 -1
  499. package/dist/esm/tablist/tablist.styles.js +83 -65
  500. package/dist/esm/tablist/tablist.styles.js.map +1 -1
  501. package/dist/esm/tablist/tablist.template.js +5 -1
  502. package/dist/esm/tablist/tablist.template.js.map +1 -1
  503. package/dist/esm/text/index.d.ts +1 -0
  504. package/dist/esm/text/index.js +1 -0
  505. package/dist/esm/text/index.js.map +1 -1
  506. package/dist/esm/text/text.definition.js +2 -2
  507. package/dist/esm/text/text.definition.js.map +1 -1
  508. package/dist/esm/text/text.options.d.ts +7 -1
  509. package/dist/esm/text/text.options.js +7 -0
  510. package/dist/esm/text/text.options.js.map +1 -1
  511. package/dist/esm/text/text.styles.js +1 -1
  512. package/dist/esm/text/text.styles.js.map +1 -1
  513. package/dist/esm/text-input/index.d.ts +1 -0
  514. package/dist/esm/text-input/index.js +1 -0
  515. package/dist/esm/text-input/index.js.map +1 -1
  516. package/dist/esm/text-input/text-input.base.js +12 -5
  517. package/dist/esm/text-input/text-input.base.js.map +1 -1
  518. package/dist/esm/text-input/text-input.definition.js +2 -2
  519. package/dist/esm/text-input/text-input.definition.js.map +1 -1
  520. package/dist/esm/text-input/text-input.options.d.ts +6 -0
  521. package/dist/esm/text-input/text-input.options.js +7 -0
  522. package/dist/esm/text-input/text-input.options.js.map +1 -1
  523. package/dist/esm/text-input/text-input.template.d.ts +1 -1
  524. package/dist/esm/text-input/text-input.template.js +2 -8
  525. package/dist/esm/text-input/text-input.template.js.map +1 -1
  526. package/dist/esm/textarea/index.d.ts +1 -0
  527. package/dist/esm/textarea/index.js +1 -0
  528. package/dist/esm/textarea/index.js.map +1 -1
  529. package/dist/esm/textarea/textarea.base.d.ts +12 -3
  530. package/dist/esm/textarea/textarea.base.js +43 -25
  531. package/dist/esm/textarea/textarea.base.js.map +1 -1
  532. package/dist/esm/textarea/textarea.definition.js +2 -2
  533. package/dist/esm/textarea/textarea.definition.js.map +1 -1
  534. package/dist/esm/textarea/textarea.options.d.ts +6 -0
  535. package/dist/esm/textarea/textarea.options.js +7 -0
  536. package/dist/esm/textarea/textarea.options.js.map +1 -1
  537. package/dist/esm/textarea/textarea.styles.js +4 -3
  538. package/dist/esm/textarea/textarea.styles.js.map +1 -1
  539. package/dist/esm/textarea/textarea.template.js +1 -1
  540. package/dist/esm/textarea/textarea.template.js.map +1 -1
  541. package/dist/esm/theme/design-tokens.d.ts +115 -0
  542. package/dist/esm/theme/design-tokens.js +115 -0
  543. package/dist/esm/theme/design-tokens.js.map +1 -1
  544. package/dist/esm/theme/index.d.ts +1 -1
  545. package/dist/esm/theme/index.js +1 -1
  546. package/dist/esm/theme/index.js.map +1 -1
  547. package/dist/esm/theme/set-theme.d.ts +2 -7
  548. package/dist/esm/theme/set-theme.js +2 -9
  549. package/dist/esm/theme/set-theme.js.map +1 -1
  550. package/dist/esm/toggle-button/index.d.ts +1 -0
  551. package/dist/esm/toggle-button/index.js +1 -0
  552. package/dist/esm/toggle-button/index.js.map +1 -1
  553. package/dist/esm/toggle-button/toggle-button.definition.js +2 -2
  554. package/dist/esm/toggle-button/toggle-button.definition.js.map +1 -1
  555. package/dist/esm/toggle-button/toggle-button.options.d.ts +8 -2
  556. package/dist/esm/toggle-button/toggle-button.options.js +7 -0
  557. package/dist/esm/toggle-button/toggle-button.options.js.map +1 -1
  558. package/dist/esm/toggle-button/toggle-button.styles.js +4 -3
  559. package/dist/esm/toggle-button/toggle-button.styles.js.map +1 -1
  560. package/dist/esm/tooltip/index.d.ts +1 -0
  561. package/dist/esm/tooltip/index.js +1 -0
  562. package/dist/esm/tooltip/index.js.map +1 -1
  563. package/dist/esm/tooltip/tooltip.d.ts +2 -2
  564. package/dist/esm/tooltip/tooltip.definition.js +2 -2
  565. package/dist/esm/tooltip/tooltip.definition.js.map +1 -1
  566. package/dist/esm/tooltip/tooltip.js +3 -3
  567. package/dist/esm/tooltip/tooltip.js.map +1 -1
  568. package/dist/esm/tooltip/tooltip.options.d.ts +6 -0
  569. package/dist/esm/tooltip/tooltip.options.js +7 -0
  570. package/dist/esm/tooltip/tooltip.options.js.map +1 -1
  571. package/dist/esm/tree/index.d.ts +1 -0
  572. package/dist/esm/tree/index.js +1 -0
  573. package/dist/esm/tree/index.js.map +1 -1
  574. package/dist/esm/tree/tree.base.d.ts +13 -28
  575. package/dist/esm/tree/tree.base.js +37 -106
  576. package/dist/esm/tree/tree.base.js.map +1 -1
  577. package/dist/esm/tree/tree.d.ts +13 -2
  578. package/dist/esm/tree/tree.definition.js +2 -2
  579. package/dist/esm/tree/tree.definition.js.map +1 -1
  580. package/dist/esm/tree/tree.js +31 -2
  581. package/dist/esm/tree/tree.js.map +1 -1
  582. package/dist/esm/tree/tree.options.d.ts +6 -0
  583. package/dist/esm/tree/tree.options.js +8 -0
  584. package/dist/esm/tree/tree.options.js.map +1 -0
  585. package/dist/esm/tree/tree.template.js +2 -3
  586. package/dist/esm/tree/tree.template.js.map +1 -1
  587. package/dist/esm/tree-item/index.d.ts +1 -0
  588. package/dist/esm/tree-item/index.js +1 -0
  589. package/dist/esm/tree-item/index.js.map +1 -1
  590. package/dist/esm/tree-item/tree-item.base.d.ts +21 -5
  591. package/dist/esm/tree-item/tree-item.base.js +46 -18
  592. package/dist/esm/tree-item/tree-item.base.js.map +1 -1
  593. package/dist/esm/tree-item/tree-item.definition.js +2 -2
  594. package/dist/esm/tree-item/tree-item.definition.js.map +1 -1
  595. package/dist/esm/tree-item/tree-item.options.d.ts +6 -0
  596. package/dist/esm/tree-item/tree-item.options.js +7 -0
  597. package/dist/esm/tree-item/tree-item.options.js.map +1 -1
  598. package/dist/esm/tree-item/tree-item.template.js +1 -1
  599. package/dist/esm/tree-item/tree-item.template.js.map +1 -1
  600. package/dist/esm/utils/direction.d.ts +13 -1
  601. package/dist/esm/utils/direction.js +8 -1
  602. package/dist/esm/utils/direction.js.map +1 -1
  603. package/dist/esm/utils/focusable-element.js +2 -1
  604. package/dist/esm/utils/focusable-element.js.map +1 -1
  605. package/dist/esm/utils/focusgroup.d.ts +22 -0
  606. package/dist/esm/utils/focusgroup.js +42 -0
  607. package/dist/esm/utils/focusgroup.js.map +1 -0
  608. package/dist/esm/utils/index.d.ts +2 -1
  609. package/dist/esm/utils/index.js +2 -1
  610. package/dist/esm/utils/index.js.map +1 -1
  611. package/dist/esm/utils/numbers.d.ts +5 -0
  612. package/dist/esm/utils/numbers.js +9 -0
  613. package/dist/esm/utils/numbers.js.map +1 -0
  614. package/dist/esm/utils/orientation.d.ts +13 -0
  615. package/dist/esm/utils/orientation.js +10 -0
  616. package/dist/esm/utils/orientation.js.map +1 -0
  617. package/dist/esm/utils/request-idle-callback.d.ts +15 -0
  618. package/dist/esm/utils/request-idle-callback.js +11 -10
  619. package/dist/esm/utils/request-idle-callback.js.map +1 -1
  620. package/dist/esm/utils/typings.d.ts +12 -0
  621. package/dist/esm/utils/typings.js +21 -1
  622. package/dist/esm/utils/typings.js.map +1 -1
  623. package/dist/web-components-all.js +14974 -0
  624. package/dist/web-components-all.min.js +47 -0
  625. package/dist/web-components.d.ts +1176 -1213
  626. package/dist/web-components.js +7775 -7302
  627. package/dist/web-components.min.js +29 -565
  628. package/package.json +23 -10
  629. package/dist/esm/tab-panel/define.d.ts +0 -1
  630. package/dist/esm/tab-panel/define.js +0 -7
  631. package/dist/esm/tab-panel/define.js.map +0 -1
  632. package/dist/esm/tab-panel/index.d.ts +0 -4
  633. package/dist/esm/tab-panel/index.js +0 -5
  634. package/dist/esm/tab-panel/index.js.map +0 -1
  635. package/dist/esm/tab-panel/tab-panel.bench.d.ts +0 -3
  636. package/dist/esm/tab-panel/tab-panel.bench.js +0 -13
  637. package/dist/esm/tab-panel/tab-panel.bench.js.map +0 -1
  638. package/dist/esm/tab-panel/tab-panel.d.ts +0 -8
  639. package/dist/esm/tab-panel/tab-panel.definition.d.ts +0 -5
  640. package/dist/esm/tab-panel/tab-panel.definition.js +0 -13
  641. package/dist/esm/tab-panel/tab-panel.definition.js.map +0 -1
  642. package/dist/esm/tab-panel/tab-panel.js +0 -9
  643. package/dist/esm/tab-panel/tab-panel.js.map +0 -1
  644. package/dist/esm/tab-panel/tab-panel.styles.d.ts +0 -1
  645. package/dist/esm/tab-panel/tab-panel.styles.js +0 -12
  646. package/dist/esm/tab-panel/tab-panel.styles.js.map +0 -1
  647. package/dist/esm/tab-panel/tab-panel.template.d.ts +0 -7
  648. package/dist/esm/tab-panel/tab-panel.template.js +0 -13
  649. package/dist/esm/tab-panel/tab-panel.template.js.map +0 -1
  650. package/dist/esm/tabs/define.d.ts +0 -1
  651. package/dist/esm/tabs/define.js +0 -7
  652. package/dist/esm/tabs/define.js.map +0 -1
  653. package/dist/esm/tabs/index.d.ts +0 -6
  654. package/dist/esm/tabs/index.js +0 -6
  655. package/dist/esm/tabs/index.js.map +0 -1
  656. package/dist/esm/tabs/tabs.base.d.ts +0 -90
  657. package/dist/esm/tabs/tabs.base.js +0 -279
  658. package/dist/esm/tabs/tabs.base.js.map +0 -1
  659. package/dist/esm/tabs/tabs.bench.d.ts +0 -3
  660. package/dist/esm/tabs/tabs.bench.js +0 -32
  661. package/dist/esm/tabs/tabs.bench.js.map +0 -1
  662. package/dist/esm/tabs/tabs.d.ts +0 -100
  663. package/dist/esm/tabs/tabs.definition.d.ts +0 -5
  664. package/dist/esm/tabs/tabs.definition.js +0 -13
  665. package/dist/esm/tabs/tabs.definition.js.map +0 -1
  666. package/dist/esm/tabs/tabs.js +0 -180
  667. package/dist/esm/tabs/tabs.js.map +0 -1
  668. package/dist/esm/tabs/tabs.options.d.ts +0 -32
  669. package/dist/esm/tabs/tabs.options.js +0 -16
  670. package/dist/esm/tabs/tabs.options.js.map +0 -1
  671. package/dist/esm/tabs/tabs.styles.d.ts +0 -1
  672. package/dist/esm/tabs/tabs.styles.js +0 -230
  673. package/dist/esm/tabs/tabs.styles.js.map +0 -1
  674. package/dist/esm/tabs/tabs.template.d.ts +0 -8
  675. package/dist/esm/tabs/tabs.template.js +0 -19
  676. package/dist/esm/tabs/tabs.template.js.map +0 -1
  677. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.d.ts +0 -124
  678. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js +0 -142
  679. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js.map +0 -1
@@ -0,0 +1,272 @@
1
+ import { FASTElement } from '@microsoft/fast-element';
2
+ import type { Radio } from '../radio/radio.js';
3
+ import { RadioGroupOrientation } from './radio-group.options.js';
4
+ /**
5
+ * A Base Radio Group Custom HTML Element.
6
+ * Implements the {@link https://w3c.github.io/aria/#radiogroup | ARIA `radiogroup` role}.
7
+ *
8
+ * @public
9
+ */
10
+ export declare class BaseRadioGroup extends FASTElement {
11
+ private isNavigating;
12
+ /**
13
+ * The index of the checked radio, scoped to the enabled radios.
14
+ *
15
+ * @internal
16
+ */
17
+ protected checkedIndex: number;
18
+ /**
19
+ * Sets the checked state of the nearest enabled radio when the `checkedIndex` changes.
20
+ *
21
+ * @param prev - the previous index
22
+ * @param next - the current index
23
+ * @internal
24
+ */
25
+ protected checkedIndexChanged(prev: number | undefined, next: number): void;
26
+ /**
27
+ * Indicates that the value has been changed by the user.
28
+ */
29
+ private dirtyState;
30
+ /**
31
+ * Disables the radio group and child radios.
32
+ *
33
+ * @public
34
+ * @remarks
35
+ * HTML Attribute: `disabled`
36
+ */
37
+ disabled: boolean;
38
+ /**
39
+ * Sets the `disabled` attribute on all child radios when the `disabled` property changes.
40
+ *
41
+ * @param prev - the previous disabled value
42
+ * @param next - the current disabled value
43
+ * @internal
44
+ */
45
+ protected disabledChanged(prev?: boolean, next?: boolean): void;
46
+ /**
47
+ * The value of the checked radio.
48
+ *
49
+ * @public
50
+ * @remarks
51
+ * HTML Attribute: `value`
52
+ */
53
+ initialValue?: string;
54
+ /**
55
+ * Sets the matching radio to checked when the value changes. If no radio matches the value, no radio will be checked.
56
+ *
57
+ * @param prev - the previous value
58
+ * @param next - the current value
59
+ */
60
+ initialValueChanged(prev: string | undefined, next: string | undefined): void;
61
+ /**
62
+ * The name of the radio group.
63
+ *
64
+ * @public
65
+ * @remarks
66
+ * HTML Attribute: `name`
67
+ */
68
+ name: string;
69
+ /**
70
+ * Sets the `name` attribute on all child radios when the `name` property changes.
71
+ *
72
+ * @internal
73
+ */
74
+ protected nameChanged(prev: string | undefined, next: string | undefined): void;
75
+ /**
76
+ * The orientation of the group.
77
+ *
78
+ * @public
79
+ * @remarks
80
+ * HTML Attribute: `orientation`
81
+ */
82
+ orientation?: RadioGroupOrientation;
83
+ /**
84
+ * Sets the ariaOrientation attribute when the orientation changes.
85
+ *
86
+ * @param prev - the previous orientation
87
+ * @param next - the current orientation
88
+ * @internal
89
+ */
90
+ orientationChanged(prev: RadioGroupOrientation | undefined, next: RadioGroupOrientation | undefined): void;
91
+ /**
92
+ * The collection of all child radios.
93
+ *
94
+ * @public
95
+ */
96
+ radios: Radio[];
97
+ /**
98
+ * Updates the enabled radios collection when properties on the child radios change.
99
+ *
100
+ * @param prev - the previous radios
101
+ * @param next - the current radios
102
+ */
103
+ radiosChanged(prev: Radio[] | undefined, next: Radio[] | undefined): void;
104
+ /**
105
+ * Indicates whether the radio group is required.
106
+ *
107
+ * @public
108
+ * @remarks
109
+ * HTML Attribute: `required`
110
+ */
111
+ required: boolean;
112
+ /**
113
+ *
114
+ * @param prev - the previous required value
115
+ * @param next - the current required value
116
+ */
117
+ requiredChanged(prev: boolean, next: boolean): void;
118
+ /**
119
+ * The collection of radios that are slotted into the default slot.
120
+ *
121
+ * @internal
122
+ */
123
+ slottedRadios: Radio[];
124
+ /**
125
+ * Updates the radios collection when the slotted radios change.
126
+ *
127
+ * @param prev - the previous slotted radios
128
+ * @param next - the current slotted radios
129
+ */
130
+ slottedRadiosChanged(prev: Radio[] | undefined, next: Radio[]): void;
131
+ /**
132
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
133
+ *
134
+ * @internal
135
+ */
136
+ elementInternals: ElementInternals;
137
+ /**
138
+ * A collection of child radios that are not disabled.
139
+ *
140
+ * @internal
141
+ */
142
+ get enabledRadios(): Radio[];
143
+ /**
144
+ * The form-associated flag.
145
+ * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-face-example | Form-associated custom elements}
146
+ *
147
+ * @public
148
+ */
149
+ static formAssociated: boolean;
150
+ /**
151
+ * The fallback validation message, taken from a native checkbox `<input>` element.
152
+ *
153
+ * @internal
154
+ */
155
+ private _validationFallbackMessage;
156
+ /**
157
+ * The validation message. Uses the browser's default validation message for native checkboxes if not otherwise
158
+ * specified (e.g., via `setCustomValidity`).
159
+ *
160
+ * @internal
161
+ */
162
+ get validationMessage(): string;
163
+ /**
164
+ * The element's validity state.
165
+ *
166
+ * @public
167
+ * @remarks
168
+ * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/validity | `ElementInternals.validity`} property.
169
+ */
170
+ get validity(): ValidityState;
171
+ /**
172
+ * The current value of the checked radio.
173
+ *
174
+ * @public
175
+ */
176
+ get value(): string | null;
177
+ set value(next: string | null);
178
+ /**
179
+ * Sets the checked state of all radios when any radio emits a `change` event.
180
+ *
181
+ * @param e - the change event
182
+ */
183
+ changeHandler(e: Event): boolean | void;
184
+ /**
185
+ * Checks the radio at the specified index.
186
+ *
187
+ * @param index - the index of the radio to check
188
+ * @internal
189
+ */
190
+ checkRadio(index?: number, shouldEmit?: boolean): void;
191
+ /**
192
+ * Checks the validity of the element and returns the result.
193
+ *
194
+ * @public
195
+ * @remarks
196
+ * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/checkValidity | `HTMLInputElement.checkValidity()`} method.
197
+ */
198
+ checkValidity(): boolean;
199
+ /**
200
+ * Handles click events for the radio group.
201
+ *
202
+ * @param e - the click event
203
+ * @internal
204
+ */
205
+ clickHandler(e: MouseEvent): boolean | void;
206
+ constructor();
207
+ /**
208
+ * Focuses the checked radio or the first enabled radio.
209
+ *
210
+ * @internal
211
+ */
212
+ focus(): void;
213
+ formResetCallback(): void;
214
+ /**
215
+ * Enables tabbing through the radio group when the group receives focus.
216
+ *
217
+ * @param e - the focus event
218
+ * @internal
219
+ */
220
+ focusinHandler(e: FocusEvent): boolean | void;
221
+ /**
222
+ * Handles keydown events for the radio group.
223
+ *
224
+ * @param e - the keyboard event
225
+ * @internal
226
+ */
227
+ keydownHandler(e: KeyboardEvent): boolean | void;
228
+ /**
229
+ *
230
+ * @param e - the disabled event
231
+ */
232
+ disabledRadioHandler(e: CustomEvent): void;
233
+ /**
234
+ * Reports the validity of the element.
235
+ *
236
+ * @public
237
+ * @remarks
238
+ * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/reportValidity | `HTMLInputElement.reportValidity()`} method.
239
+ */
240
+ reportValidity(): boolean;
241
+ /**
242
+ * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/setFormValue | `ElementInternals.setFormValue()`} method.
243
+ *
244
+ * @internal
245
+ */
246
+ setFormValue(value: File | string | FormData | null, state?: File | string | FormData | null): void;
247
+ /**
248
+ * Sets the validity of the element.
249
+ *
250
+ * @param flags - Validity flags to set.
251
+ * @param message - Optional message to supply. If not provided, the element's `validationMessage` will be used.
252
+ * @param anchor - Optional anchor to use for the validation message.
253
+ *
254
+ * @internal
255
+ * @remarks
256
+ * RadioGroup validation is reported through the individual Radio elements rather than the RadioGroup itself.
257
+ * This is necessary because:
258
+ * 1. Each Radio is form-associated (extends BaseCheckbox which has `formAssociated = true`)
259
+ * 2. Browser validation UIs and screen readers announce validation against individual form controls
260
+ * 3. For groups like RadioGroup, the browser needs to report the error on a specific member of the group
261
+ * 4. We anchor the error to the first Radio so it receives focus and announcement
262
+ *
263
+ * When the group is invalid (required but no selection):
264
+ * - Only the first Radio gets the invalid state with the validation message
265
+ * - Other Radios are kept valid since selecting any of them would satisfy the requirement
266
+ *
267
+ * When the group becomes valid (user selects any Radio):
268
+ * - All Radios are cleared back to valid state
269
+ * - This allows form submission to proceed
270
+ */
271
+ setValidity(flags?: Partial<ValidityState>, message?: string, anchor?: HTMLElement): void;
272
+ }
@@ -0,0 +1,438 @@
1
+ import { __decorate } from "tslib";
2
+ import { attr, FASTElement, Observable, observable } from '@microsoft/fast-element';
3
+ import { isRadio } from '../radio/radio.options.js';
4
+ import { RadioGroupOrientation } from './radio-group.options.js';
5
+ /**
6
+ * A Base Radio Group Custom HTML Element.
7
+ * Implements the {@link https://w3c.github.io/aria/#radiogroup | ARIA `radiogroup` role}.
8
+ *
9
+ * @public
10
+ */
11
+ export class BaseRadioGroup extends FASTElement {
12
+ /**
13
+ * Sets the checked state of the nearest enabled radio when the `checkedIndex` changes.
14
+ *
15
+ * @param prev - the previous index
16
+ * @param next - the current index
17
+ * @internal
18
+ */
19
+ checkedIndexChanged(prev, next) {
20
+ if (!this.enabledRadios) {
21
+ return;
22
+ }
23
+ this.checkRadio(next);
24
+ }
25
+ /**
26
+ * Sets the `disabled` attribute on all child radios when the `disabled` property changes.
27
+ *
28
+ * @param prev - the previous disabled value
29
+ * @param next - the current disabled value
30
+ * @internal
31
+ */
32
+ disabledChanged(prev, next) {
33
+ if (this.radios) {
34
+ this.checkedIndex = -1;
35
+ this.radios?.forEach(radio => {
36
+ radio.disabled = !!radio.disabledAttribute || !!this.disabled;
37
+ });
38
+ }
39
+ }
40
+ /**
41
+ * Sets the matching radio to checked when the value changes. If no radio matches the value, no radio will be checked.
42
+ *
43
+ * @param prev - the previous value
44
+ * @param next - the current value
45
+ */
46
+ initialValueChanged(prev, next) {
47
+ this.value = next ?? '';
48
+ }
49
+ /**
50
+ * Sets the `name` attribute on all child radios when the `name` property changes.
51
+ *
52
+ * @internal
53
+ */
54
+ nameChanged(prev, next) {
55
+ if (this.isConnected && next) {
56
+ this.radios?.forEach(radio => {
57
+ radio.name = this.name;
58
+ });
59
+ }
60
+ }
61
+ /**
62
+ * Sets the ariaOrientation attribute when the orientation changes.
63
+ *
64
+ * @param prev - the previous orientation
65
+ * @param next - the current orientation
66
+ * @internal
67
+ */
68
+ orientationChanged(prev, next) {
69
+ this.elementInternals.ariaOrientation = this.orientation ?? RadioGroupOrientation.horizontal;
70
+ }
71
+ /**
72
+ * Updates the enabled radios collection when properties on the child radios change.
73
+ *
74
+ * @param prev - the previous radios
75
+ * @param next - the current radios
76
+ */
77
+ radiosChanged(prev, next) {
78
+ const setSize = next?.length;
79
+ if (!setSize) {
80
+ return;
81
+ }
82
+ if (!this.name && next.every(x => x.name === next[0].name)) {
83
+ this.name = next[0].name;
84
+ }
85
+ const checkedIndex = this.enabledRadios.findLastIndex(x => x.initialChecked);
86
+ next.forEach((radio, index) => {
87
+ radio.ariaPosInSet = `${index + 1}`;
88
+ radio.ariaSetSize = `${setSize}`;
89
+ if (this.initialValue && !this.dirtyState) {
90
+ radio.checked = radio.value === this.initialValue;
91
+ }
92
+ else {
93
+ radio.checked = index === checkedIndex;
94
+ }
95
+ radio.name = this.name ?? radio.name;
96
+ radio.disabled = !!this.disabled || !!radio.disabledAttribute;
97
+ radio.toggleAttribute('focusgroupstart', radio.checked && !radio.disabled);
98
+ });
99
+ if (!this.dirtyState && this.initialValue) {
100
+ this.value = this.initialValue;
101
+ }
102
+ if (!this.value ||
103
+ // This logic covers the case when the RadioGroup doesn't have a `value`
104
+ (this.value && typeof this.checkedIndex !== 'number' && checkedIndex >= 0)) {
105
+ this.checkedIndex = checkedIndex;
106
+ }
107
+ // prettier-ignore
108
+ const radioIds = next.map(radio => radio.id).join(' ').trim();
109
+ if (radioIds) {
110
+ this.setAttribute('aria-owns', radioIds);
111
+ }
112
+ }
113
+ /**
114
+ *
115
+ * @param prev - the previous required value
116
+ * @param next - the current required value
117
+ */
118
+ requiredChanged(prev, next) {
119
+ this.elementInternals.ariaRequired = next ? 'true' : null;
120
+ this.setValidity();
121
+ }
122
+ /**
123
+ * Updates the radios collection when the slotted radios change.
124
+ *
125
+ * @param prev - the previous slotted radios
126
+ * @param next - the current slotted radios
127
+ */
128
+ slottedRadiosChanged(prev, next) {
129
+ this.radios = [...this.querySelectorAll('*')].filter(x => isRadio(x));
130
+ }
131
+ /**
132
+ * A collection of child radios that are not disabled.
133
+ *
134
+ * @internal
135
+ */
136
+ get enabledRadios() {
137
+ if (this.disabled) {
138
+ return [];
139
+ }
140
+ return this.radios?.filter(x => !x.disabled) ?? [];
141
+ }
142
+ /**
143
+ * The form-associated flag.
144
+ * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-face-example | Form-associated custom elements}
145
+ *
146
+ * @public
147
+ */
148
+ static { this.formAssociated = true; }
149
+ /**
150
+ * The validation message. Uses the browser's default validation message for native checkboxes if not otherwise
151
+ * specified (e.g., via `setCustomValidity`).
152
+ *
153
+ * @internal
154
+ */
155
+ get validationMessage() {
156
+ if (this.elementInternals.validationMessage) {
157
+ return this.elementInternals.validationMessage;
158
+ }
159
+ if (this.enabledRadios?.[0]?.validationMessage) {
160
+ return this.enabledRadios[0].validationMessage;
161
+ }
162
+ if (!this._validationFallbackMessage) {
163
+ const validationMessageFallbackControl = document.createElement('input');
164
+ validationMessageFallbackControl.type = 'radio';
165
+ validationMessageFallbackControl.required = true;
166
+ validationMessageFallbackControl.checked = false;
167
+ this._validationFallbackMessage = validationMessageFallbackControl.validationMessage;
168
+ }
169
+ return this._validationFallbackMessage;
170
+ }
171
+ /**
172
+ * The element's validity state.
173
+ *
174
+ * @public
175
+ * @remarks
176
+ * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/validity | `ElementInternals.validity`} property.
177
+ */
178
+ get validity() {
179
+ return this.elementInternals.validity;
180
+ }
181
+ /**
182
+ * The current value of the checked radio.
183
+ *
184
+ * @public
185
+ */
186
+ get value() {
187
+ Observable.notify(this, 'value');
188
+ return this.enabledRadios.find(x => x.checked)?.value ?? null;
189
+ }
190
+ set value(next) {
191
+ const index = this.enabledRadios.findIndex(x => x.value === next);
192
+ this.checkedIndex = index;
193
+ if (this.$fastController.isConnected) {
194
+ this.setFormValue(next);
195
+ this.setValidity();
196
+ }
197
+ Observable.track(this, 'value');
198
+ }
199
+ /**
200
+ * Sets the checked state of all radios when any radio emits a `change` event.
201
+ *
202
+ * @param e - the change event
203
+ */
204
+ changeHandler(e) {
205
+ if (this === e.target) {
206
+ return true;
207
+ }
208
+ this.dirtyState = true;
209
+ const radioIndex = this.enabledRadios.indexOf(e.target);
210
+ this.checkRadio(radioIndex);
211
+ this.radios
212
+ ?.filter(x => x.disabled)
213
+ ?.forEach(item => {
214
+ item.checked = false;
215
+ });
216
+ return true;
217
+ }
218
+ /**
219
+ * Checks the radio at the specified index.
220
+ *
221
+ * @param index - the index of the radio to check
222
+ * @internal
223
+ */
224
+ checkRadio(index = this.checkedIndex, shouldEmit = false) {
225
+ let checkedIndex = this.checkedIndex;
226
+ this.enabledRadios.forEach((item, i) => {
227
+ const shouldCheck = i === index;
228
+ item.checked = shouldCheck;
229
+ if (shouldCheck) {
230
+ checkedIndex = i;
231
+ if (shouldEmit) {
232
+ item.$emit('change');
233
+ }
234
+ }
235
+ });
236
+ this.checkedIndex = checkedIndex;
237
+ this.setFormValue(this.value);
238
+ this.setValidity();
239
+ }
240
+ /**
241
+ * Checks the validity of the element and returns the result.
242
+ *
243
+ * @public
244
+ * @remarks
245
+ * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/checkValidity | `HTMLInputElement.checkValidity()`} method.
246
+ */
247
+ checkValidity() {
248
+ return this.elementInternals.checkValidity();
249
+ }
250
+ /**
251
+ * Handles click events for the radio group.
252
+ *
253
+ * @param e - the click event
254
+ * @internal
255
+ */
256
+ clickHandler(e) {
257
+ if (this === e.target) {
258
+ this.enabledRadios[Math.max(0, this.checkedIndex)]?.focus();
259
+ }
260
+ return true;
261
+ }
262
+ constructor() {
263
+ super();
264
+ this.isNavigating = false;
265
+ /**
266
+ * Indicates that the value has been changed by the user.
267
+ */
268
+ this.dirtyState = false;
269
+ /**
270
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
271
+ *
272
+ * @internal
273
+ */
274
+ this.elementInternals = this.attachInternals();
275
+ this.elementInternals.role = 'radiogroup';
276
+ this.elementInternals.ariaOrientation = this.orientation ?? RadioGroupOrientation.horizontal;
277
+ }
278
+ /**
279
+ * Focuses the checked radio or the first enabled radio.
280
+ *
281
+ * @internal
282
+ */
283
+ focus() {
284
+ this.enabledRadios[Math.max(0, this.checkedIndex)]?.focus();
285
+ }
286
+ formResetCallback() {
287
+ this.dirtyState = false;
288
+ this.checkedIndex = -1;
289
+ this.setFormValue(this.value);
290
+ this.setValidity();
291
+ }
292
+ /**
293
+ * Enables tabbing through the radio group when the group receives focus.
294
+ *
295
+ * @param e - the focus event
296
+ * @internal
297
+ */
298
+ focusinHandler(e) {
299
+ if (!this.disabled && (this.isNavigating || this.value)) {
300
+ // Uncheck the checked disabled radio, if any.
301
+ this.radios?.forEach(radio => {
302
+ if (radio.disabled && radio.checked) {
303
+ radio.checked = false;
304
+ }
305
+ });
306
+ const index = this.enabledRadios.indexOf(e.target);
307
+ if (index > -1) {
308
+ this.checkRadio(index, true);
309
+ }
310
+ this.isNavigating = false;
311
+ }
312
+ return true;
313
+ }
314
+ /**
315
+ * Handles keydown events for the radio group.
316
+ *
317
+ * @param e - the keyboard event
318
+ * @internal
319
+ */
320
+ keydownHandler(e) {
321
+ switch (e.key) {
322
+ case 'ArrowUp':
323
+ case 'ArrowDown':
324
+ case 'ArrowLeft':
325
+ case 'ArrowRight':
326
+ case 'Home':
327
+ case 'End':
328
+ this.isNavigating = true;
329
+ break;
330
+ case ' ':
331
+ this.checkRadio();
332
+ break;
333
+ }
334
+ return true;
335
+ }
336
+ /**
337
+ *
338
+ * @param e - the disabled event
339
+ */
340
+ disabledRadioHandler(e) {
341
+ if (e.detail === true && e.target.checked) {
342
+ this.checkedIndex = -1;
343
+ }
344
+ }
345
+ /**
346
+ * Reports the validity of the element.
347
+ *
348
+ * @public
349
+ * @remarks
350
+ * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/reportValidity | `HTMLInputElement.reportValidity()`} method.
351
+ */
352
+ reportValidity() {
353
+ return this.elementInternals.reportValidity();
354
+ }
355
+ /**
356
+ * Reflects the {@link https://developer.mozilla.org/docs/Web/API/ElementInternals/setFormValue | `ElementInternals.setFormValue()`} method.
357
+ *
358
+ * @internal
359
+ */
360
+ setFormValue(value, state) {
361
+ this.elementInternals.setFormValue(value, value ?? state);
362
+ }
363
+ /**
364
+ * Sets the validity of the element.
365
+ *
366
+ * @param flags - Validity flags to set.
367
+ * @param message - Optional message to supply. If not provided, the element's `validationMessage` will be used.
368
+ * @param anchor - Optional anchor to use for the validation message.
369
+ *
370
+ * @internal
371
+ * @remarks
372
+ * RadioGroup validation is reported through the individual Radio elements rather than the RadioGroup itself.
373
+ * This is necessary because:
374
+ * 1. Each Radio is form-associated (extends BaseCheckbox which has `formAssociated = true`)
375
+ * 2. Browser validation UIs and screen readers announce validation against individual form controls
376
+ * 3. For groups like RadioGroup, the browser needs to report the error on a specific member of the group
377
+ * 4. We anchor the error to the first Radio so it receives focus and announcement
378
+ *
379
+ * When the group is invalid (required but no selection):
380
+ * - Only the first Radio gets the invalid state with the validation message
381
+ * - Other Radios are kept valid since selecting any of them would satisfy the requirement
382
+ *
383
+ * When the group becomes valid (user selects any Radio):
384
+ * - All Radios are cleared back to valid state
385
+ * - This allows form submission to proceed
386
+ */
387
+ setValidity(flags, message, anchor) {
388
+ if (this.$fastController.isConnected) {
389
+ // Always check if still required and has no value
390
+ const isInvalid = this.required && !this.value && !this.disabled;
391
+ if (!isInvalid) {
392
+ // Clear validity on all radios when group is valid
393
+ this.enabledRadios?.forEach(radio => {
394
+ radio.elementInternals.setValidity({});
395
+ });
396
+ return;
397
+ }
398
+ // Group is invalid - set error only on first enabled radio for announcement
399
+ const validationFlags = { valueMissing: true, ...flags };
400
+ const validationMessage = message ?? this.validationMessage;
401
+ this.enabledRadios?.forEach((radio, index) => {
402
+ if (index === 0) {
403
+ // Only the first radio shows the validation error for screen reader announcement
404
+ radio.elementInternals.setValidity(validationFlags, validationMessage, radio);
405
+ }
406
+ else {
407
+ // Other radios are valid (they're just not selected yet)
408
+ radio.elementInternals.setValidity({});
409
+ }
410
+ });
411
+ }
412
+ }
413
+ }
414
+ __decorate([
415
+ observable
416
+ ], BaseRadioGroup.prototype, "checkedIndex", void 0);
417
+ __decorate([
418
+ attr({ attribute: 'disabled', mode: 'boolean' })
419
+ ], BaseRadioGroup.prototype, "disabled", void 0);
420
+ __decorate([
421
+ attr({ attribute: 'value', mode: 'fromView' })
422
+ ], BaseRadioGroup.prototype, "initialValue", void 0);
423
+ __decorate([
424
+ attr
425
+ ], BaseRadioGroup.prototype, "name", void 0);
426
+ __decorate([
427
+ attr
428
+ ], BaseRadioGroup.prototype, "orientation", void 0);
429
+ __decorate([
430
+ observable
431
+ ], BaseRadioGroup.prototype, "radios", void 0);
432
+ __decorate([
433
+ attr({ mode: 'boolean' })
434
+ ], BaseRadioGroup.prototype, "required", void 0);
435
+ __decorate([
436
+ observable
437
+ ], BaseRadioGroup.prototype, "slottedRadios", void 0);
438
+ //# sourceMappingURL=radio-group.base.js.map