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

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 (341) hide show
  1. package/CHANGELOG.md +20 -2
  2. package/dist/dts/accordion/accordion.d.ts +47 -3
  3. package/dist/dts/accordion/accordion.definition.d.ts +0 -4
  4. package/dist/dts/accordion/accordion.options.d.ts +14 -0
  5. package/dist/dts/accordion/accordion.template.d.ts +4 -0
  6. package/dist/dts/accordion-item/accordion-item.d.ts +78 -3
  7. package/dist/dts/accordion-item/accordion-item.definition.d.ts +0 -3
  8. package/dist/dts/accordion-item/accordion-item.options.d.ts +1 -1
  9. package/dist/dts/accordion-item/accordion-item.template.d.ts +2 -1
  10. package/dist/dts/anchor-button/anchor-button.d.ts +116 -4
  11. package/dist/dts/anchor-button/anchor-button.definition.d.ts +0 -3
  12. package/dist/dts/anchor-button/anchor-button.options.d.ts +19 -2
  13. package/dist/dts/anchor-button/anchor-button.template.d.ts +7 -2
  14. package/dist/dts/avatar/avatar.options.d.ts +1 -1
  15. package/dist/dts/badge/badge.d.ts +1 -1
  16. package/dist/dts/badge/badge.definition.d.ts +0 -3
  17. package/dist/dts/badge/badge.options.d.ts +2 -2
  18. package/dist/dts/button/button.d.ts +142 -4
  19. package/dist/dts/button/button.definition.d.ts +0 -3
  20. package/dist/dts/button/button.form-associated.d.ts +14 -0
  21. package/dist/dts/button/button.options.d.ts +24 -3
  22. package/dist/dts/button/button.template.d.ts +2 -0
  23. package/dist/dts/checkbox/checkbox.d.ts +46 -3
  24. package/dist/dts/checkbox/checkbox.form-associated.d.ts +14 -0
  25. package/dist/dts/checkbox/checkbox.options.d.ts +1 -1
  26. package/dist/dts/checkbox/checkbox.template.d.ts +6 -1
  27. package/dist/dts/compound-button/compound-button.definition.d.ts +0 -3
  28. package/dist/dts/compound-button/compound-button.options.d.ts +6 -6
  29. package/dist/dts/counter-badge/counter-badge.d.ts +1 -1
  30. package/dist/dts/counter-badge/counter-badge.definition.d.ts +0 -4
  31. package/dist/dts/counter-badge/counter-badge.options.d.ts +1 -1
  32. package/dist/dts/dialog/dialog.options.d.ts +1 -1
  33. package/dist/dts/divider/divider.d.ts +20 -4
  34. package/dist/dts/divider/divider.options.d.ts +30 -6
  35. package/dist/dts/divider/divider.template.d.ts +1 -0
  36. package/dist/dts/form-associated/form-associated.d.ts +178 -0
  37. package/dist/dts/image/image.options.d.ts +1 -1
  38. package/dist/dts/label/label.options.d.ts +1 -1
  39. package/dist/dts/menu-button/menu-button.definition.d.ts +0 -3
  40. package/dist/dts/menu-button/menu-button.options.d.ts +2 -2
  41. package/dist/dts/menu-item/menu-item.d.ts +161 -4
  42. package/dist/dts/menu-item/menu-item.definition.d.ts +0 -4
  43. package/dist/dts/menu-item/menu-item.options.d.ts +30 -0
  44. package/dist/dts/menu-item/menu-item.template.d.ts +2 -1
  45. package/dist/dts/menu-list/menu-list.d.ts +71 -4
  46. package/dist/dts/menu-list/menu-list.definition.d.ts +0 -4
  47. package/dist/dts/menu-list/menu-list.template.d.ts +1 -0
  48. package/dist/dts/patterns/aria-globals.d.ts +189 -0
  49. package/dist/dts/patterns/index.d.ts +2 -0
  50. package/dist/dts/patterns/start-end.d.ts +44 -0
  51. package/dist/dts/progress-bar/base-progress.d.ts +41 -0
  52. package/dist/dts/progress-bar/progress-bar.d.ts +11 -4
  53. package/dist/dts/progress-bar/progress-bar.options.d.ts +10 -1
  54. package/dist/dts/progress-bar/progress-bar.template.d.ts +2 -0
  55. package/dist/dts/progress-ring/progress-ring.d.ts +15 -0
  56. package/dist/dts/progress-ring/progress-ring.options.d.ts +9 -0
  57. package/dist/dts/radio/radio.d.ts +54 -3
  58. package/dist/dts/radio/radio.form-associated.d.ts +14 -0
  59. package/dist/dts/radio/radio.template.d.ts +2 -1
  60. package/dist/dts/radio-group/index.d.ts +0 -1
  61. package/dist/dts/radio-group/radio-group.d.ts +91 -2
  62. package/dist/dts/radio-group/radio-group.options.d.ts +17 -0
  63. package/dist/dts/radio-group/radio-group.template.d.ts +1 -0
  64. package/dist/dts/slider/slider-utilities.d.ts +5 -0
  65. package/dist/dts/slider/slider.d.ts +195 -5
  66. package/dist/dts/slider/slider.form-associated.d.ts +14 -0
  67. package/dist/dts/slider/slider.options.d.ts +43 -2
  68. package/dist/dts/slider/slider.template.d.ts +4 -2
  69. package/dist/dts/spinner/spinner.d.ts +2 -2
  70. package/dist/dts/spinner/spinner.definition.d.ts +0 -4
  71. package/dist/dts/spinner/spinner.options.d.ts +1 -1
  72. package/dist/dts/spinner/spinner.template.d.ts +2 -0
  73. package/dist/dts/switch/switch.d.ts +34 -2
  74. package/dist/dts/switch/switch.form-associated.d.ts +14 -0
  75. package/dist/dts/switch/switch.options.d.ts +1 -1
  76. package/dist/dts/switch/switch.template.d.ts +2 -1
  77. package/dist/dts/tab/tab.d.ts +17 -2
  78. package/dist/dts/tab/tab.template.d.ts +3 -3
  79. package/dist/dts/tab-panel/tab-panel.d.ts +2 -2
  80. package/dist/dts/tab-panel/tab-panel.template.d.ts +4 -1
  81. package/dist/dts/tabs/tabs.d.ts +89 -4
  82. package/dist/dts/tabs/tabs.options.d.ts +21 -3
  83. package/dist/dts/tabs/tabs.template.d.ts +5 -1
  84. package/dist/dts/text/text.options.d.ts +1 -1
  85. package/dist/dts/text-input/index.d.ts +0 -1
  86. package/dist/dts/text-input/text-field.form-associated.d.ts +14 -0
  87. package/dist/dts/text-input/text-input.d.ts +134 -6
  88. package/dist/dts/text-input/text-input.options.d.ts +32 -1
  89. package/dist/dts/text-input/text-input.template.d.ts +2 -1
  90. package/dist/dts/theme/design-tokens.d.ts +384 -384
  91. package/dist/dts/theme/set-theme.d.ts +1 -2
  92. package/dist/dts/toggle-button/toggle-button.definition.d.ts +0 -2
  93. package/dist/dts/toggle-button/toggle-button.options.d.ts +2 -2
  94. package/dist/dts/utils/direction.d.ts +10 -0
  95. package/dist/dts/utils/index.d.ts +4 -0
  96. package/dist/dts/utils/template-helpers.d.ts +16 -0
  97. package/dist/dts/utils/typings.d.ts +6 -0
  98. package/dist/dts/utils/whitespace-filter.d.ts +12 -0
  99. package/dist/esm/accordion/accordion.definition.js +0 -4
  100. package/dist/esm/accordion/accordion.definition.js.map +1 -1
  101. package/dist/esm/accordion/accordion.js +216 -3
  102. package/dist/esm/accordion/accordion.js.map +1 -1
  103. package/dist/esm/accordion/accordion.options.js +9 -0
  104. package/dist/esm/accordion/accordion.options.js.map +1 -0
  105. package/dist/esm/accordion/accordion.template.js +11 -1
  106. package/dist/esm/accordion/accordion.template.js.map +1 -1
  107. package/dist/esm/accordion-item/accordion-item.definition.js +0 -3
  108. package/dist/esm/accordion-item/accordion-item.definition.js.map +1 -1
  109. package/dist/esm/accordion-item/accordion-item.js +80 -4
  110. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  111. package/dist/esm/accordion-item/accordion-item.styles.js +25 -25
  112. package/dist/esm/accordion-item/accordion-item.styles.js.map +1 -1
  113. package/dist/esm/accordion-item/accordion-item.template.js +47 -2
  114. package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
  115. package/dist/esm/anchor-button/anchor-button.definition.js +0 -3
  116. package/dist/esm/anchor-button/anchor-button.definition.js.map +1 -1
  117. package/dist/esm/anchor-button/anchor-button.js +52 -4
  118. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  119. package/dist/esm/anchor-button/anchor-button.options.js +11 -0
  120. package/dist/esm/anchor-button/anchor-button.options.js.map +1 -1
  121. package/dist/esm/anchor-button/anchor-button.template.js +49 -1
  122. package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
  123. package/dist/esm/avatar/avatar.styles.js +100 -100
  124. package/dist/esm/avatar/avatar.styles.js.map +1 -1
  125. package/dist/esm/badge/badge.definition.js +0 -3
  126. package/dist/esm/badge/badge.definition.js.map +1 -1
  127. package/dist/esm/badge/badge.js +1 -1
  128. package/dist/esm/badge/badge.js.map +1 -1
  129. package/dist/esm/badge/badge.styles.js +3 -3
  130. package/dist/esm/badge/badge.styles.js.map +1 -1
  131. package/dist/esm/badge/badge.template.js +2 -2
  132. package/dist/esm/badge/badge.template.js.map +1 -1
  133. package/dist/esm/button/button.definition.js +0 -3
  134. package/dist/esm/button/button.definition.js.map +1 -1
  135. package/dist/esm/button/button.form-associated.js +14 -0
  136. package/dist/esm/button/button.form-associated.js.map +1 -0
  137. package/dist/esm/button/button.js +124 -4
  138. package/dist/esm/button/button.js.map +1 -1
  139. package/dist/esm/button/button.options.js +10 -0
  140. package/dist/esm/button/button.options.js.map +1 -1
  141. package/dist/esm/button/button.styles.js +63 -63
  142. package/dist/esm/button/button.styles.js.map +1 -1
  143. package/dist/esm/button/button.template.js +49 -1
  144. package/dist/esm/button/button.template.js.map +1 -1
  145. package/dist/esm/checkbox/checkbox.form-associated.js +14 -0
  146. package/dist/esm/checkbox/checkbox.form-associated.js.map +1 -0
  147. package/dist/esm/checkbox/checkbox.js +62 -4
  148. package/dist/esm/checkbox/checkbox.js.map +1 -1
  149. package/dist/esm/checkbox/checkbox.styles.js +37 -37
  150. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  151. package/dist/esm/checkbox/checkbox.template.js +35 -7
  152. package/dist/esm/checkbox/checkbox.template.js.map +1 -1
  153. package/dist/esm/compound-button/compound-button.definition.js +0 -3
  154. package/dist/esm/compound-button/compound-button.definition.js.map +1 -1
  155. package/dist/esm/compound-button/compound-button.options.js.map +1 -1
  156. package/dist/esm/compound-button/compound-button.styles.js +18 -18
  157. package/dist/esm/compound-button/compound-button.styles.js.map +1 -1
  158. package/dist/esm/compound-button/compound-button.template.js +1 -1
  159. package/dist/esm/compound-button/compound-button.template.js.map +1 -1
  160. package/dist/esm/counter-badge/counter-badge.definition.js +0 -4
  161. package/dist/esm/counter-badge/counter-badge.definition.js.map +1 -1
  162. package/dist/esm/counter-badge/counter-badge.js +1 -1
  163. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  164. package/dist/esm/counter-badge/counter-badge.styles.js +2 -2
  165. package/dist/esm/counter-badge/counter-badge.styles.js.map +1 -1
  166. package/dist/esm/dialog/dialog.styles.js +21 -21
  167. package/dist/esm/dialog/dialog.styles.js.map +1 -1
  168. package/dist/esm/divider/divider.js +29 -4
  169. package/dist/esm/divider/divider.js.map +1 -1
  170. package/dist/esm/divider/divider.options.js +14 -5
  171. package/dist/esm/divider/divider.options.js.map +1 -1
  172. package/dist/esm/divider/divider.styles.js +13 -13
  173. package/dist/esm/divider/divider.styles.js.map +1 -1
  174. package/dist/esm/divider/divider.template.js +12 -1
  175. package/dist/esm/divider/divider.template.js.map +1 -1
  176. package/dist/esm/form-associated/form-associated.js +458 -0
  177. package/dist/esm/form-associated/form-associated.js.map +1 -0
  178. package/dist/esm/image/image.styles.js +4 -4
  179. package/dist/esm/image/image.styles.js.map +1 -1
  180. package/dist/esm/label/label.styles.js +14 -14
  181. package/dist/esm/label/label.styles.js.map +1 -1
  182. package/dist/esm/menu-button/menu-button.definition.js +0 -3
  183. package/dist/esm/menu-button/menu-button.definition.js.map +1 -1
  184. package/dist/esm/menu-button/menu-button.options.js.map +1 -1
  185. package/dist/esm/menu-button/menu-button.template.js +1 -1
  186. package/dist/esm/menu-button/menu-button.template.js.map +1 -1
  187. package/dist/esm/menu-item/menu-item.definition.js +0 -4
  188. package/dist/esm/menu-item/menu-item.definition.js.map +1 -1
  189. package/dist/esm/menu-item/menu-item.js +270 -4
  190. package/dist/esm/menu-item/menu-item.js.map +1 -1
  191. package/dist/esm/menu-item/menu-item.options.js +27 -0
  192. package/dist/esm/menu-item/menu-item.options.js.map +1 -0
  193. package/dist/esm/menu-item/menu-item.styles.js +16 -16
  194. package/dist/esm/menu-item/menu-item.styles.js.map +1 -1
  195. package/dist/esm/menu-item/menu-item.template.js +57 -2
  196. package/dist/esm/menu-item/menu-item.template.js.map +1 -1
  197. package/dist/esm/menu-list/menu-list.definition.js +0 -4
  198. package/dist/esm/menu-list/menu-list.definition.js.map +1 -1
  199. package/dist/esm/menu-list/menu-list.js +265 -10
  200. package/dist/esm/menu-list/menu-list.js.map +1 -1
  201. package/dist/esm/menu-list/menu-list.styles.js +4 -4
  202. package/dist/esm/menu-list/menu-list.styles.js.map +1 -1
  203. package/dist/esm/menu-list/menu-list.template.js +13 -1
  204. package/dist/esm/menu-list/menu-list.template.js.map +1 -1
  205. package/dist/esm/patterns/aria-globals.js +77 -0
  206. package/dist/esm/patterns/aria-globals.js.map +1 -0
  207. package/dist/esm/patterns/index.js +3 -0
  208. package/dist/esm/patterns/index.js.map +1 -0
  209. package/dist/esm/patterns/start-end.js +29 -0
  210. package/dist/esm/patterns/start-end.js.map +1 -0
  211. package/dist/esm/progress-bar/base-progress.js +61 -0
  212. package/dist/esm/progress-bar/base-progress.js.map +1 -0
  213. package/dist/esm/progress-bar/progress-bar.js +10 -3
  214. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  215. package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
  216. package/dist/esm/progress-bar/progress-bar.styles.js +25 -25
  217. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  218. package/dist/esm/progress-bar/progress-bar.template.js +25 -1
  219. package/dist/esm/progress-bar/progress-bar.template.js.map +1 -1
  220. package/dist/esm/progress-ring/progress-ring.js +16 -0
  221. package/dist/esm/progress-ring/progress-ring.js.map +1 -0
  222. package/dist/esm/progress-ring/progress-ring.options.js +2 -0
  223. package/dist/esm/progress-ring/progress-ring.options.js.map +1 -0
  224. package/dist/esm/radio/radio.form-associated.js +14 -0
  225. package/dist/esm/radio/radio.form-associated.js.map +1 -0
  226. package/dist/esm/radio/radio.js +96 -3
  227. package/dist/esm/radio/radio.js.map +1 -1
  228. package/dist/esm/radio/radio.styles.js +32 -32
  229. package/dist/esm/radio/radio.styles.js.map +1 -1
  230. package/dist/esm/radio/radio.template.js +28 -2
  231. package/dist/esm/radio/radio.template.js.map +1 -1
  232. package/dist/esm/radio-group/index.js +0 -1
  233. package/dist/esm/radio-group/index.js.map +1 -1
  234. package/dist/esm/radio-group/radio-group.js +346 -3
  235. package/dist/esm/radio-group/radio-group.js.map +1 -1
  236. package/dist/esm/radio-group/radio-group.options.js +7 -0
  237. package/dist/esm/radio-group/radio-group.options.js.map +1 -0
  238. package/dist/esm/radio-group/radio-group.styles.js +9 -9
  239. package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
  240. package/dist/esm/radio-group/radio-group.template.js +30 -1
  241. package/dist/esm/radio-group/radio-group.template.js.map +1 -1
  242. package/dist/esm/slider/slider-utilities.js +12 -0
  243. package/dist/esm/slider/slider-utilities.js.map +1 -0
  244. package/dist/esm/slider/slider.form-associated.js +14 -0
  245. package/dist/esm/slider/slider.form-associated.js.map +1 -0
  246. package/dist/esm/slider/slider.js +432 -16
  247. package/dist/esm/slider/slider.js.map +1 -1
  248. package/dist/esm/slider/slider.options.js +11 -1
  249. package/dist/esm/slider/slider.options.js.map +1 -1
  250. package/dist/esm/slider/slider.styles.js +23 -22
  251. package/dist/esm/slider/slider.styles.js.map +1 -1
  252. package/dist/esm/slider/slider.template.js +38 -1
  253. package/dist/esm/slider/slider.template.js.map +1 -1
  254. package/dist/esm/spinner/spinner.definition.js +0 -4
  255. package/dist/esm/spinner/spinner.definition.js.map +1 -1
  256. package/dist/esm/spinner/spinner.js +2 -2
  257. package/dist/esm/spinner/spinner.js.map +1 -1
  258. package/dist/esm/spinner/spinner.styles.js +5 -5
  259. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  260. package/dist/esm/spinner/spinner.template.js +27 -1
  261. package/dist/esm/spinner/spinner.template.js.map +1 -1
  262. package/dist/esm/styles/partials/badge.partials.js +75 -75
  263. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  264. package/dist/esm/switch/switch.form-associated.js +14 -0
  265. package/dist/esm/switch/switch.form-associated.js.map +1 -0
  266. package/dist/esm/switch/switch.js +48 -3
  267. package/dist/esm/switch/switch.js.map +1 -1
  268. package/dist/esm/switch/switch.styles.js +34 -34
  269. package/dist/esm/switch/switch.styles.js.map +1 -1
  270. package/dist/esm/switch/switch.template.js +25 -1
  271. package/dist/esm/switch/switch.template.js.map +1 -1
  272. package/dist/esm/tab/tab.js +14 -3
  273. package/dist/esm/tab/tab.js.map +1 -1
  274. package/dist/esm/tab/tab.styles.js +20 -20
  275. package/dist/esm/tab/tab.styles.js.map +1 -1
  276. package/dist/esm/tab/tab.template.js +1 -1
  277. package/dist/esm/tab/tab.template.js.map +1 -1
  278. package/dist/esm/tab-panel/tab-panel.js +2 -2
  279. package/dist/esm/tab-panel/tab-panel.js.map +1 -1
  280. package/dist/esm/tab-panel/tab-panel.styles.js +1 -1
  281. package/dist/esm/tab-panel/tab-panel.styles.js.map +1 -1
  282. package/dist/esm/tab-panel/tab-panel.template.js +8 -1
  283. package/dist/esm/tab-panel/tab-panel.template.js.map +1 -1
  284. package/dist/esm/tabs/tabs.js +278 -5
  285. package/dist/esm/tabs/tabs.js.map +1 -1
  286. package/dist/esm/tabs/tabs.options.js +6 -2
  287. package/dist/esm/tabs/tabs.options.js.map +1 -1
  288. package/dist/esm/tabs/tabs.styles.js +49 -49
  289. package/dist/esm/tabs/tabs.styles.js.map +1 -1
  290. package/dist/esm/tabs/tabs.template.js +14 -1
  291. package/dist/esm/tabs/tabs.template.js.map +1 -1
  292. package/dist/esm/text/text.styles.js +27 -27
  293. package/dist/esm/text/text.styles.js.map +1 -1
  294. package/dist/esm/text-input/index.js +0 -1
  295. package/dist/esm/text-input/index.js.map +1 -1
  296. package/dist/esm/text-input/text-field.form-associated.js +14 -0
  297. package/dist/esm/text-input/text-field.form-associated.js.map +1 -0
  298. package/dist/esm/text-input/text-input.js +167 -7
  299. package/dist/esm/text-input/text-input.js.map +1 -1
  300. package/dist/esm/text-input/text-input.options.js +26 -0
  301. package/dist/esm/text-input/text-input.options.js.map +1 -1
  302. package/dist/esm/text-input/text-input.styles.js +67 -67
  303. package/dist/esm/text-input/text-input.styles.js.map +1 -1
  304. package/dist/esm/text-input/text-input.template.js +64 -1
  305. package/dist/esm/text-input/text-input.template.js.map +1 -1
  306. package/dist/esm/theme/design-tokens.js +385 -386
  307. package/dist/esm/theme/design-tokens.js.map +1 -1
  308. package/dist/esm/theme/set-theme.js +2 -2
  309. package/dist/esm/theme/set-theme.js.map +1 -1
  310. package/dist/esm/toggle-button/toggle-button.definition.js +0 -2
  311. package/dist/esm/toggle-button/toggle-button.definition.js.map +1 -1
  312. package/dist/esm/toggle-button/toggle-button.options.js.map +1 -1
  313. package/dist/esm/toggle-button/toggle-button.styles.js +24 -24
  314. package/dist/esm/toggle-button/toggle-button.styles.js.map +1 -1
  315. package/dist/esm/toggle-button/toggle-button.template.js +1 -1
  316. package/dist/esm/toggle-button/toggle-button.template.js.map +1 -1
  317. package/dist/esm/utils/direction.js +15 -0
  318. package/dist/esm/utils/direction.js.map +1 -0
  319. package/dist/esm/utils/index.js +5 -0
  320. package/dist/esm/utils/index.js.map +1 -0
  321. package/dist/esm/utils/template-helpers.js +19 -0
  322. package/dist/esm/utils/template-helpers.js.map +1 -0
  323. package/dist/esm/utils/typings.js +3 -0
  324. package/dist/esm/utils/typings.js.map +1 -0
  325. package/dist/esm/utils/whitespace-filter.js +13 -0
  326. package/dist/esm/utils/whitespace-filter.js.map +1 -0
  327. package/dist/fluent-web-components.api.json +14729 -7818
  328. package/dist/storybook/711.b5d63aa3.iframe.bundle.js +2 -0
  329. package/dist/storybook/iframe.html +1 -1
  330. package/dist/storybook/main.588112e6.iframe.bundle.js +2 -0
  331. package/dist/storybook/project.json +1 -1
  332. package/dist/web-components.d.ts +2575 -623
  333. package/dist/web-components.js +5281 -7534
  334. package/dist/web-components.min.js +191 -191
  335. package/docs/api-report.md +985 -476
  336. package/package.json +1 -1
  337. package/dist/storybook/350.e4be85c2.iframe.bundle.js +0 -462
  338. package/dist/storybook/350.e4be85c2.iframe.bundle.js.map +0 -1
  339. package/dist/storybook/main.c651bad5.iframe.bundle.js +0 -2
  340. /package/dist/storybook/{350.e4be85c2.iframe.bundle.js.LICENSE.txt → 711.b5d63aa3.iframe.bundle.js.LICENSE.txt} +0 -0
  341. /package/dist/storybook/{main.c651bad5.iframe.bundle.js.LICENSE.txt → main.588112e6.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -4,13 +4,24 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { attr } from '@microsoft/fast-element';
8
- import { FASTButton } from '@microsoft/fast-foundation/button.js';
7
+ import { attr, observable } from '@microsoft/fast-element';
8
+ import { ARIAGlobalStatesAndProperties, StartEnd } from '../patterns/index.js';
9
+ import { applyMixins } from '../utils/apply-mixins.js';
10
+ import { FormAssociatedButton } from './button.form-associated.js';
11
+ import { ButtonType } from './button.options.js';
9
12
  /**
10
- * The base class used for constructing a fluent-button custom element
13
+ * A Button Custom HTML Element.
14
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element }.
15
+ *
16
+ * @slot start - Content which can be provided before the button content
17
+ * @slot end - Content which can be provided after the button content
18
+ * @slot - The default slot for button content
19
+ * @csspart control - The button element
20
+ * @csspart content - The element wrapping button content
21
+ *
11
22
  * @public
12
23
  */
13
- export class Button extends FASTButton {
24
+ export class Button extends FormAssociatedButton {
14
25
  constructor() {
15
26
  super(...arguments);
16
27
  /**
@@ -38,6 +49,65 @@ export class Button extends FASTButton {
38
49
  return;
39
50
  }
40
51
  };
52
+ /**
53
+ * Submits the parent form
54
+ */
55
+ this.handleSubmission = () => {
56
+ if (!this.form) {
57
+ return;
58
+ }
59
+ const attached = this.proxy.isConnected;
60
+ if (!attached) {
61
+ this.attachProxy();
62
+ }
63
+ // Browser support for requestSubmit is not comprehensive
64
+ // so click the proxy if it isn't supported
65
+ typeof this.form.requestSubmit === 'function' ? this.form.requestSubmit(this.proxy) : this.proxy.click();
66
+ if (!attached) {
67
+ this.detachProxy();
68
+ }
69
+ };
70
+ /**
71
+ * Resets the parent form
72
+ */
73
+ this.handleFormReset = () => {
74
+ var _a;
75
+ (_a = this.form) === null || _a === void 0 ? void 0 : _a.reset();
76
+ };
77
+ }
78
+ formactionChanged() {
79
+ if (this.proxy instanceof HTMLInputElement) {
80
+ this.proxy.formAction = this.formaction;
81
+ }
82
+ }
83
+ formenctypeChanged() {
84
+ if (this.proxy instanceof HTMLInputElement) {
85
+ this.proxy.formEnctype = this.formenctype;
86
+ }
87
+ }
88
+ formmethodChanged() {
89
+ if (this.proxy instanceof HTMLInputElement) {
90
+ this.proxy.formMethod = this.formmethod;
91
+ }
92
+ }
93
+ formnovalidateChanged() {
94
+ if (this.proxy instanceof HTMLInputElement) {
95
+ this.proxy.formNoValidate = this.formnovalidate;
96
+ }
97
+ }
98
+ formtargetChanged() {
99
+ if (this.proxy instanceof HTMLInputElement) {
100
+ this.proxy.formTarget = this.formtarget;
101
+ }
102
+ }
103
+ typeChanged(previous, next) {
104
+ if (this.proxy instanceof HTMLInputElement) {
105
+ this.proxy.type = this.type;
106
+ }
107
+ next === ButtonType.submit && this.addEventListener('click', this.handleSubmission);
108
+ previous === ButtonType.submit && this.removeEventListener('click', this.handleSubmission);
109
+ next === ButtonType.reset && this.addEventListener('click', this.handleFormReset);
110
+ previous === ButtonType.reset && this.removeEventListener('click', this.handleFormReset);
41
111
  }
42
112
  disabledFocusableChanged(prev, next) {
43
113
  if (!this.$fastController.isConnected) {
@@ -50,8 +120,16 @@ export class Button extends FASTButton {
50
120
  this.removeAttribute('aria-disabled');
51
121
  }
52
122
  }
123
+ /** {@inheritDoc (FormAssociated:interface).validate} */
124
+ validate() {
125
+ super.validate(this.control);
126
+ }
127
+ /**
128
+ * @internal
129
+ */
53
130
  connectedCallback() {
54
131
  super.connectedCallback();
132
+ this.proxy.setAttribute('type', this.type);
55
133
  this.addEventListener('click', this.handleDisabledFocusableClick);
56
134
  }
57
135
  disconnectedCallback() {
@@ -59,6 +137,30 @@ export class Button extends FASTButton {
59
137
  this.removeEventListener('click', this.handleDisabledFocusableClick);
60
138
  }
61
139
  }
140
+ __decorate([
141
+ attr({ mode: 'boolean' })
142
+ ], Button.prototype, "autofocus", void 0);
143
+ __decorate([
144
+ attr({ attribute: 'form' })
145
+ ], Button.prototype, "formId", void 0);
146
+ __decorate([
147
+ attr
148
+ ], Button.prototype, "formaction", void 0);
149
+ __decorate([
150
+ attr
151
+ ], Button.prototype, "formenctype", void 0);
152
+ __decorate([
153
+ attr
154
+ ], Button.prototype, "formmethod", void 0);
155
+ __decorate([
156
+ attr({ mode: 'boolean' })
157
+ ], Button.prototype, "formnovalidate", void 0);
158
+ __decorate([
159
+ attr
160
+ ], Button.prototype, "formtarget", void 0);
161
+ __decorate([
162
+ attr
163
+ ], Button.prototype, "type", void 0);
62
164
  __decorate([
63
165
  attr
64
166
  ], Button.prototype, "appearance", void 0);
@@ -74,4 +176,22 @@ __decorate([
74
176
  __decorate([
75
177
  attr({ attribute: 'disabled-focusable', mode: 'boolean' })
76
178
  ], Button.prototype, "disabledFocusable", void 0);
179
+ __decorate([
180
+ observable
181
+ ], Button.prototype, "defaultSlottedContent", void 0);
182
+ /**
183
+ * Includes ARIA states and properties relating to the ARIA button role
184
+ *
185
+ * @public
186
+ */
187
+ export class DelegatesARIAButton {
188
+ }
189
+ __decorate([
190
+ attr({ attribute: 'aria-expanded' })
191
+ ], DelegatesARIAButton.prototype, "ariaExpanded", void 0);
192
+ __decorate([
193
+ attr({ attribute: 'aria-pressed' })
194
+ ], DelegatesARIAButton.prototype, "ariaPressed", void 0);
195
+ applyMixins(DelegatesARIAButton, ARIAGlobalStatesAndProperties);
196
+ applyMixins(Button, StartEnd, DelegatesARIAButton);
77
197
  //# 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,14 @@ 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
+ };
30
40
  //# 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"}
@@ -6,7 +6,7 @@ export const styles = css `
6
6
  ${display('inline-flex')}
7
7
 
8
8
  :host {
9
- --icon-spacing: ${spacingHorizontalSNudge};
9
+ --icon-spacing: var(${spacingHorizontalSNudge});
10
10
  contain: layout style;
11
11
  vertical-align: middle;
12
12
  }
@@ -20,19 +20,19 @@ export const styles = css `
20
20
  margin: 0;
21
21
  min-height: 32px;
22
22
  outline-style: none;
23
- background-color: ${colorNeutralBackground1};
24
- color: ${colorNeutralForeground1};
25
- border: ${strokeWidthThin} solid ${colorNeutralStroke1};
26
- padding: 0 ${spacingHorizontalM};
23
+ background-color: var(${colorNeutralBackground1});
24
+ color: var(${colorNeutralForeground1});
25
+ border: var(${strokeWidthThin}) solid var(${colorNeutralStroke1});
26
+ padding: 0 var(${spacingHorizontalM});
27
27
  min-width: 96px;
28
- border-radius: ${borderRadiusMedium};
29
- font-size: ${fontSizeBase300};
30
- font-family: ${fontFamilyBase};
31
- font-weight: ${fontWeightSemibold};
32
- line-height: ${lineHeightBase300};
33
- transition-duration: ${durationFaster};
28
+ border-radius: var(${borderRadiusMedium});
29
+ font-size: var(${fontSizeBase300});
30
+ font-family: var(${fontFamilyBase});
31
+ font-weight: var(${fontWeightSemibold});
32
+ line-height: var(${lineHeightBase300});
33
+ transition-duration: var(${durationFaster});
34
34
  transition-property: background, border, color;
35
- transition-timing-function: ${curveEasyEase};
35
+ transition-timing-function: var(${curveEasyEase});
36
36
  cursor: pointer;
37
37
  }
38
38
 
@@ -41,22 +41,22 @@ export const styles = css `
41
41
  }
42
42
 
43
43
  :host(:hover) .control {
44
- background-color: ${colorNeutralBackground1Hover};
45
- color: ${colorNeutralForeground1Hover};
46
- border-color: ${colorNeutralStroke1Hover};
44
+ background-color: var(${colorNeutralBackground1Hover});
45
+ color: var(${colorNeutralForeground1Hover});
46
+ border-color: var(${colorNeutralStroke1Hover});
47
47
  }
48
48
 
49
49
  :host(:hover:active) .control {
50
- background-color: ${colorNeutralBackground1Pressed};
51
- border-color: ${colorNeutralStroke1Pressed};
52
- color: ${colorNeutralForeground1Pressed};
50
+ background-color: var(${colorNeutralBackground1Pressed});
51
+ border-color: var(${colorNeutralStroke1Pressed});
52
+ color: var(${colorNeutralForeground1Pressed});
53
53
  outline-style: none;
54
54
  }
55
55
 
56
56
  :host .control:focus-visible {
57
- border-color: ${colorTransparentStroke};
58
- outline: ${strokeWidthThick} solid ${colorTransparentStroke};
59
- box-shadow: ${shadow4}, 0 0 0 2px ${colorStrokeFocus2};
57
+ border-color: var(${colorTransparentStroke});
58
+ outline: var(${strokeWidthThick}) solid var(${colorTransparentStroke});
59
+ box-shadow: var(${shadow4}), 0 0 0 2px var(${colorStrokeFocus2});
60
60
  }
61
61
 
62
62
  @media screen and (prefers-reduced-motion: reduce) {
@@ -86,17 +86,17 @@ export const styles = css `
86
86
  }
87
87
 
88
88
  :host([size='small']) {
89
- --icon-spacing: ${spacingHorizontalXS};
89
+ --icon-spacing: var(${spacingHorizontalXS});
90
90
  }
91
91
 
92
92
  :host([size='small']) .control {
93
93
  min-height: 24px;
94
94
  min-width: 64px;
95
- padding: 0 ${spacingHorizontalS};
96
- border-radius: ${borderRadiusSmall};
97
- font-size: ${fontSizeBase200};
98
- line-height: ${lineHeightBase200};
99
- font-weight: ${fontWeightRegular};
95
+ padding: 0 var(${spacingHorizontalS});
96
+ border-radius: var(${borderRadiusSmall});
97
+ font-size: var(${fontSizeBase200});
98
+ line-height: var(${lineHeightBase200});
99
+ font-weight: var(${fontWeightRegular});
100
100
  }
101
101
 
102
102
  :host([size='small'][icon-only]) .control {
@@ -106,10 +106,10 @@ export const styles = css `
106
106
 
107
107
  :host([size='large']) .control {
108
108
  min-height: 40px;
109
- border-radius: ${borderRadiusLarge};
110
- padding: 0 ${spacingHorizontalL};
111
- font-size: ${fontSizeBase400};
112
- line-height: ${lineHeightBase400};
109
+ border-radius: var(${borderRadiusLarge});
110
+ padding: 0 var(${spacingHorizontalL});
111
+ font-size: var(${fontSizeBase400});
112
+ line-height: var(${lineHeightBase400});
113
113
  }
114
114
 
115
115
  :host([size='large'][icon-only]) .control {
@@ -125,37 +125,37 @@ export const styles = css `
125
125
 
126
126
  :host([shape='circular']) .control,
127
127
  :host([shape='circular']) .control:focus-visible {
128
- border-radius: ${borderRadiusCircular};
128
+ border-radius: var(${borderRadiusCircular});
129
129
  }
130
130
 
131
131
  :host([shape='square']) .control,
132
132
  :host([shape='square']) .control:focus-visible {
133
- border-radius: ${borderRadiusNone};
133
+ border-radius: var(${borderRadiusNone});
134
134
  }
135
135
 
136
136
  :host([appearance='primary']) .control {
137
- background-color: ${colorBrandBackground};
138
- color: ${colorNeutralForegroundOnBrand};
137
+ background-color: var(${colorBrandBackground});
138
+ color: var(${colorNeutralForegroundOnBrand});
139
139
  border-color: transparent;
140
140
  }
141
141
 
142
142
  :host([appearance='primary']:hover) .control {
143
- background-color: ${colorBrandBackgroundHover};
143
+ background-color: var(${colorBrandBackgroundHover});
144
144
  }
145
145
 
146
146
  :host([appearance='primary']:hover) .control,
147
147
  :host([appearance='primary']:hover:active) .control {
148
148
  border-color: transparent;
149
- color: ${colorNeutralForegroundOnBrand};
149
+ color: var(${colorNeutralForegroundOnBrand});
150
150
  }
151
151
 
152
152
  :host([appearance='primary']:hover:active) .control {
153
- background-color: ${colorBrandBackgroundPressed};
153
+ background-color: var(${colorBrandBackgroundPressed});
154
154
  }
155
155
 
156
156
  :host([appearance='primary']) .control:focus-visible {
157
- border-color: ${colorNeutralForegroundOnBrand};
158
- box-shadow: ${shadow2}, 0 0 0 2px ${colorStrokeFocus2};
157
+ border-color: var(${colorNeutralForegroundOnBrand});
158
+ box-shadow: var(${shadow2}), 0 0 0 2px var(${colorStrokeFocus2});
159
159
  }
160
160
 
161
161
  :host(is:([disabled][appearance='primary'], [disabled-focusabale][appearance="primary"])) .control,
@@ -165,69 +165,69 @@ export const styles = css `
165
165
  }
166
166
 
167
167
  :host([appearance='outline']) .control {
168
- background-color: ${colorTransparentBackground};
168
+ background-color: var(${colorTransparentBackground});
169
169
  }
170
170
 
171
171
  :host([appearance='outline']:hover) .control {
172
- background-color: ${colorTransparentBackgroundHover};
172
+ background-color: var(${colorTransparentBackgroundHover});
173
173
  }
174
174
 
175
175
  :host([appearance='outline']:hover:active) .control {
176
- background-color: ${colorTransparentBackgroundPressed};
176
+ background-color: var(${colorTransparentBackgroundPressed});
177
177
  }
178
178
 
179
179
  :host(is:([disabled][appearance='outline'], [disabled-focusabale][appearance="outline"])) .control,
180
180
  :host(is:([disabled][appearance='outline'], [disabled-focusabale][appearance="outline"]):hover) .control,
181
181
  :host(is:([disabled][appearance='outline'], [disabled-focusabale][appearance="outline"]):hover:active) .control {
182
- background-color: ${colorTransparentBackground};
182
+ background-color: var(${colorTransparentBackground});
183
183
  }
184
184
 
185
185
  :host([appearance='subtle']) .control {
186
- background-color: ${colorSubtleBackground};
187
- color: ${colorNeutralForeground2};
186
+ background-color: var(${colorSubtleBackground});
187
+ color: var(${colorNeutralForeground2});
188
188
  border-color: transparent;
189
189
  }
190
190
 
191
191
  :host([appearance='subtle']:hover) .control {
192
- background-color: ${colorSubtleBackgroundHover};
193
- color: ${colorNeutralForeground2Hover};
192
+ background-color: var(${colorSubtleBackgroundHover});
193
+ color: var(${colorNeutralForeground2Hover});
194
194
  border-color: transparent;
195
195
  }
196
196
 
197
197
  :host([appearance='subtle']:hover:active) .control {
198
- background-color: ${colorSubtleBackgroundPressed};
199
- color: ${colorNeutralForeground2Pressed};
198
+ background-color: var(${colorSubtleBackgroundPressed});
199
+ color: var(${colorNeutralForeground2Pressed});
200
200
  border-color: transparent;
201
201
  }
202
202
 
203
203
  :host(is:([disabled][appearance='subtle'], [disabled-focusabale][appearance="subtle"])) .control,
204
204
  :host(is:([disabled][appearance='subtle'], [disabled-focusabale][appearance="subtle"]):hover) .control,
205
205
  :host(is:([disabled][appearance='subtle'], [disabled-focusabale][appearance="subtle"]):hover:active) .control {
206
- background-color: ${colorTransparentBackground};
206
+ background-color: var(${colorTransparentBackground});
207
207
  border-color: transparent;
208
208
  }
209
209
 
210
210
  :host([appearance='subtle']:hover) ::slotted(svg) {
211
- fill: ${colorNeutralForeground2BrandHover};
211
+ fill: var(${colorNeutralForeground2BrandHover});
212
212
  }
213
213
 
214
214
  :host([appearance='subtle']:hover:active) ::slotted(svg) {
215
- fill: ${colorNeutralForeground2BrandPressed};
215
+ fill: var(${colorNeutralForeground2BrandPressed});
216
216
  }
217
217
 
218
218
  :host([appearance='transparent']) .control {
219
- background-color: ${colorTransparentBackground};
220
- color: ${colorNeutralForeground2};
219
+ background-color: var(${colorTransparentBackground});
220
+ color: var(${colorNeutralForeground2});
221
221
  }
222
222
 
223
223
  :host([appearance='transparent']:hover) .control {
224
- background-color: ${colorTransparentBackgroundHover};
225
- color: ${colorNeutralForeground2BrandHover};
224
+ background-color: var(${colorTransparentBackgroundHover});
225
+ color: var(${colorNeutralForeground2BrandHover});
226
226
  }
227
227
 
228
228
  :host([appearance='transparent']:hover:active) .control {
229
- background-color: ${colorTransparentBackgroundPressed};
230
- color: ${colorNeutralForeground2BrandPressed};
229
+ background-color: var(${colorTransparentBackgroundPressed});
230
+ color: var(${colorNeutralForeground2BrandPressed});
231
231
  }
232
232
 
233
233
  :host([appearance='transparent']) .control,
@@ -240,16 +240,16 @@ export const styles = css `
240
240
  :host(is:([disabled][appearance='transparent'], [disabled-focusabale][appearance="transparent"]):hover) .control,
241
241
  :host(is:([disabled][appearance='transparent'], [disabled-focusabale][appearance="transparent"]):hover:active) .control {
242
242
  border-color: transparent;
243
- background-color: ${colorTransparentBackground};
243
+ background-color: var(${colorTransparentBackground});
244
244
  }
245
245
 
246
246
  :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable])) .control,
247
247
  :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable]):hover) .control,
248
248
  :host(:is([disabled], [disabled-focusable], [appearance][disabled], [appearance][disabled-focusable]):hover:active)
249
249
  .control {
250
- background-color: ${colorNeutralBackgroundDisabled};
251
- border-color: ${colorNeutralStrokeDisabled};
252
- color: ${colorNeutralForegroundDisabled};
250
+ background-color: var(${colorNeutralBackgroundDisabled});
251
+ border-color: var(${colorNeutralStrokeDisabled});
252
+ color: var(${colorNeutralForegroundDisabled});
253
253
  cursor: not-allowed;
254
254
  }
255
255
  `.withBehaviors(forcedColorsStylesheetBehavior(css `
@@ -1 +1 @@
1
- {"version":3,"file":"button.styles.js","sourceRoot":"","sources":["../../../src/button/button.styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"button.styles.js","sourceRoot":"","sources":["../../../src/button/button.styles.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,55 @@
1
- import { buttonTemplate } from '@microsoft/fast-foundation/button.js';
1
+ import { html, ref, slotted } from '@microsoft/fast-element';
2
+ import { endSlotTemplate, startSlotTemplate } from '../patterns/index.js';
2
3
  /**
3
4
  * The template for the Button component.
4
5
  * @public
5
6
  */
7
+ export function buttonTemplate(options = {}) {
8
+ return html `
9
+ <button
10
+ class="control"
11
+ part="control"
12
+ ?autofocus="${x => x.autofocus}"
13
+ ?disabled="${x => x.disabled}"
14
+ form="${x => x.formId}"
15
+ formaction="${x => x.formaction}"
16
+ formenctype="${x => x.formenctype}"
17
+ formmethod="${x => x.formmethod}"
18
+ ?formnovalidate="${x => x.formnovalidate}"
19
+ formtarget="${x => x.formtarget}"
20
+ name="${x => x.name}"
21
+ type="${x => x.type}"
22
+ value="${x => x.value}"
23
+ aria-atomic="${x => x.ariaAtomic}"
24
+ aria-busy="${x => x.ariaBusy}"
25
+ aria-controls="${x => x.ariaControls}"
26
+ aria-current="${x => x.ariaCurrent}"
27
+ aria-describedby="${x => x.ariaDescribedby}"
28
+ aria-details="${x => x.ariaDetails}"
29
+ aria-disabled="${x => x.ariaDisabled}"
30
+ aria-errormessage="${x => x.ariaErrormessage}"
31
+ aria-expanded="${x => x.ariaExpanded}"
32
+ aria-flowto="${x => x.ariaFlowto}"
33
+ aria-haspopup="${x => x.ariaHaspopup}"
34
+ aria-hidden="${x => x.ariaHidden}"
35
+ aria-invalid="${x => x.ariaInvalid}"
36
+ aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
37
+ aria-label="${x => x.ariaLabel}"
38
+ aria-labelledby="${x => x.ariaLabelledby}"
39
+ aria-live="${x => x.ariaLive}"
40
+ aria-owns="${x => x.ariaOwns}"
41
+ aria-pressed="${x => x.ariaPressed}"
42
+ aria-relevant="${x => x.ariaRelevant}"
43
+ aria-roledescription="${x => x.ariaRoledescription}"
44
+ ${ref('control')}
45
+ >
46
+ ${startSlotTemplate(options)}
47
+ <span class="content" part="content">
48
+ <slot ${slotted('defaultSlottedContent')}></slot>
49
+ </span>
50
+ ${endSlotTemplate(options)}
51
+ </button>
52
+ `;
53
+ }
6
54
  export const template = buttonTemplate();
7
55
  //# sourceMappingURL=button.template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.template.js","sourceRoot":"","sources":["../../../src/button/button.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAGtE;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAgC,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"button.template.js","sourceRoot":"","sources":["../../../src/button/button.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI1E;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAmB,UAAyB,EAAE;IAC1E,OAAO,IAAI,CAAG;;;;oBAII,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;mBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;cACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;oBACP,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;qBAChB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;oBACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;yBACZ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc;oBAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;cACvB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;cACX,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;eACV,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;qBACN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;mBACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;uBACX,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;sBACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;0BACd,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;sBAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;uBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;2BACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;uBAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;qBACrB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;uBACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;qBACrB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;sBAChB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;2BACb,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;oBAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;yBACX,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc;mBAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;mBACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;sBACZ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;uBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;8BACZ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB;QAChD,GAAG,CAAC,SAAS,CAAC;;QAEd,iBAAiB,CAAC,OAAO,CAAC;;gBAElB,OAAO,CAAC,uBAAuB,CAAC;;QAExC,eAAe,CAAC,OAAO,CAAC;;GAE7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAgC,cAAc,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FASTElement } from '@microsoft/fast-element';
2
+ import { CheckableFormAssociated } from '../form-associated/form-associated.js';
3
+ class _Checkbox extends FASTElement {
4
+ }
5
+ /**
6
+ * @beta
7
+ */
8
+ export class FormAssociatedCheckbox extends CheckableFormAssociated(_Checkbox) {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.proxy = document.createElement('input');
12
+ }
13
+ }
14
+ //# sourceMappingURL=checkbox.form-associated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.form-associated.js","sourceRoot":"","sources":["../../../src/checkbox/checkbox.form-associated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,MAAM,SAAU,SAAQ,WAAW;CAAG;AAItC;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB,CAAC,SAAS,CAAC;IAA9E;;QACE,UAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;CAAA"}
@@ -4,13 +4,65 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { attr } from '@microsoft/fast-element';
8
- import { FASTCheckbox } from '@microsoft/fast-foundation/checkbox.js';
7
+ import { attr, observable } from '@microsoft/fast-element';
8
+ import { keySpace } from '@microsoft/fast-web-utilities';
9
+ import { FormAssociatedCheckbox } from './checkbox.form-associated.js';
9
10
  /**
10
- * The base class used for constucting a fluent checkbox custom element
11
+ * A Checkbox Custom HTML Element.
12
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#checkbox | ARIA checkbox }.
13
+ *
14
+ * @slot checked-indicator - The checked indicator
15
+ * @slot indeterminate-indicator - The indeterminate indicator
16
+ * @slot - The default slot for the label
17
+ * @csspart control - The element representing the visual checkbox control
18
+ * @csspart label - The label
19
+ * @fires change - Emits a custom change event when the checked state changes
20
+ *
11
21
  * @public
12
22
  */
13
- export class Checkbox extends FASTCheckbox {
23
+ export class Checkbox extends FormAssociatedCheckbox {
24
+ constructor() {
25
+ super();
26
+ /**
27
+ * The element's value to be included in form submission when checked.
28
+ * Default to "on" to reach parity with input[type="checkbox"]
29
+ *
30
+ * @internal
31
+ */
32
+ this.initialValue = 'on';
33
+ /**
34
+ * The indeterminate state of the control
35
+ */
36
+ this.indeterminate = false;
37
+ /**
38
+ * @internal
39
+ */
40
+ this.keypressHandler = (e) => {
41
+ if (this.disabled) {
42
+ return;
43
+ }
44
+ switch (e.key) {
45
+ case keySpace:
46
+ this.toggleChecked();
47
+ break;
48
+ }
49
+ };
50
+ /**
51
+ * @internal
52
+ */
53
+ this.clickHandler = (e) => {
54
+ if (!this.disabled) {
55
+ this.toggleChecked();
56
+ }
57
+ };
58
+ this.proxy.setAttribute('type', 'checkbox');
59
+ }
60
+ toggleChecked() {
61
+ if (this.indeterminate) {
62
+ this.indeterminate = false;
63
+ }
64
+ this.checked = !this.checked;
65
+ }
14
66
  }
15
67
  __decorate([
16
68
  attr
@@ -21,4 +73,10 @@ __decorate([
21
73
  __decorate([
22
74
  attr({ attribute: 'label-position' })
23
75
  ], Checkbox.prototype, "labelPosition", void 0);
76
+ __decorate([
77
+ observable
78
+ ], Checkbox.prototype, "defaultSlottedNodes", void 0);
79
+ __decorate([
80
+ observable
81
+ ], Checkbox.prototype, "indeterminate", void 0);
24
82
  //# sourceMappingURL=checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/checkbox/checkbox.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAGtE;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,YAAY;CAiCzC;AAvBC;IADC,IAAI;uCACwB;AAW7B;IADC,IAAI;sCACsB;AAW3B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;+CACO"}
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/checkbox/checkbox.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAYvE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,QAAS,SAAQ,sBAAsB;IAqDlD;QACE,KAAK,EAAE,CAAC;QArBV;;;;;WAKG;QACI,iBAAY,GAAW,IAAI,CAAC;QAQnC;;WAEG;QAEI,kBAAa,GAAY,KAAK,CAAC;QAetC;;WAEG;QACI,oBAAe,GAAG,CAAC,CAAgB,EAAQ,EAAE;YAClD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;aACR;YAED,QAAQ,CAAC,CAAC,GAAG,EAAE;gBACb,KAAK,QAAQ;oBACX,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,MAAM;aACT;QACH,CAAC,CAAC;QAEF;;WAEG;QACI,iBAAY,GAAG,CAAC,CAAa,EAAQ,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC,CAAC;QAhCA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B;QACD,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC/B,CAAC;CAyBF;AA/EC;IADC,IAAI;uCACwB;AAW7B;IADC,IAAI;sCACsB;AAW3B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;+CACO;AAa7C;IADC,UAAU;qDACyB;AAMpC;IADC,UAAU;+CAC2B"}