@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
@@ -1,67 +1,288 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { attr } from '@microsoft/fast-element';
8
- import { FASTButton } from '@microsoft/fast-foundation/button.js';
1
+ import { __decorate } from "tslib";
2
+ import { attr, FASTElement, observable } from '@microsoft/fast-element';
3
+ import { keyEnter, keySpace } from '@microsoft/fast-web-utilities';
4
+ import { StartEnd } from '../patterns/index.js';
5
+ import { applyMixins } from '../utils/apply-mixins.js';
6
+ import { ButtonType } from './button.options.js';
9
7
  /**
10
- * The base class used for constructing a fluent-button custom element
8
+ * A Button Custom HTML Element.
9
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | `<button>`} element.
10
+ *
11
+ * @slot start - Content which can be provided before the button content
12
+ * @slot end - Content which can be provided after the button content
13
+ * @slot - The default slot for button content
14
+ * @csspart content - The button content container
15
+ *
11
16
  * @public
12
17
  */
13
- export class Button extends FASTButton {
18
+ export class Button extends FASTElement {
14
19
  constructor() {
15
- super(...arguments);
20
+ super();
16
21
  /**
17
- * The button has an icon only, no text content
22
+ * Indicates that the button is focusable while disabled.
18
23
  *
19
24
  * @public
20
25
  * @remarks
21
- * HTML Attribute: icon-only
26
+ * HTML Attribute: `disabled-focusable`
22
27
  */
23
- this.iconOnly = false;
28
+ this.disabledFocusable = false;
24
29
  /**
25
- * The button is disabled but focusable
30
+ * The internal {@link https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
26
31
  *
27
- * @public
28
- * @remarks
29
- * HTML Attribute: disabled-focusable
32
+ * @internal
30
33
  */
31
- this.disabledFocusable = false;
34
+ this.elementInternals = this.attachInternals();
32
35
  /**
33
- * Prevents disabledFocusable click events
36
+ * Indicates that the button should only display as an icon with no text content.
37
+ *
38
+ * @public
39
+ * @remarks
40
+ * HTML Attribute: `icon-only`
34
41
  */
35
- this.handleDisabledFocusableClick = (e) => {
36
- if (e && this.disabledFocusable) {
37
- e.stopImmediatePropagation();
38
- return;
39
- }
40
- };
42
+ this.iconOnly = false;
43
+ this.elementInternals.role = 'button';
41
44
  }
42
- disabledFocusableChanged(prev, next) {
43
- if (!this.$fastController.isConnected) {
44
- return;
45
+ /**
46
+ * Sets the element's internal disabled state when the element is focusable while disabled.
47
+ *
48
+ * @param previous - the previous disabledFocusable value
49
+ * @param next - the current disabledFocusable value
50
+ * @internal
51
+ */
52
+ disabledFocusableChanged(previous, next) {
53
+ if (this.$fastController.isConnected) {
54
+ this.elementInternals.ariaDisabled = `${!!next}`;
45
55
  }
46
- if (this.disabledFocusable) {
47
- this.setAttribute('aria-disabled', 'true');
56
+ }
57
+ /**
58
+ * The associated form element.
59
+ *
60
+ * @public
61
+ */
62
+ get form() {
63
+ return this.elementInternals.form;
64
+ }
65
+ /**
66
+ * A reference to all associated label elements.
67
+ *
68
+ * @public
69
+ */
70
+ get labels() {
71
+ return Object.freeze(Array.from(this.elementInternals.labels));
72
+ }
73
+ /**
74
+ * Removes the form submission fallback control when the type changes.
75
+ *
76
+ * @param previous - the previous type value
77
+ * @param next - the new type value
78
+ * @internal
79
+ */
80
+ typeChanged(previous, next) {
81
+ var _a, _b, _c;
82
+ if (next !== ButtonType.submit) {
83
+ (_a = this.formSubmissionFallbackControl) === null || _a === void 0 ? void 0 : _a.remove();
84
+ (_c = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('slot[name="internal"]')) === null || _c === void 0 ? void 0 : _c.remove();
48
85
  }
49
- else {
50
- this.removeAttribute('aria-disabled');
86
+ }
87
+ /**
88
+ * Handles the button click event.
89
+ *
90
+ * @param e - The event object
91
+ * @internal
92
+ */
93
+ clickHandler(e) {
94
+ if (e && this.disabledFocusable) {
95
+ e.stopImmediatePropagation();
96
+ return;
51
97
  }
98
+ this.press();
99
+ return true;
52
100
  }
53
101
  connectedCallback() {
54
102
  super.connectedCallback();
55
- this.addEventListener('click', this.handleDisabledFocusableClick);
103
+ this.elementInternals.ariaDisabled = `${!!this.disabledFocusable}`;
104
+ }
105
+ /**
106
+ * This fallback creates a new slot, then creates a submit button to mirror the custom element's
107
+ * properties. The submit button is then appended to the slot and the form is submitted.
108
+ *
109
+ * @internal
110
+ * @privateRemarks
111
+ * This is a workaround until {@link https://github.com/WICG/webcomponents/issues/814 | WICG/webcomponents/issues/814} is resolved.
112
+ */
113
+ createAndInsertFormSubmissionFallbackControl() {
114
+ var _a, _b, _c, _d, _e, _f, _g, _h;
115
+ const internalSlot = (_a = this.formSubmissionFallbackControlSlot) !== null && _a !== void 0 ? _a : document.createElement('slot');
116
+ internalSlot.setAttribute('name', 'internal');
117
+ (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.appendChild(internalSlot);
118
+ this.formSubmissionFallbackControlSlot = internalSlot;
119
+ const fallbackControl = (_c = this.formSubmissionFallbackControl) !== null && _c !== void 0 ? _c : document.createElement('button');
120
+ fallbackControl.style.display = 'none';
121
+ fallbackControl.setAttribute('type', 'submit');
122
+ fallbackControl.setAttribute('slot', 'internal');
123
+ if (this.formNoValidate) {
124
+ fallbackControl.toggleAttribute('formnovalidate', true);
125
+ }
126
+ if ((_d = this.elementInternals.form) === null || _d === void 0 ? void 0 : _d.id) {
127
+ fallbackControl.setAttribute('form', this.elementInternals.form.id);
128
+ }
129
+ if (this.name) {
130
+ fallbackControl.setAttribute('name', this.name);
131
+ }
132
+ if (this.value) {
133
+ fallbackControl.setAttribute('value', this.value);
134
+ }
135
+ if (this.formAction) {
136
+ fallbackControl.setAttribute('formaction', (_e = this.formAction) !== null && _e !== void 0 ? _e : '');
137
+ }
138
+ if (this.formEnctype) {
139
+ fallbackControl.setAttribute('formenctype', (_f = this.formEnctype) !== null && _f !== void 0 ? _f : '');
140
+ }
141
+ if (this.formMethod) {
142
+ fallbackControl.setAttribute('formmethod', (_g = this.formMethod) !== null && _g !== void 0 ? _g : '');
143
+ }
144
+ if (this.formTarget) {
145
+ fallbackControl.setAttribute('formtarget', (_h = this.formTarget) !== null && _h !== void 0 ? _h : '');
146
+ }
147
+ this.append(fallbackControl);
148
+ this.formSubmissionFallbackControl = fallbackControl;
149
+ }
150
+ /**
151
+ * Invoked when a connected component's form or fieldset has its disabled state changed.
152
+ *
153
+ * @param disabled - the disabled value of the form / fieldset
154
+ *
155
+ * @internal
156
+ */
157
+ formDisabledCallback(disabled) {
158
+ this.disabled = disabled;
159
+ }
160
+ /**
161
+ * Handles keypress events for the button.
162
+ *
163
+ * @param e - the keyboard event
164
+ * @returns - the return value of the click handler
165
+ * @public
166
+ */
167
+ keypressHandler(e) {
168
+ if (e && this.disabledFocusable) {
169
+ e.stopImmediatePropagation();
170
+ return;
171
+ }
172
+ if (e.key === keyEnter || e.key === keySpace) {
173
+ this.click();
174
+ return;
175
+ }
176
+ return true;
177
+ }
178
+ /**
179
+ * Presses the button.
180
+ *
181
+ * @public
182
+ */
183
+ press() {
184
+ switch (this.type) {
185
+ case ButtonType.reset: {
186
+ this.resetForm();
187
+ break;
188
+ }
189
+ case ButtonType.submit: {
190
+ this.submitForm();
191
+ break;
192
+ }
193
+ }
56
194
  }
57
- disconnectedCallback() {
58
- super.disconnectedCallback();
59
- this.removeEventListener('click', this.handleDisabledFocusableClick);
195
+ /**
196
+ * Resets the associated form.
197
+ *
198
+ * @public
199
+ */
200
+ resetForm() {
201
+ var _a;
202
+ (_a = this.elementInternals.form) === null || _a === void 0 ? void 0 : _a.reset();
203
+ }
204
+ /**
205
+ * Submits the associated form.
206
+ *
207
+ * @internal
208
+ */
209
+ submitForm() {
210
+ var _a;
211
+ if (!this.elementInternals.form || this.disabled || this.type !== ButtonType.submit) {
212
+ return;
213
+ }
214
+ // workaround: if the button doesn't have any form overrides, the form can be submitted directly.
215
+ if (!this.name &&
216
+ !this.formAction &&
217
+ !this.formEnctype &&
218
+ !this.form &&
219
+ !this.formMethod &&
220
+ !this.formNoValidate &&
221
+ !this.formTarget) {
222
+ this.elementInternals.form.requestSubmit();
223
+ return;
224
+ }
225
+ try {
226
+ this.elementInternals.setFormValue((_a = this.value) !== null && _a !== void 0 ? _a : '');
227
+ this.elementInternals.form.requestSubmit(this);
228
+ }
229
+ catch (e) {
230
+ // `requestSubmit` throws an error since custom elements may not be able to submit the form.
231
+ // This fallback creates a new slot, then creates a submit button to mirror the custom element's
232
+ // properties. The submit button is then appended to the slot and the form is submitted.
233
+ this.createAndInsertFormSubmissionFallbackControl();
234
+ // workaround: the form value is reset since the fallback control will handle the form submission.
235
+ this.elementInternals.setFormValue(null);
236
+ this.elementInternals.form.requestSubmit(this.formSubmissionFallbackControl);
237
+ }
60
238
  }
61
239
  }
240
+ /**
241
+ * The form-associated flag.
242
+ * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-face-example | Form-associated custom elements}
243
+ *
244
+ * @public
245
+ */
246
+ Button.formAssociated = true;
62
247
  __decorate([
63
248
  attr
64
249
  ], Button.prototype, "appearance", void 0);
250
+ __decorate([
251
+ attr({ mode: 'boolean' })
252
+ ], Button.prototype, "autofocus", void 0);
253
+ __decorate([
254
+ observable
255
+ ], Button.prototype, "defaultSlottedContent", void 0);
256
+ __decorate([
257
+ attr({ mode: 'boolean' })
258
+ ], Button.prototype, "disabled", void 0);
259
+ __decorate([
260
+ attr({ attribute: 'disabled-focusable', mode: 'boolean' })
261
+ ], Button.prototype, "disabledFocusable", void 0);
262
+ __decorate([
263
+ attr({ attribute: 'formaction' })
264
+ ], Button.prototype, "formAction", void 0);
265
+ __decorate([
266
+ attr({ attribute: 'form' })
267
+ ], Button.prototype, "formAttribute", void 0);
268
+ __decorate([
269
+ attr({ attribute: 'formenctype' })
270
+ ], Button.prototype, "formEnctype", void 0);
271
+ __decorate([
272
+ attr({ attribute: 'formmethod' })
273
+ ], Button.prototype, "formMethod", void 0);
274
+ __decorate([
275
+ attr({ attribute: 'formnovalidate', mode: 'boolean' })
276
+ ], Button.prototype, "formNoValidate", void 0);
277
+ __decorate([
278
+ attr({ attribute: 'formtarget' })
279
+ ], Button.prototype, "formTarget", void 0);
280
+ __decorate([
281
+ attr({ attribute: 'icon-only', mode: 'boolean' })
282
+ ], Button.prototype, "iconOnly", void 0);
283
+ __decorate([
284
+ attr
285
+ ], Button.prototype, "name", void 0);
65
286
  __decorate([
66
287
  attr
67
288
  ], Button.prototype, "shape", void 0);
@@ -69,9 +290,10 @@ __decorate([
69
290
  attr
70
291
  ], Button.prototype, "size", void 0);
71
292
  __decorate([
72
- attr({ attribute: 'icon-only', mode: 'boolean' })
73
- ], Button.prototype, "iconOnly", void 0);
293
+ attr
294
+ ], Button.prototype, "type", void 0);
74
295
  __decorate([
75
- attr({ attribute: 'disabled-focusable', mode: 'boolean' })
76
- ], Button.prototype, "disabledFocusable", void 0);
296
+ attr
297
+ ], Button.prototype, "value", void 0);
298
+ applyMixins(Button, StartEnd);
77
299
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/button/button.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAGlE;;;GAGG;AACH,MAAM,OAAO,MAAO,SAAQ,UAAU;IAAtC;;QA+BE;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;QAEjC;;;;;;WAMG;QAEI,sBAAiB,GAAa,KAAK,CAAC;QAa3C;;WAEG;QACK,iCAA4B,GAAG,CAAC,CAAa,EAAQ,EAAE;YAC7D,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC/B,CAAC,CAAC,wBAAwB,EAAE,CAAC;gBAC7B,OAAO;aACR;QACH,CAAC,CAAC;IAaJ,CAAC;IAjCW,wBAAwB,CAAC,IAAa,EAAE,IAAa;QAC7D,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YACrC,OAAO;SACR;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAgC,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;SAC1E;aAAM;YACH,IAAgC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;SACrE;IACH,CAAC;IAYM,iBAAiB;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAExB,IAAgC,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAClG,CAAC;IAEM,oBAAoB;QACzB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAE3B,IAAgC,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACrG,CAAC;CACF;AA1EC;IADC,IAAI;0CAC4C;AAUjD;IADC,IAAI;qCACkC;AAUvC;IADC,IAAI;oCACoB;AAUzB;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;wCACjB;AAUjC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iDAChB"}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/button/button.ts"],"names":[],"mappings":"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"}
@@ -27,4 +27,24 @@ export const ButtonSize = {
27
27
  medium: 'medium',
28
28
  large: 'large',
29
29
  };
30
+ /**
31
+ * Button type values.
32
+ *
33
+ * @public
34
+ */
35
+ export const ButtonType = {
36
+ submit: 'submit',
37
+ reset: 'reset',
38
+ button: 'button',
39
+ };
40
+ /**
41
+ * Button `formtarget` attribute values.
42
+ * @public
43
+ */
44
+ export const ButtonFormTarget = {
45
+ blank: '_blank',
46
+ self: '_self',
47
+ parent: '_parent',
48
+ top: '_top',
49
+ };
30
50
  //# sourceMappingURL=button.options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.options.js","sourceRoot":"","sources":["../../../src/button/button.options.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;CAClB,CAAC;AAQX;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACR,CAAC;AAQX;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC"}
1
+ {"version":3,"file":"button.options.js","sourceRoot":"","sources":["../../../src/button/button.options.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;CAClB,CAAC;AAQX;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACR,CAAC;AAQX;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAQX;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAeX;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,MAAM;CACH,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { display, forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation/utilities.js';
2
+ import { display, forcedColorsStylesheetBehavior } from '../utils/index.js';
3
3
  import { borderRadiusCircular, borderRadiusLarge, borderRadiusMedium, borderRadiusNone, borderRadiusSmall, colorBrandBackground, colorBrandBackgroundHover, colorBrandBackgroundPressed, colorNeutralBackground1, colorNeutralBackground1Hover, colorNeutralBackground1Pressed, colorNeutralBackgroundDisabled, colorNeutralForeground1, colorNeutralForeground1Hover, colorNeutralForeground1Pressed, colorNeutralForeground2, colorNeutralForeground2BrandHover, colorNeutralForeground2BrandPressed, colorNeutralForeground2Hover, colorNeutralForeground2Pressed, colorNeutralForegroundDisabled, colorNeutralForegroundOnBrand, colorNeutralStroke1, colorNeutralStroke1Hover, colorNeutralStroke1Pressed, colorNeutralStrokeDisabled, colorStrokeFocus2, colorSubtleBackground, colorSubtleBackgroundHover, colorSubtleBackgroundPressed, colorTransparentBackground, colorTransparentBackgroundHover, colorTransparentBackgroundPressed, colorTransparentStroke, curveEasyEase, durationFaster, fontFamilyBase, fontSizeBase200, fontSizeBase300, fontSizeBase400, fontWeightRegular, fontWeightSemibold, lineHeightBase200, lineHeightBase300, lineHeightBase400, shadow2, shadow4, spacingHorizontalL, spacingHorizontalM, spacingHorizontalS, spacingHorizontalSNudge, spacingHorizontalXS, strokeWidthThick, strokeWidthThin, } from '../theme/design-tokens.js';
4
- // Need to support icon hover styles
4
+ /**
5
+ * The styles for the Button component.
6
+ *
7
+ * @public
8
+ */
5
9
  export const styles = css `
6
10
  ${display('inline-flex')}
7
11
 
@@ -9,13 +13,10 @@ export const styles = css `
9
13
  --icon-spacing: ${spacingHorizontalSNudge};
10
14
  contain: layout style;
11
15
  vertical-align: middle;
12
- }
13
-
14
- :host .control {
15
- display: inline-flex;
16
16
  align-items: center;
17
17
  box-sizing: border-box;
18
18
  justify-content: center;
19
+ text-align: center;
19
20
  text-decoration-line: none;
20
21
  margin: 0;
21
22
  min-height: 32px;
@@ -34,28 +35,29 @@ export const styles = css `
34
35
  transition-property: background, border, color;
35
36
  transition-timing-function: ${curveEasyEase};
36
37
  cursor: pointer;
38
+ user-select: none;
37
39
  }
38
40
 
39
41
  .content {
40
42
  display: inherit;
41
43
  }
42
44
 
43
- :host(:hover) .control {
45
+ :host(:hover) {
44
46
  background-color: ${colorNeutralBackground1Hover};
45
47
  color: ${colorNeutralForeground1Hover};
46
48
  border-color: ${colorNeutralStroke1Hover};
47
49
  }
48
50
 
49
- :host(:hover:active) .control {
51
+ :host(:hover:active) {
50
52
  background-color: ${colorNeutralBackground1Pressed};
51
53
  border-color: ${colorNeutralStroke1Pressed};
52
54
  color: ${colorNeutralForeground1Pressed};
53
55
  outline-style: none;
54
56
  }
55
57
 
56
- :host .control:focus-visible {
58
+ :host(:focus-visible) {
57
59
  border-color: ${colorTransparentStroke};
58
- outline: ${strokeWidthThick} solid ${colorTransparentStroke};
60
+ outline: ${strokeWidthThick}) solid ${colorTransparentStroke};
59
61
  box-shadow: ${shadow4}, 0 0 0 2px ${colorStrokeFocus2};
60
62
  }
61
63
 
@@ -80,16 +82,13 @@ export const styles = css `
80
82
  margin-inline-start: var(--icon-spacing);
81
83
  }
82
84
 
83
- :host([icon-only]) .control {
85
+ :host([icon-only]) {
84
86
  min-width: 32px;
85
87
  max-width: 32px;
86
88
  }
87
89
 
88
90
  :host([size='small']) {
89
91
  --icon-spacing: ${spacingHorizontalXS};
90
- }
91
-
92
- :host([size='small']) .control {
93
92
  min-height: 24px;
94
93
  min-width: 64px;
95
94
  padding: 0 ${spacingHorizontalS};
@@ -99,12 +98,12 @@ export const styles = css `
99
98
  font-weight: ${fontWeightRegular};
100
99
  }
101
100
 
102
- :host([size='small'][icon-only]) .control {
101
+ :host([size='small'][icon-only]) {
103
102
  min-width: 24px;
104
103
  max-width: 24px;
105
104
  }
106
105
 
107
- :host([size='large']) .control {
106
+ :host([size='large']) {
108
107
  min-height: 40px;
109
108
  border-radius: ${borderRadiusLarge};
110
109
  padding: 0 ${spacingHorizontalL};
@@ -112,7 +111,7 @@ export const styles = css `
112
111
  line-height: ${lineHeightBase400};
113
112
  }
114
113
 
115
- :host([size='large'][icon-only]) .control {
114
+ :host([size='large'][icon-only]) {
116
115
  min-width: 40px;
117
116
  max-width: 40px;
118
117
  }
@@ -123,86 +122,86 @@ export const styles = css `
123
122
  width: 24px;
124
123
  }
125
124
 
126
- :host([shape='circular']) .control,
127
- :host([shape='circular']) .control:focus-visible {
125
+ :host([shape='circular']),
126
+ :host([shape='circular']:focus-visible) {
128
127
  border-radius: ${borderRadiusCircular};
129
128
  }
130
129
 
131
- :host([shape='square']) .control,
132
- :host([shape='square']) .control:focus-visible {
130
+ :host([shape='square']),
131
+ :host([shape='square']:focus-visible) {
133
132
  border-radius: ${borderRadiusNone};
134
133
  }
135
134
 
136
- :host([appearance='primary']) .control {
135
+ :host([appearance='primary']) {
137
136
  background-color: ${colorBrandBackground};
138
137
  color: ${colorNeutralForegroundOnBrand};
139
138
  border-color: transparent;
140
139
  }
141
140
 
142
- :host([appearance='primary']:hover) .control {
141
+ :host([appearance='primary']:hover) {
143
142
  background-color: ${colorBrandBackgroundHover};
144
143
  }
145
144
 
146
- :host([appearance='primary']:hover) .control,
147
- :host([appearance='primary']:hover:active) .control {
145
+ :host([appearance='primary']:hover),
146
+ :host([appearance='primary']:hover:active) {
148
147
  border-color: transparent;
149
148
  color: ${colorNeutralForegroundOnBrand};
150
149
  }
151
150
 
152
- :host([appearance='primary']:hover:active) .control {
151
+ :host([appearance='primary']:hover:active) {
153
152
  background-color: ${colorBrandBackgroundPressed};
154
153
  }
155
154
 
156
- :host([appearance='primary']) .control:focus-visible {
155
+ :host([appearance='primary']:focus-visible) {
157
156
  border-color: ${colorNeutralForegroundOnBrand};
158
157
  box-shadow: ${shadow2}, 0 0 0 2px ${colorStrokeFocus2};
159
158
  }
160
159
 
161
- :host(is:([disabled][appearance='primary'], [disabled-focusabale][appearance="primary"])) .control,
162
- :host(is:([disabled][appearance='primary'], [disabled-focusabale][appearance="primary"]):hover) .control,
163
- :host(is:([disabled][appearance='primary'], [disabled-focusabale][appearance="primary"]):hover:active) .control {
160
+ :host(:is([disabled][appearance='primary'], [disabled-focusabale][appearance='primary'])),
161
+ :host(:is([disabled][appearance='primary'], [disabled-focusabale][appearance='primary']):hover),
162
+ :host(:is([disabled][appearance='primary'], [disabled-focusabale][appearance='primary']):hover:active) {
164
163
  border-color: transparent;
165
164
  }
166
165
 
167
- :host([appearance='outline']) .control {
166
+ :host([appearance='outline']) {
168
167
  background-color: ${colorTransparentBackground};
169
168
  }
170
169
 
171
- :host([appearance='outline']:hover) .control {
170
+ :host([appearance='outline']:hover) {
172
171
  background-color: ${colorTransparentBackgroundHover};
173
172
  }
174
173
 
175
- :host([appearance='outline']:hover:active) .control {
174
+ :host([appearance='outline']:hover:active) {
176
175
  background-color: ${colorTransparentBackgroundPressed};
177
176
  }
178
177
 
179
- :host(is:([disabled][appearance='outline'], [disabled-focusabale][appearance="outline"])) .control,
180
- :host(is:([disabled][appearance='outline'], [disabled-focusabale][appearance="outline"]):hover) .control,
181
- :host(is:([disabled][appearance='outline'], [disabled-focusabale][appearance="outline"]):hover:active) .control {
178
+ :host(:is([disabled][appearance='outline'], [disabled-focusabale][appearance='outline'])),
179
+ :host(:is([disabled][appearance='outline'], [disabled-focusabale][appearance='outline']):hover),
180
+ :host(:is([disabled][appearance='outline'], [disabled-focusabale][appearance='outline']):hover:active) {
182
181
  background-color: ${colorTransparentBackground};
183
182
  }
184
183
 
185
- :host([appearance='subtle']) .control {
184
+ :host([appearance='subtle']) {
186
185
  background-color: ${colorSubtleBackground};
187
186
  color: ${colorNeutralForeground2};
188
187
  border-color: transparent;
189
188
  }
190
189
 
191
- :host([appearance='subtle']:hover) .control {
190
+ :host([appearance='subtle']:hover) {
192
191
  background-color: ${colorSubtleBackgroundHover};
193
192
  color: ${colorNeutralForeground2Hover};
194
193
  border-color: transparent;
195
194
  }
196
195
 
197
- :host([appearance='subtle']:hover:active) .control {
196
+ :host([appearance='subtle']:hover:active) {
198
197
  background-color: ${colorSubtleBackgroundPressed};
199
198
  color: ${colorNeutralForeground2Pressed};
200
199
  border-color: transparent;
201
200
  }
202
201
 
203
- :host(is:([disabled][appearance='subtle'], [disabled-focusabale][appearance="subtle"])) .control,
204
- :host(is:([disabled][appearance='subtle'], [disabled-focusabale][appearance="subtle"]):hover) .control,
205
- :host(is:([disabled][appearance='subtle'], [disabled-focusabale][appearance="subtle"]):hover:active) .control {
202
+ :host(:is([disabled][appearance='subtle'], [disabled-focusabale][appearance='subtle'])),
203
+ :host(:is([disabled][appearance='subtle'], [disabled-focusabale][appearance='subtle']):hover),
204
+ :host(:is([disabled][appearance='subtle'], [disabled-focusabale][appearance='subtle']):hover:active) {
206
205
  background-color: ${colorTransparentBackground};
207
206
  border-color: transparent;
208
207
  }
@@ -215,45 +214,44 @@ export const styles = css `
215
214
  fill: ${colorNeutralForeground2BrandPressed};
216
215
  }
217
216
 
218
- :host([appearance='transparent']) .control {
217
+ :host([appearance='transparent']) {
219
218
  background-color: ${colorTransparentBackground};
220
219
  color: ${colorNeutralForeground2};
221
220
  }
222
221
 
223
- :host([appearance='transparent']:hover) .control {
222
+ :host([appearance='transparent']:hover) {
224
223
  background-color: ${colorTransparentBackgroundHover};
225
224
  color: ${colorNeutralForeground2BrandHover};
226
225
  }
227
226
 
228
- :host([appearance='transparent']:hover:active) .control {
227
+ :host([appearance='transparent']:hover:active) {
229
228
  background-color: ${colorTransparentBackgroundPressed};
230
229
  color: ${colorNeutralForeground2BrandPressed};
231
230
  }
232
231
 
233
- :host([appearance='transparent']) .control,
234
- :host([appearance='transparent']:hover) .control,
235
- :host([appearance='transparent']:hover:active) .control {
232
+ :host([appearance='transparent']),
233
+ :host([appearance='transparent']:hover),
234
+ :host([appearance='transparent']:hover:active) {
236
235
  border-color: transparent;
237
236
  }
238
237
 
239
- :host(is:([disabled][appearance='transparent'], [disabled-focusabale][appearance="transparent"])) .control,
240
- :host(is:([disabled][appearance='transparent'], [disabled-focusabale][appearance="transparent"]):hover) .control,
241
- :host(is:([disabled][appearance='transparent'], [disabled-focusabale][appearance="transparent"]):hover:active) .control {
238
+ :host(:is([disabled][appearance='transparent'], [disabled-focusabale][appearance='transparent'])),
239
+ :host(:is([disabled][appearance='transparent'], [disabled-focusabale][appearance='transparent']):hover),
240
+ :host(:is([disabled][appearance='transparent'], [disabled-focusabale][appearance='transparent']):hover:active) {
242
241
  border-color: transparent;
243
242
  background-color: ${colorTransparentBackground};
244
243
  }
245
244
 
246
- :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable])) .control,
247
- :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable]):hover) .control,
248
- :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable]):hover:active)
249
- .control {
245
+ :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable])),
246
+ :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable]):hover),
247
+ :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable]):hover:active) {
250
248
  background-color: ${colorNeutralBackgroundDisabled};
251
249
  border-color: ${colorNeutralStrokeDisabled};
252
250
  color: ${colorNeutralForegroundDisabled};
253
251
  cursor: not-allowed;
254
252
  }
255
253
  `.withBehaviors(forcedColorsStylesheetBehavior(css `
256
- :host([appearance='transparent']:hover) .control {
254
+ :host([appearance='transparent']:hover) {
257
255
  border-color: Highlight;
258
256
  }
259
257
  `));