@fluentui/react-menu 0.0.0-nightly-20230316-0427.1 → 0.0.0-nightly-20230317-1454.1

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 (358) hide show
  1. package/.swcrc +39 -0
  2. package/CHANGELOG.json +68 -23
  3. package/CHANGELOG.md +28 -14
  4. package/lib/Menu.js +1 -1
  5. package/lib/Menu.js.map +1 -1
  6. package/lib/MenuDivider.js +1 -1
  7. package/lib/MenuDivider.js.map +1 -1
  8. package/lib/MenuGroup.js +1 -1
  9. package/lib/MenuGroup.js.map +1 -1
  10. package/lib/MenuGroupHeader.js +1 -1
  11. package/lib/MenuGroupHeader.js.map +1 -1
  12. package/lib/MenuItem.js +1 -1
  13. package/lib/MenuItem.js.map +1 -1
  14. package/lib/MenuItemCheckbox.js +1 -1
  15. package/lib/MenuItemCheckbox.js.map +1 -1
  16. package/lib/MenuItemRadio.js +1 -1
  17. package/lib/MenuItemRadio.js.map +1 -1
  18. package/lib/MenuList.js +1 -1
  19. package/lib/MenuList.js.map +1 -1
  20. package/lib/MenuPopover.js +1 -1
  21. package/lib/MenuPopover.js.map +1 -1
  22. package/lib/MenuSplitGroup.js +1 -1
  23. package/lib/MenuSplitGroup.js.map +1 -1
  24. package/lib/MenuTrigger.js +1 -1
  25. package/lib/MenuTrigger.js.map +1 -1
  26. package/lib/components/Menu/Menu.js +5 -4
  27. package/lib/components/Menu/Menu.js.map +1 -1
  28. package/lib/components/Menu/Menu.types.js +1 -1
  29. package/lib/components/Menu/Menu.types.js.map +1 -1
  30. package/lib/components/Menu/index.js +5 -5
  31. package/lib/components/Menu/index.js.map +1 -1
  32. package/lib/components/Menu/renderMenu.js +2 -2
  33. package/lib/components/Menu/renderMenu.js.map +1 -1
  34. package/lib/components/Menu/useMenu.js +28 -34
  35. package/lib/components/Menu/useMenu.js.map +1 -1
  36. package/lib/components/Menu/useMenuContextValues.js.map +1 -1
  37. package/lib/components/MenuDivider/MenuDivider.js +6 -6
  38. package/lib/components/MenuDivider/MenuDivider.js.map +1 -1
  39. package/lib/components/MenuDivider/MenuDivider.types.js.map +1 -1
  40. package/lib/components/MenuDivider/index.js +5 -5
  41. package/lib/components/MenuDivider/index.js.map +1 -1
  42. package/lib/components/MenuDivider/renderMenuDivider.js +3 -5
  43. package/lib/components/MenuDivider/renderMenuDivider.js.map +1 -1
  44. package/lib/components/MenuDivider/useMenuDivider.js +6 -5
  45. package/lib/components/MenuDivider/useMenuDivider.js.map +1 -1
  46. package/lib/components/MenuDivider/useMenuDividerStyles.js +3 -3
  47. package/lib/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
  48. package/lib/components/MenuGroup/MenuGroup.js +7 -7
  49. package/lib/components/MenuGroup/MenuGroup.js.map +1 -1
  50. package/lib/components/MenuGroup/MenuGroup.types.js.map +1 -1
  51. package/lib/components/MenuGroup/index.js +6 -6
  52. package/lib/components/MenuGroup/index.js.map +1 -1
  53. package/lib/components/MenuGroup/renderMenuGroup.js +4 -6
  54. package/lib/components/MenuGroup/renderMenuGroup.js.map +1 -1
  55. package/lib/components/MenuGroup/useMenuGroup.js +7 -6
  56. package/lib/components/MenuGroup/useMenuGroup.js.map +1 -1
  57. package/lib/components/MenuGroup/useMenuGroupContextValues.js +1 -1
  58. package/lib/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
  59. package/lib/components/MenuGroup/useMenuGroupStyles.js +2 -2
  60. package/lib/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
  61. package/lib/components/MenuGroupHeader/MenuGroupHeader.js +6 -6
  62. package/lib/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
  63. package/lib/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
  64. package/lib/components/MenuGroupHeader/index.js +5 -5
  65. package/lib/components/MenuGroupHeader/index.js.map +1 -1
  66. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +3 -5
  67. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
  68. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +5 -4
  69. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  70. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +3 -3
  71. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
  72. package/lib/components/MenuItem/MenuItem.js +6 -6
  73. package/lib/components/MenuItem/MenuItem.js.map +1 -1
  74. package/lib/components/MenuItem/MenuItem.types.js.map +1 -1
  75. package/lib/components/MenuItem/index.js +5 -5
  76. package/lib/components/MenuItem/index.js.map +1 -1
  77. package/lib/components/MenuItem/renderMenuItem.js +3 -15
  78. package/lib/components/MenuItem/renderMenuItem.js.map +1 -1
  79. package/lib/components/MenuItem/useCharacterSearch.js +5 -5
  80. package/lib/components/MenuItem/useCharacterSearch.js.map +1 -1
  81. package/lib/components/MenuItem/useMenuItem.js +24 -27
  82. package/lib/components/MenuItem/useMenuItem.js.map +1 -1
  83. package/lib/components/MenuItem/useMenuItemStyles.js +11 -11
  84. package/lib/components/MenuItem/useMenuItemStyles.js.map +1 -1
  85. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js +6 -6
  86. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  87. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
  88. package/lib/components/MenuItemCheckbox/index.js +5 -5
  89. package/lib/components/MenuItemCheckbox/index.js.map +1 -1
  90. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +3 -13
  91. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  92. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +10 -12
  93. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  94. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +8 -8
  95. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
  96. package/lib/components/MenuItemRadio/MenuItemRadio.js +6 -6
  97. package/lib/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
  98. package/lib/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
  99. package/lib/components/MenuItemRadio/index.js +5 -5
  100. package/lib/components/MenuItemRadio/index.js.map +1 -1
  101. package/lib/components/MenuItemRadio/renderMenuItemRadio.js +3 -13
  102. package/lib/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  103. package/lib/components/MenuItemRadio/useMenuItemRadio.js +10 -12
  104. package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  105. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js +8 -8
  106. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
  107. package/lib/components/MenuList/MenuList.js +7 -7
  108. package/lib/components/MenuList/MenuList.js.map +1 -1
  109. package/lib/components/MenuList/MenuList.types.js +1 -1
  110. package/lib/components/MenuList/MenuList.types.js.map +1 -1
  111. package/lib/components/MenuList/index.js +6 -6
  112. package/lib/components/MenuList/index.js.map +1 -1
  113. package/lib/components/MenuList/renderMenuList.js +4 -6
  114. package/lib/components/MenuList/renderMenuList.js.map +1 -1
  115. package/lib/components/MenuList/useMenuList.js +19 -23
  116. package/lib/components/MenuList/useMenuList.js.map +1 -1
  117. package/lib/components/MenuList/useMenuListContextValues.js.map +1 -1
  118. package/lib/components/MenuList/useMenuListStyles.js +2 -2
  119. package/lib/components/MenuList/useMenuListStyles.js.map +1 -1
  120. package/lib/components/MenuPopover/MenuPopover.js +6 -6
  121. package/lib/components/MenuPopover/MenuPopover.js.map +1 -1
  122. package/lib/components/MenuPopover/MenuPopover.types.js.map +1 -1
  123. package/lib/components/MenuPopover/index.js +5 -5
  124. package/lib/components/MenuPopover/index.js.map +1 -1
  125. package/lib/components/MenuPopover/renderMenuPopover.js +5 -9
  126. package/lib/components/MenuPopover/renderMenuPopover.js.map +1 -1
  127. package/lib/components/MenuPopover/useMenuPopover.js +19 -21
  128. package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
  129. package/lib/components/MenuPopover/useMenuPopoverStyles.js +3 -3
  130. package/lib/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
  131. package/lib/components/MenuSplitGroup/MenuSplitGroup.js +6 -6
  132. package/lib/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  133. package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
  134. package/lib/components/MenuSplitGroup/index.js +5 -5
  135. package/lib/components/MenuSplitGroup/index.js.map +1 -1
  136. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +3 -5
  137. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  138. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +12 -13
  139. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  140. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js +4 -4
  141. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
  142. package/lib/components/MenuTrigger/MenuTrigger.js +4 -3
  143. package/lib/components/MenuTrigger/MenuTrigger.js.map +1 -1
  144. package/lib/components/MenuTrigger/MenuTrigger.types.js +1 -1
  145. package/lib/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
  146. package/lib/components/MenuTrigger/index.js +4 -4
  147. package/lib/components/MenuTrigger/index.js.map +1 -1
  148. package/lib/components/MenuTrigger/renderMenuTrigger.js +2 -2
  149. package/lib/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
  150. package/lib/components/MenuTrigger/useMenuTrigger.js +29 -29
  151. package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  152. package/lib/components/index.js +2 -2
  153. package/lib/components/index.js.map +1 -1
  154. package/lib/contexts/menuContext.js +3 -2
  155. package/lib/contexts/menuContext.js.map +1 -1
  156. package/lib/contexts/menuGroupContext.js +3 -6
  157. package/lib/contexts/menuGroupContext.js.map +1 -1
  158. package/lib/contexts/menuListContext.js +2 -1
  159. package/lib/contexts/menuListContext.js.map +1 -1
  160. package/lib/contexts/menuTriggerContext.js +2 -5
  161. package/lib/contexts/menuTriggerContext.js.map +1 -1
  162. package/lib/index.js +16 -16
  163. package/lib/index.js.map +1 -1
  164. package/lib/selectable/index.js +2 -2
  165. package/lib/selectable/index.js.map +1 -1
  166. package/lib/selectable/types.js +1 -1
  167. package/lib/selectable/types.js.map +1 -1
  168. package/lib/selectable/useCheckmarkStyles.js +1 -1
  169. package/lib/selectable/useCheckmarkStyles.js.map +1 -1
  170. package/lib/utils/index.js +1 -1
  171. package/lib/utils/index.js.map +1 -1
  172. package/lib/utils/useIsSubmenu.js +3 -3
  173. package/lib/utils/useIsSubmenu.js.map +1 -1
  174. package/lib/utils/useOnMenuEnter.js +5 -6
  175. package/lib/utils/useOnMenuEnter.js.map +1 -1
  176. package/lib-commonjs/Menu.js +5 -4
  177. package/lib-commonjs/Menu.js.map +1 -1
  178. package/lib-commonjs/MenuDivider.js +5 -4
  179. package/lib-commonjs/MenuDivider.js.map +1 -1
  180. package/lib-commonjs/MenuGroup.js +5 -4
  181. package/lib-commonjs/MenuGroup.js.map +1 -1
  182. package/lib-commonjs/MenuGroupHeader.js +5 -4
  183. package/lib-commonjs/MenuGroupHeader.js.map +1 -1
  184. package/lib-commonjs/MenuItem.js +5 -4
  185. package/lib-commonjs/MenuItem.js.map +1 -1
  186. package/lib-commonjs/MenuItemCheckbox.js +5 -4
  187. package/lib-commonjs/MenuItemCheckbox.js.map +1 -1
  188. package/lib-commonjs/MenuItemRadio.js +5 -4
  189. package/lib-commonjs/MenuItemRadio.js.map +1 -1
  190. package/lib-commonjs/MenuList.js +5 -4
  191. package/lib-commonjs/MenuList.js.map +1 -1
  192. package/lib-commonjs/MenuPopover.js +5 -4
  193. package/lib-commonjs/MenuPopover.js.map +1 -1
  194. package/lib-commonjs/MenuSplitGroup.js +5 -4
  195. package/lib-commonjs/MenuSplitGroup.js.map +1 -1
  196. package/lib-commonjs/MenuTrigger.js +5 -4
  197. package/lib-commonjs/MenuTrigger.js.map +1 -1
  198. package/lib-commonjs/components/Menu/Menu.js +16 -15
  199. package/lib-commonjs/components/Menu/Menu.js.map +1 -1
  200. package/lib-commonjs/components/Menu/Menu.types.js +5 -2
  201. package/lib-commonjs/components/Menu/Menu.types.js.map +1 -1
  202. package/lib-commonjs/components/Menu/index.js +9 -8
  203. package/lib-commonjs/components/Menu/index.js.map +1 -1
  204. package/lib-commonjs/components/Menu/renderMenu.js +14 -14
  205. package/lib-commonjs/components/Menu/renderMenu.js.map +1 -1
  206. package/lib-commonjs/components/Menu/useMenu.js +252 -256
  207. package/lib-commonjs/components/Menu/useMenu.js.map +1 -1
  208. package/lib-commonjs/components/Menu/useMenuContextValues.js +29 -43
  209. package/lib-commonjs/components/Menu/useMenuContextValues.js.map +1 -1
  210. package/lib-commonjs/components/MenuDivider/MenuDivider.js +19 -20
  211. package/lib-commonjs/components/MenuDivider/MenuDivider.js.map +1 -1
  212. package/lib-commonjs/components/MenuDivider/MenuDivider.types.js +3 -2
  213. package/lib-commonjs/components/MenuDivider/MenuDivider.types.js.map +1 -1
  214. package/lib-commonjs/components/MenuDivider/index.js +9 -8
  215. package/lib-commonjs/components/MenuDivider/index.js.map +1 -1
  216. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js +13 -19
  217. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -1
  218. package/lib-commonjs/components/MenuDivider/useMenuDivider.js +22 -21
  219. package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -1
  220. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js +47 -25
  221. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
  222. package/lib-commonjs/components/MenuGroup/MenuGroup.js +21 -22
  223. package/lib-commonjs/components/MenuGroup/MenuGroup.js.map +1 -1
  224. package/lib-commonjs/components/MenuGroup/MenuGroup.types.js +3 -2
  225. package/lib-commonjs/components/MenuGroup/MenuGroup.types.js.map +1 -1
  226. package/lib-commonjs/components/MenuGroup/index.js +10 -9
  227. package/lib-commonjs/components/MenuGroup/index.js.map +1 -1
  228. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js +16 -22
  229. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -1
  230. package/lib-commonjs/components/MenuGroup/useMenuGroup.js +23 -22
  231. package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -1
  232. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js +18 -15
  233. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
  234. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js +19 -11
  235. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
  236. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js +19 -20
  237. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
  238. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js +3 -2
  239. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
  240. package/lib-commonjs/components/MenuGroupHeader/index.js +9 -8
  241. package/lib-commonjs/components/MenuGroupHeader/index.js.map +1 -1
  242. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js +13 -19
  243. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
  244. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js +22 -23
  245. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  246. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +47 -25
  247. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
  248. package/lib-commonjs/components/MenuItem/MenuItem.js +19 -20
  249. package/lib-commonjs/components/MenuItem/MenuItem.js.map +1 -1
  250. package/lib-commonjs/components/MenuItem/MenuItem.types.js +3 -2
  251. package/lib-commonjs/components/MenuItem/MenuItem.types.js.map +1 -1
  252. package/lib-commonjs/components/MenuItem/index.js +9 -8
  253. package/lib-commonjs/components/MenuItem/index.js.map +1 -1
  254. package/lib-commonjs/components/MenuItem/renderMenuItem.js +13 -28
  255. package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -1
  256. package/lib-commonjs/components/MenuItem/useCharacterSearch.js +23 -22
  257. package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -1
  258. package/lib-commonjs/components/MenuItem/useMenuItem.js +94 -104
  259. package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
  260. package/lib-commonjs/components/MenuItem/useMenuItemStyles.js +288 -137
  261. package/lib-commonjs/components/MenuItem/useMenuItemStyles.js.map +1 -1
  262. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js +19 -20
  263. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  264. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js +3 -2
  265. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
  266. package/lib-commonjs/components/MenuItemCheckbox/index.js +9 -8
  267. package/lib-commonjs/components/MenuItemCheckbox/index.js.map +1 -1
  268. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js +13 -24
  269. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  270. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +42 -45
  271. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  272. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +38 -30
  273. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
  274. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js +19 -20
  275. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
  276. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js +3 -2
  277. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
  278. package/lib-commonjs/components/MenuItemRadio/index.js +9 -8
  279. package/lib-commonjs/components/MenuItemRadio/index.js.map +1 -1
  280. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js +13 -27
  281. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  282. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +40 -45
  283. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  284. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js +38 -30
  285. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
  286. package/lib-commonjs/components/MenuList/MenuList.js +21 -22
  287. package/lib-commonjs/components/MenuList/MenuList.js.map +1 -1
  288. package/lib-commonjs/components/MenuList/MenuList.types.js +5 -2
  289. package/lib-commonjs/components/MenuList/MenuList.types.js.map +1 -1
  290. package/lib-commonjs/components/MenuList/index.js +10 -9
  291. package/lib-commonjs/components/MenuList/index.js.map +1 -1
  292. package/lib-commonjs/components/MenuList/renderMenuList.js +16 -21
  293. package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -1
  294. package/lib-commonjs/components/MenuList/useMenuList.js +138 -137
  295. package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -1
  296. package/lib-commonjs/components/MenuList/useMenuListContextValues.js +20 -25
  297. package/lib-commonjs/components/MenuList/useMenuListContextValues.js.map +1 -1
  298. package/lib-commonjs/components/MenuList/useMenuListStyles.js +33 -23
  299. package/lib-commonjs/components/MenuList/useMenuListStyles.js.map +1 -1
  300. package/lib-commonjs/components/MenuPopover/MenuPopover.js +19 -20
  301. package/lib-commonjs/components/MenuPopover/MenuPopover.js.map +1 -1
  302. package/lib-commonjs/components/MenuPopover/MenuPopover.types.js +3 -2
  303. package/lib-commonjs/components/MenuPopover/MenuPopover.types.js.map +1 -1
  304. package/lib-commonjs/components/MenuPopover/index.js +9 -8
  305. package/lib-commonjs/components/MenuPopover/index.js.map +1 -1
  306. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js +19 -26
  307. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -1
  308. package/lib-commonjs/components/MenuPopover/useMenuPopover.js +100 -110
  309. package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -1
  310. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js +121 -50
  311. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
  312. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js +19 -20
  313. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  314. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js +3 -2
  315. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
  316. package/lib-commonjs/components/MenuSplitGroup/index.js +9 -8
  317. package/lib-commonjs/components/MenuSplitGroup/index.js.map +1 -1
  318. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js +13 -18
  319. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  320. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +57 -64
  321. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  322. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js +61 -32
  323. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
  324. package/lib-commonjs/components/MenuTrigger/MenuTrigger.js +15 -15
  325. package/lib-commonjs/components/MenuTrigger/MenuTrigger.js.map +1 -1
  326. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js +5 -2
  327. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
  328. package/lib-commonjs/components/MenuTrigger/index.js +8 -7
  329. package/lib-commonjs/components/MenuTrigger/index.js.map +1 -1
  330. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js +14 -16
  331. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
  332. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +163 -170
  333. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  334. package/lib-commonjs/components/index.js +6 -5
  335. package/lib-commonjs/components/index.js.map +1 -1
  336. package/lib-commonjs/contexts/menuContext.js +38 -27
  337. package/lib-commonjs/contexts/menuContext.js.map +1 -1
  338. package/lib-commonjs/contexts/menuGroupContext.js +18 -12
  339. package/lib-commonjs/contexts/menuGroupContext.js.map +1 -1
  340. package/lib-commonjs/contexts/menuListContext.js +25 -14
  341. package/lib-commonjs/contexts/menuListContext.js.map +1 -1
  342. package/lib-commonjs/contexts/menuTriggerContext.js +17 -12
  343. package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -1
  344. package/lib-commonjs/index.js +91 -399
  345. package/lib-commonjs/index.js.map +1 -1
  346. package/lib-commonjs/selectable/index.js +6 -5
  347. package/lib-commonjs/selectable/index.js.map +1 -1
  348. package/lib-commonjs/selectable/types.js +5 -2
  349. package/lib-commonjs/selectable/types.js.map +1 -1
  350. package/lib-commonjs/selectable/useCheckmarkStyles.js +28 -26
  351. package/lib-commonjs/selectable/useCheckmarkStyles.js.map +1 -1
  352. package/lib-commonjs/utils/index.js +5 -4
  353. package/lib-commonjs/utils/index.js.map +1 -1
  354. package/lib-commonjs/utils/useIsSubmenu.js +13 -19
  355. package/lib-commonjs/utils/useIsSubmenu.js.map +1 -1
  356. package/lib-commonjs/utils/useOnMenuEnter.js +56 -68
  357. package/lib-commonjs/utils/useOnMenuEnter.js.map +1 -1
  358. package/package.json +13 -13
@@ -1,14 +1,13 @@
1
- import * as React from 'react';
2
- import { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps } from '@fluentui/react-utilities';
3
- import { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';
4
- import { useHasParentContext } from '@fluentui/react-context-selector';
5
- import { useMenuContext_unstable } from '../../contexts/menuContext';
6
- import { MenuContext } from '../../contexts/menuContext';
1
+ import * as React from "react";
2
+ import { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps } from "@fluentui/react-utilities";
3
+ import { useArrowNavigationGroup, useFocusFinders } from "@fluentui/react-tabster";
4
+ import { useHasParentContext } from "@fluentui/react-context-selector";
5
+ import { useMenuContext_unstable } from "../../contexts/menuContext";
6
+ import { MenuContext } from "../../contexts/menuContext";
7
7
  /**
8
8
  * Returns the props and state required to render the component
9
9
  */
10
10
  export const useMenuList_unstable = (props, ref) => {
11
- var _a, _b;
12
11
  const {
13
12
  findAllFocusable
14
13
  } = useFocusFinders();
@@ -23,24 +22,21 @@ export const useMenuList_unstable = (props, ref) => {
23
22
  if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {
24
23
  // TODO throw warnings in development safely
25
24
  // eslint-disable-next-line no-console
26
- console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');
25
+ console.warn("You are using both MenuList and Menu props, we recommend you to use Menu props when available");
27
26
  }
28
27
  const innerRef = React.useRef(null);
29
28
  const setFocusByFirstCharacter = React.useCallback((e, itemEl) => {
30
29
  // TODO use some kind of children registration to reduce dependency on DOM roles
31
- const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];
30
+ const acceptedRoles = ["menuitem", "menuitemcheckbox", "menuitemradio"];
32
31
  if (!innerRef.current) {
33
32
  return;
34
33
  }
35
- const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);
34
+ const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute("role") && acceptedRoles.indexOf(el.getAttribute("role")) !== -1);
36
35
  let startIndex = menuItems.indexOf(itemEl) + 1;
37
36
  if (startIndex === menuItems.length) {
38
37
  startIndex = 0;
39
38
  }
40
- const firstChars = menuItems.map(menuItem => {
41
- var _a;
42
- return (_a = menuItem.textContent) === null || _a === void 0 ? void 0 : _a.charAt(0).toLowerCase();
43
- });
39
+ const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());
44
40
  const char = e.key.toLowerCase();
45
41
  const getIndexFirstChars = (start, firstChar) => {
46
42
  for (let i = start; i < firstChars.length; i++) {
@@ -62,20 +58,20 @@ export const useMenuList_unstable = (props, ref) => {
62
58
  }
63
59
  }, [findAllFocusable]);
64
60
  const [checkedValues, setCheckedValues] = useControllableState({
65
- state: (_a = props.checkedValues) !== null && _a !== void 0 ? _a : hasMenuContext ? menuContext.checkedValues : undefined,
61
+ state: props.checkedValues ?? (hasMenuContext ? menuContext.checkedValues : undefined),
66
62
  defaultState: props.defaultCheckedValues,
67
63
  initialState: {}
68
64
  });
69
- const handleCheckedValueChange = (_b = props.onCheckedValueChange) !== null && _b !== void 0 ? _b : hasMenuContext ? menuContext.onCheckedValueChange : undefined;
65
+ const handleCheckedValueChange = props.onCheckedValueChange ?? (hasMenuContext ? menuContext.onCheckedValueChange : undefined);
70
66
  const toggleCheckbox = useEventCallback((e, name, value, checked) => {
71
- const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];
67
+ const checkedItems = checkedValues?.[name] || [];
72
68
  const newCheckedItems = [...checkedItems];
73
69
  if (checked) {
74
70
  newCheckedItems.splice(newCheckedItems.indexOf(value), 1);
75
71
  } else {
76
72
  newCheckedItems.push(value);
77
73
  }
78
- handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
74
+ handleCheckedValueChange?.(e, {
79
75
  name,
80
76
  checkedItems: newCheckedItems
81
77
  });
@@ -90,19 +86,19 @@ export const useMenuList_unstable = (props, ref) => {
90
86
  ...s,
91
87
  [name]: newCheckedItems
92
88
  }));
93
- handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
89
+ handleCheckedValueChange?.(e, {
94
90
  name,
95
91
  checkedItems: newCheckedItems
96
92
  });
97
93
  });
98
94
  return {
99
95
  components: {
100
- root: 'div'
96
+ root: "div"
101
97
  },
102
- root: getNativeElementProps('div', {
98
+ root: getNativeElementProps("div", {
103
99
  ref: useMergedRefs(ref, innerRef),
104
- role: 'menu',
105
- 'aria-labelledby': menuContext.triggerId,
100
+ role: "menu",
101
+ "aria-labelledby": menuContext.triggerId,
106
102
  ...focusAttributes,
107
103
  ...props
108
104
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMergedRefs","useEventCallback","useControllableState","getNativeElementProps","useArrowNavigationGroup","useFocusFinders","useHasParentContext","useMenuContext_unstable","MenuContext","useMenuList_unstable","props","ref","findAllFocusable","menuContext","useMenuContextSelectors","hasMenuContext","focusAttributes","circular","ignoreDefaultKeydown","Tab","usingPropsAndMenuContext","console","warn","innerRef","useRef","setFocusByFirstCharacter","useCallback","e","itemEl","acceptedRoles","current","menuItems","el","hasAttribute","indexOf","getAttribute","startIndex","length","firstChars","map","menuItem","_a","textContent","charAt","toLowerCase","char","key","getIndexFirstChars","start","firstChar","i","index","focus","checkedValues","setCheckedValues","state","undefined","defaultState","defaultCheckedValues","initialState","handleCheckedValueChange","_b","onCheckedValueChange","toggleCheckbox","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","root","role","triggerId","hasIcons","hasCheckmarks","context","contextValue","isUsingPropsAndContext","val"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuList/useMenuList.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n useMergedRefs,\n useEventCallback,\n useControllableState,\n getNativeElementProps,\n} from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\nimport type { MenuListProps, MenuListState } from './MenuList.types';\n\n/**\n * Returns the props and state required to render the component\n */\nexport const useMenuList_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const { findAllFocusable } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n const focusAttributes = useArrowNavigationGroup({ circular: true, ignoreDefaultKeydown: { Tab: hasMenuContext } });\n\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n\n const innerRef = React.useRef<HTMLElement>(null);\n\n const setFocusByFirstCharacter = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\n if (!innerRef.current) {\n return;\n }\n\n const menuItems = findAllFocusable(\n innerRef.current,\n (el: HTMLElement) => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')!) !== -1,\n );\n\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n\n const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());\n const char = e.key.toLowerCase();\n\n const getIndexFirstChars = (start: number, firstChar: string) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n },\n [findAllFocusable],\n );\n\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues ?? (hasMenuContext ? menuContext.checkedValues : undefined),\n defaultState: props.defaultCheckedValues,\n initialState: {},\n });\n\n const handleCheckedValueChange =\n props.onCheckedValueChange ?? (hasMenuContext ? menuContext.onCheckedValueChange : undefined);\n\n const toggleCheckbox = useEventCallback(\n (e: React.MouseEvent | React.KeyboardEvent, name: string, value: string, checked: boolean) => {\n const checkedItems = checkedValues?.[name] || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n },\n );\n\n const selectRadio = useEventCallback((e: React.MouseEvent | React.KeyboardEvent, name: string, value: string) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n });\n\n return {\n components: {\n root: 'div',\n },\n root: getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props,\n }),\n hasIcons: menuContext.hasIcons || false,\n hasCheckmarks: menuContext.hasCheckmarks || false,\n checkedValues,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox,\n };\n};\n\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks,\n };\n};\n\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (\n props: MenuListProps,\n contextValue: ReturnType<typeof useMenuContextSelectors>,\n hasMenuContext: boolean,\n) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val as keyof Omit<typeof contextValue, 'hasMenuContext' | 'onCheckedValueChange' | 'triggerId'>]) {\n isUsingPropsAndContext = true;\n }\n }\n\n return hasMenuContext && isUsingPropsAndContext;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useMergedRefs","useEventCallback","useControllableState","getNativeElementProps","useArrowNavigationGroup","useFocusFinders","useHasParentContext","useMenuContext_unstable","MenuContext","useMenuList_unstable","props","ref","findAllFocusable","menuContext","useMenuContextSelectors","hasMenuContext","focusAttributes","circular","ignoreDefaultKeydown","Tab","usingPropsAndMenuContext","console","warn","innerRef","useRef","setFocusByFirstCharacter","useCallback","e","itemEl","acceptedRoles","current","menuItems","el","hasAttribute","indexOf","getAttribute","startIndex","length","firstChars","map","menuItem","textContent","charAt","toLowerCase","char","key","getIndexFirstChars","start","firstChar","i","index","focus","checkedValues","setCheckedValues","state","undefined","defaultState","defaultCheckedValues","initialState","handleCheckedValueChange","onCheckedValueChange","toggleCheckbox","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","root","role","triggerId","hasIcons","hasCheckmarks","context","contextValue","isUsingPropsAndContext","val"],"sources":["../../../src/components/MenuList/useMenuList.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n useMergedRefs,\n useEventCallback,\n useControllableState,\n getNativeElementProps,\n} from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\nimport type { MenuListProps, MenuListState } from './MenuList.types';\n\n/**\n * Returns the props and state required to render the component\n */\nexport const useMenuList_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const { findAllFocusable } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n const focusAttributes = useArrowNavigationGroup({ circular: true, ignoreDefaultKeydown: { Tab: hasMenuContext } });\n\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n\n const innerRef = React.useRef<HTMLElement>(null);\n\n const setFocusByFirstCharacter = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\n if (!innerRef.current) {\n return;\n }\n\n const menuItems = findAllFocusable(\n innerRef.current,\n (el: HTMLElement) => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')!) !== -1,\n );\n\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n\n const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());\n const char = e.key.toLowerCase();\n\n const getIndexFirstChars = (start: number, firstChar: string) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n },\n [findAllFocusable],\n );\n\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues ?? (hasMenuContext ? menuContext.checkedValues : undefined),\n defaultState: props.defaultCheckedValues,\n initialState: {},\n });\n\n const handleCheckedValueChange =\n props.onCheckedValueChange ?? (hasMenuContext ? menuContext.onCheckedValueChange : undefined);\n\n const toggleCheckbox = useEventCallback(\n (e: React.MouseEvent | React.KeyboardEvent, name: string, value: string, checked: boolean) => {\n const checkedItems = checkedValues?.[name] || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n },\n );\n\n const selectRadio = useEventCallback((e: React.MouseEvent | React.KeyboardEvent, name: string, value: string) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n });\n\n return {\n components: {\n root: 'div',\n },\n root: getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props,\n }),\n hasIcons: menuContext.hasIcons || false,\n hasCheckmarks: menuContext.hasCheckmarks || false,\n checkedValues,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox,\n };\n};\n\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks,\n };\n};\n\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (\n props: MenuListProps,\n contextValue: ReturnType<typeof useMenuContextSelectors>,\n hasMenuContext: boolean,\n) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val as keyof Omit<typeof contextValue, 'hasMenuContext' | 'onCheckedValueChange' | 'triggerId'>]) {\n isUsingPropsAndContext = true;\n }\n }\n\n return hasMenuContext && isUsingPropsAndContext;\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SACEC,aAAa,EACbC,gBAAgB,EAChBC,oBAAoB,EACpBC,qBAAqB,QAChB;AACP,SAASC,uBAAuB,EAAEC,eAAe,QAAQ;AACzD,SAASC,mBAAmB,QAAQ;AACpC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,WAAW,QAAQ;AAG5B;;;AAGA,OAAO,MAAMC,oBAAA,GAAuBA,CAACC,KAAA,EAAsBC,GAAA,KAA+C;EACxG,MAAM;IAAEC;EAAgB,CAAE,GAAGP,eAAA;EAC7B,MAAMQ,WAAA,GAAcC,uBAAA;EACpB,MAAMC,cAAA,GAAiBT,mBAAA,CAAoBE,WAAA;EAC3C,MAAMQ,eAAA,GAAkBZ,uBAAA,CAAwB;IAAEa,QAAA,EAAU,IAAI;IAAEC,oBAAA,EAAsB;MAAEC,GAAA,EAAKJ;IAAe;EAAE;EAEhH,IAAIK,wBAAA,CAAyBV,KAAA,EAAOG,WAAA,EAAaE,cAAA,GAAiB;IAChE;IACA;IACAM,OAAA,CAAQC,IAAI,CAAC;EACf;EAEA,MAAMC,QAAA,GAAWxB,KAAA,CAAMyB,MAAM,CAAc,IAAI;EAE/C,MAAMC,wBAAA,GAA2B1B,KAAA,CAAM2B,WAAW,CAChD,CAACC,CAAA,EAAqCC,MAAA,KAAwB;IAC5D;IACA,MAAMC,aAAA,GAAgB,CAAC,YAAY,oBAAoB,gBAAgB;IACvE,IAAI,CAACN,QAAA,CAASO,OAAO,EAAE;MACrB;IACF;IAEA,MAAMC,SAAA,GAAYnB,gBAAA,CAChBW,QAAA,CAASO,OAAO,EACfE,EAAA,IAAoBA,EAAA,CAAGC,YAAY,CAAC,WAAWJ,aAAA,CAAcK,OAAO,CAACF,EAAA,CAAGG,YAAY,CAAC,aAAc,CAAC;IAGvG,IAAIC,UAAA,GAAaL,SAAA,CAAUG,OAAO,CAACN,MAAA,IAAU;IAC7C,IAAIQ,UAAA,KAAeL,SAAA,CAAUM,MAAM,EAAE;MACnCD,UAAA,GAAa;IACf;IAEA,MAAME,UAAA,GAAaP,SAAA,CAAUQ,GAAG,CAACC,QAAA,IAAYA,QAAA,CAASC,WAAW,EAAEC,MAAA,CAAO,GAAGC,WAAW;IACxF,MAAMC,IAAA,GAAOjB,CAAA,CAAEkB,GAAG,CAACF,WAAW;IAE9B,MAAMG,kBAAA,GAAqBA,CAACC,KAAA,EAAeC,SAAA,KAAsB;MAC/D,KAAK,IAAIC,CAAA,GAAIF,KAAA,EAAOE,CAAA,GAAIX,UAAA,CAAWD,MAAM,EAAEY,CAAA,IAAK;QAC9C,IAAIL,IAAA,KAASN,UAAU,CAACW,CAAA,CAAE,EAAE;UAC1B,OAAOA,CAAA;QACT;MACF;MACA,OAAO,CAAC;IACV;IAEA;IACA,IAAIC,KAAA,GAAQJ,kBAAA,CAAmBV,UAAA,EAAYQ,IAAA;IAE3C;IACA,IAAIM,KAAA,KAAU,CAAC,GAAG;MAChBA,KAAA,GAAQJ,kBAAA,CAAmB,GAAGF,IAAA;IAChC;IAEA;IACA,IAAIM,KAAA,GAAQ,CAAC,GAAG;MACdnB,SAAS,CAACmB,KAAA,CAAM,CAACC,KAAK;IACxB;EACF,GACA,CAACvC,gBAAA,CAAiB;EAGpB,MAAM,CAACwC,aAAA,EAAeC,gBAAA,CAAiB,GAAGnD,oBAAA,CAAqB;IAC7DoD,KAAA,EAAO5C,KAAA,CAAM0C,aAAa,KAAKrC,cAAA,GAAiBF,WAAA,CAAYuC,aAAa,GAAGG,SAAS,CAAD;IACpFC,YAAA,EAAc9C,KAAA,CAAM+C,oBAAoB;IACxCC,YAAA,EAAc,CAAC;EACjB;EAEA,MAAMC,wBAAA,GACJjD,KAAA,CAAMkD,oBAAoB,KAAK7C,cAAA,GAAiBF,WAAA,CAAY+C,oBAAoB,GAAGL,SAAS,CAAD;EAE7F,MAAMM,cAAA,GAAiB5D,gBAAA,CACrB,CAAC0B,CAAA,EAA2CmC,IAAA,EAAcC,KAAA,EAAeC,OAAA,KAAqB;IAC5F,MAAMC,YAAA,GAAeb,aAAA,GAAgBU,IAAA,CAAK,IAAI,EAAE;IAChD,MAAMI,eAAA,GAAkB,C,GAAID,YAAA,CAAa;IACzC,IAAID,OAAA,EAAS;MACXE,eAAA,CAAgBC,MAAM,CAACD,eAAA,CAAgBhC,OAAO,CAAC6B,KAAA,GAAQ;IACzD,OAAO;MACLG,eAAA,CAAgBE,IAAI,CAACL,KAAA;IACvB;IAEAJ,wBAAA,GAA2BhC,CAAA,EAAG;MAAEmC,IAAA;MAAMG,YAAA,EAAcC;IAAgB;IACpEb,gBAAA,CAAiBgB,CAAA,KAAM;MAAE,GAAGA,CAAC;MAAE,CAACP,IAAA,GAAOI;IAAgB;EACzD;EAGF,MAAMI,WAAA,GAAcrE,gBAAA,CAAiB,CAAC0B,CAAA,EAA2CmC,IAAA,EAAcC,KAAA,KAAkB;IAC/G,MAAMG,eAAA,GAAkB,CAACH,KAAA,CAAM;IAC/BV,gBAAA,CAAiBgB,CAAA,KAAM;MAAE,GAAGA,CAAC;MAAE,CAACP,IAAA,GAAOI;IAAgB;IACvDP,wBAAA,GAA2BhC,CAAA,EAAG;MAAEmC,IAAA;MAAMG,YAAA,EAAcC;IAAgB;EACtE;EAEA,OAAO;IACLK,UAAA,EAAY;MACVC,IAAA,EAAM;IACR;IACAA,IAAA,EAAMrE,qBAAA,CAAsB,OAAO;MACjCQ,GAAA,EAAKX,aAAA,CAAcW,GAAA,EAAKY,QAAA;MACxBkD,IAAA,EAAM;MACN,mBAAmB5D,WAAA,CAAY6D,SAAS;MACxC,GAAG1D,eAAe;MAClB,GAAGN;IACL;IACAiE,QAAA,EAAU9D,WAAA,CAAY8D,QAAQ,IAAI,KAAK;IACvCC,aAAA,EAAe/D,WAAA,CAAY+D,aAAa,IAAI,KAAK;IACjDxB,aAAA;IACA3B,wBAAA;IACA6C,WAAA;IACAT;EACF;AACF;AAEA;;;AAGA,MAAM/C,uBAAA,GAA0BA,CAAA,KAAM;EACpC,MAAMsC,aAAA,GAAgB7C,uBAAA,CAAwBsE,OAAA,IAAWA,OAAA,CAAQzB,aAAa;EAC9E,MAAMQ,oBAAA,GAAuBrD,uBAAA,CAAwBsE,OAAA,IAAWA,OAAA,CAAQjB,oBAAoB;EAC5F,MAAMc,SAAA,GAAYnE,uBAAA,CAAwBsE,OAAA,IAAWA,OAAA,CAAQH,SAAS;EACtE,MAAMC,QAAA,GAAWpE,uBAAA,CAAwBsE,OAAA,IAAWA,OAAA,CAAQF,QAAQ;EACpE,MAAMC,aAAA,GAAgBrE,uBAAA,CAAwBsE,OAAA,IAAWA,OAAA,CAAQD,aAAa;EAE9E,OAAO;IACLxB,aAAA;IACAQ,oBAAA;IACAc,SAAA;IACAC,QAAA;IACAC;EACF;AACF;AAEA;;;AAGA,MAAMxD,wBAAA,GAA2BA,CAC/BV,KAAA,EACAoE,YAAA,EACA/D,cAAA,KACG;EACH,IAAIgE,sBAAA,GAAyB,KAAK;EAClC,KAAK,MAAMC,GAAA,IAAOF,YAAA,EAAc;IAC9B,IAAIpE,KAAK,CAACsE,GAAA,CAAgG,EAAE;MAC1GD,sBAAA,GAAyB,IAAI;IAC/B;EACF;EAEA,OAAOhE,cAAA,IAAkBgE,sBAAA;AAC3B"}
@@ -1 +1 @@
1
- {"version":3,"names":["useMenuListContextValues_unstable","state","checkedValues","hasCheckmarks","hasIcons","selectRadio","setFocusByFirstCharacter","toggleCheckbox","menuList"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuList/useMenuListContextValues.ts"],"sourcesContent":["import type { MenuListContextValues, MenuListState } from './MenuList.types';\n\nexport function useMenuListContextValues_unstable(state: MenuListState): MenuListContextValues {\n const { checkedValues, hasCheckmarks, hasIcons, selectRadio, setFocusByFirstCharacter, toggleCheckbox } = state;\n\n // This context is created with \"@fluentui/react-context-selector\", these is no sense to memoize it\n const menuList = {\n checkedValues,\n hasCheckmarks,\n hasIcons,\n selectRadio,\n setFocusByFirstCharacter,\n toggleCheckbox,\n };\n\n return { menuList };\n}\n"],"mappings":"AAEA,OAAM,SAAUA,iCAAiCA,CAACC,KAAoB;EACpE,MAAM;IAAEC,aAAa;IAAEC,aAAa;IAAEC,QAAQ;IAAEC,WAAW;IAAEC,wBAAwB;IAAEC;EAAc,CAAE,GAAGN,KAAK;EAE/G;EACA,MAAMO,QAAQ,GAAG;IACfN,aAAa;IACbC,aAAa;IACbC,QAAQ;IACRC,WAAW;IACXC,wBAAwB;IACxBC;GACD;EAED,OAAO;IAAEC;EAAQ,CAAE;AACrB"}
1
+ {"version":3,"names":["useMenuListContextValues_unstable","state","checkedValues","hasCheckmarks","hasIcons","selectRadio","setFocusByFirstCharacter","toggleCheckbox","menuList"],"sources":["../../../src/components/MenuList/useMenuListContextValues.ts"],"sourcesContent":["import type { MenuListContextValues, MenuListState } from './MenuList.types';\n\nexport function useMenuListContextValues_unstable(state: MenuListState): MenuListContextValues {\n const { checkedValues, hasCheckmarks, hasIcons, selectRadio, setFocusByFirstCharacter, toggleCheckbox } = state;\n\n // This context is created with \"@fluentui/react-context-selector\", these is no sense to memoize it\n const menuList = {\n checkedValues,\n hasCheckmarks,\n hasIcons,\n selectRadio,\n setFocusByFirstCharacter,\n toggleCheckbox,\n };\n\n return { menuList };\n}\n"],"mappings":"AAEA,OAAO,SAASA,kCAAkCC,KAAoB,EAAyB;EAC7F,MAAM;IAAEC,aAAA;IAAeC,aAAA;IAAeC,QAAA;IAAUC,WAAA;IAAaC,wBAAA;IAA0BC;EAAc,CAAE,GAAGN,KAAA;EAE1G;EACA,MAAMO,QAAA,GAAW;IACfN,aAAA;IACAC,aAAA;IACAC,QAAA;IACAC,WAAA;IACAC,wBAAA;IACAC;EACF;EAEA,OAAO;IAAEC;EAAS;AACpB"}
@@ -1,6 +1,6 @@
1
- import { mergeClasses, __styles, shorthands } from '@griffel/react';
1
+ import { mergeClasses, __styles, shorthands } from "@griffel/react";
2
2
  export const menuListClassNames = {
3
- root: 'fui-MenuList'
3
+ root: "fui-MenuList"
4
4
  };
5
5
  const useStyles = /*#__PURE__*/__styles({
6
6
  root: {
@@ -1 +1 @@
1
- {"version":3,"names":["mergeClasses","__styles","shorthands","menuListClassNames","root","useStyles","mc9l5x","Beiy3e4","i8kkvl","Belr9w4","d","useMenuListStyles_unstable","state","styles","className"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuList/useMenuListStyles.ts"],"sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { mergeClasses, makeStyles, shorthands } from '@griffel/react';\nimport type { MenuListSlots, MenuListState } from './MenuList.types';\n\nexport const menuListClassNames: SlotClassNames<MenuListSlots> = {\n root: 'fui-MenuList',\n};\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.gap('2px'),\n },\n});\n\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuListStyles_unstable = (state: MenuListState): MenuListState => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuListClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"mappings":"AACA,SAASA,YAAY,EAAAC,QAAA,EAAcC,UAAU,QAAQ,gBAAgB;AAGrE,OAAO,MAAMC,kBAAkB,GAAkC;EAC/DC,IAAI,EAAE;CACP;AAED,MAAMC,SAAS,gBAAGJ,QAAA;EAAAG,IAAA;IAAAE,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,EAMhB;AAEF;;;AAGA,OAAO,MAAMC,0BAA0B,GAAIC,KAAoB,IAAmB;EAChF,MAAMC,MAAM,GAAGR,SAAS,EAAE;EAC1BO,KAAK,CAACR,IAAI,CAACU,SAAS,GAAGd,YAAY,CAACG,kBAAkB,CAACC,IAAI,EAAES,MAAM,CAACT,IAAI,EAAEQ,KAAK,CAACR,IAAI,CAACU,SAAS,CAAC;EAC/F,OAAOF,KAAK;AACd,CAAC"}
1
+ {"version":3,"names":["mergeClasses","__styles","shorthands","menuListClassNames","root","useStyles","mc9l5x","Beiy3e4","i8kkvl","Belr9w4","d","useMenuListStyles_unstable","state","styles","className"],"sources":["../../../src/components/MenuList/useMenuListStyles.ts"],"sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { mergeClasses, makeStyles, shorthands } from '@griffel/react';\nimport type { MenuListSlots, MenuListState } from './MenuList.types';\n\nexport const menuListClassNames: SlotClassNames<MenuListSlots> = {\n root: 'fui-MenuList',\n};\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n ...shorthands.gap('2px'),\n },\n});\n\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuListStyles_unstable = (state: MenuListState): MenuListState => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuListClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"mappings":"AACA,SAASA,YAAY,EAAAC,QAAA,EAAcC,UAAU,QAAQ;AAGrD,OAAO,MAAMC,kBAAA,GAAoD;EAC/DC,IAAA,EAAM;AACR;AAEA,MAAMC,SAAA,gBAAYJ,QAAA;EAAAG,IAAA;IAAAE,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,EAMlB;AAEA;;;AAGA,OAAO,MAAMC,0BAAA,GAA8BC,KAAA,IAAwC;EACjF,MAAMC,MAAA,GAASR,SAAA;EACfO,KAAA,CAAMR,IAAI,CAACU,SAAS,GAAGd,YAAA,CAAaG,kBAAA,CAAmBC,IAAI,EAAES,MAAA,CAAOT,IAAI,EAAEQ,KAAA,CAAMR,IAAI,CAACU,SAAS;EAC9F,OAAOF,KAAA;AACT"}
@@ -1,8 +1,8 @@
1
- import * as React from 'react';
2
- import { useMenuPopover_unstable } from './useMenuPopover';
3
- import { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles';
4
- import { renderMenuPopover_unstable } from './renderMenuPopover';
5
- import { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';
1
+ import * as React from "react";
2
+ import { useMenuPopover_unstable } from "./useMenuPopover";
3
+ import { useMenuPopoverStyles_unstable } from "./useMenuPopoverStyles";
4
+ import { renderMenuPopover_unstable } from "./renderMenuPopover";
5
+ import { useCustomStyleHooks_unstable } from "@fluentui/react-shared-contexts";
6
6
  /**
7
7
  * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus
8
8
  */
@@ -15,5 +15,5 @@ export const MenuPopover = /*#__PURE__*/React.forwardRef((props, ref) => {
15
15
  useCustomStyles(state);
16
16
  return renderMenuPopover_unstable(state);
17
17
  });
18
- MenuPopover.displayName = 'MenuPopover';
18
+ MenuPopover.displayName = "MenuPopover";
19
19
  //# sourceMappingURL=MenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMenuPopover_unstable","useMenuPopoverStyles_unstable","renderMenuPopover_unstable","useCustomStyleHooks_unstable","MenuPopover","forwardRef","props","ref","state","useCustomStyles","displayName"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuPopover/MenuPopover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useMenuPopover_unstable } from './useMenuPopover';\nimport { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles';\nimport { renderMenuPopover_unstable } from './renderMenuPopover';\nimport type { MenuPopoverProps } from './MenuPopover.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus\n */\nexport const MenuPopover: ForwardRefComponent<MenuPopoverProps> = React.forwardRef((props, ref) => {\n const state = useMenuPopover_unstable(props, ref);\n\n useMenuPopoverStyles_unstable(state);\n\n const { useMenuPopoverStyles_unstable: useCustomStyles } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n\n return renderMenuPopover_unstable(state);\n});\n\nMenuPopover.displayName = 'MenuPopover';\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,uBAAuB,QAAQ,kBAAkB;AAC1D,SAASC,6BAA6B,QAAQ,wBAAwB;AACtE,SAASC,0BAA0B,QAAQ,qBAAqB;AAGhE,SAASC,4BAA4B,QAAQ,iCAAiC;AAE9E;;;AAGA,OAAO,MAAMC,WAAW,gBAA0CL,KAAK,CAACM,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAI;EAChG,MAAMC,KAAK,GAAGR,uBAAuB,CAACM,KAAK,EAAEC,GAAG,CAAC;EAEjDN,6BAA6B,CAACO,KAAK,CAAC;EAEpC,MAAM;IAAEP,6BAA6B,EAAEQ;EAAe,CAAE,GAAGN,4BAA4B,EAAE;EACzFM,eAAe,CAACD,KAAK,CAAC;EAEtB,OAAON,0BAA0B,CAACM,KAAK,CAAC;AAC1C,CAAC,CAAC;AAEFJ,WAAW,CAACM,WAAW,GAAG,aAAa"}
1
+ {"version":3,"names":["React","useMenuPopover_unstable","useMenuPopoverStyles_unstable","renderMenuPopover_unstable","useCustomStyleHooks_unstable","MenuPopover","forwardRef","props","ref","state","useCustomStyles","displayName"],"sources":["../../../src/components/MenuPopover/MenuPopover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useMenuPopover_unstable } from './useMenuPopover';\nimport { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles';\nimport { renderMenuPopover_unstable } from './renderMenuPopover';\nimport type { MenuPopoverProps } from './MenuPopover.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus\n */\nexport const MenuPopover: ForwardRefComponent<MenuPopoverProps> = React.forwardRef((props, ref) => {\n const state = useMenuPopover_unstable(props, ref);\n\n useMenuPopoverStyles_unstable(state);\n\n const { useMenuPopoverStyles_unstable: useCustomStyles } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n\n return renderMenuPopover_unstable(state);\n});\n\nMenuPopover.displayName = 'MenuPopover';\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,uBAAuB,QAAQ;AACxC,SAASC,6BAA6B,QAAQ;AAC9C,SAASC,0BAA0B,QAAQ;AAG3C,SAASC,4BAA4B,QAAQ;AAE7C;;;AAGA,OAAO,MAAMC,WAAA,gBAAqDL,KAAA,CAAMM,UAAU,CAAC,CAACC,KAAA,EAAOC,GAAA,KAAQ;EACjG,MAAMC,KAAA,GAAQR,uBAAA,CAAwBM,KAAA,EAAOC,GAAA;EAE7CN,6BAAA,CAA8BO,KAAA;EAE9B,MAAM;IAAEP,6BAAA,EAA+BQ;EAAe,CAAE,GAAGN,4BAAA;EAC3DM,eAAA,CAAgBD,KAAA;EAEhB,OAAON,0BAAA,CAA2BM,KAAA;AACpC;AAEAJ,WAAA,CAAYM,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.types.js","sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { PortalProps } from '@fluentui/react-portal';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type MenuPopoverSlots = {\n root: Slot<'div'>;\n};\n\n/**\n * MenuPopover Props\n */\nexport type MenuPopoverProps = ComponentProps<MenuPopoverSlots>;\n\n/**\n * State used in rendering MenuPopover\n */\nexport type MenuPopoverState = ComponentState<MenuPopoverSlots> &\n Pick<PortalProps, 'mountNode'> & {\n /**\n * Root menus are rendered out of DOM order on `document.body`, use this to render the menu in DOM order\n * This option is disregarded for submenus\n */\n inline: boolean;\n };\n"]}
1
+ {"version":3,"names":[],"sources":["../../../src/components/MenuPopover/MenuPopover.types.ts"],"sourcesContent":["import type { PortalProps } from '@fluentui/react-portal';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type MenuPopoverSlots = {\n root: Slot<'div'>;\n};\n\n/**\n * MenuPopover Props\n */\nexport type MenuPopoverProps = ComponentProps<MenuPopoverSlots>;\n\n/**\n * State used in rendering MenuPopover\n */\nexport type MenuPopoverState = ComponentState<MenuPopoverSlots> &\n Pick<PortalProps, 'mountNode'> & {\n /**\n * Root menus are rendered out of DOM order on `document.body`, use this to render the menu in DOM order\n * This option is disregarded for submenus\n */\n inline: boolean;\n };\n"],"mappings":"AAAA"}
@@ -1,6 +1,6 @@
1
- export * from './MenuPopover';
2
- export * from './MenuPopover.types';
3
- export * from './renderMenuPopover';
4
- export * from './useMenuPopover';
5
- export * from './useMenuPopoverStyles';
1
+ export * from "./MenuPopover";
2
+ export * from "./MenuPopover.types";
3
+ export * from "./renderMenuPopover";
4
+ export * from "./useMenuPopover";
5
+ export * from "./useMenuPopoverStyles";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuPopover/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './MenuPopover';\nexport * from './MenuPopover.types';\nexport * from './renderMenuPopover';\nexport * from './useMenuPopover';\nexport * from './useMenuPopoverStyles';\n"]}
1
+ {"version":3,"names":[],"sources":["../../../src/components/MenuPopover/index.ts"],"sourcesContent":["export * from './MenuPopover';\nexport * from './MenuPopover.types';\nexport * from './renderMenuPopover';\nexport * from './useMenuPopover';\nexport * from './useMenuPopoverStyles';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc"}
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
2
- import { getSlots } from '@fluentui/react-utilities';
3
- import { Portal } from '@fluentui/react-portal';
1
+ import * as React from "react";
2
+ import { getSlots } from "@fluentui/react-utilities";
3
+ import { Portal } from "@fluentui/react-portal";
4
4
  /**
5
5
  * Render the final JSX of MenuPopover
6
6
  */
@@ -10,14 +10,10 @@ export const renderMenuPopover_unstable = state => {
10
10
  slotProps
11
11
  } = getSlots(state);
12
12
  if (state.inline) {
13
- return /*#__PURE__*/React.createElement(slots.root, {
14
- ...slotProps.root
15
- });
13
+ return /*#__PURE__*/React.createElement(slots.root, slotProps.root);
16
14
  }
17
15
  return /*#__PURE__*/React.createElement(Portal, {
18
16
  mountNode: state.mountNode
19
- }, /*#__PURE__*/React.createElement(slots.root, {
20
- ...slotProps.root
21
- }));
17
+ }, /*#__PURE__*/React.createElement(slots.root, slotProps.root));
22
18
  };
23
19
  //# sourceMappingURL=renderMenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","getSlots","Portal","renderMenuPopover_unstable","state","slots","slotProps","inline","createElement","root","mountNode"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuPopover/renderMenuPopover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { MenuPopoverSlots, MenuPopoverState } from './MenuPopover.types';\nimport { Portal } from '@fluentui/react-portal';\n\n/**\n * Render the final JSX of MenuPopover\n */\nexport const renderMenuPopover_unstable = (state: MenuPopoverState) => {\n const { slots, slotProps } = getSlots<MenuPopoverSlots>(state);\n\n if (state.inline) {\n return <slots.root {...slotProps.root} />;\n }\n\n return (\n <Portal mountNode={state.mountNode}>\n <slots.root {...slotProps.root} />\n </Portal>\n );\n};\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,2BAA2B;AAEpD,SAASC,MAAM,QAAQ,wBAAwB;AAE/C;;;AAGA,OAAO,MAAMC,0BAA0B,GAAIC,KAAuB,IAAI;EACpE,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAE,GAAGL,QAAQ,CAAmBG,KAAK,CAAC;EAE9D,IAAIA,KAAK,CAACG,MAAM,EAAE;IAChB,oBAAOP,KAAA,CAAAQ,aAAA,CAACH,KAAK,CAACI,IAAI;MAAA,GAAKH,SAAS,CAACG;IAAI,EAAI;;EAG3C,oBACET,KAAA,CAAAQ,aAAA,CAACN,MAAM;IAACQ,SAAS,EAAEN,KAAK,CAACM;EAAS,gBAChCV,KAAA,CAAAQ,aAAA,CAACH,KAAK,CAACI,IAAI;IAAA,GAAKH,SAAS,CAACG;EAAI,EAAI,CAC3B;AAEb,CAAC"}
1
+ {"version":3,"names":["React","getSlots","Portal","renderMenuPopover_unstable","state","slots","slotProps","inline","createElement","root","mountNode"],"sources":["../../../src/components/MenuPopover/renderMenuPopover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { MenuPopoverSlots, MenuPopoverState } from './MenuPopover.types';\nimport { Portal } from '@fluentui/react-portal';\n\n/**\n * Render the final JSX of MenuPopover\n */\nexport const renderMenuPopover_unstable = (state: MenuPopoverState) => {\n const { slots, slotProps } = getSlots<MenuPopoverSlots>(state);\n\n if (state.inline) {\n return <slots.root {...slotProps.root} />;\n }\n\n return (\n <Portal mountNode={state.mountNode}>\n <slots.root {...slotProps.root} />\n </Portal>\n );\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,QAAQ,QAAQ;AAEzB,SAASC,MAAM,QAAQ;AAEvB;;;AAGA,OAAO,MAAMC,0BAAA,GAA8BC,KAAA,IAA4B;EACrE,MAAM;IAAEC,KAAA;IAAOC;EAAS,CAAE,GAAGL,QAAA,CAA2BG,KAAA;EAExD,IAAIA,KAAA,CAAMG,MAAM,EAAE;IAChB,oBAAOP,KAAA,CAAAQ,aAAA,CAACH,KAAA,CAAMI,IAAI,EAAKH,SAAA,CAAUG,IAAI;EACvC;EAEA,oBACET,KAAA,CAAAQ,aAAA,CAACN,MAAA;IAAOQ,SAAA,EAAWN,KAAA,CAAMM;kBACvBV,KAAA,CAAAQ,aAAA,CAACH,KAAA,CAAMI,IAAI,EAAKH,SAAA,CAAUG,IAAI;AAGpC"}
@@ -1,10 +1,10 @@
1
- import * as React from 'react';
2
- import { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';
3
- import { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';
4
- import { useMenuContext_unstable } from '../../contexts/menuContext';
5
- import { dispatchMenuEnterEvent } from '../../utils/index';
6
- import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';
7
- import { useIsSubmenu } from '../../utils/useIsSubmenu';
1
+ import * as React from "react";
2
+ import { ArrowLeft, Tab, ArrowRight, Escape } from "@fluentui/keyboard-keys";
3
+ import { getNativeElementProps, useEventCallback, useMergedRefs } from "@fluentui/react-utilities";
4
+ import { useMenuContext_unstable } from "../../contexts/menuContext";
5
+ import { dispatchMenuEnterEvent } from "../../utils/index";
6
+ import { useFluent_unstable as useFluent } from "@fluentui/react-shared-contexts";
7
+ import { useIsSubmenu } from "../../utils/useIsSubmenu";
8
8
  /**
9
9
  * Create the state required to render MenuPopover.
10
10
  *
@@ -15,7 +15,6 @@ import { useIsSubmenu } from '../../utils/useIsSubmenu';
15
15
  * @param ref - reference to root HTMLElement of MenuPopover
16
16
  */
17
17
  export const useMenuPopover_unstable = (props, ref) => {
18
- var _a;
19
18
  const popoverRef = useMenuContext_unstable(context => context.menuPopoverRef);
20
19
  const setOpen = useMenuContext_unstable(context => context.setOpen);
21
20
  const open = useMenuContext_unstable(context => context.open);
@@ -26,7 +25,7 @@ export const useMenuPopover_unstable = (props, ref) => {
26
25
  const {
27
26
  dir
28
27
  } = useFluent();
29
- const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;
28
+ const CloseArrowKey = dir === "ltr" ? ArrowLeft : ArrowRight;
30
29
  // use DOM listener since react events propagate up the react tree
31
30
  // no need to do `contains` logic as menus are all positioned in different portals
32
31
  const mouseOverListenerCallbackRef = React.useCallback(node => {
@@ -34,7 +33,7 @@ export const useMenuPopover_unstable = (props, ref) => {
34
33
  // Dispatches the custom menu mouse enter event with throttling
35
34
  // Needs to trigger on mouseover to support keyboard + mouse together
36
35
  // i.e. keyboard opens submenus while cursor is still on the parent
37
- node.addEventListener('mouseover', e => {
36
+ node.addEventListener("mouseover", e => {
38
37
  if (canDispatchCustomEventRef.current) {
39
38
  canDispatchCustomEventRef.current = false;
40
39
  dispatchMenuEnterEvent(popoverRef.current, e);
@@ -48,10 +47,10 @@ export const useMenuPopover_unstable = (props, ref) => {
48
47
  React.useEffect(() => {
49
48
  () => clearTimeout(throttleDispatchTimerRef.current);
50
49
  }, []);
51
- const inline = (_a = useMenuContext_unstable(context => context.inline)) !== null && _a !== void 0 ? _a : false;
50
+ const inline = useMenuContext_unstable(context => context.inline) ?? false;
52
51
  const mountNode = useMenuContext_unstable(context => context.mountNode);
53
- const rootProps = getNativeElementProps('div', {
54
- role: 'presentation',
52
+ const rootProps = getNativeElementProps("div", {
53
+ role: "presentation",
55
54
  ...props,
56
55
  ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef)
57
56
  });
@@ -64,21 +63,20 @@ export const useMenuPopover_unstable = (props, ref) => {
64
63
  setOpen(event, {
65
64
  open: true,
66
65
  keyboard: false,
67
- type: 'menuPopoverMouseEnter',
66
+ type: "menuPopoverMouseEnter",
68
67
  event
69
68
  });
70
69
  }
71
- onMouseEnterOriginal === null || onMouseEnterOriginal === void 0 ? void 0 : onMouseEnterOriginal(event);
70
+ onMouseEnterOriginal?.(event);
72
71
  });
73
72
  rootProps.onKeyDown = useEventCallback(event => {
74
- var _a;
75
73
  const key = event.key;
76
74
  if (key === Escape || isSubmenu && key === CloseArrowKey) {
77
- if (open && ((_a = popoverRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
75
+ if (open && popoverRef.current?.contains(event.target)) {
78
76
  setOpen(event, {
79
77
  open: false,
80
78
  keyboard: true,
81
- type: 'menuPopoverKeyDown',
79
+ type: "menuPopoverKeyDown",
82
80
  event
83
81
  });
84
82
  // stop propagation to avoid conflicting with other elements that listen for `Escape`
@@ -90,17 +88,17 @@ export const useMenuPopover_unstable = (props, ref) => {
90
88
  setOpen(event, {
91
89
  open: false,
92
90
  keyboard: true,
93
- type: 'menuPopoverKeyDown',
91
+ type: "menuPopoverKeyDown",
94
92
  event
95
93
  });
96
94
  }
97
- onKeyDownOriginal === null || onKeyDownOriginal === void 0 ? void 0 : onKeyDownOriginal(event);
95
+ onKeyDownOriginal?.(event);
98
96
  });
99
97
  return {
100
98
  inline,
101
99
  mountNode,
102
100
  components: {
103
- root: 'div'
101
+ root: "div"
104
102
  },
105
103
  root: rootProps
106
104
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","ArrowLeft","Tab","ArrowRight","Escape","getNativeElementProps","useEventCallback","useMergedRefs","useMenuContext_unstable","dispatchMenuEnterEvent","useFluent_unstable","useFluent","useIsSubmenu","useMenuPopover_unstable","props","ref","popoverRef","context","menuPopoverRef","setOpen","open","openOnHover","isSubmenu","canDispatchCustomEventRef","useRef","throttleDispatchTimerRef","dir","CloseArrowKey","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","setTimeout","useEffect","clearTimeout","inline","_a","mountNode","rootProps","role","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","event","keyboard","type","key","contains","target","stopPropagation","components","root"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuPopover/useMenuPopover.ts"],"sourcesContent":["import * as React from 'react';\nimport { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { MenuPopoverProps, MenuPopoverState } from './MenuPopover.types';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { dispatchMenuEnterEvent } from '../../utils/index';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\n\n/**\n * Create the state required to render MenuPopover.\n *\n * The returned state can be modified with hooks such as useMenuPopoverStyles_unstable,\n * before being passed to renderMenuPopover_unstable.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */\nexport const useMenuPopover_unstable = (props: MenuPopoverProps, ref: React.Ref<HTMLElement>): MenuPopoverState => {\n const popoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const isSubmenu = useIsSubmenu();\n const canDispatchCustomEventRef = React.useRef(true);\n const throttleDispatchTimerRef = React.useRef(0);\n\n const { dir } = useFluent();\n const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;\n\n // use DOM listener since react events propagate up the react tree\n // no need to do `contains` logic as menus are all positioned in different portals\n const mouseOverListenerCallbackRef = React.useCallback(\n (node: HTMLElement) => {\n if (node) {\n // Dispatches the custom menu mouse enter event with throttling\n // Needs to trigger on mouseover to support keyboard + mouse together\n // i.e. keyboard opens submenus while cursor is still on the parent\n node.addEventListener('mouseover', e => {\n if (canDispatchCustomEventRef.current) {\n canDispatchCustomEventRef.current = false;\n dispatchMenuEnterEvent(popoverRef.current as HTMLElement, e);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore #16889 Node setTimeout type leaking\n throttleDispatchTimerRef.current = setTimeout(() => (canDispatchCustomEventRef.current = true), 250);\n }\n });\n }\n },\n [popoverRef, throttleDispatchTimerRef],\n );\n\n React.useEffect(() => {\n () => clearTimeout(throttleDispatchTimerRef.current);\n }, []);\n\n const inline = useMenuContext_unstable(context => context.inline) ?? false;\n const mountNode = useMenuContext_unstable(context => context.mountNode);\n\n const rootProps = getNativeElementProps('div', {\n role: 'presentation',\n ...props,\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef),\n });\n\n const { onMouseEnter: onMouseEnterOriginal, onKeyDown: onKeyDownOriginal } = rootProps;\n\n rootProps.onMouseEnter = useEventCallback((event: React.MouseEvent<HTMLElement>) => {\n if (openOnHover) {\n setOpen(event, { open: true, keyboard: false, type: 'menuPopoverMouseEnter', event });\n }\n\n onMouseEnterOriginal?.(event);\n });\n\n rootProps.onKeyDown = useEventCallback((event: React.KeyboardEvent<HTMLElement>) => {\n const key = event.key;\n\n if (key === Escape || (isSubmenu && key === CloseArrowKey)) {\n if (open && popoverRef.current?.contains(event.target as HTMLElement)) {\n setOpen(event, { open: false, keyboard: true, type: 'menuPopoverKeyDown', event });\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover and Tooltip\n event.stopPropagation();\n }\n }\n\n if (key === Tab) {\n setOpen(event, { open: false, keyboard: true, type: 'menuPopoverKeyDown', event });\n }\n\n onKeyDownOriginal?.(event);\n });\n\n return {\n inline,\n mountNode,\n components: {\n root: 'div',\n },\n root: rootProps,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","ArrowLeft","Tab","ArrowRight","Escape","getNativeElementProps","useEventCallback","useMergedRefs","useMenuContext_unstable","dispatchMenuEnterEvent","useFluent_unstable","useFluent","useIsSubmenu","useMenuPopover_unstable","props","ref","popoverRef","context","menuPopoverRef","setOpen","open","openOnHover","isSubmenu","canDispatchCustomEventRef","useRef","throttleDispatchTimerRef","dir","CloseArrowKey","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","setTimeout","useEffect","clearTimeout","inline","mountNode","rootProps","role","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","event","keyboard","type","key","contains","target","stopPropagation","components","root"],"sources":["../../../src/components/MenuPopover/useMenuPopover.ts"],"sourcesContent":["import * as React from 'react';\nimport { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { MenuPopoverProps, MenuPopoverState } from './MenuPopover.types';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { dispatchMenuEnterEvent } from '../../utils/index';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\n\n/**\n * Create the state required to render MenuPopover.\n *\n * The returned state can be modified with hooks such as useMenuPopoverStyles_unstable,\n * before being passed to renderMenuPopover_unstable.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */\nexport const useMenuPopover_unstable = (props: MenuPopoverProps, ref: React.Ref<HTMLElement>): MenuPopoverState => {\n const popoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const isSubmenu = useIsSubmenu();\n const canDispatchCustomEventRef = React.useRef(true);\n const throttleDispatchTimerRef = React.useRef(0);\n\n const { dir } = useFluent();\n const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;\n\n // use DOM listener since react events propagate up the react tree\n // no need to do `contains` logic as menus are all positioned in different portals\n const mouseOverListenerCallbackRef = React.useCallback(\n (node: HTMLElement) => {\n if (node) {\n // Dispatches the custom menu mouse enter event with throttling\n // Needs to trigger on mouseover to support keyboard + mouse together\n // i.e. keyboard opens submenus while cursor is still on the parent\n node.addEventListener('mouseover', e => {\n if (canDispatchCustomEventRef.current) {\n canDispatchCustomEventRef.current = false;\n dispatchMenuEnterEvent(popoverRef.current as HTMLElement, e);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore #16889 Node setTimeout type leaking\n throttleDispatchTimerRef.current = setTimeout(() => (canDispatchCustomEventRef.current = true), 250);\n }\n });\n }\n },\n [popoverRef, throttleDispatchTimerRef],\n );\n\n React.useEffect(() => {\n () => clearTimeout(throttleDispatchTimerRef.current);\n }, []);\n\n const inline = useMenuContext_unstable(context => context.inline) ?? false;\n const mountNode = useMenuContext_unstable(context => context.mountNode);\n\n const rootProps = getNativeElementProps('div', {\n role: 'presentation',\n ...props,\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef),\n });\n\n const { onMouseEnter: onMouseEnterOriginal, onKeyDown: onKeyDownOriginal } = rootProps;\n\n rootProps.onMouseEnter = useEventCallback((event: React.MouseEvent<HTMLElement>) => {\n if (openOnHover) {\n setOpen(event, { open: true, keyboard: false, type: 'menuPopoverMouseEnter', event });\n }\n\n onMouseEnterOriginal?.(event);\n });\n\n rootProps.onKeyDown = useEventCallback((event: React.KeyboardEvent<HTMLElement>) => {\n const key = event.key;\n\n if (key === Escape || (isSubmenu && key === CloseArrowKey)) {\n if (open && popoverRef.current?.contains(event.target as HTMLElement)) {\n setOpen(event, { open: false, keyboard: true, type: 'menuPopoverKeyDown', event });\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover and Tooltip\n event.stopPropagation();\n }\n }\n\n if (key === Tab) {\n setOpen(event, { open: false, keyboard: true, type: 'menuPopoverKeyDown', event });\n }\n\n onKeyDownOriginal?.(event);\n });\n\n return {\n inline,\n mountNode,\n components: {\n root: 'div',\n },\n root: rootProps,\n };\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { shorthands, mergeClasses, __styles } from '@griffel/react';
2
- import { tokens, typographyStyles } from '@fluentui/react-theme';
1
+ import { shorthands, mergeClasses, __styles } from "@griffel/react";
2
+ import { tokens, typographyStyles } from "@fluentui/react-theme";
3
3
  export const menuPopoverClassNames = {
4
- root: 'fui-MenuPopover'
4
+ root: "fui-MenuPopover"
5
5
  };
6
6
  const useStyles = /*#__PURE__*/__styles({
7
7
  root: {
@@ -1 +1 @@
1
- {"version":3,"names":["shorthands","mergeClasses","__styles","tokens","typographyStyles","menuPopoverClassNames","root","useStyles","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","De3pzq","sj55zd","Bf4jedk","B2u0y6b","a9b677","E5pizo","z8tnut","z189sj","Byoj8tv","uwmqm3","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","icvyot","vrafjx","oivjwe","wvpqe5","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","d","useMenuPopoverStyles_unstable","state","styles","className"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuPopover/useMenuPopoverStyles.ts"],"sourcesContent":["import { shorthands, mergeClasses, makeStyles } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport type { MenuPopoverSlots, MenuPopoverState } from './MenuPopover.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const menuPopoverClassNames: SlotClassNames<MenuPopoverSlots> = {\n root: 'fui-MenuPopover',\n};\n\nconst useStyles = makeStyles({\n root: {\n ...shorthands.borderRadius(tokens.borderRadiusMedium),\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n minWidth: '128px',\n maxWidth: '300px',\n width: 'max-content',\n boxShadow: `${tokens.shadow16}`,\n ...shorthands.padding('4px'),\n ...shorthands.border('1px', 'solid', tokens.colorTransparentStroke),\n ...typographyStyles.body1,\n },\n});\n\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuPopoverStyles_unstable = (state: MenuPopoverState): MenuPopoverState => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuPopoverClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,EAAAC,QAAA,QAAoB,gBAAgB;AACrE,SAASC,MAAM,EAAEC,gBAAgB,QAAQ,uBAAuB;AAIhE,OAAO,MAAMC,qBAAqB,GAAqC;EACrEC,IAAI,EAAE;CACP;AAED,MAAMC,SAAS,gBAAGL,QAAA;EAAAI,IAAA;IAAAE,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,EAahB;AAEF;;;AAGA,OAAO,MAAMC,6BAA6B,GAAIC,KAAuB,IAAsB;EACzF,MAAMC,MAAM,GAAGlC,SAAS,EAAE;EAC1BiC,KAAK,CAAClC,IAAI,CAACoC,SAAS,GAAGzC,YAAY,CAACI,qBAAqB,CAACC,IAAI,EAAEmC,MAAM,CAACnC,IAAI,EAAEkC,KAAK,CAAClC,IAAI,CAACoC,SAAS,CAAC;EAClG,OAAOF,KAAK;AACd,CAAC"}
1
+ {"version":3,"names":["shorthands","mergeClasses","__styles","tokens","typographyStyles","menuPopoverClassNames","root","useStyles","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","De3pzq","sj55zd","Bf4jedk","B2u0y6b","a9b677","E5pizo","z8tnut","z189sj","Byoj8tv","uwmqm3","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","icvyot","vrafjx","oivjwe","wvpqe5","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","d","useMenuPopoverStyles_unstable","state","styles","className"],"sources":["../../../src/components/MenuPopover/useMenuPopoverStyles.ts"],"sourcesContent":["import { shorthands, mergeClasses, makeStyles } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport type { MenuPopoverSlots, MenuPopoverState } from './MenuPopover.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const menuPopoverClassNames: SlotClassNames<MenuPopoverSlots> = {\n root: 'fui-MenuPopover',\n};\n\nconst useStyles = makeStyles({\n root: {\n ...shorthands.borderRadius(tokens.borderRadiusMedium),\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n minWidth: '128px',\n maxWidth: '300px',\n width: 'max-content',\n boxShadow: `${tokens.shadow16}`,\n ...shorthands.padding('4px'),\n ...shorthands.border('1px', 'solid', tokens.colorTransparentStroke),\n ...typographyStyles.body1,\n },\n});\n\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuPopoverStyles_unstable = (state: MenuPopoverState): MenuPopoverState => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuPopoverClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,EAAAC,QAAA,QAAoB;AACrD,SAASC,MAAM,EAAEC,gBAAgB,QAAQ;AAIzC,OAAO,MAAMC,qBAAA,GAA0D;EACrEC,IAAA,EAAM;AACR;AAEA,MAAMC,SAAA,gBAAYL,QAAA;EAAAI,IAAA;IAAAE,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,EAalB;AAEA;;;AAGA,OAAO,MAAMC,6BAAA,GAAiCC,KAAA,IAA8C;EAC1F,MAAMC,MAAA,GAASlC,SAAA;EACfiC,KAAA,CAAMlC,IAAI,CAACoC,SAAS,GAAGzC,YAAA,CAAaI,qBAAA,CAAsBC,IAAI,EAAEmC,MAAA,CAAOnC,IAAI,EAAEkC,KAAA,CAAMlC,IAAI,CAACoC,SAAS;EACjG,OAAOF,KAAA;AACT"}
@@ -1,8 +1,8 @@
1
- import * as React from 'react';
2
- import { useMenuSplitGroup_unstable } from './useMenuSplitGroup';
3
- import { renderMenuSplitGroup_unstable } from './renderMenuSplitGroup';
4
- import { useMenuSplitGroupStyles_unstable } from './useMenuSplitGroupStyles';
5
- import { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';
1
+ import * as React from "react";
2
+ import { useMenuSplitGroup_unstable } from "./useMenuSplitGroup";
3
+ import { renderMenuSplitGroup_unstable } from "./renderMenuSplitGroup";
4
+ import { useMenuSplitGroupStyles_unstable } from "./useMenuSplitGroupStyles";
5
+ import { useCustomStyleHooks_unstable } from "@fluentui/react-shared-contexts";
6
6
  /**
7
7
  * Layout wrapper that provides extra keyboard navigation behavior for two `MenuItem` components.
8
8
  */
@@ -15,5 +15,5 @@ export const MenuSplitGroup = /*#__PURE__*/React.forwardRef((props, ref) => {
15
15
  useCustomStyles(state);
16
16
  return renderMenuSplitGroup_unstable(state);
17
17
  });
18
- MenuSplitGroup.displayName = 'MenuSplitGroup';
18
+ MenuSplitGroup.displayName = "MenuSplitGroup";
19
19
  //# sourceMappingURL=MenuSplitGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMenuSplitGroup_unstable","renderMenuSplitGroup_unstable","useMenuSplitGroupStyles_unstable","useCustomStyleHooks_unstable","MenuSplitGroup","forwardRef","props","ref","state","useCustomStyles","displayName"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuSplitGroup/MenuSplitGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useMenuSplitGroup_unstable } from './useMenuSplitGroup';\nimport { renderMenuSplitGroup_unstable } from './renderMenuSplitGroup';\nimport { useMenuSplitGroupStyles_unstable } from './useMenuSplitGroupStyles';\nimport type { MenuSplitGroupProps } from './MenuSplitGroup.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Layout wrapper that provides extra keyboard navigation behavior for two `MenuItem` components.\n */\nexport const MenuSplitGroup: ForwardRefComponent<MenuSplitGroupProps> = React.forwardRef((props, ref) => {\n const state = useMenuSplitGroup_unstable(props, ref);\n\n useMenuSplitGroupStyles_unstable(state);\n\n const { useMenuSplitGroupStyles_unstable: useCustomStyles } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n\n return renderMenuSplitGroup_unstable(state);\n});\n\nMenuSplitGroup.displayName = 'MenuSplitGroup';\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,0BAA0B,QAAQ,qBAAqB;AAChE,SAASC,6BAA6B,QAAQ,wBAAwB;AACtE,SAASC,gCAAgC,QAAQ,2BAA2B;AAG5E,SAASC,4BAA4B,QAAQ,iCAAiC;AAE9E;;;AAGA,OAAO,MAAMC,cAAc,gBAA6CL,KAAK,CAACM,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAI;EACtG,MAAMC,KAAK,GAAGR,0BAA0B,CAACM,KAAK,EAAEC,GAAG,CAAC;EAEpDL,gCAAgC,CAACM,KAAK,CAAC;EAEvC,MAAM;IAAEN,gCAAgC,EAAEO;EAAe,CAAE,GAAGN,4BAA4B,EAAE;EAC5FM,eAAe,CAACD,KAAK,CAAC;EAEtB,OAAOP,6BAA6B,CAACO,KAAK,CAAC;AAC7C,CAAC,CAAC;AAEFJ,cAAc,CAACM,WAAW,GAAG,gBAAgB"}
1
+ {"version":3,"names":["React","useMenuSplitGroup_unstable","renderMenuSplitGroup_unstable","useMenuSplitGroupStyles_unstable","useCustomStyleHooks_unstable","MenuSplitGroup","forwardRef","props","ref","state","useCustomStyles","displayName"],"sources":["../../../src/components/MenuSplitGroup/MenuSplitGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useMenuSplitGroup_unstable } from './useMenuSplitGroup';\nimport { renderMenuSplitGroup_unstable } from './renderMenuSplitGroup';\nimport { useMenuSplitGroupStyles_unstable } from './useMenuSplitGroupStyles';\nimport type { MenuSplitGroupProps } from './MenuSplitGroup.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Layout wrapper that provides extra keyboard navigation behavior for two `MenuItem` components.\n */\nexport const MenuSplitGroup: ForwardRefComponent<MenuSplitGroupProps> = React.forwardRef((props, ref) => {\n const state = useMenuSplitGroup_unstable(props, ref);\n\n useMenuSplitGroupStyles_unstable(state);\n\n const { useMenuSplitGroupStyles_unstable: useCustomStyles } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n\n return renderMenuSplitGroup_unstable(state);\n});\n\nMenuSplitGroup.displayName = 'MenuSplitGroup';\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,6BAA6B,QAAQ;AAC9C,SAASC,gCAAgC,QAAQ;AAGjD,SAASC,4BAA4B,QAAQ;AAE7C;;;AAGA,OAAO,MAAMC,cAAA,gBAA2DL,KAAA,CAAMM,UAAU,CAAC,CAACC,KAAA,EAAOC,GAAA,KAAQ;EACvG,MAAMC,KAAA,GAAQR,0BAAA,CAA2BM,KAAA,EAAOC,GAAA;EAEhDL,gCAAA,CAAiCM,KAAA;EAEjC,MAAM;IAAEN,gCAAA,EAAkCO;EAAe,CAAE,GAAGN,4BAAA;EAC9DM,eAAA,CAAgBD,KAAA;EAEhB,OAAOP,6BAAA,CAA8BO,KAAA;AACvC;AAEAJ,cAAA,CAAeM,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSplitGroup.types.js","sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuSplitGroup/MenuSplitGroup.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type MenuSplitGroupSlots = {\n root: Slot<'div'>;\n};\n\n/**\n * MenuSplitGroup Props\n */\nexport type MenuSplitGroupProps = ComponentProps<MenuSplitGroupSlots>;\n\n/**\n * State used in rendering MenuSplitGroup\n */\nexport type MenuSplitGroupState = ComponentState<MenuSplitGroupSlots>;\n"]}
1
+ {"version":3,"names":[],"sources":["../../../src/components/MenuSplitGroup/MenuSplitGroup.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type MenuSplitGroupSlots = {\n root: Slot<'div'>;\n};\n\n/**\n * MenuSplitGroup Props\n */\nexport type MenuSplitGroupProps = ComponentProps<MenuSplitGroupSlots>;\n\n/**\n * State used in rendering MenuSplitGroup\n */\nexport type MenuSplitGroupState = ComponentState<MenuSplitGroupSlots>;\n"],"mappings":"AAAA"}
@@ -1,6 +1,6 @@
1
- export * from './MenuSplitGroup';
2
- export * from './MenuSplitGroup.types';
3
- export * from './renderMenuSplitGroup';
4
- export * from './useMenuSplitGroup';
5
- export * from './useMenuSplitGroupStyles';
1
+ export * from "./MenuSplitGroup";
2
+ export * from "./MenuSplitGroup.types";
3
+ export * from "./renderMenuSplitGroup";
4
+ export * from "./useMenuSplitGroup";
5
+ export * from "./useMenuSplitGroupStyles";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuSplitGroup/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC","sourcesContent":["export * from './MenuSplitGroup';\nexport * from './MenuSplitGroup.types';\nexport * from './renderMenuSplitGroup';\nexport * from './useMenuSplitGroup';\nexport * from './useMenuSplitGroupStyles';\n"]}
1
+ {"version":3,"names":[],"sources":["../../../src/components/MenuSplitGroup/index.ts"],"sourcesContent":["export * from './MenuSplitGroup';\nexport * from './MenuSplitGroup.types';\nexport * from './renderMenuSplitGroup';\nexport * from './useMenuSplitGroup';\nexport * from './useMenuSplitGroupStyles';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc"}
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
- import { getSlots } from '@fluentui/react-utilities';
1
+ import * as React from "react";
2
+ import { getSlots } from "@fluentui/react-utilities";
3
3
  /**
4
4
  * Render the final JSX of MenuSplitGroup
5
5
  */
@@ -8,8 +8,6 @@ export const renderMenuSplitGroup_unstable = state => {
8
8
  slots,
9
9
  slotProps
10
10
  } = getSlots(state);
11
- return /*#__PURE__*/React.createElement(slots.root, {
12
- ...slotProps.root
13
- });
11
+ return /*#__PURE__*/React.createElement(slots.root, slotProps.root);
14
12
  };
15
13
  //# sourceMappingURL=renderMenuSplitGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","getSlots","renderMenuSplitGroup_unstable","state","slots","slotProps","createElement","root"],"sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuSplitGroup/renderMenuSplitGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { MenuSplitGroupState, MenuSplitGroupSlots } from './MenuSplitGroup.types';\n\n/**\n * Render the final JSX of MenuSplitGroup\n */\nexport const renderMenuSplitGroup_unstable = (state: MenuSplitGroupState) => {\n const { slots, slotProps } = getSlots<MenuSplitGroupSlots>(state);\n\n return <slots.root {...slotProps.root} />;\n};\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,2BAA2B;AAGpD;;;AAGA,OAAO,MAAMC,6BAA6B,GAAIC,KAA0B,IAAI;EAC1E,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAE,GAAGJ,QAAQ,CAAsBE,KAAK,CAAC;EAEjE,oBAAOH,KAAA,CAAAM,aAAA,CAACF,KAAK,CAACG,IAAI;IAAA,GAAKF,SAAS,CAACE;EAAI,EAAI;AAC3C,CAAC"}
1
+ {"version":3,"names":["React","getSlots","renderMenuSplitGroup_unstable","state","slots","slotProps","createElement","root"],"sources":["../../../src/components/MenuSplitGroup/renderMenuSplitGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { MenuSplitGroupState, MenuSplitGroupSlots } from './MenuSplitGroup.types';\n\n/**\n * Render the final JSX of MenuSplitGroup\n */\nexport const renderMenuSplitGroup_unstable = (state: MenuSplitGroupState) => {\n const { slots, slotProps } = getSlots<MenuSplitGroupSlots>(state);\n\n return <slots.root {...slotProps.root} />;\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,QAAQ,QAAQ;AAGzB;;;AAGA,OAAO,MAAMC,6BAAA,GAAiCC,KAAA,IAA+B;EAC3E,MAAM;IAAEC,KAAA;IAAOC;EAAS,CAAE,GAAGJ,QAAA,CAA8BE,KAAA;EAE3D,oBAAOH,KAAA,CAAAM,aAAA,CAACF,KAAA,CAAMG,IAAI,EAAKF,SAAA,CAAUE,IAAI;AACvC"}