@fluentui/web-components 3.0.0-rc.2 → 3.0.0-rc.20

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 (679) hide show
  1. package/CHANGELOG.md +177 -2
  2. package/custom-elements.json +9653 -9708
  3. package/dist/esm/accordion/accordion.d.ts +11 -8
  4. package/dist/esm/accordion/accordion.definition.js +2 -2
  5. package/dist/esm/accordion/accordion.definition.js.map +1 -1
  6. package/dist/esm/accordion/accordion.js +47 -46
  7. package/dist/esm/accordion/accordion.js.map +1 -1
  8. package/dist/esm/accordion/accordion.options.d.ts +7 -1
  9. package/dist/esm/accordion/accordion.options.js +7 -0
  10. package/dist/esm/accordion/accordion.options.js.map +1 -1
  11. package/dist/esm/accordion/accordion.styles.js +1 -1
  12. package/dist/esm/accordion/accordion.styles.js.map +1 -1
  13. package/dist/esm/accordion/index.d.ts +1 -0
  14. package/dist/esm/accordion/index.js +1 -0
  15. package/dist/esm/accordion/index.js.map +1 -1
  16. package/dist/esm/accordion-item/accordion-item.base.d.ts +0 -8
  17. package/dist/esm/accordion-item/accordion-item.base.js +3 -12
  18. package/dist/esm/accordion-item/accordion-item.base.js.map +1 -1
  19. package/dist/esm/accordion-item/accordion-item.d.ts +2 -4
  20. package/dist/esm/accordion-item/accordion-item.definition.js +2 -2
  21. package/dist/esm/accordion-item/accordion-item.definition.js.map +1 -1
  22. package/dist/esm/accordion-item/accordion-item.js +1 -1
  23. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  24. package/dist/esm/accordion-item/accordion-item.options.d.ts +17 -1
  25. package/dist/esm/accordion-item/accordion-item.options.js +19 -0
  26. package/dist/esm/accordion-item/accordion-item.options.js.map +1 -1
  27. package/dist/esm/accordion-item/accordion-item.styles.js +1 -1
  28. package/dist/esm/accordion-item/accordion-item.styles.js.map +1 -1
  29. package/dist/esm/accordion-item/accordion-item.template.js +7 -7
  30. package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
  31. package/dist/esm/accordion-item/index.d.ts +1 -0
  32. package/dist/esm/accordion-item/index.js +1 -0
  33. package/dist/esm/accordion-item/index.js.map +1 -1
  34. package/dist/esm/anchor-button/anchor-button.base.d.ts +1 -1
  35. package/dist/esm/anchor-button/anchor-button.base.js +9 -6
  36. package/dist/esm/anchor-button/anchor-button.base.js.map +1 -1
  37. package/dist/esm/anchor-button/anchor-button.d.ts +1 -2
  38. package/dist/esm/anchor-button/anchor-button.definition.js +2 -2
  39. package/dist/esm/anchor-button/anchor-button.definition.js.map +1 -1
  40. package/dist/esm/anchor-button/anchor-button.js +1 -1
  41. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  42. package/dist/esm/anchor-button/anchor-button.options.d.ts +7 -1
  43. package/dist/esm/anchor-button/anchor-button.options.js +7 -0
  44. package/dist/esm/anchor-button/anchor-button.options.js.map +1 -1
  45. package/dist/esm/anchor-button/anchor-button.styles.js +4 -3
  46. package/dist/esm/anchor-button/anchor-button.styles.js.map +1 -1
  47. package/dist/esm/anchor-button/anchor-button.template.js +1 -1
  48. package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
  49. package/dist/esm/anchor-button/index.d.ts +1 -0
  50. package/dist/esm/anchor-button/index.js +1 -0
  51. package/dist/esm/anchor-button/index.js.map +1 -1
  52. package/dist/esm/avatar/avatar.base.d.ts +64 -10
  53. package/dist/esm/avatar/avatar.base.js +100 -27
  54. package/dist/esm/avatar/avatar.base.js.map +1 -1
  55. package/dist/esm/avatar/avatar.definition.js +2 -2
  56. package/dist/esm/avatar/avatar.definition.js.map +1 -1
  57. package/dist/esm/avatar/avatar.options.d.ts +7 -1
  58. package/dist/esm/avatar/avatar.options.js +7 -0
  59. package/dist/esm/avatar/avatar.options.js.map +1 -1
  60. package/dist/esm/avatar/avatar.styles.js +25 -8
  61. package/dist/esm/avatar/avatar.styles.js.map +1 -1
  62. package/dist/esm/avatar/avatar.template.js +4 -3
  63. package/dist/esm/avatar/avatar.template.js.map +1 -1
  64. package/dist/esm/avatar/index.d.ts +1 -0
  65. package/dist/esm/avatar/index.js +1 -0
  66. package/dist/esm/avatar/index.js.map +1 -1
  67. package/dist/esm/badge/badge.d.ts +1 -1
  68. package/dist/esm/badge/badge.definition.js +2 -2
  69. package/dist/esm/badge/badge.definition.js.map +1 -1
  70. package/dist/esm/badge/badge.js +1 -1
  71. package/dist/esm/badge/badge.js.map +1 -1
  72. package/dist/esm/badge/badge.options.d.ts +12 -3
  73. package/dist/esm/badge/badge.options.js +7 -0
  74. package/dist/esm/badge/badge.options.js.map +1 -1
  75. package/dist/esm/badge/badge.styles.js +5 -4
  76. package/dist/esm/badge/badge.styles.js.map +1 -1
  77. package/dist/esm/badge/badge.template.js +1 -1
  78. package/dist/esm/badge/badge.template.js.map +1 -1
  79. package/dist/esm/badge/index.d.ts +3 -3
  80. package/dist/esm/badge/index.js +3 -3
  81. package/dist/esm/badge/index.js.map +1 -1
  82. package/dist/esm/button/button.base.d.ts +15 -1
  83. package/dist/esm/button/button.base.js +28 -26
  84. package/dist/esm/button/button.base.js.map +1 -1
  85. package/dist/esm/button/button.d.ts +1 -1
  86. package/dist/esm/button/button.definition.js +2 -2
  87. package/dist/esm/button/button.definition.js.map +1 -1
  88. package/dist/esm/button/button.js +1 -1
  89. package/dist/esm/button/button.js.map +1 -1
  90. package/dist/esm/button/button.options.d.ts +8 -2
  91. package/dist/esm/button/button.options.js +7 -0
  92. package/dist/esm/button/button.options.js.map +1 -1
  93. package/dist/esm/button/button.styles.js +5 -3
  94. package/dist/esm/button/button.styles.js.map +1 -1
  95. package/dist/esm/button/button.template.d.ts +3 -3
  96. package/dist/esm/button/button.template.js +1 -1
  97. package/dist/esm/button/button.template.js.map +1 -1
  98. package/dist/esm/button/index.d.ts +1 -0
  99. package/dist/esm/button/index.js +1 -0
  100. package/dist/esm/button/index.js.map +1 -1
  101. package/dist/esm/checkbox/checkbox.definition.js +2 -2
  102. package/dist/esm/checkbox/checkbox.definition.js.map +1 -1
  103. package/dist/esm/checkbox/checkbox.options.d.ts +6 -0
  104. package/dist/esm/checkbox/checkbox.options.js +7 -0
  105. package/dist/esm/checkbox/checkbox.options.js.map +1 -1
  106. package/dist/esm/checkbox/checkbox.styles.js +4 -3
  107. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  108. package/dist/esm/checkbox/index.d.ts +1 -0
  109. package/dist/esm/checkbox/index.js +1 -0
  110. package/dist/esm/checkbox/index.js.map +1 -1
  111. package/dist/esm/compound-button/compound-button.definition.js +2 -2
  112. package/dist/esm/compound-button/compound-button.definition.js.map +1 -1
  113. package/dist/esm/compound-button/compound-button.options.d.ts +7 -1
  114. package/dist/esm/compound-button/compound-button.options.js +7 -0
  115. package/dist/esm/compound-button/compound-button.options.js.map +1 -1
  116. package/dist/esm/compound-button/compound-button.styles.js +4 -3
  117. package/dist/esm/compound-button/compound-button.styles.js.map +1 -1
  118. package/dist/esm/compound-button/compound-button.template.d.ts +3 -1
  119. package/dist/esm/compound-button/compound-button.template.js +8 -3
  120. package/dist/esm/compound-button/compound-button.template.js.map +1 -1
  121. package/dist/esm/compound-button/index.d.ts +1 -0
  122. package/dist/esm/compound-button/index.js +1 -0
  123. package/dist/esm/compound-button/index.js.map +1 -1
  124. package/dist/esm/counter-badge/counter-badge.base.d.ts +55 -0
  125. package/dist/esm/counter-badge/counter-badge.base.js +84 -0
  126. package/dist/esm/counter-badge/counter-badge.base.js.map +1 -0
  127. package/dist/esm/counter-badge/counter-badge.d.ts +5 -57
  128. package/dist/esm/counter-badge/counter-badge.definition.js +2 -2
  129. package/dist/esm/counter-badge/counter-badge.definition.js.map +1 -1
  130. package/dist/esm/counter-badge/counter-badge.js +6 -76
  131. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  132. package/dist/esm/counter-badge/counter-badge.options.d.ts +26 -12
  133. package/dist/esm/counter-badge/counter-badge.options.js +15 -4
  134. package/dist/esm/counter-badge/counter-badge.options.js.map +1 -1
  135. package/dist/esm/counter-badge/counter-badge.styles.js +1 -1
  136. package/dist/esm/counter-badge/counter-badge.styles.js.map +1 -1
  137. package/dist/esm/counter-badge/counter-badge.template.d.ts +9 -1
  138. package/dist/esm/counter-badge/counter-badge.template.js +15 -7
  139. package/dist/esm/counter-badge/counter-badge.template.js.map +1 -1
  140. package/dist/esm/counter-badge/index.d.ts +4 -3
  141. package/dist/esm/counter-badge/index.js +4 -3
  142. package/dist/esm/counter-badge/index.js.map +1 -1
  143. package/dist/esm/define-all.d.ts +42 -0
  144. package/dist/esm/define-all.js +43 -0
  145. package/dist/esm/define-all.js.map +1 -0
  146. package/dist/esm/dialog/dialog.d.ts +59 -11
  147. package/dist/esm/dialog/dialog.definition.js +2 -2
  148. package/dist/esm/dialog/dialog.definition.js.map +1 -1
  149. package/dist/esm/dialog/dialog.js +90 -33
  150. package/dist/esm/dialog/dialog.js.map +1 -1
  151. package/dist/esm/dialog/dialog.options.d.ts +7 -1
  152. package/dist/esm/dialog/dialog.options.js +7 -0
  153. package/dist/esm/dialog/dialog.options.js.map +1 -1
  154. package/dist/esm/dialog/dialog.styles.js +4 -3
  155. package/dist/esm/dialog/dialog.styles.js.map +1 -1
  156. package/dist/esm/dialog/dialog.template.js +5 -3
  157. package/dist/esm/dialog/dialog.template.js.map +1 -1
  158. package/dist/esm/dialog/index.d.ts +1 -0
  159. package/dist/esm/dialog/index.js +1 -0
  160. package/dist/esm/dialog/index.js.map +1 -1
  161. package/dist/esm/dialog-body/dialog-body.definition.js +2 -2
  162. package/dist/esm/dialog-body/dialog-body.definition.js.map +1 -1
  163. package/dist/esm/dialog-body/dialog-body.js +1 -1
  164. package/dist/esm/dialog-body/dialog-body.js.map +1 -1
  165. package/dist/esm/dialog-body/dialog-body.options.d.ts +6 -0
  166. package/dist/esm/dialog-body/dialog-body.options.js +8 -0
  167. package/dist/esm/dialog-body/dialog-body.options.js.map +1 -0
  168. package/dist/esm/dialog-body/dialog-body.styles.js +1 -1
  169. package/dist/esm/dialog-body/dialog-body.styles.js.map +1 -1
  170. package/dist/esm/dialog-body/index.d.ts +1 -0
  171. package/dist/esm/dialog-body/index.js +1 -0
  172. package/dist/esm/dialog-body/index.js.map +1 -1
  173. package/dist/esm/divider/divider.definition.js +2 -2
  174. package/dist/esm/divider/divider.definition.js.map +1 -1
  175. package/dist/esm/divider/divider.options.d.ts +7 -1
  176. package/dist/esm/divider/divider.options.js +8 -1
  177. package/dist/esm/divider/divider.options.js.map +1 -1
  178. package/dist/esm/divider/divider.styles.js +5 -3
  179. package/dist/esm/divider/divider.styles.js.map +1 -1
  180. package/dist/esm/divider/index.d.ts +1 -0
  181. package/dist/esm/divider/index.js +1 -0
  182. package/dist/esm/divider/index.js.map +1 -1
  183. package/dist/esm/drawer/drawer.d.ts +62 -23
  184. package/dist/esm/drawer/drawer.definition.js +2 -2
  185. package/dist/esm/drawer/drawer.definition.js.map +1 -1
  186. package/dist/esm/drawer/drawer.js +91 -54
  187. package/dist/esm/drawer/drawer.js.map +1 -1
  188. package/dist/esm/drawer/drawer.options.d.ts +7 -1
  189. package/dist/esm/drawer/drawer.options.js +7 -0
  190. package/dist/esm/drawer/drawer.options.js.map +1 -1
  191. package/dist/esm/drawer/drawer.styles.js +1 -1
  192. package/dist/esm/drawer/drawer.styles.js.map +1 -1
  193. package/dist/esm/drawer/drawer.template.js +5 -3
  194. package/dist/esm/drawer/drawer.template.js.map +1 -1
  195. package/dist/esm/drawer/index.d.ts +1 -0
  196. package/dist/esm/drawer/index.js +1 -0
  197. package/dist/esm/drawer/index.js.map +1 -1
  198. package/dist/esm/drawer-body/drawer-body.definition.js +2 -2
  199. package/dist/esm/drawer-body/drawer-body.definition.js.map +1 -1
  200. package/dist/esm/drawer-body/drawer-body.js +1 -1
  201. package/dist/esm/drawer-body/drawer-body.js.map +1 -1
  202. package/dist/esm/drawer-body/drawer-body.options.d.ts +6 -0
  203. package/dist/esm/drawer-body/drawer-body.options.js +8 -0
  204. package/dist/esm/drawer-body/drawer-body.options.js.map +1 -0
  205. package/dist/esm/drawer-body/drawer-body.styles.js +1 -1
  206. package/dist/esm/drawer-body/drawer-body.styles.js.map +1 -1
  207. package/dist/esm/drawer-body/index.d.ts +1 -0
  208. package/dist/esm/drawer-body/index.js +1 -0
  209. package/dist/esm/drawer-body/index.js.map +1 -1
  210. package/dist/esm/dropdown/dropdown.base.d.ts +6 -0
  211. package/dist/esm/dropdown/dropdown.base.js +47 -25
  212. package/dist/esm/dropdown/dropdown.base.js.map +1 -1
  213. package/dist/esm/dropdown/dropdown.definition.js +2 -2
  214. package/dist/esm/dropdown/dropdown.definition.js.map +1 -1
  215. package/dist/esm/dropdown/dropdown.options.d.ts +6 -0
  216. package/dist/esm/dropdown/dropdown.options.js +7 -0
  217. package/dist/esm/dropdown/dropdown.options.js.map +1 -1
  218. package/dist/esm/dropdown/dropdown.styles.js +2 -0
  219. package/dist/esm/dropdown/dropdown.styles.js.map +1 -1
  220. package/dist/esm/dropdown/index.d.ts +1 -0
  221. package/dist/esm/dropdown/index.js +1 -0
  222. package/dist/esm/dropdown/index.js.map +1 -1
  223. package/dist/esm/field/field.base.js +1 -1
  224. package/dist/esm/field/field.base.js.map +1 -1
  225. package/dist/esm/field/field.definition.js +2 -2
  226. package/dist/esm/field/field.definition.js.map +1 -1
  227. package/dist/esm/field/field.options.d.ts +6 -0
  228. package/dist/esm/field/field.options.js +7 -0
  229. package/dist/esm/field/field.options.js.map +1 -1
  230. package/dist/esm/field/index.d.ts +1 -0
  231. package/dist/esm/field/index.js +1 -0
  232. package/dist/esm/field/index.js.map +1 -1
  233. package/dist/esm/fluent-design-system.js +1 -1
  234. package/dist/esm/fluent-design-system.js.map +1 -1
  235. package/dist/esm/image/image.definition.js +2 -2
  236. package/dist/esm/image/image.definition.js.map +1 -1
  237. package/dist/esm/image/image.options.d.ts +7 -1
  238. package/dist/esm/image/image.options.js +7 -0
  239. package/dist/esm/image/image.options.js.map +1 -1
  240. package/dist/esm/image/index.d.ts +1 -0
  241. package/dist/esm/image/index.js +1 -0
  242. package/dist/esm/image/index.js.map +1 -1
  243. package/dist/esm/index-all-rollup.d.ts +2 -0
  244. package/dist/esm/index-all-rollup.js +9 -0
  245. package/dist/esm/index-all-rollup.js.map +1 -0
  246. package/dist/esm/index-rollup.d.ts +1 -44
  247. package/dist/esm/index-rollup.js +6 -44
  248. package/dist/esm/index-rollup.js.map +1 -1
  249. package/dist/esm/index.d.ts +8 -11
  250. package/dist/esm/index.js +6 -8
  251. package/dist/esm/index.js.map +1 -1
  252. package/dist/esm/label/index.d.ts +1 -0
  253. package/dist/esm/label/index.js +1 -0
  254. package/dist/esm/label/index.js.map +1 -1
  255. package/dist/esm/label/label.definition.js +2 -2
  256. package/dist/esm/label/label.definition.js.map +1 -1
  257. package/dist/esm/label/label.options.d.ts +7 -1
  258. package/dist/esm/label/label.options.js +7 -0
  259. package/dist/esm/label/label.options.js.map +1 -1
  260. package/dist/esm/label/label.styles.js +1 -1
  261. package/dist/esm/label/label.styles.js.map +1 -1
  262. package/dist/esm/link/index.d.ts +1 -0
  263. package/dist/esm/link/index.js +1 -0
  264. package/dist/esm/link/index.js.map +1 -1
  265. package/dist/esm/link/link.definition.js +2 -2
  266. package/dist/esm/link/link.definition.js.map +1 -1
  267. package/dist/esm/link/link.options.d.ts +7 -1
  268. package/dist/esm/link/link.options.js +7 -0
  269. package/dist/esm/link/link.options.js.map +1 -1
  270. package/dist/esm/link/link.styles.js +5 -3
  271. package/dist/esm/link/link.styles.js.map +1 -1
  272. package/dist/esm/listbox/index.d.ts +1 -0
  273. package/dist/esm/listbox/index.js +1 -0
  274. package/dist/esm/listbox/index.js.map +1 -1
  275. package/dist/esm/listbox/listbox.d.ts +12 -7
  276. package/dist/esm/listbox/listbox.definition.js +2 -2
  277. package/dist/esm/listbox/listbox.definition.js.map +1 -1
  278. package/dist/esm/listbox/listbox.js +27 -17
  279. package/dist/esm/listbox/listbox.js.map +1 -1
  280. package/dist/esm/listbox/listbox.options.d.ts +6 -0
  281. package/dist/esm/listbox/listbox.options.js +7 -0
  282. package/dist/esm/listbox/listbox.options.js.map +1 -1
  283. package/dist/esm/listbox/listbox.template.js +2 -3
  284. package/dist/esm/listbox/listbox.template.js.map +1 -1
  285. package/dist/esm/menu/index.d.ts +1 -0
  286. package/dist/esm/menu/index.js +1 -0
  287. package/dist/esm/menu/index.js.map +1 -1
  288. package/dist/esm/menu/menu.d.ts +31 -15
  289. package/dist/esm/menu/menu.definition.js +2 -2
  290. package/dist/esm/menu/menu.definition.js.map +1 -1
  291. package/dist/esm/menu/menu.js +78 -79
  292. package/dist/esm/menu/menu.js.map +1 -1
  293. package/dist/esm/menu/menu.options.d.ts +6 -0
  294. package/dist/esm/menu/menu.options.js +8 -0
  295. package/dist/esm/menu/menu.options.js.map +1 -0
  296. package/dist/esm/menu/menu.styles.js +1 -1
  297. package/dist/esm/menu/menu.styles.js.map +1 -1
  298. package/dist/esm/menu-button/index.d.ts +1 -0
  299. package/dist/esm/menu-button/index.js +1 -0
  300. package/dist/esm/menu-button/index.js.map +1 -1
  301. package/dist/esm/menu-button/menu-button.definition.js +2 -2
  302. package/dist/esm/menu-button/menu-button.definition.js.map +1 -1
  303. package/dist/esm/menu-button/menu-button.options.d.ts +7 -1
  304. package/dist/esm/menu-button/menu-button.options.js +7 -0
  305. package/dist/esm/menu-button/menu-button.options.js.map +1 -1
  306. package/dist/esm/menu-item/index.d.ts +1 -0
  307. package/dist/esm/menu-item/index.js +1 -0
  308. package/dist/esm/menu-item/index.js.map +1 -1
  309. package/dist/esm/menu-item/menu-item.d.ts +3 -1
  310. package/dist/esm/menu-item/menu-item.definition.js +2 -2
  311. package/dist/esm/menu-item/menu-item.definition.js.map +1 -1
  312. package/dist/esm/menu-item/menu-item.js +23 -12
  313. package/dist/esm/menu-item/menu-item.js.map +1 -1
  314. package/dist/esm/menu-item/menu-item.options.d.ts +7 -1
  315. package/dist/esm/menu-item/menu-item.options.js +7 -0
  316. package/dist/esm/menu-item/menu-item.options.js.map +1 -1
  317. package/dist/esm/menu-item/menu-item.styles.js +5 -3
  318. package/dist/esm/menu-item/menu-item.styles.js.map +1 -1
  319. package/dist/esm/menu-item/menu-item.template.js +3 -2
  320. package/dist/esm/menu-item/menu-item.template.js.map +1 -1
  321. package/dist/esm/menu-list/index.d.ts +2 -0
  322. package/dist/esm/menu-list/index.js +2 -0
  323. package/dist/esm/menu-list/index.js.map +1 -1
  324. package/dist/esm/menu-list/menu-list.base.d.ts +57 -0
  325. package/dist/esm/menu-list/menu-list.base.js +152 -0
  326. package/dist/esm/menu-list/menu-list.base.js.map +1 -0
  327. package/dist/esm/menu-list/menu-list.d.ts +6 -69
  328. package/dist/esm/menu-list/menu-list.definition.js +2 -2
  329. package/dist/esm/menu-list/menu-list.definition.js.map +1 -1
  330. package/dist/esm/menu-list/menu-list.js +18 -237
  331. package/dist/esm/menu-list/menu-list.js.map +1 -1
  332. package/dist/esm/menu-list/menu-list.options.d.ts +6 -0
  333. package/dist/esm/menu-list/menu-list.options.js +8 -0
  334. package/dist/esm/menu-list/menu-list.options.js.map +1 -0
  335. package/dist/esm/menu-list/menu-list.styles.js +1 -1
  336. package/dist/esm/menu-list/menu-list.styles.js.map +1 -1
  337. package/dist/esm/menu-list/menu-list.template.js +1 -5
  338. package/dist/esm/menu-list/menu-list.template.js.map +1 -1
  339. package/dist/esm/message-bar/index.d.ts +1 -0
  340. package/dist/esm/message-bar/index.js +1 -0
  341. package/dist/esm/message-bar/index.js.map +1 -1
  342. package/dist/esm/message-bar/message-bar.d.ts +2 -1
  343. package/dist/esm/message-bar/message-bar.definition.js +2 -1
  344. package/dist/esm/message-bar/message-bar.definition.js.map +1 -1
  345. package/dist/esm/message-bar/message-bar.js +2 -1
  346. package/dist/esm/message-bar/message-bar.js.map +1 -1
  347. package/dist/esm/message-bar/message-bar.options.d.ts +12 -3
  348. package/dist/esm/message-bar/message-bar.options.js +13 -3
  349. package/dist/esm/message-bar/message-bar.options.js.map +1 -1
  350. package/dist/esm/message-bar/message-bar.template.d.ts +3 -3
  351. package/dist/esm/message-bar/message-bar.template.js +3 -3
  352. package/dist/esm/option/index.d.ts +1 -0
  353. package/dist/esm/option/index.js +1 -0
  354. package/dist/esm/option/index.js.map +1 -1
  355. package/dist/esm/option/option.definition.js +2 -2
  356. package/dist/esm/option/option.definition.js.map +1 -1
  357. package/dist/esm/option/option.js +1 -1
  358. package/dist/esm/option/option.js.map +1 -1
  359. package/dist/esm/option/option.options.d.ts +6 -0
  360. package/dist/esm/option/option.options.js +7 -0
  361. package/dist/esm/option/option.options.js.map +1 -1
  362. package/dist/esm/patterns/start-end.d.ts +1 -1
  363. package/dist/esm/patterns/start-end.js +1 -1
  364. package/dist/esm/patterns/start-end.js.map +1 -1
  365. package/dist/esm/progress-bar/index.d.ts +1 -0
  366. package/dist/esm/progress-bar/index.js +1 -0
  367. package/dist/esm/progress-bar/index.js.map +1 -1
  368. package/dist/esm/progress-bar/progress-bar.base.d.ts +35 -8
  369. package/dist/esm/progress-bar/progress-bar.base.js +41 -20
  370. package/dist/esm/progress-bar/progress-bar.base.js.map +1 -1
  371. package/dist/esm/progress-bar/progress-bar.d.ts +8 -2
  372. package/dist/esm/progress-bar/progress-bar.definition.js +2 -2
  373. package/dist/esm/progress-bar/progress-bar.definition.js.map +1 -1
  374. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  375. package/dist/esm/progress-bar/progress-bar.options.d.ts +7 -1
  376. package/dist/esm/progress-bar/progress-bar.options.js +7 -0
  377. package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
  378. package/dist/esm/progress-bar/progress-bar.styles.js +5 -3
  379. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  380. package/dist/esm/radio/index.d.ts +1 -0
  381. package/dist/esm/radio/index.js +1 -0
  382. package/dist/esm/radio/index.js.map +1 -1
  383. package/dist/esm/radio/radio.d.ts +1 -1
  384. package/dist/esm/radio/radio.definition.js +2 -2
  385. package/dist/esm/radio/radio.definition.js.map +1 -1
  386. package/dist/esm/radio/radio.js +1 -1
  387. package/dist/esm/radio/radio.options.d.ts +15 -0
  388. package/dist/esm/radio/radio.options.js +19 -1
  389. package/dist/esm/radio/radio.options.js.map +1 -1
  390. package/dist/esm/radio/radio.styles.js +4 -3
  391. package/dist/esm/radio/radio.styles.js.map +1 -1
  392. package/dist/esm/radio/radio.template.js +1 -1
  393. package/dist/esm/radio/radio.template.js.map +1 -1
  394. package/dist/esm/radio-group/index.d.ts +2 -0
  395. package/dist/esm/radio-group/index.js +2 -0
  396. package/dist/esm/radio-group/index.js.map +1 -1
  397. package/dist/esm/radio-group/radio-group.base.d.ts +272 -0
  398. package/dist/esm/radio-group/radio-group.base.js +438 -0
  399. package/dist/esm/radio-group/radio-group.base.js.map +1 -0
  400. package/dist/esm/radio-group/radio-group.d.ts +8 -273
  401. package/dist/esm/radio-group/radio-group.definition.js +2 -2
  402. package/dist/esm/radio-group/radio-group.definition.js.map +1 -1
  403. package/dist/esm/radio-group/radio-group.js +20 -492
  404. package/dist/esm/radio-group/radio-group.js.map +1 -1
  405. package/dist/esm/radio-group/radio-group.options.d.ts +7 -1
  406. package/dist/esm/radio-group/radio-group.options.js +8 -1
  407. package/dist/esm/radio-group/radio-group.options.js.map +1 -1
  408. package/dist/esm/radio-group/radio-group.styles.js +1 -1
  409. package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
  410. package/dist/esm/radio-group/radio-group.template.js +3 -3
  411. package/dist/esm/radio-group/radio-group.template.js.map +1 -1
  412. package/dist/esm/rating-display/index.d.ts +1 -0
  413. package/dist/esm/rating-display/index.js +1 -0
  414. package/dist/esm/rating-display/index.js.map +1 -1
  415. package/dist/esm/rating-display/rating-display.base.d.ts +11 -1
  416. package/dist/esm/rating-display/rating-display.base.js +24 -11
  417. package/dist/esm/rating-display/rating-display.base.js.map +1 -1
  418. package/dist/esm/rating-display/rating-display.definition.js +2 -2
  419. package/dist/esm/rating-display/rating-display.definition.js.map +1 -1
  420. package/dist/esm/rating-display/rating-display.options.d.ts +7 -1
  421. package/dist/esm/rating-display/rating-display.options.js +7 -0
  422. package/dist/esm/rating-display/rating-display.options.js.map +1 -1
  423. package/dist/esm/rating-display/rating-display.styles.js +5 -3
  424. package/dist/esm/rating-display/rating-display.styles.js.map +1 -1
  425. package/dist/esm/slider/index.d.ts +1 -0
  426. package/dist/esm/slider/index.js +1 -0
  427. package/dist/esm/slider/index.js.map +1 -1
  428. package/dist/esm/slider/slider-utilities.d.ts +1 -1
  429. package/dist/esm/slider/slider-utilities.js +2 -1
  430. package/dist/esm/slider/slider-utilities.js.map +1 -1
  431. package/dist/esm/slider/slider.d.ts +9 -4
  432. package/dist/esm/slider/slider.definition.js +2 -2
  433. package/dist/esm/slider/slider.definition.js.map +1 -1
  434. package/dist/esm/slider/slider.js +55 -35
  435. package/dist/esm/slider/slider.js.map +1 -1
  436. package/dist/esm/slider/slider.options.d.ts +9 -2
  437. package/dist/esm/slider/slider.options.js +8 -1
  438. package/dist/esm/slider/slider.options.js.map +1 -1
  439. package/dist/esm/slider/slider.styles.js +5 -3
  440. package/dist/esm/slider/slider.styles.js.map +1 -1
  441. package/dist/esm/spinner/index.d.ts +1 -0
  442. package/dist/esm/spinner/index.js +1 -0
  443. package/dist/esm/spinner/index.js.map +1 -1
  444. package/dist/esm/spinner/spinner.definition.js +2 -2
  445. package/dist/esm/spinner/spinner.definition.js.map +1 -1
  446. package/dist/esm/spinner/spinner.options.d.ts +7 -1
  447. package/dist/esm/spinner/spinner.options.js +7 -0
  448. package/dist/esm/spinner/spinner.options.js.map +1 -1
  449. package/dist/esm/spinner/spinner.styles.js +5 -3
  450. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  451. package/dist/esm/styles/index.d.ts +2 -1
  452. package/dist/esm/styles/index.js +2 -1
  453. package/dist/esm/styles/index.js.map +1 -1
  454. package/dist/esm/styles/partials/badge.partials.d.ts +2 -1
  455. package/dist/esm/styles/partials/badge.partials.js +3 -2
  456. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  457. package/dist/esm/switch/index.d.ts +1 -0
  458. package/dist/esm/switch/index.js +1 -0
  459. package/dist/esm/switch/index.js.map +1 -1
  460. package/dist/esm/switch/switch.d.ts +1 -1
  461. package/dist/esm/switch/switch.definition.js +2 -2
  462. package/dist/esm/switch/switch.definition.js.map +1 -1
  463. package/dist/esm/switch/switch.options.d.ts +7 -1
  464. package/dist/esm/switch/switch.options.js +7 -0
  465. package/dist/esm/switch/switch.options.js.map +1 -1
  466. package/dist/esm/switch/switch.styles.js +4 -3
  467. package/dist/esm/switch/switch.styles.js.map +1 -1
  468. package/dist/esm/switch/switch.template.js +1 -1
  469. package/dist/esm/switch/switch.template.js.map +1 -1
  470. package/dist/esm/tab/index.d.ts +1 -0
  471. package/dist/esm/tab/index.js +1 -0
  472. package/dist/esm/tab/index.js.map +1 -1
  473. package/dist/esm/tab/tab.d.ts +15 -1
  474. package/dist/esm/tab/tab.definition.js +2 -2
  475. package/dist/esm/tab/tab.definition.js.map +1 -1
  476. package/dist/esm/tab/tab.js +26 -2
  477. package/dist/esm/tab/tab.js.map +1 -1
  478. package/dist/esm/tab/tab.options.d.ts +6 -0
  479. package/dist/esm/tab/tab.options.js +7 -0
  480. package/dist/esm/tab/tab.options.js.map +1 -1
  481. package/dist/esm/tab/tab.styles.js +23 -3
  482. package/dist/esm/tab/tab.styles.js.map +1 -1
  483. package/dist/esm/tab/tab.template.js +2 -2
  484. package/dist/esm/tab/tab.template.js.map +1 -1
  485. package/dist/esm/tablist/index.d.ts +1 -0
  486. package/dist/esm/tablist/index.js +1 -0
  487. package/dist/esm/tablist/index.js.map +1 -1
  488. package/dist/esm/tablist/tablist.base.d.ts +15 -46
  489. package/dist/esm/tablist/tablist.base.js +114 -209
  490. package/dist/esm/tablist/tablist.base.js.map +1 -1
  491. package/dist/esm/tablist/tablist.d.ts +7 -74
  492. package/dist/esm/tablist/tablist.definition.js +2 -2
  493. package/dist/esm/tablist/tablist.definition.js.map +1 -1
  494. package/dist/esm/tablist/tablist.js +22 -132
  495. package/dist/esm/tablist/tablist.js.map +1 -1
  496. package/dist/esm/tablist/tablist.options.d.ts +7 -1
  497. package/dist/esm/tablist/tablist.options.js +8 -1
  498. package/dist/esm/tablist/tablist.options.js.map +1 -1
  499. package/dist/esm/tablist/tablist.styles.js +83 -65
  500. package/dist/esm/tablist/tablist.styles.js.map +1 -1
  501. package/dist/esm/tablist/tablist.template.js +5 -1
  502. package/dist/esm/tablist/tablist.template.js.map +1 -1
  503. package/dist/esm/text/index.d.ts +1 -0
  504. package/dist/esm/text/index.js +1 -0
  505. package/dist/esm/text/index.js.map +1 -1
  506. package/dist/esm/text/text.definition.js +2 -2
  507. package/dist/esm/text/text.definition.js.map +1 -1
  508. package/dist/esm/text/text.options.d.ts +7 -1
  509. package/dist/esm/text/text.options.js +7 -0
  510. package/dist/esm/text/text.options.js.map +1 -1
  511. package/dist/esm/text/text.styles.js +1 -1
  512. package/dist/esm/text/text.styles.js.map +1 -1
  513. package/dist/esm/text-input/index.d.ts +1 -0
  514. package/dist/esm/text-input/index.js +1 -0
  515. package/dist/esm/text-input/index.js.map +1 -1
  516. package/dist/esm/text-input/text-input.base.js +12 -5
  517. package/dist/esm/text-input/text-input.base.js.map +1 -1
  518. package/dist/esm/text-input/text-input.definition.js +2 -2
  519. package/dist/esm/text-input/text-input.definition.js.map +1 -1
  520. package/dist/esm/text-input/text-input.options.d.ts +6 -0
  521. package/dist/esm/text-input/text-input.options.js +7 -0
  522. package/dist/esm/text-input/text-input.options.js.map +1 -1
  523. package/dist/esm/text-input/text-input.template.d.ts +1 -1
  524. package/dist/esm/text-input/text-input.template.js +2 -8
  525. package/dist/esm/text-input/text-input.template.js.map +1 -1
  526. package/dist/esm/textarea/index.d.ts +1 -0
  527. package/dist/esm/textarea/index.js +1 -0
  528. package/dist/esm/textarea/index.js.map +1 -1
  529. package/dist/esm/textarea/textarea.base.d.ts +12 -3
  530. package/dist/esm/textarea/textarea.base.js +43 -25
  531. package/dist/esm/textarea/textarea.base.js.map +1 -1
  532. package/dist/esm/textarea/textarea.definition.js +2 -2
  533. package/dist/esm/textarea/textarea.definition.js.map +1 -1
  534. package/dist/esm/textarea/textarea.options.d.ts +6 -0
  535. package/dist/esm/textarea/textarea.options.js +7 -0
  536. package/dist/esm/textarea/textarea.options.js.map +1 -1
  537. package/dist/esm/textarea/textarea.styles.js +4 -3
  538. package/dist/esm/textarea/textarea.styles.js.map +1 -1
  539. package/dist/esm/textarea/textarea.template.js +1 -1
  540. package/dist/esm/textarea/textarea.template.js.map +1 -1
  541. package/dist/esm/theme/design-tokens.d.ts +115 -0
  542. package/dist/esm/theme/design-tokens.js +115 -0
  543. package/dist/esm/theme/design-tokens.js.map +1 -1
  544. package/dist/esm/theme/index.d.ts +1 -1
  545. package/dist/esm/theme/index.js +1 -1
  546. package/dist/esm/theme/index.js.map +1 -1
  547. package/dist/esm/theme/set-theme.d.ts +2 -7
  548. package/dist/esm/theme/set-theme.js +2 -9
  549. package/dist/esm/theme/set-theme.js.map +1 -1
  550. package/dist/esm/toggle-button/index.d.ts +1 -0
  551. package/dist/esm/toggle-button/index.js +1 -0
  552. package/dist/esm/toggle-button/index.js.map +1 -1
  553. package/dist/esm/toggle-button/toggle-button.definition.js +2 -2
  554. package/dist/esm/toggle-button/toggle-button.definition.js.map +1 -1
  555. package/dist/esm/toggle-button/toggle-button.options.d.ts +8 -2
  556. package/dist/esm/toggle-button/toggle-button.options.js +7 -0
  557. package/dist/esm/toggle-button/toggle-button.options.js.map +1 -1
  558. package/dist/esm/toggle-button/toggle-button.styles.js +4 -3
  559. package/dist/esm/toggle-button/toggle-button.styles.js.map +1 -1
  560. package/dist/esm/tooltip/index.d.ts +1 -0
  561. package/dist/esm/tooltip/index.js +1 -0
  562. package/dist/esm/tooltip/index.js.map +1 -1
  563. package/dist/esm/tooltip/tooltip.d.ts +2 -2
  564. package/dist/esm/tooltip/tooltip.definition.js +2 -2
  565. package/dist/esm/tooltip/tooltip.definition.js.map +1 -1
  566. package/dist/esm/tooltip/tooltip.js +3 -3
  567. package/dist/esm/tooltip/tooltip.js.map +1 -1
  568. package/dist/esm/tooltip/tooltip.options.d.ts +6 -0
  569. package/dist/esm/tooltip/tooltip.options.js +7 -0
  570. package/dist/esm/tooltip/tooltip.options.js.map +1 -1
  571. package/dist/esm/tree/index.d.ts +1 -0
  572. package/dist/esm/tree/index.js +1 -0
  573. package/dist/esm/tree/index.js.map +1 -1
  574. package/dist/esm/tree/tree.base.d.ts +13 -28
  575. package/dist/esm/tree/tree.base.js +37 -106
  576. package/dist/esm/tree/tree.base.js.map +1 -1
  577. package/dist/esm/tree/tree.d.ts +13 -2
  578. package/dist/esm/tree/tree.definition.js +2 -2
  579. package/dist/esm/tree/tree.definition.js.map +1 -1
  580. package/dist/esm/tree/tree.js +31 -2
  581. package/dist/esm/tree/tree.js.map +1 -1
  582. package/dist/esm/tree/tree.options.d.ts +6 -0
  583. package/dist/esm/tree/tree.options.js +8 -0
  584. package/dist/esm/tree/tree.options.js.map +1 -0
  585. package/dist/esm/tree/tree.template.js +2 -3
  586. package/dist/esm/tree/tree.template.js.map +1 -1
  587. package/dist/esm/tree-item/index.d.ts +1 -0
  588. package/dist/esm/tree-item/index.js +1 -0
  589. package/dist/esm/tree-item/index.js.map +1 -1
  590. package/dist/esm/tree-item/tree-item.base.d.ts +21 -5
  591. package/dist/esm/tree-item/tree-item.base.js +46 -18
  592. package/dist/esm/tree-item/tree-item.base.js.map +1 -1
  593. package/dist/esm/tree-item/tree-item.definition.js +2 -2
  594. package/dist/esm/tree-item/tree-item.definition.js.map +1 -1
  595. package/dist/esm/tree-item/tree-item.options.d.ts +6 -0
  596. package/dist/esm/tree-item/tree-item.options.js +7 -0
  597. package/dist/esm/tree-item/tree-item.options.js.map +1 -1
  598. package/dist/esm/tree-item/tree-item.template.js +1 -1
  599. package/dist/esm/tree-item/tree-item.template.js.map +1 -1
  600. package/dist/esm/utils/direction.d.ts +13 -1
  601. package/dist/esm/utils/direction.js +8 -1
  602. package/dist/esm/utils/direction.js.map +1 -1
  603. package/dist/esm/utils/focusable-element.js +2 -1
  604. package/dist/esm/utils/focusable-element.js.map +1 -1
  605. package/dist/esm/utils/focusgroup.d.ts +22 -0
  606. package/dist/esm/utils/focusgroup.js +42 -0
  607. package/dist/esm/utils/focusgroup.js.map +1 -0
  608. package/dist/esm/utils/index.d.ts +2 -1
  609. package/dist/esm/utils/index.js +2 -1
  610. package/dist/esm/utils/index.js.map +1 -1
  611. package/dist/esm/utils/numbers.d.ts +5 -0
  612. package/dist/esm/utils/numbers.js +9 -0
  613. package/dist/esm/utils/numbers.js.map +1 -0
  614. package/dist/esm/utils/orientation.d.ts +13 -0
  615. package/dist/esm/utils/orientation.js +10 -0
  616. package/dist/esm/utils/orientation.js.map +1 -0
  617. package/dist/esm/utils/request-idle-callback.d.ts +15 -0
  618. package/dist/esm/utils/request-idle-callback.js +11 -10
  619. package/dist/esm/utils/request-idle-callback.js.map +1 -1
  620. package/dist/esm/utils/typings.d.ts +12 -0
  621. package/dist/esm/utils/typings.js +21 -1
  622. package/dist/esm/utils/typings.js.map +1 -1
  623. package/dist/web-components-all.js +14974 -0
  624. package/dist/web-components-all.min.js +47 -0
  625. package/dist/web-components.d.ts +1176 -1213
  626. package/dist/web-components.js +7775 -7302
  627. package/dist/web-components.min.js +29 -565
  628. package/package.json +23 -10
  629. package/dist/esm/tab-panel/define.d.ts +0 -1
  630. package/dist/esm/tab-panel/define.js +0 -7
  631. package/dist/esm/tab-panel/define.js.map +0 -1
  632. package/dist/esm/tab-panel/index.d.ts +0 -4
  633. package/dist/esm/tab-panel/index.js +0 -5
  634. package/dist/esm/tab-panel/index.js.map +0 -1
  635. package/dist/esm/tab-panel/tab-panel.bench.d.ts +0 -3
  636. package/dist/esm/tab-panel/tab-panel.bench.js +0 -13
  637. package/dist/esm/tab-panel/tab-panel.bench.js.map +0 -1
  638. package/dist/esm/tab-panel/tab-panel.d.ts +0 -8
  639. package/dist/esm/tab-panel/tab-panel.definition.d.ts +0 -5
  640. package/dist/esm/tab-panel/tab-panel.definition.js +0 -13
  641. package/dist/esm/tab-panel/tab-panel.definition.js.map +0 -1
  642. package/dist/esm/tab-panel/tab-panel.js +0 -9
  643. package/dist/esm/tab-panel/tab-panel.js.map +0 -1
  644. package/dist/esm/tab-panel/tab-panel.styles.d.ts +0 -1
  645. package/dist/esm/tab-panel/tab-panel.styles.js +0 -12
  646. package/dist/esm/tab-panel/tab-panel.styles.js.map +0 -1
  647. package/dist/esm/tab-panel/tab-panel.template.d.ts +0 -7
  648. package/dist/esm/tab-panel/tab-panel.template.js +0 -13
  649. package/dist/esm/tab-panel/tab-panel.template.js.map +0 -1
  650. package/dist/esm/tabs/define.d.ts +0 -1
  651. package/dist/esm/tabs/define.js +0 -7
  652. package/dist/esm/tabs/define.js.map +0 -1
  653. package/dist/esm/tabs/index.d.ts +0 -6
  654. package/dist/esm/tabs/index.js +0 -6
  655. package/dist/esm/tabs/index.js.map +0 -1
  656. package/dist/esm/tabs/tabs.base.d.ts +0 -90
  657. package/dist/esm/tabs/tabs.base.js +0 -279
  658. package/dist/esm/tabs/tabs.base.js.map +0 -1
  659. package/dist/esm/tabs/tabs.bench.d.ts +0 -3
  660. package/dist/esm/tabs/tabs.bench.js +0 -32
  661. package/dist/esm/tabs/tabs.bench.js.map +0 -1
  662. package/dist/esm/tabs/tabs.d.ts +0 -100
  663. package/dist/esm/tabs/tabs.definition.d.ts +0 -5
  664. package/dist/esm/tabs/tabs.definition.js +0 -13
  665. package/dist/esm/tabs/tabs.definition.js.map +0 -1
  666. package/dist/esm/tabs/tabs.js +0 -180
  667. package/dist/esm/tabs/tabs.js.map +0 -1
  668. package/dist/esm/tabs/tabs.options.d.ts +0 -32
  669. package/dist/esm/tabs/tabs.options.js +0 -16
  670. package/dist/esm/tabs/tabs.options.js.map +0 -1
  671. package/dist/esm/tabs/tabs.styles.d.ts +0 -1
  672. package/dist/esm/tabs/tabs.styles.js +0 -230
  673. package/dist/esm/tabs/tabs.styles.js.map +0 -1
  674. package/dist/esm/tabs/tabs.template.d.ts +0 -8
  675. package/dist/esm/tabs/tabs.template.js +0 -19
  676. package/dist/esm/tabs/tabs.template.js.map +0 -1
  677. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.d.ts +0 -124
  678. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js +0 -142
  679. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { attr, FASTElement, observable, Updates } from '@microsoft/fast-element';
2
+ import { attr, FASTElement, observable, Updates, volatile } from '@microsoft/fast-element';
3
3
  import { DrawerPosition, DrawerSize, DrawerType } from './drawer.options.js';
4
4
  /**
5
5
  * A Drawer component that allows content to be displayed in a side panel. It can be rendered as modal or non-modal.
@@ -8,11 +8,11 @@ import { DrawerPosition, DrawerSize, DrawerType } from './drawer.options.js';
8
8
  *
9
9
  * @extends FASTElement
10
10
  *
11
- * @attr {DrawerType} type - Determines whether the drawer should be displayed as modal, non-modal, or alert.
12
- * @attr {DrawerPosition} position - Sets the position of the drawer (start/end).
13
- * @attr {DrawerSize} size - Sets the size of the drawer (small/medium/large).
14
- * @attr {string} ariaDescribedby - The ID of the element that describes the drawer.
15
- * @attr {string} ariaLabelledby - The ID of the element that labels the drawer.
11
+ * @attr type - Determines whether the drawer should be displayed as modal, non-modal, or alert.
12
+ * @attr position - Sets the position of the drawer (start/end).
13
+ * @attr size - Sets the size of the drawer (small/medium/large).
14
+ * @attr ariaDescribedby - The ID of the element that describes the drawer.
15
+ * @attr ariaLabelledby - The ID of the element that labels the drawer.
16
16
  *
17
17
  * @csspart dialog - The dialog element of the drawer.
18
18
  *
@@ -36,15 +36,10 @@ export class Drawer extends FASTElement {
36
36
  constructor() {
37
37
  super(...arguments);
38
38
  /**
39
- * @public
40
- * Determines whether the drawer should be displayed as modal or non-modal
41
- * When rendered as a modal, an overlay is applied over the rest of the view.
42
- */
43
- this.type = DrawerType.modal;
44
- /**""
39
+ * Sets the position of the drawer (start/end).
40
+ *
45
41
  * @public
46
42
  * @defaultValue start
47
- * Sets the position of the drawer (start/end).
48
43
  */
49
44
  this.position = DrawerPosition.start;
50
45
  /**
@@ -54,9 +49,10 @@ export class Drawer extends FASTElement {
54
49
  */
55
50
  this.size = DrawerSize.medium;
56
51
  /**
57
- * @public
58
52
  * Method to emit an event after the dialog's open state changes
59
53
  * HTML spec proposal: https://github.com/whatwg/html/issues/9733
54
+ *
55
+ * @public
60
56
  */
61
57
  this.emitToggle = () => {
62
58
  this.$emit('toggle', {
@@ -65,9 +61,10 @@ export class Drawer extends FASTElement {
65
61
  });
66
62
  };
67
63
  /**
68
- * @public
69
64
  * Method to emit an event before the dialog's open state changes
70
65
  * HTML spec proposal: https://github.com/whatwg/html/issues/9733
66
+ *
67
+ * @public
71
68
  */
72
69
  this.emitBeforeToggle = () => {
73
70
  this.$emit('beforetoggle', {
@@ -76,32 +73,72 @@ export class Drawer extends FASTElement {
76
73
  });
77
74
  };
78
75
  }
79
- typeChanged() {
80
- if (!this.dialog) {
81
- return;
76
+ /**
77
+ * The `aria-describedby` attribute value for the dialog, which is determined by the `ariaDescribedby` property. This
78
+ * is used to ensure that the dialog's accessible description is properly announced by assistive technologies.
79
+ *
80
+ * @internal
81
+ */
82
+ get dialogDescribedby() {
83
+ if (this.dialog) {
84
+ return this.ariaDescribedby;
82
85
  }
83
- this.updateDialogRole();
84
- if (this.type === DrawerType.modal) {
85
- this.dialog.setAttribute('aria-modal', 'true');
86
+ }
87
+ /**
88
+ * The `aria-label` attribute value for the dialog, which is determined by the `ariaLabel` property. This is used to
89
+ * ensure that the dialog's accessible name is properly announced by assistive technologies.
90
+ *
91
+ * @internal
92
+ */
93
+ get dialogLabel() {
94
+ if (this.dialog) {
95
+ return this.ariaLabel;
96
+ }
97
+ }
98
+ /**
99
+ * The `aria-labelledby` attribute value for the dialog, which is determined by the `ariaLabelledby` property. This is
100
+ * used to ensure that the dialog's accessible name is properly announced by assistive technologies.
101
+ *
102
+ * @internal
103
+ */
104
+ get dialogLabelledby() {
105
+ if (this.dialog) {
106
+ return this.ariaLabelledby;
86
107
  }
87
- else {
88
- this.dialog.removeAttribute('aria-modal');
108
+ }
109
+ /**
110
+ * The modal state of the dialog, which is determined by the `type` property. If the dialog is not a non-modal dialog,
111
+ * the modal state will be true, otherwise it will be undefined.
112
+ *
113
+ * @internal
114
+ */
115
+ get dialogModal() {
116
+ if (this.dialog && this.type === DrawerType.modal) {
117
+ return true;
118
+ }
119
+ }
120
+ /**
121
+ * The role of the dialog, which is determined by the `type` property. If the dialog is an alert dialog, the role will
122
+ * be 'alertdialog', otherwise it will be undefined.
123
+ *
124
+ * @internal
125
+ */
126
+ get dialogRole() {
127
+ if (this.dialog && this.type === DrawerType.modal) {
128
+ return 'dialog';
89
129
  }
130
+ return this.role;
90
131
  }
91
- /** @internal */
92
132
  connectedCallback() {
93
133
  super.connectedCallback();
94
- this.typeChanged();
95
- this.observeRoleAttr();
96
- }
97
- /** @internal */
98
- disconnectedCallback() {
99
- super.disconnectedCallback();
100
- this.roleAttrObserver.disconnect();
134
+ Updates.enqueue(() => {
135
+ this.type = this.type ?? DrawerType.modal;
136
+ });
101
137
  }
102
138
  /**
103
- * @public
104
139
  * Method to show the drawer
140
+ *
141
+ * @public
105
142
  */
106
143
  show() {
107
144
  Updates.enqueue(() => {
@@ -116,8 +153,9 @@ export class Drawer extends FASTElement {
116
153
  });
117
154
  }
118
155
  /**
119
- * @public
120
156
  * Method to hide the drawer
157
+ *
158
+ * @public
121
159
  */
122
160
  hide() {
123
161
  this.emitBeforeToggle();
@@ -131,38 +169,19 @@ export class Drawer extends FASTElement {
131
169
  * Handles click events on the drawer.
132
170
  */
133
171
  clickHandler(event) {
134
- event.preventDefault();
135
172
  if (this.dialog.open && event.target === this.dialog) {
136
173
  this.hide();
137
174
  }
138
175
  return true;
139
176
  }
140
177
  /**
141
- * @public
142
178
  * Handles cancel events on the drawer.
179
+ *
180
+ * @public
143
181
  */
144
182
  cancelHandler() {
145
183
  this.hide();
146
184
  }
147
- observeRoleAttr() {
148
- if (this.roleAttrObserver) {
149
- return;
150
- }
151
- this.roleAttrObserver = new MutationObserver(() => {
152
- this.updateDialogRole();
153
- });
154
- this.roleAttrObserver.observe(this, {
155
- attributes: true,
156
- attributeFilter: ['role'],
157
- });
158
- }
159
- updateDialogRole() {
160
- console.log(this.role);
161
- if (!this.dialog) {
162
- return;
163
- }
164
- this.dialog.role = this.type === DrawerType.modal ? 'dialog' : this.role;
165
- }
166
185
  }
167
186
  __decorate([
168
187
  attr
@@ -176,10 +195,28 @@ __decorate([
176
195
  __decorate([
177
196
  attr
178
197
  ], Drawer.prototype, "position", void 0);
198
+ __decorate([
199
+ observable
200
+ ], Drawer.prototype, "role", void 0);
179
201
  __decorate([
180
202
  attr({ attribute: 'size' })
181
203
  ], Drawer.prototype, "size", void 0);
182
204
  __decorate([
183
205
  observable
184
206
  ], Drawer.prototype, "dialog", void 0);
207
+ __decorate([
208
+ volatile
209
+ ], Drawer.prototype, "dialogDescribedby", null);
210
+ __decorate([
211
+ volatile
212
+ ], Drawer.prototype, "dialogLabel", null);
213
+ __decorate([
214
+ volatile
215
+ ], Drawer.prototype, "dialogLabelledby", null);
216
+ __decorate([
217
+ volatile
218
+ ], Drawer.prototype, "dialogModal", null);
219
+ __decorate([
220
+ volatile
221
+ ], Drawer.prototype, "dialogRole", null);
185
222
  //# sourceMappingURL=drawer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/drawer/drawer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/drawer/drawer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ValuesOf } from '../utils/index.js';
1
+ import type { ValuesOf } from '../utils/typings.js';
2
2
  /**
3
3
  * A drawer can be positioned on the left or right side of the viewport.
4
4
  */
@@ -38,3 +38,9 @@ export declare const DrawerType: {
38
38
  * @public
39
39
  */
40
40
  export type DrawerType = ValuesOf<typeof DrawerType>;
41
+ /**
42
+ * The tag name for the drawer element.
43
+ *
44
+ * @public
45
+ */
46
+ export declare const tagName: "fluent-drawer";
@@ -1,3 +1,4 @@
1
+ import { FluentDesignSystem } from '../fluent-design-system.js';
1
2
  /**
2
3
  * A drawer can be positioned on the left or right side of the viewport.
3
4
  */
@@ -22,4 +23,10 @@ export const DrawerType = {
22
23
  modal: 'modal',
23
24
  inline: 'inline',
24
25
  };
26
+ /**
27
+ * The tag name for the drawer element.
28
+ *
29
+ * @public
30
+ */
31
+ export const tagName = `${FluentDesignSystem.prefix}-drawer`;
25
32
  //# sourceMappingURL=drawer.options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.options.js","sourceRoot":"","sources":["../../../src/drawer/drawer.options.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACF,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACJ,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC"}
1
+ {"version":3,"file":"drawer.options.js","sourceRoot":"","sources":["../../../src/drawer/drawer.options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACF,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACJ,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAQX;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,kBAAkB,CAAC,MAAM,SAAkB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { display } from '../utils/index.js';
2
+ import { display } from '../utils/display.js';
3
3
  import { colorBackgroundOverlay, colorNeutralBackground1, colorNeutralForeground1, colorTransparentStroke, curveAccelerateMid, curveDecelerateMid, curveLinear, durationGentle, fontFamilyBase, fontSizeBase300, fontWeightRegular, lineHeightBase300, shadow64, strokeWidthThin, } from '../theme/design-tokens.js';
4
4
  /** Drawer styles
5
5
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.styles.js","sourceRoot":"","sources":["../../../src/drawer/drawer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC;;;yBAGK,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8C9B,eAAe;mBACb,iBAAiB;mBACjB,cAAc;mBACd,iBAAiB;aACvB,uBAAuB;;;;;;+BAML,sBAAsB;yDACI,sBAAsB;;;;;;;;kBAQ7D,QAAQ;cACZ,eAAe,UAAU,sBAAsB;kBAC3C,uBAAuB;;;;;;;;;;;;+BAYV,cAAc;sCACP,kBAAkB;;;;;;sCAMlB,kBAAkB;;;;sCAIlB,kBAAkB;;;;;;;;;+BASzB,cAAc;sCACP,kBAAkB;6CACX,sBAAsB;;;;;;;;;sCAS7B,WAAW;;;;;;;;;;;;;;;;CAgBhD,CAAC"}
1
+ {"version":3,"file":"drawer.styles.js","sourceRoot":"","sources":["../../../src/drawer/drawer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC;;;yBAGK,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8C9B,eAAe;mBACb,iBAAiB;mBACjB,cAAc;mBACd,iBAAiB;aACvB,uBAAuB;;;;;;+BAML,sBAAsB;yDACI,sBAAsB;;;;;;;;kBAQ7D,QAAQ;cACZ,eAAe,UAAU,sBAAsB;kBAC3C,uBAAuB;;;;;;;;;;;;+BAYV,cAAc;sCACP,kBAAkB;;;;;;sCAMlB,kBAAkB;;;;sCAIlB,kBAAkB;;;;;;;;;+BASzB,cAAc;sCACP,kBAAkB;6CACX,sBAAsB;;;;;;;;;sCAS7B,WAAW;;;;;;;;;;;;;;;;CAgBhD,CAAC"}
@@ -8,9 +8,11 @@ export function drawerTemplate() {
8
8
  <dialog
9
9
  class="dialog"
10
10
  part="dialog"
11
- aria-describedby="${x => x.ariaDescribedby}"
12
- aria-labelledby="${x => x.ariaLabelledby}"
13
- aria-label="${x => x.ariaLabel}"
11
+ aria-describedby="${x => x.dialogDescribedby}"
12
+ aria-labelledby="${x => x.dialogLabelledby}"
13
+ aria-label="${x => x.dialogLabel}"
14
+ aria-modal="${x => x.dialogModal}"
15
+ role="${x => x.dialogRole}"
14
16
  size="${x => x.size}"
15
17
  position="${x => x.position}"
16
18
  @click="${(x, c) => x.clickHandler(c.event)}"
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.template.js","sourceRoot":"","sources":["../../../src/drawer/drawer.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,IAAI,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAG9E;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAG;;;;0BAIU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;yBACvB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc;oBAC1B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;cACtB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;kBACP,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;gBACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;iBAC9C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;QAC/B,GAAG,CAAC,QAAQ,CAAC;;;;GAIlB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAgC,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"drawer.template.js","sourceRoot":"","sources":["../../../src/drawer/drawer.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,IAAI,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAG9E;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAG;;;;0BAIU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB;yBACzB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;oBAC5B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;oBAClB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;cACxB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;cACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;kBACP,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;gBACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;iBAC9C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;QAC/B,GAAG,CAAC,QAAQ,CAAC;;;;GAIlB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAgC,cAAc,EAAE,CAAC"}
@@ -3,3 +3,4 @@ export * from './drawer.options.js';
3
3
  export { definition as DrawerDefinition } from './drawer.definition.js';
4
4
  export { styles as DrawerStyles } from './drawer.styles.js';
5
5
  export { template as DrawerTemplate } from './drawer.template.js';
6
+ export { tagName as DrawerTagName } from './drawer.options.js';
@@ -3,4 +3,5 @@ export * from './drawer.options.js';
3
3
  export { definition as DrawerDefinition } from './drawer.definition.js';
4
4
  export { styles as DrawerStyles } from './drawer.styles.js';
5
5
  export { template as DrawerTemplate } from './drawer.template.js';
6
+ export { tagName as DrawerTagName } from './drawer.options.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drawer/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drawer/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FluentDesignSystem } from '../fluent-design-system.js';
1
+ import { tagName } from './drawer-body.options.js';
2
2
  import { DrawerBody } from './drawer-body.js';
3
3
  import { styles } from './drawer-body.styles.js';
4
4
  import { template } from './drawer-body.template.js';
@@ -9,7 +9,7 @@ import { template } from './drawer-body.template.js';
9
9
  * HTML Element: <fluent-drawer>
10
10
  */
11
11
  export const definition = DrawerBody.compose({
12
- name: `${FluentDesignSystem.prefix}-drawer-body`,
12
+ name: tagName,
13
13
  template,
14
14
  styles,
15
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"drawer-body.definition.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC;IAC3C,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,cAAc;IAChD,QAAQ;IACR,MAAM;CACP,CAAC,CAAC"}
1
+ {"version":3,"file":"drawer-body.definition.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC;IAC3C,IAAI,EAAE,OAAO;IACb,QAAQ;IACR,MAAM;CACP,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { FASTElement } from '@microsoft/fast-element';
2
- import { isDialog } from '../dialog/dialog.options';
2
+ import { isDialog } from '../dialog/dialog.options.js';
3
3
  /**
4
4
  * A DrawerBody component to layout drawer content
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"drawer-body.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC;;;;;OAKG;IACI,YAAY,CAAC,KAAmB;QACrC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YAElC,IAAI,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"drawer-body.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC;;;;;OAKG;IACI,YAAY,CAAC,KAAmB;QACrC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YAElC,IAAI,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The tag name for the drawer body element.
3
+ *
4
+ * @public
5
+ */
6
+ export declare const tagName: "fluent-drawer-body";
@@ -0,0 +1,8 @@
1
+ import { FluentDesignSystem } from '../fluent-design-system.js';
2
+ /**
3
+ * The tag name for the drawer body element.
4
+ *
5
+ * @public
6
+ */
7
+ export const tagName = `${FluentDesignSystem.prefix}-drawer-body`;
8
+ //# sourceMappingURL=drawer-body.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer-body.options.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,kBAAkB,CAAC,MAAM,cAAuB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { display } from '../utils/index.js';
2
+ import { display } from '../utils/display.js';
3
3
  import { spacingHorizontalM, spacingHorizontalXL } from '../theme/design-tokens.js';
4
4
  import { typographySubtitle1Styles } from '../styles/partials/typography.partials.js';
5
5
  /** Drawer styles
@@ -1 +1 @@
1
- {"version":3,"file":"drawer-body.styles.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAEtF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,MAAM,CAAC;;;;;;eAMJ,mBAAmB;;;;;;;MAO5B,yBAAyB;;;;;;WAMpB,kBAAkB;;;;;;;;CAQ5B,CAAC"}
1
+ {"version":3,"file":"drawer-body.styles.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAEtF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,MAAM,CAAC;;;;;;eAMJ,mBAAmB;;;;;;;MAO5B,yBAAyB;;;;;;WAMpB,kBAAkB;;;;;;;;CAQ5B,CAAC"}
@@ -2,3 +2,4 @@ export * from './drawer-body.js';
2
2
  export { definition as DrawerBodyDefinition } from './drawer-body.definition.js';
3
3
  export { styles as DrawerBodyStyles } from './drawer-body.styles.js';
4
4
  export { template as DrawerBodyTemplate } from './drawer-body.template.js';
5
+ export { tagName as DrawerBodyTagName } from './drawer-body.options.js';
@@ -2,4 +2,5 @@ export * from './drawer-body.js';
2
2
  export { definition as DrawerBodyDefinition } from './drawer-body.definition.js';
3
3
  export { styles as DrawerBodyStyles } from './drawer-body.styles.js';
4
4
  export { template as DrawerBodyTemplate } from './drawer-body.template.js';
5
+ export { tagName as DrawerBodyTagName } from './drawer-body.options.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drawer-body/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/drawer-body/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -418,6 +418,11 @@ export declare class BaseDropdown extends FASTElement {
418
418
  * @public
419
419
  */
420
420
  inputHandler(e: InputEvent): boolean | void;
421
+ /**
422
+ * Guard flag to prevent reentrant calls to `insertControl`.
423
+ * @internal
424
+ */
425
+ private _insertingControl;
421
426
  /**
422
427
  * Inserts the control element based on the dropdown type.
423
428
  *
@@ -482,6 +487,7 @@ export declare class BaseDropdown extends FASTElement {
482
487
  * @internal
483
488
  */
484
489
  protected updateFreeformOption(value?: string): void;
490
+ connectedCallback(): void;
485
491
  disconnectedCallback(): void;
486
492
  /**
487
493
  * When anchor positioning isn't supported, an intersection observer is used to flip the listbox when it hits the
@@ -5,9 +5,9 @@ import { isDropdownOption } from '../option/option.options.js';
5
5
  import { getDirection } from '../utils/direction.js';
6
6
  import { toggleState } from '../utils/element-internals.js';
7
7
  import { getLanguage } from '../utils/language.js';
8
+ import { waitForConnectedDescendants } from '../utils/request-idle-callback.js';
8
9
  import { AnchorPositioningCSSSupported } from '../utils/support.js';
9
10
  import { uniqueId } from '../utils/unique-id.js';
10
- import { waitForConnectedDescendants } from '../utils/request-idle-callback.js';
11
11
  import { DropdownType } from './dropdown.options.js';
12
12
  import { dropdownButtonTemplate, dropdownInputTemplate } from './dropdown.template.js';
13
13
  /**
@@ -76,11 +76,13 @@ export class BaseDropdown extends FASTElement {
76
76
  * @param next - the current disabled state
77
77
  */
78
78
  disabledChanged(prev, next) {
79
- Updates.enqueue(() => {
80
- this.options.forEach(option => {
81
- option.disabled = option.disabledAttribute || this.disabled;
79
+ if (this.listbox) {
80
+ Updates.enqueue(() => {
81
+ this.options.forEach(option => {
82
+ option.disabled = option.disabledAttribute || this.disabled;
83
+ });
82
84
  });
83
- });
85
+ }
84
86
  }
85
87
  /**
86
88
  * The display value for the control.
@@ -126,17 +128,19 @@ export class BaseDropdown extends FASTElement {
126
128
  next.tabIndex = -1;
127
129
  const notifier = Observable.getNotifier(this);
128
130
  notifier.subscribe(next);
129
- for (const key of ['disabled', 'multiple']) {
130
- notifier.notify(key);
131
- }
132
- Updates.enqueue(() => {
131
+ notifier.notify('multiple');
132
+ waitForConnectedDescendants(next, () => {
133
+ this.options.forEach(option => {
134
+ option.disabled = option.disabledAttribute || this.disabled;
135
+ option.name = this.name;
136
+ });
133
137
  this.enabledOptions
134
138
  .filter(x => x.defaultSelected)
135
139
  .forEach((x, i) => {
136
140
  x.selected = this.multiple || i === 0;
137
141
  });
138
142
  this.setValidity();
139
- });
143
+ }, { idleCallback: true });
140
144
  if (AnchorPositioningCSSSupported) {
141
145
  // The `anchor-name` property seems to not be isolated between instances in Safari Technology Preview 220 (18.4).
142
146
  // It's unclear if the spec requires the `anchor-name` to be unique when styled on the `:host`.
@@ -165,11 +169,13 @@ export class BaseDropdown extends FASTElement {
165
169
  * @param next - the current name
166
170
  */
167
171
  nameChanged(prev, next) {
168
- Updates.enqueue(() => {
169
- this.options.forEach(option => {
170
- option.name = next;
172
+ if (this.listbox) {
173
+ Updates.enqueue(() => {
174
+ this.options.forEach(option => {
175
+ option.name = next;
176
+ });
171
177
  });
172
- });
178
+ }
173
179
  }
174
180
  /**
175
181
  * Handles the open state of the dropdown.
@@ -462,10 +468,12 @@ export class BaseDropdown extends FASTElement {
462
468
  * @internal
463
469
  */
464
470
  this.elementInternals = this.attachInternals();
471
+ /**
472
+ * Guard flag to prevent reentrant calls to `insertControl`.
473
+ * @internal
474
+ */
475
+ this._insertingControl = false;
465
476
  this.elementInternals.role = 'presentation';
466
- Updates.enqueue(() => {
467
- this.insertControl();
468
- });
469
477
  }
470
478
  /**
471
479
  * Filters the options based on the input value.
@@ -565,12 +573,17 @@ export class BaseDropdown extends FASTElement {
565
573
  * This method can be overridden in derived classes to provide custom control elements, though this is not recommended.
566
574
  */
567
575
  insertControl() {
576
+ if (this._insertingControl) {
577
+ return;
578
+ }
579
+ this._insertingControl = true;
568
580
  this.controlSlot?.assignedNodes().forEach(x => this.removeChild(x));
569
581
  if (this.type === DropdownType.combobox) {
570
582
  dropdownInputTemplate.render(this, this);
571
583
  return;
572
584
  }
573
585
  dropdownButtonTemplate.render(this, this);
586
+ this._insertingControl = false;
574
587
  }
575
588
  /**
576
589
  * Handles the keydown events for the dropdown.
@@ -664,7 +677,9 @@ export class BaseDropdown extends FASTElement {
664
677
  */
665
678
  selectOption(index = this.selectedIndex, shouldEmit = false) {
666
679
  this.listbox.selectOption(index);
667
- this.control.value = this.displayValue;
680
+ if (this.control) {
681
+ this.control.value = this.displayValue;
682
+ }
668
683
  this.setValidity();
669
684
  this.updateFreeformOption();
670
685
  if (shouldEmit) {
@@ -681,14 +696,15 @@ export class BaseDropdown extends FASTElement {
681
696
  * @internal
682
697
  */
683
698
  setValidity(flags, message, anchor) {
684
- if (this.$fastController.isConnected) {
685
- if (this.disabled || !this.required) {
686
- this.elementInternals.setValidity({});
687
- return;
688
- }
689
- const valueMissing = this.required && this.listbox.selectedOptions.length === 0;
690
- this.elementInternals.setValidity({ valueMissing, ...flags }, message ?? this.validationMessage, anchor ?? this.control);
699
+ if (!this.elementInternals) {
700
+ return;
701
+ }
702
+ if (this.disabled || !this.required) {
703
+ this.elementInternals.setValidity({});
704
+ return;
691
705
  }
706
+ const valueMissing = this.required && this.listbox.selectedOptions.length === 0;
707
+ this.elementInternals.setValidity({ valueMissing, ...flags }, message ?? this.validationMessage, anchor ?? this.control);
692
708
  }
693
709
  /**
694
710
  * Handles the `slotchange` event for the dropdown.
@@ -726,6 +742,12 @@ export class BaseDropdown extends FASTElement {
726
742
  this.freeformOption.value = value;
727
743
  this.freeformOption.hidden = false;
728
744
  }
745
+ connectedCallback() {
746
+ super.connectedCallback();
747
+ Updates.enqueue(() => {
748
+ this.insertControl();
749
+ });
750
+ }
729
751
  disconnectedCallback() {
730
752
  BaseDropdown.AnchorPositionFallbackObserver?.disconnect();
731
753
  this.debounceController?.abort();