@fluentui/react-menu 9.0.0-rc.1 → 9.0.0-rc.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (407) hide show
  1. package/CHANGELOG.json +623 -1
  2. package/CHANGELOG.md +291 -127
  3. package/dist/{react-menu.d.ts → index.d.ts} +130 -121
  4. package/{lib → dist}/tsdoc-metadata.json +0 -0
  5. package/lib/Menu.js.map +1 -1
  6. package/lib/MenuDivider.js.map +1 -1
  7. package/lib/MenuGroup.js.map +1 -1
  8. package/lib/MenuGroupHeader.js.map +1 -1
  9. package/lib/MenuItem.js.map +1 -1
  10. package/lib/MenuItemCheckbox.js.map +1 -1
  11. package/lib/MenuItemRadio.js.map +1 -1
  12. package/lib/MenuList.js.map +1 -1
  13. package/lib/MenuPopover.js.map +1 -1
  14. package/lib/MenuSplitGroup.js.map +1 -1
  15. package/lib/MenuTrigger.js.map +1 -1
  16. package/lib/components/Menu/Menu.js.map +1 -1
  17. package/lib/components/Menu/Menu.types.js.map +1 -1
  18. package/lib/components/Menu/index.js.map +1 -1
  19. package/lib/components/Menu/renderMenu.js.map +1 -1
  20. package/lib/components/Menu/useMenu.js +5 -5
  21. package/lib/components/Menu/useMenu.js.map +1 -1
  22. package/lib/components/Menu/useMenuContextValues.js +20 -20
  23. package/lib/components/Menu/useMenuContextValues.js.map +1 -1
  24. package/lib/components/MenuDivider/MenuDivider.js.map +1 -1
  25. package/lib/components/MenuDivider/MenuDivider.types.js.map +1 -1
  26. package/lib/components/MenuDivider/index.js.map +1 -1
  27. package/lib/components/MenuDivider/renderMenuDivider.js.map +1 -1
  28. package/lib/components/MenuDivider/useMenuDivider.js.map +1 -1
  29. package/lib/components/MenuDivider/useMenuDividerStyles.js +8 -5
  30. package/lib/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
  31. package/lib/components/MenuGroup/MenuGroup.js.map +1 -1
  32. package/lib/components/MenuGroup/MenuGroup.types.js.map +1 -1
  33. package/lib/components/MenuGroup/index.js.map +1 -1
  34. package/lib/components/MenuGroup/renderMenuGroup.js.map +1 -1
  35. package/lib/components/MenuGroup/useMenuGroup.js.map +1 -1
  36. package/lib/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
  37. package/lib/components/MenuGroup/useMenuGroupStyles.js +4 -2
  38. package/lib/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
  39. package/lib/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
  40. package/lib/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
  41. package/lib/components/MenuGroupHeader/index.js.map +1 -1
  42. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
  43. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  44. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +4 -2
  45. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
  46. package/lib/components/MenuItem/MenuItem.js.map +1 -1
  47. package/lib/components/MenuItem/MenuItem.types.js.map +1 -1
  48. package/lib/components/MenuItem/index.js.map +1 -1
  49. package/lib/components/MenuItem/renderMenuItem.js.map +1 -1
  50. package/lib/components/MenuItem/useCharacterSearch.js.map +1 -1
  51. package/lib/components/MenuItem/useMenuItem.js +4 -1
  52. package/lib/components/MenuItem/useMenuItem.js.map +1 -1
  53. package/lib/components/MenuItem/useMenuItemStyles.js +54 -20
  54. package/lib/components/MenuItem/useMenuItemStyles.js.map +1 -1
  55. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  56. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
  57. package/lib/components/MenuItemCheckbox/index.js.map +1 -1
  58. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  59. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  60. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +25 -2
  61. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
  62. package/lib/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
  63. package/lib/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
  64. package/lib/components/MenuItemRadio/index.js.map +1 -1
  65. package/lib/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  66. package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  67. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js +25 -2
  68. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
  69. package/lib/components/MenuList/MenuList.js.map +1 -1
  70. package/lib/components/MenuList/MenuList.types.js.map +1 -1
  71. package/lib/components/MenuList/index.js +1 -0
  72. package/lib/components/MenuList/index.js.map +1 -1
  73. package/lib/components/MenuList/renderMenuList.js.map +1 -1
  74. package/lib/components/MenuList/useMenuList.js +2 -2
  75. package/lib/components/MenuList/useMenuList.js.map +1 -1
  76. package/lib/components/MenuList/useMenuListContextValues.js +8 -8
  77. package/lib/components/MenuList/useMenuListContextValues.js.map +1 -1
  78. package/lib/components/MenuList/useMenuListStyles.js +4 -2
  79. package/lib/components/MenuList/useMenuListStyles.js.map +1 -1
  80. package/lib/components/MenuPopover/MenuPopover.js.map +1 -1
  81. package/lib/components/MenuPopover/MenuPopover.types.js.map +1 -1
  82. package/lib/components/MenuPopover/index.js.map +1 -1
  83. package/lib/components/MenuPopover/renderMenuPopover.js.map +1 -1
  84. package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
  85. package/lib/components/MenuPopover/useMenuPopoverStyles.js +4 -2
  86. package/lib/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
  87. package/lib/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  88. package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
  89. package/lib/components/MenuSplitGroup/index.js.map +1 -1
  90. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  91. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  92. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js +5 -3
  93. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
  94. package/lib/components/MenuTrigger/MenuTrigger.js.map +1 -1
  95. package/lib/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
  96. package/lib/components/MenuTrigger/index.js.map +1 -1
  97. package/lib/components/MenuTrigger/renderMenuTrigger.js +1 -1
  98. package/lib/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
  99. package/lib/components/MenuTrigger/useMenuTrigger.js +1 -0
  100. package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  101. package/lib/components/index.js.map +1 -1
  102. package/lib/contexts/menuContext.js.map +1 -1
  103. package/lib/contexts/menuGroupContext.js.map +1 -1
  104. package/lib/contexts/menuListContext.js.map +1 -1
  105. package/lib/contexts/menuTriggerContext.js +1 -1
  106. package/lib/contexts/menuTriggerContext.js.map +1 -1
  107. package/lib/index.js +16 -16
  108. package/lib/index.js.map +1 -1
  109. package/lib/selectable/index.js.map +1 -1
  110. package/lib/selectable/types.js.map +1 -1
  111. package/lib/selectable/useCheckmarkStyles.js.map +1 -1
  112. package/lib/utils/index.js.map +1 -1
  113. package/lib/utils/useIsSubmenu.js.map +1 -1
  114. package/lib/utils/useOnMenuEnter.js.map +1 -1
  115. package/lib-commonjs/Menu.js.map +1 -1
  116. package/lib-commonjs/MenuDivider.js.map +1 -1
  117. package/lib-commonjs/MenuGroup.js.map +1 -1
  118. package/lib-commonjs/MenuGroupHeader.js.map +1 -1
  119. package/lib-commonjs/MenuItem.js.map +1 -1
  120. package/lib-commonjs/MenuItemCheckbox.js.map +1 -1
  121. package/lib-commonjs/MenuItemRadio.js.map +1 -1
  122. package/lib-commonjs/MenuList.js.map +1 -1
  123. package/lib-commonjs/MenuPopover.js.map +1 -1
  124. package/lib-commonjs/MenuSplitGroup.js.map +1 -1
  125. package/lib-commonjs/MenuTrigger.js.map +1 -1
  126. package/lib-commonjs/components/Menu/Menu.js.map +1 -1
  127. package/lib-commonjs/components/Menu/Menu.types.js.map +1 -1
  128. package/lib-commonjs/components/Menu/index.js.map +1 -1
  129. package/lib-commonjs/components/Menu/renderMenu.js.map +1 -1
  130. package/lib-commonjs/components/Menu/useMenu.js +4 -4
  131. package/lib-commonjs/components/Menu/useMenu.js.map +1 -1
  132. package/lib-commonjs/components/Menu/useMenuContextValues.js +20 -20
  133. package/lib-commonjs/components/Menu/useMenuContextValues.js.map +1 -1
  134. package/lib-commonjs/components/MenuDivider/MenuDivider.js.map +1 -1
  135. package/lib-commonjs/components/MenuDivider/MenuDivider.types.js.map +1 -1
  136. package/lib-commonjs/components/MenuDivider/index.js.map +1 -1
  137. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -1
  138. package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -1
  139. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js +9 -6
  140. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
  141. package/lib-commonjs/components/MenuGroup/MenuGroup.js.map +1 -1
  142. package/lib-commonjs/components/MenuGroup/MenuGroup.types.js.map +1 -1
  143. package/lib-commonjs/components/MenuGroup/index.js.map +1 -1
  144. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -1
  145. package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -1
  146. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
  147. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js +5 -3
  148. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
  149. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
  150. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
  151. package/lib-commonjs/components/MenuGroupHeader/index.js.map +1 -1
  152. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
  153. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  154. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +5 -3
  155. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
  156. package/lib-commonjs/components/MenuItem/MenuItem.js.map +1 -1
  157. package/lib-commonjs/components/MenuItem/MenuItem.types.js.map +1 -1
  158. package/lib-commonjs/components/MenuItem/index.js.map +1 -1
  159. package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -1
  160. package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -1
  161. package/lib-commonjs/components/MenuItem/useMenuItem.js +4 -1
  162. package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
  163. package/lib-commonjs/components/MenuItem/useMenuItemStyles.js +56 -21
  164. package/lib-commonjs/components/MenuItem/useMenuItemStyles.js.map +1 -1
  165. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  166. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
  167. package/lib-commonjs/components/MenuItemCheckbox/index.js.map +1 -1
  168. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  169. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  170. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +26 -3
  171. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
  172. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
  173. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
  174. package/lib-commonjs/components/MenuItemRadio/index.js.map +1 -1
  175. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  176. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  177. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js +26 -3
  178. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
  179. package/lib-commonjs/components/MenuList/MenuList.js.map +1 -1
  180. package/lib-commonjs/components/MenuList/MenuList.types.js.map +1 -1
  181. package/lib-commonjs/components/MenuList/index.js +2 -0
  182. package/lib-commonjs/components/MenuList/index.js.map +1 -1
  183. package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -1
  184. package/lib-commonjs/components/MenuList/useMenuList.js +2 -2
  185. package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -1
  186. package/lib-commonjs/components/MenuList/useMenuListContextValues.js +8 -8
  187. package/lib-commonjs/components/MenuList/useMenuListContextValues.js.map +1 -1
  188. package/lib-commonjs/components/MenuList/useMenuListStyles.js +5 -3
  189. package/lib-commonjs/components/MenuList/useMenuListStyles.js.map +1 -1
  190. package/lib-commonjs/components/MenuPopover/MenuPopover.js.map +1 -1
  191. package/lib-commonjs/components/MenuPopover/MenuPopover.types.js.map +1 -1
  192. package/lib-commonjs/components/MenuPopover/index.js.map +1 -1
  193. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -1
  194. package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -1
  195. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js +5 -3
  196. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
  197. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  198. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
  199. package/lib-commonjs/components/MenuSplitGroup/index.js.map +1 -1
  200. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  201. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  202. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js +5 -3
  203. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
  204. package/lib-commonjs/components/MenuTrigger/MenuTrigger.js.map +1 -1
  205. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
  206. package/lib-commonjs/components/MenuTrigger/index.js.map +1 -1
  207. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js +1 -1
  208. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
  209. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +1 -0
  210. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  211. package/lib-commonjs/components/index.js.map +1 -1
  212. package/lib-commonjs/contexts/menuContext.js.map +1 -1
  213. package/lib-commonjs/contexts/menuGroupContext.js.map +1 -1
  214. package/lib-commonjs/contexts/menuListContext.js.map +1 -1
  215. package/lib-commonjs/contexts/menuTriggerContext.js +1 -1
  216. package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -1
  217. package/lib-commonjs/index.js +411 -17
  218. package/lib-commonjs/index.js.map +1 -1
  219. package/lib-commonjs/selectable/index.js.map +1 -1
  220. package/lib-commonjs/selectable/types.js.map +1 -1
  221. package/lib-commonjs/selectable/useCheckmarkStyles.js.map +1 -1
  222. package/lib-commonjs/utils/index.js.map +1 -1
  223. package/lib-commonjs/utils/useIsSubmenu.js.map +1 -1
  224. package/lib-commonjs/utils/useOnMenuEnter.js.map +1 -1
  225. package/package.json +23 -25
  226. package/lib/Menu.d.ts +0 -1
  227. package/lib/MenuDivider.d.ts +0 -1
  228. package/lib/MenuGroup.d.ts +0 -1
  229. package/lib/MenuGroupHeader.d.ts +0 -1
  230. package/lib/MenuItem.d.ts +0 -1
  231. package/lib/MenuItemCheckbox.d.ts +0 -1
  232. package/lib/MenuItemRadio.d.ts +0 -1
  233. package/lib/MenuList.d.ts +0 -1
  234. package/lib/MenuPopover.d.ts +0 -1
  235. package/lib/MenuSplitGroup.d.ts +0 -1
  236. package/lib/MenuTrigger.d.ts +0 -1
  237. package/lib/components/Menu/Menu.d.ts +0 -6
  238. package/lib/components/Menu/Menu.types.d.ts +0 -113
  239. package/lib/components/Menu/index.d.ts +0 -5
  240. package/lib/components/Menu/renderMenu.d.ts +0 -5
  241. package/lib/components/Menu/useMenu.d.ts +0 -10
  242. package/lib/components/Menu/useMenuContextValues.d.ts +0 -2
  243. package/lib/components/MenuDivider/MenuDivider.d.ts +0 -6
  244. package/lib/components/MenuDivider/MenuDivider.types.d.ts +0 -6
  245. package/lib/components/MenuDivider/index.d.ts +0 -5
  246. package/lib/components/MenuDivider/renderMenuDivider.d.ts +0 -6
  247. package/lib/components/MenuDivider/useMenuDivider.d.ts +0 -6
  248. package/lib/components/MenuDivider/useMenuDividerStyles.d.ts +0 -3
  249. package/lib/components/MenuGroup/MenuGroup.d.ts +0 -6
  250. package/lib/components/MenuGroup/MenuGroup.types.d.ts +0 -15
  251. package/lib/components/MenuGroup/index.d.ts +0 -6
  252. package/lib/components/MenuGroup/renderMenuGroup.d.ts +0 -6
  253. package/lib/components/MenuGroup/useMenuGroup.d.ts +0 -6
  254. package/lib/components/MenuGroup/useMenuGroupContextValues.d.ts +0 -2
  255. package/lib/components/MenuGroup/useMenuGroupStyles.d.ts +0 -3
  256. package/lib/components/MenuGroupHeader/MenuGroupHeader.d.ts +0 -6
  257. package/lib/components/MenuGroupHeader/MenuGroupHeader.types.d.ts +0 -6
  258. package/lib/components/MenuGroupHeader/index.d.ts +0 -5
  259. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.d.ts +0 -6
  260. package/lib/components/MenuGroupHeader/useMenuGroupHeader.d.ts +0 -6
  261. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.d.ts +0 -3
  262. package/lib/components/MenuItem/MenuItem.d.ts +0 -6
  263. package/lib/components/MenuItem/MenuItem.types.d.ts +0 -43
  264. package/lib/components/MenuItem/index.d.ts +0 -5
  265. package/lib/components/MenuItem/renderMenuItem.d.ts +0 -5
  266. package/lib/components/MenuItem/useCharacterSearch.d.ts +0 -3
  267. package/lib/components/MenuItem/useMenuItem.d.ts +0 -6
  268. package/lib/components/MenuItem/useMenuItemStyles.d.ts +0 -4
  269. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.d.ts +0 -6
  270. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +0 -4
  271. package/lib/components/MenuItemCheckbox/index.d.ts +0 -5
  272. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.d.ts +0 -3
  273. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.d.ts +0 -4
  274. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.d.ts +0 -3
  275. package/lib/components/MenuItemRadio/MenuItemRadio.d.ts +0 -6
  276. package/lib/components/MenuItemRadio/MenuItemRadio.types.d.ts +0 -4
  277. package/lib/components/MenuItemRadio/index.d.ts +0 -5
  278. package/lib/components/MenuItemRadio/renderMenuItemRadio.d.ts +0 -6
  279. package/lib/components/MenuItemRadio/useMenuItemRadio.d.ts +0 -6
  280. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.d.ts +0 -3
  281. package/lib/components/MenuList/MenuList.d.ts +0 -6
  282. package/lib/components/MenuList/MenuList.types.d.ts +0 -55
  283. package/lib/components/MenuList/index.d.ts +0 -6
  284. package/lib/components/MenuList/renderMenuList.d.ts +0 -5
  285. package/lib/components/MenuList/useMenuList.d.ts +0 -6
  286. package/lib/components/MenuList/useMenuListContextValues.d.ts +0 -2
  287. package/lib/components/MenuList/useMenuListStyles.d.ts +0 -6
  288. package/lib/components/MenuPopover/MenuPopover.d.ts +0 -6
  289. package/lib/components/MenuPopover/MenuPopover.types.d.ts +0 -18
  290. package/lib/components/MenuPopover/index.d.ts +0 -5
  291. package/lib/components/MenuPopover/renderMenuPopover.d.ts +0 -5
  292. package/lib/components/MenuPopover/useMenuPopover.d.ts +0 -12
  293. package/lib/components/MenuPopover/useMenuPopoverStyles.d.ts +0 -6
  294. package/lib/components/MenuSplitGroup/MenuSplitGroup.d.ts +0 -6
  295. package/lib/components/MenuSplitGroup/MenuSplitGroup.types.d.ts +0 -14
  296. package/lib/components/MenuSplitGroup/index.d.ts +0 -5
  297. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.d.ts +0 -5
  298. package/lib/components/MenuSplitGroup/useMenuSplitGroup.d.ts +0 -12
  299. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.d.ts +0 -6
  300. package/lib/components/MenuTrigger/MenuTrigger.d.ts +0 -8
  301. package/lib/components/MenuTrigger/MenuTrigger.types.d.ts +0 -19
  302. package/lib/components/MenuTrigger/index.d.ts +0 -4
  303. package/lib/components/MenuTrigger/renderMenuTrigger.d.ts +0 -7
  304. package/lib/components/MenuTrigger/useMenuTrigger.d.ts +0 -8
  305. package/lib/components/index.d.ts +0 -2
  306. package/lib/contexts/menuContext.d.ts +0 -16
  307. package/lib/contexts/menuGroupContext.d.ts +0 -13
  308. package/lib/contexts/menuListContext.d.ts +0 -15
  309. package/lib/contexts/menuTriggerContext.d.ts +0 -3
  310. package/lib/index.d.ts +0 -16
  311. package/lib/selectable/index.d.ts +0 -2
  312. package/lib/selectable/types.d.ts +0 -34
  313. package/lib/selectable/useCheckmarkStyles.d.ts +0 -8
  314. package/lib/utils/index.d.ts +0 -1
  315. package/lib/utils/useIsSubmenu.d.ts +0 -9
  316. package/lib/utils/useOnMenuEnter.d.ts +0 -23
  317. package/lib-commonjs/Menu.d.ts +0 -1
  318. package/lib-commonjs/MenuDivider.d.ts +0 -1
  319. package/lib-commonjs/MenuGroup.d.ts +0 -1
  320. package/lib-commonjs/MenuGroupHeader.d.ts +0 -1
  321. package/lib-commonjs/MenuItem.d.ts +0 -1
  322. package/lib-commonjs/MenuItemCheckbox.d.ts +0 -1
  323. package/lib-commonjs/MenuItemRadio.d.ts +0 -1
  324. package/lib-commonjs/MenuList.d.ts +0 -1
  325. package/lib-commonjs/MenuPopover.d.ts +0 -1
  326. package/lib-commonjs/MenuSplitGroup.d.ts +0 -1
  327. package/lib-commonjs/MenuTrigger.d.ts +0 -1
  328. package/lib-commonjs/components/Menu/Menu.d.ts +0 -6
  329. package/lib-commonjs/components/Menu/Menu.types.d.ts +0 -113
  330. package/lib-commonjs/components/Menu/index.d.ts +0 -5
  331. package/lib-commonjs/components/Menu/renderMenu.d.ts +0 -5
  332. package/lib-commonjs/components/Menu/useMenu.d.ts +0 -10
  333. package/lib-commonjs/components/Menu/useMenuContextValues.d.ts +0 -2
  334. package/lib-commonjs/components/MenuDivider/MenuDivider.d.ts +0 -6
  335. package/lib-commonjs/components/MenuDivider/MenuDivider.types.d.ts +0 -6
  336. package/lib-commonjs/components/MenuDivider/index.d.ts +0 -5
  337. package/lib-commonjs/components/MenuDivider/renderMenuDivider.d.ts +0 -6
  338. package/lib-commonjs/components/MenuDivider/useMenuDivider.d.ts +0 -6
  339. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.d.ts +0 -3
  340. package/lib-commonjs/components/MenuGroup/MenuGroup.d.ts +0 -6
  341. package/lib-commonjs/components/MenuGroup/MenuGroup.types.d.ts +0 -15
  342. package/lib-commonjs/components/MenuGroup/index.d.ts +0 -6
  343. package/lib-commonjs/components/MenuGroup/renderMenuGroup.d.ts +0 -6
  344. package/lib-commonjs/components/MenuGroup/useMenuGroup.d.ts +0 -6
  345. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.d.ts +0 -2
  346. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.d.ts +0 -3
  347. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.d.ts +0 -6
  348. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.d.ts +0 -6
  349. package/lib-commonjs/components/MenuGroupHeader/index.d.ts +0 -5
  350. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.d.ts +0 -6
  351. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.d.ts +0 -6
  352. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.d.ts +0 -3
  353. package/lib-commonjs/components/MenuItem/MenuItem.d.ts +0 -6
  354. package/lib-commonjs/components/MenuItem/MenuItem.types.d.ts +0 -43
  355. package/lib-commonjs/components/MenuItem/index.d.ts +0 -5
  356. package/lib-commonjs/components/MenuItem/renderMenuItem.d.ts +0 -5
  357. package/lib-commonjs/components/MenuItem/useCharacterSearch.d.ts +0 -3
  358. package/lib-commonjs/components/MenuItem/useMenuItem.d.ts +0 -6
  359. package/lib-commonjs/components/MenuItem/useMenuItemStyles.d.ts +0 -4
  360. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.d.ts +0 -6
  361. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +0 -4
  362. package/lib-commonjs/components/MenuItemCheckbox/index.d.ts +0 -5
  363. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.d.ts +0 -3
  364. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.d.ts +0 -4
  365. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.d.ts +0 -3
  366. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.d.ts +0 -6
  367. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.d.ts +0 -4
  368. package/lib-commonjs/components/MenuItemRadio/index.d.ts +0 -5
  369. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.d.ts +0 -6
  370. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.d.ts +0 -6
  371. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.d.ts +0 -3
  372. package/lib-commonjs/components/MenuList/MenuList.d.ts +0 -6
  373. package/lib-commonjs/components/MenuList/MenuList.types.d.ts +0 -55
  374. package/lib-commonjs/components/MenuList/index.d.ts +0 -6
  375. package/lib-commonjs/components/MenuList/renderMenuList.d.ts +0 -5
  376. package/lib-commonjs/components/MenuList/useMenuList.d.ts +0 -6
  377. package/lib-commonjs/components/MenuList/useMenuListContextValues.d.ts +0 -2
  378. package/lib-commonjs/components/MenuList/useMenuListStyles.d.ts +0 -6
  379. package/lib-commonjs/components/MenuPopover/MenuPopover.d.ts +0 -6
  380. package/lib-commonjs/components/MenuPopover/MenuPopover.types.d.ts +0 -18
  381. package/lib-commonjs/components/MenuPopover/index.d.ts +0 -5
  382. package/lib-commonjs/components/MenuPopover/renderMenuPopover.d.ts +0 -5
  383. package/lib-commonjs/components/MenuPopover/useMenuPopover.d.ts +0 -12
  384. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.d.ts +0 -6
  385. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.d.ts +0 -6
  386. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.d.ts +0 -14
  387. package/lib-commonjs/components/MenuSplitGroup/index.d.ts +0 -5
  388. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.d.ts +0 -5
  389. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.d.ts +0 -12
  390. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.d.ts +0 -6
  391. package/lib-commonjs/components/MenuTrigger/MenuTrigger.d.ts +0 -8
  392. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.d.ts +0 -19
  393. package/lib-commonjs/components/MenuTrigger/index.d.ts +0 -4
  394. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.d.ts +0 -7
  395. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.d.ts +0 -8
  396. package/lib-commonjs/components/index.d.ts +0 -2
  397. package/lib-commonjs/contexts/menuContext.d.ts +0 -16
  398. package/lib-commonjs/contexts/menuGroupContext.d.ts +0 -13
  399. package/lib-commonjs/contexts/menuListContext.d.ts +0 -15
  400. package/lib-commonjs/contexts/menuTriggerContext.d.ts +0 -3
  401. package/lib-commonjs/index.d.ts +0 -16
  402. package/lib-commonjs/selectable/index.d.ts +0 -2
  403. package/lib-commonjs/selectable/types.d.ts +0 -34
  404. package/lib-commonjs/selectable/useCheckmarkStyles.d.ts +0 -8
  405. package/lib-commonjs/utils/index.d.ts +0 -1
  406. package/lib-commonjs/utils/useIsSubmenu.d.ts +0 -9
  407. package/lib-commonjs/utils/useOnMenuEnter.d.ts +0 -23
@@ -1,13 +1,13 @@
1
- import { ComponentProps } from '@fluentui/react-utilities';
2
- import { ComponentState } from '@fluentui/react-utilities';
3
- import type { Context } from '@fluentui/react-context-selector';
1
+ import type { ComponentProps } from '@fluentui/react-utilities';
2
+ import type { ComponentState } from '@fluentui/react-utilities';
4
3
  import type { ContextSelector } from '@fluentui/react-context-selector';
5
4
  import type { FluentTriggerComponent } from '@fluentui/react-utilities';
6
5
  import type { ForwardRefComponent } from '@fluentui/react-utilities';
7
- import { PositioningShorthand } from '@fluentui/react-positioning';
6
+ import type { PositioningShorthand } from '@fluentui/react-positioning';
8
7
  import * as React_2 from 'react';
9
8
  import type { Slot } from '@fluentui/react-utilities';
10
- import { usePopperMouseTarget } from '@fluentui/react-positioning';
9
+ import type { SlotClassNames } from '@fluentui/react-utilities';
10
+ import { usePositioningMouseTarget } from '@fluentui/react-positioning';
11
11
 
12
12
  /**
13
13
  * Wrapper component that manages state for a popup MenuList and a MenuTrigger
@@ -15,50 +15,14 @@ import { usePopperMouseTarget } from '@fluentui/react-positioning';
15
15
  export declare const Menu: React_2.FC<MenuProps>;
16
16
 
17
17
  export declare type MenuCheckedValueChangeData = {
18
- /** The name of the value */
19
- name: string;
20
18
  /** The items for this value that are checked */
21
19
  checkedItems: string[];
20
+ /** The name of the value */
21
+ name: string;
22
22
  };
23
23
 
24
24
  export declare type MenuCheckedValueChangeEvent = React_2.MouseEvent | React_2.KeyboardEvent;
25
25
 
26
- declare type MenuCommons = MenuListCommons & {
27
- /**
28
- * Whether the popup is open
29
- */
30
- open: boolean;
31
- /**
32
- * Call back when the component requests to change value
33
- * The `open` value is used as a hint when directly controlling the component
34
- */
35
- onOpenChange?: (e: MenuOpenEvents, data: MenuOpenChangeData) => void;
36
- /**
37
- * Whether the popup is open by default
38
- */
39
- defaultOpen?: boolean;
40
- openOnHover: boolean;
41
- /**
42
- * Opens the menu on right click (context menu), removes all other menu open interactions
43
- */
44
- openOnContext?: boolean;
45
- /**
46
- * Root menus are rendered out of DOM order on `document.body`, use this to render the menu in DOM order
47
- * This option is disregarded for submenus
48
- */
49
- inline?: boolean;
50
- /**
51
- * Do not dismiss the menu when a menu item is clicked
52
- */
53
- persistOnItemClick?: boolean;
54
- /**
55
- * Sets the delay for mouse open/close for the popover one mouse enter/leave
56
- */
57
- hoverDelay?: number;
58
- };
59
-
60
- export declare const MenuContext: Context<MenuContextValue>;
61
-
62
26
  /**
63
27
  * Context shared between Menu and its children components
64
28
  *
@@ -78,7 +42,7 @@ export declare type MenuContextValues = {
78
42
  */
79
43
  export declare const MenuDivider: ForwardRefComponent<MenuDividerProps>;
80
44
 
81
- export declare const menuDividerClassName = "fui-MenuDivider";
45
+ export declare const menuDividerClassNames: SlotClassNames<MenuDividerSlots>;
82
46
 
83
47
  export declare type MenuDividerProps = ComponentProps<MenuDividerSlots>;
84
48
 
@@ -93,7 +57,7 @@ export declare type MenuDividerState = ComponentState<MenuDividerSlots>;
93
57
  */
94
58
  export declare const MenuGroup: ForwardRefComponent<MenuGroupProps>;
95
59
 
96
- export declare const menuGroupClassName = "fui-MenuGroup";
60
+ export declare const menuGroupClassNames: SlotClassNames<MenuGroupSlots>;
97
61
 
98
62
  export declare const MenuGroupContextProvider: React_2.Provider<MenuGroupContextValue>;
99
63
 
@@ -117,7 +81,7 @@ export declare type MenuGroupContextValues = {
117
81
  */
118
82
  export declare const MenuGroupHeader: ForwardRefComponent<MenuGroupHeaderProps>;
119
83
 
120
- export declare const menuGroupHeaderClassName = "fui-MenuGroupHeader";
84
+ export declare const menuGroupHeaderClassNames: SlotClassNames<MenuGroupHeaderSlots>;
121
85
 
122
86
  export declare type MenuGroupHeaderProps = ComponentProps<MenuGroupHeaderSlots>;
123
87
 
@@ -150,37 +114,41 @@ export declare const MenuItem: ForwardRefComponent<MenuItemProps>;
150
114
  */
151
115
  export declare const MenuItemCheckbox: ForwardRefComponent<MenuItemCheckboxProps>;
152
116
 
153
- export declare const menuItemCheckboxClassName = "fui-MenuItemCheckbox";
117
+ export declare const menuItemCheckboxClassNames: SlotClassNames<Omit<MenuItemSlots, 'submenuIndicator'>>;
154
118
 
155
119
  export declare type MenuItemCheckboxProps = MenuItemProps & MenuItemSelectableProps;
156
120
 
157
121
  export declare type MenuItemCheckboxState = MenuItemState & MenuItemSelectableState;
158
122
 
159
- export declare const menuItemClassName = "fui-MenuItem";
123
+ export declare const menuItemClassNames: SlotClassNames<MenuItemSlots>;
160
124
 
161
- declare type MenuItemCommons = {
162
- /**
163
- * If the menu item is a trigger for a submenu
164
- */
165
- hasSubmenu?: boolean;
125
+ export declare type MenuItemProps = ComponentProps<Partial<MenuItemSlots>> & {
166
126
  /**
167
127
  * Applies disabled styles to menu item but remains focusable
128
+ *
129
+ * @default false
168
130
  */
169
131
  disabled?: boolean;
132
+ /**
133
+ * If the menu item is a trigger for a submenu
134
+ *
135
+ * @default false
136
+ */
137
+ hasSubmenu?: boolean;
170
138
  /**
171
139
  * Clicking on the menu item will not dismiss an open menu
140
+ *
141
+ * @default false
172
142
  */
173
143
  persistOnClick?: boolean;
174
144
  };
175
145
 
176
- export declare type MenuItemProps = ComponentProps<Partial<MenuItemSlots>> & MenuItemCommons;
177
-
178
146
  /**
179
147
  * Define a styled MenuItemRadio, using the `useMenuItemRadio_unstable` hook.
180
148
  */
181
149
  export declare const MenuItemRadio: ForwardRefComponent<MenuItemRadioProps>;
182
150
 
183
- export declare const menuItemRadioClassName = "fui-MenuItemRadio";
151
+ export declare const menuItemRadioClassNames: SlotClassNames<Omit<MenuItemSlots, 'submenuIndicator'>>;
184
152
 
185
153
  export declare type MenuItemRadioProps = MenuItemProps & MenuItemSelectableProps;
186
154
 
@@ -246,102 +214,98 @@ export declare type MenuItemSlots = {
246
214
  secondaryContent?: Slot<'span'>;
247
215
  };
248
216
 
249
- export declare type MenuItemState = ComponentState<MenuItemSlots> & MenuItemCommons;
217
+ export declare type MenuItemState = ComponentState<MenuItemSlots> & Pick<MenuItemProps, 'disabled' | 'hasSubmenu' | 'persistOnClick'>;
250
218
 
251
219
  /**
252
220
  * Define a styled MenuList, using the `useMenuList_unstable` hook.
253
221
  */
254
222
  export declare const MenuList: ForwardRefComponent<MenuListProps>;
255
223
 
256
- export declare const menuListClassName = "fui-MenuList";
224
+ export declare const menuListClassNames: SlotClassNames<MenuListSlots>;
257
225
 
258
- declare type MenuListCommons = {
259
- /**
260
- * Callback when checked items change for value with a name
261
- *
262
- * @param event - React's original SyntheticEvent
263
- * @param data - A data object with relevant information
264
- */
265
- onCheckedValueChange?: (e: MenuCheckedValueChangeEvent, data: MenuCheckedValueChangeData) => void;
226
+ /**
227
+ * Context shared between MenuList and its children components
228
+ */
229
+ export declare type MenuListContextValue = Pick<MenuListProps, 'checkedValues' | 'onCheckedValueChange' | 'hasIcons' | 'hasCheckmarks'> & {
230
+ setFocusByFirstCharacter?: (e: React_2.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => void;
231
+ toggleCheckbox?: SelectableHandler;
232
+ selectRadio?: SelectableHandler;
233
+ };
234
+
235
+ export declare type MenuListContextValues = {
236
+ menuList: MenuListContextValue;
237
+ };
238
+
239
+ export declare type MenuListProps = ComponentProps<MenuListSlots> & {
266
240
  /**
267
241
  * Map of all checked values
268
242
  */
269
- checkedValues: Record<string, string[]>;
243
+ checkedValues?: Record<string, string[]>;
270
244
  /**
271
245
  * Default values to be checked on mount
272
246
  */
273
247
  defaultCheckedValues?: Record<string, string[]>;
248
+ /**
249
+ * States that menu items can contain selectable items and reserve slots for item alignment
250
+ */
251
+ hasCheckmarks?: boolean;
274
252
  /**
275
253
  * States that menu items can contain icons and reserve slots for item alignment
276
254
  */
277
255
  hasIcons?: boolean;
278
256
  /**
279
- * States that menu items can contain selectable items and reserve slots for item alignment
257
+ * Callback when checked items change for value with a name
258
+ *
259
+ * @param event - React's original SyntheticEvent
260
+ * @param data - A data object with relevant information
280
261
  */
281
- hasCheckmarks?: boolean;
282
- };
283
-
284
- export declare const MenuListContext: Context<MenuListContextValue>;
285
-
286
- /**
287
- * Context shared between MenuList and its children components
288
- */
289
- export declare type MenuListContextValue = Pick<MenuListProps, 'checkedValues' | 'onCheckedValueChange' | 'hasIcons' | 'hasCheckmarks'> & {
290
- setFocusByFirstCharacter?: (e: React_2.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => void;
291
- toggleCheckbox?: SelectableHandler;
292
- selectRadio?: SelectableHandler;
293
- };
294
-
295
- export declare type MenuListContextValues = {
296
- menuList: MenuListContextValue;
262
+ onCheckedValueChange?: (e: MenuCheckedValueChangeEvent, data: MenuCheckedValueChangeData) => void;
297
263
  };
298
264
 
299
- export declare type MenuListProps = ComponentProps<MenuListSlots> & Partial<MenuListCommons>;
300
-
301
265
  export declare const MenuListProvider: React_2.Provider<MenuListContextValue> & React_2.FC<React_2.ProviderProps<MenuListContextValue>>;
302
266
 
303
267
  export declare type MenuListSlots = {
304
268
  root: Slot<'div'>;
305
269
  };
306
270
 
307
- export declare type MenuListState = ComponentState<MenuListSlots> & MenuListCommons & {
271
+ export declare type MenuListState = ComponentState<MenuListSlots> & Pick<MenuListProps, 'defaultCheckedValues' | 'onCheckedValueChange'> & Required<Pick<MenuListProps, 'checkedValues' | 'hasCheckmarks' | 'hasIcons'>> & {
272
+ /**
273
+ * Selects a radio item, will de-select the currently selected ratio item
274
+ */
275
+ selectRadio: SelectableHandler;
308
276
  /**
309
277
  * Callback to set focus on the next menu item by first character
310
278
  */
311
279
  setFocusByFirstCharacter: NonNullable<MenuListContextValue['setFocusByFirstCharacter']>;
312
280
  toggleCheckbox: SelectableHandler;
313
- /**
314
- * Selects a radio item, will de-select the currently selected ratio item
315
- */
316
- selectRadio: SelectableHandler;
317
281
  };
318
282
 
319
283
  /**
320
284
  * Data attached to open/close events
321
285
  */
322
286
  export declare type MenuOpenChangeData = {
323
- open: boolean;
324
- /**
325
- * Indicates whether the change of state was a keyboard interaction
326
- */
327
- keyboard?: boolean;
328
287
  /**
329
288
  * indicates whether the request for the open state was bubbled from a nested menu
330
289
  */
331
290
  bubble?: boolean;
291
+ /**
292
+ * Indicates whether the change of state was a keyboard interaction
293
+ */
294
+ keyboard?: boolean;
295
+ open: boolean;
332
296
  };
333
297
 
334
298
  /**
335
299
  * The supported events that will trigger open/close of the menu
336
300
  */
337
- export declare type MenuOpenEvents = MouseEvent | TouchEvent | React_2.MouseEvent<HTMLElement> | React_2.KeyboardEvent<HTMLElement> | React_2.FocusEvent<HTMLElement>;
301
+ export declare type MenuOpenEvents = MouseEvent | TouchEvent | React_2.FocusEvent<HTMLElement> | React_2.KeyboardEvent<HTMLElement> | React_2.MouseEvent<HTMLElement>;
338
302
 
339
303
  /**
340
304
  * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus
341
305
  */
342
306
  export declare const MenuPopover: ForwardRefComponent<MenuPopoverProps>;
343
307
 
344
- export declare const menuPopoverClassName = "fui-MenuPopover";
308
+ export declare const menuPopoverClassNames: SlotClassNames<MenuPopoverSlots>;
345
309
 
346
310
  /**
347
311
  * MenuPopover Props
@@ -366,12 +330,58 @@ export declare type MenuPopoverState = ComponentState<MenuPopoverSlots> & {
366
330
  /**
367
331
  * Extends and drills down Menulist props to simplify API
368
332
  */
369
- export declare type MenuProps = Partial<MenuCommons> & ComponentProps<MenuSlots> & {
333
+ export declare type MenuProps = ComponentProps<MenuSlots> & Pick<MenuListProps, 'checkedValues' | 'defaultCheckedValues' | 'hasCheckmarks' | 'hasIcons' | 'onCheckedValueChange'> & {
370
334
  /**
371
335
  * Can contain two children including {@link MenuTrigger} and {@link MenuPopover}.
372
336
  * Alternatively can only contain {@link MenuPopover} if using a custom `target`.
373
337
  */
374
338
  children: [JSX.Element, JSX.Element] | JSX.Element;
339
+ /**
340
+ * Whether the popup is open by default
341
+ *
342
+ * @default false
343
+ */
344
+ defaultOpen?: boolean;
345
+ /**
346
+ * Sets the delay for mouse open/close for the popover one mouse enter/leave
347
+ */
348
+ hoverDelay?: number;
349
+ /**
350
+ * Root menus are rendered out of DOM order on `document.body`, use this to render the menu in DOM order
351
+ * This option is disregarded for submenus
352
+ *
353
+ * @default false
354
+ */
355
+ inline?: boolean;
356
+ /**
357
+ * Call back when the component requests to change value
358
+ * The `open` value is used as a hint when directly controlling the component
359
+ */
360
+ onOpenChange?: (e: MenuOpenEvents, data: MenuOpenChangeData) => void;
361
+ /**
362
+ * Whether the popup is open
363
+ *
364
+ * @default false
365
+ */
366
+ open?: boolean;
367
+ /**
368
+ * Opens the menu on right click (context menu), removes all other menu open interactions
369
+ *
370
+ * @default false
371
+ */
372
+ openOnContext?: boolean;
373
+ /**
374
+ * Opens the menu on hover
375
+ *
376
+ * @default false
377
+ */
378
+ openOnHover?: boolean;
379
+ /**
380
+ * Do not dismiss the menu when a menu item is clicked
381
+ *
382
+ * @default false
383
+ */
384
+ persistOnItemClick?: boolean;
375
385
  /**
376
386
  * Configures the positioned menu
377
387
  */
@@ -387,14 +397,12 @@ export declare type MenuSlots = {};
387
397
  */
388
398
  export declare const MenuSplitGroup: ForwardRefComponent<MenuSplitGroupProps>;
389
399
 
390
- export declare const menuSplitGroupClassName = "fui-MenuSplitGroup";
391
-
392
- declare type MenuSplitGroupCommons = {};
400
+ export declare const menuSplitGroupClassNames: SlotClassNames<MenuSplitGroupSlots>;
393
401
 
394
402
  /**
395
403
  * MenuSplitGroup Props
396
404
  */
397
- export declare type MenuSplitGroupProps = ComponentProps<MenuSplitGroupSlots> & MenuSplitGroupCommons;
405
+ export declare type MenuSplitGroupProps = ComponentProps<MenuSplitGroupSlots>;
398
406
 
399
407
  export declare type MenuSplitGroupSlots = {
400
408
  root: Slot<'div'>;
@@ -403,45 +411,45 @@ export declare type MenuSplitGroupSlots = {
403
411
  /**
404
412
  * State used in rendering MenuSplitGroup
405
413
  */
406
- export declare type MenuSplitGroupState = ComponentState<MenuSplitGroupSlots> & MenuSplitGroupCommons;
414
+ export declare type MenuSplitGroupState = ComponentState<MenuSplitGroupSlots>;
407
415
 
408
- export declare type MenuState = MenuCommons & ComponentState<MenuSlots> & {
416
+ export declare type MenuState = ComponentState<MenuSlots> & Pick<MenuProps, 'defaultCheckedValues' | 'hasCheckmarks' | 'hasIcons' | 'inline' | 'onOpenChange' | 'openOnContext' | 'persistOnItemClick'> & Required<Pick<MenuProps, 'checkedValues' | 'onCheckedValueChange' | 'open' | 'openOnHover'>> & {
409
417
  /**
410
- * Callback to open/close the popup
418
+ * Anchors the popper to the mouse click for context events
411
419
  */
412
- setOpen: (e: MenuOpenEvents, data: MenuOpenChangeData) => void;
420
+ contextTarget: ReturnType<typeof usePositioningMouseTarget>[0];
413
421
  /**
414
- * Internal react node that just simplifies handling children
422
+ * Whether this menu is a submenu
415
423
  */
416
- menuPopover: React_2.ReactNode;
424
+ isSubmenu: boolean;
417
425
  /**
418
426
  * Internal react node that just simplifies handling children
419
427
  */
420
- menuTrigger: React_2.ReactNode;
428
+ menuPopover: React_2.ReactNode;
421
429
  /**
422
430
  * The ref for the popup
423
431
  */
424
432
  menuPopoverRef: React_2.MutableRefObject<HTMLElement>;
425
433
  /**
426
- * The ref for the MenuTrigger, used for popup positioning
434
+ * Internal react node that just simplifies handling children
427
435
  */
428
- triggerRef: React_2.MutableRefObject<HTMLElement>;
436
+ menuTrigger: React_2.ReactNode;
429
437
  /**
430
- * Id for the MenuTrigger element for aria relationship
438
+ * A callback to set the target of the popper to the mouse click for context events
431
439
  */
432
- triggerId: string;
440
+ setContextTarget: ReturnType<typeof usePositioningMouseTarget>[1];
433
441
  /**
434
- * Whether this menu is a submenu
442
+ * Callback to open/close the popup
435
443
  */
436
- isSubmenu: boolean;
444
+ setOpen: (e: MenuOpenEvents, data: MenuOpenChangeData) => void;
437
445
  /**
438
- * Anchors the popper to the mouse click for context events
446
+ * Id for the MenuTrigger element for aria relationship
439
447
  */
440
- contextTarget: ReturnType<typeof usePopperMouseTarget>[0];
448
+ triggerId: string;
441
449
  /**
442
- * A callback to set the target of the popper to the mouse click for context events
450
+ * The ref for the MenuTrigger, used for popup positioning
443
451
  */
444
- setContextTarget: ReturnType<typeof usePopperMouseTarget>[1];
452
+ triggerRef: React_2.MutableRefObject<HTMLElement>;
445
453
  };
446
454
 
447
455
  /**
@@ -471,6 +479,7 @@ export declare type MenuTriggerProps = {
471
479
 
472
480
  export declare type MenuTriggerState = {
473
481
  children: React_2.ReactElement | null;
482
+ isSubmenu: boolean;
474
483
  };
475
484
 
476
485
  /**
@@ -534,7 +543,7 @@ export declare const renderMenuTrigger_unstable: (state: MenuTriggerState) => JS
534
543
 
535
544
  export declare type SelectableHandler = (e: React_2.MouseEvent | React_2.KeyboardEvent, name: string, value: string, checked: boolean) => void;
536
545
 
537
- export declare type UninitializedMenuListState = Omit<MenuListState, 'setFocusByFirstCharacter' | 'toggleCheckbox' | 'selectRadio' | 'checkedValues'> & Partial<Pick<MenuListState, 'checkedValues'>>;
546
+ export declare type UninitializedMenuListState = Omit<MenuListState, 'checkedValues' | 'selectRadio' | 'setFocusByFirstCharacter' | 'toggleCheckbox'> & Partial<Pick<MenuListState, 'checkedValues'>>;
538
547
 
539
548
  /**
540
549
  * Applies styles to a checkmark slot for selectable menu items
File without changes
package/lib/Menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../src/Menu.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"../src/","sources":["Menu.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './components/Menu/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuDivider.js","sourceRoot":"","sources":["../src/MenuDivider.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"MenuDivider.js","sourceRoot":"../src/","sources":["MenuDivider.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC","sourcesContent":["export * from './components/MenuDivider/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.js","sourceRoot":"","sources":["../src/MenuGroup.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"MenuGroup.js","sourceRoot":"../src/","sources":["MenuGroup.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC","sourcesContent":["export * from './components/MenuGroup/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroupHeader.js","sourceRoot":"","sources":["../src/MenuGroupHeader.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"MenuGroupHeader.js","sourceRoot":"../src/","sources":["MenuGroupHeader.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC","sourcesContent":["export * from './components/MenuGroupHeader/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sourceRoot":"","sources":["../src/MenuItem.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"MenuItem.js","sourceRoot":"../src/","sources":["MenuItem.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC","sourcesContent":["export * from './components/MenuItem/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../src/MenuItemCheckbox.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
1
+ {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"../src/","sources":["MenuItemCheckbox.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC","sourcesContent":["export * from './components/MenuItemCheckbox/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemRadio.js","sourceRoot":"","sources":["../src/MenuItemRadio.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"MenuItemRadio.js","sourceRoot":"../src/","sources":["MenuItemRadio.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC","sourcesContent":["export * from './components/MenuItemRadio/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../src/MenuList.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"MenuList.js","sourceRoot":"../src/","sources":["MenuList.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC","sourcesContent":["export * from './components/MenuList/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.js","sourceRoot":"","sources":["../src/MenuPopover.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"MenuPopover.js","sourceRoot":"../src/","sources":["MenuPopover.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC","sourcesContent":["export * from './components/MenuPopover/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSplitGroup.js","sourceRoot":"","sources":["../src/MenuSplitGroup.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"MenuSplitGroup.js","sourceRoot":"../src/","sources":["MenuSplitGroup.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC","sourcesContent":["export * from './components/MenuSplitGroup/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../src/MenuTrigger.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"MenuTrigger.js","sourceRoot":"../src/","sources":["MenuTrigger.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC","sourcesContent":["export * from './components/MenuTrigger/index';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Menu/Menu.tsx"],"names":[],"mappings":"AACA,SAAS,gBAAT,QAAiC,WAAjC;AACA,SAAS,6BAAT,QAA8C,wBAA9C;AACA,SAAS,mBAAT,QAAoC,cAApC;AAGA;;AAEG;;AACH,OAAO,MAAM,IAAI,GAAwB,KAAK,IAAG;AAC/C,QAAM,KAAK,GAAG,gBAAgB,CAAC,KAAD,CAA9B;AACA,QAAM,aAAa,GAAG,6BAA6B,CAAC,KAAD,CAAnD;AAEA,SAAO,mBAAmB,CAAC,KAAD,EAAQ,aAAR,CAA1B;AACD,CALM;AAOP,IAAI,CAAC,WAAL,GAAmB,MAAnB","sourceRoot":""}
1
+ {"version":3,"sources":["components/Menu/Menu.tsx"],"names":[],"mappings":"AACA,SAAS,gBAAT,QAAiC,WAAjC;AACA,SAAS,6BAAT,QAA8C,wBAA9C;AACA,SAAS,mBAAT,QAAoC,cAApC;AAGA;;AAEG;;AACH,OAAO,MAAM,IAAI,GAAwB,KAAK,IAAG;AAC/C,QAAM,KAAK,GAAG,gBAAgB,CAAC,KAAD,CAA9B;AACA,QAAM,aAAa,GAAG,6BAA6B,CAAC,KAAD,CAAnD;AAEA,SAAO,mBAAmB,CAAC,KAAD,EAAQ,aAAR,CAA1B;AACD,CALM;AAOP,IAAI,CAAC,WAAL,GAAmB,MAAnB","sourcesContent":["import * as React from 'react';\nimport { useMenu_unstable } from './useMenu';\nimport { useMenuContextValues_unstable } from './useMenuContextValues';\nimport { renderMenu_unstable } from './renderMenu';\nimport type { MenuProps } from './Menu.types';\n\n/**\n * Wrapper component that manages state for a popup MenuList and a MenuTrigger\n */\nexport const Menu: React.FC<MenuProps> = props => {\n const state = useMenu_unstable(props);\n const contextValues = useMenuContextValues_unstable(state);\n\n return renderMenu_unstable(state, contextValues);\n};\n\nMenu.displayName = 'Menu';\n"],"sourceRoot":"../src/"}
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.types.js","sourceRoot":"","sources":["../../../src/components/Menu/Menu.types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Menu.types.js","sourceRoot":"../src/","sources":["components/Menu/Menu.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport { usePositioningMouseTarget } from '@fluentui/react-positioning';\nimport type { PositioningShorthand } from '@fluentui/react-positioning';\nimport type { ComponentProps, ComponentState } from '@fluentui/react-utilities';\nimport type { MenuContextValue } from '../../contexts/menuContext';\nimport type { MenuListProps } from '../MenuList/MenuList.types';\n\nexport type MenuSlots = {};\n\n/**\n * Extends and drills down Menulist props to simplify API\n */\nexport type MenuProps = ComponentProps<MenuSlots> &\n Pick<\n MenuListProps,\n 'checkedValues' | 'defaultCheckedValues' | 'hasCheckmarks' | 'hasIcons' | 'onCheckedValueChange'\n > & {\n /**\n * Can contain two children including {@link MenuTrigger} and {@link MenuPopover}.\n * Alternatively can only contain {@link MenuPopover} if using a custom `target`.\n */\n children: [JSX.Element, JSX.Element] | JSX.Element;\n\n /**\n * Whether the popup is open by default\n *\n * @default false\n */\n defaultOpen?: boolean;\n\n /**\n * Sets the delay for mouse open/close for the popover one mouse enter/leave\n */\n hoverDelay?: number;\n\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 * @default false\n */\n inline?: boolean;\n\n /**\n * Call back when the component requests to change value\n * The `open` value is used as a hint when directly controlling the component\n */\n onOpenChange?: (e: MenuOpenEvents, data: MenuOpenChangeData) => void;\n\n /**\n * Whether the popup is open\n *\n * @default false\n */\n open?: boolean;\n\n /**\n * Opens the menu on right click (context menu), removes all other menu open interactions\n *\n * @default false\n */\n openOnContext?: boolean;\n\n /**\n * Opens the menu on hover\n *\n * @default false\n */\n openOnHover?: boolean;\n\n /**\n * Do not dismiss the menu when a menu item is clicked\n *\n * @default false\n */\n persistOnItemClick?: boolean;\n\n /**\n * Configures the positioned menu\n */\n positioning?: PositioningShorthand;\n };\n\nexport type MenuState = ComponentState<MenuSlots> &\n Pick<\n MenuProps,\n | 'defaultCheckedValues'\n | 'hasCheckmarks'\n | 'hasIcons'\n | 'inline'\n | 'onOpenChange'\n | 'openOnContext'\n | 'persistOnItemClick'\n > &\n Required<Pick<MenuProps, 'checkedValues' | 'onCheckedValueChange' | 'open' | 'openOnHover'>> & {\n /**\n * Anchors the popper to the mouse click for context events\n */\n contextTarget: ReturnType<typeof usePositioningMouseTarget>[0];\n\n /**\n * Whether this menu is a submenu\n */\n isSubmenu: boolean;\n\n /**\n * Internal react node that just simplifies handling children\n */\n menuPopover: React.ReactNode;\n\n /**\n * The ref for the popup\n */\n menuPopoverRef: React.MutableRefObject<HTMLElement>;\n\n /**\n * Internal react node that just simplifies handling children\n */\n menuTrigger: React.ReactNode;\n\n /**\n * A callback to set the target of the popper to the mouse click for context events\n */\n setContextTarget: ReturnType<typeof usePositioningMouseTarget>[1];\n\n /**\n * Callback to open/close the popup\n */\n setOpen: (e: MenuOpenEvents, data: MenuOpenChangeData) => void;\n\n /**\n * Id for the MenuTrigger element for aria relationship\n */\n triggerId: string;\n\n /**\n * The ref for the MenuTrigger, used for popup positioning\n */\n triggerRef: React.MutableRefObject<HTMLElement>;\n };\n\n/**\n * Data attached to open/close events\n */\nexport type MenuOpenChangeData = {\n /**\n * indicates whether the request for the open state was bubbled from a nested menu\n */\n bubble?: boolean;\n /**\n * Indicates whether the change of state was a keyboard interaction\n */\n keyboard?: boolean;\n open: boolean;\n};\n\nexport type MenuContextValues = {\n menu: MenuContextValue;\n};\n\n/**\n * The supported events that will trigger open/close of the menu\n */\nexport type MenuOpenEvents =\n | MouseEvent\n | TouchEvent\n | React.FocusEvent<HTMLElement>\n | React.KeyboardEvent<HTMLElement>\n | React.MouseEvent<HTMLElement>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Menu/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/Menu/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './Menu';\nexport * from './Menu.types';\nexport * from './renderMenu';\nexport * from './useMenu';\nexport * from './useMenuContextValues';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Menu/renderMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,YAAT,QAA6B,4BAA7B;AAGA;;AAEG;;AACH,OAAO,MAAM,mBAAmB,GAAG,CAAC,KAAD,EAAmB,aAAnB,KAAuD;AACxF,sBACE,KAAA,CAAA,aAAA,CAAC,YAAD,EAAa;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAb,EACG,KAAK,CAAC,WADT,EAEG,KAAK,CAAC,IAAN,IAAc,KAAK,CAAC,WAFvB,CADF;AAMD,CAPM","sourceRoot":""}
1
+ {"version":3,"sources":["components/Menu/renderMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,YAAT,QAA6B,4BAA7B;AAGA;;AAEG;;AACH,OAAO,MAAM,mBAAmB,GAAG,CAAC,KAAD,EAAmB,aAAnB,KAAuD;AACxF,sBACE,KAAA,CAAA,aAAA,CAAC,YAAD,EAAa;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAb,EACG,KAAK,CAAC,WADT,EAEG,KAAK,CAAC,IAAN,IAAc,KAAK,CAAC,WAFvB,CADF;AAMD,CAPM","sourcesContent":["import * as React from 'react';\nimport { MenuProvider } from '../../contexts/menuContext';\nimport type { MenuContextValues, MenuState } from './Menu.types';\n\n/**\n * Render the final JSX of Menu\n */\nexport const renderMenu_unstable = (state: MenuState, contextValues: MenuContextValues) => {\n return (\n <MenuProvider value={contextValues.menu}>\n {state.menuTrigger}\n {state.open && state.menuPopover}\n </MenuProvider>\n );\n};\n"],"sourceRoot":"../src/"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { usePopperMouseTarget, usePopper, resolvePositioningShorthand } from '@fluentui/react-positioning';
2
+ import { usePositioningMouseTarget, usePositioning, resolvePositioningShorthand } from '@fluentui/react-positioning';
3
3
  import { useControllableState, useId, useOnClickOutside, useEventCallback } from '@fluentui/react-utilities';
4
4
  import { useFluent } from '@fluentui/react-shared-contexts';
5
5
  import { elementContains } from '@fluentui/react-portal';
@@ -19,8 +19,8 @@ import { useIsSubmenu } from '../../utils/useIsSubmenu';
19
19
  export const useMenu_unstable = props => {
20
20
  const triggerId = useId('menu');
21
21
  const isSubmenu = useIsSubmenu();
22
- const [contextTarget, setContextTarget] = usePopperMouseTarget();
23
- const popperState = {
22
+ const [contextTarget, setContextTarget] = usePositioningMouseTarget();
23
+ const positioningState = {
24
24
  position: isSubmenu ? 'after' : 'below',
25
25
  align: isSubmenu ? 'top' : 'start',
26
26
  target: props.openOnContext ? contextTarget : undefined,
@@ -53,7 +53,7 @@ export const useMenu_unstable = props => {
53
53
  const {
54
54
  targetRef: triggerRef,
55
55
  containerRef: menuPopoverRef
56
- } = usePopper(popperState);
56
+ } = usePositioning(positioningState);
57
57
  const initialState = {
58
58
  hoverDelay: 500,
59
59
  triggerId,
@@ -187,7 +187,7 @@ const useMenuOpenState = state => {
187
187
  contains: elementContains,
188
188
  disabled: !open,
189
189
  element: targetDocument,
190
- refs: [state.menuPopoverRef, state.triggerRef],
190
+ refs: [state.menuPopoverRef, !state.openOnContext && state.triggerRef].filter(Boolean),
191
191
  callback: e => setOpen(e, {
192
192
  open: false
193
193
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Menu/useMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,oBAAT,EAA+B,SAA/B,EAA0C,2BAA1C,QAA6E,6BAA7E;AACA,SAAS,oBAAT,EAA+B,KAA/B,EAAsC,iBAAtC,EAAyD,gBAAzD,QAAiF,2BAAjF;AACA,SAAS,SAAT,QAA0B,iCAA1B;AACA,SAAS,eAAT,QAAgC,wBAAhC;AACA,SAAS,eAAT,QAAgC,yBAAhC;AACA,SAAS,uBAAT,QAAwC,4BAAxC;AACA,SAAS,gBAAT,EAA2B,mBAA3B,QAAsD,mBAAtD;AACA,SAAS,YAAT,QAA6B,0BAA7B;AAGA;;;;;;;AAOG;;AACH,OAAO,MAAM,gBAAgB,GAAI,KAAD,IAAgC;AAC9D,QAAM,SAAS,GAAG,KAAK,CAAC,MAAD,CAAvB;AACA,QAAM,SAAS,GAAG,YAAY,EAA9B;AACA,QAAM,CAAC,aAAD,EAAgB,gBAAhB,IAAoC,oBAAoB,EAA9D;AAEA,QAAM,WAAW,GAAG;AAClB,IAAA,QAAQ,EAAE,SAAS,GAAI,OAAJ,GAAyB,OAD1B;AAElB,IAAA,KAAK,EAAE,SAAS,GAAI,KAAJ,GAAuB,OAFrB;AAGlB,IAAA,MAAM,EAAE,KAAK,CAAC,aAAN,GAAsB,aAAtB,GAAsC,SAH5B;AAIlB,OAAG,2BAA2B,CAAC,KAAK,CAAC,WAAP;AAJZ,GAApB;AAOA,QAAM,QAAQ,GAAG,KAAK,CAAC,QAAN,CAAe,OAAf,CAAuB,KAAK,CAAC,QAA7B,CAAjB;;AAEA,MAAI,OAAO,CAAC,GAAR,CAAY,QAAZ,KAAyB,YAA7B,EAA2C;AACzC,QAAI,QAAQ,CAAC,MAAT,KAAoB,CAAxB,EAA2B;AACzB;AACA,MAAA,OAAO,CAAC,IAAR,CAAa,sCAAb;AACD;;AAED,QAAI,QAAQ,CAAC,MAAT,GAAkB,CAAtB,EAAyB;AACvB;AACA,MAAA,OAAO,CAAC,IAAR,CAAa,wCAAb;AACD;AACF;;AAED,MAAI,WAAW,GAAmC,SAAlD;AACA,MAAI,WAAW,GAAmC,SAAlD;;AACA,MAAI,QAAQ,CAAC,MAAT,KAAoB,CAAxB,EAA2B;AACzB,IAAA,WAAW,GAAG,QAAQ,CAAC,CAAD,CAAtB;AACA,IAAA,WAAW,GAAG,QAAQ,CAAC,CAAD,CAAtB;AACD,GAHD,MAGO,IAAI,QAAQ,CAAC,MAAT,KAAoB,CAAxB,EAA2B;AAChC,IAAA,WAAW,GAAG,QAAQ,CAAC,CAAD,CAAtB;AACD;;AACD,QAAM;AAAE,IAAA,SAAS,EAAE,UAAb;AAAyB,IAAA,YAAY,EAAE;AAAvC,MAA0D,SAAS,CAAC,WAAD,CAAzE;AAEA,QAAM,YAAY,GAAG;AACnB,IAAA,UAAU,EAAE,GADO;AAEnB,IAAA,SAFmB;AAGnB,IAAA,SAAS,EAAE,CAAC,CAAC,SAHM;AAInB,IAAA,WAAW,EAAE,CAAC,CAAC,SAJI;AAKnB,IAAA,aALmB;AAMnB,IAAA,gBANmB;AAOnB,OAAG,KAPgB;AAQnB,IAAA,WARmB;AASnB,IAAA,WATmB;AAUnB,IAAA,UAVmB;AAWnB,IAAA,cAXmB;AAYnB,IAAA,UAAU,EAAE;AAZO,GAArB,CApC8D,CAmD9D;;AAEA,QAAM,CAAC,IAAD,EAAO,OAAP,IAAkB,gBAAgB,CAAC,YAAD,CAAxC;AACA,QAAM,CAAC,aAAD,EAAgB,oBAAhB,IAAwC,sBAAsB,CAAC,YAAD,CAApE;AAEA,SAAO,EACL,GAAG,YADE;AAEL,IAAA,IAFK;AAGL,IAAA,OAHK;AAIL,IAAA,aAJK;AAKL,IAAA;AALK,GAAP;AAOD,CA/DM;AAiEP;;;AAGG;;AACH,MAAM,sBAAsB,GAC1B,KAD6B,IAE3B;AACF,QAAM,CAAC,aAAD,EAAgB,gBAAhB,IAAoC,oBAAoB,CAAC;AAC7D,IAAA,KAAK,EAAE,KAAK,CAAC,aADgD;AAE7D,IAAA,YAAY,EAAE,KAAK,CAAC,oBAFyC;AAG7D,IAAA,YAAY,EAAE;AAH+C,GAAD,CAA9D;AAKA,QAAM;AAAE,IAAA,oBAAoB,EAAE;AAAxB,MAAyD,KAA/D;AACA,QAAM,oBAAoB,GAAsC,gBAAgB,CAAC,CAAC,CAAD,EAAI;AAAE,IAAA,IAAF;AAAQ,IAAA;AAAR,GAAJ,KAA8B;AAC7G,QAAI,4BAAJ,EAAkC;AAChC,MAAA,4BAA4B,CAAC,CAAD,EAAI;AAAE,QAAA,IAAF;AAAQ,QAAA;AAAR,OAAJ,CAA5B;AACD;;AAED,IAAA,gBAAgB,CAAC,CAAC,IAAG;AACnB,aAAO,CAAC,GAAG,EAAE,GAAG,CAAL;AAAQ,SAAC,IAAD,GAAQ;AAAhB,OAAH,GAAoC;AAAE,SAAC,IAAD,GAAQ;AAAV,OAA5C;AACD,KAFe,CAAhB;AAGD,GAR+E,CAAhF;AAUA,SAAO,CAAC,aAAD,EAAgB,oBAAhB,CAAP;AACD,CApBD;;AAsBA,MAAM,gBAAgB,GACpB,KADuB,IAGrB;AACF,QAAM;AAAE,IAAA;AAAF,MAAqB,SAAS,EAApC;AACA,QAAM,aAAa,GAAG,uBAAuB,CAAC,OAAO,IAAI,OAAO,CAAC,OAApB,CAA7C;AACA,QAAM,YAAY,GAA8B,gBAAgB,CAAC,CAAC,CAAD,EAAI,IAAJ,KAAY;AAAA,QAAA,EAAA;;AAAC,WAAA,CAAA,EAAA,GAAA,KAAK,CAAC,YAAN,MAAkB,IAAlB,IAAkB,EAAA,KAAA,KAAA,CAAlB,GAAkB,KAAA,CAAlB,GAAkB,EAAA,CAAA,IAAA,CAAlB,KAAkB,EAAG,CAAH,EAAM,IAAN,CAAlB;AAA6B,GAA3C,CAAhE;AAEA,QAAM,uBAAuB,GAAG,KAAK,CAAC,MAAN,CAAa,KAAb,CAAhC;AACA,QAAM,kBAAkB,GAAG,KAAK,CAAC,MAAN,CAAa,KAAb,CAA3B;AACA,QAAM,eAAe,GAAG,KAAK,CAAC,MAAN,CAAa,KAAb,CAAxB;AACA,QAAM,cAAc,GAAG,KAAK,CAAC,MAAN,CAAa,CAAb,CAAvB;AACA,QAAM,kBAAkB,GAAG,KAAK,CAAC,MAAN,CAAa,KAAb,CAA3B;AAEA,QAAM,CAAC,IAAD,EAAO,YAAP,IAAuB,oBAAoB,CAAC;AAChD,IAAA,KAAK,EAAE,KAAK,CAAC,IADmC;AAEhD,IAAA,YAAY,EAAE,KAAK,CAAC,WAF4B;AAGhD,IAAA,YAAY,EAAE;AAHkC,GAAD,CAAjD;AAMA,QAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAD,EAAoB,IAApB,KAAgD;AAClF,UAAM,KAAK,GAAG,CAAC,YAAY,WAAb,IAA4B,CAAC,CAAC,IAAF,KAAW,gBAAvC,GAA0D,CAAC,CAAC,MAAF,CAAS,WAAnE,GAAiF,CAA/F;AACA,IAAA,YAAY,KAAA,IAAZ,IAAA,YAAY,KAAA,KAAA,CAAZ,GAAY,KAAA,CAAZ,GAAA,YAAY,CAAG,KAAH,EAAU,EAAE,GAAG;AAAL,KAAV,CAAZ;;AACA,QAAI,IAAI,CAAC,IAAL,IAAa,CAAC,CAAC,IAAF,KAAW,aAA5B,EAA2C;AACzC,MAAA,KAAK,CAAC,gBAAN,CAAuB,CAAvB;AACD;;AAED,QAAI,CAAC,IAAI,CAAC,IAAV,EAAgB;AACd,MAAA,KAAK,CAAC,gBAAN,CAAuB,SAAvB;AACD;;AAED,QAAI,IAAI,CAAC,QAAT,EAAmB;AACjB,MAAA,uBAAuB,CAAC,OAAxB,GAAkC,IAAlC;AACA,MAAA,kBAAkB,CAAC,OAAnB,GAA8B,CAAyB,CAAC,GAA1B,KAAkC,KAAhE;AACA,MAAA,eAAe,CAAC,OAAhB,GAA2B,CAAyB,CAAC,QAArD;AACD;;AAED,QAAI,IAAI,CAAC,MAAT,EAAiB;AACf,MAAA,aAAa,CAAC,CAAD,EAAI,EAAE,GAAG;AAAL,OAAJ,CAAb;AACD;;AAED,IAAA,YAAY,CAAC,IAAI,CAAC,IAAN,CAAZ;AACD,GAtBkC,CAAnC;AAwBA,QAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAD,EAAoB,IAApB,KAAgD;;;AAC/E,IAAA,YAAY,CAAC,cAAc,CAAC,OAAhB,CAAZ;;AACA,QAAI,EAAE,CAAC,YAAY,KAAf,KAAyB,CAAC,CAAC,OAA/B,EAAwC;AACtC;AACA,MAAA,CAAC,CAAC,OAAF;AACD;;AAED,QAAI,CAAC,CAAC,IAAF,KAAW,YAAX,IAA2B,CAAC,CAAC,IAAF,KAAW,YAAtC,IAAsD,CAAC,CAAC,IAAF,KAAW,WAAjE,IAAgF,CAAC,CAAC,IAAF,KAAW,gBAA/F,EAAiH;AAC/G,UAAI,CAAA,EAAA,GAAA,KAAK,CAAC,UAAN,CAAiB,OAAjB,MAAwB,IAAxB,IAAwB,EAAA,KAAA,KAAA,CAAxB,GAAwB,KAAA,CAAxB,GAAwB,EAAA,CAAE,QAAF,CAAW,CAAC,CAAC,MAAb,CAA5B,EAAiE;AAC/D,QAAA,kBAAkB,CAAC,OAAnB,GAA6B,CAAC,CAAC,IAAF,KAAW,YAAX,IAA2B,CAAC,CAAC,IAAF,KAAW,WAAnE;AACD,OAH8G,CAK/G;AACA;AACA;;;AACA,MAAA,cAAc,CAAC,OAAf,GAAyB,UAAU,CAAC,MAAM,UAAU,CAAC,CAAD,EAAI,IAAJ,CAAjB,EAA4B,KAAK,CAAC,UAAlC,CAAnC;AACD,KATD,MASO;AACL,MAAA,UAAU,CAAC,CAAD,EAAI,IAAJ,CAAV;AACD;AACF,GAnB+B,CAAhC;AAqBA,EAAA,iBAAiB,CAAC;AAChB,IAAA,QAAQ,EAAE,eADM;AAEhB,IAAA,QAAQ,EAAE,CAAC,IAFK;AAGhB,IAAA,OAAO,EAAE,cAHO;AAIhB,IAAA,IAAI,EAAE,CAAC,KAAK,CAAC,cAAP,EAAuB,KAAK,CAAC,UAA7B,CAJU;AAKhB,IAAA,QAAQ,EAAE,CAAC,IAAI,OAAO,CAAC,CAAD,EAAI;AAAE,MAAA,IAAI,EAAE;AAAR,KAAJ;AALN,GAAD,CAAjB;AAOA,EAAA,mBAAmB,CAAC;AAClB,IAAA,OAAO,EAAE,cADS;AAElB,IAAA,QAAQ,EAAE,CAAC,IAAG;AACZ;AACA;AACA,UAAI,CAAC,kBAAkB,CAAC,OAAxB,EAAiC;AAC/B,QAAA,OAAO,CAAC,CAAD,EAAI;AAAE,UAAA,IAAI,EAAE;AAAR,SAAJ,CAAP;AACD;AACF,KARiB;AASlB,IAAA,QAAQ,EAAE,CAAC,IATO;AAUlB,IAAA,IAAI,EAAE,CAAC,KAAK,CAAC,cAAP;AAVY,GAAD,CAAnB,CArEE,CAkFF;AACA;;AACA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;AACnB,WAAO,MAAK;AACV,MAAA,YAAY,CAAC,cAAc,CAAC,OAAhB,CAAZ;AACD,KAFD;AAGD,GAJD,EAIG,EAJH,EApFE,CA0FF;;AACA,QAAM;AAAE,IAAA,kBAAF;AAAsB,IAAA,iBAAtB;AAAyC,IAAA;AAAzC,MAA+D,eAAe,EAApF;AACA,QAAM,UAAU,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAK;AACxC,UAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,cAAN,CAAqB,OAAtB,CAAzC;AACA,IAAA,cAAc,KAAA,IAAd,IAAA,cAAc,KAAA,KAAA,CAAd,GAAc,KAAA,CAAd,GAAA,cAAc,CAAE,KAAhB,EAAA;AACD,GAHkB,EAGhB,CAAC,kBAAD,EAAqB,KAAK,CAAC,cAA3B,CAHgB,CAAnB;AAKA,QAAM,qBAAqB,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAK;AACnD,UAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAN,CAAiB,OAAlB,CAAvC;AACA,IAAA,aAAa,KAAA,IAAb,IAAA,aAAa,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAA,aAAa,CAAE,KAAf,EAAA;AACD,GAH6B,EAG3B,CAAC,iBAAD,EAAoB,KAAK,CAAC,UAA1B,CAH2B,CAA9B;AAKA,QAAM,sBAAsB,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAK;AACpD,UAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAN,CAAiB,OAAlB,CAAvC;AACA,IAAA,aAAa,KAAA,IAAb,IAAA,aAAa,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAA,aAAa,CAAE,KAAf,EAAA;AACD,GAH8B,EAG5B,CAAC,iBAAD,EAAoB,KAAK,CAAC,UAA1B,CAH4B,CAA/B;AAKA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;AACnB,QAAI,IAAJ,EAAU;AACR,MAAA,UAAU;AACX;AACF,GAJD,EAIG,CAAC,IAAD,EAAO,UAAP,CAJH;AAMA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;;;AACnB,QAAI,IAAJ,EAAU;AACR,MAAA,UAAU;AACX;;AAED,QAAI,uBAAuB,CAAC,OAAxB,IAAmC,CAAC,IAAxC,EAA8C;AAC5C,UAAI,kBAAkB,CAAC,OAAnB,IAA8B,CAAC,KAAK,CAAC,SAAzC,EAAoD;AAClD,QAAA,eAAe,CAAC,OAAhB,GAA0B,sBAAsB,EAAhD,GAAqD,qBAAqB,EAA1E;AACD,OAFD,MAEO;AACL,SAAA,EAAA,GAAA,KAAK,CAAC,UAAN,CAAiB,OAAjB,MAAwB,IAAxB,IAAwB,EAAA,KAAA,KAAA,CAAxB,GAAwB,KAAA,CAAxB,GAAwB,EAAA,CAAE,KAAF,EAAxB;AACD;AACF;;AAED,IAAA,uBAAuB,CAAC,OAAxB,GAAkC,KAAlC;AACA,IAAA,kBAAkB,CAAC,OAAnB,GAA6B,KAA7B;AACA,IAAA,eAAe,CAAC,OAAhB,GAA0B,KAA1B;AACD,GAhBD,EAgBG,CAAC,KAAK,CAAC,UAAP,EAAmB,KAAK,CAAC,SAAzB,EAAoC,IAApC,EAA0C,UAA1C,EAAsD,qBAAtD,EAA6E,sBAA7E,CAhBH;AAkBA,SAAO,CAAC,IAAI,KAAA,IAAJ,IAAA,IAAI,KAAA,KAAA,CAAJ,GAAA,IAAA,GAAQ,KAAT,EAAgB,OAAhB,CAAP;AACD,CAvID","sourceRoot":""}
1
+ {"version":3,"sources":["components/Menu/useMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { usePositioningMouseTarget, usePositioning, resolvePositioningShorthand } from '@fluentui/react-positioning';\nimport { useControllableState, useId, useOnClickOutside, useEventCallback } from '@fluentui/react-utilities';\nimport { useFluent } from '@fluentui/react-shared-contexts';\nimport { elementContains } from '@fluentui/react-portal';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MENU_ENTER_EVENT, useOnMenuMouseEnter } from '../../utils/index';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport type { MenuOpenChangeData, MenuOpenEvents, MenuProps, MenuState } from './Menu.types';\n\n/**\n * Create the state required to render Menu.\n *\n * The returned state can be modified with hooks such as useMenuStyles,\n * before being passed to renderMenu_unstable.\n *\n * @param props - props from this instance of Menu\n */\nexport const useMenu_unstable = (props: MenuProps): MenuState => {\n const triggerId = useId('menu');\n const isSubmenu = useIsSubmenu();\n const [contextTarget, setContextTarget] = usePositioningMouseTarget();\n\n const positioningState = {\n position: isSubmenu ? ('after' as const) : ('below' as const),\n align: isSubmenu ? ('top' as const) : ('start' as const),\n target: props.openOnContext ? contextTarget : undefined,\n ...resolvePositioningShorthand(props.positioning),\n };\n\n const children = React.Children.toArray(props.children) as React.ReactElement[];\n\n if (process.env.NODE_ENV !== 'production') {\n if (children.length === 0) {\n // eslint-disable-next-line no-console\n console.warn('Menu must contain at least one child');\n }\n\n if (children.length > 2) {\n // eslint-disable-next-line no-console\n console.warn('Menu must contain at most two children');\n }\n }\n\n let menuTrigger: React.ReactElement | undefined = undefined;\n let menuPopover: React.ReactElement | undefined = undefined;\n if (children.length === 2) {\n menuTrigger = children[0];\n menuPopover = children[1];\n } else if (children.length === 1) {\n menuPopover = children[0];\n }\n const { targetRef: triggerRef, containerRef: menuPopoverRef } = usePositioning(positioningState);\n\n const initialState = {\n hoverDelay: 500,\n triggerId,\n isSubmenu: !!isSubmenu,\n openOnHover: !!isSubmenu,\n contextTarget,\n setContextTarget,\n ...props,\n menuTrigger,\n menuPopover,\n triggerRef,\n menuPopoverRef,\n components: {},\n } as const;\n\n // TODO Better way to narrow types ?\n\n const [open, setOpen] = useMenuOpenState(initialState);\n const [checkedValues, onCheckedValueChange] = useMenuSelectableState(initialState);\n\n return {\n ...initialState,\n open,\n setOpen,\n checkedValues,\n onCheckedValueChange,\n };\n};\n\n/**\n * Adds appropriate state values and handlers for selectable items\n * i.e checkboxes and radios\n */\nconst useMenuSelectableState = (\n state: Pick<MenuProps, 'checkedValues' | 'defaultCheckedValues' | 'onCheckedValueChange'>,\n) => {\n const [checkedValues, setCheckedValues] = useControllableState({\n state: state.checkedValues,\n defaultState: state.defaultCheckedValues,\n initialState: {},\n });\n const { onCheckedValueChange: onCheckedValueChangeOriginal } = state;\n const onCheckedValueChange: MenuState['onCheckedValueChange'] = useEventCallback((e, { name, checkedItems }) => {\n if (onCheckedValueChangeOriginal) {\n onCheckedValueChangeOriginal(e, { name, checkedItems });\n }\n\n setCheckedValues(s => {\n return s ? { ...s, [name]: checkedItems } : { [name]: checkedItems };\n });\n });\n\n return [checkedValues, onCheckedValueChange] as const;\n};\n\nconst useMenuOpenState = (\n state: Pick<\n MenuState,\n 'isSubmenu' | 'menuPopoverRef' | 'onOpenChange' | 'setContextTarget' | 'triggerRef' | 'openOnContext'\n > &\n Pick<MenuProps, 'open' | 'defaultOpen'>,\n) => {\n const { targetDocument } = useFluent();\n const parentSetOpen = useMenuContext_unstable(context => context.setOpen);\n const onOpenChange: MenuState['onOpenChange'] = useEventCallback((e, data) => state.onOpenChange?.(e, data));\n\n const shouldHandleKeyboardRef = React.useRef(false);\n const shouldHandleTabRef = React.useRef(false);\n const pressedShiftRef = React.useRef(false);\n const setOpenTimeout = React.useRef(0);\n const enteringTriggerRef = React.useRef(false);\n\n const [open, setOpenState] = useControllableState({\n state: state.open,\n defaultState: state.defaultOpen,\n initialState: false,\n });\n\n const trySetOpen = useEventCallback((e: MenuOpenEvents, data: MenuOpenChangeData) => {\n const event = e instanceof CustomEvent && e.type === MENU_ENTER_EVENT ? e.detail.nativeEvent : e;\n onOpenChange?.(event, { ...data });\n if (data.open && e.type === 'contextmenu') {\n state.setContextTarget(e as React.MouseEvent);\n }\n\n if (!data.open) {\n state.setContextTarget(undefined);\n }\n\n if (data.keyboard) {\n shouldHandleKeyboardRef.current = true;\n shouldHandleTabRef.current = (e as React.KeyboardEvent).key === 'Tab';\n pressedShiftRef.current = (e as React.KeyboardEvent).shiftKey;\n }\n\n if (data.bubble) {\n parentSetOpen(e, { ...data });\n }\n\n setOpenState(data.open);\n });\n\n const setOpen = useEventCallback((e: MenuOpenEvents, data: MenuOpenChangeData) => {\n clearTimeout(setOpenTimeout.current);\n if (!(e instanceof Event) && e.persist) {\n // < React 17 still uses pooled synthetic events\n e.persist();\n }\n\n if (e.type === 'mouseleave' || e.type === 'mouseenter' || e.type === 'mousemove' || e.type === MENU_ENTER_EVENT) {\n if (state.triggerRef.current?.contains(e.target as HTMLElement)) {\n enteringTriggerRef.current = e.type === 'mouseenter' || e.type === 'mousemove';\n }\n\n // FIXME leaking Node timeout type\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n setOpenTimeout.current = setTimeout(() => trySetOpen(e, data), state.hoverDelay);\n } else {\n trySetOpen(e, data);\n }\n });\n\n useOnClickOutside({\n contains: elementContains,\n disabled: !open,\n element: targetDocument,\n refs: [state.menuPopoverRef, !state.openOnContext && state.triggerRef].filter(\n Boolean,\n ) as React.MutableRefObject<HTMLElement>[],\n callback: e => setOpen(e, { open: false }),\n });\n useOnMenuMouseEnter({\n element: targetDocument,\n callback: e => {\n // When moving from a menu directly back to its trigger, this handler can close the menu\n // Explicitly check a flag to see if this situation happens\n if (!enteringTriggerRef.current) {\n setOpen(e, { open: false });\n }\n },\n disabled: !open,\n refs: [state.menuPopoverRef],\n });\n\n // Clear timeout on unmount\n // Setting state after a component unmounts can cause memory leaks\n React.useEffect(() => {\n return () => {\n clearTimeout(setOpenTimeout.current);\n };\n }, []);\n\n // Manage focus for open state\n const { findFirstFocusable, findNextFocusable, findPrevFocusable } = useFocusFinders();\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(state.menuPopoverRef.current);\n firstFocusable?.focus();\n }, [findFirstFocusable, state.menuPopoverRef]);\n\n const focusAfterMenuTrigger = React.useCallback(() => {\n const nextFocusable = findNextFocusable(state.triggerRef.current);\n nextFocusable?.focus();\n }, [findNextFocusable, state.triggerRef]);\n\n const focusBeforeMenuTrigger = React.useCallback(() => {\n const prevFocusable = findPrevFocusable(state.triggerRef.current);\n prevFocusable?.focus();\n }, [findPrevFocusable, state.triggerRef]);\n\n React.useEffect(() => {\n if (open) {\n focusFirst();\n }\n }, [open, focusFirst]);\n\n React.useEffect(() => {\n if (open) {\n focusFirst();\n }\n\n if (shouldHandleKeyboardRef.current && !open) {\n if (shouldHandleTabRef.current && !state.isSubmenu) {\n pressedShiftRef.current ? focusBeforeMenuTrigger() : focusAfterMenuTrigger();\n } else {\n state.triggerRef.current?.focus();\n }\n }\n\n shouldHandleKeyboardRef.current = false;\n shouldHandleTabRef.current = false;\n pressedShiftRef.current = false;\n }, [state.triggerRef, state.isSubmenu, open, focusFirst, focusAfterMenuTrigger, focusBeforeMenuTrigger]);\n\n return [open ?? false, setOpen] as const;\n};\n"],"sourceRoot":"../src/"}