@fluentui/web-components 3.0.0-beta.7 → 3.0.0-beta.9

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 (293) hide show
  1. package/CHANGELOG.md +21 -2
  2. package/dist/dts/accordion/accordion.d.ts +47 -3
  3. package/dist/dts/accordion/accordion.definition.d.ts +0 -4
  4. package/dist/dts/accordion/accordion.options.d.ts +14 -0
  5. package/dist/dts/accordion/accordion.template.d.ts +4 -0
  6. package/dist/dts/accordion-item/accordion-item.d.ts +78 -3
  7. package/dist/dts/accordion-item/accordion-item.definition.d.ts +0 -3
  8. package/dist/dts/accordion-item/accordion-item.options.d.ts +1 -1
  9. package/dist/dts/accordion-item/accordion-item.template.d.ts +2 -1
  10. package/dist/dts/anchor-button/anchor-button.d.ts +116 -4
  11. package/dist/dts/anchor-button/anchor-button.definition.d.ts +0 -3
  12. package/dist/dts/anchor-button/anchor-button.options.d.ts +19 -2
  13. package/dist/dts/anchor-button/anchor-button.template.d.ts +7 -2
  14. package/dist/dts/avatar/avatar.options.d.ts +1 -1
  15. package/dist/dts/badge/badge.d.ts +1 -1
  16. package/dist/dts/badge/badge.definition.d.ts +0 -3
  17. package/dist/dts/badge/badge.options.d.ts +2 -2
  18. package/dist/dts/button/button.d.ts +142 -4
  19. package/dist/dts/button/button.definition.d.ts +0 -3
  20. package/dist/dts/button/button.form-associated.d.ts +14 -0
  21. package/dist/dts/button/button.options.d.ts +24 -3
  22. package/dist/dts/button/button.template.d.ts +2 -0
  23. package/dist/dts/checkbox/checkbox.d.ts +46 -3
  24. package/dist/dts/checkbox/checkbox.form-associated.d.ts +14 -0
  25. package/dist/dts/checkbox/checkbox.options.d.ts +1 -1
  26. package/dist/dts/checkbox/checkbox.template.d.ts +6 -1
  27. package/dist/dts/compound-button/compound-button.definition.d.ts +0 -3
  28. package/dist/dts/compound-button/compound-button.options.d.ts +6 -6
  29. package/dist/dts/counter-badge/counter-badge.d.ts +1 -1
  30. package/dist/dts/counter-badge/counter-badge.definition.d.ts +0 -4
  31. package/dist/dts/counter-badge/counter-badge.options.d.ts +1 -1
  32. package/dist/dts/dialog/dialog.options.d.ts +1 -1
  33. package/dist/dts/divider/divider.d.ts +20 -4
  34. package/dist/dts/divider/divider.options.d.ts +30 -6
  35. package/dist/dts/divider/divider.template.d.ts +1 -0
  36. package/dist/dts/form-associated/form-associated.d.ts +178 -0
  37. package/dist/dts/image/image.options.d.ts +1 -1
  38. package/dist/dts/label/label.options.d.ts +1 -1
  39. package/dist/dts/menu-button/menu-button.definition.d.ts +0 -3
  40. package/dist/dts/menu-button/menu-button.options.d.ts +2 -2
  41. package/dist/dts/menu-item/menu-item.d.ts +161 -4
  42. package/dist/dts/menu-item/menu-item.definition.d.ts +0 -4
  43. package/dist/dts/menu-item/menu-item.options.d.ts +30 -0
  44. package/dist/dts/menu-item/menu-item.template.d.ts +2 -1
  45. package/dist/dts/menu-list/menu-list.d.ts +71 -4
  46. package/dist/dts/menu-list/menu-list.definition.d.ts +0 -4
  47. package/dist/dts/menu-list/menu-list.template.d.ts +1 -0
  48. package/dist/dts/patterns/aria-globals.d.ts +189 -0
  49. package/dist/dts/patterns/index.d.ts +2 -0
  50. package/dist/dts/patterns/start-end.d.ts +44 -0
  51. package/dist/dts/progress-bar/base-progress.d.ts +41 -0
  52. package/dist/dts/progress-bar/progress-bar.d.ts +11 -4
  53. package/dist/dts/progress-bar/progress-bar.options.d.ts +10 -1
  54. package/dist/dts/progress-bar/progress-bar.template.d.ts +2 -0
  55. package/dist/dts/progress-ring/progress-ring.d.ts +15 -0
  56. package/dist/dts/progress-ring/progress-ring.options.d.ts +9 -0
  57. package/dist/dts/radio/radio.d.ts +54 -3
  58. package/dist/dts/radio/radio.form-associated.d.ts +14 -0
  59. package/dist/dts/radio/radio.template.d.ts +2 -1
  60. package/dist/dts/radio-group/index.d.ts +0 -1
  61. package/dist/dts/radio-group/radio-group.d.ts +91 -2
  62. package/dist/dts/radio-group/radio-group.options.d.ts +17 -0
  63. package/dist/dts/radio-group/radio-group.template.d.ts +1 -0
  64. package/dist/dts/slider/slider-utilities.d.ts +5 -0
  65. package/dist/dts/slider/slider.d.ts +195 -5
  66. package/dist/dts/slider/slider.form-associated.d.ts +14 -0
  67. package/dist/dts/slider/slider.options.d.ts +43 -2
  68. package/dist/dts/slider/slider.template.d.ts +4 -2
  69. package/dist/dts/spinner/spinner.d.ts +2 -2
  70. package/dist/dts/spinner/spinner.definition.d.ts +0 -4
  71. package/dist/dts/spinner/spinner.options.d.ts +1 -1
  72. package/dist/dts/spinner/spinner.template.d.ts +2 -0
  73. package/dist/dts/switch/switch.d.ts +34 -2
  74. package/dist/dts/switch/switch.form-associated.d.ts +14 -0
  75. package/dist/dts/switch/switch.options.d.ts +1 -1
  76. package/dist/dts/switch/switch.template.d.ts +2 -1
  77. package/dist/dts/tab/tab.d.ts +17 -2
  78. package/dist/dts/tab/tab.template.d.ts +3 -3
  79. package/dist/dts/tab-panel/tab-panel.d.ts +2 -2
  80. package/dist/dts/tab-panel/tab-panel.template.d.ts +4 -1
  81. package/dist/dts/tabs/tabs.d.ts +89 -4
  82. package/dist/dts/tabs/tabs.options.d.ts +21 -3
  83. package/dist/dts/tabs/tabs.template.d.ts +5 -1
  84. package/dist/dts/text/text.options.d.ts +1 -1
  85. package/dist/dts/text-input/index.d.ts +0 -1
  86. package/dist/dts/text-input/text-field.form-associated.d.ts +14 -0
  87. package/dist/dts/text-input/text-input.d.ts +134 -6
  88. package/dist/dts/text-input/text-input.options.d.ts +32 -1
  89. package/dist/dts/text-input/text-input.template.d.ts +2 -1
  90. package/dist/dts/theme/design-tokens.d.ts +53 -1
  91. package/dist/dts/toggle-button/toggle-button.definition.d.ts +0 -2
  92. package/dist/dts/toggle-button/toggle-button.options.d.ts +2 -2
  93. package/dist/dts/utils/benchmark-dependencies/tokens.d.ts +1 -0
  94. package/dist/dts/utils/benchmark-wrapper.d.ts +2 -0
  95. package/dist/dts/utils/direction.d.ts +10 -0
  96. package/dist/dts/utils/index.d.ts +4 -0
  97. package/dist/dts/utils/template-helpers.d.ts +16 -0
  98. package/dist/dts/utils/typings.d.ts +6 -0
  99. package/dist/dts/utils/whitespace-filter.d.ts +12 -0
  100. package/dist/esm/accordion/accordion.definition.js +0 -4
  101. package/dist/esm/accordion/accordion.definition.js.map +1 -1
  102. package/dist/esm/accordion/accordion.js +216 -3
  103. package/dist/esm/accordion/accordion.js.map +1 -1
  104. package/dist/esm/accordion/accordion.options.js +9 -0
  105. package/dist/esm/accordion/accordion.options.js.map +1 -0
  106. package/dist/esm/accordion/accordion.template.js +11 -1
  107. package/dist/esm/accordion/accordion.template.js.map +1 -1
  108. package/dist/esm/accordion-item/accordion-item.definition.js +0 -3
  109. package/dist/esm/accordion-item/accordion-item.definition.js.map +1 -1
  110. package/dist/esm/accordion-item/accordion-item.js +80 -4
  111. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  112. package/dist/esm/accordion-item/accordion-item.template.js +47 -2
  113. package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
  114. package/dist/esm/anchor-button/anchor-button.definition.js +0 -3
  115. package/dist/esm/anchor-button/anchor-button.definition.js.map +1 -1
  116. package/dist/esm/anchor-button/anchor-button.js +52 -4
  117. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  118. package/dist/esm/anchor-button/anchor-button.options.js +11 -0
  119. package/dist/esm/anchor-button/anchor-button.options.js.map +1 -1
  120. package/dist/esm/anchor-button/anchor-button.template.js +49 -1
  121. package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
  122. package/dist/esm/badge/badge.definition.js +0 -3
  123. package/dist/esm/badge/badge.definition.js.map +1 -1
  124. package/dist/esm/badge/badge.js +1 -1
  125. package/dist/esm/badge/badge.js.map +1 -1
  126. package/dist/esm/badge/badge.template.js +2 -2
  127. package/dist/esm/badge/badge.template.js.map +1 -1
  128. package/dist/esm/button/button.definition.js +0 -3
  129. package/dist/esm/button/button.definition.js.map +1 -1
  130. package/dist/esm/button/button.form-associated.js +14 -0
  131. package/dist/esm/button/button.form-associated.js.map +1 -0
  132. package/dist/esm/button/button.js +124 -4
  133. package/dist/esm/button/button.js.map +1 -1
  134. package/dist/esm/button/button.options.js +10 -0
  135. package/dist/esm/button/button.options.js.map +1 -1
  136. package/dist/esm/button/button.template.js +49 -1
  137. package/dist/esm/button/button.template.js.map +1 -1
  138. package/dist/esm/checkbox/checkbox.form-associated.js +14 -0
  139. package/dist/esm/checkbox/checkbox.form-associated.js.map +1 -0
  140. package/dist/esm/checkbox/checkbox.js +62 -4
  141. package/dist/esm/checkbox/checkbox.js.map +1 -1
  142. package/dist/esm/checkbox/checkbox.template.js +35 -7
  143. package/dist/esm/checkbox/checkbox.template.js.map +1 -1
  144. package/dist/esm/compound-button/compound-button.definition.js +0 -3
  145. package/dist/esm/compound-button/compound-button.definition.js.map +1 -1
  146. package/dist/esm/compound-button/compound-button.options.js.map +1 -1
  147. package/dist/esm/compound-button/compound-button.template.js +1 -1
  148. package/dist/esm/compound-button/compound-button.template.js.map +1 -1
  149. package/dist/esm/counter-badge/counter-badge.definition.js +0 -4
  150. package/dist/esm/counter-badge/counter-badge.definition.js.map +1 -1
  151. package/dist/esm/counter-badge/counter-badge.js +1 -1
  152. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  153. package/dist/esm/divider/divider.js +29 -4
  154. package/dist/esm/divider/divider.js.map +1 -1
  155. package/dist/esm/divider/divider.options.js +14 -5
  156. package/dist/esm/divider/divider.options.js.map +1 -1
  157. package/dist/esm/divider/divider.template.js +12 -1
  158. package/dist/esm/divider/divider.template.js.map +1 -1
  159. package/dist/esm/form-associated/form-associated.js +458 -0
  160. package/dist/esm/form-associated/form-associated.js.map +1 -0
  161. package/dist/esm/menu-button/menu-button.definition.js +0 -3
  162. package/dist/esm/menu-button/menu-button.definition.js.map +1 -1
  163. package/dist/esm/menu-button/menu-button.options.js.map +1 -1
  164. package/dist/esm/menu-button/menu-button.template.js +1 -1
  165. package/dist/esm/menu-button/menu-button.template.js.map +1 -1
  166. package/dist/esm/menu-item/menu-item.definition.js +0 -4
  167. package/dist/esm/menu-item/menu-item.definition.js.map +1 -1
  168. package/dist/esm/menu-item/menu-item.js +270 -4
  169. package/dist/esm/menu-item/menu-item.js.map +1 -1
  170. package/dist/esm/menu-item/menu-item.options.js +27 -0
  171. package/dist/esm/menu-item/menu-item.options.js.map +1 -0
  172. package/dist/esm/menu-item/menu-item.template.js +57 -2
  173. package/dist/esm/menu-item/menu-item.template.js.map +1 -1
  174. package/dist/esm/menu-list/menu-list.definition.js +0 -4
  175. package/dist/esm/menu-list/menu-list.definition.js.map +1 -1
  176. package/dist/esm/menu-list/menu-list.js +265 -10
  177. package/dist/esm/menu-list/menu-list.js.map +1 -1
  178. package/dist/esm/menu-list/menu-list.template.js +13 -1
  179. package/dist/esm/menu-list/menu-list.template.js.map +1 -1
  180. package/dist/esm/patterns/aria-globals.js +77 -0
  181. package/dist/esm/patterns/aria-globals.js.map +1 -0
  182. package/dist/esm/patterns/index.js +3 -0
  183. package/dist/esm/patterns/index.js.map +1 -0
  184. package/dist/esm/patterns/start-end.js +29 -0
  185. package/dist/esm/patterns/start-end.js.map +1 -0
  186. package/dist/esm/progress-bar/base-progress.js +61 -0
  187. package/dist/esm/progress-bar/base-progress.js.map +1 -0
  188. package/dist/esm/progress-bar/progress-bar.js +10 -3
  189. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  190. package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
  191. package/dist/esm/progress-bar/progress-bar.template.js +25 -1
  192. package/dist/esm/progress-bar/progress-bar.template.js.map +1 -1
  193. package/dist/esm/progress-ring/progress-ring.js +16 -0
  194. package/dist/esm/progress-ring/progress-ring.js.map +1 -0
  195. package/dist/esm/progress-ring/progress-ring.options.js +2 -0
  196. package/dist/esm/progress-ring/progress-ring.options.js.map +1 -0
  197. package/dist/esm/radio/radio.form-associated.js +14 -0
  198. package/dist/esm/radio/radio.form-associated.js.map +1 -0
  199. package/dist/esm/radio/radio.js +96 -3
  200. package/dist/esm/radio/radio.js.map +1 -1
  201. package/dist/esm/radio/radio.template.js +28 -2
  202. package/dist/esm/radio/radio.template.js.map +1 -1
  203. package/dist/esm/radio-group/index.js +0 -1
  204. package/dist/esm/radio-group/index.js.map +1 -1
  205. package/dist/esm/radio-group/radio-group.js +346 -3
  206. package/dist/esm/radio-group/radio-group.js.map +1 -1
  207. package/dist/esm/radio-group/radio-group.options.js +7 -0
  208. package/dist/esm/radio-group/radio-group.options.js.map +1 -0
  209. package/dist/esm/radio-group/radio-group.template.js +30 -1
  210. package/dist/esm/radio-group/radio-group.template.js.map +1 -1
  211. package/dist/esm/slider/slider-utilities.js +12 -0
  212. package/dist/esm/slider/slider-utilities.js.map +1 -0
  213. package/dist/esm/slider/slider.form-associated.js +14 -0
  214. package/dist/esm/slider/slider.form-associated.js.map +1 -0
  215. package/dist/esm/slider/slider.js +432 -16
  216. package/dist/esm/slider/slider.js.map +1 -1
  217. package/dist/esm/slider/slider.options.js +11 -1
  218. package/dist/esm/slider/slider.options.js.map +1 -1
  219. package/dist/esm/slider/slider.template.js +38 -1
  220. package/dist/esm/slider/slider.template.js.map +1 -1
  221. package/dist/esm/spinner/spinner.definition.js +0 -4
  222. package/dist/esm/spinner/spinner.definition.js.map +1 -1
  223. package/dist/esm/spinner/spinner.js +2 -2
  224. package/dist/esm/spinner/spinner.js.map +1 -1
  225. package/dist/esm/spinner/spinner.template.js +27 -1
  226. package/dist/esm/spinner/spinner.template.js.map +1 -1
  227. package/dist/esm/switch/switch.form-associated.js +14 -0
  228. package/dist/esm/switch/switch.form-associated.js.map +1 -0
  229. package/dist/esm/switch/switch.js +48 -3
  230. package/dist/esm/switch/switch.js.map +1 -1
  231. package/dist/esm/switch/switch.template.js +25 -1
  232. package/dist/esm/switch/switch.template.js.map +1 -1
  233. package/dist/esm/tab/tab.js +14 -3
  234. package/dist/esm/tab/tab.js.map +1 -1
  235. package/dist/esm/tab/tab.template.js +1 -1
  236. package/dist/esm/tab/tab.template.js.map +1 -1
  237. package/dist/esm/tab-panel/tab-panel.js +2 -2
  238. package/dist/esm/tab-panel/tab-panel.js.map +1 -1
  239. package/dist/esm/tab-panel/tab-panel.template.js +8 -1
  240. package/dist/esm/tab-panel/tab-panel.template.js.map +1 -1
  241. package/dist/esm/tabs/tabs.js +278 -5
  242. package/dist/esm/tabs/tabs.js.map +1 -1
  243. package/dist/esm/tabs/tabs.options.js +6 -2
  244. package/dist/esm/tabs/tabs.options.js.map +1 -1
  245. package/dist/esm/tabs/tabs.template.js +14 -1
  246. package/dist/esm/tabs/tabs.template.js.map +1 -1
  247. package/dist/esm/text-input/index.js +0 -1
  248. package/dist/esm/text-input/index.js.map +1 -1
  249. package/dist/esm/text-input/text-field.form-associated.js +14 -0
  250. package/dist/esm/text-input/text-field.form-associated.js.map +1 -0
  251. package/dist/esm/text-input/text-input.js +167 -7
  252. package/dist/esm/text-input/text-input.js.map +1 -1
  253. package/dist/esm/text-input/text-input.options.js +26 -0
  254. package/dist/esm/text-input/text-input.options.js.map +1 -1
  255. package/dist/esm/text-input/text-input.template.js +64 -1
  256. package/dist/esm/text-input/text-input.template.js.map +1 -1
  257. package/dist/esm/theme/design-tokens.js +53 -1
  258. package/dist/esm/theme/design-tokens.js.map +1 -1
  259. package/dist/esm/toggle-button/toggle-button.definition.js +0 -2
  260. package/dist/esm/toggle-button/toggle-button.definition.js.map +1 -1
  261. package/dist/esm/toggle-button/toggle-button.options.js.map +1 -1
  262. package/dist/esm/toggle-button/toggle-button.template.js +1 -1
  263. package/dist/esm/toggle-button/toggle-button.template.js.map +1 -1
  264. package/dist/esm/utils/benchmark-dependencies/tokens.js +2 -0
  265. package/dist/esm/utils/benchmark-dependencies/tokens.js.map +1 -0
  266. package/dist/esm/utils/benchmark-wrapper.js +18 -0
  267. package/dist/esm/utils/benchmark-wrapper.js.map +1 -0
  268. package/dist/esm/utils/direction.js +15 -0
  269. package/dist/esm/utils/direction.js.map +1 -0
  270. package/dist/esm/utils/index.js +5 -0
  271. package/dist/esm/utils/index.js.map +1 -0
  272. package/dist/esm/utils/template-helpers.js +19 -0
  273. package/dist/esm/utils/template-helpers.js.map +1 -0
  274. package/dist/esm/utils/typings.js +3 -0
  275. package/dist/esm/utils/typings.js.map +1 -0
  276. package/dist/esm/utils/whitespace-filter.js +13 -0
  277. package/dist/esm/utils/whitespace-filter.js.map +1 -0
  278. package/dist/fluent-web-components.api.json +9315 -3940
  279. package/dist/storybook/284.0946b1fb.iframe.bundle.js +2 -0
  280. package/dist/storybook/iframe.html +1 -1
  281. package/dist/storybook/main.59da076f.iframe.bundle.js +2 -0
  282. package/dist/storybook/project.json +1 -1
  283. package/dist/web-components.d.ts +2194 -241
  284. package/dist/web-components.js +2069 -3196
  285. package/dist/web-components.min.js +123 -123
  286. package/docs/api-report.md +600 -90
  287. package/package.json +5 -2
  288. package/tensile.config.js +24 -0
  289. package/dist/storybook/350.e4be85c2.iframe.bundle.js +0 -462
  290. package/dist/storybook/350.e4be85c2.iframe.bundle.js.map +0 -1
  291. package/dist/storybook/main.b095c2e8.iframe.bundle.js +0 -2
  292. /package/dist/storybook/{350.e4be85c2.iframe.bundle.js.LICENSE.txt → 284.0946b1fb.iframe.bundle.js.LICENSE.txt} +0 -0
  293. /package/dist/storybook/{main.b095c2e8.iframe.bundle.js.LICENSE.txt → main.59da076f.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -1,52 +1,65 @@
1
- import type { AnchorOptions as AnchorButtonOptions } from '@microsoft/fast-foundation/anchor.js';
2
- import type { ButtonOptions } from '@microsoft/fast-foundation/button.js';
3
- import { DividerOrientation } from '@microsoft/fast-foundation/divider.js';
4
- import { DividerRole } from '@microsoft/fast-foundation/divider.js';
1
+ import type { Constructable } from '@microsoft/fast-element';
2
+ import { Direction } from '@microsoft/fast-web-utilities';
5
3
  import { ElementStyles } from '@microsoft/fast-element';
6
4
  import { ElementViewTemplate } from '@microsoft/fast-element';
7
- import { FASTAccordion } from '@microsoft/fast-foundation/accordion.js';
8
- import { FASTAccordionItem } from '@microsoft/fast-foundation/accordion-item.js';
9
- import { FASTAnchor } from '@microsoft/fast-foundation/anchor.js';
10
- import { FASTButton } from '@microsoft/fast-foundation/button.js';
11
- import { FASTCheckbox } from '@microsoft/fast-foundation/checkbox.js';
12
- import { FASTDivider } from '@microsoft/fast-foundation/divider.js';
13
5
  import { FASTElement } from '@microsoft/fast-element';
14
6
  import { FASTElementDefinition } from '@microsoft/fast-element';
15
- import { FASTMenu } from '@microsoft/fast-foundation/menu.js';
16
- import { FASTMenuItem } from '@microsoft/fast-foundation/menu-item.js';
17
- import { FASTProgress } from '@microsoft/fast-foundation/progress.js';
18
- import { FASTProgressRing } from '@microsoft/fast-foundation/progress-ring.js';
19
- import { FASTRadio } from '@microsoft/fast-foundation/radio.js';
20
- import { FASTRadioGroup } from '@microsoft/fast-foundation/radio-group.js';
21
- import { FASTSlider } from '@microsoft/fast-foundation/slider.js';
22
- import { FASTSwitch } from '@microsoft/fast-foundation/switch.js';
23
- import { FASTTab } from '@microsoft/fast-foundation/tab.js';
24
- import { FASTTabPanel } from '@microsoft/fast-foundation/tab-panel.js';
25
- import { FASTTabs } from '@microsoft/fast-foundation/tabs.js';
26
- import { FASTTextField } from '@microsoft/fast-foundation/text-field.js';
27
- import { MenuItemRole } from '@microsoft/fast-foundation/menu-item.js';
28
- import { RadioGroupOrientation } from '@microsoft/fast-foundation/radio-group.js';
29
- import { SliderOrientation } from '@microsoft/fast-foundation/slider.js';
30
- import { StartEnd } from '@microsoft/fast-foundation/patterns.js';
31
- import { StartEndOptions } from '@microsoft/fast-foundation/patterns.js';
32
- import type { StaticallyComposableHTML } from '@microsoft/fast-foundation/utilities.js';
33
- import { TabsOrientation } from '@microsoft/fast-foundation/tabs.js';
34
- import { TextFieldType as TextInputType } from '@microsoft/fast-foundation/text-field.js';
7
+ import { HTMLDirective } from '@microsoft/fast-element';
8
+ import { Orientation } from '@microsoft/fast-web-utilities';
9
+ import type { SyntheticViewTemplate } from '@microsoft/fast-element';
35
10
  import type { Theme } from '@fluentui/tokens';
36
- import type { ValuesOf } from '@microsoft/fast-foundation/utilities.js';
37
11
 
38
12
  /**
39
- * The base class used for constructing a fluent-accordion custom element
13
+ * An Accordion Custom HTML Element
14
+ * Implements {@link https://www.w3.org/TR/wai-aria-practices-1.1/#accordion | ARIA Accordion}.
15
+ *
16
+ * @fires change - Fires a custom 'change' event when the active item changes
17
+ * @csspart item - The slot for the accordion items
40
18
  * @public
41
19
  */
42
- export declare class Accordion extends FASTAccordion {
20
+ export declare class Accordion extends FASTElement {
21
+ /**
22
+ * Controls the expand mode of the Accordion, either allowing
23
+ * single or multiple item expansion.
24
+ * @public
25
+ *
26
+ * @remarks
27
+ * HTML attribute: expand-mode
28
+ */
29
+ expandmode: AccordionExpandMode;
30
+ expandmodeChanged(prev: AccordionExpandMode, next: AccordionExpandMode): void;
31
+ /**
32
+ * @internal
33
+ */
34
+ slottedAccordionItems: HTMLElement[];
35
+ protected accordionItems: Element[];
36
+ /**
37
+ * @internal
38
+ */
39
+ slottedAccordionItemsChanged(oldValue: HTMLElement[], newValue: HTMLElement[]): void;
40
+ /**
41
+ * @internal
42
+ */
43
+ handleChange(source: any, propertyName: string): void;
44
+ private activeid;
45
+ private activeItemIndex;
46
+ private accordionIds;
47
+ private change;
48
+ private findExpandedItem;
49
+ private setItems;
50
+ private setSingleExpandMode;
51
+ private removeItemListeners;
52
+ private activeItemChange;
53
+ private handleExpandedChange;
54
+ private getItemIds;
55
+ private isSingleExpandMode;
56
+ private handleItemKeyDown;
57
+ private handleItemFocus;
58
+ private adjust;
59
+ private focusItem;
43
60
  }
44
61
 
45
62
  /**
46
- * The Fluent Accordion Element. Implements {@link @microsoft/fast-foundation#Accordion },
47
- * {@link @microsoft/fast-foundation#accordionTemplate}
48
- *
49
- *
50
63
  * @public
51
64
  * @remarks
52
65
  * HTML Element: \<fluent-accordion\>
@@ -54,9 +67,72 @@ export declare class Accordion extends FASTAccordion {
54
67
  export declare const accordionDefinition: FASTElementDefinition<typeof Accordion>;
55
68
 
56
69
  /**
57
- * @internal
70
+ * Expand mode for {@link FASTAccordion}
71
+ * @public
72
+ */
73
+ declare const AccordionExpandMode: {
74
+ readonly single: "single";
75
+ readonly multi: "multi";
76
+ };
77
+
78
+ /**
79
+ * Type for the {@link FASTAccordion} Expand Mode
80
+ * @public
81
+ */
82
+ declare type AccordionExpandMode = ValuesOf<typeof AccordionExpandMode>;
83
+
84
+ /**
85
+ *
86
+ * @slot start - Content which can be provided between the heading and the icon
87
+ * @slot end - Content which can be provided between the start slot and icon
88
+ * @slot heading - Content which serves as the accordion item heading and text of the expand button
89
+ * @slot - The default slot for accordion item content
90
+ * @slot expanded-icon - The expanded icon
91
+ * @slot collapsed-icon - The collapsed icon
92
+ * @fires change - Fires a custom 'change' event when the button is invoked
93
+ * @csspart heading - Wraps the button
94
+ * @csspart button - The button which serves to invoke the item
95
+ * @csspart heading-content - Wraps the slot for the heading content within the button
96
+ * @csspart icon - The icon container
97
+ * @csspart region - The wrapper for the accordion item content
98
+ *
99
+ * @public
58
100
  */
59
- export declare class AccordionItem extends FASTAccordionItem {
101
+ export declare class AccordionItem extends FASTElement {
102
+ /**
103
+ * Configures the {@link https://www.w3.org/TR/wai-aria-1.1/#aria-level | level} of the
104
+ * heading element.
105
+ *
106
+ * @defaultValue 2
107
+ * @public
108
+ * @remarks
109
+ * HTML attribute: heading-level
110
+ */
111
+ headinglevel: 1 | 2 | 3 | 4 | 5 | 6;
112
+ /**
113
+ * Expands or collapses the item.
114
+ *
115
+ * @public
116
+ * @remarks
117
+ * HTML attribute: expanded
118
+ */
119
+ expanded: boolean;
120
+ /**
121
+ * Disables an accordion item
122
+ *
123
+ * @public
124
+ * @remarks
125
+ * HTML attribute: disabled
126
+ */
127
+ disabled: boolean;
128
+ /**
129
+ * The item ID
130
+ *
131
+ * @public
132
+ * @remarks
133
+ * HTML Attribute: id
134
+ */
135
+ id: string;
60
136
  /**
61
137
  * Defines accordion header font size.
62
138
  *
@@ -83,12 +159,26 @@ export declare class AccordionItem extends FASTAccordionItem {
83
159
  * HTML Attribute: expandIconPosition
84
160
  */
85
161
  expandIconPosition?: AccordionItemExpandIconPosition;
162
+ /**
163
+ * @internal
164
+ */
165
+ expandbutton: HTMLElement;
166
+ /**
167
+ * @internal
168
+ */
169
+ clickHandler: (e: MouseEvent) => void;
170
+ }
171
+
172
+ /**
173
+ * Mark internal because exporting class and interface of the same name
174
+ * confuses API documenter.
175
+ * TODO: https://github.com/microsoft/fast/issues/3317
176
+ * @internal
177
+ */
178
+ export declare interface AccordionItem extends StartEnd {
86
179
  }
87
180
 
88
181
  /**
89
- * The Fluent AccordionItem Element. Implements {@link @microsoft/fast-foundation#AccordionItem },
90
- * {@link @microsoft/fast-foundation#accordionItemTemplate}
91
- *
92
182
  *
93
183
  * @public
94
184
  * @remarks
@@ -110,6 +200,15 @@ export declare const AccordionItemExpandIconPosition: {
110
200
  */
111
201
  export declare type AccordionItemExpandIconPosition = ValuesOf<typeof AccordionItemExpandIconPosition>;
112
202
 
203
+ /**
204
+ * Accordion Item configuration options
205
+ * @public
206
+ */
207
+ export declare type AccordionItemOptions = StartEndOptions<AccordionItem> & {
208
+ expandedIcon?: StaticallyComposableHTML<AccordionItem>;
209
+ collapsedIcon?: StaticallyComposableHTML<AccordionItem>;
210
+ };
211
+
113
212
  /**
114
213
  * An Accordion Item header font size can be small, medium, large, and extra-large
115
214
  */
@@ -139,10 +238,85 @@ export declare const accordionStyles: ElementStyles;
139
238
  export declare const accordionTemplate: ElementViewTemplate<Accordion>;
140
239
 
141
240
  /**
142
- * The base class used for constructing a fluent-anchor-button custom element
241
+ * An Anchor Custom HTML Element.
242
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element }.
243
+ *
244
+ * @slot start - Content which can be provided before the anchor content
245
+ * @slot end - Content which can be provided after the anchor content
246
+ * @slot - The default slot for anchor content
247
+ * @csspart control - The anchor element
248
+ * @csspart content - The element wrapping anchor content
249
+ *
143
250
  * @public
144
251
  */
145
- export declare class AnchorButton extends FASTAnchor {
252
+ export declare class AnchorButton extends FASTElement {
253
+ /**
254
+ * Prompts the user to save the linked URL. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element } for more information.
255
+ * @public
256
+ * @remarks
257
+ * HTML Attribute: download
258
+ */
259
+ download: string;
260
+ /**
261
+ * The URL the hyperlink references. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element } for more information.
262
+ * @public
263
+ * @remarks
264
+ * HTML Attribute: href
265
+ */
266
+ href: string;
267
+ /**
268
+ * Hints at the language of the referenced resource. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element } for more information.
269
+ * @public
270
+ * @remarks
271
+ * HTML Attribute: hreflang
272
+ */
273
+ hreflang: string;
274
+ /**
275
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element } for more information.
276
+ * @public
277
+ * @remarks
278
+ * HTML Attribute: ping
279
+ */
280
+ ping: string;
281
+ /**
282
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element } for more information.
283
+ * @public
284
+ * @remarks
285
+ * HTML Attribute: referrerpolicy
286
+ */
287
+ referrerpolicy: string;
288
+ /**
289
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element } for more information.
290
+ * @public
291
+ * @remarks
292
+ * HTML Attribute: rel
293
+ */
294
+ rel: string;
295
+ /**
296
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element } for more information.
297
+ * @public
298
+ * @remarks
299
+ * HTML Attribute: target
300
+ */
301
+ target: AnchorTarget;
302
+ /**
303
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element } for more information.
304
+ * @public
305
+ * @remarks
306
+ * HTML Attribute: type
307
+ */
308
+ type: string;
309
+ /**
310
+ *
311
+ * Default slotted content
312
+ *
313
+ * @internal
314
+ */
315
+ defaultSlottedContent: HTMLElement[];
316
+ /**
317
+ * References the root element
318
+ */
319
+ control: HTMLAnchorElement;
146
320
  /**
147
321
  * The appearance the anchor button should have.
148
322
  *
@@ -201,6 +375,15 @@ export declare class AnchorButton extends FASTAnchor {
201
375
  disconnectedCallback(): void;
202
376
  }
203
377
 
378
+ /**
379
+ * Mark internal because exporting class and interface of the same name
380
+ * confuses API documenter.
381
+ * TODO: https://github.com/microsoft/fast/issues/3317
382
+ * @internal
383
+ */
384
+ export declare interface AnchorButton extends StartEnd, DelegatesARIALink {
385
+ }
386
+
204
387
  /**
205
388
  * Anchor Button Appearance constants
206
389
  * @public
@@ -220,17 +403,12 @@ export declare const AnchorButtonAppearance: {
220
403
  export declare type AnchorButtonAppearance = ValuesOf<typeof AnchorButtonAppearance>;
221
404
 
222
405
  /**
223
- * The Fluent Anchor Button Element. Implements {@link @microsoft/fast-foundation#Anchor },
224
- * {@link @microsoft/fast-foundation#anchorTemplate}
225
- *
226
406
  * @public
227
407
  * @remarks
228
408
  * HTML Element: \<fluent-anchor-button\>
229
409
  */
230
410
  export declare const AnchorButtonDefinition: FASTElementDefinition<typeof AnchorButton>;
231
411
 
232
- export { AnchorButtonOptions }
233
-
234
412
  /**
235
413
  * An Anchor Button can be square, circular or rounded.
236
414
  * @public
@@ -269,6 +447,223 @@ export declare type AnchorButtonSize = ValuesOf<typeof AnchorButtonSize>;
269
447
  */
270
448
  export declare const AnchorButtonTemplate: ElementViewTemplate<AnchorButton>;
271
449
 
450
+ /**
451
+ * Anchor configuration options
452
+ * @public
453
+ */
454
+ declare type AnchorOptions = StartEndOptions<AnchorButton>;
455
+ export { AnchorOptions as AnchorButtonOptions }
456
+ export { AnchorOptions }
457
+
458
+ /**
459
+ * Anchor target values.
460
+ *
461
+ * @public
462
+ */
463
+ export declare const AnchorTarget: {
464
+ readonly _self: "_self";
465
+ readonly _blank: "_blank";
466
+ readonly _parent: "_parent";
467
+ readonly _top: "_top";
468
+ };
469
+
470
+ /**
471
+ * Type for anchor target values.
472
+ *
473
+ * @public
474
+ */
475
+ export declare type AnchorTarget = ValuesOf<typeof AnchorTarget>;
476
+
477
+ /**
478
+ * Some states and properties are applicable to all host language elements regardless of whether a role is applied.
479
+ * The following global states and properties are supported by all roles and by all base markup elements.
480
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#global_states}
481
+ *
482
+ * This is intended to be used as a mixin. Be sure you extend FASTElement.
483
+ *
484
+ * @public
485
+ */
486
+ declare class ARIAGlobalStatesAndProperties {
487
+ /**
488
+ * Indicates whether assistive technologies will present all, or only parts of,
489
+ * the changed region based on the change notifications defined by the aria-relevant attribute.
490
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-atomic}
491
+ *
492
+ * @public
493
+ * @remarks
494
+ * HTML Attribute: aria-atomic
495
+ */
496
+ ariaAtomic: 'true' | 'false' | string | null;
497
+ /**
498
+ * Indicates an element is being modified and that assistive technologies MAY want to wait
499
+ * until the modifications are complete before exposing them to the user.
500
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-busy}
501
+ *
502
+ * @public
503
+ * @remarks
504
+ * HTML Attribute: aria-busy
505
+ */
506
+ ariaBusy: 'true' | 'false' | string | null;
507
+ /**
508
+ * Identifies the element (or elements) whose contents or presence are controlled by the current element.
509
+ *
510
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-controls}
511
+ * @public
512
+ * @remarks
513
+ * HTML Attribute: aria-controls
514
+ */
515
+ ariaControls: string | null;
516
+ /**
517
+ * Indicates the element that represents the current item within a container or set of related elements.
518
+ *
519
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-current}
520
+ * @public
521
+ * @remarks
522
+ * HTML Attribute: aria-current
523
+ */
524
+ ariaCurrent: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false' | string | null;
525
+ /**
526
+ * Identifies the element (or elements) that describes the object.
527
+ *
528
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-describedby}
529
+ * @public
530
+ * @remarks
531
+ * HTML Attribute: aria-describedby
532
+ */
533
+ ariaDescribedby: string | null;
534
+ /**
535
+ * Identifies the element that provides a detailed, extended description for the object.
536
+ *
537
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-details}
538
+ * @public
539
+ * @remarks
540
+ * HTML Attribute: aria-details
541
+ */
542
+ ariaDetails: string | null;
543
+ /**
544
+ * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
545
+ *
546
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-disabled}
547
+ * @public
548
+ * @remarks
549
+ * HTML Attribute: aria-disabled
550
+ */
551
+ ariaDisabled: 'true' | 'false' | string | null;
552
+ /**
553
+ * Identifies the element that provides an error message for the object.
554
+ *
555
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage}
556
+ * @public
557
+ * @remarks
558
+ * HTML Attribute: aria-errormessage
559
+ */
560
+ ariaErrormessage: string | null;
561
+ /**
562
+ * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
563
+ * allows assistive technology to override the general default of reading in document source order.
564
+ *
565
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-flowto}
566
+ * @public
567
+ * @remarks
568
+ * HTML Attribute: aria-flowto
569
+ */
570
+ ariaFlowto: string | null;
571
+ /**
572
+ * Indicates the availability and type of interactive popup element,
573
+ * such as menu or dialog, that can be triggered by an element.
574
+ *
575
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup}
576
+ * @public
577
+ * @remarks
578
+ * HTML Attribute: aria-haspopup
579
+ */
580
+ ariaHaspopup: 'false' | 'true' | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | string | null;
581
+ /**
582
+ * Indicates whether the element is exposed to an accessibility API
583
+ *
584
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-hidden}
585
+ * @public
586
+ * @remarks
587
+ * HTML Attribute: aria-hidden
588
+ */
589
+ ariaHidden: 'false' | 'true' | string | null;
590
+ /**
591
+ * Indicates the entered value does not conform to the format expected by the application.
592
+ *
593
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-invalid}
594
+ * @public
595
+ * @remarks
596
+ * HTML Attribute: aria-invalid
597
+ */
598
+ ariaInvalid: 'false' | 'true' | 'grammar' | 'spelling' | string | null;
599
+ /**
600
+ * Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.
601
+ *
602
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-keyshortcuts}
603
+ * @public
604
+ * @remarks
605
+ * HTML Attribute: aria-keyshortcuts
606
+ */
607
+ ariaKeyshortcuts: string | null;
608
+ /**
609
+ * Defines a string value that labels the current element.
610
+ *
611
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-label}
612
+ * @public
613
+ * @remarks
614
+ * HTML Attribute: aria-label
615
+ */
616
+ ariaLabel: string | null;
617
+ /**
618
+ * Identifies the element (or elements) that labels the current element.
619
+ *
620
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby}
621
+ * @public
622
+ * @remarks
623
+ * HTML Attribute: aria-labelledby
624
+ */
625
+ ariaLabelledby: string | null;
626
+ /**
627
+ * Indicates that an element will be updated, and describes the types of updates the user agents,
628
+ * assistive technologies, and user can expect from the live region.
629
+ *
630
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-live}
631
+ * @public
632
+ * @remarks
633
+ * HTML Attribute: aria-live
634
+ */
635
+ ariaLive: 'assertive' | 'off' | 'polite' | string | null;
636
+ /**
637
+ * Identifies an element (or elements) in order to define a visual,
638
+ * functional, or contextual parent/child relationship between DOM elements
639
+ * where the DOM hierarchy cannot be used to represent the relationship.
640
+ *
641
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-owns}
642
+ * @public
643
+ * @remarks
644
+ * HTML Attribute: aria-owns
645
+ */
646
+ ariaOwns: string | null;
647
+ /**
648
+ * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
649
+ *
650
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-relevant}
651
+ * @public
652
+ * @remarks
653
+ * HTML Attribute: aria-relevant
654
+ */
655
+ ariaRelevant: 'additions' | 'additions text' | 'all' | 'removals' | 'text' | string | null;
656
+ /**
657
+ * Defines a human-readable, author-localized description for the role of an element.
658
+ *
659
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription}
660
+ * @public
661
+ * @remarks
662
+ * HTML Attribute: aria-roledescription
663
+ */
664
+ ariaRoledescription: string | null;
665
+ }
666
+
272
667
  /**
273
668
  * The base class used for constructing a fluent-avatar custom element
274
669
  * @public
@@ -621,9 +1016,6 @@ export declare const BadgeColor: {
621
1016
  export declare type BadgeColor = ValuesOf<typeof BadgeColor>;
622
1017
 
623
1018
  /**
624
- * The Fluent Badge Element. Implements {@link @microsoft/fast-foundation#Badge },
625
- * {@link @microsoft/fast-foundation#badgeTemplate}
626
- *
627
1019
  *
628
1020
  * @public
629
1021
  * @remarks
@@ -680,37 +1072,245 @@ export declare const BadgeStyles: ElementStyles;
680
1072
 
681
1073
  export declare const BadgeTemplate: ElementViewTemplate<Badge>;
682
1074
 
683
- export declare const borderRadiusCircular = "--borderRadiusCircular";
684
-
685
- export declare const borderRadiusLarge = "--borderRadiusLarge";
686
-
687
- export declare const borderRadiusMedium = "--borderRadiusMedium";
688
-
689
- export declare const borderRadiusNone = "--borderRadiusNone";
690
-
691
- export declare const borderRadiusSmall = "--borderRadiusSmall";
692
-
693
- export declare const borderRadiusXLarge = "--borderRadiusXLarge";
694
-
695
1075
  /**
696
- * The base class used for constructing a fluent-button custom element
1076
+ * A base class for progress components.
697
1077
  * @public
698
1078
  */
699
- export declare class Button extends FASTButton {
1079
+ declare class BaseProgress extends FASTElement {
700
1080
  /**
701
- * The appearance the button should have.
702
- *
1081
+ * The value of the progress
703
1082
  * @public
704
1083
  * @remarks
705
- * HTML Attribute: appearance
1084
+ * HTML Attribute: value
706
1085
  */
707
- appearance?: ButtonAppearance | undefined;
1086
+ value: number | null;
1087
+ protected valueChanged(): void;
708
1088
  /**
709
- * The shape the button should have.
710
- *
1089
+ * The minimum value
711
1090
  * @public
712
1091
  * @remarks
713
- * HTML Attribute: shape
1092
+ * HTML Attribute: min
1093
+ */
1094
+ min: number;
1095
+ protected minChanged(): void;
1096
+ /**
1097
+ * The maximum value
1098
+ * @public
1099
+ * @remarks
1100
+ * HTML Attribute: max
1101
+ */
1102
+ max: number;
1103
+ protected maxChanged(): void;
1104
+ /**
1105
+ * Indicates progress in %
1106
+ * @internal
1107
+ */
1108
+ percentComplete: number;
1109
+ /**
1110
+ * @internal
1111
+ */
1112
+ connectedCallback(): void;
1113
+ private updatePercentComplete;
1114
+ }
1115
+
1116
+ /**
1117
+ *
1118
+ * @class TabList component
1119
+ * @public
1120
+ */
1121
+ export declare class BaseTabs extends FASTElement {
1122
+ /**
1123
+ * The orientation
1124
+ * @public
1125
+ * @remarks
1126
+ * HTML Attribute: orientation
1127
+ */
1128
+ orientation: TabsOrientation;
1129
+ /**
1130
+ * @internal
1131
+ */
1132
+ orientationChanged(): void;
1133
+ /**
1134
+ * The id of the active tab
1135
+ *
1136
+ * @public
1137
+ * @remarks
1138
+ * HTML Attribute: activeid
1139
+ */
1140
+ activeid: string;
1141
+ /**
1142
+ * @internal
1143
+ */
1144
+ activeidChanged(oldValue: string, newValue: string): void;
1145
+ /**
1146
+ * @internal
1147
+ */
1148
+ tabs: HTMLElement[];
1149
+ /**
1150
+ * @internal
1151
+ */
1152
+ tabsChanged(): void;
1153
+ /**
1154
+ * @internal
1155
+ */
1156
+ tabpanels: HTMLElement[];
1157
+ /**
1158
+ * @internal
1159
+ */
1160
+ tabpanelsChanged(): void;
1161
+ /**
1162
+ * A reference to the active tab
1163
+ * @public
1164
+ */
1165
+ activetab: HTMLElement;
1166
+ private prevActiveTabIndex;
1167
+ private activeTabIndex;
1168
+ private tabIds;
1169
+ private tabpanelIds;
1170
+ private change;
1171
+ private isDisabledElement;
1172
+ private isHiddenElement;
1173
+ private isFocusableElement;
1174
+ private getActiveIndex;
1175
+ /**
1176
+ * Function that is invoked whenever the selected tab or the tab collection changes.
1177
+ *
1178
+ * @public
1179
+ */
1180
+ protected setTabs(): void;
1181
+ private setTabPanels;
1182
+ private getTabIds;
1183
+ private getTabPanelIds;
1184
+ private setComponent;
1185
+ private handleTabClick;
1186
+ private isHorizontal;
1187
+ private handleTabKeyDown;
1188
+ /**
1189
+ * The adjust method for FASTTabs
1190
+ * @public
1191
+ * @remarks
1192
+ * This method allows the active index to be adjusted by numerical increments
1193
+ */
1194
+ adjust(adjustment: number): void;
1195
+ private adjustForward;
1196
+ private adjustBackward;
1197
+ private moveToTabByIndex;
1198
+ private focusTab;
1199
+ /**
1200
+ * @internal
1201
+ */
1202
+ connectedCallback(): void;
1203
+ }
1204
+
1205
+ export declare const borderRadiusCircular = "--borderRadiusCircular";
1206
+
1207
+ export declare const borderRadiusLarge = "--borderRadiusLarge";
1208
+
1209
+ export declare const borderRadiusMedium = "--borderRadiusMedium";
1210
+
1211
+ export declare const borderRadiusNone = "--borderRadiusNone";
1212
+
1213
+ export declare const borderRadiusSmall = "--borderRadiusSmall";
1214
+
1215
+ export declare const borderRadiusXLarge = "--borderRadiusXLarge";
1216
+
1217
+ /**
1218
+ * A Button Custom HTML Element.
1219
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element }.
1220
+ *
1221
+ * @slot start - Content which can be provided before the button content
1222
+ * @slot end - Content which can be provided after the button content
1223
+ * @slot - The default slot for button content
1224
+ * @csspart control - The button element
1225
+ * @csspart content - The element wrapping button content
1226
+ *
1227
+ * @public
1228
+ */
1229
+ export declare class Button extends FormAssociatedButton {
1230
+ /**
1231
+ * Determines if the element should receive document focus on page load.
1232
+ *
1233
+ * @public
1234
+ * @remarks
1235
+ * HTML Attribute: autofocus
1236
+ */
1237
+ autofocus: boolean;
1238
+ /**
1239
+ * The id of a form to associate the element to.
1240
+ *
1241
+ * @public
1242
+ * @remarks
1243
+ * HTML Attribute: form
1244
+ */
1245
+ formId: string;
1246
+ /**
1247
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element} for more details.
1248
+ *
1249
+ * @public
1250
+ * @remarks
1251
+ * HTML Attribute: formaction
1252
+ */
1253
+ formaction: string;
1254
+ protected formactionChanged(): void;
1255
+ /**
1256
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element} for more details.
1257
+ *
1258
+ * @public
1259
+ * @remarks
1260
+ * HTML Attribute: formenctype
1261
+ */
1262
+ formenctype: string;
1263
+ protected formenctypeChanged(): void;
1264
+ /**
1265
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element} for more details.
1266
+ *
1267
+ * @public
1268
+ * @remarks
1269
+ * HTML Attribute: formmethod
1270
+ */
1271
+ formmethod: string;
1272
+ protected formmethodChanged(): void;
1273
+ /**
1274
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element} for more details.
1275
+ *
1276
+ * @public
1277
+ * @remarks
1278
+ * HTML Attribute: formnovalidate
1279
+ */
1280
+ formnovalidate: boolean;
1281
+ protected formnovalidateChanged(): void;
1282
+ /**
1283
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element} for more details.
1284
+ *
1285
+ * @public
1286
+ * @remarks
1287
+ * HTML Attribute: formtarget
1288
+ */
1289
+ formtarget: '_self' | '_blank' | '_parent' | '_top';
1290
+ protected formtargetChanged(): void;
1291
+ /**
1292
+ * The button type.
1293
+ *
1294
+ * @public
1295
+ * @remarks
1296
+ * HTML Attribute: type
1297
+ */
1298
+ type: ButtonType;
1299
+ protected typeChanged(previous: ButtonType | undefined, next: ButtonType): void;
1300
+ /**
1301
+ * The appearance the button should have.
1302
+ *
1303
+ * @public
1304
+ * @remarks
1305
+ * HTML Attribute: appearance
1306
+ */
1307
+ appearance?: ButtonAppearance | undefined;
1308
+ /**
1309
+ * The shape the button should have.
1310
+ *
1311
+ * @public
1312
+ * @remarks
1313
+ * HTML Attribute: shape
714
1314
  */
715
1315
  shape?: ButtonShape | undefined;
716
1316
  /**
@@ -742,8 +1342,45 @@ export declare class Button extends FASTButton {
742
1342
  * Prevents disabledFocusable click events
743
1343
  */
744
1344
  private handleDisabledFocusableClick;
1345
+ /**
1346
+ *
1347
+ * Default slotted content
1348
+ *
1349
+ * @public
1350
+ * @remarks
1351
+ */
1352
+ defaultSlottedContent: HTMLElement[];
1353
+ /** {@inheritDoc (FormAssociated:interface).validate} */
1354
+ validate(): void;
1355
+ /**
1356
+ * @internal
1357
+ */
745
1358
  connectedCallback(): void;
746
1359
  disconnectedCallback(): void;
1360
+ /**
1361
+ * Submits the parent form
1362
+ */
1363
+ private handleSubmission;
1364
+ /**
1365
+ * Resets the parent form
1366
+ */
1367
+ private handleFormReset;
1368
+ control: HTMLButtonElement;
1369
+ }
1370
+
1371
+ /**
1372
+ * Mark internal because exporting class and interface of the same name
1373
+ * confuses API documenter.
1374
+ * TODO: https://github.com/microsoft/fast/issues/3317
1375
+ * @internal
1376
+ */
1377
+ export declare interface Button extends StartEnd, DelegatesARIAButton {
1378
+ }
1379
+
1380
+ declare class _Button extends FASTElement {
1381
+ }
1382
+
1383
+ declare interface _Button extends FormAssociated {
747
1384
  }
748
1385
 
749
1386
  /**
@@ -765,15 +1402,17 @@ export declare const ButtonAppearance: {
765
1402
  export declare type ButtonAppearance = ValuesOf<typeof ButtonAppearance>;
766
1403
 
767
1404
  /**
768
- * The Fluent Button Element. Implements {@link @microsoft/fast-foundation#Button },
769
- * {@link @microsoft/fast-foundation#buttonTemplate}
770
- *
771
1405
  * @public
772
1406
  * @remarks
773
1407
  * HTML Element: \<fluent-button\>
774
1408
  */
775
1409
  export declare const ButtonDefinition: FASTElementDefinition<typeof Button>;
776
1410
 
1411
+ /**
1412
+ * Button configuration options
1413
+ * @public
1414
+ */
1415
+ declare type ButtonOptions = StartEndOptions<Button>;
777
1416
  export { ButtonOptions }
778
1417
  export { ButtonOptions as CompoundButtonOptions }
779
1418
  export { ButtonOptions as MenuButtonOptions }
@@ -811,17 +1450,61 @@ export declare const ButtonSize: {
811
1450
  */
812
1451
  export declare type ButtonSize = ValuesOf<typeof ButtonSize>;
813
1452
 
1453
+ export declare const ButtonTemplate: ElementViewTemplate<Button>;
1454
+
814
1455
  /**
815
- * The template for the Button component.
1456
+ * Button type values.
1457
+ *
816
1458
  * @public
817
1459
  */
818
- export declare const ButtonTemplate: ElementViewTemplate<Button>;
1460
+ export declare const ButtonType: {
1461
+ readonly submit: "submit";
1462
+ readonly reset: "reset";
1463
+ readonly button: "button";
1464
+ };
1465
+
1466
+ /**
1467
+ * Type for button type values.
1468
+ *
1469
+ * @public
1470
+ */
1471
+ export declare type ButtonType = ValuesOf<typeof ButtonType>;
1472
+
1473
+ /**
1474
+ * Creates a checkable form associated component.
1475
+ * @beta
1476
+ */
1477
+ declare function CheckableFormAssociated<T extends ConstructableFormAssociated>(BaseCtor: T): T;
1478
+
1479
+ /**
1480
+ * Base class for providing Custom Element Form Association with checkable features.
1481
+ *
1482
+ * @beta
1483
+ */
1484
+ declare interface CheckableFormAssociated extends FormAssociated {
1485
+ currentChecked: boolean;
1486
+ dirtyChecked: boolean;
1487
+ checkedAttribute: boolean;
1488
+ defaultChecked: boolean;
1489
+ defaultCheckedChanged(oldValue: boolean | undefined, newValue: boolean): void;
1490
+ checked: boolean;
1491
+ checkedChanged(oldValue: boolean | undefined, newValue: boolean): void;
1492
+ }
819
1493
 
820
1494
  /**
821
- * The base class used for constucting a fluent checkbox custom element
1495
+ * A Checkbox Custom HTML Element.
1496
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#checkbox | ARIA checkbox }.
1497
+ *
1498
+ * @slot checked-indicator - The checked indicator
1499
+ * @slot indeterminate-indicator - The indeterminate indicator
1500
+ * @slot - The default slot for the label
1501
+ * @csspart control - The element representing the visual checkbox control
1502
+ * @csspart label - The label
1503
+ * @fires change - Emits a custom change event when the checked state changes
1504
+ *
822
1505
  * @public
823
1506
  */
824
- export declare class Checkbox extends FASTCheckbox {
1507
+ export declare class Checkbox extends FormAssociatedCheckbox {
825
1508
  /**
826
1509
  * Sets shape of the checkbox.
827
1510
  *
@@ -849,6 +1532,37 @@ export declare class Checkbox extends FASTCheckbox {
849
1532
  * HTML Attribute: label-position
850
1533
  */
851
1534
  labelPosition?: CheckboxLabelPosition;
1535
+ /**
1536
+ * The element's value to be included in form submission when checked.
1537
+ * Default to "on" to reach parity with input[type="checkbox"]
1538
+ *
1539
+ * @internal
1540
+ */
1541
+ initialValue: string;
1542
+ /**
1543
+ * @internal
1544
+ */
1545
+ defaultSlottedNodes: Node[];
1546
+ /**
1547
+ * The indeterminate state of the control
1548
+ */
1549
+ indeterminate: boolean;
1550
+ constructor();
1551
+ private toggleChecked;
1552
+ /**
1553
+ * @internal
1554
+ */
1555
+ keypressHandler: (e: KeyboardEvent) => void;
1556
+ /**
1557
+ * @internal
1558
+ */
1559
+ clickHandler: (e: MouseEvent) => void;
1560
+ }
1561
+
1562
+ declare class _Checkbox extends FASTElement {
1563
+ }
1564
+
1565
+ declare interface _Checkbox extends CheckableFormAssociated {
852
1566
  }
853
1567
 
854
1568
  /**
@@ -871,6 +1585,15 @@ export declare const CheckboxLabelPosition: {
871
1585
 
872
1586
  export declare type CheckboxLabelPosition = ValuesOf<typeof CheckboxLabelPosition>;
873
1587
 
1588
+ /**
1589
+ * Checkbox configuration options
1590
+ * @public
1591
+ */
1592
+ export declare type CheckboxOptions = {
1593
+ checkedIndicator?: StaticallyComposableHTML<Checkbox>;
1594
+ indeterminateIndicator?: StaticallyComposableHTML<Checkbox>;
1595
+ };
1596
+
874
1597
  /**
875
1598
  * Checkbox shape
876
1599
  * @public
@@ -1515,6 +2238,10 @@ export declare const CompoundButtonAppearance: {
1515
2238
  readonly outline: "outline";
1516
2239
  readonly subtle: "subtle";
1517
2240
  readonly secondary: "secondary";
2241
+ /**
2242
+ * A Compound Button can be secondary, primary, outline, subtle, transparent
2243
+ * @public
2244
+ */
1518
2245
  readonly transparent: "transparent";
1519
2246
  };
1520
2247
 
@@ -1525,9 +2252,6 @@ export declare const CompoundButtonAppearance: {
1525
2252
  export declare type CompoundButtonAppearance = ValuesOf<typeof CompoundButtonAppearance>;
1526
2253
 
1527
2254
  /**
1528
- * The Fluent Compound Button Element. Implements {@link @microsoft/fast-foundation#Button },
1529
- * {@link @microsoft/fast-foundation#buttonTemplate}
1530
- *
1531
2255
  * @public
1532
2256
  * @remarks
1533
2257
  * HTML Element: \<fluent-comopund-button\>
@@ -1556,10 +2280,6 @@ export declare type CompoundButtonShape = ValuesOf<typeof CompoundButtonShape>;
1556
2280
  */
1557
2281
  export declare const CompoundButtonSize: {
1558
2282
  readonly small: "small";
1559
- /**
1560
- * A Compound Button can be on of several preset sizes.
1561
- * @public
1562
- */
1563
2283
  readonly medium: "medium";
1564
2284
  readonly large: "large";
1565
2285
  };
@@ -1578,6 +2298,13 @@ export declare const CompoundButtonStyles: ElementStyles;
1578
2298
  */
1579
2299
  export declare const CompoundButtonTemplate: ElementViewTemplate<CompoundButton>;
1580
2300
 
2301
+ /**
2302
+ * Combined type to describe a Constructable Form-Associated type.
2303
+ *
2304
+ * @beta
2305
+ */
2306
+ declare type ConstructableFormAssociated = Constructable<HTMLElement & FASTElement>;
2307
+
1581
2308
  /**
1582
2309
  * The base class used for constructing a fluent-badge custom element
1583
2310
  * @public
@@ -1704,10 +2431,6 @@ export declare const CounterBadgeColor: {
1704
2431
  export declare type CounterBadgeColor = ValuesOf<typeof CounterBadgeColor>;
1705
2432
 
1706
2433
  /**
1707
- * The Fluent CounterBadge Element. Implements {@link @microsoft/fast-foundation#Badge },
1708
- * {@link @microsoft/fast-foundation#badgeTemplate}
1709
- *
1710
- *
1711
2434
  * @public
1712
2435
  * @remarks
1713
2436
  * HTML Element: \<fluent-counter-badge\>
@@ -1784,33 +2507,99 @@ export declare const curveEasyEaseMax = "--curveEasyEaseMax";
1784
2507
  export declare const curveLinear = "--curveLinear";
1785
2508
 
1786
2509
  /**
1787
- * Dialog component that extends the FASTElement class.
2510
+ * Includes ARIA states and properties relating to the ARIA button role
1788
2511
  *
1789
2512
  * @public
1790
- * @extends FASTElement
1791
2513
  */
1792
- export declare class Dialog extends FASTElement {
1793
- /**
1794
- * @private
1795
- * Indicates whether focus is being trapped within the dialog
1796
- */
1797
- private isTrappingFocus;
2514
+ export declare class DelegatesARIAButton {
1798
2515
  /**
2516
+ * See {@link https://www.w3.org/WAI/PF/aria/roles#button} for more information
1799
2517
  * @public
1800
- * Lifecycle method called when the element is connected to the DOM
2518
+ * @remarks
2519
+ * HTML Attribute: aria-expanded
1801
2520
  */
1802
- connectedCallback(): void;
2521
+ ariaExpanded: 'true' | 'false' | string | null;
1803
2522
  /**
2523
+ * See {@link https://www.w3.org/WAI/PF/aria/roles#button} for more information
1804
2524
  * @public
1805
- * Lifecycle method called when the element is disconnected from the DOM
2525
+ * @remarks
2526
+ * HTML Attribute: aria-pressed
1806
2527
  */
1807
- disconnectedCallback(): void;
2528
+ ariaPressed: 'true' | 'false' | 'mixed' | string | null;
2529
+ }
2530
+
2531
+ /**
2532
+ * Mark internal because exporting class and interface of the same name
2533
+ * confuses API documenter.
2534
+ * TODO: https://github.com/microsoft/fast/issues/3317
2535
+ * @internal
2536
+ */
2537
+ export declare interface DelegatesARIAButton extends ARIAGlobalStatesAndProperties {
2538
+ }
2539
+
2540
+ /**
2541
+ * Includes ARIA states and properties relating to the ARIA link role
2542
+ *
2543
+ * @public
2544
+ */
2545
+ export declare class DelegatesARIALink {
1808
2546
  /**
2547
+ * See {@link https://www.w3.org/WAI/PF/aria/roles#link} for more information
1809
2548
  * @public
1810
- * The dialog element
2549
+ * @remarks
2550
+ * HTML Attribute: aria-expanded
1811
2551
  */
1812
- dialog: HTMLDialogElement;
1813
- /**
2552
+ ariaExpanded: 'true' | 'false' | string | null;
2553
+ }
2554
+
2555
+ /**
2556
+ * Mark internal because exporting class and interface of the same name
2557
+ * confuses API documenter.
2558
+ * TODO: https://github.com/microsoft/fast/issues/3317
2559
+ * @internal
2560
+ */
2561
+ export declare interface DelegatesARIALink extends ARIAGlobalStatesAndProperties {
2562
+ }
2563
+
2564
+ /**
2565
+ * Includes ARIA states and properties relating to the ARIA textbox role
2566
+ *
2567
+ * @public
2568
+ */
2569
+ export declare class DelegatesARIATextbox {
2570
+ }
2571
+
2572
+ export declare interface DelegatesARIATextbox extends ARIAGlobalStatesAndProperties {
2573
+ }
2574
+
2575
+ /**
2576
+ * Dialog component that extends the FASTElement class.
2577
+ *
2578
+ * @public
2579
+ * @extends FASTElement
2580
+ */
2581
+ export declare class Dialog extends FASTElement {
2582
+ /**
2583
+ * @private
2584
+ * Indicates whether focus is being trapped within the dialog
2585
+ */
2586
+ private isTrappingFocus;
2587
+ /**
2588
+ * @public
2589
+ * Lifecycle method called when the element is connected to the DOM
2590
+ */
2591
+ connectedCallback(): void;
2592
+ /**
2593
+ * @public
2594
+ * Lifecycle method called when the element is disconnected from the DOM
2595
+ */
2596
+ disconnectedCallback(): void;
2597
+ /**
2598
+ * @public
2599
+ * The dialog element
2600
+ */
2601
+ dialog: HTMLDialogElement;
2602
+ /**
1814
2603
  * @public
1815
2604
  * The title action elements
1816
2605
  */
@@ -2009,9 +2798,25 @@ export declare const DialogTemplate: ElementViewTemplate<Dialog>;
2009
2798
  * @class Divider component
2010
2799
  *
2011
2800
  * @remarks
2012
- * This class extends the FASTDivider. A divider groups sections of content to create visual rhythm and hierarchy. Use dividers along with spacing and headers to organize content in your layout.
2801
+ * A divider groups sections of content to create visual rhythm and hierarchy. Use dividers along with spacing and headers to organize content in your layout.
2013
2802
  */
2014
- export declare class Divider extends FASTDivider {
2803
+ export declare class Divider extends FASTElement {
2804
+ /**
2805
+ * The role of the element.
2806
+ *
2807
+ * @public
2808
+ * @remarks
2809
+ * HTML Attribute: role
2810
+ */
2811
+ role: DividerRole;
2812
+ /**
2813
+ * The orientation of the divider.
2814
+ *
2815
+ * @public
2816
+ * @remarks
2817
+ * HTML Attribute: orientation
2818
+ */
2819
+ orientation: DividerOrientation;
2015
2820
  /**
2016
2821
  * @property alignContent
2017
2822
  * @default center
@@ -2077,9 +2882,44 @@ export declare type DividerAppearance = ValuesOf<typeof DividerAppearance>;
2077
2882
  */
2078
2883
  export declare const DividerDefinition: FASTElementDefinition<typeof Divider>;
2079
2884
 
2080
- export { DividerOrientation }
2885
+ /**
2886
+ * Divider orientation
2887
+ * @public
2888
+ */
2889
+ export declare const DividerOrientation: {
2890
+ readonly horizontal: "horizontal"; /**
2891
+ * Divider roles
2892
+ * @public
2893
+ */
2894
+ readonly vertical: "vertical";
2895
+ };
2896
+
2897
+ /**
2898
+ * The types for Divider orientation
2899
+ * @public
2900
+ */
2901
+ export declare type DividerOrientation = ValuesOf<typeof DividerOrientation>;
2902
+
2903
+ /**
2904
+ * Divider roles
2905
+ * @public
2906
+ */
2907
+ export declare const DividerRole: {
2908
+ /**
2909
+ * The divider semantically separates content
2910
+ */
2911
+ readonly separator: "separator";
2912
+ /**
2913
+ * The divider has no semantic value and is for visual presentation only.
2914
+ */
2915
+ readonly presentation: "presentation";
2916
+ };
2081
2917
 
2082
- export { DividerRole }
2918
+ /**
2919
+ * The types for Divider roles
2920
+ * @public
2921
+ */
2922
+ export declare type DividerRole = ValuesOf<typeof DividerRole>;
2083
2923
 
2084
2924
  /** Divider styles
2085
2925
  * @public
@@ -2106,6 +2946,71 @@ export declare const durationUltraFast = "--durationUltraFast";
2106
2946
 
2107
2947
  export declare const durationUltraSlow = "--durationUltraSlow";
2108
2948
 
2949
+ /**
2950
+ * Source:
2951
+ * https://html.spec.whatwg.org/multipage/custom-elements.html#elementinternals
2952
+ */
2953
+ declare interface ElementInternals_2 {
2954
+ /**
2955
+ * Returns the form owner of internals target element.
2956
+ */
2957
+ readonly form: HTMLFormElement | null;
2958
+ /**
2959
+ * Returns a NodeList of all the label elements that internals target element is associated with.
2960
+ */
2961
+ readonly labels: NodeList;
2962
+ /**
2963
+ * Returns the error message that would be shown to the user if internals target element was to be checked for validity.
2964
+ */
2965
+ readonly validationMessage: string;
2966
+ /**
2967
+ * Returns the ValidityState object for internals target element.
2968
+ */
2969
+ readonly validity: ValidityState;
2970
+ /**
2971
+ * Returns true if internals target element will be validated when the form is submitted; false otherwise.
2972
+ */
2973
+ readonly willValidate: boolean;
2974
+ /**
2975
+ * Returns true if internals target element has no validity problems; false otherwise. Fires an invalid event at the element in the latter case.
2976
+ */
2977
+ checkValidity(): boolean;
2978
+ /**
2979
+ * Returns true if internals target element has no validity problems; otherwise,
2980
+ * returns false, fires an invalid event at the element, and (if the event isn't canceled) reports the problem to the user.
2981
+ */
2982
+ reportValidity(): boolean;
2983
+ /**
2984
+ * Sets both the state and submission value of internals target element to value.
2985
+ *
2986
+ * While "null" isn't enumerated as a argument type (here)[https://html.spec.whatwg.org/multipage/custom-elements.html#the-elementinternals-interface],
2987
+ * In practice it appears to remove the value from the form data on submission. Adding it as a valid type here
2988
+ * becuase that capability is required for checkbox and radio types
2989
+ */
2990
+ setFormValue(value: File | string | FormData | null, state?: File | string | FormData | null): void;
2991
+ /**
2992
+ * Marks internals target element as suffering from the constraints indicated by the flags argument,
2993
+ * and sets the element's validation message to message.
2994
+ * If anchor is specified, the user agent might use
2995
+ * it to indicate problems with the constraints of internals target
2996
+ * element when the form owner is validated interactively or reportValidity() is called.
2997
+ */
2998
+ setValidity(flags: ValidityStateFlags, message?: string, anchor?: HTMLElement): void;
2999
+ }
3000
+
3001
+ declare let ElementInternals_2: {
3002
+ prototype: ElementInternals_2;
3003
+ new (): ElementInternals_2;
3004
+ };
3005
+
3006
+ /**
3007
+ * End configuration options
3008
+ * @public
3009
+ */
3010
+ declare type EndOptions<TSource = any, TParent = any> = {
3011
+ end?: StaticallyComposableHTML<TSource, TParent>;
3012
+ };
3013
+
2109
3014
  export declare const FluentDesignSystem: Readonly<{
2110
3015
  prefix: "fluent";
2111
3016
  shadowRootMode: "open";
@@ -2146,6 +3051,102 @@ export declare const fontWeightRegular = "--fontWeightRegular";
2146
3051
 
2147
3052
  export declare const fontWeightSemibold = "--fontWeightSemibold";
2148
3053
 
3054
+ /**
3055
+ * Base function for providing Custom Element Form Association.
3056
+ *
3057
+ * @beta
3058
+ */
3059
+ declare function FormAssociated<T extends ConstructableFormAssociated>(BaseCtor: T): T;
3060
+
3061
+ /**
3062
+ * Base class for providing Custom Element Form Association.
3063
+ *
3064
+ * @beta
3065
+ */
3066
+ declare interface FormAssociated extends Omit<ElementInternals_2, 'labels'> {
3067
+ dirtyValue: boolean;
3068
+ disabled: boolean;
3069
+ readonly elementInternals: ElementInternals_2 | null;
3070
+ readonly formAssociated: boolean;
3071
+ initialValue: string;
3072
+ readonly labels: ReadonlyArray<Node[]>;
3073
+ name: string;
3074
+ required: boolean;
3075
+ value: string;
3076
+ currentValue: string;
3077
+ attachProxy(): void;
3078
+ detachProxy(): void;
3079
+ disabledChanged?(previous: boolean, next: boolean): void;
3080
+ formDisabledCallback?(disabled: boolean): void;
3081
+ formResetCallback(): void;
3082
+ initialValueChanged?(previous: string, next: string): void;
3083
+ nameChanged?(previous: string, next: string): void;
3084
+ requiredChanged(prev: boolean, next: boolean): void;
3085
+ stopPropagation(e: Event): void;
3086
+ /**
3087
+ * Sets the validity of the custom element. By default this uses the proxy element to determine
3088
+ * validity, but this can be extended or replaced in implementation.
3089
+ *
3090
+ * @param anchor - The anchor element to provide to ElementInternals.setValidity for surfacing the browser's constraint validation UI
3091
+ */
3092
+ validate(anchor?: HTMLElement): void;
3093
+ valueChanged(previous: string, next: string): void;
3094
+ }
3095
+
3096
+ /**
3097
+ * @beta
3098
+ */
3099
+ declare class FormAssociatedButton extends FormAssociatedButton_base {
3100
+ proxy: HTMLInputElement;
3101
+ }
3102
+
3103
+ declare const FormAssociatedButton_base: typeof _Button;
3104
+
3105
+ /**
3106
+ * @beta
3107
+ */
3108
+ declare class FormAssociatedCheckbox extends FormAssociatedCheckbox_base {
3109
+ proxy: HTMLInputElement;
3110
+ }
3111
+
3112
+ declare const FormAssociatedCheckbox_base: typeof _Checkbox;
3113
+
3114
+ /**
3115
+ * @beta
3116
+ */
3117
+ declare class FormAssociatedRadio extends FormAssociatedRadio_base {
3118
+ proxy: HTMLInputElement;
3119
+ }
3120
+
3121
+ declare const FormAssociatedRadio_base: typeof _Radio;
3122
+
3123
+ /**
3124
+ * @beta
3125
+ */
3126
+ declare class FormAssociatedSlider extends FormAssociatedSlider_base {
3127
+ proxy: HTMLInputElement;
3128
+ }
3129
+
3130
+ declare const FormAssociatedSlider_base: typeof _Slider;
3131
+
3132
+ /**
3133
+ * @beta
3134
+ */
3135
+ declare class FormAssociatedSwitch extends FormAssociatedSwitch_base {
3136
+ proxy: HTMLInputElement;
3137
+ }
3138
+
3139
+ declare const FormAssociatedSwitch_base: typeof _Switch;
3140
+
3141
+ /**
3142
+ * @beta
3143
+ */
3144
+ declare class FormAssociatedTextField extends FormAssociatedTextField_base {
3145
+ proxy: HTMLInputElement;
3146
+ }
3147
+
3148
+ declare const FormAssociatedTextField_base: typeof _TextField;
3149
+
2149
3150
  /**
2150
3151
  * The base class used for constucting a fluent image custom element
2151
3152
  * @public
@@ -2571,9 +3572,6 @@ export declare const MenuButtonAppearance: {
2571
3572
  export declare type MenuButtonAppearance = ValuesOf<typeof MenuButtonAppearance>;
2572
3573
 
2573
3574
  /**
2574
- * The Fluent Menu Button Element. Implements {@link @microsoft/fast-foundation#Button },
2575
- * {@link @microsoft/fast-foundation#buttonTemplate}
2576
- *
2577
3575
  * @public
2578
3576
  * @remarks
2579
3577
  * HTML Element: \<fluent-button\>
@@ -2628,50 +3626,287 @@ export declare const MenuButtonTemplate: ElementViewTemplate<MenuButton>;
2628
3626
  export declare const MenuDefinition: FASTElementDefinition<typeof Menu>;
2629
3627
 
2630
3628
  /**
2631
- * The base class used for constructing a fluent-menu-item custom element
3629
+ * A Switch Custom HTML Element.
3630
+ * Implements {@link https://www.w3.org/TR/wai-aria-1.1/#menuitem | ARIA menuitem }, {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemcheckbox | ARIA menuitemcheckbox}, or {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio | ARIA menuitemradio }.
3631
+ *
3632
+ * @slot checked-indicator - The checked indicator
3633
+ * @slot radio-indicator - The radio indicator
3634
+ * @slot start - Content which can be provided before the menu item content
3635
+ * @slot end - Content which can be provided after the menu item content
3636
+ * @slot - The default slot for menu item content
3637
+ * @slot expand-collapse-indicator - The expand/collapse indicator
3638
+ * @slot submenu - Used to nest menu's within menu items
3639
+ * @csspart input-container - The element representing the visual checked or radio indicator
3640
+ * @csspart checkbox - The element wrapping the `menuitemcheckbox` indicator
3641
+ * @csspart radio - The element wrapping the `menuitemradio` indicator
3642
+ * @csspart content - The element wrapping the menu item content
3643
+ * @csspart expand-collapse-glyph-container - The element wrapping the expand collapse element
3644
+ * @csspart expand-collapse - The expand/collapse element
3645
+ * @csspart submenu-region - The container for the submenu, used for positioning
3646
+ * @fires expanded-change - Fires a custom 'expanded-change' event when the expanded state changes
3647
+ * @fires change - Fires a custom 'change' event when a non-submenu item with a role of `menuitemcheckbox`, `menuitemradio`, or `menuitem` is invoked
3648
+ *
2632
3649
  * @public
2633
3650
  */
2634
- export declare class MenuItem extends FASTMenuItem {
3651
+ export declare class MenuItem extends FASTElement {
3652
+ /**
3653
+ * The disabled state of the element.
3654
+ *
3655
+ * @public
3656
+ * @remarks
3657
+ * HTML Attribute: disabled
3658
+ */
3659
+ disabled: boolean;
3660
+ /**
3661
+ * The expanded state of the element.
3662
+ *
3663
+ * @public
3664
+ * @remarks
3665
+ * HTML Attribute: expanded
3666
+ */
3667
+ expanded: boolean;
3668
+ protected expandedChanged(prev: boolean | undefined, next: boolean): void;
3669
+ /**
3670
+ * The role of the element.
3671
+ *
3672
+ * @public
3673
+ * @remarks
3674
+ * HTML Attribute: role
3675
+ */
3676
+ role: MenuItemRole;
3677
+ /**
3678
+ * Cleanup function for the submenu positioner.
3679
+ *
3680
+ * @public
3681
+ */
3682
+ cleanup: () => void;
3683
+ /**
3684
+ * The checked value of the element.
3685
+ *
3686
+ * @public
3687
+ * @remarks
3688
+ * HTML Attribute: checked
3689
+ */
3690
+ checked: boolean;
3691
+ protected checkedChanged(oldValue: boolean, newValue: boolean): void;
3692
+ /**
3693
+ * The hidden attribute.
3694
+ *
3695
+ * @public
3696
+ * @remarks
3697
+ * HTML Attribute: hidden
3698
+ */
3699
+ hidden: boolean;
3700
+ /**
3701
+ * The submenu slotted content.
3702
+ *
3703
+ * @internal
3704
+ */
3705
+ slottedSubmenu: HTMLElement[];
3706
+ /**
3707
+ * @internal
3708
+ */
3709
+ get hasSubmenu(): boolean;
3710
+ /**
3711
+ * Sets the submenu and updates its position.
3712
+ *
3713
+ * @internal
3714
+ */
3715
+ protected slottedSubmenuChanged(prev: HTMLElement[] | undefined, next: HTMLElement[]): void;
3716
+ /**
3717
+ * The container for the submenu.
3718
+ *
3719
+ * @internal
3720
+ */
3721
+ submenuContainer: HTMLDivElement;
3722
+ /**
3723
+ * @internal
3724
+ */
3725
+ submenu: HTMLElement | undefined;
3726
+ private focusSubmenuOnLoad;
3727
+ /**
3728
+ * @internal
3729
+ */
3730
+ disconnectedCallback(): void;
3731
+ /**
3732
+ * @internal
3733
+ */
3734
+ handleMenuItemKeyDown: (e: KeyboardEvent) => boolean;
3735
+ /**
3736
+ * @internal
3737
+ */
3738
+ handleMenuItemClick: (e: MouseEvent) => boolean;
3739
+ /**
3740
+ * @internal
3741
+ */
3742
+ submenuLoaded: () => void;
3743
+ /**
3744
+ * @internal
3745
+ */
3746
+ handleMouseOver: (e: MouseEvent) => boolean;
3747
+ /**
3748
+ * @internal
3749
+ */
3750
+ handleMouseOut: (e: MouseEvent) => boolean;
3751
+ /**
3752
+ * @internal
3753
+ */
3754
+ private closeSubMenu;
3755
+ /**
3756
+ * @internal
3757
+ */
3758
+ private expandAndFocus;
3759
+ /**
3760
+ * @internal
3761
+ */
3762
+ private invoke;
3763
+ /**
3764
+ * Calculate and apply submenu positioning.
3765
+ *
3766
+ * @public
3767
+ */
3768
+ updateSubmenu(): void;
3769
+ }
3770
+
3771
+ /**
3772
+ * Mark internal because exporting class and interface of the same name
3773
+ * confuses API documenter.
3774
+ * TODO: https://github.com/microsoft/fast/issues/3317
3775
+ * @internal
3776
+ */
3777
+ export declare interface MenuItem extends StartEnd {
2635
3778
  }
2636
3779
 
2637
3780
  export declare type MenuItemColumnCount = 0 | 1 | 2;
2638
3781
 
2639
3782
  /**
2640
- * The Fluent Menu Item Element. Implements {@link @microsoft/fast-foundation#MenuItem },
2641
- * {@link @microsoft/fast-foundation#menuItemTemplate}
2642
- *
2643
- *
2644
3783
  * @public
2645
3784
  * @remarks
2646
3785
  * HTML Element: <fluent-menu-item>
2647
3786
  */
2648
3787
  export declare const MenuItemDefinition: FASTElementDefinition<typeof MenuItem>;
2649
3788
 
2650
- export { MenuItemRole }
2651
-
2652
- /** MenuItem styles
2653
- * @public
2654
- */
2655
- export declare const MenuItemStyles: ElementStyles;
2656
-
2657
- export declare const MenuItemTemplate: ElementViewTemplate<MenuItem>;
2658
-
2659
3789
  /**
2660
- * The base class used for constructing a fluent-menu-list custom element
3790
+ * Menu Item configuration options
2661
3791
  * @public
2662
3792
  */
2663
- export declare class MenuList extends FASTMenu {
2664
- protected setItems(): void;
2665
- private static elementIndent;
2666
- }
3793
+ export declare type MenuItemOptions = StartEndOptions<MenuItem> & {
3794
+ checkboxIndicator?: StaticallyComposableHTML<MenuItem>;
3795
+ expandCollapseGlyph?: StaticallyComposableHTML<MenuItem>;
3796
+ radioIndicator?: StaticallyComposableHTML<MenuItem>;
3797
+ };
2667
3798
 
2668
3799
  /**
2669
- * The Fluent MenuList Element. Implements {@link @microsoft/fast-foundation#Menu },
2670
- * {@link @microsoft/fast-foundation#menuTemplate}
2671
- *
2672
- *
3800
+ * Menu items roles.
2673
3801
  * @public
2674
- * @remarks
3802
+ */
3803
+ export declare const MenuItemRole: {
3804
+ /**
3805
+ * The menu item has a "menuitem" role
3806
+ */
3807
+ readonly menuitem: "menuitem";
3808
+ /**
3809
+ * The menu item has a "menuitemcheckbox" role
3810
+ */
3811
+ readonly menuitemcheckbox: "menuitemcheckbox";
3812
+ /**
3813
+ * The menu item has a "menuitemradio" role
3814
+ */
3815
+ readonly menuitemradio: "menuitemradio";
3816
+ };
3817
+
3818
+ /**
3819
+ * The types for menu item roles
3820
+ * @public
3821
+ */
3822
+ export declare type MenuItemRole = ValuesOf<typeof MenuItemRole>;
3823
+
3824
+ /** MenuItem styles
3825
+ * @public
3826
+ */
3827
+ export declare const MenuItemStyles: ElementStyles;
3828
+
3829
+ export declare const MenuItemTemplate: ElementViewTemplate<MenuItem>;
3830
+
3831
+ /**
3832
+ * A Menu Custom HTML Element.
3833
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#menu | ARIA menu }.
3834
+ *
3835
+ * @slot - The default slot for the menu items
3836
+ *
3837
+ * @public
3838
+ */
3839
+ export declare class MenuList extends FASTElement {
3840
+ /**
3841
+ * @internal
3842
+ */
3843
+ items: HTMLElement[];
3844
+ protected itemsChanged(oldValue: HTMLElement[], newValue: HTMLElement[]): void;
3845
+ protected menuItems: Element[] | undefined;
3846
+ private expandedItem;
3847
+ /**
3848
+ * The index of the focusable element in the items array
3849
+ * defaults to -1
3850
+ */
3851
+ private focusIndex;
3852
+ private static focusableElementRoles;
3853
+ /**
3854
+ * @internal
3855
+ */
3856
+ connectedCallback(): void;
3857
+ /**
3858
+ * @internal
3859
+ */
3860
+ disconnectedCallback(): void;
3861
+ /**
3862
+ * @internal
3863
+ */
3864
+ readonly isNestedMenu: () => boolean;
3865
+ /**
3866
+ * Focuses the first item in the menu.
3867
+ *
3868
+ * @public
3869
+ */
3870
+ focus(): void;
3871
+ /**
3872
+ * Collapses any expanded menu items.
3873
+ *
3874
+ * @public
3875
+ */
3876
+ collapseExpandedItem(): void;
3877
+ /**
3878
+ * @internal
3879
+ */
3880
+ handleMenuKeyDown(e: KeyboardEvent): void | boolean;
3881
+ /**
3882
+ * if focus is moving out of the menu, reset to a stable initial state
3883
+ * @internal
3884
+ */
3885
+ handleFocusOut: (e: FocusEvent) => void;
3886
+ private handleItemFocus;
3887
+ private handleExpandedChanged;
3888
+ private removeItemListeners;
3889
+ private static elementIndent;
3890
+ protected setItems(): void;
3891
+ handleChange(source: any, propertyName: string): void;
3892
+ /**
3893
+ * handle change from child element
3894
+ */
3895
+ private changeHandler;
3896
+ /**
3897
+ * check if the item is a menu item
3898
+ */
3899
+ protected isMenuItemElement: (el: Element) => el is HTMLElement;
3900
+ /**
3901
+ * check if the item is focusable
3902
+ */
3903
+ private isFocusableElement;
3904
+ private setFocus;
3905
+ }
3906
+
3907
+ /**
3908
+ * @public
3909
+ * @remarks
2675
3910
  * HTML Element: <fluent-menu-list>
2676
3911
  */
2677
3912
  export declare const MenuListDefinition: FASTElementDefinition<typeof MenuList>;
@@ -2691,10 +3926,17 @@ export declare const MenuStyles: ElementStyles;
2691
3926
  export declare const MenuTemplate: ElementViewTemplate<Menu>;
2692
3927
 
2693
3928
  /**
2694
- * The base class used for constructing a fluent-progress-bar custom element
3929
+ * An Progress HTML Element.
3930
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#progressbar | ARIA progressbar }.
3931
+ *
3932
+ * @slot indeterminate - The slot for a custom indeterminate indicator
3933
+ * @csspart progress - Represents the progress element
3934
+ * @csspart determinate - The determinate indicator
3935
+ * @csspart indeterminate - The indeterminate indicator
3936
+ *
2695
3937
  * @public
2696
3938
  */
2697
- declare class ProgressBar_2 extends FASTProgress {
3939
+ declare class ProgressBar_2 extends BaseProgress {
2698
3940
  /**
2699
3941
  * The thickness of the progress bar
2700
3942
  *
@@ -2784,12 +4026,86 @@ export declare const ProgressBarValidationState: {
2784
4026
  export declare type ProgressBarValidationState = ValuesOf<typeof ProgressBarValidationState>;
2785
4027
 
2786
4028
  /**
2787
- * The base class used for constructing a fluent-radio custom element
4029
+ * Progress configuration options
2788
4030
  * @public
2789
4031
  */
2790
- export declare class Radio extends FASTRadio {
4032
+ export declare type ProgressOptions = {
4033
+ indeterminateIndicator1?: StaticallyComposableHTML<ProgressBar_2>;
4034
+ indeterminateIndicator2?: StaticallyComposableHTML<ProgressBar_2>;
4035
+ };
4036
+
4037
+ /**
4038
+ * An circular Progress HTML Element.
4039
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#progressbar | ARIA progressbar }.
4040
+ *
4041
+ * @slot indeterminate - The slot for a custom indeterminate indicator
4042
+ * @slot determinate - The slot for a custom determinate indicator
4043
+ * @csspart progress - Represents the progress element
4044
+ * @csspart determinate - The determinate indicator
4045
+ * @csspart background - The background
4046
+ *
4047
+ * @public
4048
+ */
4049
+ declare class ProgressRing extends BaseProgress {
4050
+ }
4051
+
4052
+ /**
4053
+ * A Radio Custom HTML Element.
4054
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#radio | ARIA radio }.
4055
+ *
4056
+ * @slot checked-indicator - The checked indicator
4057
+ * @slot - The default slot for the label
4058
+ * @csspart control - The element representing the visual radio control
4059
+ * @csspart label - The label
4060
+ * @fires change - Emits a custom change event when the checked state changes
4061
+ *
4062
+ * @public
4063
+ */
4064
+ export declare class Radio extends FormAssociatedRadio implements RadioControl {
4065
+ /**
4066
+ * The name of the radio. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname | name attribute} for more info.
4067
+ */
4068
+ name: string;
4069
+ /**
4070
+ * The element's value to be included in form submission when checked.
4071
+ * Default to "on" to reach parity with input[type="radio"]
4072
+ *
4073
+ * @internal
4074
+ */
4075
+ initialValue: string;
4076
+ /**
4077
+ * @internal
4078
+ */
4079
+ defaultSlottedNodes: Node[];
4080
+ private get radioGroup();
4081
+ /**
4082
+ * @internal
4083
+ */
4084
+ defaultCheckedChanged(): void;
4085
+ constructor();
4086
+ /**
4087
+ * @internal
4088
+ */
4089
+ connectedCallback(): void;
4090
+ private isInsideRadioGroup;
4091
+ /**
4092
+ * Handles key presses on the radio.
4093
+ * @beta
4094
+ */
4095
+ keypressHandler(e: KeyboardEvent): boolean | void;
4096
+ }
4097
+
4098
+ declare class _Radio extends FASTElement {
2791
4099
  }
2792
4100
 
4101
+ declare interface _Radio extends CheckableFormAssociated {
4102
+ }
4103
+
4104
+ /**
4105
+ * @public
4106
+ */
4107
+ export declare type RadioControl = Pick<HTMLInputElement, 'checked' | 'disabled' | 'focus' | 'setAttribute' | 'getAttribute'>;
4108
+
2793
4109
  /**
2794
4110
  * The Fluent Radio Element.
2795
4111
  *
@@ -2804,7 +4120,7 @@ export declare const RadioDefinition: FASTElementDefinition<typeof Radio>;
2804
4120
  * The base class used for constructing a fluent-radio-group custom element
2805
4121
  * @public
2806
4122
  */
2807
- export declare class RadioGroup extends FASTRadioGroup {
4123
+ export declare class RadioGroup extends FASTElement {
2808
4124
  /**
2809
4125
  * sets radio layout styles
2810
4126
  *
@@ -2813,100 +4129,458 @@ export declare class RadioGroup extends FASTRadioGroup {
2813
4129
  * HTML Attribute: stacked
2814
4130
  */
2815
4131
  stacked: boolean;
4132
+ /**
4133
+ * When true, the child radios will be immutable by user interaction. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly | readonly HTML attribute} for more information.
4134
+ * @public
4135
+ * @remarks
4136
+ * HTML Attribute: readonly
4137
+ */
4138
+ readOnly: boolean;
4139
+ /**
4140
+ * Disables the radio group and child radios.
4141
+ *
4142
+ * @public
4143
+ * @remarks
4144
+ * HTML Attribute: disabled
4145
+ */
4146
+ disabled: boolean;
4147
+ /**
4148
+ * The name of the radio group. Setting this value will set the name value
4149
+ * for all child radio elements.
4150
+ *
4151
+ * @public
4152
+ * @remarks
4153
+ * HTML Attribute: name
4154
+ */
4155
+ name: string;
4156
+ protected nameChanged(): void;
4157
+ /**
4158
+ * The value of the checked radio
4159
+ *
4160
+ * @public
4161
+ * @remarks
4162
+ * HTML Attribute: value
4163
+ */
4164
+ value: string;
4165
+ protected valueChanged(): void;
4166
+ /**
4167
+ * The orientation of the group
4168
+ *
4169
+ * @public
4170
+ * @remarks
4171
+ * HTML Attribute: orientation
4172
+ */
4173
+ orientation: RadioGroupOrientation;
4174
+ childItems: HTMLElement[];
4175
+ /**
4176
+ * @internal
4177
+ */
4178
+ slottedRadioButtons: HTMLElement[];
4179
+ protected slottedRadioButtonsChanged(oldValue: unknown, newValue: HTMLElement[]): void;
4180
+ private selectedRadio;
4181
+ private focusedRadio;
4182
+ private direction;
4183
+ private get parentToolbar();
4184
+ private get isInsideToolbar();
4185
+ private get isInsideFoundationToolbar();
4186
+ /**
4187
+ * @internal
4188
+ */
4189
+ connectedCallback(): void;
4190
+ disconnectedCallback(): void;
4191
+ private setupRadioButtons;
4192
+ private radioChangeHandler;
4193
+ private moveToRadioByIndex;
4194
+ private moveRightOffGroup;
4195
+ private moveLeftOffGroup;
4196
+ /**
4197
+ * @internal
4198
+ */
4199
+ focusOutHandler: (e: FocusEvent) => boolean | void;
4200
+ /**
4201
+ * @internal
4202
+ */
4203
+ handleDisabledClick: (e: MouseEvent) => void | boolean;
4204
+ /**
4205
+ * @internal
4206
+ */
4207
+ clickHandler: (e: MouseEvent) => void | boolean;
4208
+ private shouldMoveOffGroupToTheRight;
4209
+ private shouldMoveOffGroupToTheLeft;
4210
+ private checkFocusedRadio;
4211
+ private moveRight;
4212
+ private moveLeft;
4213
+ /**
4214
+ * keyboard handling per https://w3c.github.io/aria-practices/#for-radio-groups-not-contained-in-a-toolbar
4215
+ * navigation is different when there is an ancestor with role='toolbar'
4216
+ *
4217
+ * @internal
4218
+ */
4219
+ keydownHandler: (e: KeyboardEvent) => boolean | void;
4220
+ }
4221
+
4222
+ /**
4223
+ * The Fluent RadioGroup Element.
4224
+ *
4225
+ *
4226
+ * @public
4227
+ * @remarks
4228
+ * HTML Element: \<fluent-radio-group\>
4229
+ */
4230
+ export declare const RadioGroupDefinition: FASTElementDefinition<typeof RadioGroup>;
4231
+
4232
+ /**
4233
+ * Radio Group orientation
4234
+ * @public
4235
+ */
4236
+ declare const RadioGroupOrientation: {
4237
+ readonly horizontal: "horizontal"; /**
4238
+ * Radio Group orientation
4239
+ * @public
4240
+ */
4241
+ readonly vertical: "vertical";
4242
+ };
4243
+
4244
+ /**
4245
+ * Types of Radio Group orientation
4246
+ * @public
4247
+ */
4248
+ declare type RadioGroupOrientation = ValuesOf<typeof RadioGroupOrientation>;
4249
+
4250
+ /** RadioGroup styles
4251
+ * @public
4252
+ */
4253
+ export declare const RadioGroupStyles: ElementStyles;
4254
+
4255
+ export declare const RadioGroupTemplate: ElementViewTemplate<RadioGroup>;
4256
+
4257
+ /**
4258
+ * Radio configuration options
4259
+ * @public
4260
+ */
4261
+ export declare type RadioOptions = {
4262
+ checkedIndicator?: StaticallyComposableHTML<Radio>;
4263
+ };
4264
+
4265
+ /** Radio styles
4266
+ * @public
4267
+ */
4268
+ export declare const RadioStyles: ElementStyles;
4269
+
4270
+ export declare const RadioTemplate: ElementViewTemplate<Radio>;
4271
+
4272
+ /**
4273
+ * @internal
4274
+ */
4275
+ export declare const roleForMenuItem: {
4276
+ [value in keyof typeof MenuItemRole]: typeof MenuItemRole[value];
4277
+ };
4278
+
4279
+ /**
4280
+ * Sets the theme tokens on defaultNode.
4281
+ * @param theme Flat object of theme token values.
4282
+ */
4283
+ export declare const setTheme: (theme: Theme) => void;
4284
+
4285
+ export declare const setThemeFor: (element: HTMLElement, theme: Theme) => void;
4286
+
4287
+ export declare const shadow16 = "--shadow16";
4288
+
4289
+ export declare const shadow16Brand = "--shadow16Brand";
4290
+
4291
+ export declare const shadow2 = "--shadow2";
4292
+
4293
+ export declare const shadow28 = "--shadow28";
4294
+
4295
+ export declare const shadow28Brand = "--shadow28Brand";
4296
+
4297
+ export declare const shadow2Brand = "--shadow2Brand";
4298
+
4299
+ export declare const shadow4 = "--shadow4";
4300
+
4301
+ export declare const shadow4Brand = "--shadow4Brand";
4302
+
4303
+ export declare const shadow64 = "--shadow64";
4304
+
4305
+ export declare const shadow64Brand = "--shadow64Brand";
4306
+
4307
+ export declare const shadow8 = "--shadow8";
4308
+
4309
+ export declare const shadow8Brand = "--shadow8Brand";
4310
+
4311
+ /**
4312
+ * The base class used for constructing a fluent-slider custom element
4313
+ * @public
4314
+ */
4315
+ export declare class Slider extends FormAssociatedSlider implements SliderConfiguration {
4316
+ /**
4317
+ * The size of the slider
4318
+ * @public
4319
+ * @remarks
4320
+ * HTML Attribute: size
4321
+ */
4322
+ size?: SliderSize;
4323
+ handleChange(source: any, propertyName: string): void;
4324
+ private stepStyles?;
4325
+ /**
4326
+ * Handles changes to step styling based on the step value
4327
+ * NOTE: This function is not a changed callback, stepStyles is not observable
4328
+ */
4329
+ private handleStepStyles;
4330
+ /**
4331
+ * When true, the control will be immutable by user interaction. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly | readonly HTML attribute} for more information.
4332
+ *
4333
+ * @public
4334
+ * @remarks
4335
+ * HTML Attribute: readonly
4336
+ */
4337
+ readOnly: boolean;
4338
+ protected readOnlyChanged(): void;
4339
+ /**
4340
+ * @internal
4341
+ */
4342
+ track: HTMLDivElement;
4343
+ /**
4344
+ * @internal
4345
+ */
4346
+ thumb: HTMLDivElement;
4347
+ /**
4348
+ * @internal
4349
+ */
4350
+ stepMultiplier: number;
4351
+ /**
4352
+ * @internal
4353
+ */
4354
+ direction: Direction;
4355
+ /**
4356
+ * @internal
4357
+ */
4358
+ isDragging: boolean;
4359
+ /**
4360
+ * @internal
4361
+ */
4362
+ position: string;
4363
+ /**
4364
+ * @internal
4365
+ */
4366
+ trackWidth: number;
4367
+ /**
4368
+ * @internal
4369
+ */
4370
+ trackMinWidth: number;
4371
+ /**
4372
+ * @internal
4373
+ */
4374
+ trackHeight: number;
4375
+ /**
4376
+ * @internal
4377
+ */
4378
+ trackLeft: number;
4379
+ /**
4380
+ * @internal
4381
+ */
4382
+ trackMinHeight: number;
4383
+ /**
4384
+ * The value property, typed as a number.
4385
+ *
4386
+ * @public
4387
+ */
4388
+ get valueAsNumber(): number;
4389
+ set valueAsNumber(next: number);
4390
+ /**
4391
+ * Custom function that generates a string for the component's "aria-valuetext" attribute based on the current value.
4392
+ *
4393
+ * @public
4394
+ */
4395
+ valueTextFormatter: (value: string) => string | null;
4396
+ /**
4397
+ * @internal
4398
+ */
4399
+ valueChanged(previous: string, next: string): void;
4400
+ /**
4401
+ * The minimum allowed value.
4402
+ *
4403
+ * @defaultValue - 0
4404
+ * @public
4405
+ * @remarks
4406
+ * HTML Attribute: min
4407
+ */
4408
+ min: number;
4409
+ protected minChanged(): void;
4410
+ /**
4411
+ * The maximum allowed value.
4412
+ *
4413
+ * @defaultValue - 10
4414
+ * @public
4415
+ * @remarks
4416
+ * HTML Attribute: max
4417
+ */
4418
+ max: number;
4419
+ protected maxChanged(): void;
4420
+ /**
4421
+ * Value to increment or decrement via arrow keys, mouse click or drag.
4422
+ *
4423
+ * @public
4424
+ * @remarks
4425
+ * HTML Attribute: step
4426
+ */
4427
+ step: number | undefined;
4428
+ protected stepChanged(): void;
4429
+ /**
4430
+ * The orientation of the slider.
4431
+ *
4432
+ * @public
4433
+ * @remarks
4434
+ * HTML Attribute: orientation
4435
+ */
4436
+ orientation: Orientation;
4437
+ protected orientationChanged(): void;
4438
+ /**
4439
+ * The selection mode.
4440
+ *
4441
+ * @public
4442
+ * @remarks
4443
+ * HTML Attribute: mode
4444
+ */
4445
+ mode: SliderMode;
4446
+ /**
4447
+ * @internal
4448
+ */
4449
+ connectedCallback(): void;
4450
+ /**
4451
+ * @internal
4452
+ */
4453
+ disconnectedCallback(): void;
4454
+ /**
4455
+ * Increment the value by the step
4456
+ *
4457
+ * @public
4458
+ */
4459
+ increment(): void;
4460
+ /**
4461
+ * Decrement the value by the step
4462
+ *
4463
+ * @public
4464
+ */
4465
+ decrement(): void;
4466
+ keypressHandler: (e: KeyboardEvent) => void;
4467
+ /**
4468
+ * Gets the actual step value for the slider
4469
+ *
4470
+ */
4471
+ private get stepValue();
4472
+ /**
4473
+ * Places the thumb based on the current value
4474
+ *
4475
+ * @public
4476
+ * @param direction - writing mode
4477
+ */
4478
+ private setThumbPositionForOrientation;
4479
+ /**
4480
+ * Update the step multiplier used to ensure rounding errors from steps that
4481
+ * are not whole numbers
4482
+ */
4483
+ private updateStepMultiplier;
4484
+ private setupTrackConstraints;
4485
+ private setupListeners;
4486
+ /**
4487
+ * @internal
4488
+ */
4489
+ initialValue: string;
4490
+ private get midpoint();
4491
+ private setupDefaultValue;
4492
+ /**
4493
+ * Handle mouse moves during a thumb drag operation
4494
+ * If the event handler is null it removes the events
4495
+ */
4496
+ handleThumbMouseDown: (event: MouseEvent | null) => void;
4497
+ /**
4498
+ * Handle mouse moves during a thumb drag operation
4499
+ */
4500
+ private handleMouseMove;
4501
+ /**
4502
+ * Calculate the new value based on the given raw pixel value.
4503
+ *
4504
+ * @param rawValue - the value to be converted to a constrained value
4505
+ * @returns the constrained value
4506
+ *
4507
+ * @internal
4508
+ */
4509
+ calculateNewValue(rawValue: number): number;
4510
+ /**
4511
+ * Handle a window mouse up during a drag operation
4512
+ */
4513
+ private handleWindowMouseUp;
4514
+ private stopDragging;
4515
+ /**
4516
+ *
4517
+ * @param e - MouseEvent or null. If there is no event handler it will remove the events
4518
+ */
4519
+ handleMouseDown: (e: MouseEvent | null) => void;
4520
+ private convertToConstrainedValue;
4521
+ }
4522
+
4523
+ declare class _Slider extends FASTElement {
4524
+ }
4525
+
4526
+ declare interface _Slider extends FormAssociated {
2816
4527
  }
2817
4528
 
2818
4529
  /**
2819
- * The Fluent RadioGroup Element.
4530
+ * @public
4531
+ */
4532
+ export declare interface SliderConfiguration {
4533
+ max: number;
4534
+ min: number;
4535
+ orientation?: SliderOrientation;
4536
+ direction?: Direction;
4537
+ disabled?: boolean;
4538
+ }
4539
+
4540
+ /**
4541
+ * The Fluent Slider Element.
2820
4542
  *
2821
4543
  *
2822
4544
  * @public
2823
4545
  * @remarks
2824
- * HTML Element: \<fluent-radio-group\>
4546
+ * HTML Element: \<fluent-slider\>
2825
4547
  */
2826
- export declare const RadioGroupDefinition: FASTElementDefinition<typeof RadioGroup>;
2827
-
2828
- export { RadioGroupOrientation }
4548
+ export declare const SliderDefinition: FASTElementDefinition<typeof Slider>;
2829
4549
 
2830
- /** RadioGroup styles
4550
+ /**
2831
4551
  * @public
2832
4552
  */
2833
- export declare const RadioGroupStyles: ElementStyles;
2834
-
2835
- export declare const RadioGroupTemplate: ElementViewTemplate<RadioGroup>;
4553
+ export declare const SliderMode: {
4554
+ readonly singleValue: "single-value";
4555
+ };
2836
4556
 
2837
- /** Radio styles
4557
+ /**
4558
+ * The types for the selection mode of the slider
2838
4559
  * @public
2839
4560
  */
2840
- export declare const RadioStyles: ElementStyles;
2841
-
2842
- export declare const RadioTemplate: ElementViewTemplate<Radio>;
4561
+ export declare type SliderMode = ValuesOf<typeof SliderMode>;
2843
4562
 
2844
4563
  /**
2845
- * Sets the theme tokens on defaultNode.
2846
- * @param theme Flat object of theme token values.
4564
+ * Slider configuration options
4565
+ * @public
2847
4566
  */
2848
- export declare const setTheme: (theme: Theme) => void;
2849
-
2850
- export declare const setThemeFor: (element: HTMLElement, theme: Theme) => void;
2851
-
2852
- export declare const shadow16 = "--shadow16";
2853
-
2854
- export declare const shadow16Brand = "--shadow16Brand";
2855
-
2856
- export declare const shadow2 = "--shadow2";
2857
-
2858
- export declare const shadow28 = "--shadow28";
2859
-
2860
- export declare const shadow28Brand = "--shadow28Brand";
2861
-
2862
- export declare const shadow2Brand = "--shadow2Brand";
2863
-
2864
- export declare const shadow4 = "--shadow4";
2865
-
2866
- export declare const shadow4Brand = "--shadow4Brand";
2867
-
2868
- export declare const shadow64 = "--shadow64";
2869
-
2870
- export declare const shadow64Brand = "--shadow64Brand";
2871
-
2872
- export declare const shadow8 = "--shadow8";
2873
-
2874
- export declare const shadow8Brand = "--shadow8Brand";
4567
+ export declare type SliderOptions = {
4568
+ thumb?: StaticallyComposableHTML<Slider>;
4569
+ };
2875
4570
 
2876
4571
  /**
2877
- * The base class used for constructing a fluent-slider custom element
2878
4572
  * @public
2879
4573
  */
2880
- export declare class Slider extends FASTSlider {
2881
- /**
2882
- * The size of the slider
2883
- * @public
2884
- * @remarks
2885
- * HTML Attribute: size
2886
- */
2887
- size?: SliderSize;
2888
- handleChange(source: any, propertyName: string): void;
2889
- connectedCallback(): void;
2890
- disconnectedCallback(): void;
2891
- private stepStyles?;
2892
- /**
2893
- * Handles changes to step styling based on the step value
2894
- * NOTE: This function is not a changed callback, stepStyles is not observable
2895
- */
2896
- private handleStepStyles;
2897
- }
4574
+ export declare const SliderOrientation: {
4575
+ readonly horizontal: "horizontal";
4576
+ readonly vertical: "vertical";
4577
+ };
2898
4578
 
2899
4579
  /**
2900
- * The Fluent Slider Element.
2901
- *
2902
- *
4580
+ * The types for the orientation of the slider
2903
4581
  * @public
2904
- * @remarks
2905
- * HTML Element: \<fluent-slider\>
2906
4582
  */
2907
- export declare const SliderDefinition: FASTElementDefinition<typeof Slider>;
2908
-
2909
- export { SliderOrientation }
4583
+ export declare type SliderOrientation = ValuesOf<typeof SliderOrientation>;
2910
4584
 
2911
4585
  /**
2912
4586
  * SliderSize Constants
@@ -2928,7 +4602,7 @@ export declare type SliderSize = ValuesOf<typeof SliderSize>;
2928
4602
  */
2929
4603
  export declare const SliderStyles: ElementStyles;
2930
4604
 
2931
- export declare const SliderTemplate: ElementViewTemplate<FASTSlider>;
4605
+ export declare const SliderTemplate: ElementViewTemplate<Slider>;
2932
4606
 
2933
4607
  export declare const spacingHorizontalL = "--spacingHorizontalL";
2934
4608
 
@@ -2978,7 +4652,7 @@ export declare const spacingVerticalXXXL = "--spacingVerticalXXXL";
2978
4652
  * The base class used for constructing a fluent-spinner custom element
2979
4653
  * @public
2980
4654
  */
2981
- export declare class Spinner extends FASTProgressRing {
4655
+ export declare class Spinner extends ProgressRing {
2982
4656
  /**
2983
4657
  * The size of the spinner
2984
4658
  *
@@ -3014,10 +4688,6 @@ export declare const SpinnerAppearance: {
3014
4688
  export declare type SpinnerAppearance = ValuesOf<typeof SpinnerAppearance>;
3015
4689
 
3016
4690
  /**
3017
- * The Fluent Spinner Element. Implements {@link @microsoft/fast-foundation#ProgressRing },
3018
- * {@link @microsoft/fast-foundation#progress-ringTemplate}
3019
- *
3020
- *
3021
4691
  * @public
3022
4692
  * @remarks
3023
4693
  * HTML Element: \<fluent-spinner\>
@@ -3048,6 +4718,40 @@ export declare const SpinnerStyles: ElementStyles;
3048
4718
 
3049
4719
  export declare const SpinnerTemplate: ElementViewTemplate<Spinner>;
3050
4720
 
4721
+ /**
4722
+ * A mixin class implementing start and end slots.
4723
+ * These are generally used to decorate text elements with icons or other visual indicators.
4724
+ * @public
4725
+ */
4726
+ declare class StartEnd {
4727
+ start: HTMLSlotElement;
4728
+ end: HTMLSlotElement;
4729
+ }
4730
+
4731
+ /**
4732
+ * Start/End configuration options
4733
+ * @public
4734
+ */
4735
+ declare type StartEndOptions<TSource = any, TParent = any> = StartOptions<TSource, TParent> & EndOptions<TSource, TParent>;
4736
+
4737
+ /**
4738
+ * Start configuration options
4739
+ * @public
4740
+ */
4741
+ declare type StartOptions<TSource = any, TParent = any> = {
4742
+ start?: StaticallyComposableHTML<TSource, TParent>;
4743
+ };
4744
+
4745
+ /**
4746
+ * A value that can be statically composed into a
4747
+ * foundation template.
4748
+ * @remarks
4749
+ * When providing a string, take care to ensure that it is
4750
+ * safe and will not enable an XSS attack.
4751
+ * @public
4752
+ */
4753
+ declare type StaticallyComposableHTML<TSource = any, TParent = any> = string | HTMLDirective | SyntheticViewTemplate<TSource, TParent> | undefined;
4754
+
3051
4755
  export declare const strokeWidthThick = "--strokeWidthThick";
3052
4756
 
3053
4757
  export declare const strokeWidthThicker = "--strokeWidthThicker";
@@ -3060,7 +4764,7 @@ declare const styles: ElementStyles;
3060
4764
  export { styles as ButtonStyles }
3061
4765
  export { styles as MenuButtonStyles }
3062
4766
 
3063
- export declare class Switch extends FASTSwitch {
4767
+ export declare class Switch extends FormAssociatedSwitch {
3064
4768
  /**
3065
4769
  * The label position of the switch
3066
4770
  *
@@ -3070,6 +4774,40 @@ export declare class Switch extends FASTSwitch {
3070
4774
  * HTML Attribute: labelposition
3071
4775
  */
3072
4776
  labelPosition: SwitchLabelPosition | undefined;
4777
+ /**
4778
+ * When true, the control will be immutable by user interaction. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly | readonly HTML attribute} for more information.
4779
+ * @public
4780
+ * @remarks
4781
+ * HTML Attribute: readonly
4782
+ */
4783
+ readOnly: boolean;
4784
+ protected readOnlyChanged(): void;
4785
+ /**
4786
+ * The element's value to be included in form submission when checked.
4787
+ * Default to "on" to reach parity with input[type="checkbox"]
4788
+ *
4789
+ * @internal
4790
+ */
4791
+ initialValue: string;
4792
+ /**
4793
+ * @internal
4794
+ */
4795
+ defaultSlottedNodes: Node[];
4796
+ constructor();
4797
+ /**
4798
+ * @internal
4799
+ */
4800
+ keypressHandler: (e: KeyboardEvent) => void;
4801
+ /**
4802
+ * @internal
4803
+ */
4804
+ clickHandler: (e: MouseEvent) => void;
4805
+ }
4806
+
4807
+ declare class _Switch extends FASTElement {
4808
+ }
4809
+
4810
+ declare interface _Switch extends CheckableFormAssociated {
3073
4811
  }
3074
4812
 
3075
4813
  /**
@@ -3097,6 +4835,10 @@ export declare const SwitchLabelPosition: {
3097
4835
  */
3098
4836
  export declare type SwitchLabelPosition = ValuesOf<typeof SwitchLabelPosition>;
3099
4837
 
4838
+ export declare type SwitchOptions = {
4839
+ switch?: StaticallyComposableHTML<Switch>;
4840
+ };
4841
+
3100
4842
  export declare const SwitchStyles: ElementStyles;
3101
4843
 
3102
4844
  export declare const SwitchTemplate: ElementViewTemplate<Switch>;
@@ -3104,29 +4846,39 @@ export declare const SwitchTemplate: ElementViewTemplate<Switch>;
3104
4846
  /**
3105
4847
  * Tab extends the FASTTab and is a child of the TabList
3106
4848
  */
3107
- export declare class Tab extends FASTTab {
4849
+ export declare class Tab extends FASTElement {
4850
+ /**
4851
+ * When true, the control will be immutable by user interaction. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled | disabled HTML attribute} for more information.
4852
+ * @public
4853
+ * @remarks
4854
+ * HTML Attribute: disabled
4855
+ */
4856
+ disabled: boolean;
3108
4857
  private styles;
3109
4858
  connectedCallback(): void;
3110
4859
  }
3111
4860
 
4861
+ export declare interface Tab extends StartEnd {
4862
+ }
4863
+
3112
4864
  export declare const TabDefinition: FASTElementDefinition<typeof Tab>;
3113
4865
 
3114
- export declare class TabPanel extends FASTTabPanel {
4866
+ /**
4867
+ * Tab configuration options
4868
+ * @public
4869
+ */
4870
+ export declare type TabOptions = StartEndOptions<Tab>;
4871
+
4872
+ export declare class TabPanel extends FASTElement {
3115
4873
  }
3116
4874
 
3117
4875
  export declare const TabPanelDefinition: FASTElementDefinition<typeof TabPanel>;
3118
4876
 
3119
4877
  export declare const TabPanelStyles: ElementStyles;
3120
4878
 
3121
- export declare const TabPanelTemplate: ElementViewTemplate<FASTTabPanel, any>;
4879
+ export declare const TabPanelTemplate: ElementViewTemplate<TabPanel, any>;
3122
4880
 
3123
- /**
3124
- * TabList extends FASTTabs and is used for constructing a fluent-tab-list custom html element.
3125
- *
3126
- * @class TabList component
3127
- * @public
3128
- */
3129
- export declare class Tabs extends FASTTabs {
4881
+ export declare class Tabs extends BaseTabs {
3130
4882
  /**
3131
4883
  * activeTabData
3132
4884
  * The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
@@ -3207,6 +4959,9 @@ export declare class Tabs extends FASTTabs {
3207
4959
  tabsChanged(): void;
3208
4960
  }
3209
4961
 
4962
+ export declare interface Tabs extends StartEnd {
4963
+ }
4964
+
3210
4965
  export declare const TabsAppearance: {
3211
4966
  readonly subtle: "subtle";
3212
4967
  readonly transparent: "transparent";
@@ -3216,7 +4971,26 @@ export declare type TabsAppearance = ValuesOf<typeof TabsAppearance>;
3216
4971
 
3217
4972
  export declare const TabsDefinition: FASTElementDefinition<typeof Tabs>;
3218
4973
 
3219
- export { TabsOrientation }
4974
+ /**
4975
+ * Tabs option configuration options
4976
+ * @public
4977
+ */
4978
+ export declare type TabsOptions = StartEndOptions<Tabs>;
4979
+
4980
+ /**
4981
+ * The orientation of the component
4982
+ * @public
4983
+ */
4984
+ export declare const TabsOrientation: {
4985
+ readonly horizontal: "horizontal";
4986
+ readonly vertical: "vertical";
4987
+ };
4988
+
4989
+ /**
4990
+ * The types for the Tabs component
4991
+ * @public
4992
+ */
4993
+ export declare type TabsOrientation = ValuesOf<typeof TabsOrientation>;
3220
4994
 
3221
4995
  export declare const TabsSize: {
3222
4996
  readonly small: "small";
@@ -3228,11 +5002,11 @@ export declare type TabsSize = ValuesOf<typeof TabsSize>;
3228
5002
 
3229
5003
  export declare const TabsStyles: ElementStyles;
3230
5004
 
3231
- export declare const TabsTemplate: ElementViewTemplate<FASTTabs, any>;
5005
+ export declare const TabsTemplate: ElementViewTemplate<Tabs, any>;
3232
5006
 
3233
5007
  export declare const TabStyles: ElementStyles;
3234
5008
 
3235
- export declare const TabTemplate: ElementViewTemplate<FASTTab, any>;
5009
+ export declare const TabTemplate: ElementViewTemplate<Tab, any>;
3236
5010
 
3237
5011
  /**
3238
5012
  * The base class used for constructing a fluent-text custom element
@@ -3352,6 +5126,47 @@ export declare type TextAlign = ValuesOf<typeof TextAlign>;
3352
5126
  */
3353
5127
  export declare const TextDefinition: FASTElementDefinition<typeof Text_2>;
3354
5128
 
5129
+ declare class _TextField extends FASTElement {
5130
+ }
5131
+
5132
+ declare interface _TextField extends FormAssociated {
5133
+ }
5134
+
5135
+ export declare type TextFieldOptions = StartEndOptions<TextInput>;
5136
+
5137
+ /**
5138
+ * Text field sub-types
5139
+ * @public
5140
+ */
5141
+ export declare const TextFieldType: {
5142
+ /**
5143
+ * An email TextField
5144
+ */
5145
+ readonly email: "email";
5146
+ /**
5147
+ * A password TextField
5148
+ */
5149
+ readonly password: "password";
5150
+ /**
5151
+ * A telephone TextField
5152
+ */
5153
+ readonly tel: "tel";
5154
+ /**
5155
+ * A text TextField
5156
+ */
5157
+ readonly text: "text";
5158
+ /**
5159
+ * A URL TextField
5160
+ */
5161
+ readonly url: "url";
5162
+ };
5163
+
5164
+ /**
5165
+ * Types for the text field sub-types
5166
+ * @public
5167
+ */
5168
+ export declare type TextFieldType = ValuesOf<typeof TextFieldType>;
5169
+
3355
5170
  /**
3356
5171
  * TextFont Constants
3357
5172
  * @public
@@ -3368,11 +5183,7 @@ export declare const TextFont: {
3368
5183
  */
3369
5184
  export declare type TextFont = ValuesOf<typeof TextFont>;
3370
5185
 
3371
- /**
3372
- * The base class used for constructing a fluent-text-input custom element
3373
- * @public
3374
- */
3375
- export declare class TextInput extends FASTTextField {
5186
+ export declare class TextInput extends FormAssociatedTextField {
3376
5187
  /**
3377
5188
  * Defines TextInput control size
3378
5189
  *
@@ -3391,6 +5202,126 @@ export declare class TextInput extends FASTTextField {
3391
5202
  * HTML Attribute: appearance
3392
5203
  */
3393
5204
  appearance?: TextInputAppearance;
5205
+ /**
5206
+ * When true, the control will be immutable by user interaction. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly | readonly HTML attribute} for more information.
5207
+ * @public
5208
+ * @remarks
5209
+ * HTML Attribute: readonly
5210
+ */
5211
+ readOnly: boolean;
5212
+ protected readOnlyChanged(): void;
5213
+ /**
5214
+ * Indicates that this element should get focus after the page finishes loading. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautofocus | autofocus HTML attribute} for more information.
5215
+ * @public
5216
+ * @remarks
5217
+ * HTML Attribute: autofocus
5218
+ */
5219
+ autofocus: boolean;
5220
+ protected autofocusChanged(): void;
5221
+ /**
5222
+ * Sets the placeholder value of the element, generally used to provide a hint to the user.
5223
+ * @public
5224
+ * @remarks
5225
+ * HTML Attribute: placeholder
5226
+ * Using this attribute does is not a valid substitute for a labeling element.
5227
+ */
5228
+ placeholder: string;
5229
+ protected placeholderChanged(): void;
5230
+ /**
5231
+ * Allows setting a type or mode of text.
5232
+ * @public
5233
+ * @remarks
5234
+ * HTML Attribute: type
5235
+ */
5236
+ type: TextFieldType;
5237
+ private typeChanged;
5238
+ /**
5239
+ * Allows associating a {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist | datalist} to the element by {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/id}.
5240
+ * @public
5241
+ * @remarks
5242
+ * HTML Attribute: list
5243
+ */
5244
+ list: string;
5245
+ protected listChanged(): void;
5246
+ /**
5247
+ * The maximum number of characters a user can enter.
5248
+ * @public
5249
+ * @remarks
5250
+ * HTMLAttribute: maxlength
5251
+ */
5252
+ maxlength: number;
5253
+ protected maxlengthChanged(): void;
5254
+ /**
5255
+ * The minimum number of characters a user can enter.
5256
+ * @public
5257
+ * @remarks
5258
+ * HTMLAttribute: minlength
5259
+ */
5260
+ minlength: number;
5261
+ protected minlengthChanged(): void;
5262
+ /**
5263
+ * A regular expression that the value must match to pass validation.
5264
+ * @public
5265
+ * @remarks
5266
+ * HTMLAttribute: pattern
5267
+ */
5268
+ pattern: string;
5269
+ protected patternChanged(): void;
5270
+ /**
5271
+ * Sets the width of the element to a specified number of characters.
5272
+ * @public
5273
+ * @remarks
5274
+ * HTMLAttribute: size
5275
+ */
5276
+ size: number;
5277
+ protected sizeChanged(): void;
5278
+ /**
5279
+ * Controls whether or not to enable spell checking for the input field, or if the default spell checking configuration should be used.
5280
+ * @public
5281
+ * @remarks
5282
+ * HTMLAttribute: size
5283
+ */
5284
+ spellcheck: boolean;
5285
+ protected spellcheckChanged(): void;
5286
+ /**
5287
+ * @internal
5288
+ */
5289
+ defaultSlottedNodes: Node[];
5290
+ /**
5291
+ * A reference to the internal input element
5292
+ * @internal
5293
+ */
5294
+ control: HTMLInputElement;
5295
+ /**
5296
+ * @internal
5297
+ */
5298
+ connectedCallback(): void;
5299
+ /**
5300
+ * Selects all the text in the text field
5301
+ *
5302
+ * @public
5303
+ */
5304
+ select(): void;
5305
+ /**
5306
+ * Handles the internal control's `input` event
5307
+ * @internal
5308
+ */
5309
+ handleTextInput(): void;
5310
+ /**
5311
+ * Change event handler for inner control.
5312
+ * @remarks
5313
+ * "Change" events are not `composable` so they will not
5314
+ * permeate the shadow DOM boundary. This fn effectively proxies
5315
+ * the change event, emitting a `change` event whenever the internal
5316
+ * control emits a `change` event
5317
+ * @internal
5318
+ */
5319
+ handleChange(): void;
5320
+ /** {@inheritDoc (FormAssociated:interface).validate} */
5321
+ validate(): void;
5322
+ }
5323
+
5324
+ export declare interface TextInput extends StartEnd, DelegatesARIATextbox {
3394
5325
  }
3395
5326
 
3396
5327
  /**
@@ -3446,8 +5377,6 @@ export declare const TextInputStyles: ElementStyles;
3446
5377
  */
3447
5378
  export declare const TextInputTemplate: ElementViewTemplate<TextInput>;
3448
5379
 
3449
- export { TextInputType }
3450
-
3451
5380
  /**
3452
5381
  * TextSize constants
3453
5382
  * @public
@@ -3566,8 +5495,6 @@ export declare const ToggleButtonAppearance: {
3566
5495
  export declare type ToggleButtonAppearance = ValuesOf<typeof ToggleButtonAppearance>;
3567
5496
 
3568
5497
  /**
3569
- * The Fluent Toggle Button Element. Implements {@link @microsoft/fast-foundation#Button },
3570
- * {@link @microsoft/fast-foundation#buttonTemplate}
3571
5498
  *
3572
5499
  * @public
3573
5500
  * @remarks
@@ -3615,4 +5542,30 @@ export declare const ToggleButtonStyles: ElementStyles;
3615
5542
  */
3616
5543
  export declare const ToggleButtonTemplate: ElementViewTemplate<ToggleButton>;
3617
5544
 
5545
+ /**
5546
+ * This file enables typing support for ElementInternals APIs.
5547
+ * It is largely taken from https://github.com/microsoft/TSJS-lib-generator/pull/818/files.
5548
+ *
5549
+ * When TypeScript adds support for these APIs we can delete this file.
5550
+ */
5551
+ declare interface ValidityStateFlags {
5552
+ badInput?: boolean;
5553
+ customError?: boolean;
5554
+ patternMismatch?: boolean;
5555
+ rangeOverflow?: boolean;
5556
+ rangeUnderflow?: boolean;
5557
+ stepMismatch?: boolean;
5558
+ tooLong?: boolean;
5559
+ tooShort?: boolean;
5560
+ typeMismatch?: boolean;
5561
+ valueMissing?: boolean;
5562
+ }
5563
+
5564
+ /**
5565
+ * Helper for enumerating a type from a const object
5566
+ * Example: export type Foo = ValuesOf\<typeof Foo\>
5567
+ * @public
5568
+ */
5569
+ declare type ValuesOf<T> = T[keyof T];
5570
+
3618
5571
  export { }