@fluentui/web-components 3.0.0-beta.8 → 3.0.0-beta.80

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 (896) hide show
  1. package/CHANGELOG.md +858 -103
  2. package/README.md +49 -16
  3. package/dist/dts/accordion/accordion.bench.d.ts +3 -0
  4. package/dist/dts/accordion/accordion.d.ts +35 -12
  5. package/dist/dts/accordion/accordion.options.d.ts +3 -3
  6. package/dist/dts/accordion/accordion.template.d.ts +1 -1
  7. package/dist/dts/accordion/index.d.ts +2 -1
  8. package/dist/dts/accordion-item/accordion-item.bench.d.ts +3 -0
  9. package/dist/dts/accordion-item/accordion-item.d.ts +59 -26
  10. package/dist/dts/accordion-item/accordion-item.options.d.ts +3 -3
  11. package/dist/dts/accordion-item/accordion-item.template.d.ts +2 -2
  12. package/dist/dts/accordion-item/index.d.ts +3 -2
  13. package/dist/dts/anchor-button/anchor-button.bench.d.ts +3 -0
  14. package/dist/dts/anchor-button/anchor-button.d.ts +127 -80
  15. package/dist/dts/anchor-button/anchor-button.options.d.ts +26 -6
  16. package/dist/dts/anchor-button/anchor-button.template.d.ts +1 -1
  17. package/dist/dts/anchor-button/index.d.ts +4 -3
  18. package/dist/dts/avatar/avatar.bench.d.ts +3 -0
  19. package/dist/dts/avatar/avatar.d.ts +53 -25
  20. package/dist/dts/avatar/avatar.options.d.ts +6 -6
  21. package/dist/dts/avatar/avatar.template.d.ts +1 -1
  22. package/dist/dts/avatar/index.d.ts +2 -2
  23. package/dist/dts/badge/badge.bench.d.ts +3 -0
  24. package/dist/dts/badge/badge.d.ts +30 -0
  25. package/dist/dts/badge/badge.options.d.ts +6 -6
  26. package/dist/dts/badge/badge.template.d.ts +1 -1
  27. package/dist/dts/badge/index.d.ts +2 -2
  28. package/dist/dts/button/button.bench.d.ts +3 -0
  29. package/dist/dts/button/button.d.ts +206 -84
  30. package/dist/dts/button/button.definition.d.ts +3 -1
  31. package/dist/dts/button/button.options.d.ts +22 -8
  32. package/dist/dts/button/button.styles.d.ts +9 -0
  33. package/dist/dts/button/button.template.d.ts +9 -3
  34. package/dist/dts/button/index.d.ts +5 -4
  35. package/dist/dts/checkbox/checkbox.bench.d.ts +3 -0
  36. package/dist/dts/checkbox/checkbox.d.ts +324 -39
  37. package/dist/dts/checkbox/checkbox.options.d.ts +15 -12
  38. package/dist/dts/checkbox/checkbox.template.d.ts +3 -2
  39. package/dist/dts/checkbox/index.d.ts +4 -3
  40. package/dist/dts/compound-button/compound-button.bench.d.ts +3 -0
  41. package/dist/dts/compound-button/compound-button.options.d.ts +4 -9
  42. package/dist/dts/compound-button/compound-button.template.d.ts +1 -1
  43. package/dist/dts/compound-button/index.d.ts +2 -2
  44. package/dist/dts/counter-badge/counter-badge.bench.d.ts +3 -0
  45. package/dist/dts/counter-badge/counter-badge.d.ts +36 -0
  46. package/dist/dts/counter-badge/counter-badge.options.d.ts +6 -6
  47. package/dist/dts/counter-badge/counter-badge.template.d.ts +2 -2
  48. package/dist/dts/counter-badge/index.d.ts +2 -2
  49. package/dist/dts/dialog/dialog.bench.d.ts +3 -0
  50. package/dist/dts/dialog/dialog.d.ts +12 -146
  51. package/dist/dts/dialog/dialog.options.d.ts +2 -2
  52. package/dist/dts/dialog/dialog.template.d.ts +1 -1
  53. package/dist/dts/dialog/index.d.ts +2 -1
  54. package/dist/dts/dialog-body/define.d.ts +1 -0
  55. package/dist/dts/dialog-body/dialog-body.bench.d.ts +3 -0
  56. package/dist/dts/dialog-body/dialog-body.d.ts +14 -0
  57. package/dist/dts/dialog-body/dialog-body.definition.d.ts +9 -0
  58. package/dist/dts/dialog-body/dialog-body.styles.d.ts +4 -0
  59. package/dist/dts/dialog-body/dialog-body.template.d.ts +6 -0
  60. package/dist/dts/dialog-body/index.d.ts +4 -0
  61. package/dist/dts/divider/divider.bench.d.ts +3 -0
  62. package/dist/dts/divider/divider.d.ts +57 -11
  63. package/dist/dts/divider/divider.options.d.ts +4 -5
  64. package/dist/dts/divider/divider.template.d.ts +1 -1
  65. package/dist/dts/divider/index.d.ts +2 -2
  66. package/dist/dts/drawer/define.d.ts +1 -0
  67. package/dist/dts/drawer/drawer.d.ts +93 -0
  68. package/dist/dts/drawer/drawer.definition.d.ts +8 -0
  69. package/dist/dts/drawer/drawer.options.d.ts +40 -0
  70. package/dist/dts/drawer/drawer.styles.d.ts +4 -0
  71. package/dist/dts/drawer/drawer.template.d.ts +8 -0
  72. package/dist/dts/drawer/index.d.ts +5 -0
  73. package/dist/dts/drawer-body/define.d.ts +1 -0
  74. package/dist/dts/drawer-body/drawer-body.d.ts +20 -0
  75. package/dist/dts/drawer-body/drawer-body.definition.d.ts +8 -0
  76. package/dist/dts/drawer-body/drawer-body.styles.d.ts +4 -0
  77. package/dist/dts/drawer-body/drawer-body.template.d.ts +8 -0
  78. package/dist/dts/drawer-body/index.d.ts +4 -0
  79. package/dist/dts/dropdown/define.d.ts +1 -0
  80. package/dist/dts/dropdown/dropdown.d.ts +492 -0
  81. package/dist/dts/dropdown/dropdown.definition.d.ts +9 -0
  82. package/dist/dts/dropdown/dropdown.options.d.ts +53 -0
  83. package/dist/dts/dropdown/dropdown.styles.d.ts +6 -0
  84. package/dist/dts/dropdown/dropdown.template.d.ts +38 -0
  85. package/dist/dts/dropdown/index.d.ts +5 -0
  86. package/dist/dts/field/define.d.ts +1 -0
  87. package/dist/dts/field/field.bench.d.ts +3 -0
  88. package/dist/dts/field/field.d.ts +136 -0
  89. package/dist/dts/field/field.definition.d.ts +9 -0
  90. package/dist/dts/field/field.options.d.ts +43 -0
  91. package/dist/dts/field/field.styles.d.ts +6 -0
  92. package/dist/dts/field/field.template.d.ts +6 -0
  93. package/dist/dts/field/index.d.ts +6 -0
  94. package/dist/dts/form-associated/form-associated.d.ts +4 -78
  95. package/dist/dts/image/image.bench.d.ts +3 -0
  96. package/dist/dts/image/image.d.ts +36 -0
  97. package/dist/dts/image/image.options.d.ts +2 -3
  98. package/dist/dts/image/image.template.d.ts +1 -1
  99. package/dist/dts/image/index.d.ts +2 -2
  100. package/dist/dts/index-rollup.d.ts +42 -1
  101. package/dist/dts/index.d.ts +65 -31
  102. package/dist/dts/label/index.d.ts +2 -1
  103. package/dist/dts/label/label.bench.d.ts +3 -0
  104. package/dist/dts/label/label.d.ts +24 -2
  105. package/dist/dts/label/label.options.d.ts +2 -2
  106. package/dist/dts/label/label.template.d.ts +2 -2
  107. package/dist/dts/link/define.d.ts +1 -0
  108. package/dist/dts/link/index.d.ts +5 -0
  109. package/dist/dts/link/link.bench.d.ts +3 -0
  110. package/dist/dts/link/link.d.ts +45 -0
  111. package/dist/dts/link/link.definition.d.ts +7 -0
  112. package/dist/dts/link/link.options.d.ts +52 -0
  113. package/dist/dts/link/link.styles.d.ts +1 -0
  114. package/dist/dts/link/link.template.d.ts +12 -0
  115. package/dist/dts/listbox/define.d.ts +1 -0
  116. package/dist/dts/listbox/index.d.ts +5 -0
  117. package/dist/dts/listbox/listbox.d.ts +116 -0
  118. package/dist/dts/listbox/listbox.definition.d.ts +9 -0
  119. package/dist/dts/listbox/listbox.options.d.ts +10 -0
  120. package/dist/dts/listbox/listbox.styles.d.ts +6 -0
  121. package/dist/dts/listbox/listbox.template.d.ts +17 -0
  122. package/dist/dts/menu/index.d.ts +1 -1
  123. package/dist/dts/menu/menu.bench.d.ts +3 -0
  124. package/dist/dts/menu/menu.d.ts +87 -58
  125. package/dist/dts/menu/menu.template.d.ts +1 -1
  126. package/dist/dts/menu-button/index.d.ts +4 -3
  127. package/dist/dts/menu-button/menu-button.bench.d.ts +3 -0
  128. package/dist/dts/menu-button/menu-button.options.d.ts +5 -6
  129. package/dist/dts/menu-button/menu-button.template.d.ts +1 -1
  130. package/dist/dts/menu-item/index.d.ts +5 -3
  131. package/dist/dts/menu-item/menu-item.bench.d.ts +3 -0
  132. package/dist/dts/menu-item/menu-item.d.ts +34 -57
  133. package/dist/dts/menu-item/menu-item.options.d.ts +2 -2
  134. package/dist/dts/menu-list/index.d.ts +1 -1
  135. package/dist/dts/menu-list/menu-list.bench.d.ts +3 -0
  136. package/dist/dts/menu-list/menu-list.d.ts +12 -10
  137. package/dist/dts/menu-list/menu-list.template.d.ts +1 -1
  138. package/dist/dts/message-bar/define.d.ts +1 -0
  139. package/dist/dts/message-bar/index.d.ts +5 -0
  140. package/dist/dts/message-bar/message-bar.bench.d.ts +3 -0
  141. package/dist/dts/message-bar/message-bar.d.ts +66 -0
  142. package/dist/dts/message-bar/message-bar.definition.d.ts +9 -0
  143. package/dist/dts/message-bar/message-bar.options.d.ts +30 -0
  144. package/dist/dts/message-bar/message-bar.styles.d.ts +7 -0
  145. package/dist/dts/message-bar/message-bar.template.d.ts +14 -0
  146. package/dist/dts/option/define.d.ts +1 -0
  147. package/dist/dts/option/index.d.ts +5 -0
  148. package/dist/dts/option/option.d.ts +260 -0
  149. package/dist/dts/option/option.definition.d.ts +9 -0
  150. package/dist/dts/option/option.options.d.ts +20 -0
  151. package/dist/dts/option/option.styles.d.ts +6 -0
  152. package/dist/dts/option/option.template.d.ts +16 -0
  153. package/dist/dts/patterns/start-end.d.ts +20 -6
  154. package/dist/dts/progress-bar/index.d.ts +2 -2
  155. package/dist/dts/progress-bar/progress-bar.bench.d.ts +3 -0
  156. package/dist/dts/progress-bar/progress-bar.d.ts +85 -16
  157. package/dist/dts/progress-bar/progress-bar.options.d.ts +4 -13
  158. package/dist/dts/progress-bar/progress-bar.template.d.ts +1 -2
  159. package/dist/dts/radio/index.d.ts +2 -1
  160. package/dist/dts/radio/radio.bench.d.ts +3 -0
  161. package/dist/dts/radio/radio.d.ts +38 -35
  162. package/dist/dts/radio/radio.options.d.ts +14 -0
  163. package/dist/dts/radio/radio.styles.d.ts +3 -1
  164. package/dist/dts/radio/radio.template.d.ts +14 -2
  165. package/dist/dts/radio-group/index.d.ts +2 -1
  166. package/dist/dts/radio-group/radio-group.bench.d.ts +3 -0
  167. package/dist/dts/radio-group/radio-group.d.ts +211 -49
  168. package/dist/dts/radio-group/radio-group.options.d.ts +1 -1
  169. package/dist/dts/radio-group/radio-group.template.d.ts +1 -1
  170. package/dist/dts/rating-display/define.d.ts +1 -0
  171. package/dist/dts/rating-display/index.d.ts +5 -0
  172. package/dist/dts/rating-display/rating-display.d.ts +150 -0
  173. package/dist/dts/rating-display/rating-display.definition.d.ts +9 -0
  174. package/dist/dts/rating-display/rating-display.options.d.ts +29 -0
  175. package/dist/dts/rating-display/rating-display.styles.d.ts +6 -0
  176. package/dist/dts/rating-display/rating-display.template.d.ts +14 -0
  177. package/dist/dts/slider/index.d.ts +3 -2
  178. package/dist/dts/slider/slider.bench.d.ts +3 -0
  179. package/dist/dts/slider/slider.d.ts +182 -38
  180. package/dist/dts/slider/slider.options.d.ts +6 -6
  181. package/dist/dts/slider/slider.template.d.ts +2 -2
  182. package/dist/dts/spinner/index.d.ts +2 -2
  183. package/dist/dts/spinner/spinner.bench.d.ts +3 -0
  184. package/dist/dts/spinner/spinner.d.ts +30 -5
  185. package/dist/dts/spinner/spinner.options.d.ts +2 -2
  186. package/dist/dts/spinner/spinner.template.d.ts +2 -5
  187. package/dist/dts/styles/partials/index.d.ts +1 -0
  188. package/dist/dts/styles/partials/typography.partials.d.ts +18 -0
  189. package/dist/dts/styles/states/index.d.ts +634 -0
  190. package/dist/dts/switch/index.d.ts +3 -2
  191. package/dist/dts/switch/switch.bench.d.ts +3 -0
  192. package/dist/dts/switch/switch.d.ts +3 -40
  193. package/dist/dts/switch/switch.options.d.ts +1 -1
  194. package/dist/dts/switch/switch.template.d.ts +2 -2
  195. package/dist/dts/tab/index.d.ts +4 -3
  196. package/dist/dts/tab/tab.bench.d.ts +3 -0
  197. package/dist/dts/tab/tab.d.ts +3 -2
  198. package/dist/dts/tab/tab.template.d.ts +2 -2
  199. package/dist/dts/tab-panel/index.d.ts +1 -1
  200. package/dist/dts/tab-panel/tab-panel.bench.d.ts +3 -0
  201. package/dist/dts/tab-panel/tab-panel.template.d.ts +2 -2
  202. package/dist/dts/tablist/define.d.ts +1 -0
  203. package/dist/dts/tablist/index.d.ts +5 -0
  204. package/dist/dts/tablist/tablist.bench.d.ts +3 -0
  205. package/dist/dts/tablist/tablist.d.ts +191 -0
  206. package/dist/dts/tablist/tablist.definition.d.ts +7 -0
  207. package/dist/dts/tablist/tablist.options.d.ts +44 -0
  208. package/dist/dts/tablist/tablist.styles.d.ts +4 -0
  209. package/dist/dts/tablist/tablist.template.d.ts +5 -0
  210. package/dist/dts/tabs/index.d.ts +5 -4
  211. package/dist/dts/tabs/tabs.bench.d.ts +3 -0
  212. package/dist/dts/tabs/tabs.d.ts +14 -10
  213. package/dist/dts/tabs/tabs.options.d.ts +6 -6
  214. package/dist/dts/tabs/tabs.template.d.ts +3 -3
  215. package/dist/dts/text/index.d.ts +2 -2
  216. package/dist/dts/text/text.bench.d.ts +3 -0
  217. package/dist/dts/text/text.d.ts +41 -2
  218. package/dist/dts/text/text.options.d.ts +4 -4
  219. package/dist/dts/text/text.template.d.ts +1 -1
  220. package/dist/dts/text-input/index.d.ts +5 -4
  221. package/dist/dts/text-input/text-input.bench.d.ts +3 -0
  222. package/dist/dts/text-input/text-input.d.ts +350 -65
  223. package/dist/dts/text-input/text-input.definition.d.ts +2 -3
  224. package/dist/dts/text-input/text-input.options.d.ts +22 -32
  225. package/dist/dts/text-input/text-input.styles.d.ts +5 -2
  226. package/dist/dts/text-input/text-input.template.d.ts +9 -3
  227. package/dist/dts/textarea/define.d.ts +1 -0
  228. package/dist/dts/textarea/index.d.ts +5 -0
  229. package/dist/dts/textarea/textarea.bench.d.ts +3 -0
  230. package/dist/dts/textarea/textarea.d.ts +390 -0
  231. package/dist/dts/textarea/textarea.definition.d.ts +9 -0
  232. package/dist/dts/textarea/textarea.options.d.ts +49 -0
  233. package/dist/dts/textarea/textarea.styles.d.ts +7 -0
  234. package/dist/dts/textarea/textarea.template.d.ts +12 -0
  235. package/dist/dts/theme/design-tokens.d.ts +2220 -384
  236. package/dist/dts/theme/index.d.ts +1 -1
  237. package/dist/dts/theme/set-theme.d.ts +27 -5
  238. package/dist/dts/theme/set-theme.global.bench.d.ts +3 -0
  239. package/dist/dts/theme/set-theme.local.bench.d.ts +3 -0
  240. package/dist/dts/theme/set-theme.shadow.bench.d.ts +3 -0
  241. package/dist/dts/toggle-button/index.d.ts +5 -4
  242. package/dist/dts/toggle-button/toggle-button.bench.d.ts +3 -0
  243. package/dist/dts/toggle-button/toggle-button.d.ts +29 -26
  244. package/dist/dts/toggle-button/toggle-button.options.d.ts +4 -5
  245. package/dist/dts/toggle-button/toggle-button.styles.d.ts +7 -0
  246. package/dist/dts/toggle-button/toggle-button.template.d.ts +1 -1
  247. package/dist/dts/tooltip/define.d.ts +1 -0
  248. package/dist/dts/tooltip/index.d.ts +5 -0
  249. package/dist/dts/tooltip/tooltip.d.ts +95 -0
  250. package/dist/dts/tooltip/tooltip.definition.d.ts +9 -0
  251. package/dist/dts/tooltip/tooltip.options.d.ts +24 -0
  252. package/dist/dts/tooltip/tooltip.styles.d.ts +5 -0
  253. package/dist/dts/tooltip/tooltip.template.d.ts +6 -0
  254. package/dist/dts/tsdoc-metadata.json +11 -0
  255. package/dist/dts/utils/behaviors/match-media-stylesheet-behavior.d.ts +124 -0
  256. package/dist/dts/utils/benchmark-dependencies/tokens.d.ts +1 -0
  257. package/dist/dts/utils/benchmark-wrapper.d.ts +2 -0
  258. package/dist/dts/utils/converters.d.ts +17 -0
  259. package/dist/dts/utils/display.d.ts +17 -0
  260. package/dist/dts/utils/element-internals.d.ts +54 -0
  261. package/dist/dts/utils/focusable-element.d.ts +3 -0
  262. package/dist/dts/utils/index.d.ts +4 -0
  263. package/dist/dts/utils/language.d.ts +9 -0
  264. package/dist/dts/utils/root-active-element.d.ts +1 -0
  265. package/dist/dts/utils/support.d.ts +15 -0
  266. package/dist/dts/utils/template-helpers.d.ts +2 -3
  267. package/dist/dts/utils/typings.d.ts +1 -1
  268. package/dist/dts/utils/unique-id.d.ts +9 -0
  269. package/dist/esm/accordion/accordion.bench.js +30 -0
  270. package/dist/esm/accordion/accordion.bench.js.map +1 -0
  271. package/dist/esm/accordion/accordion.js +52 -97
  272. package/dist/esm/accordion/accordion.js.map +1 -1
  273. package/dist/esm/accordion/accordion.options.js +1 -1
  274. package/dist/esm/accordion/accordion.styles.js +1 -1
  275. package/dist/esm/accordion/accordion.styles.js.map +1 -1
  276. package/dist/esm/accordion/accordion.template.js.map +1 -1
  277. package/dist/esm/accordion/index.js +2 -1
  278. package/dist/esm/accordion/index.js.map +1 -1
  279. package/dist/esm/accordion-item/accordion-item.bench.js +14 -0
  280. package/dist/esm/accordion-item/accordion-item.bench.js.map +1 -0
  281. package/dist/esm/accordion-item/accordion-item.js +80 -40
  282. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  283. package/dist/esm/accordion-item/accordion-item.options.js +1 -1
  284. package/dist/esm/accordion-item/accordion-item.options.js.map +1 -1
  285. package/dist/esm/accordion-item/accordion-item.styles.js +63 -85
  286. package/dist/esm/accordion-item/accordion-item.styles.js.map +1 -1
  287. package/dist/esm/accordion-item/accordion-item.template.js +24 -43
  288. package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
  289. package/dist/esm/accordion-item/index.js +2 -2
  290. package/dist/esm/accordion-item/index.js.map +1 -1
  291. package/dist/esm/anchor-button/anchor-button.bench.js +11 -0
  292. package/dist/esm/anchor-button/anchor-button.bench.js.map +1 -0
  293. package/dist/esm/anchor-button/anchor-button.definition.js +0 -3
  294. package/dist/esm/anchor-button/anchor-button.definition.js.map +1 -1
  295. package/dist/esm/anchor-button/anchor-button.js +153 -85
  296. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  297. package/dist/esm/anchor-button/anchor-button.options.js +15 -0
  298. package/dist/esm/anchor-button/anchor-button.options.js.map +1 -1
  299. package/dist/esm/anchor-button/anchor-button.styles.js +12 -5
  300. package/dist/esm/anchor-button/anchor-button.styles.js.map +1 -1
  301. package/dist/esm/anchor-button/anchor-button.template.js +7 -35
  302. package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
  303. package/dist/esm/anchor-button/index.js +3 -3
  304. package/dist/esm/anchor-button/index.js.map +1 -1
  305. package/dist/esm/avatar/avatar.bench.js +10 -0
  306. package/dist/esm/avatar/avatar.bench.js.map +1 -0
  307. package/dist/esm/avatar/avatar.js +72 -46
  308. package/dist/esm/avatar/avatar.js.map +1 -1
  309. package/dist/esm/avatar/avatar.styles.js +133 -132
  310. package/dist/esm/avatar/avatar.styles.js.map +1 -1
  311. package/dist/esm/avatar/avatar.template.js +2 -4
  312. package/dist/esm/avatar/avatar.template.js.map +1 -1
  313. package/dist/esm/avatar/index.js +2 -2
  314. package/dist/esm/avatar/index.js.map +1 -1
  315. package/dist/esm/badge/badge.bench.js +11 -0
  316. package/dist/esm/badge/badge.bench.js.map +1 -0
  317. package/dist/esm/badge/badge.js +41 -8
  318. package/dist/esm/badge/badge.js.map +1 -1
  319. package/dist/esm/badge/badge.styles.js +17 -9
  320. package/dist/esm/badge/badge.styles.js.map +1 -1
  321. package/dist/esm/badge/badge.template.js.map +1 -1
  322. package/dist/esm/badge/index.js +2 -2
  323. package/dist/esm/badge/index.js.map +1 -1
  324. package/dist/esm/button/button.bench.js +11 -0
  325. package/dist/esm/button/button.bench.js.map +1 -0
  326. package/dist/esm/button/button.definition.js +3 -4
  327. package/dist/esm/button/button.definition.js.map +1 -1
  328. package/dist/esm/button/button.js +283 -130
  329. package/dist/esm/button/button.js.map +1 -1
  330. package/dist/esm/button/button.options.js +10 -1
  331. package/dist/esm/button/button.options.js.map +1 -1
  332. package/dist/esm/button/button.styles.js +154 -136
  333. package/dist/esm/button/button.styles.js.map +1 -1
  334. package/dist/esm/button/button.template.js +13 -39
  335. package/dist/esm/button/button.template.js.map +1 -1
  336. package/dist/esm/button/index.js +4 -4
  337. package/dist/esm/button/index.js.map +1 -1
  338. package/dist/esm/checkbox/checkbox.bench.js +11 -0
  339. package/dist/esm/checkbox/checkbox.bench.js.map +1 -0
  340. package/dist/esm/checkbox/checkbox.definition.js +1 -1
  341. package/dist/esm/checkbox/checkbox.definition.js.map +1 -1
  342. package/dist/esm/checkbox/checkbox.js +417 -52
  343. package/dist/esm/checkbox/checkbox.js.map +1 -1
  344. package/dist/esm/checkbox/checkbox.options.js +0 -8
  345. package/dist/esm/checkbox/checkbox.options.js.map +1 -1
  346. package/dist/esm/checkbox/checkbox.styles.js +141 -128
  347. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  348. package/dist/esm/checkbox/checkbox.template.js +23 -34
  349. package/dist/esm/checkbox/checkbox.template.js.map +1 -1
  350. package/dist/esm/checkbox/index.js +3 -3
  351. package/dist/esm/checkbox/index.js.map +1 -1
  352. package/dist/esm/compound-button/compound-button.bench.js +15 -0
  353. package/dist/esm/compound-button/compound-button.bench.js.map +1 -0
  354. package/dist/esm/compound-button/compound-button.definition.js +0 -3
  355. package/dist/esm/compound-button/compound-button.definition.js.map +1 -1
  356. package/dist/esm/compound-button/compound-button.styles.js +34 -35
  357. package/dist/esm/compound-button/compound-button.styles.js.map +1 -1
  358. package/dist/esm/compound-button/compound-button.template.js +3 -39
  359. package/dist/esm/compound-button/compound-button.template.js.map +1 -1
  360. package/dist/esm/compound-button/index.js +2 -2
  361. package/dist/esm/compound-button/index.js.map +1 -1
  362. package/dist/esm/counter-badge/counter-badge.bench.js +11 -0
  363. package/dist/esm/counter-badge/counter-badge.bench.js.map +1 -0
  364. package/dist/esm/counter-badge/counter-badge.js +50 -9
  365. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  366. package/dist/esm/counter-badge/counter-badge.styles.js +9 -8
  367. package/dist/esm/counter-badge/counter-badge.styles.js.map +1 -1
  368. package/dist/esm/counter-badge/counter-badge.template.js.map +1 -1
  369. package/dist/esm/counter-badge/index.js +2 -2
  370. package/dist/esm/counter-badge/index.js.map +1 -1
  371. package/dist/esm/dialog/dialog.bench.js +11 -0
  372. package/dist/esm/dialog/dialog.bench.js.map +1 -0
  373. package/dist/esm/dialog/dialog.js +33 -312
  374. package/dist/esm/dialog/dialog.js.map +1 -1
  375. package/dist/esm/dialog/dialog.options.js +1 -1
  376. package/dist/esm/dialog/dialog.options.js.map +1 -1
  377. package/dist/esm/dialog/dialog.styles.js +69 -85
  378. package/dist/esm/dialog/dialog.styles.js.map +1 -1
  379. package/dist/esm/dialog/dialog.template.js +17 -54
  380. package/dist/esm/dialog/dialog.template.js.map +1 -1
  381. package/dist/esm/dialog/index.js +2 -1
  382. package/dist/esm/dialog/index.js.map +1 -1
  383. package/dist/esm/dialog-body/define.js +4 -0
  384. package/dist/esm/dialog-body/define.js.map +1 -0
  385. package/dist/esm/dialog-body/dialog-body.bench.js +11 -0
  386. package/dist/esm/dialog-body/dialog-body.bench.js.map +1 -0
  387. package/dist/esm/dialog-body/dialog-body.definition.js +17 -0
  388. package/dist/esm/dialog-body/dialog-body.definition.js.map +1 -0
  389. package/dist/esm/dialog-body/dialog-body.js +22 -0
  390. package/dist/esm/dialog-body/dialog-body.js.map +1 -0
  391. package/dist/esm/dialog-body/dialog-body.styles.js +79 -0
  392. package/dist/esm/dialog-body/dialog-body.styles.js.map +1 -0
  393. package/dist/esm/dialog-body/dialog-body.template.js +42 -0
  394. package/dist/esm/dialog-body/dialog-body.template.js.map +1 -0
  395. package/dist/esm/dialog-body/index.js +5 -0
  396. package/dist/esm/dialog-body/index.js.map +1 -0
  397. package/dist/esm/divider/divider.bench.js +10 -0
  398. package/dist/esm/divider/divider.bench.js.map +1 -0
  399. package/dist/esm/divider/divider.js +77 -26
  400. package/dist/esm/divider/divider.js.map +1 -1
  401. package/dist/esm/divider/divider.options.js +0 -1
  402. package/dist/esm/divider/divider.options.js.map +1 -1
  403. package/dist/esm/divider/divider.styles.js +45 -44
  404. package/dist/esm/divider/divider.styles.js.map +1 -1
  405. package/dist/esm/divider/divider.template.js +1 -9
  406. package/dist/esm/divider/divider.template.js.map +1 -1
  407. package/dist/esm/divider/index.js +2 -2
  408. package/dist/esm/divider/index.js.map +1 -1
  409. package/dist/esm/drawer/define.js +4 -0
  410. package/dist/esm/drawer/define.js.map +1 -0
  411. package/dist/esm/drawer/drawer.definition.js +16 -0
  412. package/dist/esm/drawer/drawer.definition.js.map +1 -0
  413. package/dist/esm/drawer/drawer.js +132 -0
  414. package/dist/esm/drawer/drawer.js.map +1 -0
  415. package/dist/esm/drawer/drawer.options.js +25 -0
  416. package/dist/esm/drawer/drawer.options.js.map +1 -0
  417. package/dist/esm/drawer/drawer.styles.js +138 -0
  418. package/dist/esm/drawer/drawer.styles.js.map +1 -0
  419. package/dist/esm/drawer/drawer.template.js +28 -0
  420. package/dist/esm/drawer/drawer.template.js.map +1 -0
  421. package/dist/esm/drawer/index.js +6 -0
  422. package/dist/esm/drawer/index.js.map +1 -0
  423. package/dist/esm/drawer-body/define.js +4 -0
  424. package/dist/esm/drawer-body/define.js.map +1 -0
  425. package/dist/esm/drawer-body/drawer-body.definition.js +16 -0
  426. package/dist/esm/drawer-body/drawer-body.definition.js.map +1 -0
  427. package/dist/esm/drawer-body/drawer-body.js +21 -0
  428. package/dist/esm/drawer-body/drawer-body.js.map +1 -0
  429. package/dist/esm/drawer-body/drawer-body.styles.js +31 -0
  430. package/dist/esm/drawer-body/drawer-body.styles.js.map +1 -0
  431. package/dist/esm/drawer-body/drawer-body.template.js +21 -0
  432. package/dist/esm/drawer-body/drawer-body.template.js.map +1 -0
  433. package/dist/esm/drawer-body/index.js +5 -0
  434. package/dist/esm/drawer-body/index.js.map +1 -0
  435. package/dist/esm/dropdown/define.js +4 -0
  436. package/dist/esm/dropdown/define.js.map +1 -0
  437. package/dist/esm/dropdown/dropdown.definition.js +20 -0
  438. package/dist/esm/dropdown/dropdown.definition.js.map +1 -0
  439. package/dist/esm/dropdown/dropdown.js +779 -0
  440. package/dist/esm/dropdown/dropdown.js.map +1 -0
  441. package/dist/esm/dropdown/dropdown.options.js +43 -0
  442. package/dist/esm/dropdown/dropdown.options.js.map +1 -0
  443. package/dist/esm/dropdown/dropdown.styles.js +213 -0
  444. package/dist/esm/dropdown/dropdown.styles.js.map +1 -0
  445. package/dist/esm/dropdown/dropdown.template.js +92 -0
  446. package/dist/esm/dropdown/dropdown.template.js.map +1 -0
  447. package/dist/esm/dropdown/index.js +6 -0
  448. package/dist/esm/dropdown/index.js.map +1 -0
  449. package/dist/esm/field/define.js +4 -0
  450. package/dist/esm/field/define.js.map +1 -0
  451. package/dist/esm/field/field.bench.js +10 -0
  452. package/dist/esm/field/field.bench.js.map +1 -0
  453. package/dist/esm/field/field.definition.js +20 -0
  454. package/dist/esm/field/field.definition.js.map +1 -0
  455. package/dist/esm/field/field.js +211 -0
  456. package/dist/esm/field/field.js.map +1 -0
  457. package/dist/esm/field/field.options.js +27 -0
  458. package/dist/esm/field/field.options.js.map +1 -0
  459. package/dist/esm/field/field.styles.js +135 -0
  460. package/dist/esm/field/field.styles.js.map +1 -0
  461. package/dist/esm/field/field.template.js +26 -0
  462. package/dist/esm/field/field.template.js.map +1 -0
  463. package/dist/esm/field/index.js +6 -0
  464. package/dist/esm/field/index.js.map +1 -0
  465. package/dist/esm/form-associated/form-associated.js +69 -71
  466. package/dist/esm/form-associated/form-associated.js.map +1 -1
  467. package/dist/esm/image/image.bench.js +14 -0
  468. package/dist/esm/image/image.bench.js.map +1 -0
  469. package/dist/esm/image/image.js +52 -6
  470. package/dist/esm/image/image.js.map +1 -1
  471. package/dist/esm/image/image.options.js +0 -1
  472. package/dist/esm/image/image.options.js.map +1 -1
  473. package/dist/esm/image/image.styles.js +14 -13
  474. package/dist/esm/image/image.styles.js.map +1 -1
  475. package/dist/esm/image/image.template.js.map +1 -1
  476. package/dist/esm/image/index.js +2 -2
  477. package/dist/esm/image/index.js.map +1 -1
  478. package/dist/esm/index-rollup.js +42 -1
  479. package/dist/esm/index-rollup.js.map +1 -1
  480. package/dist/esm/index.js +50 -31
  481. package/dist/esm/index.js.map +1 -1
  482. package/dist/esm/label/index.js +2 -1
  483. package/dist/esm/label/index.js.map +1 -1
  484. package/dist/esm/label/label.bench.js +11 -0
  485. package/dist/esm/label/label.bench.js.map +1 -0
  486. package/dist/esm/label/label.js +33 -6
  487. package/dist/esm/label/label.js.map +1 -1
  488. package/dist/esm/label/label.styles.js +28 -21
  489. package/dist/esm/label/label.styles.js.map +1 -1
  490. package/dist/esm/label/label.template.js.map +1 -1
  491. package/dist/esm/link/define.js +4 -0
  492. package/dist/esm/link/define.js.map +1 -0
  493. package/dist/esm/link/index.js +6 -0
  494. package/dist/esm/link/index.js.map +1 -0
  495. package/dist/esm/link/link.bench.js +11 -0
  496. package/dist/esm/link/link.bench.js.map +1 -0
  497. package/dist/esm/link/link.definition.js +15 -0
  498. package/dist/esm/link/link.definition.js.map +1 -0
  499. package/dist/esm/link/link.js +54 -0
  500. package/dist/esm/link/link.js.map +1 -0
  501. package/dist/esm/link/link.options.js +21 -0
  502. package/dist/esm/link/link.options.js.map +1 -0
  503. package/dist/esm/link/link.styles.js +72 -0
  504. package/dist/esm/link/link.styles.js.map +1 -0
  505. package/dist/esm/link/link.template.js +22 -0
  506. package/dist/esm/link/link.template.js.map +1 -0
  507. package/dist/esm/listbox/define.js +4 -0
  508. package/dist/esm/listbox/define.js.map +1 -0
  509. package/dist/esm/listbox/index.js +6 -0
  510. package/dist/esm/listbox/index.js.map +1 -0
  511. package/dist/esm/listbox/listbox.definition.js +17 -0
  512. package/dist/esm/listbox/listbox.definition.js.map +1 -0
  513. package/dist/esm/listbox/listbox.js +175 -0
  514. package/dist/esm/listbox/listbox.js.map +1 -0
  515. package/dist/esm/listbox/listbox.options.js +15 -0
  516. package/dist/esm/listbox/listbox.options.js.map +1 -0
  517. package/dist/esm/listbox/listbox.styles.js +26 -0
  518. package/dist/esm/listbox/listbox.styles.js.map +1 -0
  519. package/dist/esm/listbox/listbox.template.js +33 -0
  520. package/dist/esm/listbox/listbox.template.js.map +1 -0
  521. package/dist/esm/menu/index.js +1 -1
  522. package/dist/esm/menu/index.js.map +1 -1
  523. package/dist/esm/menu/menu.bench.js +31 -0
  524. package/dist/esm/menu/menu.bench.js.map +1 -0
  525. package/dist/esm/menu/menu.js +141 -182
  526. package/dist/esm/menu/menu.js.map +1 -1
  527. package/dist/esm/menu/menu.styles.js +53 -9
  528. package/dist/esm/menu/menu.styles.js.map +1 -1
  529. package/dist/esm/menu/menu.template.js +3 -9
  530. package/dist/esm/menu/menu.template.js.map +1 -1
  531. package/dist/esm/menu-button/index.js +3 -3
  532. package/dist/esm/menu-button/index.js.map +1 -1
  533. package/dist/esm/menu-button/menu-button.bench.js +11 -0
  534. package/dist/esm/menu-button/menu-button.bench.js.map +1 -0
  535. package/dist/esm/menu-button/menu-button.definition.js +0 -3
  536. package/dist/esm/menu-button/menu-button.definition.js.map +1 -1
  537. package/dist/esm/menu-button/menu-button.template.js +5 -1
  538. package/dist/esm/menu-button/menu-button.template.js.map +1 -1
  539. package/dist/esm/menu-item/index.js +4 -3
  540. package/dist/esm/menu-item/index.js.map +1 -1
  541. package/dist/esm/menu-item/menu-item.bench.js +11 -0
  542. package/dist/esm/menu-item/menu-item.bench.js.map +1 -0
  543. package/dist/esm/menu-item/menu-item.js +101 -127
  544. package/dist/esm/menu-item/menu-item.js.map +1 -1
  545. package/dist/esm/menu-item/menu-item.styles.js +107 -131
  546. package/dist/esm/menu-item/menu-item.styles.js.map +1 -1
  547. package/dist/esm/menu-item/menu-item.template.js +15 -50
  548. package/dist/esm/menu-item/menu-item.template.js.map +1 -1
  549. package/dist/esm/menu-list/index.js +1 -1
  550. package/dist/esm/menu-list/index.js.map +1 -1
  551. package/dist/esm/menu-list/menu-list.bench.js +21 -0
  552. package/dist/esm/menu-list/menu-list.bench.js.map +1 -0
  553. package/dist/esm/menu-list/menu-list.js +33 -67
  554. package/dist/esm/menu-list/menu-list.js.map +1 -1
  555. package/dist/esm/menu-list/menu-list.styles.js +5 -5
  556. package/dist/esm/menu-list/menu-list.styles.js.map +1 -1
  557. package/dist/esm/menu-list/menu-list.template.js +0 -1
  558. package/dist/esm/menu-list/menu-list.template.js.map +1 -1
  559. package/dist/esm/message-bar/define.js +4 -0
  560. package/dist/esm/message-bar/define.js.map +1 -0
  561. package/dist/esm/message-bar/index.js +6 -0
  562. package/dist/esm/message-bar/index.js.map +1 -0
  563. package/dist/esm/message-bar/message-bar.bench.js +56 -0
  564. package/dist/esm/message-bar/message-bar.bench.js.map +1 -0
  565. package/dist/esm/message-bar/message-bar.definition.js +20 -0
  566. package/dist/esm/message-bar/message-bar.definition.js.map +1 -0
  567. package/dist/esm/message-bar/message-bar.js +65 -0
  568. package/dist/esm/message-bar/message-bar.js.map +1 -0
  569. package/dist/esm/message-bar/message-bar.options.js +27 -0
  570. package/dist/esm/message-bar/message-bar.options.js.map +1 -0
  571. package/dist/esm/message-bar/message-bar.styles.js +108 -0
  572. package/dist/esm/message-bar/message-bar.styles.js.map +1 -0
  573. package/dist/esm/message-bar/message-bar.template.js +25 -0
  574. package/dist/esm/message-bar/message-bar.template.js.map +1 -0
  575. package/dist/esm/option/define.js +4 -0
  576. package/dist/esm/option/define.js.map +1 -0
  577. package/dist/esm/option/index.js +6 -0
  578. package/dist/esm/option/index.js.map +1 -0
  579. package/dist/esm/option/option.definition.js +17 -0
  580. package/dist/esm/option/option.definition.js.map +1 -0
  581. package/dist/esm/option/option.js +296 -0
  582. package/dist/esm/option/option.js.map +1 -0
  583. package/dist/esm/option/option.options.js +15 -0
  584. package/dist/esm/option/option.options.js.map +1 -0
  585. package/dist/esm/option/option.styles.js +127 -0
  586. package/dist/esm/option/option.styles.js.map +1 -0
  587. package/dist/esm/option/option.template.js +42 -0
  588. package/dist/esm/option/option.template.js.map +1 -0
  589. package/dist/esm/patterns/aria-globals.js +1 -6
  590. package/dist/esm/patterns/aria-globals.js.map +1 -1
  591. package/dist/esm/patterns/start-end.js +12 -0
  592. package/dist/esm/patterns/start-end.js.map +1 -1
  593. package/dist/esm/progress-bar/index.js +2 -2
  594. package/dist/esm/progress-bar/index.js.map +1 -1
  595. package/dist/esm/progress-bar/progress-bar.bench.js +10 -0
  596. package/dist/esm/progress-bar/progress-bar.bench.js.map +1 -0
  597. package/dist/esm/progress-bar/progress-bar.js +100 -21
  598. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  599. package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
  600. package/dist/esm/progress-bar/progress-bar.styles.js +51 -129
  601. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  602. package/dist/esm/progress-bar/progress-bar.template.js +8 -26
  603. package/dist/esm/progress-bar/progress-bar.template.js.map +1 -1
  604. package/dist/esm/radio/index.js +1 -1
  605. package/dist/esm/radio/index.js.map +1 -1
  606. package/dist/esm/radio/radio.bench.js +11 -0
  607. package/dist/esm/radio/radio.bench.js.map +1 -0
  608. package/dist/esm/radio/radio.js +57 -76
  609. package/dist/esm/radio/radio.js.map +1 -1
  610. package/dist/esm/radio/radio.options.js +2 -0
  611. package/dist/esm/radio/radio.options.js.map +1 -0
  612. package/dist/esm/radio/radio.styles.js +97 -90
  613. package/dist/esm/radio/radio.styles.js.map +1 -1
  614. package/dist/esm/radio/radio.template.js +21 -24
  615. package/dist/esm/radio/radio.template.js.map +1 -1
  616. package/dist/esm/radio-group/index.js +2 -1
  617. package/dist/esm/radio-group/index.js.map +1 -1
  618. package/dist/esm/radio-group/radio-group.bench.js +21 -0
  619. package/dist/esm/radio-group/radio-group.bench.js.map +1 -0
  620. package/dist/esm/radio-group/radio-group.js +413 -319
  621. package/dist/esm/radio-group/radio-group.js.map +1 -1
  622. package/dist/esm/radio-group/radio-group.styles.js +28 -33
  623. package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
  624. package/dist/esm/radio-group/radio-group.template.js +6 -21
  625. package/dist/esm/radio-group/radio-group.template.js.map +1 -1
  626. package/dist/esm/rating-display/define.js +4 -0
  627. package/dist/esm/rating-display/define.js.map +1 -0
  628. package/dist/esm/rating-display/index.js +6 -0
  629. package/dist/esm/rating-display/index.js.map +1 -0
  630. package/dist/esm/rating-display/rating-display.definition.js +17 -0
  631. package/dist/esm/rating-display/rating-display.definition.js.map +1 -0
  632. package/dist/esm/rating-display/rating-display.js +158 -0
  633. package/dist/esm/rating-display/rating-display.js.map +1 -0
  634. package/dist/esm/rating-display/rating-display.options.js +19 -0
  635. package/dist/esm/rating-display/rating-display.options.js.map +1 -0
  636. package/dist/esm/rating-display/rating-display.styles.js +126 -0
  637. package/dist/esm/rating-display/rating-display.styles.js.map +1 -0
  638. package/dist/esm/rating-display/rating-display.template.js +34 -0
  639. package/dist/esm/rating-display/rating-display.template.js.map +1 -0
  640. package/dist/esm/slider/index.js +2 -2
  641. package/dist/esm/slider/index.js.map +1 -1
  642. package/dist/esm/slider/slider-utilities.js.map +1 -1
  643. package/dist/esm/slider/slider.bench.js +10 -0
  644. package/dist/esm/slider/slider.bench.js.map +1 -0
  645. package/dist/esm/slider/slider.js +429 -229
  646. package/dist/esm/slider/slider.js.map +1 -1
  647. package/dist/esm/slider/slider.styles.js +128 -131
  648. package/dist/esm/slider/slider.styles.js.map +1 -1
  649. package/dist/esm/slider/slider.template.js +11 -28
  650. package/dist/esm/slider/slider.template.js.map +1 -1
  651. package/dist/esm/spinner/index.js +2 -2
  652. package/dist/esm/spinner/index.js.map +1 -1
  653. package/dist/esm/spinner/spinner.bench.js +10 -0
  654. package/dist/esm/spinner/spinner.bench.js.map +1 -0
  655. package/dist/esm/spinner/spinner.js +39 -9
  656. package/dist/esm/spinner/spinner.js.map +1 -1
  657. package/dist/esm/spinner/spinner.styles.js +123 -61
  658. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  659. package/dist/esm/spinner/spinner.template.js +16 -47
  660. package/dist/esm/spinner/spinner.template.js.map +1 -1
  661. package/dist/esm/styles/partials/badge.partials.js +119 -119
  662. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  663. package/dist/esm/styles/partials/index.js +1 -0
  664. package/dist/esm/styles/partials/index.js.map +1 -1
  665. package/dist/esm/styles/partials/typography.partials.js +105 -0
  666. package/dist/esm/styles/partials/typography.partials.js.map +1 -0
  667. package/dist/esm/styles/states/index.js +636 -0
  668. package/dist/esm/styles/states/index.js.map +1 -0
  669. package/dist/esm/switch/index.js +2 -2
  670. package/dist/esm/switch/index.js.map +1 -1
  671. package/dist/esm/switch/switch.bench.js +11 -0
  672. package/dist/esm/switch/switch.bench.js.map +1 -0
  673. package/dist/esm/switch/switch.js +3 -54
  674. package/dist/esm/switch/switch.js.map +1 -1
  675. package/dist/esm/switch/switch.styles.js +63 -83
  676. package/dist/esm/switch/switch.styles.js.map +1 -1
  677. package/dist/esm/switch/switch.template.js +6 -16
  678. package/dist/esm/switch/switch.template.js.map +1 -1
  679. package/dist/esm/tab/index.js +3 -3
  680. package/dist/esm/tab/index.js.map +1 -1
  681. package/dist/esm/tab/tab.bench.js +11 -0
  682. package/dist/esm/tab/tab.bench.js.map +1 -0
  683. package/dist/esm/tab/tab.js +2 -7
  684. package/dist/esm/tab/tab.js.map +1 -1
  685. package/dist/esm/tab/tab.styles.js +21 -21
  686. package/dist/esm/tab/tab.styles.js.map +1 -1
  687. package/dist/esm/tab/tab.template.js.map +1 -1
  688. package/dist/esm/tab-panel/index.js +1 -1
  689. package/dist/esm/tab-panel/index.js.map +1 -1
  690. package/dist/esm/tab-panel/tab-panel.bench.js +13 -0
  691. package/dist/esm/tab-panel/tab-panel.bench.js.map +1 -0
  692. package/dist/esm/tab-panel/tab-panel.styles.js +2 -2
  693. package/dist/esm/tab-panel/tab-panel.styles.js.map +1 -1
  694. package/dist/esm/tab-panel/tab-panel.template.js.map +1 -1
  695. package/dist/esm/tablist/define.js +4 -0
  696. package/dist/esm/tablist/define.js.map +1 -0
  697. package/dist/esm/tablist/index.js +6 -0
  698. package/dist/esm/tablist/index.js.map +1 -0
  699. package/dist/esm/tablist/tablist.bench.js +21 -0
  700. package/dist/esm/tablist/tablist.bench.js.map +1 -0
  701. package/dist/esm/tablist/tablist.definition.js +15 -0
  702. package/dist/esm/tablist/tablist.definition.js.map +1 -0
  703. package/dist/esm/tablist/tablist.js +389 -0
  704. package/dist/esm/tablist/tablist.js.map +1 -0
  705. package/dist/esm/tablist/tablist.options.js +24 -0
  706. package/dist/esm/tablist/tablist.options.js.map +1 -0
  707. package/dist/esm/tablist/tablist.styles.js +194 -0
  708. package/dist/esm/tablist/tablist.styles.js.map +1 -0
  709. package/dist/esm/tablist/tablist.template.js +10 -0
  710. package/dist/esm/tablist/tablist.template.js.map +1 -0
  711. package/dist/esm/tabs/index.js +4 -4
  712. package/dist/esm/tabs/index.js.map +1 -1
  713. package/dist/esm/tabs/tabs.bench.js +32 -0
  714. package/dist/esm/tabs/tabs.bench.js.map +1 -0
  715. package/dist/esm/tabs/tabs.js +19 -23
  716. package/dist/esm/tabs/tabs.js.map +1 -1
  717. package/dist/esm/tabs/tabs.styles.js +50 -50
  718. package/dist/esm/tabs/tabs.styles.js.map +1 -1
  719. package/dist/esm/tabs/tabs.template.js.map +1 -1
  720. package/dist/esm/text/index.js +2 -2
  721. package/dist/esm/text/index.js.map +1 -1
  722. package/dist/esm/text/text.bench.js +13 -0
  723. package/dist/esm/text/text.bench.js.map +1 -0
  724. package/dist/esm/text/text.js +73 -7
  725. package/dist/esm/text/text.js.map +1 -1
  726. package/dist/esm/text/text.styles.js +64 -61
  727. package/dist/esm/text/text.styles.js.map +1 -1
  728. package/dist/esm/text/text.template.js.map +1 -1
  729. package/dist/esm/text-input/index.js +4 -4
  730. package/dist/esm/text-input/index.js.map +1 -1
  731. package/dist/esm/text-input/text-input.bench.js +10 -0
  732. package/dist/esm/text-input/text-input.bench.js.map +1 -0
  733. package/dist/esm/text-input/text-input.definition.js +5 -3
  734. package/dist/esm/text-input/text-input.definition.js.map +1 -1
  735. package/dist/esm/text-input/text-input.js +366 -104
  736. package/dist/esm/text-input/text-input.js.map +1 -1
  737. package/dist/esm/text-input/text-input.options.js +26 -19
  738. package/dist/esm/text-input/text-input.options.js.map +1 -1
  739. package/dist/esm/text-input/text-input.styles.js +107 -96
  740. package/dist/esm/text-input/text-input.styles.js.map +1 -1
  741. package/dist/esm/text-input/text-input.template.js +45 -55
  742. package/dist/esm/text-input/text-input.template.js.map +1 -1
  743. package/dist/esm/textarea/define.js +4 -0
  744. package/dist/esm/textarea/define.js.map +1 -0
  745. package/dist/esm/textarea/index.js +6 -0
  746. package/dist/esm/textarea/index.js.map +1 -0
  747. package/dist/esm/textarea/textarea.bench.js +10 -0
  748. package/dist/esm/textarea/textarea.bench.js.map +1 -0
  749. package/dist/esm/textarea/textarea.definition.js +20 -0
  750. package/dist/esm/textarea/textarea.definition.js.map +1 -0
  751. package/dist/esm/textarea/textarea.js +583 -0
  752. package/dist/esm/textarea/textarea.js.map +1 -0
  753. package/dist/esm/textarea/textarea.options.js +48 -0
  754. package/dist/esm/textarea/textarea.options.js.map +1 -0
  755. package/dist/esm/textarea/textarea.styles.js +268 -0
  756. package/dist/esm/textarea/textarea.styles.js.map +1 -0
  757. package/dist/esm/textarea/textarea.template.js +54 -0
  758. package/dist/esm/textarea/textarea.template.js.map +1 -0
  759. package/dist/esm/theme/design-tokens.js +2220 -384
  760. package/dist/esm/theme/design-tokens.js.map +1 -1
  761. package/dist/esm/theme/index.js.map +1 -1
  762. package/dist/esm/theme/set-theme.global.bench.js +25 -0
  763. package/dist/esm/theme/set-theme.global.bench.js.map +1 -0
  764. package/dist/esm/theme/set-theme.js +185 -12
  765. package/dist/esm/theme/set-theme.js.map +1 -1
  766. package/dist/esm/theme/set-theme.local.bench.js +27 -0
  767. package/dist/esm/theme/set-theme.local.bench.js.map +1 -0
  768. package/dist/esm/theme/set-theme.shadow.bench.js +29 -0
  769. package/dist/esm/theme/set-theme.shadow.bench.js.map +1 -0
  770. package/dist/esm/toggle-button/index.js +4 -4
  771. package/dist/esm/toggle-button/index.js.map +1 -1
  772. package/dist/esm/toggle-button/toggle-button.bench.js +11 -0
  773. package/dist/esm/toggle-button/toggle-button.bench.js.map +1 -0
  774. package/dist/esm/toggle-button/toggle-button.definition.js +0 -3
  775. package/dist/esm/toggle-button/toggle-button.definition.js.map +1 -1
  776. package/dist/esm/toggle-button/toggle-button.js +44 -91
  777. package/dist/esm/toggle-button/toggle-button.js.map +1 -1
  778. package/dist/esm/toggle-button/toggle-button.styles.js +56 -50
  779. package/dist/esm/toggle-button/toggle-button.styles.js.map +1 -1
  780. package/dist/esm/tooltip/define.js +4 -0
  781. package/dist/esm/tooltip/define.js.map +1 -0
  782. package/dist/esm/tooltip/index.js +6 -0
  783. package/dist/esm/tooltip/index.js.map +1 -0
  784. package/dist/esm/tooltip/tooltip.definition.js +17 -0
  785. package/dist/esm/tooltip/tooltip.definition.js.map +1 -0
  786. package/dist/esm/tooltip/tooltip.js +199 -0
  787. package/dist/esm/tooltip/tooltip.js.map +1 -0
  788. package/dist/esm/tooltip/tooltip.options.js +19 -0
  789. package/dist/esm/tooltip/tooltip.options.js.map +1 -0
  790. package/dist/esm/tooltip/tooltip.styles.js +96 -0
  791. package/dist/esm/tooltip/tooltip.styles.js.map +1 -0
  792. package/dist/esm/tooltip/tooltip.template.js +11 -0
  793. package/dist/esm/tooltip/tooltip.template.js.map +1 -0
  794. package/dist/esm/utils/apply-mixins.js.map +1 -1
  795. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js +142 -0
  796. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js.map +1 -0
  797. package/dist/esm/utils/benchmark-dependencies/tokens.js +2 -0
  798. package/dist/esm/utils/benchmark-dependencies/tokens.js.map +1 -0
  799. package/dist/esm/utils/benchmark-wrapper.js +18 -0
  800. package/dist/esm/utils/benchmark-wrapper.js.map +1 -0
  801. package/dist/esm/utils/converters.js +26 -0
  802. package/dist/esm/utils/converters.js.map +1 -0
  803. package/dist/esm/utils/direction.js +1 -2
  804. package/dist/esm/utils/direction.js.map +1 -1
  805. package/dist/esm/utils/display.js +15 -0
  806. package/dist/esm/utils/display.js.map +1 -0
  807. package/dist/esm/utils/element-internals.js +96 -0
  808. package/dist/esm/utils/element-internals.js.map +1 -0
  809. package/dist/esm/utils/focusable-element.js +10 -0
  810. package/dist/esm/utils/focusable-element.js.map +1 -0
  811. package/dist/esm/utils/get-initials.js +2 -2
  812. package/dist/esm/utils/get-initials.js.map +1 -1
  813. package/dist/esm/utils/index.js +4 -0
  814. package/dist/esm/utils/index.js.map +1 -1
  815. package/dist/esm/utils/language.js +12 -0
  816. package/dist/esm/utils/language.js.map +1 -0
  817. package/dist/esm/utils/root-active-element.js +9 -0
  818. package/dist/esm/utils/root-active-element.js.map +1 -0
  819. package/dist/esm/utils/support.js +16 -0
  820. package/dist/esm/utils/support.js.map +1 -0
  821. package/dist/esm/utils/template-helpers.js +1 -1
  822. package/dist/esm/utils/template-helpers.js.map +1 -1
  823. package/dist/esm/utils/unique-id.js +14 -0
  824. package/dist/esm/utils/unique-id.js.map +1 -0
  825. package/dist/esm/utils/whitespace-filter.js +1 -1
  826. package/dist/esm/utils/whitespace-filter.js.map +1 -1
  827. package/dist/web-components.d.ts +8201 -2510
  828. package/dist/web-components.js +11337 -7453
  829. package/dist/web-components.min.js +464 -259
  830. package/package.json +60 -159
  831. package/dist/dts/button/button.form-associated.d.ts +0 -14
  832. package/dist/dts/checkbox/checkbox.form-associated.d.ts +0 -14
  833. package/dist/dts/helpers.tests.d.ts +0 -8
  834. package/dist/dts/progress-bar/base-progress.d.ts +0 -41
  835. package/dist/dts/progress-ring/progress-ring.d.ts +0 -15
  836. package/dist/dts/progress-ring/progress-ring.options.d.ts +0 -9
  837. package/dist/dts/radio/radio.form-associated.d.ts +0 -14
  838. package/dist/dts/text-input/text-field.form-associated.d.ts +0 -14
  839. package/dist/esm/button/button.form-associated.js +0 -14
  840. package/dist/esm/button/button.form-associated.js.map +0 -1
  841. package/dist/esm/checkbox/checkbox.form-associated.js +0 -14
  842. package/dist/esm/checkbox/checkbox.form-associated.js.map +0 -1
  843. package/dist/esm/helpers.tests.js +0 -29
  844. package/dist/esm/helpers.tests.js.map +0 -1
  845. package/dist/esm/progress-bar/base-progress.js +0 -61
  846. package/dist/esm/progress-bar/base-progress.js.map +0 -1
  847. package/dist/esm/progress-ring/progress-ring.js +0 -16
  848. package/dist/esm/progress-ring/progress-ring.js.map +0 -1
  849. package/dist/esm/progress-ring/progress-ring.options.js +0 -2
  850. package/dist/esm/progress-ring/progress-ring.options.js.map +0 -1
  851. package/dist/esm/radio/radio.form-associated.js +0 -14
  852. package/dist/esm/radio/radio.form-associated.js.map +0 -1
  853. package/dist/esm/text-input/text-field.form-associated.js +0 -14
  854. package/dist/esm/text-input/text-field.form-associated.js.map +0 -1
  855. package/dist/fluent-web-components.api.json +0 -27410
  856. package/dist/storybook/108.78b731e00015540915a8.manager.bundle.js +0 -1
  857. package/dist/storybook/108.b31ec3a1.iframe.bundle.js +0 -1
  858. package/dist/storybook/316.bc4aabd3.iframe.bundle.js +0 -2
  859. package/dist/storybook/316.bc4aabd3.iframe.bundle.js.LICENSE.txt +0 -17
  860. package/dist/storybook/401.7edec720.iframe.bundle.js +0 -2
  861. package/dist/storybook/401.7edec720.iframe.bundle.js.LICENSE.txt +0 -12
  862. package/dist/storybook/401.c9bdfaf0dda8b194127f.manager.bundle.js +0 -2
  863. package/dist/storybook/401.c9bdfaf0dda8b194127f.manager.bundle.js.LICENSE.txt +0 -12
  864. package/dist/storybook/491.77b24750.iframe.bundle.js +0 -1
  865. package/dist/storybook/591.f5bf0d78d2f203de19f5.manager.bundle.js +0 -2
  866. package/dist/storybook/591.f5bf0d78d2f203de19f5.manager.bundle.js.LICENSE.txt +0 -94
  867. package/dist/storybook/709.22096ad4.iframe.bundle.js +0 -2
  868. package/dist/storybook/709.22096ad4.iframe.bundle.js.LICENSE.txt +0 -8
  869. package/dist/storybook/709.b131e33993a6b94d7ad8.manager.bundle.js +0 -2
  870. package/dist/storybook/709.b131e33993a6b94d7ad8.manager.bundle.js.LICENSE.txt +0 -8
  871. package/dist/storybook/711.b5d63aa3.iframe.bundle.js +0 -2
  872. package/dist/storybook/711.b5d63aa3.iframe.bundle.js.LICENSE.txt +0 -51
  873. package/dist/storybook/721.46fa9f53.iframe.bundle.js +0 -2
  874. package/dist/storybook/721.46fa9f53.iframe.bundle.js.LICENSE.txt +0 -31
  875. package/dist/storybook/721.c225c101a0a55a8f98eb.manager.bundle.js +0 -2
  876. package/dist/storybook/721.c225c101a0a55a8f98eb.manager.bundle.js.LICENSE.txt +0 -31
  877. package/dist/storybook/858.da40ed98.iframe.bundle.js +0 -1
  878. package/dist/storybook/858.e08e25a6901d2e21e9d8.manager.bundle.js +0 -1
  879. package/dist/storybook/950.674e7934b4a26a022608.manager.bundle.js +0 -1
  880. package/dist/storybook/954.630c5748.iframe.bundle.js +0 -1
  881. package/dist/storybook/954.7f985e2fdf9f15a7748b.manager.bundle.js +0 -1
  882. package/dist/storybook/SegoeUI-VF.ttf +0 -0
  883. package/dist/storybook/favicon.ico +0 -0
  884. package/dist/storybook/favicon.png +0 -0
  885. package/dist/storybook/iframe.html +0 -364
  886. package/dist/storybook/index.html +0 -165
  887. package/dist/storybook/main.588112e6.iframe.bundle.js +0 -2
  888. package/dist/storybook/main.588112e6.iframe.bundle.js.LICENSE.txt +0 -1
  889. package/dist/storybook/main.5d7b916dc1e37293b1d8.manager.bundle.js +0 -1
  890. package/dist/storybook/project.json +0 -1
  891. package/dist/storybook/runtime~main.5d918fe7.iframe.bundle.js +0 -1
  892. package/dist/storybook/runtime~main.dbf00b470fe610082919.manager.bundle.js +0 -1
  893. package/dist/storybook/shell.css +0 -83
  894. package/dist/storybook/theme-switch.ts +0 -13
  895. package/docs/api-report.md +0 -2969
  896. package/playwright.config.ts +0 -25
@@ -0,0 +1,779 @@
1
+ import { __decorate } from "tslib";
2
+ import { attr, FASTElement, Observable, observable, Updates, volatile } from '@microsoft/fast-element';
3
+ import { isListbox } from '../listbox/listbox.options.js';
4
+ import { isDropdownOption } from '../option/option.options.js';
5
+ import { swapStates, toggleState } from '../utils/element-internals.js';
6
+ import { getLanguage } from '../utils/language.js';
7
+ import { uniqueId } from '../utils/unique-id.js';
8
+ import { DropdownAppearance, DropdownSize, DropdownType } from './dropdown.options.js';
9
+ import { dropdownButtonTemplate, dropdownInputTemplate } from './dropdown.template.js';
10
+ /**
11
+ * A Dropdown Custom HTML Element.
12
+ * Implements the {@link https://w3c.github.io/aria/#combobox | ARIA combobox } role.
13
+ *
14
+ * @remarks
15
+ * The Dropdown element does not provide a form association value. Instead, the slotted Option elements handle form
16
+ * association the same way as {@link (Checkbox:class)} elements. See the {@link (DropdownOption:class)} element for
17
+ * more details.
18
+ *
19
+ * @slot - The default slot. Accepts a {@link (Listbox:class)} element.
20
+ * @slot indicator - The indicator slot.
21
+ * @slot control - The control slot. This slot is automatically populated and should not be manually manipulated.
22
+ *
23
+ * @public
24
+ */
25
+ export class BaseDropdown extends FASTElement {
26
+ /**
27
+ * The ID of the current active descendant.
28
+ *
29
+ * @public
30
+ */
31
+ get activeDescendant() {
32
+ if (this.open) {
33
+ return this.enabledOptions[this.activeIndex]?.id;
34
+ }
35
+ return undefined;
36
+ }
37
+ /**
38
+ * Sets the active index when the active index property changes.
39
+ *
40
+ * @param prev - the previous active index
41
+ * @param next - the current active index
42
+ * @internal
43
+ */
44
+ activeIndexChanged(prev, next) {
45
+ if (typeof next === 'number') {
46
+ const optionIndex = this.matches(':has(:focus-visible)') ? next : -1;
47
+ this.enabledOptions.forEach((option, index) => {
48
+ option.active = index === optionIndex;
49
+ });
50
+ if (this.open) {
51
+ this.enabledOptions[optionIndex]?.scrollIntoView({ block: 'nearest' });
52
+ }
53
+ }
54
+ }
55
+ /**
56
+ * Updates properties on the control element when the control slot changes.
57
+ *
58
+ * @param prev - the previous control element
59
+ * @param next - the current control element
60
+ * @internal
61
+ * @remarks
62
+ * The control element is assigned to the dropdown via the control slot with manual slot assignment.
63
+ */
64
+ controlChanged(prev, next) {
65
+ if (next) {
66
+ next.id = next.id || uniqueId('input-');
67
+ this.controlSlot?.assign(next);
68
+ }
69
+ }
70
+ /**
71
+ * Updates the disabled state of the options when the disabled property changes.
72
+ *
73
+ * @param prev - the previous disabled state
74
+ * @param next - the current disabled state
75
+ */
76
+ disabledChanged(prev, next) {
77
+ Updates.enqueue(() => {
78
+ this.options.forEach(option => {
79
+ option.disabled = option.disabledAttribute || this.disabled;
80
+ });
81
+ });
82
+ }
83
+ /**
84
+ * The display value for the control.
85
+ *
86
+ * @public
87
+ */
88
+ get displayValue() {
89
+ if (!this.$fastController.isConnected || !this.control || (this.isCombobox && this.multiple)) {
90
+ toggleState(this.elementInternals, 'placeholder-shown', false);
91
+ return '';
92
+ }
93
+ this.listFormatter =
94
+ this.listFormatter ??
95
+ new Intl.ListFormat(getLanguage(this), {
96
+ type: 'conjunction',
97
+ style: 'narrow',
98
+ });
99
+ const displayValue = this.listFormatter.format(this.selectedOptions.map(x => x.text));
100
+ toggleState(this.elementInternals, 'placeholder-shown', !displayValue);
101
+ if (this.isCombobox) {
102
+ // comboboxes use an input element for the control, which provides the placeholder behavior
103
+ return displayValue;
104
+ }
105
+ return displayValue || this.placeholder;
106
+ }
107
+ /**
108
+ * Updates properties on the listbox element when the listbox reference changes.
109
+ *
110
+ * @param prev - the previous listbox element
111
+ * @param next - the current listbox element
112
+ * @internal
113
+ *
114
+ * @remarks
115
+ * The listbox element is assigned to the dropdown via the default slot with manual slot assignment.
116
+ */
117
+ listboxChanged(prev, next) {
118
+ if (prev) {
119
+ Observable.getNotifier(this).unsubscribe(prev);
120
+ }
121
+ if (next) {
122
+ next.dropdown = this;
123
+ next.popover = 'manual';
124
+ this.listboxSlot.assign(next);
125
+ const notifier = Observable.getNotifier(this);
126
+ notifier.subscribe(next);
127
+ for (const key of ['disabled', 'multiple']) {
128
+ notifier.notify(key);
129
+ }
130
+ Updates.enqueue(() => {
131
+ this.enabledOptions
132
+ .filter(x => x.defaultSelected)
133
+ .forEach((x, i) => {
134
+ x.selected = this.multiple || i === 0;
135
+ });
136
+ });
137
+ }
138
+ }
139
+ /**
140
+ * Toggles between single and multiple selection modes when the `multiple` property changes.
141
+ *
142
+ * @param prev - the previous multiple state
143
+ * @param next - the next multiple state
144
+ * @internal
145
+ */
146
+ multipleChanged(prev, next) {
147
+ this.elementInternals.ariaMultiSelectable = next ? 'true' : 'false';
148
+ toggleState(this.elementInternals, 'multiple', next);
149
+ this.value = null;
150
+ }
151
+ /**
152
+ * Updates the name of the options when the name property changes.
153
+ *
154
+ * @param prev - the previous name
155
+ * @param next - the current name
156
+ */
157
+ nameChanged(prev, next) {
158
+ Updates.enqueue(() => {
159
+ this.options.forEach(option => {
160
+ option.name = next;
161
+ });
162
+ });
163
+ }
164
+ /**
165
+ * Handles the open state of the dropdown.
166
+ *
167
+ * @param prev - the previous open state
168
+ * @param next - the current open state
169
+ *
170
+ * @internal
171
+ */
172
+ openChanged(prev, next) {
173
+ toggleState(this.elementInternals, 'open', next);
174
+ this.elementInternals.ariaExpanded = next ? 'true' : 'false';
175
+ this.activeIndex = this.selectedIndex ?? -1;
176
+ }
177
+ /**
178
+ * Changes the slotted control element based on the dropdown type.
179
+ *
180
+ * @param prev - the previous dropdown type
181
+ * @param next - the current dropdown type
182
+ * @internal
183
+ */
184
+ typeChanged(prev, next) {
185
+ if (this.$fastController.isConnected) {
186
+ this.insertControl();
187
+ }
188
+ }
189
+ /**
190
+ * The collection of enabled options.
191
+ * @public
192
+ */
193
+ get enabledOptions() {
194
+ return this.listbox?.enabledOptions ?? [];
195
+ }
196
+ /**
197
+ * The form-associated flag.
198
+ * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-face-example | Form-associated custom elements}
199
+ *
200
+ * @public
201
+ */
202
+ static { this.formAssociated = true; }
203
+ /**
204
+ * Resets the form value to its initial value when the form is reset.
205
+ *
206
+ * @internal
207
+ */
208
+ formResetCallback() {
209
+ this.enabledOptions.forEach((x, i) => {
210
+ if (this.multiple) {
211
+ x.selected = !!x.defaultSelected;
212
+ return;
213
+ }
214
+ if (!x.defaultSelected) {
215
+ x.selected = false;
216
+ return;
217
+ }
218
+ this.selectOption(i);
219
+ });
220
+ }
221
+ /**
222
+ * A reference to the first freeform option, if present.
223
+ *
224
+ * @internal
225
+ */
226
+ get freeformOption() {
227
+ return this.enabledOptions.find(x => x.freeform);
228
+ }
229
+ /**
230
+ * Indicates whether the dropdown is a combobox.
231
+ *
232
+ * @internal
233
+ */
234
+ get isCombobox() {
235
+ return this.type === DropdownType.combobox;
236
+ }
237
+ /**
238
+ * The collection of all child options.
239
+ *
240
+ * @public
241
+ */
242
+ get options() {
243
+ return this.listbox?.options ?? [];
244
+ }
245
+ /**
246
+ * The index of the first selected option, scoped to the enabled options.
247
+ *
248
+ * @internal
249
+ * @remarks
250
+ * This property is a reflection of {@link Listbox.selectedIndex}.
251
+ */
252
+ get selectedIndex() {
253
+ return this.enabledOptions.findIndex(x => x.selected) ?? -1;
254
+ }
255
+ /**
256
+ * The collection of selected options.
257
+ *
258
+ * @public
259
+ * @remarks
260
+ * This property is a reflection of {@link Listbox.selectedOptions}.
261
+ */
262
+ get selectedOptions() {
263
+ return this.listbox?.selectedOptions ?? [];
264
+ }
265
+ /**
266
+ * The validation message. Uses the browser's default validation message for native checkboxes if not otherwise
267
+ * specified (e.g., via `setCustomValidity`).
268
+ *
269
+ * @internal
270
+ */
271
+ get validationMessage() {
272
+ if (this.elementInternals.validationMessage) {
273
+ return this.elementInternals.validationMessage;
274
+ }
275
+ if (!this.validationFallbackMessage) {
276
+ const validationMessageFallbackControl = document.createElement('input');
277
+ validationMessageFallbackControl.type = 'radio';
278
+ validationMessageFallbackControl.required = true;
279
+ validationMessageFallbackControl.checked = false;
280
+ this.validationFallbackMessage = validationMessageFallbackControl.validationMessage;
281
+ }
282
+ return this.validationFallbackMessage;
283
+ }
284
+ /**
285
+ * The current value of the selected option.
286
+ *
287
+ * @public
288
+ */
289
+ get value() {
290
+ Observable.notify(this, 'value');
291
+ return this.enabledOptions.find(x => x.selected)?.value ?? null;
292
+ }
293
+ set value(next) {
294
+ if (this.multiple) {
295
+ return;
296
+ }
297
+ this.selectOption(this.enabledOptions.findIndex(x => x.value === next));
298
+ Observable.track(this, 'value');
299
+ }
300
+ /**
301
+ * Handles the change events for the dropdown.
302
+ *
303
+ * @param e - the event object
304
+ *
305
+ * @public
306
+ */
307
+ changeHandler(e) {
308
+ if (this === e.target) {
309
+ return true;
310
+ }
311
+ const optionIndex = this.isCombobox
312
+ ? this.enabledOptions.findIndex(x => x.text === this.control.value)
313
+ : this.enabledOptions.indexOf(e.target);
314
+ this.selectOption(optionIndex);
315
+ return true;
316
+ }
317
+ /**
318
+ * Handles the click events for the dropdown.
319
+ *
320
+ * @param e - the event object
321
+ *
322
+ * @public
323
+ */
324
+ clickHandler(e) {
325
+ if (this.disabled) {
326
+ return;
327
+ }
328
+ const target = e.target;
329
+ this.focus();
330
+ if (target === this.control && !this.isCombobox) {
331
+ this.listbox.togglePopover();
332
+ return true;
333
+ }
334
+ if (!this.open) {
335
+ this.listbox.showPopover();
336
+ return true;
337
+ }
338
+ if (isDropdownOption(target) && !this.multiple) {
339
+ if (target.disabled) {
340
+ return;
341
+ }
342
+ if (this.isCombobox) {
343
+ this.control.value = target.text;
344
+ this.updateFreeformOption();
345
+ }
346
+ this.listbox.hidePopover();
347
+ }
348
+ return true;
349
+ }
350
+ constructor() {
351
+ super();
352
+ /**
353
+ * The index of the currently active option.
354
+ *
355
+ * @internal
356
+ */
357
+ this.activeIndex = 0;
358
+ /**
359
+ * Sets the listbox ID to a unique value if one is not provided.
360
+ *
361
+ * @override
362
+ * @public
363
+ * @remarks
364
+ * HTML Attribute: `id`
365
+ */
366
+ this.id = uniqueId('dropdown-');
367
+ /**
368
+ * The required state of the dropdown.
369
+ *
370
+ * @public
371
+ * @remarks
372
+ * HTML Attribute: `required`
373
+ */
374
+ this.required = false;
375
+ /**
376
+ * The dropdown type.
377
+ *
378
+ * @public
379
+ * @remarks
380
+ * HTML Attribute: `type`
381
+ */
382
+ this.type = DropdownType.dropdown;
383
+ /**
384
+ * The initial value of the control. When the control is a combobox, this value is used to set the value of the
385
+ * control when the dropdown is initialized.
386
+ *
387
+ * @public
388
+ * @remarks
389
+ * HTML Attribute: `value`
390
+ */
391
+ this.valueAttribute = '';
392
+ /**
393
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
394
+ *
395
+ * @internal
396
+ */
397
+ this.elementInternals = this.attachInternals();
398
+ this.elementInternals.role = 'presentation';
399
+ Updates.enqueue(() => {
400
+ this.insertControl();
401
+ });
402
+ }
403
+ /**
404
+ * Filters the options based on the input value.
405
+ *
406
+ * @param value - the input value to filter the options by
407
+ * @param collection - the collection of options to filter
408
+ * @returns the filtered options
409
+ * @internal
410
+ */
411
+ filterOptions(value, collection = this.enabledOptions) {
412
+ if (!this.listCollator) {
413
+ this.listCollator = new Intl.Collator(getLanguage(this), { usage: 'search', sensitivity: 'base' });
414
+ }
415
+ return collection.filter(x => {
416
+ return this.listCollator.compare(x.text.substring(0, Math.min(x.text.length, value.length)), value) === 0;
417
+ });
418
+ }
419
+ /**
420
+ * Focuses the control when the dropdown receives focus.
421
+ *
422
+ * @internal
423
+ */
424
+ focus(options) {
425
+ if (this.disabled) {
426
+ return;
427
+ }
428
+ this.control.focus(options);
429
+ }
430
+ /**
431
+ * Toggles the listbox when the control element loses focus.
432
+ *
433
+ * @param e - the focus event
434
+ * @internal
435
+ */
436
+ focusoutHandler(e) {
437
+ const relatedTarget = e.relatedTarget;
438
+ if (this.open && !this.contains(relatedTarget)) {
439
+ this.listbox.togglePopover();
440
+ }
441
+ return true;
442
+ }
443
+ /**
444
+ * Ensures the active index is within bounds of the enabled options. Out-of-bounds indices are wrapped to the opposite
445
+ * end of the range.
446
+ *
447
+ * @param index - the desired index
448
+ * @param upperBound - the upper bound of the range
449
+ * @returns the index in bounds
450
+ * @internal
451
+ */
452
+ getEnabledIndexInBounds(index, upperBound = this.enabledOptions.length || 0) {
453
+ if (upperBound === 0) {
454
+ return -1;
455
+ }
456
+ return (index + upperBound) % upperBound;
457
+ }
458
+ /**
459
+ * Handles the input events for the dropdown from the control element.
460
+ *
461
+ * @param e - the input event
462
+ * @public
463
+ */
464
+ inputHandler(e) {
465
+ if (!this.open) {
466
+ this.listbox.showPopover();
467
+ }
468
+ this.updateFreeformOption();
469
+ const controlValue = this.control.value;
470
+ const index = this.enabledOptions.indexOf(this.filterOptions(controlValue)[0] ?? null);
471
+ this.activeIndex = index;
472
+ return true;
473
+ }
474
+ /**
475
+ * Inserts the control element based on the dropdown type.
476
+ *
477
+ * @public
478
+ * @remarks
479
+ * This method can be overridden in derived classes to provide custom control elements, though this is not recommended.
480
+ */
481
+ insertControl() {
482
+ this.controlSlot?.assignedNodes().forEach(x => this.removeChild(x));
483
+ if (this.type === DropdownType.combobox) {
484
+ dropdownInputTemplate.render(this, this);
485
+ return;
486
+ }
487
+ dropdownButtonTemplate.render(this, this);
488
+ }
489
+ /**
490
+ * Handles the keydown events for the dropdown.
491
+ *
492
+ * @param e - the keyboard event
493
+ * @public
494
+ */
495
+ keydownHandler(e) {
496
+ let increment = 0;
497
+ switch (e.key) {
498
+ case 'ArrowUp': {
499
+ e.preventDefault();
500
+ increment = -1;
501
+ break;
502
+ }
503
+ case 'ArrowDown': {
504
+ e.preventDefault();
505
+ increment = 1;
506
+ break;
507
+ }
508
+ case ' ': {
509
+ if (this.isCombobox) {
510
+ break;
511
+ }
512
+ e.preventDefault();
513
+ }
514
+ case 'Enter':
515
+ case 'Tab': {
516
+ if (this.open) {
517
+ this.selectOption(this.activeIndex);
518
+ if (this.multiple) {
519
+ break;
520
+ }
521
+ this.listbox.hidePopover();
522
+ return e.key === 'Tab';
523
+ }
524
+ this.listbox.showPopover();
525
+ break;
526
+ }
527
+ case 'Escape': {
528
+ this.activeIndex = this.multiple ? 0 : this.selectedIndex;
529
+ this.listbox.hidePopover();
530
+ break;
531
+ }
532
+ }
533
+ if (!increment) {
534
+ return true;
535
+ }
536
+ if (!this.open) {
537
+ this.listbox.showPopover();
538
+ return;
539
+ }
540
+ let nextIndex = this.activeIndex;
541
+ nextIndex += increment;
542
+ let indexInBounds = this.getEnabledIndexInBounds(nextIndex);
543
+ if (indexInBounds === 0 && this.freeformOption?.hidden) {
544
+ indexInBounds = this.getEnabledIndexInBounds(nextIndex + increment);
545
+ }
546
+ this.activeIndex = indexInBounds;
547
+ return true;
548
+ }
549
+ /**
550
+ * Prevents the default behavior of the mousedown event. This is necessary to prevent the input from losing focus
551
+ * when the dropdown is open.
552
+ *
553
+ * @param e - the mouse event
554
+ *
555
+ * @internal
556
+ */
557
+ mousedownHandler(e) {
558
+ if (this.disabled || (e.target === this.control && !this.isCombobox)) {
559
+ return;
560
+ }
561
+ return !isDropdownOption(e.target);
562
+ }
563
+ /**
564
+ * Selects an option by index.
565
+ *
566
+ * @param index - The index of the option to select.
567
+ * @public
568
+ */
569
+ selectOption(index = this.selectedIndex) {
570
+ this.listbox.selectOption(index);
571
+ this.control.value = this.displayValue;
572
+ this.setValidity();
573
+ this.updateFreeformOption();
574
+ }
575
+ /**
576
+ * Sets the validity of the element.
577
+ *
578
+ * @param flags - Validity flags to set.
579
+ * @param message - Optional message to supply. If not provided, the element's `validationMessage` will be used.
580
+ * @param anchor - Optional anchor to use for the validation message.
581
+ *
582
+ * @internal
583
+ */
584
+ setValidity(flags, message, anchor) {
585
+ if (this.$fastController.isConnected) {
586
+ if (this.disabled || !this.required) {
587
+ this.elementInternals.setValidity({});
588
+ return;
589
+ }
590
+ const valueMissing = this.required && this.listbox.selectedOptions.length === 0;
591
+ this.elementInternals.setValidity({ valueMissing, ...flags }, message ?? this.validationMessage, anchor ?? this.listbox.enabledOptions[0]);
592
+ }
593
+ }
594
+ /**
595
+ * Updates the freeform option with the provided value.
596
+ *
597
+ * @param value - the value to update the freeform option with
598
+ * @internal
599
+ */
600
+ updateFreeformOption(value = this.control.value) {
601
+ if (!this.freeformOption) {
602
+ return;
603
+ }
604
+ if (value === '' ||
605
+ this.filterOptions(value, this.enabledOptions.filter(x => !x.freeform)).length) {
606
+ this.freeformOption.value = '';
607
+ this.freeformOption.selected = false;
608
+ this.freeformOption.hidden = true;
609
+ return;
610
+ }
611
+ this.freeformOption.value = value;
612
+ this.freeformOption.hidden = false;
613
+ }
614
+ }
615
+ __decorate([
616
+ volatile
617
+ ], BaseDropdown.prototype, "activeDescendant", null);
618
+ __decorate([
619
+ observable
620
+ ], BaseDropdown.prototype, "activeIndex", void 0);
621
+ __decorate([
622
+ attr({ attribute: 'aria-labelledby', mode: 'fromView' })
623
+ ], BaseDropdown.prototype, "ariaLabelledBy", void 0);
624
+ __decorate([
625
+ observable
626
+ ], BaseDropdown.prototype, "control", void 0);
627
+ __decorate([
628
+ attr({ mode: 'boolean' })
629
+ ], BaseDropdown.prototype, "disabled", void 0);
630
+ __decorate([
631
+ volatile
632
+ ], BaseDropdown.prototype, "displayValue", null);
633
+ __decorate([
634
+ attr({ attribute: 'id' })
635
+ ], BaseDropdown.prototype, "id", void 0);
636
+ __decorate([
637
+ observable
638
+ ], BaseDropdown.prototype, "indicator", void 0);
639
+ __decorate([
640
+ observable
641
+ ], BaseDropdown.prototype, "indicatorSlot", void 0);
642
+ __decorate([
643
+ attr({ attribute: 'value', mode: 'fromView' })
644
+ ], BaseDropdown.prototype, "initialValue", void 0);
645
+ __decorate([
646
+ observable
647
+ ], BaseDropdown.prototype, "listbox", void 0);
648
+ __decorate([
649
+ observable
650
+ ], BaseDropdown.prototype, "listboxSlot", void 0);
651
+ __decorate([
652
+ attr({ mode: 'boolean' })
653
+ ], BaseDropdown.prototype, "multiple", void 0);
654
+ __decorate([
655
+ attr
656
+ ], BaseDropdown.prototype, "name", void 0);
657
+ __decorate([
658
+ observable
659
+ ], BaseDropdown.prototype, "open", void 0);
660
+ __decorate([
661
+ attr
662
+ ], BaseDropdown.prototype, "placeholder", void 0);
663
+ __decorate([
664
+ attr({ mode: 'boolean' })
665
+ ], BaseDropdown.prototype, "required", void 0);
666
+ __decorate([
667
+ attr
668
+ ], BaseDropdown.prototype, "type", void 0);
669
+ __decorate([
670
+ attr({ attribute: 'value' })
671
+ ], BaseDropdown.prototype, "valueAttribute", void 0);
672
+ /**
673
+ * The Fluent Dropdown Element. Implements {@link @microsoft/fast-foundation#BaseDropdown}.
674
+ *
675
+ * @slot - The default slot. Accepts a {@link (Listbox:class)} element.
676
+ * @slot indicator - The indicator slot.
677
+ * @slot control - The control slot. This slot is automatically populated and should not be manually manipulated.
678
+ *
679
+ * @public
680
+ */
681
+ export class Dropdown extends BaseDropdown {
682
+ /**
683
+ * Swaps appearance states when the appearance property changes.
684
+ *
685
+ * @param prev - the previous appearance state
686
+ * @param next - the current appearance state
687
+ * @internal
688
+ */
689
+ appearanceChanged(prev, next) {
690
+ swapStates(this.elementInternals, prev, next, DropdownAppearance);
691
+ }
692
+ /**
693
+ * Swaps size states when the size property changes.
694
+ *
695
+ * @param prev - the previous size state
696
+ * @param next - the current size state
697
+ * @internal
698
+ */
699
+ sizeChanged(prev, next) {
700
+ swapStates(this.elementInternals, prev, next, DropdownSize);
701
+ }
702
+ connectedCallback() {
703
+ super.connectedCallback();
704
+ this.anchorPositionFallback();
705
+ }
706
+ constructor() {
707
+ super();
708
+ /**
709
+ * The appearance of the dropdown.
710
+ *
711
+ * @public
712
+ * @remarks
713
+ * HTML Attribute: `appearance`
714
+ */
715
+ this.appearance = DropdownAppearance.outline;
716
+ this.addEventListener('connected', this.listboxConnectedHandler);
717
+ }
718
+ disconnectedCallback() {
719
+ Dropdown.AnchorPositionFallbackObserver?.unobserve(this.listbox);
720
+ super.disconnectedCallback();
721
+ }
722
+ /**
723
+ * Handles the connected event for the listbox.
724
+ *
725
+ * @param e - the event object
726
+ * @internal
727
+ */
728
+ listboxConnectedHandler(e) {
729
+ const target = e.target;
730
+ if (isListbox(target)) {
731
+ this.listbox = target;
732
+ }
733
+ }
734
+ /**
735
+ * Adds or removes the window event listener based on the open state.
736
+ *
737
+ * @param prev - the previous open state
738
+ * @param next - the current open state
739
+ * @internal
740
+ */
741
+ openChanged(prev, next) {
742
+ super.openChanged(prev, next);
743
+ if (next) {
744
+ Dropdown.AnchorPositionFallbackObserver?.observe(this.listbox);
745
+ return;
746
+ }
747
+ Dropdown.AnchorPositionFallbackObserver?.unobserve(this.listbox);
748
+ }
749
+ /**
750
+ * When anchor positioning isn't supported, an intersection observer is used to flip the listbox when it hits the
751
+ * viewport bounds. One static observer is used for all dropdowns.
752
+ *
753
+ * @internal
754
+ */
755
+ anchorPositionFallback() {
756
+ Dropdown.AnchorPositionFallbackObserver =
757
+ Dropdown.AnchorPositionFallbackObserver ??
758
+ new IntersectionObserver((entries) => {
759
+ entries.forEach(({ boundingClientRect, isIntersecting, target }) => {
760
+ if (isListbox(target) && !isIntersecting) {
761
+ if (boundingClientRect.bottom > window.innerHeight) {
762
+ toggleState(target.dropdown.elementInternals, 'flip-block', true);
763
+ return;
764
+ }
765
+ if (boundingClientRect.top < 0) {
766
+ toggleState(target.dropdown.elementInternals, 'flip-block', false);
767
+ }
768
+ }
769
+ });
770
+ }, { threshold: 1 });
771
+ }
772
+ }
773
+ __decorate([
774
+ attr
775
+ ], Dropdown.prototype, "appearance", void 0);
776
+ __decorate([
777
+ attr
778
+ ], Dropdown.prototype, "size", void 0);
779
+ //# sourceMappingURL=dropdown.js.map