@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,21 +1,21 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "MenuTrigger", {
6
- enumerable: true,
7
- get: ()=>MenuTrigger
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 _useMenuTrigger = require("./useMenuTrigger");
12
- const _renderMenuTrigger = require("./renderMenuTrigger");
13
- const MenuTrigger = (props)=>{
14
- const state = (0, _useMenuTrigger.useMenuTrigger_unstable)(props);
15
- return (0, _renderMenuTrigger.renderMenuTrigger_unstable)(state);
6
+ exports.MenuTrigger = void 0;
7
+ const useMenuTrigger_1 = /*#__PURE__*/require("./useMenuTrigger");
8
+ const renderMenuTrigger_1 = /*#__PURE__*/require("./renderMenuTrigger");
9
+ /**
10
+ * Wraps a trigger element as an only child
11
+ * and adds the necessary event handling to open a popup menu
12
+ */
13
+ const MenuTrigger = props => {
14
+ const state = useMenuTrigger_1.useMenuTrigger_unstable(props);
15
+ return renderMenuTrigger_1.renderMenuTrigger_unstable(state);
16
16
  };
17
- MenuTrigger.displayName = 'MenuTrigger';
17
+ exports.MenuTrigger = MenuTrigger;
18
+ exports.MenuTrigger.displayName = 'MenuTrigger';
18
19
  // type casting here is required to ensure internal type FluentTriggerComponent is not leaked
19
- MenuTrigger.isFluentTriggerComponent = true; //# sourceMappingURL=MenuTrigger.js.map
20
-
20
+ exports.MenuTrigger.isFluentTriggerComponent = true;
21
21
  //# sourceMappingURL=MenuTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuTrigger/MenuTrigger.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuTrigger_unstable } from './useMenuTrigger';\nimport { renderMenuTrigger_unstable } from './renderMenuTrigger';\n/**\n * Wraps a trigger element as an only child\n * and adds the necessary event handling to open a popup menu\n */\nexport const MenuTrigger = props => {\n const state = useMenuTrigger_unstable(props);\n return renderMenuTrigger_unstable(state);\n};\nMenuTrigger.displayName = 'MenuTrigger';\n// type casting here is required to ensure internal type FluentTriggerComponent is not leaked\nMenuTrigger.isFluentTriggerComponent = true;\n//# sourceMappingURL=MenuTrigger.js.map"],"names":["MenuTrigger","props","state","useMenuTrigger_unstable","renderMenuTrigger_unstable","displayName","isFluentTriggerComponent"],"mappings":";;;;+BAOaA;;aAAAA;;;6DAPU;gCACiB;mCACG;AAKpC,MAAMA,cAAcC,CAAAA,QAAS;IAClC,MAAMC,QAAQC,IAAAA,uCAAuB,EAACF;IACtC,OAAOG,IAAAA,6CAA0B,EAACF;AACpC;AACAF,YAAYK,WAAW,GAAG;AAC1B,6FAA6F;AAC7FL,YAAYM,wBAAwB,GAAG,IAAI,EAC3C,uCAAuC"}
1
+ {"version":3,"mappings":";;;;;;AACA;AACA;AAIA;;;;AAIO,MAAMA,WAAW,GAA+BC,KAAK,IAAG;EAC7D,MAAMC,KAAK,GAAGC,wCAAuB,CAACF,KAAK,CAAC;EAE5C,OAAOG,8CAA0B,CAACF,KAAK,CAAC;AAC1C,CAAC;AAJYG,mBAAW;AAMxBA,mBAAW,CAACC,WAAW,GAAG,aAAa;AACvC;AACCD,mBAAsC,CAACE,wBAAwB,GAAG,IAAI","names":["MenuTrigger","props","state","useMenuTrigger_1","renderMenuTrigger_1","exports","displayName","isFluentTriggerComponent"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuTrigger/MenuTrigger.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useMenuTrigger_unstable } from './useMenuTrigger';\nimport { renderMenuTrigger_unstable } from './renderMenuTrigger';\nimport type { MenuTriggerProps } from './MenuTrigger.types';\nimport type { FluentTriggerComponent } from '@fluentui/react-utilities';\n\n/**\n * Wraps a trigger element as an only child\n * and adds the necessary event handling to open a popup menu\n */\nexport const MenuTrigger: React.FC<MenuTriggerProps> = props => {\n const state = useMenuTrigger_unstable(props);\n\n return renderMenuTrigger_unstable(state);\n};\n\nMenuTrigger.displayName = 'MenuTrigger';\n// type casting here is required to ensure internal type FluentTriggerComponent is not leaked\n(MenuTrigger as FluentTriggerComponent).isFluentTriggerComponent = true;\n"]}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
+ value: true
4
5
  });
5
- const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
6
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
7
- //# sourceMappingURL=MenuTrigger.types.js.map
8
-
9
6
  //# sourceMappingURL=MenuTrigger.types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuTrigger/MenuTrigger.types.js"],"sourcesContent":["import * as React from 'react';\n//# sourceMappingURL=MenuTrigger.types.js.map"],"names":[],"mappings":";;;;;6DAAuB;CACvB,6CAA6C"}
1
+ {"version":3,"mappings":"","names":[],"sourceRoot":"","sources":[],"sourcesContent":[]}
@@ -1,12 +1,11 @@
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("./MenuTrigger"), exports);
7
- _exportStar(require("./MenuTrigger.types"), exports);
8
- _exportStar(require("./renderMenuTrigger"), exports);
9
- _exportStar(require("./useMenuTrigger"), exports);
10
- //# sourceMappingURL=index.js.map
11
-
6
+ const tslib_1 = /*#__PURE__*/require("tslib");
7
+ tslib_1.__exportStar(require("./MenuTrigger"), exports);
8
+ tslib_1.__exportStar(require("./MenuTrigger.types"), exports);
9
+ tslib_1.__exportStar(require("./renderMenuTrigger"), exports);
10
+ tslib_1.__exportStar(require("./useMenuTrigger"), exports);
12
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuTrigger/index.js"],"sourcesContent":["export * from './MenuTrigger';\nexport * from './MenuTrigger.types';\nexport * from './renderMenuTrigger';\nexport * from './useMenuTrigger';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;CACd,iCAAiC"}
1
+ {"version":3,"mappings":";;;;;;AAAAA;AACAA;AACAA;AACAA","names":["tslib_1"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuTrigger/index.ts"],"sourcesContent":["export * from './MenuTrigger';\nexport * from './MenuTrigger.types';\nexport * from './renderMenuTrigger';\nexport * from './useMenuTrigger';\n"]}
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "renderMenuTrigger_unstable", {
6
- enumerable: true,
7
- get: ()=>renderMenuTrigger_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 _menuTriggerContext = require("../../contexts/menuTriggerContext");
12
- const renderMenuTrigger_unstable = (state)=>{
13
- return /*#__PURE__*/ _react.createElement(_menuTriggerContext.MenuTriggerContextProvider, {
14
- value: state.isSubmenu
15
- }, state.children);
16
- }; //# sourceMappingURL=renderMenuTrigger.js.map
17
-
6
+ exports.renderMenuTrigger_unstable = void 0;
7
+ const React = /*#__PURE__*/require("react");
8
+ const menuTriggerContext_1 = /*#__PURE__*/require("../../contexts/menuTriggerContext");
9
+ /**
10
+ * Render the final JSX of MenuTrigger
11
+ *
12
+ * Only renders children
13
+ */
14
+ const renderMenuTrigger_unstable = state => {
15
+ return React.createElement(menuTriggerContext_1.MenuTriggerContextProvider, {
16
+ value: state.isSubmenu
17
+ }, state.children);
18
+ };
19
+ exports.renderMenuTrigger_unstable = renderMenuTrigger_unstable;
18
20
  //# sourceMappingURL=renderMenuTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuTrigger/renderMenuTrigger.js"],"sourcesContent":["import * as React from 'react';\nimport { MenuTriggerContextProvider } from '../../contexts/menuTriggerContext';\n/**\n * Render the final JSX of MenuTrigger\n *\n * Only renders children\n */\nexport const renderMenuTrigger_unstable = state => {\n return /*#__PURE__*/React.createElement(MenuTriggerContextProvider, {\n value: state.isSubmenu\n }, state.children);\n};\n//# sourceMappingURL=renderMenuTrigger.js.map"],"names":["renderMenuTrigger_unstable","state","React","createElement","MenuTriggerContextProvider","value","isSubmenu","children"],"mappings":";;;;+BAOaA;;aAAAA;;;6DAPU;oCACoB;AAMpC,MAAMA,6BAA6BC,CAAAA,QAAS;IACjD,OAAO,WAAW,GAAEC,OAAMC,aAAa,CAACC,8CAA0B,EAAE;QAClEC,OAAOJ,MAAMK,SAAS;IACxB,GAAGL,MAAMM,QAAQ;AACnB,GACA,6CAA6C"}
1
+ {"version":3,"mappings":";;;;;;AAAA;AACA;AAGA;;;;;AAKO,MAAMA,0BAA0B,GAAIC,KAAuB,IAAI;EACpE,OAAOC,oBAACC,+CAA0B;IAACC,KAAK,EAAEH,KAAK,CAACI;EAAS,GAAGJ,KAAK,CAACK,QAAQ,CAA8B;AAC1G,CAAC;AAFYC,kCAA0B","names":["renderMenuTrigger_unstable","state","React","menuTriggerContext_1","value","isSubmenu","children","exports"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuTrigger/renderMenuTrigger.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MenuTriggerContextProvider } from '../../contexts/menuTriggerContext';\nimport type { MenuTriggerState } from './MenuTrigger.types';\n\n/**\n * Render the final JSX of MenuTrigger\n *\n * Only renders children\n */\nexport const renderMenuTrigger_unstable = (state: MenuTriggerState) => {\n return <MenuTriggerContextProvider value={state.isSubmenu}>{state.children}</MenuTriggerContextProvider>;\n};\n"]}
@@ -1,168 +1,175 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "useMenuTrigger_unstable", {
6
- enumerable: true,
7
- get: ()=>useMenuTrigger_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 _menuContext = require("../../contexts/menuContext");
12
- const _useIsSubmenu = require("../../utils/useIsSubmenu");
13
- const _reactTabster = require("@fluentui/react-tabster");
14
- const _reactSharedContexts = require("@fluentui/react-shared-contexts");
15
- const _keyboardKeys = require("@fluentui/keyboard-keys");
16
- const _reactUtilities = require("@fluentui/react-utilities");
17
- const _reactAria = require("@fluentui/react-aria");
18
- const useMenuTrigger_unstable = (props)=>{
19
- const { children , disableButtonEnhancement =false } = props;
20
- const triggerRef = (0, _menuContext.useMenuContext_unstable)((context)=>context.triggerRef);
21
- const menuPopoverRef = (0, _menuContext.useMenuContext_unstable)((context)=>context.menuPopoverRef);
22
- const setOpen = (0, _menuContext.useMenuContext_unstable)((context)=>context.setOpen);
23
- const open = (0, _menuContext.useMenuContext_unstable)((context)=>context.open);
24
- const triggerId = (0, _menuContext.useMenuContext_unstable)((context)=>context.triggerId);
25
- const openOnHover = (0, _menuContext.useMenuContext_unstable)((context)=>context.openOnHover);
26
- const openOnContext = (0, _menuContext.useMenuContext_unstable)((context)=>context.openOnContext);
27
- const isSubmenu = (0, _useIsSubmenu.useIsSubmenu)();
28
- const { findFirstFocusable } = (0, _reactTabster.useFocusFinders)();
29
- const focusFirst = _react.useCallback(()=>{
30
- const firstFocusable = findFirstFocusable(menuPopoverRef.current);
31
- firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();
32
- }, [
33
- findFirstFocusable,
34
- menuPopoverRef
35
- ]);
36
- const openedWithKeyboardRef = _react.useRef(false);
37
- const hasMouseMoved = _react.useRef(false);
38
- const { dir } = (0, _reactSharedContexts.useFluent_unstable)();
39
- const OpenArrowKey = dir === 'ltr' ? _keyboardKeys.ArrowRight : _keyboardKeys.ArrowLeft;
40
- const child = (0, _reactUtilities.getTriggerChild)(children);
41
- const onContextMenu = (event)=>{
42
- if (isTargetDisabled(event)) {
43
- return;
44
- }
45
- if (openOnContext) {
46
- event.preventDefault();
47
- setOpen(event, {
48
- open: true,
49
- keyboard: false,
50
- type: 'menuTriggerContextMenu',
51
- event
52
- });
53
- }
54
- };
55
- const onClick = (event)=>{
56
- if (isTargetDisabled(event)) {
57
- return;
58
- }
59
- if (!openOnContext) {
60
- setOpen(event, {
61
- open: !open,
62
- keyboard: openedWithKeyboardRef.current,
63
- type: 'menuTriggerClick',
64
- event
65
- });
66
- openedWithKeyboardRef.current = false;
67
- }
68
- };
69
- const onKeyDown = (event)=>{
70
- if (isTargetDisabled(event)) {
71
- return;
72
- }
73
- const key = event.key;
74
- if (!openOnContext && (isSubmenu && key === OpenArrowKey || !isSubmenu && key === _keyboardKeys.ArrowDown)) {
75
- setOpen(event, {
76
- open: true,
77
- keyboard: true,
78
- type: 'menuTriggerKeyDown',
79
- event
80
- });
81
- }
82
- if (key === _keyboardKeys.Escape && !isSubmenu) {
83
- setOpen(event, {
84
- open: false,
85
- keyboard: true,
86
- type: 'menuTriggerKeyDown',
87
- event
88
- });
89
- }
90
- // if menu is already open, can't rely on effects to focus
91
- if (open && key === OpenArrowKey && isSubmenu) {
92
- focusFirst();
93
- }
94
- };
95
- const onMouseEnter = (event)=>{
96
- if (isTargetDisabled(event)) {
97
- return;
98
- }
99
- if (openOnHover && hasMouseMoved.current) {
100
- setOpen(event, {
101
- open: true,
102
- keyboard: false,
103
- type: 'menuTriggerMouseEnter',
104
- event
105
- });
106
- }
107
- };
108
- // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience
109
- // First time open the mouse using mousemove and then continue with mouseenter
110
- // Only use once to determine that the user is using the mouse since it is an expensive event to handle
111
- const onMouseMove = (event)=>{
112
- if (isTargetDisabled(event)) {
113
- return;
114
- }
115
- if (openOnHover && !hasMouseMoved.current) {
116
- setOpen(event, {
117
- open: true,
118
- keyboard: false,
119
- type: 'menuTriggerMouseMove',
120
- event
121
- });
122
- hasMouseMoved.current = true;
123
- }
124
- };
125
- const onMouseLeave = (event)=>{
126
- if (isTargetDisabled(event)) {
127
- return;
128
- }
129
- if (openOnHover) {
130
- setOpen(event, {
131
- open: false,
132
- keyboard: false,
133
- type: 'menuTriggerMouseLeave',
134
- event
135
- });
136
- }
137
- };
138
- const contextMenuProps = {
139
- id: triggerId,
140
- ...child === null || child === void 0 ? void 0 : child.props,
141
- ref: (0, _reactUtilities.useMergedRefs)(triggerRef, child === null || child === void 0 ? void 0 : child.ref),
142
- onMouseEnter: (0, _reactUtilities.useEventCallback)((0, _reactUtilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onMouseEnter, onMouseEnter)),
143
- onMouseLeave: (0, _reactUtilities.useEventCallback)((0, _reactUtilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onMouseLeave, onMouseLeave)),
144
- onContextMenu: (0, _reactUtilities.useEventCallback)((0, _reactUtilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onContextMenu, onContextMenu)),
145
- onMouseMove: (0, _reactUtilities.useEventCallback)((0, _reactUtilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onMouseMove, onMouseMove))
146
- };
147
- const triggerChildProps = {
148
- 'aria-haspopup': 'menu',
149
- 'aria-expanded': !open && !isSubmenu ? undefined : open,
150
- ...contextMenuProps,
151
- onClick: (0, _reactUtilities.useEventCallback)((0, _reactUtilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onClick, onClick)),
152
- onKeyDown: (0, _reactUtilities.useEventCallback)((0, _reactUtilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onKeyDown, onKeyDown))
153
- };
154
- const ariaButtonTriggerChildProps = (0, _reactAria.useARIAButtonProps)((child === null || child === void 0 ? void 0 : child.type) === 'button' || (child === null || child === void 0 ? void 0 : child.type) === 'a' ? child.type : 'div', triggerChildProps);
155
- return {
156
- isSubmenu,
157
- children: (0, _reactUtilities.applyTriggerPropsToChildren)(children, openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps)
158
- };
159
- };
160
- const isTargetDisabled = (e)=>{
161
- const isDisabled = (el)=>el.hasAttribute('disabled') || el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true';
162
- if (e.target instanceof HTMLElement && isDisabled(e.target)) {
163
- return true;
6
+ exports.useMenuTrigger_unstable = void 0;
7
+ const React = /*#__PURE__*/require("react");
8
+ const menuContext_1 = /*#__PURE__*/require("../../contexts/menuContext");
9
+ const useIsSubmenu_1 = /*#__PURE__*/require("../../utils/useIsSubmenu");
10
+ const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
11
+ const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
12
+ const keyboard_keys_1 = /*#__PURE__*/require("@fluentui/keyboard-keys");
13
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
14
+ const react_aria_1 = /*#__PURE__*/require("@fluentui/react-aria");
15
+ /**
16
+ * Create the state required to render MenuTrigger.
17
+ * Clones the only child component and adds necessary event handling behaviours to open a popup menu
18
+ *
19
+ * @param props - props from this instance of MenuTrigger
20
+ */
21
+ const useMenuTrigger_unstable = props => {
22
+ const {
23
+ children,
24
+ disableButtonEnhancement = false
25
+ } = props;
26
+ const triggerRef = menuContext_1.useMenuContext_unstable(context => context.triggerRef);
27
+ const menuPopoverRef = menuContext_1.useMenuContext_unstable(context => context.menuPopoverRef);
28
+ const setOpen = menuContext_1.useMenuContext_unstable(context => context.setOpen);
29
+ const open = menuContext_1.useMenuContext_unstable(context => context.open);
30
+ const triggerId = menuContext_1.useMenuContext_unstable(context => context.triggerId);
31
+ const openOnHover = menuContext_1.useMenuContext_unstable(context => context.openOnHover);
32
+ const openOnContext = menuContext_1.useMenuContext_unstable(context => context.openOnContext);
33
+ const isSubmenu = useIsSubmenu_1.useIsSubmenu();
34
+ const {
35
+ findFirstFocusable
36
+ } = react_tabster_1.useFocusFinders();
37
+ const focusFirst = React.useCallback(() => {
38
+ const firstFocusable = findFirstFocusable(menuPopoverRef.current);
39
+ firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();
40
+ }, [findFirstFocusable, menuPopoverRef]);
41
+ const openedWithKeyboardRef = React.useRef(false);
42
+ const hasMouseMoved = React.useRef(false);
43
+ const {
44
+ dir
45
+ } = react_shared_contexts_1.useFluent_unstable();
46
+ const OpenArrowKey = dir === 'ltr' ? keyboard_keys_1.ArrowRight : keyboard_keys_1.ArrowLeft;
47
+ const child = react_utilities_1.getTriggerChild(children);
48
+ const onContextMenu = event => {
49
+ if (isTargetDisabled(event)) {
50
+ return;
164
51
  }
165
- return e.currentTarget instanceof HTMLElement && isDisabled(e.currentTarget);
166
- }; //# sourceMappingURL=useMenuTrigger.js.map
167
-
52
+ if (openOnContext) {
53
+ event.preventDefault();
54
+ setOpen(event, {
55
+ open: true,
56
+ keyboard: false,
57
+ type: 'menuTriggerContextMenu',
58
+ event
59
+ });
60
+ }
61
+ };
62
+ const onClick = event => {
63
+ if (isTargetDisabled(event)) {
64
+ return;
65
+ }
66
+ if (!openOnContext) {
67
+ setOpen(event, {
68
+ open: !open,
69
+ keyboard: openedWithKeyboardRef.current,
70
+ type: 'menuTriggerClick',
71
+ event
72
+ });
73
+ openedWithKeyboardRef.current = false;
74
+ }
75
+ };
76
+ const onKeyDown = event => {
77
+ if (isTargetDisabled(event)) {
78
+ return;
79
+ }
80
+ const key = event.key;
81
+ if (!openOnContext && (isSubmenu && key === OpenArrowKey || !isSubmenu && key === keyboard_keys_1.ArrowDown)) {
82
+ setOpen(event, {
83
+ open: true,
84
+ keyboard: true,
85
+ type: 'menuTriggerKeyDown',
86
+ event
87
+ });
88
+ }
89
+ if (key === keyboard_keys_1.Escape && !isSubmenu) {
90
+ setOpen(event, {
91
+ open: false,
92
+ keyboard: true,
93
+ type: 'menuTriggerKeyDown',
94
+ event
95
+ });
96
+ }
97
+ // if menu is already open, can't rely on effects to focus
98
+ if (open && key === OpenArrowKey && isSubmenu) {
99
+ focusFirst();
100
+ }
101
+ };
102
+ const onMouseEnter = event => {
103
+ if (isTargetDisabled(event)) {
104
+ return;
105
+ }
106
+ if (openOnHover && hasMouseMoved.current) {
107
+ setOpen(event, {
108
+ open: true,
109
+ keyboard: false,
110
+ type: 'menuTriggerMouseEnter',
111
+ event
112
+ });
113
+ }
114
+ };
115
+ // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience
116
+ // First time open the mouse using mousemove and then continue with mouseenter
117
+ // Only use once to determine that the user is using the mouse since it is an expensive event to handle
118
+ const onMouseMove = event => {
119
+ if (isTargetDisabled(event)) {
120
+ return;
121
+ }
122
+ if (openOnHover && !hasMouseMoved.current) {
123
+ setOpen(event, {
124
+ open: true,
125
+ keyboard: false,
126
+ type: 'menuTriggerMouseMove',
127
+ event
128
+ });
129
+ hasMouseMoved.current = true;
130
+ }
131
+ };
132
+ const onMouseLeave = event => {
133
+ if (isTargetDisabled(event)) {
134
+ return;
135
+ }
136
+ if (openOnHover) {
137
+ setOpen(event, {
138
+ open: false,
139
+ keyboard: false,
140
+ type: 'menuTriggerMouseLeave',
141
+ event
142
+ });
143
+ }
144
+ };
145
+ const contextMenuProps = {
146
+ id: triggerId,
147
+ ...(child === null || child === void 0 ? void 0 : child.props),
148
+ ref: react_utilities_1.useMergedRefs(triggerRef, child === null || child === void 0 ? void 0 : child.ref),
149
+ onMouseEnter: react_utilities_1.useEventCallback(react_utilities_1.mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseEnter, onMouseEnter)),
150
+ onMouseLeave: react_utilities_1.useEventCallback(react_utilities_1.mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseLeave, onMouseLeave)),
151
+ onContextMenu: react_utilities_1.useEventCallback(react_utilities_1.mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onContextMenu, onContextMenu)),
152
+ onMouseMove: react_utilities_1.useEventCallback(react_utilities_1.mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseMove, onMouseMove))
153
+ };
154
+ const triggerChildProps = {
155
+ 'aria-haspopup': 'menu',
156
+ 'aria-expanded': !open && !isSubmenu ? undefined : open,
157
+ ...contextMenuProps,
158
+ onClick: react_utilities_1.useEventCallback(react_utilities_1.mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onClick, onClick)),
159
+ onKeyDown: react_utilities_1.useEventCallback(react_utilities_1.mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onKeyDown, onKeyDown))
160
+ };
161
+ const ariaButtonTriggerChildProps = react_aria_1.useARIAButtonProps((child === null || child === void 0 ? void 0 : child.type) === 'button' || (child === null || child === void 0 ? void 0 : child.type) === 'a' ? child.type : 'div', triggerChildProps);
162
+ return {
163
+ isSubmenu,
164
+ children: react_utilities_1.applyTriggerPropsToChildren(children, openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps)
165
+ };
166
+ };
167
+ exports.useMenuTrigger_unstable = useMenuTrigger_unstable;
168
+ const isTargetDisabled = e => {
169
+ const isDisabled = el => el.hasAttribute('disabled') || el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true';
170
+ if (e.target instanceof HTMLElement && isDisabled(e.target)) {
171
+ return true;
172
+ }
173
+ return e.currentTarget instanceof HTMLElement && isDisabled(e.currentTarget);
174
+ };
168
175
  //# sourceMappingURL=useMenuTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuTrigger/useMenuTrigger.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowRight, ArrowLeft, Escape, ArrowDown } from '@fluentui/keyboard-keys';\nimport { applyTriggerPropsToChildren, getTriggerChild, mergeCallbacks, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\n/**\n * Create the state required to render MenuTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup menu\n *\n * @param props - props from this instance of MenuTrigger\n */\nexport const useMenuTrigger_unstable = props => {\n const {\n children,\n disableButtonEnhancement = false\n } = props;\n const triggerRef = useMenuContext_unstable(context => context.triggerRef);\n const menuPopoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const openOnContext = useMenuContext_unstable(context => context.openOnContext);\n const isSubmenu = useIsSubmenu();\n const {\n findFirstFocusable\n } = useFocusFinders();\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(menuPopoverRef.current);\n firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();\n }, [findFirstFocusable, menuPopoverRef]);\n const openedWithKeyboardRef = React.useRef(false);\n const hasMouseMoved = React.useRef(false);\n const {\n dir\n } = useFluent();\n const OpenArrowKey = dir === 'ltr' ? ArrowRight : ArrowLeft;\n const child = getTriggerChild(children);\n const onContextMenu = event => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnContext) {\n event.preventDefault();\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerContextMenu',\n event\n });\n }\n };\n const onClick = event => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (!openOnContext) {\n setOpen(event, {\n open: !open,\n keyboard: openedWithKeyboardRef.current,\n type: 'menuTriggerClick',\n event\n });\n openedWithKeyboardRef.current = false;\n }\n };\n const onKeyDown = event => {\n if (isTargetDisabled(event)) {\n return;\n }\n const key = event.key;\n if (!openOnContext && (isSubmenu && key === OpenArrowKey || !isSubmenu && key === ArrowDown)) {\n setOpen(event, {\n open: true,\n keyboard: true,\n type: 'menuTriggerKeyDown',\n event\n });\n }\n if (key === Escape && !isSubmenu) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuTriggerKeyDown',\n event\n });\n }\n // if menu is already open, can't rely on effects to focus\n if (open && key === OpenArrowKey && isSubmenu) {\n focusFirst();\n }\n };\n const onMouseEnter = event => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && hasMouseMoved.current) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerMouseEnter',\n event\n });\n }\n };\n // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience\n // First time open the mouse using mousemove and then continue with mouseenter\n // Only use once to determine that the user is using the mouse since it is an expensive event to handle\n const onMouseMove = event => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && !hasMouseMoved.current) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerMouseMove',\n event\n });\n hasMouseMoved.current = true;\n }\n };\n const onMouseLeave = event => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover) {\n setOpen(event, {\n open: false,\n keyboard: false,\n type: 'menuTriggerMouseLeave',\n event\n });\n }\n };\n const contextMenuProps = {\n id: triggerId,\n ...(child === null || child === void 0 ? void 0 : child.props),\n ref: useMergedRefs(triggerRef, child === null || child === void 0 ? void 0 : child.ref),\n onMouseEnter: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseEnter, onMouseEnter)),\n onMouseLeave: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseLeave, onMouseLeave)),\n onContextMenu: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onContextMenu, onContextMenu)),\n onMouseMove: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseMove, onMouseMove))\n };\n const triggerChildProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': !open && !isSubmenu ? undefined : open,\n ...contextMenuProps,\n onClick: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onClick, onClick)),\n onKeyDown: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onKeyDown, onKeyDown))\n };\n const ariaButtonTriggerChildProps = useARIAButtonProps((child === null || child === void 0 ? void 0 : child.type) === 'button' || (child === null || child === void 0 ? void 0 : child.type) === 'a' ? child.type : 'div', triggerChildProps);\n return {\n isSubmenu,\n children: applyTriggerPropsToChildren(children, openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps)\n };\n};\nconst isTargetDisabled = e => {\n const isDisabled = el => el.hasAttribute('disabled') || el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true';\n if (e.target instanceof HTMLElement && isDisabled(e.target)) {\n return true;\n }\n return e.currentTarget instanceof HTMLElement && isDisabled(e.currentTarget);\n};\n//# sourceMappingURL=useMenuTrigger.js.map"],"names":["useMenuTrigger_unstable","props","children","disableButtonEnhancement","triggerRef","useMenuContext_unstable","context","menuPopoverRef","setOpen","open","triggerId","openOnHover","openOnContext","isSubmenu","useIsSubmenu","findFirstFocusable","useFocusFinders","focusFirst","React","useCallback","firstFocusable","current","focus","openedWithKeyboardRef","useRef","hasMouseMoved","dir","useFluent","OpenArrowKey","ArrowRight","ArrowLeft","child","getTriggerChild","onContextMenu","event","isTargetDisabled","preventDefault","keyboard","type","onClick","onKeyDown","key","ArrowDown","Escape","onMouseEnter","onMouseMove","onMouseLeave","contextMenuProps","id","ref","useMergedRefs","useEventCallback","mergeCallbacks","triggerChildProps","undefined","ariaButtonTriggerChildProps","useARIAButtonProps","applyTriggerPropsToChildren","e","isDisabled","el","hasAttribute","getAttribute","target","HTMLElement","currentTarget"],"mappings":"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"}
1
+ {"version":3,"mappings":"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","names":["useMenuTrigger_unstable","props","children","disableButtonEnhancement","triggerRef","menuContext_1","context","menuPopoverRef","setOpen","open","triggerId","openOnHover","openOnContext","isSubmenu","useIsSubmenu_1","findFirstFocusable","react_tabster_1","focusFirst","React","useCallback","firstFocusable","current","focus","openedWithKeyboardRef","useRef","hasMouseMoved","dir","react_shared_contexts_1","OpenArrowKey","keyboard_keys_1","child","react_utilities_1","onContextMenu","event","isTargetDisabled","preventDefault","keyboard","type","onClick","onKeyDown","key","onMouseEnter","onMouseMove","onMouseLeave","contextMenuProps","id","ref","triggerChildProps","undefined","ariaButtonTriggerChildProps","react_aria_1","exports","e","isDisabled","el","hasAttribute","getAttribute","target","HTMLElement","currentTarget"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuTrigger/useMenuTrigger.ts"],"sourcesContent":["import * as React from 'react';\nimport { MenuTriggerProps, MenuTriggerState } from './MenuTrigger.types';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowRight, ArrowLeft, Escape, ArrowDown } from '@fluentui/keyboard-keys';\nimport {\n applyTriggerPropsToChildren,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\n\n/**\n * Create the state required to render MenuTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup menu\n *\n * @param props - props from this instance of MenuTrigger\n */\nexport const useMenuTrigger_unstable = (props: MenuTriggerProps): MenuTriggerState => {\n const { children, disableButtonEnhancement = false } = props;\n\n const triggerRef = useMenuContext_unstable(context => context.triggerRef);\n const menuPopoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const openOnContext = useMenuContext_unstable(context => context.openOnContext);\n\n const isSubmenu = useIsSubmenu();\n\n const { findFirstFocusable } = useFocusFinders();\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(menuPopoverRef.current);\n firstFocusable?.focus();\n }, [findFirstFocusable, menuPopoverRef]);\n\n const openedWithKeyboardRef = React.useRef(false);\n const hasMouseMoved = React.useRef(false);\n\n const { dir } = useFluent();\n const OpenArrowKey = dir === 'ltr' ? ArrowRight : ArrowLeft;\n\n const child = getTriggerChild(children);\n\n const onContextMenu = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (openOnContext) {\n event.preventDefault();\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerContextMenu', event });\n }\n };\n\n const onClick = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (!openOnContext) {\n setOpen(event, { open: !open, keyboard: openedWithKeyboardRef.current, type: 'menuTriggerClick', event });\n openedWithKeyboardRef.current = false;\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n const key = event.key;\n\n if (!openOnContext && ((isSubmenu && key === OpenArrowKey) || (!isSubmenu && key === ArrowDown))) {\n setOpen(event, { open: true, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n if (key === Escape && !isSubmenu) {\n setOpen(event, { open: false, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n // if menu is already open, can't rely on effects to focus\n if (open && key === OpenArrowKey && isSubmenu) {\n focusFirst();\n }\n };\n\n const onMouseEnter = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && hasMouseMoved.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseEnter', event });\n }\n };\n\n // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience\n // First time open the mouse using mousemove and then continue with mouseenter\n // Only use once to determine that the user is using the mouse since it is an expensive event to handle\n const onMouseMove = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && !hasMouseMoved.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseMove', event });\n hasMouseMoved.current = true;\n }\n };\n\n const onMouseLeave = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover) {\n setOpen(event, { open: false, keyboard: false, type: 'menuTriggerMouseLeave', event });\n }\n };\n\n const contextMenuProps = {\n id: triggerId,\n ...child?.props,\n ref: useMergedRefs(triggerRef, child?.ref),\n onMouseEnter: useEventCallback(mergeCallbacks(child?.props.onMouseEnter, onMouseEnter)),\n onMouseLeave: useEventCallback(mergeCallbacks(child?.props.onMouseLeave, onMouseLeave)),\n onContextMenu: useEventCallback(mergeCallbacks(child?.props.onContextMenu, onContextMenu)),\n onMouseMove: useEventCallback(mergeCallbacks(child?.props.onMouseMove, onMouseMove)),\n };\n\n const triggerChildProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': !open && !isSubmenu ? undefined : open,\n ...contextMenuProps,\n onClick: useEventCallback(mergeCallbacks(child?.props.onClick, onClick)),\n onKeyDown: useEventCallback(mergeCallbacks(child?.props.onKeyDown, onKeyDown)),\n } as const;\n\n const ariaButtonTriggerChildProps = useARIAButtonProps(\n child?.type === 'button' || child?.type === 'a' ? child.type : 'div',\n triggerChildProps,\n );\n\n return {\n isSubmenu,\n children: applyTriggerPropsToChildren(\n children,\n openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps,\n ),\n };\n};\n\nconst isTargetDisabled = (e: React.SyntheticEvent | Event) => {\n const isDisabled = (el: HTMLElement) =>\n el.hasAttribute('disabled') || (el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true');\n if (e.target instanceof HTMLElement && isDisabled(e.target)) {\n return true;\n }\n\n return e.currentTarget instanceof HTMLElement && isDisabled(e.currentTarget);\n};\n"]}
@@ -1,10 +1,9 @@
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("./MenuItem/index"), exports);
7
- _exportStar(require("./MenuList/index"), exports);
8
- //# sourceMappingURL=index.js.map
9
-
6
+ const tslib_1 = /*#__PURE__*/require("tslib");
7
+ tslib_1.__exportStar(require("./MenuItem/index"), exports);
8
+ tslib_1.__exportStar(require("./MenuList/index"), exports);
10
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/components/index.js"],"sourcesContent":["export * from './MenuItem/index';\nexport * from './MenuList/index';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;CACd,iCAAiC"}
1
+ {"version":3,"mappings":";;;;;;AAAAA;AACAA","names":["tslib_1"],"sourceRoot":"","sources":["../../../../../../../../packages/react-components/react-menu/src/components/index.ts"],"sourcesContent":["export * from './MenuItem/index';\nexport * from './MenuList/index';\n"]}
@@ -1,46 +1,32 @@
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
- MenuContext: ()=>MenuContext,
13
- MenuProvider: ()=>MenuProvider,
14
- useMenuContext_unstable: ()=>useMenuContext_unstable
4
+ value: true
15
5
  });
16
- const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
17
- const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
18
- const _reactContextSelector = require("@fluentui/react-context-selector");
19
- const MenuContext = /*#__PURE__*/ (0, _reactContextSelector.createContext)(undefined);
6
+ exports.useMenuContext_unstable = exports.MenuProvider = exports.MenuContext = void 0;
7
+ const react_context_selector_1 = /*#__PURE__*/require("@fluentui/react-context-selector");
8
+ exports.MenuContext = /*#__PURE__*/react_context_selector_1.createContext(undefined);
20
9
  const menuContextDefaultValue = {
21
- open: false,
22
- setOpen: ()=>false,
23
- checkedValues: {},
24
- onCheckedValueChange: ()=>null,
25
- isSubmenu: false,
26
- triggerRef: {
27
- current: null
28
- },
29
- menuPopoverRef: {
30
- current: null
31
- },
32
- triggerId: '',
33
- openOnContext: false,
34
- openOnHover: false,
35
- hasIcons: false,
36
- hasCheckmarks: false,
37
- inline: false,
38
- persistOnItemClick: false
10
+ open: false,
11
+ setOpen: () => false,
12
+ checkedValues: {},
13
+ onCheckedValueChange: () => null,
14
+ isSubmenu: false,
15
+ triggerRef: {
16
+ current: null
17
+ },
18
+ menuPopoverRef: {
19
+ current: null
20
+ },
21
+ triggerId: '',
22
+ openOnContext: false,
23
+ openOnHover: false,
24
+ hasIcons: false,
25
+ hasCheckmarks: false,
26
+ inline: false,
27
+ persistOnItemClick: false
39
28
  };
40
- const MenuProvider = MenuContext.Provider;
41
- const useMenuContext_unstable = (selector)=>(0, _reactContextSelector.useContextSelector)(MenuContext, function() {
42
- let ctx = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : menuContextDefaultValue;
43
- return selector(ctx);
44
- }); //# sourceMappingURL=menuContext.js.map
45
-
29
+ exports.MenuProvider = exports.MenuContext.Provider;
30
+ const useMenuContext_unstable = selector => react_context_selector_1.useContextSelector(exports.MenuContext, (ctx = menuContextDefaultValue) => selector(ctx));
31
+ exports.useMenuContext_unstable = useMenuContext_unstable;
46
32
  //# sourceMappingURL=menuContext.js.map