@fluentui/web-components 3.0.0-beta.2 → 3.0.0-beta.21

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 (515) hide show
  1. package/CHANGELOG.md +339 -103
  2. package/README.md +46 -15
  3. package/dist/dts/accordion/accordion.d.ts +47 -3
  4. package/dist/dts/accordion/accordion.definition.d.ts +0 -4
  5. package/dist/dts/accordion/accordion.options.d.ts +14 -0
  6. package/dist/dts/accordion/accordion.template.d.ts +4 -0
  7. package/dist/dts/accordion/index.d.ts +2 -1
  8. package/dist/dts/accordion-item/accordion-item.d.ts +78 -3
  9. package/dist/dts/accordion-item/accordion-item.definition.d.ts +0 -3
  10. package/dist/dts/accordion-item/accordion-item.options.d.ts +1 -1
  11. package/dist/dts/accordion-item/accordion-item.template.d.ts +2 -1
  12. package/dist/dts/accordion-item/index.d.ts +2 -2
  13. package/dist/dts/anchor-button/anchor-button.d.ts +116 -4
  14. package/dist/dts/anchor-button/anchor-button.definition.d.ts +0 -3
  15. package/dist/dts/anchor-button/anchor-button.options.d.ts +19 -2
  16. package/dist/dts/anchor-button/anchor-button.template.d.ts +7 -2
  17. package/dist/dts/anchor-button/index.d.ts +2 -2
  18. package/dist/dts/avatar/avatar.options.d.ts +1 -1
  19. package/dist/dts/avatar/index.d.ts +2 -2
  20. package/dist/dts/badge/badge.d.ts +1 -1
  21. package/dist/dts/badge/badge.definition.d.ts +0 -3
  22. package/dist/dts/badge/badge.options.d.ts +2 -2
  23. package/dist/dts/badge/index.d.ts +2 -2
  24. package/dist/dts/button/button.d.ts +243 -22
  25. package/dist/dts/button/button.definition.d.ts +2 -3
  26. package/dist/dts/button/button.options.d.ts +39 -3
  27. package/dist/dts/button/button.styles.d.ts +5 -0
  28. package/dist/dts/button/button.template.d.ts +8 -0
  29. package/dist/dts/button/index.d.ts +2 -2
  30. package/dist/dts/checkbox/checkbox.d.ts +46 -3
  31. package/dist/dts/checkbox/checkbox.form-associated.d.ts +14 -0
  32. package/dist/dts/checkbox/checkbox.options.d.ts +1 -1
  33. package/dist/dts/checkbox/checkbox.template.d.ts +6 -1
  34. package/dist/dts/checkbox/index.d.ts +2 -2
  35. package/dist/dts/compound-button/compound-button.definition.d.ts +0 -3
  36. package/dist/dts/compound-button/compound-button.options.d.ts +6 -6
  37. package/dist/dts/compound-button/index.d.ts +2 -2
  38. package/dist/dts/counter-badge/counter-badge.d.ts +1 -1
  39. package/dist/dts/counter-badge/counter-badge.definition.d.ts +0 -4
  40. package/dist/dts/counter-badge/counter-badge.options.d.ts +1 -1
  41. package/dist/dts/counter-badge/index.d.ts +2 -2
  42. package/dist/dts/dialog/define.d.ts +1 -0
  43. package/dist/dts/dialog/dialog.d.ts +192 -0
  44. package/dist/dts/dialog/dialog.definition.d.ts +9 -0
  45. package/dist/dts/dialog/dialog.options.d.ts +11 -0
  46. package/dist/dts/dialog/dialog.styles.d.ts +4 -0
  47. package/dist/dts/dialog/dialog.template.d.ts +7 -0
  48. package/dist/dts/dialog/index.d.ts +5 -0
  49. package/dist/dts/divider/divider.d.ts +20 -4
  50. package/dist/dts/divider/divider.options.d.ts +30 -6
  51. package/dist/dts/divider/divider.template.d.ts +1 -0
  52. package/dist/dts/divider/index.d.ts +2 -2
  53. package/dist/dts/form-associated/form-associated.d.ts +104 -0
  54. package/dist/dts/image/image.options.d.ts +1 -1
  55. package/dist/dts/image/index.d.ts +2 -2
  56. package/dist/dts/index-rollup.d.ts +35 -1
  57. package/dist/dts/index.d.ts +36 -29
  58. package/dist/dts/label/index.d.ts +2 -1
  59. package/dist/dts/label/label.options.d.ts +1 -1
  60. package/dist/dts/menu/define.d.ts +1 -0
  61. package/dist/dts/menu/index.d.ts +4 -0
  62. package/dist/dts/menu/menu.d.ts +194 -0
  63. package/dist/dts/menu/menu.definition.d.ts +9 -0
  64. package/dist/dts/menu/menu.styles.d.ts +4 -0
  65. package/dist/dts/menu/menu.template.d.ts +4 -0
  66. package/dist/dts/menu-button/index.d.ts +2 -2
  67. package/dist/dts/menu-button/menu-button.definition.d.ts +0 -3
  68. package/dist/dts/menu-button/menu-button.options.d.ts +2 -2
  69. package/dist/dts/menu-item/index.d.ts +2 -1
  70. package/dist/dts/menu-item/menu-item.d.ts +161 -4
  71. package/dist/dts/menu-item/menu-item.definition.d.ts +0 -4
  72. package/dist/dts/menu-item/menu-item.options.d.ts +30 -0
  73. package/dist/dts/menu-item/menu-item.template.d.ts +2 -1
  74. package/dist/dts/menu-list/index.d.ts +1 -1
  75. package/dist/dts/menu-list/menu-list.d.ts +71 -4
  76. package/dist/dts/menu-list/menu-list.definition.d.ts +0 -4
  77. package/dist/dts/menu-list/menu-list.template.d.ts +1 -0
  78. package/dist/dts/patterns/aria-globals.d.ts +189 -0
  79. package/dist/dts/patterns/index.d.ts +2 -0
  80. package/dist/dts/patterns/start-end.d.ts +44 -0
  81. package/dist/dts/progress-bar/base-progress.d.ts +41 -0
  82. package/dist/dts/progress-bar/index.d.ts +2 -2
  83. package/dist/dts/progress-bar/progress-bar.d.ts +11 -4
  84. package/dist/dts/progress-bar/progress-bar.options.d.ts +10 -1
  85. package/dist/dts/progress-bar/progress-bar.template.d.ts +2 -0
  86. package/dist/dts/radio/index.d.ts +1 -1
  87. package/dist/dts/radio/radio.d.ts +54 -3
  88. package/dist/dts/radio/radio.form-associated.d.ts +14 -0
  89. package/dist/dts/radio/radio.template.d.ts +2 -1
  90. package/dist/dts/radio-group/index.d.ts +2 -2
  91. package/dist/dts/radio-group/radio-group.d.ts +91 -2
  92. package/dist/dts/radio-group/radio-group.options.d.ts +17 -0
  93. package/dist/dts/radio-group/radio-group.template.d.ts +1 -0
  94. package/dist/dts/slider/index.d.ts +2 -2
  95. package/dist/dts/slider/slider-utilities.d.ts +5 -0
  96. package/dist/dts/slider/slider.d.ts +195 -5
  97. package/dist/dts/slider/slider.form-associated.d.ts +14 -0
  98. package/dist/dts/slider/slider.options.d.ts +43 -2
  99. package/dist/dts/slider/slider.template.d.ts +4 -2
  100. package/dist/dts/spinner/index.d.ts +2 -2
  101. package/dist/dts/spinner/spinner.d.ts +9 -2
  102. package/dist/dts/spinner/spinner.definition.d.ts +0 -4
  103. package/dist/dts/spinner/spinner.options.d.ts +1 -1
  104. package/dist/dts/spinner/spinner.template.d.ts +1 -2
  105. package/dist/dts/styles/partials/index.d.ts +1 -0
  106. package/dist/dts/styles/partials/typography.partials.d.ts +18 -0
  107. package/dist/dts/switch/index.d.ts +2 -2
  108. package/dist/dts/switch/switch.d.ts +34 -2
  109. package/dist/dts/switch/switch.form-associated.d.ts +14 -0
  110. package/dist/dts/switch/switch.options.d.ts +1 -1
  111. package/dist/dts/switch/switch.template.d.ts +2 -1
  112. package/dist/dts/tab/index.d.ts +1 -1
  113. package/dist/dts/tab/tab.d.ts +17 -2
  114. package/dist/dts/tab/tab.template.d.ts +3 -3
  115. package/dist/dts/tab-panel/index.d.ts +1 -1
  116. package/dist/dts/tab-panel/tab-panel.d.ts +2 -2
  117. package/dist/dts/tab-panel/tab-panel.template.d.ts +4 -1
  118. package/dist/dts/tabs/index.d.ts +2 -2
  119. package/dist/dts/tabs/tabs.d.ts +89 -4
  120. package/dist/dts/tabs/tabs.options.d.ts +21 -3
  121. package/dist/dts/tabs/tabs.template.d.ts +5 -1
  122. package/dist/dts/text/index.d.ts +2 -2
  123. package/dist/dts/text/text.options.d.ts +1 -1
  124. package/dist/dts/text-input/index.d.ts +5 -5
  125. package/dist/dts/text-input/text-input.d.ts +355 -10
  126. package/dist/dts/text-input/text-input.definition.d.ts +2 -3
  127. package/dist/dts/text-input/text-input.options.d.ts +30 -9
  128. package/dist/dts/text-input/text-input.styles.d.ts +5 -2
  129. package/dist/dts/text-input/text-input.template.d.ts +8 -1
  130. package/dist/dts/theme/design-tokens.d.ts +436 -384
  131. package/dist/dts/theme/set-theme.d.ts +1 -2
  132. package/dist/dts/toggle-button/index.d.ts +2 -2
  133. package/dist/dts/toggle-button/toggle-button.d.ts +29 -26
  134. package/dist/dts/toggle-button/toggle-button.definition.d.ts +0 -2
  135. package/dist/dts/toggle-button/toggle-button.options.d.ts +2 -2
  136. package/dist/dts/toggle-button/toggle-button.styles.d.ts +7 -0
  137. package/dist/dts/utils/behaviors/match-media-stylesheet-behavior.d.ts +124 -0
  138. package/dist/dts/utils/benchmark-dependencies/tokens.d.ts +1 -0
  139. package/dist/dts/utils/benchmark-wrapper.d.ts +2 -0
  140. package/dist/dts/utils/direction.d.ts +10 -0
  141. package/dist/dts/utils/display.d.ts +17 -0
  142. package/dist/dts/utils/index.d.ts +6 -0
  143. package/dist/dts/utils/template-helpers.d.ts +16 -0
  144. package/dist/dts/utils/typings.d.ts +6 -0
  145. package/dist/dts/utils/whitespace-filter.d.ts +12 -0
  146. package/dist/esm/accordion/accordion.definition.js +0 -4
  147. package/dist/esm/accordion/accordion.definition.js.map +1 -1
  148. package/dist/esm/accordion/accordion.js +211 -3
  149. package/dist/esm/accordion/accordion.js.map +1 -1
  150. package/dist/esm/accordion/accordion.options.js +9 -0
  151. package/dist/esm/accordion/accordion.options.js.map +1 -0
  152. package/dist/esm/accordion/accordion.styles.js +1 -1
  153. package/dist/esm/accordion/accordion.styles.js.map +1 -1
  154. package/dist/esm/accordion/accordion.template.js +11 -1
  155. package/dist/esm/accordion/accordion.template.js.map +1 -1
  156. package/dist/esm/accordion/index.js +2 -1
  157. package/dist/esm/accordion/index.js.map +1 -1
  158. package/dist/esm/accordion-item/accordion-item.definition.js +0 -3
  159. package/dist/esm/accordion-item/accordion-item.definition.js.map +1 -1
  160. package/dist/esm/accordion-item/accordion-item.js +81 -10
  161. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  162. package/dist/esm/accordion-item/accordion-item.styles.js +1 -1
  163. package/dist/esm/accordion-item/accordion-item.styles.js.map +1 -1
  164. package/dist/esm/accordion-item/accordion-item.template.js +47 -2
  165. package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
  166. package/dist/esm/accordion-item/index.js +2 -2
  167. package/dist/esm/accordion-item/index.js.map +1 -1
  168. package/dist/esm/anchor-button/anchor-button.definition.js +0 -3
  169. package/dist/esm/anchor-button/anchor-button.definition.js.map +1 -1
  170. package/dist/esm/anchor-button/anchor-button.js +53 -10
  171. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  172. package/dist/esm/anchor-button/anchor-button.options.js +11 -0
  173. package/dist/esm/anchor-button/anchor-button.options.js.map +1 -1
  174. package/dist/esm/anchor-button/anchor-button.styles.js +255 -3
  175. package/dist/esm/anchor-button/anchor-button.styles.js.map +1 -1
  176. package/dist/esm/anchor-button/anchor-button.template.js +49 -1
  177. package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
  178. package/dist/esm/anchor-button/index.js +2 -2
  179. package/dist/esm/anchor-button/index.js.map +1 -1
  180. package/dist/esm/avatar/avatar.js +1 -6
  181. package/dist/esm/avatar/avatar.js.map +1 -1
  182. package/dist/esm/avatar/avatar.styles.js +5 -5
  183. package/dist/esm/avatar/avatar.styles.js.map +1 -1
  184. package/dist/esm/avatar/index.js +2 -2
  185. package/dist/esm/avatar/index.js.map +1 -1
  186. package/dist/esm/badge/badge.definition.js +0 -3
  187. package/dist/esm/badge/badge.definition.js.map +1 -1
  188. package/dist/esm/badge/badge.js +2 -7
  189. package/dist/esm/badge/badge.js.map +1 -1
  190. package/dist/esm/badge/badge.styles.js +8 -1
  191. package/dist/esm/badge/badge.styles.js.map +1 -1
  192. package/dist/esm/badge/badge.template.js +2 -2
  193. package/dist/esm/badge/badge.template.js.map +1 -1
  194. package/dist/esm/badge/index.js +2 -2
  195. package/dist/esm/badge/index.js.map +1 -1
  196. package/dist/esm/button/button.definition.js +2 -6
  197. package/dist/esm/button/button.definition.js.map +1 -1
  198. package/dist/esm/button/button.js +263 -41
  199. package/dist/esm/button/button.js.map +1 -1
  200. package/dist/esm/button/button.options.js +20 -0
  201. package/dist/esm/button/button.options.js.map +1 -1
  202. package/dist/esm/button/button.styles.js +54 -56
  203. package/dist/esm/button/button.styles.js.map +1 -1
  204. package/dist/esm/button/button.template.js +23 -1
  205. package/dist/esm/button/button.template.js.map +1 -1
  206. package/dist/esm/button/index.js +2 -2
  207. package/dist/esm/button/index.js.map +1 -1
  208. package/dist/esm/checkbox/checkbox.form-associated.js +14 -0
  209. package/dist/esm/checkbox/checkbox.form-associated.js.map +1 -0
  210. package/dist/esm/checkbox/checkbox.js +63 -10
  211. package/dist/esm/checkbox/checkbox.js.map +1 -1
  212. package/dist/esm/checkbox/checkbox.styles.js +1 -1
  213. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  214. package/dist/esm/checkbox/checkbox.template.js +35 -7
  215. package/dist/esm/checkbox/checkbox.template.js.map +1 -1
  216. package/dist/esm/checkbox/index.js +2 -2
  217. package/dist/esm/checkbox/index.js.map +1 -1
  218. package/dist/esm/compound-button/compound-button.definition.js +0 -6
  219. package/dist/esm/compound-button/compound-button.definition.js.map +1 -1
  220. package/dist/esm/compound-button/compound-button.options.js.map +1 -1
  221. package/dist/esm/compound-button/compound-button.styles.js +7 -7
  222. package/dist/esm/compound-button/compound-button.template.js +4 -40
  223. package/dist/esm/compound-button/compound-button.template.js.map +1 -1
  224. package/dist/esm/compound-button/index.js +2 -2
  225. package/dist/esm/compound-button/index.js.map +1 -1
  226. package/dist/esm/counter-badge/counter-badge.definition.js +0 -4
  227. package/dist/esm/counter-badge/counter-badge.definition.js.map +1 -1
  228. package/dist/esm/counter-badge/counter-badge.js +2 -7
  229. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  230. package/dist/esm/counter-badge/index.js +2 -2
  231. package/dist/esm/counter-badge/index.js.map +1 -1
  232. package/dist/esm/dialog/define.js +4 -0
  233. package/dist/esm/dialog/define.js.map +1 -0
  234. package/dist/esm/dialog/dialog.definition.js +17 -0
  235. package/dist/esm/dialog/dialog.definition.js.map +1 -0
  236. package/dist/esm/dialog/dialog.js +365 -0
  237. package/dist/esm/dialog/dialog.js.map +1 -0
  238. package/dist/esm/dialog/dialog.options.js +10 -0
  239. package/dist/esm/dialog/dialog.options.js.map +1 -0
  240. package/dist/esm/dialog/dialog.styles.js +102 -0
  241. package/dist/esm/dialog/dialog.styles.js.map +1 -0
  242. package/dist/esm/dialog/dialog.template.js +61 -0
  243. package/dist/esm/dialog/dialog.template.js.map +1 -0
  244. package/dist/esm/dialog/index.js +6 -0
  245. package/dist/esm/dialog/index.js.map +1 -0
  246. package/dist/esm/divider/divider.js +30 -10
  247. package/dist/esm/divider/divider.js.map +1 -1
  248. package/dist/esm/divider/divider.options.js +14 -5
  249. package/dist/esm/divider/divider.options.js.map +1 -1
  250. package/dist/esm/divider/divider.styles.js +1 -1
  251. package/dist/esm/divider/divider.styles.js.map +1 -1
  252. package/dist/esm/divider/divider.template.js +12 -1
  253. package/dist/esm/divider/divider.template.js.map +1 -1
  254. package/dist/esm/divider/index.js +2 -2
  255. package/dist/esm/divider/index.js.map +1 -1
  256. package/dist/esm/form-associated/form-associated.js +458 -0
  257. package/dist/esm/form-associated/form-associated.js.map +1 -0
  258. package/dist/esm/image/image.js +1 -6
  259. package/dist/esm/image/image.js.map +1 -1
  260. package/dist/esm/image/index.js +2 -2
  261. package/dist/esm/image/index.js.map +1 -1
  262. package/dist/esm/index-rollup.js +35 -1
  263. package/dist/esm/index-rollup.js.map +1 -1
  264. package/dist/esm/index.js +36 -29
  265. package/dist/esm/index.js.map +1 -1
  266. package/dist/esm/label/index.js +2 -1
  267. package/dist/esm/label/index.js.map +1 -1
  268. package/dist/esm/label/label.js +1 -6
  269. package/dist/esm/label/label.js.map +1 -1
  270. package/dist/esm/label/label.styles.js +1 -1
  271. package/dist/esm/label/label.styles.js.map +1 -1
  272. package/dist/esm/menu/define.js +4 -0
  273. package/dist/esm/menu/define.js.map +1 -0
  274. package/dist/esm/menu/index.js +5 -0
  275. package/dist/esm/menu/index.js.map +1 -0
  276. package/dist/esm/menu/menu.definition.js +17 -0
  277. package/dist/esm/menu/menu.definition.js.map +1 -0
  278. package/dist/esm/menu/menu.js +408 -0
  279. package/dist/esm/menu/menu.js.map +1 -0
  280. package/dist/esm/menu/menu.styles.js +17 -0
  281. package/dist/esm/menu/menu.styles.js.map +1 -0
  282. package/dist/esm/menu/menu.template.js +24 -0
  283. package/dist/esm/menu/menu.template.js.map +1 -0
  284. package/dist/esm/menu-button/index.js +2 -2
  285. package/dist/esm/menu-button/index.js.map +1 -1
  286. package/dist/esm/menu-button/menu-button.definition.js +0 -6
  287. package/dist/esm/menu-button/menu-button.definition.js.map +1 -1
  288. package/dist/esm/menu-button/menu-button.options.js.map +1 -1
  289. package/dist/esm/menu-button/menu-button.template.js +6 -2
  290. package/dist/esm/menu-button/menu-button.template.js.map +1 -1
  291. package/dist/esm/menu-item/index.js +2 -1
  292. package/dist/esm/menu-item/index.js.map +1 -1
  293. package/dist/esm/menu-item/menu-item.definition.js +0 -4
  294. package/dist/esm/menu-item/menu-item.definition.js.map +1 -1
  295. package/dist/esm/menu-item/menu-item.js +265 -4
  296. package/dist/esm/menu-item/menu-item.js.map +1 -1
  297. package/dist/esm/menu-item/menu-item.options.js +27 -0
  298. package/dist/esm/menu-item/menu-item.options.js.map +1 -0
  299. package/dist/esm/menu-item/menu-item.styles.js +1 -1
  300. package/dist/esm/menu-item/menu-item.styles.js.map +1 -1
  301. package/dist/esm/menu-item/menu-item.template.js +57 -2
  302. package/dist/esm/menu-item/menu-item.template.js.map +1 -1
  303. package/dist/esm/menu-list/index.js +1 -1
  304. package/dist/esm/menu-list/index.js.map +1 -1
  305. package/dist/esm/menu-list/menu-list.definition.js +0 -4
  306. package/dist/esm/menu-list/menu-list.definition.js.map +1 -1
  307. package/dist/esm/menu-list/menu-list.js +260 -10
  308. package/dist/esm/menu-list/menu-list.js.map +1 -1
  309. package/dist/esm/menu-list/menu-list.styles.js +1 -1
  310. package/dist/esm/menu-list/menu-list.styles.js.map +1 -1
  311. package/dist/esm/menu-list/menu-list.template.js +13 -1
  312. package/dist/esm/menu-list/menu-list.template.js.map +1 -1
  313. package/dist/esm/patterns/aria-globals.js +72 -0
  314. package/dist/esm/patterns/aria-globals.js.map +1 -0
  315. package/dist/esm/patterns/index.js +3 -0
  316. package/dist/esm/patterns/index.js.map +1 -0
  317. package/dist/esm/patterns/start-end.js +29 -0
  318. package/dist/esm/patterns/start-end.js.map +1 -0
  319. package/dist/esm/progress-bar/base-progress.js +56 -0
  320. package/dist/esm/progress-bar/base-progress.js.map +1 -0
  321. package/dist/esm/progress-bar/index.js +2 -2
  322. package/dist/esm/progress-bar/index.js.map +1 -1
  323. package/dist/esm/progress-bar/progress-bar.js +11 -9
  324. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  325. package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
  326. package/dist/esm/progress-bar/progress-bar.styles.js +1 -1
  327. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  328. package/dist/esm/progress-bar/progress-bar.template.js +25 -1
  329. package/dist/esm/progress-bar/progress-bar.template.js.map +1 -1
  330. package/dist/esm/radio/index.js +1 -1
  331. package/dist/esm/radio/index.js.map +1 -1
  332. package/dist/esm/radio/radio.form-associated.js +14 -0
  333. package/dist/esm/radio/radio.form-associated.js.map +1 -0
  334. package/dist/esm/radio/radio.js +91 -3
  335. package/dist/esm/radio/radio.js.map +1 -1
  336. package/dist/esm/radio/radio.styles.js +1 -1
  337. package/dist/esm/radio/radio.styles.js.map +1 -1
  338. package/dist/esm/radio/radio.template.js +28 -2
  339. package/dist/esm/radio/radio.template.js.map +1 -1
  340. package/dist/esm/radio-group/index.js +2 -2
  341. package/dist/esm/radio-group/index.js.map +1 -1
  342. package/dist/esm/radio-group/radio-group.js +347 -9
  343. package/dist/esm/radio-group/radio-group.js.map +1 -1
  344. package/dist/esm/radio-group/radio-group.options.js +7 -0
  345. package/dist/esm/radio-group/radio-group.options.js.map +1 -0
  346. package/dist/esm/radio-group/radio-group.styles.js +1 -1
  347. package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
  348. package/dist/esm/radio-group/radio-group.template.js +30 -1
  349. package/dist/esm/radio-group/radio-group.template.js.map +1 -1
  350. package/dist/esm/slider/index.js +2 -2
  351. package/dist/esm/slider/index.js.map +1 -1
  352. package/dist/esm/slider/slider-utilities.js +12 -0
  353. package/dist/esm/slider/slider-utilities.js.map +1 -0
  354. package/dist/esm/slider/slider.form-associated.js +14 -0
  355. package/dist/esm/slider/slider.form-associated.js.map +1 -0
  356. package/dist/esm/slider/slider.js +433 -22
  357. package/dist/esm/slider/slider.js.map +1 -1
  358. package/dist/esm/slider/slider.options.js +11 -1
  359. package/dist/esm/slider/slider.options.js.map +1 -1
  360. package/dist/esm/slider/slider.styles.js +1 -1
  361. package/dist/esm/slider/slider.styles.js.map +1 -1
  362. package/dist/esm/slider/slider.template.js +38 -1
  363. package/dist/esm/slider/slider.template.js.map +1 -1
  364. package/dist/esm/spinner/index.js +2 -2
  365. package/dist/esm/spinner/index.js.map +1 -1
  366. package/dist/esm/spinner/spinner.definition.js +0 -4
  367. package/dist/esm/spinner/spinner.definition.js.map +1 -1
  368. package/dist/esm/spinner/spinner.js +13 -9
  369. package/dist/esm/spinner/spinner.js.map +1 -1
  370. package/dist/esm/spinner/spinner.styles.js +3 -17
  371. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  372. package/dist/esm/spinner/spinner.template.js +8 -21
  373. package/dist/esm/spinner/spinner.template.js.map +1 -1
  374. package/dist/esm/styles/partials/badge.partials.js +1 -1
  375. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  376. package/dist/esm/styles/partials/index.js +1 -0
  377. package/dist/esm/styles/partials/index.js.map +1 -1
  378. package/dist/esm/styles/partials/typography.partials.js +105 -0
  379. package/dist/esm/styles/partials/typography.partials.js.map +1 -0
  380. package/dist/esm/switch/index.js +2 -2
  381. package/dist/esm/switch/index.js.map +1 -1
  382. package/dist/esm/switch/switch.form-associated.js +14 -0
  383. package/dist/esm/switch/switch.form-associated.js.map +1 -0
  384. package/dist/esm/switch/switch.js +49 -9
  385. package/dist/esm/switch/switch.js.map +1 -1
  386. package/dist/esm/switch/switch.styles.js +4 -3
  387. package/dist/esm/switch/switch.styles.js.map +1 -1
  388. package/dist/esm/switch/switch.template.js +25 -1
  389. package/dist/esm/switch/switch.template.js.map +1 -1
  390. package/dist/esm/tab/index.js +1 -1
  391. package/dist/esm/tab/index.js.map +1 -1
  392. package/dist/esm/tab/tab.js +9 -3
  393. package/dist/esm/tab/tab.js.map +1 -1
  394. package/dist/esm/tab/tab.styles.js +1 -1
  395. package/dist/esm/tab/tab.styles.js.map +1 -1
  396. package/dist/esm/tab/tab.template.js +1 -1
  397. package/dist/esm/tab/tab.template.js.map +1 -1
  398. package/dist/esm/tab-panel/index.js +1 -1
  399. package/dist/esm/tab-panel/index.js.map +1 -1
  400. package/dist/esm/tab-panel/tab-panel.js +2 -2
  401. package/dist/esm/tab-panel/tab-panel.js.map +1 -1
  402. package/dist/esm/tab-panel/tab-panel.styles.js +1 -1
  403. package/dist/esm/tab-panel/tab-panel.styles.js.map +1 -1
  404. package/dist/esm/tab-panel/tab-panel.template.js +8 -1
  405. package/dist/esm/tab-panel/tab-panel.template.js.map +1 -1
  406. package/dist/esm/tabs/index.js +2 -2
  407. package/dist/esm/tabs/index.js.map +1 -1
  408. package/dist/esm/tabs/tabs.js +279 -11
  409. package/dist/esm/tabs/tabs.js.map +1 -1
  410. package/dist/esm/tabs/tabs.options.js +6 -2
  411. package/dist/esm/tabs/tabs.options.js.map +1 -1
  412. package/dist/esm/tabs/tabs.styles.js +1 -1
  413. package/dist/esm/tabs/tabs.styles.js.map +1 -1
  414. package/dist/esm/tabs/tabs.template.js +14 -1
  415. package/dist/esm/tabs/tabs.template.js.map +1 -1
  416. package/dist/esm/text/index.js +2 -2
  417. package/dist/esm/text/index.js.map +1 -1
  418. package/dist/esm/text/text.js +1 -6
  419. package/dist/esm/text/text.js.map +1 -1
  420. package/dist/esm/text/text.styles.js +1 -1
  421. package/dist/esm/text/text.styles.js.map +1 -1
  422. package/dist/esm/text-input/index.js +4 -5
  423. package/dist/esm/text-input/index.js.map +1 -1
  424. package/dist/esm/text-input/text-input.definition.js +2 -3
  425. package/dist/esm/text-input/text-input.definition.js.map +1 -1
  426. package/dist/esm/text-input/text-input.js +340 -11
  427. package/dist/esm/text-input/text-input.js.map +1 -1
  428. package/dist/esm/text-input/text-input.options.js +35 -2
  429. package/dist/esm/text-input/text-input.options.js.map +1 -1
  430. package/dist/esm/text-input/text-input.styles.js +8 -3
  431. package/dist/esm/text-input/text-input.styles.js.map +1 -1
  432. package/dist/esm/text-input/text-input.template.js +49 -2
  433. package/dist/esm/text-input/text-input.template.js.map +1 -1
  434. package/dist/esm/theme/design-tokens.js +437 -386
  435. package/dist/esm/theme/design-tokens.js.map +1 -1
  436. package/dist/esm/theme/set-theme.js +2 -2
  437. package/dist/esm/theme/set-theme.js.map +1 -1
  438. package/dist/esm/toggle-button/index.js +2 -2
  439. package/dist/esm/toggle-button/index.js.map +1 -1
  440. package/dist/esm/toggle-button/toggle-button.definition.js +0 -5
  441. package/dist/esm/toggle-button/toggle-button.definition.js.map +1 -1
  442. package/dist/esm/toggle-button/toggle-button.js +43 -91
  443. package/dist/esm/toggle-button/toggle-button.js.map +1 -1
  444. package/dist/esm/toggle-button/toggle-button.options.js.map +1 -1
  445. package/dist/esm/toggle-button/toggle-button.styles.js +31 -26
  446. package/dist/esm/toggle-button/toggle-button.styles.js.map +1 -1
  447. package/dist/esm/toggle-button/toggle-button.template.js +1 -1
  448. package/dist/esm/toggle-button/toggle-button.template.js.map +1 -1
  449. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js +142 -0
  450. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js.map +1 -0
  451. package/dist/esm/utils/benchmark-dependencies/tokens.js +2 -0
  452. package/dist/esm/utils/benchmark-dependencies/tokens.js.map +1 -0
  453. package/dist/esm/utils/benchmark-wrapper.js +18 -0
  454. package/dist/esm/utils/benchmark-wrapper.js.map +1 -0
  455. package/dist/esm/utils/direction.js +15 -0
  456. package/dist/esm/utils/direction.js.map +1 -0
  457. package/dist/esm/utils/display.js +15 -0
  458. package/dist/esm/utils/display.js.map +1 -0
  459. package/dist/esm/utils/get-initials.js.map +1 -1
  460. package/dist/esm/utils/index.js +7 -0
  461. package/dist/esm/utils/index.js.map +1 -0
  462. package/dist/esm/utils/template-helpers.js +19 -0
  463. package/dist/esm/utils/template-helpers.js.map +1 -0
  464. package/dist/esm/utils/typings.js +3 -0
  465. package/dist/esm/utils/typings.js.map +1 -0
  466. package/dist/esm/utils/whitespace-filter.js +13 -0
  467. package/dist/esm/utils/whitespace-filter.js.map +1 -0
  468. package/dist/fluent-web-components.api.json +19072 -7994
  469. package/dist/web-components.d.ts +4130 -1264
  470. package/dist/web-components.js +3675 -3856
  471. package/dist/web-components.min.js +340 -190
  472. package/docs/api-report.md +1352 -527
  473. package/package.json +20 -11
  474. package/playwright.config.ts +2 -3
  475. package/project.json +6 -0
  476. package/tensile.config.js +22 -0
  477. package/dist/storybook/108.78b731e00015540915a8.manager.bundle.js +0 -1
  478. package/dist/storybook/108.b31ec3a1.iframe.bundle.js +0 -1
  479. package/dist/storybook/316.bc4aabd3.iframe.bundle.js +0 -2
  480. package/dist/storybook/316.bc4aabd3.iframe.bundle.js.LICENSE.txt +0 -17
  481. package/dist/storybook/401.7edec720.iframe.bundle.js +0 -2
  482. package/dist/storybook/401.7edec720.iframe.bundle.js.LICENSE.txt +0 -12
  483. package/dist/storybook/401.c9bdfaf0dda8b194127f.manager.bundle.js +0 -2
  484. package/dist/storybook/401.c9bdfaf0dda8b194127f.manager.bundle.js.LICENSE.txt +0 -12
  485. package/dist/storybook/491.77b24750.iframe.bundle.js +0 -1
  486. package/dist/storybook/591.f5bf0d78d2f203de19f5.manager.bundle.js +0 -2
  487. package/dist/storybook/591.f5bf0d78d2f203de19f5.manager.bundle.js.LICENSE.txt +0 -94
  488. package/dist/storybook/651.e36cf1e8.iframe.bundle.js +0 -462
  489. package/dist/storybook/651.e36cf1e8.iframe.bundle.js.LICENSE.txt +0 -46
  490. package/dist/storybook/651.e36cf1e8.iframe.bundle.js.map +0 -1
  491. package/dist/storybook/709.22096ad4.iframe.bundle.js +0 -2
  492. package/dist/storybook/709.22096ad4.iframe.bundle.js.LICENSE.txt +0 -8
  493. package/dist/storybook/709.b131e33993a6b94d7ad8.manager.bundle.js +0 -2
  494. package/dist/storybook/709.b131e33993a6b94d7ad8.manager.bundle.js.LICENSE.txt +0 -8
  495. package/dist/storybook/721.46fa9f53.iframe.bundle.js +0 -2
  496. package/dist/storybook/721.46fa9f53.iframe.bundle.js.LICENSE.txt +0 -31
  497. package/dist/storybook/721.c225c101a0a55a8f98eb.manager.bundle.js +0 -2
  498. package/dist/storybook/721.c225c101a0a55a8f98eb.manager.bundle.js.LICENSE.txt +0 -31
  499. package/dist/storybook/858.da40ed98.iframe.bundle.js +0 -1
  500. package/dist/storybook/858.e08e25a6901d2e21e9d8.manager.bundle.js +0 -1
  501. package/dist/storybook/950.674e7934b4a26a022608.manager.bundle.js +0 -1
  502. package/dist/storybook/954.630c5748.iframe.bundle.js +0 -1
  503. package/dist/storybook/954.7f985e2fdf9f15a7748b.manager.bundle.js +0 -1
  504. package/dist/storybook/SegoeUI-VF.ttf +0 -0
  505. package/dist/storybook/favicon.ico +0 -0
  506. package/dist/storybook/favicon.png +0 -0
  507. package/dist/storybook/iframe.html +0 -364
  508. package/dist/storybook/index.html +0 -165
  509. package/dist/storybook/main.5d7b916dc1e37293b1d8.manager.bundle.js +0 -1
  510. package/dist/storybook/main.696937e6.iframe.bundle.js +0 -1
  511. package/dist/storybook/project.json +0 -1
  512. package/dist/storybook/runtime~main.5d918fe7.iframe.bundle.js +0 -1
  513. package/dist/storybook/runtime~main.dbf00b470fe610082919.manager.bundle.js +0 -1
  514. package/dist/storybook/shell.css +0 -83
  515. package/dist/storybook/theme-switch.ts +0 -13
@@ -0,0 +1,194 @@
1
+ import { FASTElement } from '@microsoft/fast-element';
2
+ import { MenuList } from '../menu-list/menu-list.js';
3
+ /**
4
+ * The Menu class represents a menu component.
5
+ * @public
6
+ */
7
+ export declare class Menu extends FASTElement {
8
+ /**
9
+ * Determines if the menu should open on hover.
10
+ * @public
11
+ */
12
+ openOnHover?: boolean;
13
+ /**
14
+ * Determines if the menu should open on right click.
15
+ * @public
16
+ */
17
+ openOnContext?: boolean;
18
+ /**
19
+ * Determines if the menu should close on scroll.
20
+ * @public
21
+ */
22
+ closeOnScroll?: boolean;
23
+ /**
24
+ * Determines if the menu open state should persis on click of menu item
25
+ * @public
26
+ */
27
+ persistOnItemClick?: boolean;
28
+ /**
29
+ * Defines whether the menu is open or not.
30
+ * @public
31
+ */
32
+ open: boolean;
33
+ /**
34
+ * Holds the slotted menu list.
35
+ * @public
36
+ */
37
+ slottedMenuList: MenuList[];
38
+ /**
39
+ * Holds the slotted triggers.
40
+ * @public
41
+ */
42
+ slottedTriggers: HTMLElement[];
43
+ /**
44
+ * The positioning container of the menu.
45
+ * @internal
46
+ */
47
+ positioningContainer?: HTMLElement;
48
+ /**
49
+ * The trigger element of the menu.
50
+ * @private
51
+ */
52
+ private _trigger?;
53
+ /**
54
+ * The menu list element of the menu.
55
+ * @private
56
+ */
57
+ private _menuList?;
58
+ /**
59
+ * Holds a reference to a function that is used to cleanup resources.
60
+ * @public
61
+ */
62
+ cleanup?: () => void;
63
+ /**
64
+ * Called when the element is connected to the DOM.
65
+ * Sets up the component.
66
+ * @public
67
+ */
68
+ connectedCallback(): void;
69
+ /**
70
+ * Called when the element is disconnected from the DOM.
71
+ * Removes event listeners.
72
+ * @public
73
+ */
74
+ disconnectedCallback(): void;
75
+ /**
76
+ * Sets the component.
77
+ * Sets the trigger and menu list elements and adds event listeners.
78
+ * @public
79
+ */
80
+ setComponent(): void;
81
+ /**
82
+ * Toggles the open state of the menu.
83
+ * @public
84
+ */
85
+ toggleMenu: () => void;
86
+ /**
87
+ * Closes the menu.
88
+ * @public
89
+ */
90
+ closeMenu: () => void;
91
+ /**
92
+ * Opens the menu.
93
+ * @public
94
+ */
95
+ openMenu: (e?: Event) => void;
96
+ /**
97
+ * Focuses on the menu list.
98
+ * @public
99
+ */
100
+ focusMenuList(): void;
101
+ /**
102
+ * Focuses on the menu trigger.
103
+ * @public
104
+ */
105
+ focusTrigger(): void;
106
+ /**
107
+ * Called whenever the open state changes.
108
+ * Updates the 'aria-expanded' attribute and sets the positioning of the menu.
109
+ * Sets menu list position
110
+ * emits openChanged event
111
+ * @public
112
+ * @param {boolean} oldValue - The previous value of 'open'.
113
+ * @param {boolean} newValue - The new value of 'open'.
114
+ */
115
+ openChanged(oldValue: boolean, newValue: boolean): void;
116
+ /**
117
+ * Called whenever the 'openOnHover' property changes.
118
+ * Adds or removes a 'mouseover' event listener to the trigger based on the new value.
119
+ * @public
120
+ * @param {boolean} oldValue - The previous value of 'openOnHover'.
121
+ * @param {boolean} newValue - The new value of 'openOnHover'.
122
+ */
123
+ openOnHoverChanged(oldValue: boolean, newValue: boolean): void;
124
+ /**
125
+ * Called whenever the 'persistOnItemClick' property changes.
126
+ * Adds or removes a 'click' event listener to the menu list based on the new value.
127
+ * @public
128
+ * @param {boolean} oldValue - The previous value of 'persistOnItemClick'.
129
+ * @param {boolean} newValue - The new value of 'persistOnItemClick'.
130
+ */
131
+ persistOnItemClickChanged(oldValue: boolean, newValue: boolean): void;
132
+ /**
133
+ * Called whenever the 'openOnContext' property changes.
134
+ * Adds or removes a 'contextmenu' event listener to the trigger based on the new value.
135
+ * @public
136
+ * @param {boolean} oldValue - The previous value of 'openOnContext'.
137
+ * @param {boolean} newValue - The new value of 'openOnContext'.
138
+ */
139
+ openOnContextChanged(oldValue: boolean, newValue: boolean): void;
140
+ /**
141
+ * Called whenever the 'closeOnScroll' property changes.
142
+ * Adds or removes a 'closeOnScroll' event listener to the trigger based on the new value.
143
+ * @public
144
+ * @param {boolean} oldValue - The previous value of 'closeOnScroll'.
145
+ * @param {boolean} newValue - The new value of 'closeOnScroll'.
146
+ */
147
+ closeOnScrollChanged(oldValue: boolean, newValue: boolean): void;
148
+ /**
149
+ * The task to set the positioning of the menu.
150
+ * @protected
151
+ */
152
+ protected setPositioningTask: () => void;
153
+ /**
154
+ * Sets the positioning of the menu.
155
+ * @protected
156
+ */
157
+ protected setPositioning(): void;
158
+ /**
159
+ * Adds event listeners.
160
+ * Adds click and keydown event listeners to the trigger and a click event listener to the document.
161
+ * If 'openOnHover' is true, adds a 'mouseover' event listener to the trigger.
162
+ * @public
163
+ */
164
+ private addListeners;
165
+ /**
166
+ * Removes event listeners.
167
+ * Removes click and keydown event listeners from the trigger and a click event listener from the document.
168
+ * Also removes 'mouseover' event listeners from the trigger.
169
+ * @private
170
+ */
171
+ private removeListeners;
172
+ /**
173
+ * Handles keyboard interaction for the menu.
174
+ * Closes the menu and focuses on the trigger when the Escape key is pressed.
175
+ * Closes the menu when the Tab key is pressed.
176
+ * @public
177
+ * @param {KeyboardEvent} e - the keyboard event
178
+ */
179
+ handleMenuKeydown(e: KeyboardEvent): boolean | void;
180
+ /**
181
+ * Handles keyboard interaction for the trigger.
182
+ * Toggles the menu when the Space or Enter key is pressed.
183
+ * If the menu is open, focuses on the menu list.
184
+ * @public
185
+ * @param {KeyboardEvent} e - the keyboard event
186
+ */
187
+ handleTriggerKeydown: (e: KeyboardEvent) => boolean | void;
188
+ /**
189
+ * Handles document click events to close the menu when a click occurs outside of the menu or the trigger.
190
+ * @private
191
+ * @param {Event} e - The event triggered on document click.
192
+ */
193
+ private handleDocumentClick;
194
+ }
@@ -0,0 +1,9 @@
1
+ import { Menu } from './menu.js';
2
+ /**
3
+ * The Fluent Menu Element.
4
+ *
5
+ * @public
6
+ * @remarks
7
+ * HTML Element: <fluent-menu>
8
+ */
9
+ export declare const definition: import("@microsoft/fast-element").FASTElementDefinition<typeof Menu>;
@@ -0,0 +1,4 @@
1
+ /** Menu styles
2
+ * @public
3
+ */
4
+ export declare const styles: import("@microsoft/fast-element").ElementStyles;
@@ -0,0 +1,4 @@
1
+ import { ElementViewTemplate } from '@microsoft/fast-element';
2
+ import type { Menu } from './menu.js';
3
+ export declare function menuTemplate<T extends Menu>(): ElementViewTemplate<T>;
4
+ export declare const template: ElementViewTemplate<Menu>;
@@ -1,5 +1,5 @@
1
- export * from './menu-button.js';
2
- export * from './menu-button.options.js';
1
+ export { MenuButton } from './menu-button.js';
2
+ export { MenuButtonAppearance, MenuButtonShape, MenuButtonSize, MenuButtonOptions } from './menu-button.options.js';
3
3
  export { template as MenuButtonTemplate } from './menu-button.template.js';
4
4
  export { styles as MenuButtonStyles } from '../button/button.styles.js';
5
5
  export { definition as MenuButtonDefinition } from './menu-button.definition.js';
@@ -1,8 +1,5 @@
1
1
  import { MenuButton } from './menu-button.js';
2
2
  /**
3
- * The Fluent Menu Button Element. Implements {@link @microsoft/fast-foundation#Button },
4
- * {@link @microsoft/fast-foundation#buttonTemplate}
5
- *
6
3
  * @public
7
4
  * @remarks
8
5
  * HTML Element: \<fluent-button\>
@@ -1,5 +1,5 @@
1
- import type { ButtonOptions } from '@microsoft/fast-foundation/button.js';
2
- import type { ValuesOf } from '@microsoft/fast-foundation/utilities.js';
1
+ import type { ButtonOptions } from '../button/button.options.js';
2
+ import type { ValuesOf } from '../utils/index.js';
3
3
  /**
4
4
  * Menu Button Appearance constants
5
5
  * @public
@@ -1,4 +1,5 @@
1
- export * from './menu-item.js';
1
+ export { MenuItem, MenuItemColumnCount, MenuItemOptions } from './menu-item.js';
2
+ export { MenuItemRole, roleForMenuItem } from './menu-item.options.js';
2
3
  export { template as MenuItemTemplate } from './menu-item.template.js';
3
4
  export { styles as MenuItemStyles } from './menu-item.styles.js';
4
5
  export { definition as MenuItemDefinition } from './menu-item.definition.js';
@@ -1,9 +1,166 @@
1
- import { FASTMenuItem, MenuItemRole } from '@microsoft/fast-foundation/menu-item.js';
1
+ import { FASTElement } from '@microsoft/fast-element';
2
+ import type { StaticallyComposableHTML } from '../utils/template-helpers.js';
3
+ import type { StartEndOptions } from '../patterns/start-end.js';
4
+ import { StartEnd } from '../patterns/start-end.js';
5
+ import { MenuItemRole, roleForMenuItem } from './menu-item.options.js';
2
6
  export declare type MenuItemColumnCount = 0 | 1 | 2;
3
- export { MenuItemRole };
7
+ export { MenuItemRole, roleForMenuItem };
4
8
  /**
5
- * The base class used for constructing a fluent-menu-item custom element
9
+ * Menu Item configuration options
6
10
  * @public
7
11
  */
8
- export declare class MenuItem extends FASTMenuItem {
12
+ export declare type MenuItemOptions = StartEndOptions<MenuItem> & {
13
+ checkboxIndicator?: StaticallyComposableHTML<MenuItem>;
14
+ expandCollapseGlyph?: StaticallyComposableHTML<MenuItem>;
15
+ radioIndicator?: StaticallyComposableHTML<MenuItem>;
16
+ };
17
+ /**
18
+ * A Switch Custom HTML Element.
19
+ * 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 }.
20
+ *
21
+ * @slot checked-indicator - The checked indicator
22
+ * @slot radio-indicator - The radio indicator
23
+ * @slot start - Content which can be provided before the menu item content
24
+ * @slot end - Content which can be provided after the menu item content
25
+ * @slot - The default slot for menu item content
26
+ * @slot expand-collapse-indicator - The expand/collapse indicator
27
+ * @slot submenu - Used to nest menu's within menu items
28
+ * @csspart input-container - The element representing the visual checked or radio indicator
29
+ * @csspart checkbox - The element wrapping the `menuitemcheckbox` indicator
30
+ * @csspart radio - The element wrapping the `menuitemradio` indicator
31
+ * @csspart content - The element wrapping the menu item content
32
+ * @csspart expand-collapse-glyph-container - The element wrapping the expand collapse element
33
+ * @csspart expand-collapse - The expand/collapse element
34
+ * @csspart submenu-region - The container for the submenu, used for positioning
35
+ * @fires expanded-change - Fires a custom 'expanded-change' event when the expanded state changes
36
+ * @fires change - Fires a custom 'change' event when a non-submenu item with a role of `menuitemcheckbox`, `menuitemradio`, or `menuitem` is invoked
37
+ *
38
+ * @public
39
+ */
40
+ export declare class MenuItem extends FASTElement {
41
+ /**
42
+ * The disabled state of the element.
43
+ *
44
+ * @public
45
+ * @remarks
46
+ * HTML Attribute: disabled
47
+ */
48
+ disabled: boolean;
49
+ /**
50
+ * The expanded state of the element.
51
+ *
52
+ * @public
53
+ * @remarks
54
+ * HTML Attribute: expanded
55
+ */
56
+ expanded: boolean;
57
+ protected expandedChanged(prev: boolean | undefined, next: boolean): void;
58
+ /**
59
+ * The role of the element.
60
+ *
61
+ * @public
62
+ * @remarks
63
+ * HTML Attribute: role
64
+ */
65
+ role: MenuItemRole;
66
+ /**
67
+ * Cleanup function for the submenu positioner.
68
+ *
69
+ * @public
70
+ */
71
+ cleanup: () => void;
72
+ /**
73
+ * The checked value of the element.
74
+ *
75
+ * @public
76
+ * @remarks
77
+ * HTML Attribute: checked
78
+ */
79
+ checked: boolean;
80
+ protected checkedChanged(oldValue: boolean, newValue: boolean): void;
81
+ /**
82
+ * The hidden attribute.
83
+ *
84
+ * @public
85
+ * @remarks
86
+ * HTML Attribute: hidden
87
+ */
88
+ hidden: boolean;
89
+ /**
90
+ * The submenu slotted content.
91
+ *
92
+ * @internal
93
+ */
94
+ slottedSubmenu: HTMLElement[];
95
+ /**
96
+ * @internal
97
+ */
98
+ get hasSubmenu(): boolean;
99
+ /**
100
+ * Sets the submenu and updates its position.
101
+ *
102
+ * @internal
103
+ */
104
+ protected slottedSubmenuChanged(prev: HTMLElement[] | undefined, next: HTMLElement[]): void;
105
+ /**
106
+ * The container for the submenu.
107
+ *
108
+ * @internal
109
+ */
110
+ submenuContainer: HTMLDivElement;
111
+ /**
112
+ * @internal
113
+ */
114
+ submenu: HTMLElement | undefined;
115
+ private focusSubmenuOnLoad;
116
+ /**
117
+ * @internal
118
+ */
119
+ disconnectedCallback(): void;
120
+ /**
121
+ * @internal
122
+ */
123
+ handleMenuItemKeyDown: (e: KeyboardEvent) => boolean;
124
+ /**
125
+ * @internal
126
+ */
127
+ handleMenuItemClick: (e: MouseEvent) => boolean;
128
+ /**
129
+ * @internal
130
+ */
131
+ submenuLoaded: () => void;
132
+ /**
133
+ * @internal
134
+ */
135
+ handleMouseOver: (e: MouseEvent) => boolean;
136
+ /**
137
+ * @internal
138
+ */
139
+ handleMouseOut: (e: MouseEvent) => boolean;
140
+ /**
141
+ * @internal
142
+ */
143
+ private closeSubMenu;
144
+ /**
145
+ * @internal
146
+ */
147
+ private expandAndFocus;
148
+ /**
149
+ * @internal
150
+ */
151
+ private invoke;
152
+ /**
153
+ * Calculate and apply submenu positioning.
154
+ *
155
+ * @public
156
+ */
157
+ updateSubmenu(): void;
158
+ }
159
+ /**
160
+ * Mark internal because exporting class and interface of the same name
161
+ * confuses API documenter.
162
+ * TODO: https://github.com/microsoft/fast/issues/3317
163
+ * @internal
164
+ */
165
+ export interface MenuItem extends StartEnd {
9
166
  }
@@ -1,9 +1,5 @@
1
1
  import { MenuItem } from './menu-item.js';
2
2
  /**
3
- * The Fluent Menu Item Element. Implements {@link @microsoft/fast-foundation#MenuItem },
4
- * {@link @microsoft/fast-foundation#menuItemTemplate}
5
- *
6
- *
7
3
  * @public
8
4
  * @remarks
9
5
  * HTML Element: <fluent-menu-item>
@@ -0,0 +1,30 @@
1
+ import type { ValuesOf } from '../utils/index.js';
2
+ /**
3
+ * Menu items roles.
4
+ * @public
5
+ */
6
+ export declare const MenuItemRole: {
7
+ /**
8
+ * The menu item has a "menuitem" role
9
+ */
10
+ readonly menuitem: "menuitem";
11
+ /**
12
+ * The menu item has a "menuitemcheckbox" role
13
+ */
14
+ readonly menuitemcheckbox: "menuitemcheckbox";
15
+ /**
16
+ * The menu item has a "menuitemradio" role
17
+ */
18
+ readonly menuitemradio: "menuitemradio";
19
+ };
20
+ /**
21
+ * The types for menu item roles
22
+ * @public
23
+ */
24
+ export declare type MenuItemRole = ValuesOf<typeof MenuItemRole>;
25
+ /**
26
+ * @internal
27
+ */
28
+ export declare const roleForMenuItem: {
29
+ [value in keyof typeof MenuItemRole]: (typeof MenuItemRole)[value];
30
+ };
@@ -1,3 +1,4 @@
1
1
  import type { ElementViewTemplate } from '@microsoft/fast-element';
2
- import type { MenuItem } from './menu-item.js';
2
+ import type { MenuItem, MenuItemOptions } from './menu-item.js';
3
+ export declare function menuItemTemplate<T extends MenuItem>(options?: MenuItemOptions): ElementViewTemplate<T>;
3
4
  export declare const template: ElementViewTemplate<MenuItem>;
@@ -1,4 +1,4 @@
1
- export * from './menu-list.js';
1
+ export { MenuList } from './menu-list.js';
2
2
  export { template as MenuListTemplate } from './menu-list.template.js';
3
3
  export { styles as MenuListStyles } from './menu-list.styles.js';
4
4
  export { definition as MenuListDefinition } from './menu-list.definition.js';
@@ -1,9 +1,76 @@
1
- import { FASTMenu } from '@microsoft/fast-foundation/menu.js';
1
+ import { FASTElement } from '@microsoft/fast-element';
2
2
  /**
3
- * The base class used for constructing a fluent-menu-list custom element
3
+ * A Menu Custom HTML Element.
4
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#menu | ARIA menu }.
5
+ *
6
+ * @slot - The default slot for the menu items
7
+ *
4
8
  * @public
5
9
  */
6
- export declare class MenuList extends FASTMenu {
7
- protected setItems(): void;
10
+ export declare class MenuList extends FASTElement {
11
+ /**
12
+ * @internal
13
+ */
14
+ items: HTMLElement[];
15
+ protected itemsChanged(oldValue: HTMLElement[], newValue: HTMLElement[]): void;
16
+ protected menuItems: Element[] | undefined;
17
+ private expandedItem;
18
+ /**
19
+ * The index of the focusable element in the items array
20
+ * defaults to -1
21
+ */
22
+ private focusIndex;
23
+ private static focusableElementRoles;
24
+ /**
25
+ * @internal
26
+ */
27
+ connectedCallback(): void;
28
+ /**
29
+ * @internal
30
+ */
31
+ disconnectedCallback(): void;
32
+ /**
33
+ * @internal
34
+ */
35
+ readonly isNestedMenu: () => boolean;
36
+ /**
37
+ * Focuses the first item in the menu.
38
+ *
39
+ * @public
40
+ */
41
+ focus(): void;
42
+ /**
43
+ * Collapses any expanded menu items.
44
+ *
45
+ * @public
46
+ */
47
+ collapseExpandedItem(): void;
48
+ /**
49
+ * @internal
50
+ */
51
+ handleMenuKeyDown(e: KeyboardEvent): void | boolean;
52
+ /**
53
+ * if focus is moving out of the menu, reset to a stable initial state
54
+ * @internal
55
+ */
56
+ handleFocusOut: (e: FocusEvent) => void;
57
+ private handleItemFocus;
58
+ private handleExpandedChanged;
59
+ private removeItemListeners;
8
60
  private static elementIndent;
61
+ protected setItems(): void;
62
+ handleChange(source: any, propertyName: string): void;
63
+ /**
64
+ * handle change from child element
65
+ */
66
+ private changeHandler;
67
+ /**
68
+ * check if the item is a menu item
69
+ */
70
+ protected isMenuItemElement: (el: Element) => el is HTMLElement;
71
+ /**
72
+ * check if the item is focusable
73
+ */
74
+ private isFocusableElement;
75
+ private setFocus;
9
76
  }
@@ -1,9 +1,5 @@
1
1
  import { MenuList } from './menu-list.js';
2
2
  /**
3
- * The Fluent MenuList Element. Implements {@link @microsoft/fast-foundation#Menu },
4
- * {@link @microsoft/fast-foundation#menuTemplate}
5
- *
6
- *
7
3
  * @public
8
4
  * @remarks
9
5
  * HTML Element: <fluent-menu-list>
@@ -1,3 +1,4 @@
1
1
  import { ElementViewTemplate } from '@microsoft/fast-element';
2
2
  import type { MenuList } from './menu-list.js';
3
+ export declare function menuTemplate<T extends MenuList>(): ElementViewTemplate<T>;
3
4
  export declare const template: ElementViewTemplate<MenuList>;