@fluentui/web-components 3.0.0-beta.99 → 3.0.0-rc.10

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 (597) hide show
  1. package/CHANGELOG.md +408 -2
  2. package/custom-elements.json +2486 -1727
  3. package/dist/esm/accordion/accordion.js +3 -5
  4. package/dist/esm/accordion/accordion.js.map +1 -1
  5. package/dist/{dts → esm}/accordion-item/accordion-item.d.ts +1 -0
  6. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  7. package/dist/esm/anchor-button/anchor-button.base.js +3 -0
  8. package/dist/esm/anchor-button/anchor-button.base.js.map +1 -1
  9. package/dist/{dts → esm}/avatar/avatar.base.d.ts +20 -0
  10. package/dist/esm/avatar/avatar.base.js +37 -1
  11. package/dist/esm/avatar/avatar.base.js.map +1 -1
  12. package/dist/esm/avatar/avatar.js +1 -1
  13. package/dist/esm/avatar/avatar.js.map +1 -1
  14. package/dist/esm/avatar/avatar.styles.js +4 -4
  15. package/dist/esm/avatar/avatar.styles.js.map +1 -1
  16. package/dist/esm/avatar/avatar.template.js +2 -2
  17. package/dist/esm/avatar/avatar.template.js.map +1 -1
  18. package/dist/{dts → esm}/badge/badge.options.d.ts +3 -1
  19. package/dist/esm/badge/badge.options.js.map +1 -1
  20. package/dist/{dts → esm}/button/button.base.d.ts +3 -10
  21. package/dist/esm/button/button.base.js +25 -11
  22. package/dist/esm/button/button.base.js.map +1 -1
  23. package/dist/esm/button/button.template.js +0 -1
  24. package/dist/esm/button/button.template.js.map +1 -1
  25. package/dist/{dts → esm}/checkbox/checkbox.base.d.ts +10 -1
  26. package/dist/esm/checkbox/checkbox.base.js +24 -2
  27. package/dist/esm/checkbox/checkbox.base.js.map +1 -1
  28. package/dist/esm/checkbox/checkbox.template.js +0 -1
  29. package/dist/esm/checkbox/checkbox.template.js.map +1 -1
  30. package/dist/esm/compound-button/compound-button.styles.js +7 -1
  31. package/dist/esm/compound-button/compound-button.styles.js.map +1 -1
  32. package/dist/{dts → esm}/counter-badge/counter-badge.d.ts +2 -1
  33. package/dist/esm/counter-badge/counter-badge.js +2 -1
  34. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  35. package/dist/{dts → esm}/dialog/dialog.d.ts +26 -8
  36. package/dist/esm/dialog/dialog.js +37 -7
  37. package/dist/esm/dialog/dialog.js.map +1 -1
  38. package/dist/esm/dialog/dialog.options.d.ts +21 -0
  39. package/dist/esm/dialog/dialog.options.js +14 -0
  40. package/dist/esm/dialog/dialog.options.js.map +1 -1
  41. package/dist/esm/dialog/dialog.styles.js +7 -1
  42. package/dist/esm/dialog/dialog.styles.js.map +1 -1
  43. package/dist/esm/dialog/dialog.template.js +0 -4
  44. package/dist/esm/dialog/dialog.template.js.map +1 -1
  45. package/dist/{dts → esm}/dialog/index.d.ts +1 -1
  46. package/dist/esm/dialog/index.js +1 -1
  47. package/dist/esm/dialog/index.js.map +1 -1
  48. package/dist/{dts → esm}/dialog-body/dialog-body.d.ts +5 -3
  49. package/dist/esm/dialog-body/dialog-body.js +16 -12
  50. package/dist/esm/dialog-body/dialog-body.js.map +1 -1
  51. package/dist/esm/dialog-body/dialog-body.styles.js +24 -8
  52. package/dist/esm/dialog-body/dialog-body.styles.js.map +1 -1
  53. package/dist/esm/dialog-body/dialog-body.template.js +10 -35
  54. package/dist/esm/dialog-body/dialog-body.template.js.map +1 -1
  55. package/dist/{dts → esm}/divider/divider.options.d.ts +1 -4
  56. package/dist/{dts → esm}/drawer/drawer.d.ts +31 -8
  57. package/dist/esm/drawer/drawer.js +61 -5
  58. package/dist/esm/drawer/drawer.js.map +1 -1
  59. package/dist/esm/drawer/drawer.template.js +1 -4
  60. package/dist/esm/drawer/drawer.template.js.map +1 -1
  61. package/dist/{dts → esm}/drawer-body/drawer-body.d.ts +7 -0
  62. package/dist/esm/drawer-body/drawer-body.js +16 -0
  63. package/dist/esm/drawer-body/drawer-body.js.map +1 -1
  64. package/dist/esm/drawer-body/drawer-body.template.js +1 -1
  65. package/dist/esm/drawer-body/drawer-body.template.js.map +1 -1
  66. package/dist/{dts → esm}/dropdown/dropdown.base.d.ts +30 -16
  67. package/dist/esm/dropdown/dropdown.base.js +114 -62
  68. package/dist/esm/dropdown/dropdown.base.js.map +1 -1
  69. package/dist/esm/dropdown/dropdown.definition.js +0 -3
  70. package/dist/esm/dropdown/dropdown.definition.js.map +1 -1
  71. package/dist/esm/dropdown/dropdown.styles.js +28 -25
  72. package/dist/esm/dropdown/dropdown.styles.js.map +1 -1
  73. package/dist/esm/dropdown/dropdown.template.js +4 -2
  74. package/dist/esm/dropdown/dropdown.template.js.map +1 -1
  75. package/dist/{dts → esm}/field/field.base.d.ts +3 -0
  76. package/dist/esm/field/field.base.js +21 -10
  77. package/dist/esm/field/field.base.js.map +1 -1
  78. package/dist/esm/field/field.styles.js +13 -15
  79. package/dist/esm/field/field.styles.js.map +1 -1
  80. package/dist/esm/field/field.template.js +2 -10
  81. package/dist/esm/field/field.template.js.map +1 -1
  82. package/dist/{dts → esm}/index-rollup.d.ts +1 -2
  83. package/dist/esm/index-rollup.js +1 -2
  84. package/dist/esm/index-rollup.js.map +1 -1
  85. package/dist/{dts → esm}/index.d.ts +3 -5
  86. package/dist/esm/index.js +2 -4
  87. package/dist/esm/index.js.map +1 -1
  88. package/dist/esm/label/label.template.js +1 -1
  89. package/dist/esm/label/label.template.js.map +1 -1
  90. package/dist/{dts → esm}/listbox/listbox.d.ts +8 -2
  91. package/dist/esm/listbox/listbox.js +17 -5
  92. package/dist/esm/listbox/listbox.js.map +1 -1
  93. package/dist/esm/listbox/listbox.styles.js +38 -2
  94. package/dist/esm/listbox/listbox.styles.js.map +1 -1
  95. package/dist/{dts → esm}/listbox/listbox.template.d.ts +1 -2
  96. package/dist/esm/listbox/listbox.template.js +2 -9
  97. package/dist/esm/listbox/listbox.template.js.map +1 -1
  98. package/dist/esm/menu/menu.js +7 -3
  99. package/dist/esm/menu/menu.js.map +1 -1
  100. package/dist/{dts → esm}/menu-item/menu-item.options.d.ts +10 -0
  101. package/dist/esm/menu-item/menu-item.options.js +14 -0
  102. package/dist/esm/menu-item/menu-item.options.js.map +1 -1
  103. package/dist/esm/menu-item/menu-item.styles.js +1 -1
  104. package/dist/esm/menu-list/menu-list.js +6 -10
  105. package/dist/esm/menu-list/menu-list.js.map +1 -1
  106. package/dist/{dts → esm}/message-bar/message-bar.d.ts +2 -1
  107. package/dist/esm/message-bar/message-bar.js +2 -1
  108. package/dist/esm/message-bar/message-bar.js.map +1 -1
  109. package/dist/{dts → esm}/message-bar/message-bar.options.d.ts +6 -3
  110. package/dist/esm/message-bar/message-bar.options.js +6 -3
  111. package/dist/esm/message-bar/message-bar.options.js.map +1 -1
  112. package/dist/esm/option/option.js +1 -0
  113. package/dist/esm/option/option.js.map +1 -1
  114. package/dist/esm/option/option.styles.js +8 -2
  115. package/dist/esm/option/option.styles.js.map +1 -1
  116. package/dist/{dts → esm}/progress-bar/progress-bar.base.d.ts +20 -9
  117. package/dist/esm/progress-bar/progress-bar.base.js +30 -16
  118. package/dist/esm/progress-bar/progress-bar.base.js.map +1 -1
  119. package/dist/{dts → esm}/progress-bar/progress-bar.d.ts +9 -3
  120. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  121. package/dist/esm/progress-bar/progress-bar.styles.js +11 -0
  122. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  123. package/dist/esm/progress-bar/progress-bar.template.js +2 -8
  124. package/dist/esm/progress-bar/progress-bar.template.js.map +1 -1
  125. package/dist/{dts → esm}/radio/radio.d.ts +0 -1
  126. package/dist/esm/radio/radio.js +0 -7
  127. package/dist/esm/radio/radio.js.map +1 -1
  128. package/dist/{dts → esm}/radio-group/radio-group.d.ts +15 -0
  129. package/dist/esm/radio-group/radio-group.js +46 -6
  130. package/dist/esm/radio-group/radio-group.js.map +1 -1
  131. package/dist/{dts → esm}/radio-group/radio-group.options.d.ts +1 -4
  132. package/dist/esm/radio-group/radio-group.styles.js +5 -1
  133. package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
  134. package/dist/{dts → esm}/rating-display/rating-display.base.d.ts +20 -32
  135. package/dist/esm/rating-display/rating-display.base.js +63 -48
  136. package/dist/esm/rating-display/rating-display.base.js.map +1 -1
  137. package/dist/{dts → esm}/rating-display/rating-display.d.ts +1 -13
  138. package/dist/esm/rating-display/rating-display.js +0 -16
  139. package/dist/esm/rating-display/rating-display.js.map +1 -1
  140. package/dist/esm/rating-display/rating-display.styles.js +65 -38
  141. package/dist/esm/rating-display/rating-display.styles.js.map +1 -1
  142. package/dist/esm/rating-display/rating-display.template.d.ts +17 -0
  143. package/dist/esm/rating-display/rating-display.template.js +11 -15
  144. package/dist/esm/rating-display/rating-display.template.js.map +1 -1
  145. package/dist/esm/slider/slider.js +2 -2
  146. package/dist/esm/slider/slider.js.map +1 -1
  147. package/dist/esm/slider/slider.template.js +0 -1
  148. package/dist/esm/slider/slider.template.js.map +1 -1
  149. package/dist/{dts → esm}/styles/partials/badge.partials.d.ts +2 -1
  150. package/dist/esm/styles/partials/badge.partials.js +2 -1
  151. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  152. package/dist/{dts → esm}/styles/states/index.d.ts +5 -0
  153. package/dist/esm/styles/states/index.js +5 -0
  154. package/dist/esm/styles/states/index.js.map +1 -1
  155. package/dist/esm/switch/switch.styles.js +4 -0
  156. package/dist/esm/switch/switch.styles.js.map +1 -1
  157. package/dist/esm/switch/switch.template.js +0 -1
  158. package/dist/esm/switch/switch.template.js.map +1 -1
  159. package/dist/{dts → esm}/tab/index.d.ts +1 -0
  160. package/dist/esm/tab/index.js +1 -0
  161. package/dist/esm/tab/index.js.map +1 -1
  162. package/dist/esm/tab/tab.options.d.ts +10 -0
  163. package/dist/esm/tab/tab.options.js +15 -0
  164. package/dist/esm/tab/tab.options.js.map +1 -0
  165. package/dist/esm/tab/tab.styles.js +12 -7
  166. package/dist/esm/tab/tab.styles.js.map +1 -1
  167. package/dist/{dts → esm}/tablist/tablist.base.d.ts +13 -2
  168. package/dist/esm/tablist/tablist.base.js +23 -0
  169. package/dist/esm/tablist/tablist.base.js.map +1 -1
  170. package/dist/{dts → esm}/tablist/tablist.options.d.ts +1 -4
  171. package/dist/esm/tablist/tablist.styles.js +2 -2
  172. package/dist/esm/tablist/tablist.template.js +1 -1
  173. package/dist/esm/tablist/tablist.template.js.map +1 -1
  174. package/dist/esm/text/text.styles.js +0 -1
  175. package/dist/esm/text/text.styles.js.map +1 -1
  176. package/dist/{dts → esm}/textarea/textarea.base.d.ts +6 -0
  177. package/dist/esm/textarea/textarea.base.js +18 -7
  178. package/dist/esm/textarea/textarea.base.js.map +1 -1
  179. package/dist/esm/textarea/textarea.template.js +3 -15
  180. package/dist/esm/textarea/textarea.template.js.map +1 -1
  181. package/dist/{dts → esm}/theme/design-tokens.d.ts +115 -0
  182. package/dist/esm/theme/design-tokens.js +115 -0
  183. package/dist/esm/theme/design-tokens.js.map +1 -1
  184. package/dist/{dts → esm}/theme/set-theme.d.ts +2 -2
  185. package/dist/esm/theme/set-theme.js +1 -1
  186. package/dist/{dts → esm}/tree/tree.base.d.ts +7 -1
  187. package/dist/esm/tree/tree.base.js +10 -1
  188. package/dist/esm/tree/tree.base.js.map +1 -1
  189. package/dist/{dts → esm}/tree/tree.d.ts +12 -6
  190. package/dist/esm/tree/tree.js +10 -4
  191. package/dist/esm/tree/tree.js.map +1 -1
  192. package/dist/esm/tree/tree.styles.js +2 -1
  193. package/dist/esm/tree/tree.styles.js.map +1 -1
  194. package/dist/esm/tree/tree.template.js +2 -7
  195. package/dist/esm/tree/tree.template.js.map +1 -1
  196. package/dist/{dts → esm}/tree-item/tree-item.base.d.ts +16 -3
  197. package/dist/esm/tree-item/tree-item.base.js +26 -2
  198. package/dist/esm/tree-item/tree-item.base.js.map +1 -1
  199. package/dist/{dts → esm}/tree-item/tree-item.d.ts +3 -3
  200. package/dist/esm/tree-item/tree-item.js +1 -1
  201. package/dist/esm/tree-item/tree-item.js.map +1 -1
  202. package/dist/esm/tree-item/tree-item.styles.js +5 -0
  203. package/dist/esm/tree-item/tree-item.styles.js.map +1 -1
  204. package/dist/esm/tree-item/tree-item.template.js +5 -13
  205. package/dist/esm/tree-item/tree-item.template.js.map +1 -1
  206. package/dist/{dts → esm}/tsdoc-metadata.json +1 -1
  207. package/dist/esm/utils/element-internals.js +0 -3
  208. package/dist/esm/utils/element-internals.js.map +1 -1
  209. package/dist/{dts → esm}/utils/language.d.ts +1 -1
  210. package/dist/esm/utils/request-idle-callback.d.ts +41 -0
  211. package/dist/esm/utils/request-idle-callback.js +72 -0
  212. package/dist/esm/utils/request-idle-callback.js.map +1 -0
  213. package/dist/web-components.d.ts +431 -387
  214. package/dist/web-components.js +1468 -1511
  215. package/dist/web-components.min.js +306 -289
  216. package/package.json +27 -55
  217. package/dist/dts/dialog/dialog.options.d.ts +0 -11
  218. package/dist/dts/rating-display/rating-display.template.d.ts +0 -14
  219. package/dist/dts/tab-panel/index.d.ts +0 -4
  220. package/dist/dts/tab-panel/tab-panel.bench.d.ts +0 -3
  221. package/dist/dts/tab-panel/tab-panel.d.ts +0 -8
  222. package/dist/dts/tab-panel/tab-panel.definition.d.ts +0 -5
  223. package/dist/dts/tab-panel/tab-panel.styles.d.ts +0 -1
  224. package/dist/dts/tab-panel/tab-panel.template.d.ts +0 -7
  225. package/dist/dts/tabs/index.d.ts +0 -6
  226. package/dist/dts/tabs/tabs.base.d.ts +0 -90
  227. package/dist/dts/tabs/tabs.bench.d.ts +0 -3
  228. package/dist/dts/tabs/tabs.d.ts +0 -100
  229. package/dist/dts/tabs/tabs.definition.d.ts +0 -5
  230. package/dist/dts/tabs/tabs.options.d.ts +0 -32
  231. package/dist/dts/tabs/tabs.styles.d.ts +0 -1
  232. package/dist/dts/tabs/tabs.template.d.ts +0 -8
  233. package/dist/dts/tree/define.d.ts +0 -1
  234. package/dist/dts/tree-item/define.d.ts +0 -1
  235. package/dist/esm/tab-panel/define.js +0 -7
  236. package/dist/esm/tab-panel/define.js.map +0 -1
  237. package/dist/esm/tab-panel/index.js +0 -5
  238. package/dist/esm/tab-panel/index.js.map +0 -1
  239. package/dist/esm/tab-panel/tab-panel.bench.js +0 -13
  240. package/dist/esm/tab-panel/tab-panel.bench.js.map +0 -1
  241. package/dist/esm/tab-panel/tab-panel.definition.js +0 -13
  242. package/dist/esm/tab-panel/tab-panel.definition.js.map +0 -1
  243. package/dist/esm/tab-panel/tab-panel.js +0 -9
  244. package/dist/esm/tab-panel/tab-panel.js.map +0 -1
  245. package/dist/esm/tab-panel/tab-panel.styles.js +0 -12
  246. package/dist/esm/tab-panel/tab-panel.styles.js.map +0 -1
  247. package/dist/esm/tab-panel/tab-panel.template.js +0 -13
  248. package/dist/esm/tab-panel/tab-panel.template.js.map +0 -1
  249. package/dist/esm/tabs/define.js +0 -7
  250. package/dist/esm/tabs/define.js.map +0 -1
  251. package/dist/esm/tabs/index.js +0 -6
  252. package/dist/esm/tabs/index.js.map +0 -1
  253. package/dist/esm/tabs/tabs.base.js +0 -279
  254. package/dist/esm/tabs/tabs.base.js.map +0 -1
  255. package/dist/esm/tabs/tabs.bench.js +0 -32
  256. package/dist/esm/tabs/tabs.bench.js.map +0 -1
  257. package/dist/esm/tabs/tabs.definition.js +0 -13
  258. package/dist/esm/tabs/tabs.definition.js.map +0 -1
  259. package/dist/esm/tabs/tabs.js +0 -180
  260. package/dist/esm/tabs/tabs.js.map +0 -1
  261. package/dist/esm/tabs/tabs.options.js +0 -16
  262. package/dist/esm/tabs/tabs.options.js.map +0 -1
  263. package/dist/esm/tabs/tabs.styles.js +0 -230
  264. package/dist/esm/tabs/tabs.styles.js.map +0 -1
  265. package/dist/esm/tabs/tabs.template.js +0 -19
  266. package/dist/esm/tabs/tabs.template.js.map +0 -1
  267. /package/dist/{dts → esm}/accordion/accordion.bench.d.ts +0 -0
  268. /package/dist/{dts → esm}/accordion/accordion.d.ts +0 -0
  269. /package/dist/{dts → esm}/accordion/accordion.definition.d.ts +0 -0
  270. /package/dist/{dts → esm}/accordion/accordion.options.d.ts +0 -0
  271. /package/dist/{dts → esm}/accordion/accordion.styles.d.ts +0 -0
  272. /package/dist/{dts → esm}/accordion/accordion.template.d.ts +0 -0
  273. /package/dist/{dts → esm}/accordion/define.d.ts +0 -0
  274. /package/dist/{dts → esm}/accordion/index.d.ts +0 -0
  275. /package/dist/{dts → esm}/accordion-item/accordion-item.base.d.ts +0 -0
  276. /package/dist/{dts → esm}/accordion-item/accordion-item.bench.d.ts +0 -0
  277. /package/dist/{dts → esm}/accordion-item/accordion-item.definition.d.ts +0 -0
  278. /package/dist/{dts → esm}/accordion-item/accordion-item.options.d.ts +0 -0
  279. /package/dist/{dts → esm}/accordion-item/accordion-item.styles.d.ts +0 -0
  280. /package/dist/{dts → esm}/accordion-item/accordion-item.template.d.ts +0 -0
  281. /package/dist/{dts → esm}/accordion-item/define.d.ts +0 -0
  282. /package/dist/{dts → esm}/accordion-item/index.d.ts +0 -0
  283. /package/dist/{dts → esm}/anchor-button/anchor-button.base.d.ts +0 -0
  284. /package/dist/{dts → esm}/anchor-button/anchor-button.bench.d.ts +0 -0
  285. /package/dist/{dts → esm}/anchor-button/anchor-button.d.ts +0 -0
  286. /package/dist/{dts → esm}/anchor-button/anchor-button.definition.d.ts +0 -0
  287. /package/dist/{dts → esm}/anchor-button/anchor-button.options.d.ts +0 -0
  288. /package/dist/{dts → esm}/anchor-button/anchor-button.styles.d.ts +0 -0
  289. /package/dist/{dts → esm}/anchor-button/anchor-button.template.d.ts +0 -0
  290. /package/dist/{dts → esm}/anchor-button/define.d.ts +0 -0
  291. /package/dist/{dts → esm}/anchor-button/index.d.ts +0 -0
  292. /package/dist/{dts → esm}/avatar/avatar.bench.d.ts +0 -0
  293. /package/dist/{dts → esm}/avatar/avatar.d.ts +0 -0
  294. /package/dist/{dts → esm}/avatar/avatar.definition.d.ts +0 -0
  295. /package/dist/{dts → esm}/avatar/avatar.options.d.ts +0 -0
  296. /package/dist/{dts → esm}/avatar/avatar.styles.d.ts +0 -0
  297. /package/dist/{dts → esm}/avatar/avatar.template.d.ts +0 -0
  298. /package/dist/{dts → esm}/avatar/define.d.ts +0 -0
  299. /package/dist/{dts → esm}/avatar/index.d.ts +0 -0
  300. /package/dist/{dts → esm}/badge/badge.bench.d.ts +0 -0
  301. /package/dist/{dts → esm}/badge/badge.d.ts +0 -0
  302. /package/dist/{dts → esm}/badge/badge.definition.d.ts +0 -0
  303. /package/dist/{dts → esm}/badge/badge.styles.d.ts +0 -0
  304. /package/dist/{dts → esm}/badge/badge.template.d.ts +0 -0
  305. /package/dist/{dts → esm}/badge/define.d.ts +0 -0
  306. /package/dist/{dts → esm}/badge/index.d.ts +0 -0
  307. /package/dist/{dts → esm}/button/button.bench.d.ts +0 -0
  308. /package/dist/{dts → esm}/button/button.d.ts +0 -0
  309. /package/dist/{dts → esm}/button/button.definition.d.ts +0 -0
  310. /package/dist/{dts → esm}/button/button.options.d.ts +0 -0
  311. /package/dist/{dts → esm}/button/button.styles.d.ts +0 -0
  312. /package/dist/{dts → esm}/button/button.template.d.ts +0 -0
  313. /package/dist/{dts → esm}/button/define.d.ts +0 -0
  314. /package/dist/{dts → esm}/button/index.d.ts +0 -0
  315. /package/dist/{dts → esm}/checkbox/checkbox.bench.d.ts +0 -0
  316. /package/dist/{dts → esm}/checkbox/checkbox.d.ts +0 -0
  317. /package/dist/{dts → esm}/checkbox/checkbox.definition.d.ts +0 -0
  318. /package/dist/{dts → esm}/checkbox/checkbox.options.d.ts +0 -0
  319. /package/dist/{dts → esm}/checkbox/checkbox.styles.d.ts +0 -0
  320. /package/dist/{dts → esm}/checkbox/checkbox.template.d.ts +0 -0
  321. /package/dist/{dts → esm}/checkbox/define.d.ts +0 -0
  322. /package/dist/{dts → esm}/checkbox/index.d.ts +0 -0
  323. /package/dist/{dts → esm}/compound-button/compound-button.bench.d.ts +0 -0
  324. /package/dist/{dts → esm}/compound-button/compound-button.d.ts +0 -0
  325. /package/dist/{dts → esm}/compound-button/compound-button.definition.d.ts +0 -0
  326. /package/dist/{dts → esm}/compound-button/compound-button.options.d.ts +0 -0
  327. /package/dist/{dts → esm}/compound-button/compound-button.styles.d.ts +0 -0
  328. /package/dist/{dts → esm}/compound-button/compound-button.template.d.ts +0 -0
  329. /package/dist/{dts → esm}/compound-button/define.d.ts +0 -0
  330. /package/dist/{dts → esm}/compound-button/index.d.ts +0 -0
  331. /package/dist/{dts → esm}/counter-badge/counter-badge.bench.d.ts +0 -0
  332. /package/dist/{dts → esm}/counter-badge/counter-badge.definition.d.ts +0 -0
  333. /package/dist/{dts → esm}/counter-badge/counter-badge.options.d.ts +0 -0
  334. /package/dist/{dts → esm}/counter-badge/counter-badge.styles.d.ts +0 -0
  335. /package/dist/{dts → esm}/counter-badge/counter-badge.template.d.ts +0 -0
  336. /package/dist/{dts → esm}/counter-badge/define.d.ts +0 -0
  337. /package/dist/{dts → esm}/counter-badge/index.d.ts +0 -0
  338. /package/dist/{dts → esm}/dialog/define.d.ts +0 -0
  339. /package/dist/{dts → esm}/dialog/dialog.bench.d.ts +0 -0
  340. /package/dist/{dts → esm}/dialog/dialog.definition.d.ts +0 -0
  341. /package/dist/{dts → esm}/dialog/dialog.styles.d.ts +0 -0
  342. /package/dist/{dts → esm}/dialog/dialog.template.d.ts +0 -0
  343. /package/dist/{dts → esm}/dialog-body/define.d.ts +0 -0
  344. /package/dist/{dts → esm}/dialog-body/dialog-body.bench.d.ts +0 -0
  345. /package/dist/{dts → esm}/dialog-body/dialog-body.definition.d.ts +0 -0
  346. /package/dist/{dts → esm}/dialog-body/dialog-body.styles.d.ts +0 -0
  347. /package/dist/{dts → esm}/dialog-body/dialog-body.template.d.ts +0 -0
  348. /package/dist/{dts → esm}/dialog-body/index.d.ts +0 -0
  349. /package/dist/{dts → esm}/divider/define.d.ts +0 -0
  350. /package/dist/{dts → esm}/divider/divider.base.d.ts +0 -0
  351. /package/dist/{dts → esm}/divider/divider.bench.d.ts +0 -0
  352. /package/dist/{dts → esm}/divider/divider.d.ts +0 -0
  353. /package/dist/{dts → esm}/divider/divider.definition.d.ts +0 -0
  354. /package/dist/{dts → esm}/divider/divider.styles.d.ts +0 -0
  355. /package/dist/{dts → esm}/divider/divider.template.d.ts +0 -0
  356. /package/dist/{dts → esm}/divider/index.d.ts +0 -0
  357. /package/dist/{dts → esm}/drawer/define.d.ts +0 -0
  358. /package/dist/{dts → esm}/drawer/drawer.definition.d.ts +0 -0
  359. /package/dist/{dts → esm}/drawer/drawer.options.d.ts +0 -0
  360. /package/dist/{dts → esm}/drawer/drawer.styles.d.ts +0 -0
  361. /package/dist/{dts → esm}/drawer/drawer.template.d.ts +0 -0
  362. /package/dist/{dts → esm}/drawer/index.d.ts +0 -0
  363. /package/dist/{dts → esm}/drawer-body/define.d.ts +0 -0
  364. /package/dist/{dts → esm}/drawer-body/drawer-body.definition.d.ts +0 -0
  365. /package/dist/{dts → esm}/drawer-body/drawer-body.styles.d.ts +0 -0
  366. /package/dist/{dts → esm}/drawer-body/drawer-body.template.d.ts +0 -0
  367. /package/dist/{dts → esm}/drawer-body/index.d.ts +0 -0
  368. /package/dist/{dts → esm}/dropdown/define.d.ts +0 -0
  369. /package/dist/{dts → esm}/dropdown/dropdown.d.ts +0 -0
  370. /package/dist/{dts → esm}/dropdown/dropdown.definition.d.ts +0 -0
  371. /package/dist/{dts → esm}/dropdown/dropdown.options.d.ts +0 -0
  372. /package/dist/{dts → esm}/dropdown/dropdown.styles.d.ts +0 -0
  373. /package/dist/{dts → esm}/dropdown/dropdown.template.d.ts +0 -0
  374. /package/dist/{dts → esm}/dropdown/index.d.ts +0 -0
  375. /package/dist/{dts → esm}/field/define.d.ts +0 -0
  376. /package/dist/{dts → esm}/field/field.bench.d.ts +0 -0
  377. /package/dist/{dts → esm}/field/field.d.ts +0 -0
  378. /package/dist/{dts → esm}/field/field.definition.d.ts +0 -0
  379. /package/dist/{dts → esm}/field/field.options.d.ts +0 -0
  380. /package/dist/{dts → esm}/field/field.styles.d.ts +0 -0
  381. /package/dist/{dts → esm}/field/field.template.d.ts +0 -0
  382. /package/dist/{dts → esm}/field/index.d.ts +0 -0
  383. /package/dist/{dts → esm}/fluent-design-system.d.ts +0 -0
  384. /package/dist/{dts → esm}/image/define.d.ts +0 -0
  385. /package/dist/{dts → esm}/image/image.bench.d.ts +0 -0
  386. /package/dist/{dts → esm}/image/image.d.ts +0 -0
  387. /package/dist/{dts → esm}/image/image.definition.d.ts +0 -0
  388. /package/dist/{dts → esm}/image/image.options.d.ts +0 -0
  389. /package/dist/{dts → esm}/image/image.styles.d.ts +0 -0
  390. /package/dist/{dts → esm}/image/image.template.d.ts +0 -0
  391. /package/dist/{dts → esm}/image/index.d.ts +0 -0
  392. /package/dist/{dts → esm}/label/define.d.ts +0 -0
  393. /package/dist/{dts → esm}/label/index.d.ts +0 -0
  394. /package/dist/{dts → esm}/label/label.bench.d.ts +0 -0
  395. /package/dist/{dts → esm}/label/label.d.ts +0 -0
  396. /package/dist/{dts → esm}/label/label.definition.d.ts +0 -0
  397. /package/dist/{dts → esm}/label/label.options.d.ts +0 -0
  398. /package/dist/{dts → esm}/label/label.styles.d.ts +0 -0
  399. /package/dist/{dts → esm}/label/label.template.d.ts +0 -0
  400. /package/dist/{dts → esm}/link/define.d.ts +0 -0
  401. /package/dist/{dts → esm}/link/index.d.ts +0 -0
  402. /package/dist/{dts → esm}/link/link.bench.d.ts +0 -0
  403. /package/dist/{dts → esm}/link/link.d.ts +0 -0
  404. /package/dist/{dts → esm}/link/link.definition.d.ts +0 -0
  405. /package/dist/{dts → esm}/link/link.options.d.ts +0 -0
  406. /package/dist/{dts → esm}/link/link.styles.d.ts +0 -0
  407. /package/dist/{dts → esm}/link/link.template.d.ts +0 -0
  408. /package/dist/{dts → esm}/listbox/define.d.ts +0 -0
  409. /package/dist/{dts → esm}/listbox/index.d.ts +0 -0
  410. /package/dist/{dts → esm}/listbox/listbox.definition.d.ts +0 -0
  411. /package/dist/{dts → esm}/listbox/listbox.options.d.ts +0 -0
  412. /package/dist/{dts → esm}/listbox/listbox.styles.d.ts +0 -0
  413. /package/dist/{dts → esm}/menu/define.d.ts +0 -0
  414. /package/dist/{dts → esm}/menu/index.d.ts +0 -0
  415. /package/dist/{dts → esm}/menu/menu.bench.d.ts +0 -0
  416. /package/dist/{dts → esm}/menu/menu.d.ts +0 -0
  417. /package/dist/{dts → esm}/menu/menu.definition.d.ts +0 -0
  418. /package/dist/{dts → esm}/menu/menu.styles.d.ts +0 -0
  419. /package/dist/{dts → esm}/menu/menu.template.d.ts +0 -0
  420. /package/dist/{dts → esm}/menu-button/define.d.ts +0 -0
  421. /package/dist/{dts → esm}/menu-button/index.d.ts +0 -0
  422. /package/dist/{dts → esm}/menu-button/menu-button.bench.d.ts +0 -0
  423. /package/dist/{dts → esm}/menu-button/menu-button.d.ts +0 -0
  424. /package/dist/{dts → esm}/menu-button/menu-button.definition.d.ts +0 -0
  425. /package/dist/{dts → esm}/menu-button/menu-button.options.d.ts +0 -0
  426. /package/dist/{dts → esm}/menu-button/menu-button.template.d.ts +0 -0
  427. /package/dist/{dts → esm}/menu-item/define.d.ts +0 -0
  428. /package/dist/{dts → esm}/menu-item/index.d.ts +0 -0
  429. /package/dist/{dts → esm}/menu-item/menu-item.bench.d.ts +0 -0
  430. /package/dist/{dts → esm}/menu-item/menu-item.d.ts +0 -0
  431. /package/dist/{dts → esm}/menu-item/menu-item.definition.d.ts +0 -0
  432. /package/dist/{dts → esm}/menu-item/menu-item.styles.d.ts +0 -0
  433. /package/dist/{dts → esm}/menu-item/menu-item.template.d.ts +0 -0
  434. /package/dist/{dts → esm}/menu-list/define.d.ts +0 -0
  435. /package/dist/{dts → esm}/menu-list/index.d.ts +0 -0
  436. /package/dist/{dts → esm}/menu-list/menu-list.bench.d.ts +0 -0
  437. /package/dist/{dts → esm}/menu-list/menu-list.d.ts +0 -0
  438. /package/dist/{dts → esm}/menu-list/menu-list.definition.d.ts +0 -0
  439. /package/dist/{dts → esm}/menu-list/menu-list.styles.d.ts +0 -0
  440. /package/dist/{dts → esm}/menu-list/menu-list.template.d.ts +0 -0
  441. /package/dist/{dts → esm}/message-bar/define.d.ts +0 -0
  442. /package/dist/{dts → esm}/message-bar/index.d.ts +0 -0
  443. /package/dist/{dts → esm}/message-bar/message-bar.bench.d.ts +0 -0
  444. /package/dist/{dts → esm}/message-bar/message-bar.definition.d.ts +0 -0
  445. /package/dist/{dts → esm}/message-bar/message-bar.styles.d.ts +0 -0
  446. /package/dist/{dts → esm}/message-bar/message-bar.template.d.ts +0 -0
  447. /package/dist/{dts → esm}/option/define.d.ts +0 -0
  448. /package/dist/{dts → esm}/option/index.d.ts +0 -0
  449. /package/dist/{dts → esm}/option/option.d.ts +0 -0
  450. /package/dist/{dts → esm}/option/option.definition.d.ts +0 -0
  451. /package/dist/{dts → esm}/option/option.options.d.ts +0 -0
  452. /package/dist/{dts → esm}/option/option.styles.d.ts +0 -0
  453. /package/dist/{dts → esm}/option/option.template.d.ts +0 -0
  454. /package/dist/{dts → esm}/patterns/aria-globals.d.ts +0 -0
  455. /package/dist/{dts → esm}/patterns/index.d.ts +0 -0
  456. /package/dist/{dts → esm}/patterns/start-end.d.ts +0 -0
  457. /package/dist/{dts → esm}/progress-bar/define.d.ts +0 -0
  458. /package/dist/{dts → esm}/progress-bar/index.d.ts +0 -0
  459. /package/dist/{dts → esm}/progress-bar/progress-bar.bench.d.ts +0 -0
  460. /package/dist/{dts → esm}/progress-bar/progress-bar.definition.d.ts +0 -0
  461. /package/dist/{dts → esm}/progress-bar/progress-bar.options.d.ts +0 -0
  462. /package/dist/{dts → esm}/progress-bar/progress-bar.styles.d.ts +0 -0
  463. /package/dist/{dts → esm}/progress-bar/progress-bar.template.d.ts +0 -0
  464. /package/dist/{dts → esm}/radio/define.d.ts +0 -0
  465. /package/dist/{dts → esm}/radio/index.d.ts +0 -0
  466. /package/dist/{dts → esm}/radio/radio.bench.d.ts +0 -0
  467. /package/dist/{dts → esm}/radio/radio.definition.d.ts +0 -0
  468. /package/dist/{dts → esm}/radio/radio.options.d.ts +0 -0
  469. /package/dist/{dts → esm}/radio/radio.styles.d.ts +0 -0
  470. /package/dist/{dts → esm}/radio/radio.template.d.ts +0 -0
  471. /package/dist/{dts → esm}/radio-group/define.d.ts +0 -0
  472. /package/dist/{dts → esm}/radio-group/index.d.ts +0 -0
  473. /package/dist/{dts → esm}/radio-group/radio-group.bench.d.ts +0 -0
  474. /package/dist/{dts → esm}/radio-group/radio-group.definition.d.ts +0 -0
  475. /package/dist/{dts → esm}/radio-group/radio-group.styles.d.ts +0 -0
  476. /package/dist/{dts → esm}/radio-group/radio-group.template.d.ts +0 -0
  477. /package/dist/{dts → esm}/rating-display/define.d.ts +0 -0
  478. /package/dist/{dts → esm}/rating-display/index.d.ts +0 -0
  479. /package/dist/{dts → esm}/rating-display/rating-display.definition.d.ts +0 -0
  480. /package/dist/{dts → esm}/rating-display/rating-display.options.d.ts +0 -0
  481. /package/dist/{dts → esm}/rating-display/rating-display.styles.d.ts +0 -0
  482. /package/dist/{dts → esm}/slider/define.d.ts +0 -0
  483. /package/dist/{dts → esm}/slider/index.d.ts +0 -0
  484. /package/dist/{dts → esm}/slider/slider-utilities.d.ts +0 -0
  485. /package/dist/{dts → esm}/slider/slider.bench.d.ts +0 -0
  486. /package/dist/{dts → esm}/slider/slider.d.ts +0 -0
  487. /package/dist/{dts → esm}/slider/slider.definition.d.ts +0 -0
  488. /package/dist/{dts → esm}/slider/slider.options.d.ts +0 -0
  489. /package/dist/{dts → esm}/slider/slider.styles.d.ts +0 -0
  490. /package/dist/{dts → esm}/slider/slider.template.d.ts +0 -0
  491. /package/dist/{dts → esm}/spinner/define.d.ts +0 -0
  492. /package/dist/{dts → esm}/spinner/index.d.ts +0 -0
  493. /package/dist/{dts → esm}/spinner/spinner.base.d.ts +0 -0
  494. /package/dist/{dts → esm}/spinner/spinner.bench.d.ts +0 -0
  495. /package/dist/{dts → esm}/spinner/spinner.d.ts +0 -0
  496. /package/dist/{dts → esm}/spinner/spinner.definition.d.ts +0 -0
  497. /package/dist/{dts → esm}/spinner/spinner.options.d.ts +0 -0
  498. /package/dist/{dts → esm}/spinner/spinner.styles.d.ts +0 -0
  499. /package/dist/{dts → esm}/spinner/spinner.template.d.ts +0 -0
  500. /package/dist/{dts → esm}/styles/index.d.ts +0 -0
  501. /package/dist/{dts → esm}/styles/partials/index.d.ts +0 -0
  502. /package/dist/{dts → esm}/styles/partials/typography.partials.d.ts +0 -0
  503. /package/dist/{dts → esm}/switch/define.d.ts +0 -0
  504. /package/dist/{dts → esm}/switch/index.d.ts +0 -0
  505. /package/dist/{dts → esm}/switch/switch.bench.d.ts +0 -0
  506. /package/dist/{dts → esm}/switch/switch.d.ts +0 -0
  507. /package/dist/{dts → esm}/switch/switch.definition.d.ts +0 -0
  508. /package/dist/{dts → esm}/switch/switch.options.d.ts +0 -0
  509. /package/dist/{dts → esm}/switch/switch.styles.d.ts +0 -0
  510. /package/dist/{dts → esm}/switch/switch.template.d.ts +0 -0
  511. /package/dist/{dts/tab-panel → esm/tab}/define.d.ts +0 -0
  512. /package/dist/{dts → esm}/tab/tab.bench.d.ts +0 -0
  513. /package/dist/{dts → esm}/tab/tab.d.ts +0 -0
  514. /package/dist/{dts → esm}/tab/tab.definition.d.ts +0 -0
  515. /package/dist/{dts → esm}/tab/tab.styles.d.ts +0 -0
  516. /package/dist/{dts → esm}/tab/tab.template.d.ts +0 -0
  517. /package/dist/{dts/tab → esm/tablist}/define.d.ts +0 -0
  518. /package/dist/{dts → esm}/tablist/index.d.ts +0 -0
  519. /package/dist/{dts → esm}/tablist/tablist.bench.d.ts +0 -0
  520. /package/dist/{dts → esm}/tablist/tablist.d.ts +0 -0
  521. /package/dist/{dts → esm}/tablist/tablist.definition.d.ts +0 -0
  522. /package/dist/{dts → esm}/tablist/tablist.styles.d.ts +0 -0
  523. /package/dist/{dts → esm}/tablist/tablist.template.d.ts +0 -0
  524. /package/dist/{dts/tabs → esm/text}/define.d.ts +0 -0
  525. /package/dist/{dts → esm}/text/index.d.ts +0 -0
  526. /package/dist/{dts → esm}/text/text.bench.d.ts +0 -0
  527. /package/dist/{dts → esm}/text/text.d.ts +0 -0
  528. /package/dist/{dts → esm}/text/text.definition.d.ts +0 -0
  529. /package/dist/{dts → esm}/text/text.options.d.ts +0 -0
  530. /package/dist/{dts → esm}/text/text.styles.d.ts +0 -0
  531. /package/dist/{dts → esm}/text/text.template.d.ts +0 -0
  532. /package/dist/{dts/tablist → esm/text-input}/define.d.ts +0 -0
  533. /package/dist/{dts → esm}/text-input/index.d.ts +0 -0
  534. /package/dist/{dts → esm}/text-input/text-input.base.d.ts +0 -0
  535. /package/dist/{dts → esm}/text-input/text-input.bench.d.ts +0 -0
  536. /package/dist/{dts → esm}/text-input/text-input.d.ts +0 -0
  537. /package/dist/{dts → esm}/text-input/text-input.definition.d.ts +0 -0
  538. /package/dist/{dts → esm}/text-input/text-input.options.d.ts +0 -0
  539. /package/dist/{dts → esm}/text-input/text-input.styles.d.ts +0 -0
  540. /package/dist/{dts → esm}/text-input/text-input.template.d.ts +0 -0
  541. /package/dist/{dts/text-input → esm/textarea}/define.d.ts +0 -0
  542. /package/dist/{dts → esm}/textarea/index.d.ts +0 -0
  543. /package/dist/{dts → esm}/textarea/textarea.bench.d.ts +0 -0
  544. /package/dist/{dts → esm}/textarea/textarea.d.ts +0 -0
  545. /package/dist/{dts → esm}/textarea/textarea.definition.d.ts +0 -0
  546. /package/dist/{dts → esm}/textarea/textarea.options.d.ts +0 -0
  547. /package/dist/{dts → esm}/textarea/textarea.styles.d.ts +0 -0
  548. /package/dist/{dts → esm}/textarea/textarea.template.d.ts +0 -0
  549. /package/dist/{dts → esm}/theme/index.d.ts +0 -0
  550. /package/dist/{dts → esm}/theme/set-theme.global.bench.d.ts +0 -0
  551. /package/dist/{dts → esm}/theme/set-theme.local.bench.d.ts +0 -0
  552. /package/dist/{dts → esm}/theme/set-theme.shadow.bench.d.ts +0 -0
  553. /package/dist/{dts/text → esm/toggle-button}/define.d.ts +0 -0
  554. /package/dist/{dts → esm}/toggle-button/index.d.ts +0 -0
  555. /package/dist/{dts → esm}/toggle-button/toggle-button.bench.d.ts +0 -0
  556. /package/dist/{dts → esm}/toggle-button/toggle-button.d.ts +0 -0
  557. /package/dist/{dts → esm}/toggle-button/toggle-button.definition.d.ts +0 -0
  558. /package/dist/{dts → esm}/toggle-button/toggle-button.options.d.ts +0 -0
  559. /package/dist/{dts → esm}/toggle-button/toggle-button.styles.d.ts +0 -0
  560. /package/dist/{dts → esm}/toggle-button/toggle-button.template.d.ts +0 -0
  561. /package/dist/{dts/textarea → esm/tooltip}/define.d.ts +0 -0
  562. /package/dist/{dts → esm}/tooltip/index.d.ts +0 -0
  563. /package/dist/{dts → esm}/tooltip/tooltip.d.ts +0 -0
  564. /package/dist/{dts → esm}/tooltip/tooltip.definition.d.ts +0 -0
  565. /package/dist/{dts → esm}/tooltip/tooltip.options.d.ts +0 -0
  566. /package/dist/{dts → esm}/tooltip/tooltip.styles.d.ts +0 -0
  567. /package/dist/{dts → esm}/tooltip/tooltip.template.d.ts +0 -0
  568. /package/dist/{dts/tooltip → esm/tree}/define.d.ts +0 -0
  569. /package/dist/{dts → esm}/tree/index.d.ts +0 -0
  570. /package/dist/{dts → esm}/tree/tree.bench.d.ts +0 -0
  571. /package/dist/{dts → esm}/tree/tree.definition.d.ts +0 -0
  572. /package/dist/{dts → esm}/tree/tree.styles.d.ts +0 -0
  573. /package/dist/{dts → esm}/tree/tree.template.d.ts +0 -0
  574. /package/dist/{dts/toggle-button → esm/tree-item}/define.d.ts +0 -0
  575. /package/dist/{dts → esm}/tree-item/index.d.ts +0 -0
  576. /package/dist/{dts → esm}/tree-item/tree-item.bench.d.ts +0 -0
  577. /package/dist/{dts → esm}/tree-item/tree-item.definition.d.ts +0 -0
  578. /package/dist/{dts → esm}/tree-item/tree-item.options.d.ts +0 -0
  579. /package/dist/{dts → esm}/tree-item/tree-item.styles.d.ts +0 -0
  580. /package/dist/{dts → esm}/tree-item/tree-item.template.d.ts +0 -0
  581. /package/dist/{dts → esm}/utils/apply-mixins.d.ts +0 -0
  582. /package/dist/{dts → esm}/utils/behaviors/match-media-stylesheet-behavior.d.ts +0 -0
  583. /package/dist/{dts → esm}/utils/benchmark-dependencies/tokens.d.ts +0 -0
  584. /package/dist/{dts → esm}/utils/benchmark-wrapper.d.ts +0 -0
  585. /package/dist/{dts → esm}/utils/converters.d.ts +0 -0
  586. /package/dist/{dts → esm}/utils/direction.d.ts +0 -0
  587. /package/dist/{dts → esm}/utils/display.d.ts +0 -0
  588. /package/dist/{dts → esm}/utils/element-internals.d.ts +0 -0
  589. /package/dist/{dts → esm}/utils/focusable-element.d.ts +0 -0
  590. /package/dist/{dts → esm}/utils/get-initials.d.ts +0 -0
  591. /package/dist/{dts → esm}/utils/index.d.ts +0 -0
  592. /package/dist/{dts → esm}/utils/root-active-element.d.ts +0 -0
  593. /package/dist/{dts → esm}/utils/support.d.ts +0 -0
  594. /package/dist/{dts → esm}/utils/template-helpers.d.ts +0 -0
  595. /package/dist/{dts → esm}/utils/typings.d.ts +0 -0
  596. /package/dist/{dts → esm}/utils/unique-id.d.ts +0 -0
  597. /package/dist/{dts → esm}/utils/whitespace-filter.d.ts +0 -0
@@ -24,6 +24,7 @@ import { DrawerPosition, DrawerSize, DrawerType } from './drawer.options.js';
24
24
  * @method show - Method to show the drawer.
25
25
  * @method hide - Method to hide the drawer.
26
26
  * @method clickHandler - Handles click events on the drawer.
27
+ * @method cancelHandler - Handles cancel events on the drawer.
27
28
  * @method emitToggle - Emits an event after the dialog's open state changes.
28
29
  * @method emitBeforeToggle - Emits an event before the dialog's open state changes.
29
30
  *
@@ -35,9 +36,10 @@ export class Drawer extends FASTElement {
35
36
  constructor() {
36
37
  super(...arguments);
37
38
  /**
38
- * @public
39
39
  * Determines whether the drawer should be displayed as modal or non-modal
40
40
  * When rendered as a modal, an overlay is applied over the rest of the view.
41
+ *
42
+ * @public
41
43
  */
42
44
  this.type = DrawerType.modal;
43
45
  /**""
@@ -53,9 +55,10 @@ export class Drawer extends FASTElement {
53
55
  */
54
56
  this.size = DrawerSize.medium;
55
57
  /**
56
- * @public
57
58
  * Method to emit an event after the dialog's open state changes
58
59
  * HTML spec proposal: https://github.com/whatwg/html/issues/9733
60
+ *
61
+ * @public
59
62
  */
60
63
  this.emitToggle = () => {
61
64
  this.$emit('toggle', {
@@ -64,9 +67,10 @@ export class Drawer extends FASTElement {
64
67
  });
65
68
  };
66
69
  /**
67
- * @public
68
70
  * Method to emit an event before the dialog's open state changes
69
71
  * HTML spec proposal: https://github.com/whatwg/html/issues/9733
72
+ *
73
+ * @public
70
74
  */
71
75
  this.emitBeforeToggle = () => {
72
76
  this.$emit('beforetoggle', {
@@ -75,9 +79,33 @@ export class Drawer extends FASTElement {
75
79
  });
76
80
  };
77
81
  }
82
+ typeChanged() {
83
+ if (!this.dialog) {
84
+ return;
85
+ }
86
+ this.updateDialogRole();
87
+ if (this.type === DrawerType.modal) {
88
+ this.dialog.setAttribute('aria-modal', 'true');
89
+ }
90
+ else {
91
+ this.dialog.removeAttribute('aria-modal');
92
+ }
93
+ }
94
+ /** @internal */
95
+ connectedCallback() {
96
+ super.connectedCallback();
97
+ this.typeChanged();
98
+ this.observeRoleAttr();
99
+ }
100
+ /** @internal */
101
+ disconnectedCallback() {
102
+ super.disconnectedCallback();
103
+ this.roleAttrObserver.disconnect();
104
+ }
78
105
  /**
79
- * @public
80
106
  * Method to show the drawer
107
+ *
108
+ * @public
81
109
  */
82
110
  show() {
83
111
  Updates.enqueue(() => {
@@ -92,8 +120,9 @@ export class Drawer extends FASTElement {
92
120
  });
93
121
  }
94
122
  /**
95
- * @public
96
123
  * Method to hide the drawer
124
+ *
125
+ * @public
97
126
  */
98
127
  hide() {
99
128
  this.emitBeforeToggle();
@@ -113,6 +142,33 @@ export class Drawer extends FASTElement {
113
142
  }
114
143
  return true;
115
144
  }
145
+ /**
146
+ * Handles cancel events on the drawer.
147
+ *
148
+ * @public
149
+ */
150
+ cancelHandler() {
151
+ this.hide();
152
+ }
153
+ observeRoleAttr() {
154
+ if (this.roleAttrObserver) {
155
+ return;
156
+ }
157
+ this.roleAttrObserver = new MutationObserver(() => {
158
+ this.updateDialogRole();
159
+ });
160
+ this.roleAttrObserver.observe(this, {
161
+ attributes: true,
162
+ attributeFilter: ['role'],
163
+ });
164
+ }
165
+ updateDialogRole() {
166
+ console.log(this.role);
167
+ if (!this.dialog) {
168
+ return;
169
+ }
170
+ this.dialog.role = this.type === DrawerType.modal ? 'dialog' : this.role;
171
+ }
116
172
  }
117
173
  __decorate([
118
174
  attr
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/drawer/drawer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,MAAO,SAAQ,WAAW;IAAvC;;QACE;;;;WAIG;QAEI,SAAI,GAAe,UAAU,CAAC,KAAK,CAAC;QAgB3C;;;;WAIG;QAEI,aAAQ,GAAmB,cAAc,CAAC,KAAK,CAAC;QAEvD;;;;WAIG;QAEI,SAAI,GAAe,UAAU,CAAC,MAAM,CAAC;QAS5C;;;;WAIG;QACI,eAAU,GAAG,GAAS,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACnB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBAC9C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;;;WAIG;QACI,qBAAgB,GAAG,GAAS,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;gBACzB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBAC9C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC;IAyCJ,CAAC;IAvCC;;;OAGG;IACI,IAAI;QACT,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACzE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,IAAI;QACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,KAAY;QAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtGQ;IADN,IAAI;oCACsC;AAOpC;IADN,IAAI,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;8CACR;AAOxB;IADN,IAAI,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;+CACR;AAQzB;IADN,IAAI;wCACkD;AAQhD;IADN,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;oCACgB;AAOrC;IADN,UAAU;sCACuB"}
1
+ {"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/drawer/drawer.ts"],"names":[],"mappings":"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"}
@@ -8,16 +8,13 @@ export function drawerTemplate() {
8
8
  <dialog
9
9
  class="dialog"
10
10
  part="dialog"
11
- role="${x => (x.type === 'modal' ? 'dialog' : x.role)}"
12
- aria-modal="${x => (x.type === 'modal' ? 'true' : void 0)}"
13
11
  aria-describedby="${x => x.ariaDescribedby}"
14
12
  aria-labelledby="${x => x.ariaLabelledby}"
15
13
  aria-label="${x => x.ariaLabel}"
16
14
  size="${x => x.size}"
17
15
  position="${x => x.position}"
18
- type="${x => x.type}"
19
16
  @click="${(x, c) => x.clickHandler(c.event)}"
20
- @cancel="${(x, c) => x.hide()}"
17
+ @cancel="${x => x.cancelHandler()}"
21
18
  ${ref('dialog')}
22
19
  >
23
20
  <slot></slot>
@@ -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;;;;cAIF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACvC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;0BACrC,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;cACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;gBACT,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAmB,CAAC;iBAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;QAC3B,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,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"}
@@ -20,4 +20,11 @@ import { FASTElement } from '@microsoft/fast-element';
20
20
  * @tag fluent-drawer-body
21
21
  */
22
22
  export declare class DrawerBody extends FASTElement {
23
+ /**
24
+ * Handles click event for the close slot
25
+ *
26
+ * @param e - the click event
27
+ * @internal
28
+ */
29
+ clickHandler(event: PointerEvent): boolean | void;
23
30
  }
@@ -1,4 +1,5 @@
1
1
  import { FASTElement } from '@microsoft/fast-element';
2
+ import { isDialog } from '../dialog/dialog.options.js';
2
3
  /**
3
4
  * A DrawerBody component to layout drawer content
4
5
  *
@@ -20,5 +21,20 @@ import { FASTElement } from '@microsoft/fast-element';
20
21
  * @tag fluent-drawer-body
21
22
  */
22
23
  export class DrawerBody extends FASTElement {
24
+ /**
25
+ * Handles click event for the close slot
26
+ *
27
+ * @param e - the click event
28
+ * @internal
29
+ */
30
+ clickHandler(event) {
31
+ if (!event.defaultPrevented) {
32
+ const dialog = this.parentElement;
33
+ if (isDialog(dialog, '-drawer')) {
34
+ dialog.hide();
35
+ }
36
+ }
37
+ return true;
38
+ }
23
39
  }
24
40
  //# sourceMappingURL=drawer-body.js.map
@@ -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;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;CAAG"}
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"}
@@ -7,7 +7,7 @@ export function drawerBodyTemplate() {
7
7
  return html `
8
8
  <div class="header" part="header">
9
9
  <slot name="title"></slot>
10
- <slot name="close"></slot>
10
+ <slot name="close" @click="${(x, c) => x.clickHandler(c.event)}"></slot>
11
11
  </div>
12
12
  <div class="content" part="content">
13
13
  <slot></slot>
@@ -1 +1 @@
1
- {"version":3,"file":"drawer-body.template.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGzE;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAG;;;;;;;;;;;GAWb,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAoC,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"drawer-body.template.js","sourceRoot":"","sources":["../../../src/drawer-body/drawer-body.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGzE;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAG;;;mCAGmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAqB,CAAC;;;;;;;;GAQjF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAoC,kBAAkB,EAAE,CAAC"}
@@ -130,12 +130,6 @@ export declare class BaseDropdown extends FASTElement {
130
130
  * The listbox element is assigned to the dropdown via the default slot with manual slot assignment.
131
131
  */
132
132
  listboxChanged(prev: Listbox | undefined, next: Listbox | undefined): void;
133
- /**
134
- * Reference to the listbox slot element.
135
- *
136
- * @internal
137
- */
138
- listboxSlot: HTMLSlotElement;
139
133
  /**
140
134
  * Indicates whether the dropdown allows multiple options to be selected.
141
135
  *
@@ -228,6 +222,20 @@ export declare class BaseDropdown extends FASTElement {
228
222
  * @internal
229
223
  */
230
224
  controlSlot: HTMLSlotElement;
225
+ /**
226
+ * An abort controller to remove scroll and resize event listeners when the dropdown is closed or disconnected. Used
227
+ * when the browser does not support CSS anchor positioning.
228
+ *
229
+ * @internal
230
+ */
231
+ private debounceController?;
232
+ /**
233
+ * Repositions the listbox to align with the control element. Used when the browser does not support CSS anchor
234
+ * positioning.
235
+ *
236
+ * @internal
237
+ */
238
+ private repositionListbox;
231
239
  /**
232
240
  * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
233
241
  *
@@ -247,11 +255,11 @@ export declare class BaseDropdown extends FASTElement {
247
255
  */
248
256
  static formAssociated: boolean;
249
257
  /**
250
- * Resets the form value to its initial value when the form is reset.
258
+ * The ID of the frame used for repositioning the listbox when the browser does not support CSS anchor positioning.
251
259
  *
252
260
  * @internal
253
261
  */
254
- formResetCallback(): void;
262
+ private frameId?;
255
263
  /**
256
264
  * A reference to the first freeform option, if present.
257
265
  *
@@ -387,6 +395,12 @@ export declare class BaseDropdown extends FASTElement {
387
395
  * @internal
388
396
  */
389
397
  focusoutHandler(e: FocusEvent): boolean | void;
398
+ /**
399
+ * Resets the form value to its initial value when the form is reset.
400
+ *
401
+ * @internal
402
+ */
403
+ formResetCallback(): void;
390
404
  /**
391
405
  * Ensures the active index is within bounds of the enabled options. Out-of-bounds indices are wrapped to the opposite
392
406
  * end of the range.
@@ -454,21 +468,21 @@ export declare class BaseDropdown extends FASTElement {
454
468
  */
455
469
  setValidity(flags?: Partial<ValidityState>, message?: string, anchor?: HTMLElement): void;
456
470
  /**
457
- * Updates the freeform option with the provided value.
471
+ * Handles the `slotchange` event for the dropdown.
472
+ * Sets the `listbox` property when a valid listbox is assigned to the default slot.
458
473
  *
459
- * @param value - the value to update the freeform option with
474
+ * @param e - the slot change event
460
475
  * @internal
461
476
  */
462
- protected updateFreeformOption(value?: string): void;
463
- connectedCallback(): void;
464
- disconnectedCallback(): void;
477
+ slotchangeHandler(e: Event): boolean | void;
465
478
  /**
466
- * Handles the connected event for the listbox.
479
+ * Updates the freeform option with the provided value.
467
480
  *
468
- * @param e - the event object
481
+ * @param value - the value to update the freeform option with
469
482
  * @internal
470
483
  */
471
- private listboxConnectedHandler;
484
+ protected updateFreeformOption(value?: string): void;
485
+ disconnectedCallback(): void;
472
486
  /**
473
487
  * When anchor positioning isn't supported, an intersection observer is used to flip the listbox when it hits the
474
488
  * viewport bounds. One static observer is used for all dropdowns.
@@ -2,9 +2,12 @@ import { __decorate } from "tslib";
2
2
  import { attr, FASTElement, Observable, observable, Updates, volatile } from '@microsoft/fast-element';
3
3
  import { isListbox } from '../listbox/listbox.options.js';
4
4
  import { isDropdownOption } from '../option/option.options.js';
5
+ import { getDirection } from '../utils/direction.js';
5
6
  import { toggleState } from '../utils/element-internals.js';
6
7
  import { getLanguage } from '../utils/language.js';
8
+ import { AnchorPositioningCSSSupported } from '../utils/support.js';
7
9
  import { uniqueId } from '../utils/unique-id.js';
10
+ import { waitForConnectedDescendants } from '../utils/request-idle-callback.js';
8
11
  import { DropdownType } from './dropdown.options.js';
9
12
  import { dropdownButtonTemplate, dropdownInputTemplate } from './dropdown.template.js';
10
13
  /**
@@ -64,7 +67,6 @@ export class BaseDropdown extends FASTElement {
64
67
  controlChanged(prev, next) {
65
68
  if (next) {
66
69
  next.id = next.id || uniqueId('input-');
67
- this.controlSlot?.assign(next);
68
70
  }
69
71
  }
70
72
  /**
@@ -121,7 +123,7 @@ export class BaseDropdown extends FASTElement {
121
123
  if (next) {
122
124
  next.dropdown = this;
123
125
  next.popover = 'manual';
124
- this.listboxSlot.assign(next);
126
+ next.tabIndex = -1;
125
127
  const notifier = Observable.getNotifier(this);
126
128
  notifier.subscribe(next);
127
129
  for (const key of ['disabled', 'multiple']) {
@@ -135,6 +137,13 @@ export class BaseDropdown extends FASTElement {
135
137
  });
136
138
  this.setValidity();
137
139
  });
140
+ if (AnchorPositioningCSSSupported) {
141
+ // The `anchor-name` property seems to not be isolated between instances in Safari Technology Preview 220 (18.4).
142
+ // It's unclear if the spec requires the `anchor-name` to be unique when styled on the `:host`.
143
+ const anchorName = uniqueId('--dropdown-anchor-');
144
+ this.style.setProperty('anchor-name', anchorName);
145
+ this.listbox.style.setProperty('position-anchor', anchorName);
146
+ }
138
147
  }
139
148
  }
140
149
  /**
@@ -174,11 +183,9 @@ export class BaseDropdown extends FASTElement {
174
183
  toggleState(this.elementInternals, 'open', next);
175
184
  this.elementInternals.ariaExpanded = next ? 'true' : 'false';
176
185
  this.activeIndex = this.selectedIndex ?? -1;
177
- if (next) {
178
- BaseDropdown.AnchorPositionFallbackObserver?.observe(this.listbox);
179
- return;
186
+ if (!AnchorPositioningCSSSupported) {
187
+ this.anchorPositionFallback(next);
180
188
  }
181
- BaseDropdown.AnchorPositionFallbackObserver?.unobserve(this.listbox);
182
189
  }
183
190
  /**
184
191
  * Changes the slotted control element based on the dropdown type.
@@ -206,25 +213,6 @@ export class BaseDropdown extends FASTElement {
206
213
  * @public
207
214
  */
208
215
  static { this.formAssociated = true; }
209
- /**
210
- * Resets the form value to its initial value when the form is reset.
211
- *
212
- * @internal
213
- */
214
- formResetCallback() {
215
- this.enabledOptions.forEach((x, i) => {
216
- if (this.multiple) {
217
- x.selected = !!x.defaultSelected;
218
- return;
219
- }
220
- if (!x.defaultSelected) {
221
- x.selected = false;
222
- return;
223
- }
224
- this.selectOption(i);
225
- });
226
- this.setValidity();
227
- }
228
216
  /**
229
217
  * A reference to the first freeform option, if present.
230
218
  *
@@ -376,7 +364,7 @@ export class BaseDropdown extends FASTElement {
376
364
  }
377
365
  const target = e.target;
378
366
  this.focus();
379
- if (target === this.control && !this.isCombobox) {
367
+ if ((target === this.control || e.composedPath().includes(this.indicator)) && !this.isCombobox) {
380
368
  this.listbox.togglePopover();
381
369
  return true;
382
370
  }
@@ -441,6 +429,33 @@ export class BaseDropdown extends FASTElement {
441
429
  * HTML Attribute: `value`
442
430
  */
443
431
  this.valueAttribute = '';
432
+ /**
433
+ * Repositions the listbox to align with the control element. Used when the browser does not support CSS anchor
434
+ * positioning.
435
+ *
436
+ * @internal
437
+ */
438
+ this.repositionListbox = () => {
439
+ if (this.frameId) {
440
+ cancelAnimationFrame(this.frameId);
441
+ }
442
+ this.frameId = requestAnimationFrame(() => {
443
+ const controlRect = this.getBoundingClientRect();
444
+ const right = window.innerWidth - controlRect.right;
445
+ const left = controlRect.left;
446
+ this.listbox.style.minWidth = `${controlRect.width}px`;
447
+ this.listbox.style.top = `${controlRect.top}px`;
448
+ if (left + controlRect.width > window.innerWidth ||
449
+ (getDirection(this) === 'rtl' && right - controlRect.width > 0)) {
450
+ this.listbox.style.right = `${right}px`;
451
+ this.listbox.style.left = 'unset';
452
+ }
453
+ else {
454
+ this.listbox.style.left = `${left}px`;
455
+ this.listbox.style.right = 'unset';
456
+ }
457
+ });
458
+ };
444
459
  /**
445
460
  * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
446
461
  *
@@ -448,7 +463,6 @@ export class BaseDropdown extends FASTElement {
448
463
  */
449
464
  this.elementInternals = this.attachInternals();
450
465
  this.elementInternals.role = 'presentation';
451
- this.addEventListener('connected', this.listboxConnectedHandler);
452
466
  Updates.enqueue(() => {
453
467
  this.insertControl();
454
468
  });
@@ -493,6 +507,25 @@ export class BaseDropdown extends FASTElement {
493
507
  }
494
508
  return true;
495
509
  }
510
+ /**
511
+ * Resets the form value to its initial value when the form is reset.
512
+ *
513
+ * @internal
514
+ */
515
+ formResetCallback() {
516
+ this.enabledOptions.forEach((x, i) => {
517
+ if (this.multiple) {
518
+ x.selected = !!x.defaultSelected;
519
+ return;
520
+ }
521
+ if (!x.defaultSelected) {
522
+ x.selected = false;
523
+ return;
524
+ }
525
+ this.selectOption(i);
526
+ });
527
+ this.setValidity();
528
+ }
496
529
  /**
497
530
  * Ensures the active index is within bounds of the enabled options. Out-of-bounds indices are wrapped to the opposite
498
531
  * end of the range.
@@ -657,6 +690,22 @@ export class BaseDropdown extends FASTElement {
657
690
  this.elementInternals.setValidity({ valueMissing, ...flags }, message ?? this.validationMessage, anchor ?? this.control);
658
691
  }
659
692
  }
693
+ /**
694
+ * Handles the `slotchange` event for the dropdown.
695
+ * Sets the `listbox` property when a valid listbox is assigned to the default slot.
696
+ *
697
+ * @param e - the slot change event
698
+ * @internal
699
+ */
700
+ slotchangeHandler(e) {
701
+ const target = e.target;
702
+ waitForConnectedDescendants(this, () => {
703
+ const listbox = target.assignedElements().find((el) => isListbox(el));
704
+ if (listbox) {
705
+ this.listbox = listbox;
706
+ }
707
+ });
708
+ }
660
709
  /**
661
710
  * Updates the freeform option with the provided value.
662
711
  *
@@ -677,48 +726,54 @@ export class BaseDropdown extends FASTElement {
677
726
  this.freeformOption.value = value;
678
727
  this.freeformOption.hidden = false;
679
728
  }
680
- connectedCallback() {
681
- super.connectedCallback();
682
- this.anchorPositionFallback();
683
- }
684
729
  disconnectedCallback() {
685
- BaseDropdown.AnchorPositionFallbackObserver?.unobserve(this.listbox);
730
+ BaseDropdown.AnchorPositionFallbackObserver?.disconnect();
731
+ this.debounceController?.abort();
686
732
  super.disconnectedCallback();
687
733
  }
688
- /**
689
- * Handles the connected event for the listbox.
690
- *
691
- * @param e - the event object
692
- * @internal
693
- */
694
- listboxConnectedHandler(e) {
695
- const target = e.target;
696
- if (isListbox(target)) {
697
- this.listbox = target;
698
- }
699
- }
700
734
  /**
701
735
  * When anchor positioning isn't supported, an intersection observer is used to flip the listbox when it hits the
702
736
  * viewport bounds. One static observer is used for all dropdowns.
703
737
  *
704
738
  * @internal
705
739
  */
706
- anchorPositionFallback() {
707
- BaseDropdown.AnchorPositionFallbackObserver =
708
- BaseDropdown.AnchorPositionFallbackObserver ??
709
- new IntersectionObserver((entries) => {
710
- entries.forEach(({ boundingClientRect, isIntersecting, target }) => {
711
- if (isListbox(target) && !isIntersecting) {
712
- if (boundingClientRect.bottom > window.innerHeight) {
713
- toggleState(target.dropdown.elementInternals, 'flip-block', true);
714
- return;
715
- }
716
- if (boundingClientRect.top < 0) {
717
- toggleState(target.dropdown.elementInternals, 'flip-block', false);
718
- }
740
+ anchorPositionFallback(shouldObserve) {
741
+ if (!BaseDropdown.AnchorPositionFallbackObserver) {
742
+ BaseDropdown.AnchorPositionFallbackObserver = new IntersectionObserver((entries) => {
743
+ entries.forEach(({ boundingClientRect, isIntersecting, target }) => {
744
+ if (isListbox(target)) {
745
+ if (boundingClientRect.bottom > window.innerHeight) {
746
+ toggleState(target.elementInternals, 'flip-block', true);
747
+ return;
748
+ }
749
+ if (boundingClientRect.top < 0) {
750
+ toggleState(target.elementInternals, 'flip-block', false);
719
751
  }
720
- });
721
- }, { threshold: 1 });
752
+ }
753
+ });
754
+ }, { threshold: 1 });
755
+ }
756
+ if (shouldObserve) {
757
+ this.debounceController = new AbortController();
758
+ BaseDropdown.AnchorPositionFallbackObserver.observe(this.listbox);
759
+ window.addEventListener('scroll', this.repositionListbox, {
760
+ passive: true,
761
+ capture: true,
762
+ signal: this.debounceController.signal,
763
+ });
764
+ window.addEventListener('resize', this.repositionListbox, {
765
+ passive: true,
766
+ signal: this.debounceController.signal,
767
+ });
768
+ this.repositionListbox();
769
+ return;
770
+ }
771
+ BaseDropdown.AnchorPositionFallbackObserver.unobserve(this.listbox);
772
+ this.debounceController?.abort();
773
+ if (this.frameId) {
774
+ cancelAnimationFrame(this.frameId);
775
+ this.frameId = undefined;
776
+ }
722
777
  }
723
778
  }
724
779
  __decorate([
@@ -754,9 +809,6 @@ __decorate([
754
809
  __decorate([
755
810
  observable
756
811
  ], BaseDropdown.prototype, "listbox", void 0);
757
- __decorate([
758
- observable
759
- ], BaseDropdown.prototype, "listboxSlot", void 0);
760
812
  __decorate([
761
813
  attr({ mode: 'boolean' })
762
814
  ], BaseDropdown.prototype, "multiple", void 0);