@fluentui/react-menu 0.0.0-nightly-20230223-2115.1 → 0.0.0-nightly-20230228-0425.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 (308) hide show
  1. package/CHANGELOG.json +23 -23
  2. package/CHANGELOG.md +14 -14
  3. package/lib/Menu.js.map +1 -1
  4. package/lib/MenuDivider.js.map +1 -1
  5. package/lib/MenuGroup.js.map +1 -1
  6. package/lib/MenuGroupHeader.js.map +1 -1
  7. package/lib/MenuItem.js.map +1 -1
  8. package/lib/MenuItemCheckbox.js.map +1 -1
  9. package/lib/MenuItemRadio.js.map +1 -1
  10. package/lib/MenuList.js.map +1 -1
  11. package/lib/MenuPopover.js.map +1 -1
  12. package/lib/MenuSplitGroup.js.map +1 -1
  13. package/lib/MenuTrigger.js.map +1 -1
  14. package/lib/components/Menu/Menu.js +0 -1
  15. package/lib/components/Menu/Menu.js.map +1 -1
  16. package/lib/components/Menu/Menu.types.js +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 +12 -14
  21. package/lib/components/Menu/useMenu.js.map +1 -1
  22. package/lib/components/Menu/useMenuContextValues.js.map +1 -1
  23. package/lib/components/MenuDivider/MenuDivider.js.map +1 -1
  24. package/lib/components/MenuDivider/MenuDivider.types.js.map +1 -1
  25. package/lib/components/MenuDivider/index.js.map +1 -1
  26. package/lib/components/MenuDivider/renderMenuDivider.js +3 -2
  27. package/lib/components/MenuDivider/renderMenuDivider.js.map +1 -1
  28. package/lib/components/MenuDivider/useMenuDivider.js +0 -1
  29. package/lib/components/MenuDivider/useMenuDivider.js.map +1 -1
  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 +3 -2
  35. package/lib/components/MenuGroup/renderMenuGroup.js.map +1 -1
  36. package/lib/components/MenuGroup/useMenuGroup.js +0 -1
  37. package/lib/components/MenuGroup/useMenuGroup.js.map +1 -1
  38. package/lib/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
  39. package/lib/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
  40. package/lib/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
  41. package/lib/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
  42. package/lib/components/MenuGroupHeader/index.js.map +1 -1
  43. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +3 -2
  44. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
  45. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +0 -1
  46. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  47. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
  48. package/lib/components/MenuItem/MenuItem.js.map +1 -1
  49. package/lib/components/MenuItem/MenuItem.types.js.map +1 -1
  50. package/lib/components/MenuItem/index.js.map +1 -1
  51. package/lib/components/MenuItem/renderMenuItem.js +13 -2
  52. package/lib/components/MenuItem/renderMenuItem.js.map +1 -1
  53. package/lib/components/MenuItem/useCharacterSearch.js +2 -3
  54. package/lib/components/MenuItem/useCharacterSearch.js.map +1 -1
  55. package/lib/components/MenuItem/useMenuItem.js +7 -7
  56. package/lib/components/MenuItem/useMenuItem.js.map +1 -1
  57. package/lib/components/MenuItem/useMenuItemStyles.js.map +1 -1
  58. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  59. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
  60. package/lib/components/MenuItemCheckbox/index.js.map +1 -1
  61. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +11 -2
  62. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  63. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +4 -4
  64. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  65. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
  66. package/lib/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
  67. package/lib/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
  68. package/lib/components/MenuItemRadio/index.js.map +1 -1
  69. package/lib/components/MenuItemRadio/renderMenuItemRadio.js +11 -2
  70. package/lib/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  71. package/lib/components/MenuItemRadio/useMenuItemRadio.js +4 -4
  72. package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  73. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
  74. package/lib/components/MenuList/MenuList.js.map +1 -1
  75. package/lib/components/MenuList/MenuList.types.js +1 -1
  76. package/lib/components/MenuList/MenuList.types.js.map +1 -1
  77. package/lib/components/MenuList/index.js.map +1 -1
  78. package/lib/components/MenuList/renderMenuList.js +3 -2
  79. package/lib/components/MenuList/renderMenuList.js.map +1 -1
  80. package/lib/components/MenuList/useMenuList.js +5 -4
  81. package/lib/components/MenuList/useMenuList.js.map +1 -1
  82. package/lib/components/MenuList/useMenuListContextValues.js.map +1 -1
  83. package/lib/components/MenuList/useMenuListStyles.js.map +1 -1
  84. package/lib/components/MenuPopover/MenuPopover.js.map +1 -1
  85. package/lib/components/MenuPopover/MenuPopover.types.js.map +1 -1
  86. package/lib/components/MenuPopover/index.js.map +1 -1
  87. package/lib/components/MenuPopover/renderMenuPopover.js +6 -3
  88. package/lib/components/MenuPopover/renderMenuPopover.js.map +1 -1
  89. package/lib/components/MenuPopover/useMenuPopover.js +4 -3
  90. package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
  91. package/lib/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
  92. package/lib/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  93. package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
  94. package/lib/components/MenuSplitGroup/index.js.map +1 -1
  95. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +3 -2
  96. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  97. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +2 -2
  98. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  99. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
  100. package/lib/components/MenuTrigger/MenuTrigger.js +0 -1
  101. package/lib/components/MenuTrigger/MenuTrigger.js.map +1 -1
  102. package/lib/components/MenuTrigger/MenuTrigger.types.js +1 -1
  103. package/lib/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
  104. package/lib/components/MenuTrigger/index.js.map +1 -1
  105. package/lib/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
  106. package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  107. package/lib/components/index.js.map +1 -1
  108. package/lib/contexts/menuContext.js +1 -5
  109. package/lib/contexts/menuContext.js.map +1 -1
  110. package/lib/contexts/menuGroupContext.js +4 -1
  111. package/lib/contexts/menuGroupContext.js.map +1 -1
  112. package/lib/contexts/menuListContext.js +1 -5
  113. package/lib/contexts/menuListContext.js.map +1 -1
  114. package/lib/contexts/menuTriggerContext.js +4 -1
  115. package/lib/contexts/menuTriggerContext.js.map +1 -1
  116. package/lib/index.js.map +1 -1
  117. package/lib/selectable/index.js.map +1 -1
  118. package/lib/selectable/types.js +1 -1
  119. package/lib/selectable/types.js.map +1 -1
  120. package/lib/selectable/useCheckmarkStyles.js.map +1 -1
  121. package/lib/utils/index.js.map +1 -1
  122. package/lib/utils/useIsSubmenu.js.map +1 -1
  123. package/lib/utils/useOnMenuEnter.js +2 -1
  124. package/lib/utils/useOnMenuEnter.js.map +1 -1
  125. package/lib-commonjs/Menu.js +4 -5
  126. package/lib-commonjs/Menu.js.map +1 -1
  127. package/lib-commonjs/MenuDivider.js +4 -5
  128. package/lib-commonjs/MenuDivider.js.map +1 -1
  129. package/lib-commonjs/MenuGroup.js +4 -5
  130. package/lib-commonjs/MenuGroup.js.map +1 -1
  131. package/lib-commonjs/MenuGroupHeader.js +4 -5
  132. package/lib-commonjs/MenuGroupHeader.js.map +1 -1
  133. package/lib-commonjs/MenuItem.js +4 -5
  134. package/lib-commonjs/MenuItem.js.map +1 -1
  135. package/lib-commonjs/MenuItemCheckbox.js +4 -5
  136. package/lib-commonjs/MenuItemCheckbox.js.map +1 -1
  137. package/lib-commonjs/MenuItemRadio.js +4 -5
  138. package/lib-commonjs/MenuItemRadio.js.map +1 -1
  139. package/lib-commonjs/MenuList.js +4 -5
  140. package/lib-commonjs/MenuList.js.map +1 -1
  141. package/lib-commonjs/MenuPopover.js +4 -5
  142. package/lib-commonjs/MenuPopover.js.map +1 -1
  143. package/lib-commonjs/MenuSplitGroup.js +4 -5
  144. package/lib-commonjs/MenuSplitGroup.js.map +1 -1
  145. package/lib-commonjs/MenuTrigger.js +4 -5
  146. package/lib-commonjs/MenuTrigger.js.map +1 -1
  147. package/lib-commonjs/components/Menu/Menu.js +15 -16
  148. package/lib-commonjs/components/Menu/Menu.js.map +1 -1
  149. package/lib-commonjs/components/Menu/Menu.types.js +2 -5
  150. package/lib-commonjs/components/Menu/Menu.types.js.map +1 -1
  151. package/lib-commonjs/components/Menu/index.js +8 -9
  152. package/lib-commonjs/components/Menu/index.js.map +1 -1
  153. package/lib-commonjs/components/Menu/renderMenu.js +14 -14
  154. package/lib-commonjs/components/Menu/renderMenu.js.map +1 -1
  155. package/lib-commonjs/components/Menu/useMenu.js +252 -249
  156. package/lib-commonjs/components/Menu/useMenu.js.map +1 -1
  157. package/lib-commonjs/components/Menu/useMenuContextValues.js +41 -28
  158. package/lib-commonjs/components/Menu/useMenuContextValues.js.map +1 -1
  159. package/lib-commonjs/components/MenuDivider/MenuDivider.js +15 -16
  160. package/lib-commonjs/components/MenuDivider/MenuDivider.js.map +1 -1
  161. package/lib-commonjs/components/MenuDivider/MenuDivider.types.js +2 -3
  162. package/lib-commonjs/components/MenuDivider/MenuDivider.types.js.map +1 -1
  163. package/lib-commonjs/components/MenuDivider/index.js +8 -9
  164. package/lib-commonjs/components/MenuDivider/index.js.map +1 -1
  165. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js +19 -15
  166. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -1
  167. package/lib-commonjs/components/MenuDivider/useMenuDivider.js +21 -22
  168. package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -1
  169. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js +25 -47
  170. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
  171. package/lib-commonjs/components/MenuGroup/MenuGroup.js +17 -18
  172. package/lib-commonjs/components/MenuGroup/MenuGroup.js.map +1 -1
  173. package/lib-commonjs/components/MenuGroup/MenuGroup.types.js +2 -3
  174. package/lib-commonjs/components/MenuGroup/MenuGroup.types.js.map +1 -1
  175. package/lib-commonjs/components/MenuGroup/index.js +9 -10
  176. package/lib-commonjs/components/MenuGroup/index.js.map +1 -1
  177. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js +22 -18
  178. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -1
  179. package/lib-commonjs/components/MenuGroup/useMenuGroup.js +22 -23
  180. package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -1
  181. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js +15 -18
  182. package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
  183. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js +11 -19
  184. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
  185. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js +15 -16
  186. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
  187. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js +2 -3
  188. package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -1
  189. package/lib-commonjs/components/MenuGroupHeader/index.js +8 -9
  190. package/lib-commonjs/components/MenuGroupHeader/index.js.map +1 -1
  191. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js +19 -15
  192. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
  193. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js +23 -22
  194. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  195. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +25 -47
  196. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
  197. package/lib-commonjs/components/MenuItem/MenuItem.js +15 -16
  198. package/lib-commonjs/components/MenuItem/MenuItem.js.map +1 -1
  199. package/lib-commonjs/components/MenuItem/MenuItem.types.js +2 -3
  200. package/lib-commonjs/components/MenuItem/MenuItem.types.js.map +1 -1
  201. package/lib-commonjs/components/MenuItem/index.js +8 -9
  202. package/lib-commonjs/components/MenuItem/index.js.map +1 -1
  203. package/lib-commonjs/components/MenuItem/renderMenuItem.js +28 -15
  204. package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -1
  205. package/lib-commonjs/components/MenuItem/useCharacterSearch.js +22 -24
  206. package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -1
  207. package/lib-commonjs/components/MenuItem/useMenuItem.js +104 -97
  208. package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
  209. package/lib-commonjs/components/MenuItem/useMenuItemStyles.js +134 -282
  210. package/lib-commonjs/components/MenuItem/useMenuItemStyles.js.map +1 -1
  211. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js +15 -16
  212. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  213. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js +2 -3
  214. package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
  215. package/lib-commonjs/components/MenuItemCheckbox/index.js +8 -9
  216. package/lib-commonjs/components/MenuItemCheckbox/index.js.map +1 -1
  217. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js +24 -15
  218. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  219. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +45 -44
  220. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  221. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +30 -38
  222. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
  223. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js +15 -16
  224. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
  225. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js +2 -3
  226. package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.types.js.map +1 -1
  227. package/lib-commonjs/components/MenuItemRadio/index.js +8 -9
  228. package/lib-commonjs/components/MenuItemRadio/index.js.map +1 -1
  229. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js +27 -15
  230. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  231. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +45 -42
  232. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  233. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js +30 -38
  234. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
  235. package/lib-commonjs/components/MenuList/MenuList.js +17 -18
  236. package/lib-commonjs/components/MenuList/MenuList.js.map +1 -1
  237. package/lib-commonjs/components/MenuList/MenuList.types.js +2 -5
  238. package/lib-commonjs/components/MenuList/MenuList.types.js.map +1 -1
  239. package/lib-commonjs/components/MenuList/index.js +9 -10
  240. package/lib-commonjs/components/MenuList/index.js.map +1 -1
  241. package/lib-commonjs/components/MenuList/renderMenuList.js +21 -18
  242. package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -1
  243. package/lib-commonjs/components/MenuList/useMenuList.js +137 -141
  244. package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -1
  245. package/lib-commonjs/components/MenuList/useMenuListContextValues.js +25 -20
  246. package/lib-commonjs/components/MenuList/useMenuListContextValues.js.map +1 -1
  247. package/lib-commonjs/components/MenuList/useMenuListStyles.js +23 -33
  248. package/lib-commonjs/components/MenuList/useMenuListStyles.js.map +1 -1
  249. package/lib-commonjs/components/MenuPopover/MenuPopover.js +15 -16
  250. package/lib-commonjs/components/MenuPopover/MenuPopover.js.map +1 -1
  251. package/lib-commonjs/components/MenuPopover/MenuPopover.types.js +2 -3
  252. package/lib-commonjs/components/MenuPopover/MenuPopover.types.js.map +1 -1
  253. package/lib-commonjs/components/MenuPopover/index.js +8 -9
  254. package/lib-commonjs/components/MenuPopover/index.js.map +1 -1
  255. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js +24 -19
  256. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -1
  257. package/lib-commonjs/components/MenuPopover/useMenuPopover.js +108 -99
  258. package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -1
  259. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js +50 -121
  260. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
  261. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js +15 -16
  262. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  263. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js +2 -3
  264. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
  265. package/lib-commonjs/components/MenuSplitGroup/index.js +8 -9
  266. package/lib-commonjs/components/MenuSplitGroup/index.js.map +1 -1
  267. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js +18 -15
  268. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  269. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +64 -58
  270. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  271. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js +32 -61
  272. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
  273. package/lib-commonjs/components/MenuTrigger/MenuTrigger.js +15 -15
  274. package/lib-commonjs/components/MenuTrigger/MenuTrigger.js.map +1 -1
  275. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js +2 -5
  276. package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
  277. package/lib-commonjs/components/MenuTrigger/index.js +7 -8
  278. package/lib-commonjs/components/MenuTrigger/index.js.map +1 -1
  279. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js +16 -14
  280. package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
  281. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +170 -163
  282. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  283. package/lib-commonjs/components/index.js +5 -6
  284. package/lib-commonjs/components/index.js.map +1 -1
  285. package/lib-commonjs/contexts/menuContext.js +26 -40
  286. package/lib-commonjs/contexts/menuContext.js.map +1 -1
  287. package/lib-commonjs/contexts/menuGroupContext.js +12 -18
  288. package/lib-commonjs/contexts/menuGroupContext.js.map +1 -1
  289. package/lib-commonjs/contexts/menuListContext.js +14 -28
  290. package/lib-commonjs/contexts/menuListContext.js.map +1 -1
  291. package/lib-commonjs/contexts/menuTriggerContext.js +12 -17
  292. package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -1
  293. package/lib-commonjs/index.js +399 -91
  294. package/lib-commonjs/index.js.map +1 -1
  295. package/lib-commonjs/selectable/index.js +5 -6
  296. package/lib-commonjs/selectable/index.js.map +1 -1
  297. package/lib-commonjs/selectable/types.js +2 -5
  298. package/lib-commonjs/selectable/types.js.map +1 -1
  299. package/lib-commonjs/selectable/useCheckmarkStyles.js +26 -28
  300. package/lib-commonjs/selectable/useCheckmarkStyles.js.map +1 -1
  301. package/lib-commonjs/utils/index.js +4 -5
  302. package/lib-commonjs/utils/index.js.map +1 -1
  303. package/lib-commonjs/utils/useIsSubmenu.js +19 -13
  304. package/lib-commonjs/utils/useIsSubmenu.js.map +1 -1
  305. package/lib-commonjs/utils/useOnMenuEnter.js +68 -56
  306. package/lib-commonjs/utils/useOnMenuEnter.js.map +1 -1
  307. package/package.json +13 -13
  308. package/.swcrc +0 -33
@@ -1,40 +1,30 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- menuListClassNames: ()=>menuListClassNames,
13
- useMenuListStyles_unstable: ()=>useMenuListStyles_unstable
4
+ value: true
14
5
  });
15
- const _react = require("@griffel/react");
16
- const menuListClassNames = {
17
- root: 'fui-MenuList'
6
+ exports.useMenuListStyles_unstable = exports.menuListClassNames = void 0;
7
+ const react_1 = /*#__PURE__*/require("@griffel/react");
8
+ exports.menuListClassNames = {
9
+ root: 'fui-MenuList'
18
10
  };
19
- const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
20
- root: {
21
- mc9l5x: "f22iagw",
22
- Beiy3e4: "f1vx9l62",
23
- i8kkvl: "f16mnhsx",
24
- Belr9w4: "fbi42co"
25
- }
11
+ const useStyles = /*#__PURE__*/react_1.__styles({
12
+ root: {
13
+ mc9l5x: "f22iagw",
14
+ Beiy3e4: "f1vx9l62",
15
+ i8kkvl: "f16mnhsx",
16
+ Belr9w4: "fbi42co"
17
+ }
26
18
  }, {
27
- d: [
28
- ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}",
29
- ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}",
30
- ".f16mnhsx{-webkit-column-gap:2px;column-gap:2px;}",
31
- ".fbi42co{row-gap:2px;}"
32
- ]
19
+ d: [".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".f16mnhsx{-webkit-column-gap:2px;column-gap:2px;}", ".fbi42co{row-gap:2px;}"]
33
20
  });
34
- const useMenuListStyles_unstable = (state)=>{
35
- const styles = useStyles();
36
- state.root.className = (0, _react.mergeClasses)(menuListClassNames.root, styles.root, state.root.className);
37
- return state;
38
- }; //# sourceMappingURL=useMenuListStyles.js.map
39
-
21
+ /**
22
+ * Apply styling to the Menu slots based on the state
23
+ */
24
+ const useMenuListStyles_unstable = state => {
25
+ const styles = useStyles();
26
+ state.root.className = react_1.mergeClasses(exports.menuListClassNames.root, styles.root, state.root.className);
27
+ return state;
28
+ };
29
+ exports.useMenuListStyles_unstable = useMenuListStyles_unstable;
40
30
  //# sourceMappingURL=useMenuListStyles.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuList/useMenuListStyles.js"],"sourcesContent":["import { mergeClasses, __styles, shorthands } from '@griffel/react';\nexport const menuListClassNames = {\n root: 'fui-MenuList'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1vx9l62\",\n i8kkvl: \"f16mnhsx\",\n Belr9w4: \"fbi42co\"\n }\n}, {\n d: [\".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}\", \".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}\", \".f16mnhsx{-webkit-column-gap:2px;column-gap:2px;}\", \".fbi42co{row-gap:2px;}\"]\n});\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuListStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuListClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMenuListStyles.js.map"],"names":["menuListClassNames","useMenuListStyles_unstable","root","useStyles","__styles","mc9l5x","Beiy3e4","i8kkvl","Belr9w4","d","state","styles","className","mergeClasses"],"mappings":";;;;;;;;;;;IACaA,kBAAkB,MAAlBA;IAgBAC,0BAA0B,MAA1BA;;uBAjBsC;AAC5C,MAAMD,qBAAqB;IAChCE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAwF;QAA6F;QAAqD;KAAyB;AACzQ;AAIO,MAAMR,6BAA6BS,CAAAA,QAAS;IACjD,MAAMC,SAASR;IACfO,MAAMR,IAAI,CAACU,SAAS,GAAGC,IAAAA,mBAAY,EAACb,mBAAmBE,IAAI,EAAES,OAAOT,IAAI,EAAEQ,MAAMR,IAAI,CAACU,SAAS;IAC9F,OAAOF;AACT,GACA,6CAA6C"}
1
+ {"version":3,"mappings":";;;;;;AACA;AAGaA,0BAAkB,GAAkC;EAC/DC,IAAI,EAAE;CACP;AAED,MAAMC,SAAS,gBAAGC,gBAAU;EAAA;IAAA;IAAA;IAAA;IAAA;EAAA;AAAA;EAAA;AAAA,EAM1B;AAEF;;;AAGO,MAAMC,0BAA0B,GAAIC,KAAoB,IAAmB;EAChF,MAAMC,MAAM,GAAGJ,SAAS,EAAE;EAC1BG,KAAK,CAACJ,IAAI,CAACM,SAAS,GAAGJ,oBAAY,CAACH,0BAAkB,CAACC,IAAI,EAAEK,MAAM,CAACL,IAAI,EAAEI,KAAK,CAACJ,IAAI,CAACM,SAAS,CAAC;EAC/F,OAAOF,KAAK;AACd,CAAC;AAJYL,kCAA0B","names":["exports","root","useStyles","react_1","useMenuListStyles_unstable","state","styles","className"],"sourceRoot":"","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"]}
@@ -1,21 +1,20 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "MenuPopover", {
6
- enumerable: true,
7
- get: ()=>MenuPopover
4
+ value: true
8
5
  });
9
- const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
- const _useMenuPopover = require("./useMenuPopover");
12
- const _useMenuPopoverStyles = require("./useMenuPopoverStyles");
13
- const _renderMenuPopover = require("./renderMenuPopover");
14
- const MenuPopover = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
15
- const state = (0, _useMenuPopover.useMenuPopover_unstable)(props, ref);
16
- (0, _useMenuPopoverStyles.useMenuPopoverStyles_unstable)(state);
17
- return (0, _renderMenuPopover.renderMenuPopover_unstable)(state);
6
+ exports.MenuPopover = void 0;
7
+ const React = /*#__PURE__*/require("react");
8
+ const useMenuPopover_1 = /*#__PURE__*/require("./useMenuPopover");
9
+ const useMenuPopoverStyles_1 = /*#__PURE__*/require("./useMenuPopoverStyles");
10
+ const renderMenuPopover_1 = /*#__PURE__*/require("./renderMenuPopover");
11
+ /**
12
+ * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus
13
+ */
14
+ exports.MenuPopover = /*#__PURE__*/React.forwardRef((props, ref) => {
15
+ const state = useMenuPopover_1.useMenuPopover_unstable(props, ref);
16
+ useMenuPopoverStyles_1.useMenuPopoverStyles_unstable(state);
17
+ return renderMenuPopover_1.renderMenuPopover_unstable(state);
18
18
  });
19
- MenuPopover.displayName = 'MenuPopover'; //# sourceMappingURL=MenuPopover.js.map
20
-
19
+ exports.MenuPopover.displayName = 'MenuPopover';
21
20
  //# sourceMappingURL=MenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuPopover/MenuPopover.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuPopover_unstable } from './useMenuPopover';\nimport { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles';\nimport { renderMenuPopover_unstable } from './renderMenuPopover';\n/**\n * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus\n */\nexport const MenuPopover = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useMenuPopover_unstable(props, ref);\n useMenuPopoverStyles_unstable(state);\n return renderMenuPopover_unstable(state);\n});\nMenuPopover.displayName = 'MenuPopover';\n//# sourceMappingURL=MenuPopover.js.map"],"names":["MenuPopover","React","forwardRef","props","ref","state","useMenuPopover_unstable","useMenuPopoverStyles_unstable","renderMenuPopover_unstable","displayName"],"mappings":";;;;+BAOaA;;aAAAA;;;6DAPU;gCACiB;sCACM;mCACH;AAIpC,MAAMA,cAAc,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACvE,MAAMC,QAAQC,IAAAA,uCAAuB,EAACH,OAAOC;IAC7CG,IAAAA,mDAA6B,EAACF;IAC9B,OAAOG,IAAAA,6CAA0B,EAACH;AACpC;AACAL,YAAYS,WAAW,GAAG,eAC1B,uCAAuC"}
1
+ {"version":3,"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAIA;;;AAGaA,mBAAW,gBAA0CC,KAAK,CAACC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAI;EAChG,MAAMC,KAAK,GAAGC,wCAAuB,CAACH,KAAK,EAAEC,GAAG,CAAC;EAEjDG,oDAA6B,CAACF,KAAK,CAAC;EACpC,OAAOG,8CAA0B,CAACH,KAAK,CAAC;AAC1C,CAAC,CAAC;AAEFL,mBAAW,CAACS,WAAW,GAAG,aAAa","names":["exports","React","forwardRef","props","ref","state","useMenuPopover_1","useMenuPopoverStyles_1","renderMenuPopover_1","displayName"],"sourceRoot":"","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';\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 return renderMenuPopover_unstable(state);\n});\n\nMenuPopover.displayName = 'MenuPopover';\n"]}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
+ value: true
4
5
  });
5
- //# sourceMappingURL=MenuPopover.types.js.map
6
-
7
6
  //# sourceMappingURL=MenuPopover.types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuPopover/MenuPopover.types.js"],"sourcesContent":["export {};\n//# sourceMappingURL=MenuPopover.types.js.map"],"names":[],"mappings":";;;;CACA,6CAA6C"}
1
+ {"version":3,"mappings":"","names":[],"sourceRoot":"","sources":[],"sourcesContent":[]}
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
+ value: true
4
5
  });
5
- const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
- _exportStar(require("./MenuPopover"), exports);
7
- _exportStar(require("./MenuPopover.types"), exports);
8
- _exportStar(require("./renderMenuPopover"), exports);
9
- _exportStar(require("./useMenuPopover"), exports);
10
- _exportStar(require("./useMenuPopoverStyles"), exports);
11
- //# sourceMappingURL=index.js.map
12
-
6
+ const tslib_1 = /*#__PURE__*/require("tslib");
7
+ tslib_1.__exportStar(require("./MenuPopover"), exports);
8
+ tslib_1.__exportStar(require("./MenuPopover.types"), exports);
9
+ tslib_1.__exportStar(require("./renderMenuPopover"), exports);
10
+ tslib_1.__exportStar(require("./useMenuPopover"), exports);
11
+ tslib_1.__exportStar(require("./useMenuPopoverStyles"), exports);
13
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuPopover/index.js"],"sourcesContent":["export * from './MenuPopover';\nexport * from './MenuPopover.types';\nexport * from './renderMenuPopover';\nexport * from './useMenuPopover';\nexport * from './useMenuPopoverStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
1
+ {"version":3,"mappings":";;;;;;AAAAA;AACAA;AACAA;AACAA;AACAA","names":["tslib_1"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuPopover/index.ts"],"sourcesContent":["export * from './MenuPopover';\nexport * from './MenuPopover.types';\nexport * from './renderMenuPopover';\nexport * from './useMenuPopover';\nexport * from './useMenuPopoverStyles';\n"]}
@@ -1,23 +1,28 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "renderMenuPopover_unstable", {
6
- enumerable: true,
7
- get: ()=>renderMenuPopover_unstable
4
+ value: true
8
5
  });
9
- const _interopRequireDefault = require("@swc/helpers/lib/_interop_require_default.js").default;
10
- const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
11
- const _extends = require("@swc/helpers/lib/_extends.js").default;
12
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
13
- const _reactUtilities = require("@fluentui/react-utilities");
14
- const _reactPortal = require("@fluentui/react-portal");
15
- const renderMenuPopover_unstable = (state)=>{
16
- const { slots , slotProps } = (0, _reactUtilities.getSlots)(state);
17
- if (state.inline) {
18
- return /*#__PURE__*/ _react.createElement(slots.root, _extends({}, slotProps.root));
19
- }
20
- return /*#__PURE__*/ _react.createElement(_reactPortal.Portal, null, /*#__PURE__*/ _react.createElement(slots.root, _extends({}, slotProps.root)));
21
- }; //# sourceMappingURL=renderMenuPopover.js.map
22
-
6
+ exports.renderMenuPopover_unstable = void 0;
7
+ const React = /*#__PURE__*/require("react");
8
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
+ const react_portal_1 = /*#__PURE__*/require("@fluentui/react-portal");
10
+ /**
11
+ * Render the final JSX of MenuPopover
12
+ */
13
+ const renderMenuPopover_unstable = state => {
14
+ const {
15
+ slots,
16
+ slotProps
17
+ } = react_utilities_1.getSlots(state);
18
+ if (state.inline) {
19
+ return React.createElement(slots.root, {
20
+ ...slotProps.root
21
+ });
22
+ }
23
+ return React.createElement(react_portal_1.Portal, null, React.createElement(slots.root, {
24
+ ...slotProps.root
25
+ }));
26
+ };
27
+ exports.renderMenuPopover_unstable = renderMenuPopover_unstable;
23
28
  //# sourceMappingURL=renderMenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuPopover/renderMenuPopover.js"],"sourcesContent":["import _extends from \"@swc/helpers/src/_extends.mjs\";\nimport * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { Portal } from '@fluentui/react-portal';\n/**\n * Render the final JSX of MenuPopover\n */\nexport const renderMenuPopover_unstable = state => {\n const {\n slots,\n slotProps\n } = getSlots(state);\n if (state.inline) {\n return /*#__PURE__*/React.createElement(slots.root, _extends({}, slotProps.root));\n }\n return /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement(slots.root, _extends({}, slotProps.root)));\n};\n//# sourceMappingURL=renderMenuPopover.js.map"],"names":["renderMenuPopover_unstable","state","slots","slotProps","getSlots","inline","React","createElement","root","_extends","Portal"],"mappings":";;;;+BAOaA;;aAAAA;;;;yBAPQ;6DACE;gCACE;6BACF;AAIhB,MAAMA,6BAA6BC,CAAAA,QAAS;IACjD,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,wBAAQ,EAACH;IACb,IAAIA,MAAMI,MAAM,EAAE;QAChB,OAAO,WAAW,GAAEC,OAAMC,aAAa,CAACL,MAAMM,IAAI,EAAEC,SAAS,CAAC,GAAGN,UAAUK,IAAI;IACjF,CAAC;IACD,OAAO,WAAW,GAAEF,OAAMC,aAAa,CAACG,mBAAM,EAAE,IAAI,EAAE,WAAW,GAAEJ,OAAMC,aAAa,CAACL,MAAMM,IAAI,EAAEC,SAAS,CAAC,GAAGN,UAAUK,IAAI;AAChI,GACA,6CAA6C"}
1
+ {"version":3,"mappings":";;;;;;AAAA;AACA;AAEA;AAEA;;;AAGO,MAAMA,0BAA0B,GAAIC,KAAuB,IAAI;EACpE,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAE,GAAGC,0BAAQ,CAAmBH,KAAK,CAAC;EAE9D,IAAIA,KAAK,CAACI,MAAM,EAAE;IAChB,OAAOC,oBAACJ,KAAK,CAACK,IAAI;MAAA,GAAKJ,SAAS,CAACI;IAAI,EAAI;;EAG3C,OACED,oBAACE,qBAAM,QACLF,oBAACJ,KAAK,CAACK,IAAI;IAAA,GAAKJ,SAAS,CAACI;EAAI,EAAI,CAC3B;AAEb,CAAC;AAZYE,kCAA0B","names":["renderMenuPopover_unstable","state","slots","slotProps","react_utilities_1","inline","React","root","react_portal_1","exports"],"sourceRoot":"","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>\n <slots.root {...slotProps.root} />\n </Portal>\n );\n};\n"]}
@@ -1,104 +1,113 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "useMenuPopover_unstable", {
6
- enumerable: true,
7
- get: ()=>useMenuPopover_unstable
4
+ value: true
8
5
  });
9
- const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
10
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
11
- const _keyboardKeys = require("@fluentui/keyboard-keys");
12
- const _reactUtilities = require("@fluentui/react-utilities");
13
- const _menuContext = require("../../contexts/menuContext");
14
- const _index = require("../../utils/index");
15
- const _reactSharedContexts = require("@fluentui/react-shared-contexts");
16
- const _useIsSubmenu = require("../../utils/useIsSubmenu");
17
- const useMenuPopover_unstable = (props, ref)=>{
18
- const popoverRef = (0, _menuContext.useMenuContext_unstable)((context)=>context.menuPopoverRef);
19
- const setOpen = (0, _menuContext.useMenuContext_unstable)((context)=>context.setOpen);
20
- const open = (0, _menuContext.useMenuContext_unstable)((context)=>context.open);
21
- const openOnHover = (0, _menuContext.useMenuContext_unstable)((context)=>context.openOnHover);
22
- const isSubmenu = (0, _useIsSubmenu.useIsSubmenu)();
23
- const canDispatchCustomEventRef = _react.useRef(true);
24
- const throttleDispatchTimerRef = _react.useRef(0);
25
- const { dir } = (0, _reactSharedContexts.useFluent_unstable)();
26
- const CloseArrowKey = dir === 'ltr' ? _keyboardKeys.ArrowLeft : _keyboardKeys.ArrowRight;
27
- // use DOM listener since react events propagate up the react tree
28
- // no need to do `contains` logic as menus are all positioned in different portals
29
- const mouseOverListenerCallbackRef = _react.useCallback((node)=>{
30
- if (node) {
31
- // Dispatches the custom menu mouse enter event with throttling
32
- // Needs to trigger on mouseover to support keyboard + mouse together
33
- // i.e. keyboard opens submenus while cursor is still on the parent
34
- node.addEventListener('mouseover', (e)=>{
35
- if (canDispatchCustomEventRef.current) {
36
- canDispatchCustomEventRef.current = false;
37
- (0, _index.dispatchMenuEnterEvent)(popoverRef.current, e);
38
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
39
- // @ts-ignore #16889 Node setTimeout type leaking
40
- throttleDispatchTimerRef.current = setTimeout(()=>canDispatchCustomEventRef.current = true, 250);
41
- }
42
- });
43
- }
44
- }, [
45
- popoverRef,
46
- throttleDispatchTimerRef
47
- ]);
48
- _react.useEffect(()=>{
49
- ()=>clearTimeout(throttleDispatchTimerRef.current);
50
- }, []);
51
- const inline = (0, _menuContext.useMenuContext_unstable)((context)=>context.inline) ?? false;
52
- const rootProps = (0, _reactUtilities.getNativeElementProps)('div', {
53
- role: 'presentation',
54
- ...props,
55
- ref: (0, _reactUtilities.useMergedRefs)(ref, popoverRef, mouseOverListenerCallbackRef)
56
- });
57
- const { onMouseEnter: onMouseEnterOriginal , onKeyDown: onKeyDownOriginal } = rootProps;
58
- rootProps.onMouseEnter = (0, _reactUtilities.useEventCallback)((event)=>{
59
- if (openOnHover) {
60
- setOpen(event, {
61
- open: true,
62
- keyboard: false,
63
- type: 'menuPopoverMouseEnter',
64
- event
65
- });
6
+ exports.useMenuPopover_unstable = void 0;
7
+ const React = /*#__PURE__*/require("react");
8
+ const keyboard_keys_1 = /*#__PURE__*/require("@fluentui/keyboard-keys");
9
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
10
+ const menuContext_1 = /*#__PURE__*/require("../../contexts/menuContext");
11
+ const index_1 = /*#__PURE__*/require("../../utils/index");
12
+ const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
13
+ const useIsSubmenu_1 = /*#__PURE__*/require("../../utils/useIsSubmenu");
14
+ /**
15
+ * Create the state required to render MenuPopover.
16
+ *
17
+ * The returned state can be modified with hooks such as useMenuPopoverStyles_unstable,
18
+ * before being passed to renderMenuPopover_unstable.
19
+ *
20
+ * @param props - props from this instance of MenuPopover
21
+ * @param ref - reference to root HTMLElement of MenuPopover
22
+ */
23
+ const useMenuPopover_unstable = (props, ref) => {
24
+ var _a;
25
+ const popoverRef = menuContext_1.useMenuContext_unstable(context => context.menuPopoverRef);
26
+ const setOpen = menuContext_1.useMenuContext_unstable(context => context.setOpen);
27
+ const open = menuContext_1.useMenuContext_unstable(context => context.open);
28
+ const openOnHover = menuContext_1.useMenuContext_unstable(context => context.openOnHover);
29
+ const isSubmenu = useIsSubmenu_1.useIsSubmenu();
30
+ const canDispatchCustomEventRef = React.useRef(true);
31
+ const throttleDispatchTimerRef = React.useRef(0);
32
+ const {
33
+ dir
34
+ } = react_shared_contexts_1.useFluent_unstable();
35
+ const CloseArrowKey = dir === 'ltr' ? keyboard_keys_1.ArrowLeft : keyboard_keys_1.ArrowRight;
36
+ // use DOM listener since react events propagate up the react tree
37
+ // no need to do `contains` logic as menus are all positioned in different portals
38
+ const mouseOverListenerCallbackRef = React.useCallback(node => {
39
+ if (node) {
40
+ // Dispatches the custom menu mouse enter event with throttling
41
+ // Needs to trigger on mouseover to support keyboard + mouse together
42
+ // i.e. keyboard opens submenus while cursor is still on the parent
43
+ node.addEventListener('mouseover', e => {
44
+ if (canDispatchCustomEventRef.current) {
45
+ canDispatchCustomEventRef.current = false;
46
+ index_1.dispatchMenuEnterEvent(popoverRef.current, e);
47
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
48
+ // @ts-ignore #16889 Node setTimeout type leaking
49
+ throttleDispatchTimerRef.current = setTimeout(() => canDispatchCustomEventRef.current = true, 250);
66
50
  }
67
- onMouseEnterOriginal === null || onMouseEnterOriginal === void 0 ? void 0 : onMouseEnterOriginal(event);
68
- });
69
- rootProps.onKeyDown = (0, _reactUtilities.useEventCallback)((event)=>{
70
- const key = event.key;
71
- if (key === _keyboardKeys.Escape || isSubmenu && key === CloseArrowKey) {
72
- var _popoverRef_current;
73
- if (open && ((_popoverRef_current = popoverRef.current) === null || _popoverRef_current === void 0 ? void 0 : _popoverRef_current.contains(event.target))) {
74
- setOpen(event, {
75
- open: false,
76
- keyboard: true,
77
- type: 'menuPopoverKeyDown',
78
- event
79
- });
80
- // stop propagation to avoid conflicting with other elements that listen for `Escape`
81
- // e,g: Dialog, Popover and Tooltip
82
- event.stopPropagation();
83
- }
84
- }
85
- if (key === _keyboardKeys.Tab) {
86
- setOpen(event, {
87
- open: false,
88
- keyboard: true,
89
- type: 'menuPopoverKeyDown',
90
- event
91
- });
92
- }
93
- onKeyDownOriginal === null || onKeyDownOriginal === void 0 ? void 0 : onKeyDownOriginal(event);
94
- });
95
- return {
96
- inline,
97
- components: {
98
- root: 'div'
99
- },
100
- root: rootProps
101
- };
102
- }; //# sourceMappingURL=useMenuPopover.js.map
103
-
51
+ });
52
+ }
53
+ }, [popoverRef, throttleDispatchTimerRef]);
54
+ React.useEffect(() => {
55
+ () => clearTimeout(throttleDispatchTimerRef.current);
56
+ }, []);
57
+ const inline = (_a = menuContext_1.useMenuContext_unstable(context => context.inline)) !== null && _a !== void 0 ? _a : false;
58
+ const rootProps = react_utilities_1.getNativeElementProps('div', {
59
+ role: 'presentation',
60
+ ...props,
61
+ ref: react_utilities_1.useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef)
62
+ });
63
+ const {
64
+ onMouseEnter: onMouseEnterOriginal,
65
+ onKeyDown: onKeyDownOriginal
66
+ } = rootProps;
67
+ rootProps.onMouseEnter = react_utilities_1.useEventCallback(event => {
68
+ if (openOnHover) {
69
+ setOpen(event, {
70
+ open: true,
71
+ keyboard: false,
72
+ type: 'menuPopoverMouseEnter',
73
+ event
74
+ });
75
+ }
76
+ onMouseEnterOriginal === null || onMouseEnterOriginal === void 0 ? void 0 : onMouseEnterOriginal(event);
77
+ });
78
+ rootProps.onKeyDown = react_utilities_1.useEventCallback(event => {
79
+ var _a;
80
+ const key = event.key;
81
+ if (key === keyboard_keys_1.Escape || isSubmenu && key === CloseArrowKey) {
82
+ if (open && ((_a = popoverRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
83
+ setOpen(event, {
84
+ open: false,
85
+ keyboard: true,
86
+ type: 'menuPopoverKeyDown',
87
+ event
88
+ });
89
+ // stop propagation to avoid conflicting with other elements that listen for `Escape`
90
+ // e,g: Dialog, Popover and Tooltip
91
+ event.stopPropagation();
92
+ }
93
+ }
94
+ if (key === keyboard_keys_1.Tab) {
95
+ setOpen(event, {
96
+ open: false,
97
+ keyboard: true,
98
+ type: 'menuPopoverKeyDown',
99
+ event
100
+ });
101
+ }
102
+ onKeyDownOriginal === null || onKeyDownOriginal === void 0 ? void 0 : onKeyDownOriginal(event);
103
+ });
104
+ return {
105
+ inline,
106
+ components: {
107
+ root: 'div'
108
+ },
109
+ root: rootProps
110
+ };
111
+ };
112
+ exports.useMenuPopover_unstable = useMenuPopover_unstable;
104
113
  //# sourceMappingURL=useMenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuPopover/useMenuPopover.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';\nimport { getNativeElementProps, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\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 * 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, ref) => {\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 const {\n dir\n } = useFluent();\n const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;\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(node => {\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, 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 }, [popoverRef, throttleDispatchTimerRef]);\n React.useEffect(() => {\n () => clearTimeout(throttleDispatchTimerRef.current);\n }, []);\n const inline = useMenuContext_unstable(context => context.inline) ?? false;\n const rootProps = getNativeElementProps('div', {\n role: 'presentation',\n ...props,\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef)\n });\n const {\n onMouseEnter: onMouseEnterOriginal,\n onKeyDown: onKeyDownOriginal\n } = rootProps;\n rootProps.onMouseEnter = useEventCallback(event => {\n if (openOnHover) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuPopoverMouseEnter',\n event\n });\n }\n onMouseEnterOriginal === null || onMouseEnterOriginal === void 0 ? void 0 : onMouseEnterOriginal(event);\n });\n rootProps.onKeyDown = useEventCallback(event => {\n const key = event.key;\n if (key === Escape || isSubmenu && key === CloseArrowKey) {\n var _popoverRef_current;\n if (open && ((_popoverRef_current = popoverRef.current) === null || _popoverRef_current === void 0 ? void 0 : _popoverRef_current.contains(event.target))) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuPopoverKeyDown',\n event\n });\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 if (key === Tab) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuPopoverKeyDown',\n event\n });\n }\n onKeyDownOriginal === null || onKeyDownOriginal === void 0 ? void 0 : onKeyDownOriginal(event);\n });\n return {\n inline,\n components: {\n root: 'div'\n },\n root: rootProps\n };\n};\n//# sourceMappingURL=useMenuPopover.js.map"],"names":["useMenuPopover_unstable","props","ref","popoverRef","useMenuContext_unstable","context","menuPopoverRef","setOpen","open","openOnHover","isSubmenu","useIsSubmenu","canDispatchCustomEventRef","React","useRef","throttleDispatchTimerRef","dir","useFluent","CloseArrowKey","ArrowLeft","ArrowRight","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","dispatchMenuEnterEvent","setTimeout","useEffect","clearTimeout","inline","rootProps","getNativeElementProps","role","useMergedRefs","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","useEventCallback","event","keyboard","type","key","Escape","_popoverRef_current","contains","target","stopPropagation","Tab","components","root"],"mappings":"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"}
1
+ {"version":3,"mappings":"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","names":["useMenuPopover_unstable","props","ref","popoverRef","menuContext_1","context","menuPopoverRef","setOpen","open","openOnHover","isSubmenu","useIsSubmenu_1","canDispatchCustomEventRef","React","useRef","throttleDispatchTimerRef","dir","react_shared_contexts_1","CloseArrowKey","keyboard_keys_1","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","index_1","setTimeout","useEffect","clearTimeout","inline","rootProps","react_utilities_1","role","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","event","keyboard","type","key","contains","target","stopPropagation","components","root","exports"],"sourceRoot":"","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 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 components: {\n root: 'div',\n },\n root: rootProps,\n };\n};\n"]}