@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,23 +1,22 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "MenuList", {
6
- enumerable: true,
7
- get: ()=>MenuList
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 _useMenuList = require("./useMenuList");
12
- const _renderMenuList = require("./renderMenuList");
13
- const _useMenuListContextValues = require("./useMenuListContextValues");
14
- const _useMenuListStyles = require("./useMenuListStyles");
15
- const MenuList = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
16
- const state = (0, _useMenuList.useMenuList_unstable)(props, ref);
17
- const contextValues = (0, _useMenuListContextValues.useMenuListContextValues_unstable)(state);
18
- (0, _useMenuListStyles.useMenuListStyles_unstable)(state);
19
- return (0, _renderMenuList.renderMenuList_unstable)(state, contextValues);
6
+ exports.MenuList = void 0;
7
+ const React = /*#__PURE__*/require("react");
8
+ const useMenuList_1 = /*#__PURE__*/require("./useMenuList");
9
+ const renderMenuList_1 = /*#__PURE__*/require("./renderMenuList");
10
+ const useMenuListContextValues_1 = /*#__PURE__*/require("./useMenuListContextValues");
11
+ const useMenuListStyles_1 = /*#__PURE__*/require("./useMenuListStyles");
12
+ /**
13
+ * Define a styled MenuList, using the `useMenuList_unstable` hook.
14
+ */
15
+ exports.MenuList = /*#__PURE__*/React.forwardRef((props, ref) => {
16
+ const state = useMenuList_1.useMenuList_unstable(props, ref);
17
+ const contextValues = useMenuListContextValues_1.useMenuListContextValues_unstable(state);
18
+ useMenuListStyles_1.useMenuListStyles_unstable(state);
19
+ return renderMenuList_1.renderMenuList_unstable(state, contextValues);
20
20
  });
21
- MenuList.displayName = 'MenuList'; //# sourceMappingURL=MenuList.js.map
22
-
21
+ exports.MenuList.displayName = 'MenuList';
23
22
  //# sourceMappingURL=MenuList.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuList/MenuList.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuList_unstable } from './useMenuList';\nimport { renderMenuList_unstable } from './renderMenuList';\nimport { useMenuListContextValues_unstable } from './useMenuListContextValues';\nimport { useMenuListStyles_unstable } from './useMenuListStyles';\n/**\n * Define a styled MenuList, using the `useMenuList_unstable` hook.\n */\nexport const MenuList = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useMenuList_unstable(props, ref);\n const contextValues = useMenuListContextValues_unstable(state);\n useMenuListStyles_unstable(state);\n return renderMenuList_unstable(state, contextValues);\n});\nMenuList.displayName = 'MenuList';\n//# sourceMappingURL=MenuList.js.map"],"names":["MenuList","React","forwardRef","props","ref","state","useMenuList_unstable","contextValues","useMenuListContextValues_unstable","useMenuListStyles_unstable","renderMenuList_unstable","displayName"],"mappings":";;;;+BAQaA;;aAAAA;;;6DARU;6BACc;gCACG;0CACU;mCACP;AAIpC,MAAMA,WAAW,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACpE,MAAMC,QAAQC,IAAAA,iCAAoB,EAACH,OAAOC;IAC1C,MAAMG,gBAAgBC,IAAAA,2DAAiC,EAACH;IACxDI,IAAAA,6CAA0B,EAACJ;IAC3B,OAAOK,IAAAA,uCAAuB,EAACL,OAAOE;AACxC;AACAP,SAASW,WAAW,GAAG,YACvB,oCAAoC"}
1
+ {"version":3,"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AAIA;;;AAGaA,gBAAQ,gBAAuCC,KAAK,CAACC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAI;EAC1F,MAAMC,KAAK,GAAGC,kCAAoB,CAACH,KAAK,EAAEC,GAAG,CAAC;EAC9C,MAAMG,aAAa,GAAGC,4DAAiC,CAACH,KAAK,CAAC;EAC9DI,8CAA0B,CAACJ,KAAK,CAAC;EAEjC,OAAOK,wCAAuB,CAACL,KAAK,EAAEE,aAAa,CAAC;AACtD,CAAC,CAAC;AAEFP,gBAAQ,CAACW,WAAW,GAAG,UAAU","names":["exports","React","forwardRef","props","ref","state","useMenuList_1","contextValues","useMenuListContextValues_1","useMenuListStyles_1","renderMenuList_1","displayName"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuList/MenuList.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useMenuList_unstable } from './useMenuList';\nimport { renderMenuList_unstable } from './renderMenuList';\nimport { useMenuListContextValues_unstable } from './useMenuListContextValues';\nimport { useMenuListStyles_unstable } from './useMenuListStyles';\nimport type { MenuListProps } from './MenuList.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * Define a styled MenuList, using the `useMenuList_unstable` hook.\n */\nexport const MenuList: ForwardRefComponent<MenuListProps> = React.forwardRef((props, ref) => {\n const state = useMenuList_unstable(props, ref);\n const contextValues = useMenuListContextValues_unstable(state);\n useMenuListStyles_unstable(state);\n\n return renderMenuList_unstable(state, contextValues);\n});\n\nMenuList.displayName = 'MenuList';\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=MenuList.types.js.map
8
-
9
6
  //# sourceMappingURL=MenuList.types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuList/MenuList.types.js"],"sourcesContent":["import * as React from 'react';\n//# sourceMappingURL=MenuList.types.js.map"],"names":[],"mappings":";;;;;6DAAuB;CACvB,0CAA0C"}
1
+ {"version":3,"mappings":"","names":[],"sourceRoot":"","sources":[],"sourcesContent":[]}
@@ -1,14 +1,13 @@
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("./MenuList"), exports);
7
- _exportStar(require("./MenuList.types"), exports);
8
- _exportStar(require("./renderMenuList"), exports);
9
- _exportStar(require("./useMenuList"), exports);
10
- _exportStar(require("./useMenuListStyles"), exports);
11
- _exportStar(require("./useMenuListContextValues"), exports);
12
- //# sourceMappingURL=index.js.map
13
-
6
+ const tslib_1 = /*#__PURE__*/require("tslib");
7
+ tslib_1.__exportStar(require("./MenuList"), exports);
8
+ tslib_1.__exportStar(require("./MenuList.types"), exports);
9
+ tslib_1.__exportStar(require("./renderMenuList"), exports);
10
+ tslib_1.__exportStar(require("./useMenuList"), exports);
11
+ tslib_1.__exportStar(require("./useMenuListStyles"), exports);
12
+ tslib_1.__exportStar(require("./useMenuListContextValues"), exports);
14
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuList/index.js"],"sourcesContent":["export * from './MenuList';\nexport * from './MenuList.types';\nexport * from './renderMenuList';\nexport * from './useMenuList';\nexport * from './useMenuListStyles';\nexport * from './useMenuListContextValues';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
1
+ {"version":3,"mappings":";;;;;;AAAAA;AACAA;AACAA;AACAA;AACAA;AACAA","names":["tslib_1"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuList/index.ts"],"sourcesContent":["export * from './MenuList';\nexport * from './MenuList.types';\nexport * from './renderMenuList';\nexport * from './useMenuList';\nexport * from './useMenuListStyles';\nexport * from './useMenuListContextValues';\n"]}
@@ -1,22 +1,25 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "renderMenuList_unstable", {
6
- enumerable: true,
7
- get: ()=>renderMenuList_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 _menuListContext = require("../../contexts/menuListContext");
15
- const renderMenuList_unstable = (state, contextValues)=>{
16
- const { slots , slotProps } = (0, _reactUtilities.getSlots)(state);
17
- return /*#__PURE__*/ _react.createElement(_menuListContext.MenuListProvider, {
18
- value: contextValues.menuList
19
- }, /*#__PURE__*/ _react.createElement(slots.root, _extends({}, slotProps.root)));
20
- }; //# sourceMappingURL=renderMenuList.js.map
21
-
6
+ exports.renderMenuList_unstable = void 0;
7
+ const React = /*#__PURE__*/require("react");
8
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
+ const menuListContext_1 = /*#__PURE__*/require("../../contexts/menuListContext");
10
+ /**
11
+ * Function that renders the final JSX of the component
12
+ */
13
+ const renderMenuList_unstable = (state, contextValues) => {
14
+ const {
15
+ slots,
16
+ slotProps
17
+ } = react_utilities_1.getSlots(state);
18
+ return React.createElement(menuListContext_1.MenuListProvider, {
19
+ value: contextValues.menuList
20
+ }, React.createElement(slots.root, {
21
+ ...slotProps.root
22
+ }));
23
+ };
24
+ exports.renderMenuList_unstable = renderMenuList_unstable;
22
25
  //# sourceMappingURL=renderMenuList.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuList/renderMenuList.js"],"sourcesContent":["import _extends from \"@swc/helpers/src/_extends.mjs\";\nimport * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { MenuListProvider } from '../../contexts/menuListContext';\n/**\n * Function that renders the final JSX of the component\n */\nexport const renderMenuList_unstable = (state, contextValues) => {\n const {\n slots,\n slotProps\n } = getSlots(state);\n return /*#__PURE__*/React.createElement(MenuListProvider, {\n value: contextValues.menuList\n }, /*#__PURE__*/React.createElement(slots.root, _extends({}, slotProps.root)));\n};\n//# sourceMappingURL=renderMenuList.js.map"],"names":["renderMenuList_unstable","state","contextValues","slots","slotProps","getSlots","React","createElement","MenuListProvider","value","menuList","root","_extends"],"mappings":";;;;+BAOaA;;aAAAA;;;;yBAPQ;6DACE;gCACE;iCACQ;AAI1B,MAAMA,0BAA0B,CAACC,OAAOC,gBAAkB;IAC/D,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,wBAAQ,EAACJ;IACb,OAAO,WAAW,GAAEK,OAAMC,aAAa,CAACC,iCAAgB,EAAE;QACxDC,OAAOP,cAAcQ,QAAQ;IAC/B,GAAG,WAAW,GAAEJ,OAAMC,aAAa,CAACJ,MAAMQ,IAAI,EAAEC,SAAS,CAAC,GAAGR,UAAUO,IAAI;AAC7E,GACA,0CAA0C"}
1
+ {"version":3,"mappings":";;;;;;AAAA;AACA;AAEA;AAEA;;;AAGO,MAAMA,uBAAuB,GAAG,CAACC,KAAoB,EAAEC,aAAoC,KAAI;EACpG,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAE,GAAGC,0BAAQ,CAAgBJ,KAAK,CAAC;EAE3D,OACEK,oBAACC,kCAAgB;IAACC,KAAK,EAAEN,aAAa,CAACO;EAAQ,GAC7CH,oBAACH,KAAK,CAACO,IAAI;IAAA,GAAKN,SAAS,CAACM;EAAI,EAAI,CACjB;AAEvB,CAAC;AARYC,+BAAuB","names":["renderMenuList_unstable","state","contextValues","slots","slotProps","react_utilities_1","React","menuListContext_1","value","menuList","root","exports"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuList/renderMenuList.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { MenuListContextValues, MenuListSlots, MenuListState } from './MenuList.types';\nimport { MenuListProvider } from '../../contexts/menuListContext';\n\n/**\n * Function that renders the final JSX of the component\n */\nexport const renderMenuList_unstable = (state: MenuListState, contextValues: MenuListContextValues) => {\n const { slots, slotProps } = getSlots<MenuListSlots>(state);\n\n return (\n <MenuListProvider value={contextValues.menuList}>\n <slots.root {...slotProps.root} />\n </MenuListProvider>\n );\n};\n"]}
@@ -1,157 +1,153 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "useMenuList_unstable", {
6
- enumerable: true,
7
- get: ()=>useMenuList_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 _reactUtilities = require("@fluentui/react-utilities");
12
- const _reactTabster = require("@fluentui/react-tabster");
13
- const _reactContextSelector = require("@fluentui/react-context-selector");
14
- const _menuContext = require("../../contexts/menuContext");
15
- const useMenuList_unstable = (props, ref)=>{
16
- const { findAllFocusable } = (0, _reactTabster.useFocusFinders)();
17
- const menuContext = useMenuContextSelectors();
18
- const hasMenuContext = (0, _reactContextSelector.useHasParentContext)(_menuContext.MenuContext);
19
- const focusAttributes = (0, _reactTabster.useArrowNavigationGroup)({
20
- circular: true,
21
- ignoreDefaultKeydown: {
22
- Tab: hasMenuContext
23
- }
24
- });
25
- if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {
26
- // TODO throw warnings in development safely
27
- // eslint-disable-next-line no-console
28
- console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');
6
+ exports.useMenuList_unstable = void 0;
7
+ const React = /*#__PURE__*/require("react");
8
+ const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
9
+ const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
10
+ const react_context_selector_1 = /*#__PURE__*/require("@fluentui/react-context-selector");
11
+ const menuContext_1 = /*#__PURE__*/require("../../contexts/menuContext");
12
+ const menuContext_2 = /*#__PURE__*/require("../../contexts/menuContext");
13
+ /**
14
+ * Returns the props and state required to render the component
15
+ */
16
+ const useMenuList_unstable = (props, ref) => {
17
+ var _a, _b;
18
+ const {
19
+ findAllFocusable
20
+ } = react_tabster_1.useFocusFinders();
21
+ const menuContext = useMenuContextSelectors();
22
+ const hasMenuContext = react_context_selector_1.useHasParentContext(menuContext_2.MenuContext);
23
+ const focusAttributes = react_tabster_1.useArrowNavigationGroup({
24
+ circular: true,
25
+ ignoreDefaultKeydown: {
26
+ Tab: hasMenuContext
29
27
  }
30
- const innerRef = _react.useRef(null);
31
- const setFocusByFirstCharacter = _react.useCallback((e, itemEl)=>{
32
- // TODO use some kind of children registration to reduce dependency on DOM roles
33
- const acceptedRoles = [
34
- 'menuitem',
35
- 'menuitemcheckbox',
36
- 'menuitemradio'
37
- ];
38
- if (!innerRef.current) {
39
- return;
40
- }
41
- const menuItems = findAllFocusable(innerRef.current, (el)=>el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);
42
- let startIndex = menuItems.indexOf(itemEl) + 1;
43
- if (startIndex === menuItems.length) {
44
- startIndex = 0;
45
- }
46
- const firstChars = menuItems.map((menuItem)=>{
47
- var _menuItem_textContent;
48
- return (_menuItem_textContent = menuItem.textContent) === null || _menuItem_textContent === void 0 ? void 0 : _menuItem_textContent.charAt(0).toLowerCase();
49
- });
50
- const char = e.key.toLowerCase();
51
- const getIndexFirstChars = (start, firstChar)=>{
52
- for(let i = start; i < firstChars.length; i++){
53
- if (char === firstChars[i]) {
54
- return i;
55
- }
56
- }
57
- return -1;
58
- };
59
- // Check remaining slots in the menu
60
- let index = getIndexFirstChars(startIndex, char);
61
- // If not found in remaining slots, check from beginning
62
- if (index === -1) {
63
- index = getIndexFirstChars(0, char);
64
- }
65
- // If match was found...
66
- if (index > -1) {
67
- menuItems[index].focus();
68
- }
69
- }, [
70
- findAllFocusable
71
- ]);
72
- const [checkedValues, setCheckedValues] = (0, _reactUtilities.useControllableState)({
73
- state: props.checkedValues ?? (hasMenuContext ? menuContext.checkedValues : undefined),
74
- defaultState: props.defaultCheckedValues,
75
- initialState: {}
28
+ });
29
+ if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {
30
+ // TODO throw warnings in development safely
31
+ // eslint-disable-next-line no-console
32
+ console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');
33
+ }
34
+ const innerRef = React.useRef(null);
35
+ const setFocusByFirstCharacter = React.useCallback((e, itemEl) => {
36
+ // TODO use some kind of children registration to reduce dependency on DOM roles
37
+ const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];
38
+ if (!innerRef.current) {
39
+ return;
40
+ }
41
+ const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);
42
+ let startIndex = menuItems.indexOf(itemEl) + 1;
43
+ if (startIndex === menuItems.length) {
44
+ startIndex = 0;
45
+ }
46
+ const firstChars = menuItems.map(menuItem => {
47
+ var _a;
48
+ return (_a = menuItem.textContent) === null || _a === void 0 ? void 0 : _a.charAt(0).toLowerCase();
76
49
  });
77
- const handleCheckedValueChange = props.onCheckedValueChange ?? (hasMenuContext ? menuContext.onCheckedValueChange : undefined);
78
- const toggleCheckbox = (0, _reactUtilities.useEventCallback)((e, name, value, checked)=>{
79
- const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];
80
- const newCheckedItems = [
81
- ...checkedItems
82
- ];
83
- if (checked) {
84
- newCheckedItems.splice(newCheckedItems.indexOf(value), 1);
85
- } else {
86
- newCheckedItems.push(value);
50
+ const char = e.key.toLowerCase();
51
+ const getIndexFirstChars = (start, firstChar) => {
52
+ for (let i = start; i < firstChars.length; i++) {
53
+ if (char === firstChars[i]) {
54
+ return i;
87
55
  }
88
- handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
89
- name,
90
- checkedItems: newCheckedItems
91
- });
92
- setCheckedValues((s)=>({
93
- ...s,
94
- [name]: newCheckedItems
95
- }));
56
+ }
57
+ return -1;
58
+ };
59
+ // Check remaining slots in the menu
60
+ let index = getIndexFirstChars(startIndex, char);
61
+ // If not found in remaining slots, check from beginning
62
+ if (index === -1) {
63
+ index = getIndexFirstChars(0, char);
64
+ }
65
+ // If match was found...
66
+ if (index > -1) {
67
+ menuItems[index].focus();
68
+ }
69
+ }, [findAllFocusable]);
70
+ const [checkedValues, setCheckedValues] = react_utilities_1.useControllableState({
71
+ state: (_a = props.checkedValues) !== null && _a !== void 0 ? _a : hasMenuContext ? menuContext.checkedValues : undefined,
72
+ defaultState: props.defaultCheckedValues,
73
+ initialState: {}
74
+ });
75
+ const handleCheckedValueChange = (_b = props.onCheckedValueChange) !== null && _b !== void 0 ? _b : hasMenuContext ? menuContext.onCheckedValueChange : undefined;
76
+ const toggleCheckbox = react_utilities_1.useEventCallback((e, name, value, checked) => {
77
+ const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];
78
+ const newCheckedItems = [...checkedItems];
79
+ if (checked) {
80
+ newCheckedItems.splice(newCheckedItems.indexOf(value), 1);
81
+ } else {
82
+ newCheckedItems.push(value);
83
+ }
84
+ handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
85
+ name,
86
+ checkedItems: newCheckedItems
96
87
  });
97
- const selectRadio = (0, _reactUtilities.useEventCallback)((e, name, value)=>{
98
- const newCheckedItems = [
99
- value
100
- ];
101
- setCheckedValues((s)=>({
102
- ...s,
103
- [name]: newCheckedItems
104
- }));
105
- handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
106
- name,
107
- checkedItems: newCheckedItems
108
- });
88
+ setCheckedValues(s => ({
89
+ ...s,
90
+ [name]: newCheckedItems
91
+ }));
92
+ });
93
+ const selectRadio = react_utilities_1.useEventCallback((e, name, value) => {
94
+ const newCheckedItems = [value];
95
+ setCheckedValues(s => ({
96
+ ...s,
97
+ [name]: newCheckedItems
98
+ }));
99
+ handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
100
+ name,
101
+ checkedItems: newCheckedItems
109
102
  });
110
- return {
111
- components: {
112
- root: 'div'
113
- },
114
- root: (0, _reactUtilities.getNativeElementProps)('div', {
115
- ref: (0, _reactUtilities.useMergedRefs)(ref, innerRef),
116
- role: 'menu',
117
- 'aria-labelledby': menuContext.triggerId,
118
- ...focusAttributes,
119
- ...props
120
- }),
121
- hasIcons: menuContext.hasIcons || false,
122
- hasCheckmarks: menuContext.hasCheckmarks || false,
123
- checkedValues,
124
- setFocusByFirstCharacter,
125
- selectRadio,
126
- toggleCheckbox
127
- };
103
+ });
104
+ return {
105
+ components: {
106
+ root: 'div'
107
+ },
108
+ root: react_utilities_1.getNativeElementProps('div', {
109
+ ref: react_utilities_1.useMergedRefs(ref, innerRef),
110
+ role: 'menu',
111
+ 'aria-labelledby': menuContext.triggerId,
112
+ ...focusAttributes,
113
+ ...props
114
+ }),
115
+ hasIcons: menuContext.hasIcons || false,
116
+ hasCheckmarks: menuContext.hasCheckmarks || false,
117
+ checkedValues,
118
+ setFocusByFirstCharacter,
119
+ selectRadio,
120
+ toggleCheckbox
121
+ };
128
122
  };
123
+ exports.useMenuList_unstable = useMenuList_unstable;
129
124
  /**
130
125
  * Adds some sugar to fetching multiple context selector values
131
- */ const useMenuContextSelectors = ()=>{
132
- const checkedValues = (0, _menuContext.useMenuContext_unstable)((context)=>context.checkedValues);
133
- const onCheckedValueChange = (0, _menuContext.useMenuContext_unstable)((context)=>context.onCheckedValueChange);
134
- const triggerId = (0, _menuContext.useMenuContext_unstable)((context)=>context.triggerId);
135
- const hasIcons = (0, _menuContext.useMenuContext_unstable)((context)=>context.hasIcons);
136
- const hasCheckmarks = (0, _menuContext.useMenuContext_unstable)((context)=>context.hasCheckmarks);
137
- return {
138
- checkedValues,
139
- onCheckedValueChange,
140
- triggerId,
141
- hasIcons,
142
- hasCheckmarks
143
- };
126
+ */
127
+ const useMenuContextSelectors = () => {
128
+ const checkedValues = menuContext_1.useMenuContext_unstable(context => context.checkedValues);
129
+ const onCheckedValueChange = menuContext_1.useMenuContext_unstable(context => context.onCheckedValueChange);
130
+ const triggerId = menuContext_1.useMenuContext_unstable(context => context.triggerId);
131
+ const hasIcons = menuContext_1.useMenuContext_unstable(context => context.hasIcons);
132
+ const hasCheckmarks = menuContext_1.useMenuContext_unstable(context => context.hasCheckmarks);
133
+ return {
134
+ checkedValues,
135
+ onCheckedValueChange,
136
+ triggerId,
137
+ hasIcons,
138
+ hasCheckmarks
139
+ };
144
140
  };
145
141
  /**
146
142
  * Helper function to detect if props and MenuContext values are both used
147
- */ const usingPropsAndMenuContext = (props, contextValue, hasMenuContext)=>{
148
- let isUsingPropsAndContext = false;
149
- for(const val in contextValue){
150
- if (props[val]) {
151
- isUsingPropsAndContext = true;
152
- }
143
+ */
144
+ const usingPropsAndMenuContext = (props, contextValue, hasMenuContext) => {
145
+ let isUsingPropsAndContext = false;
146
+ for (const val in contextValue) {
147
+ if (props[val]) {
148
+ isUsingPropsAndContext = true;
153
149
  }
154
- return hasMenuContext && isUsingPropsAndContext;
155
- }; //# sourceMappingURL=useMenuList.js.map
156
-
150
+ }
151
+ return hasMenuContext && isUsingPropsAndContext;
152
+ };
157
153
  //# sourceMappingURL=useMenuList.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuList/useMenuList.js"],"sourcesContent":["import * as React from 'react';\nimport { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps } from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\n/**\n * Returns the props and state required to render the component\n */\nexport const useMenuList_unstable = (props, ref) => {\n const {\n findAllFocusable\n } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n ignoreDefaultKeydown: {\n Tab: hasMenuContext\n }\n });\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n const innerRef = React.useRef(null);\n const setFocusByFirstCharacter = React.useCallback((e, itemEl) => {\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\n if (!innerRef.current) {\n return;\n }\n const menuItems = findAllFocusable(innerRef.current, el => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n const firstChars = menuItems.map(menuItem => {\n var _menuItem_textContent;\n return (_menuItem_textContent = menuItem.textContent) === null || _menuItem_textContent === void 0 ? void 0 : _menuItem_textContent.charAt(0).toLowerCase();\n });\n const char = e.key.toLowerCase();\n const getIndexFirstChars = (start, firstChar) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n }, [findAllFocusable]);\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues ?? (hasMenuContext ? menuContext.checkedValues : undefined),\n defaultState: props.defaultCheckedValues,\n initialState: {}\n });\n const handleCheckedValueChange = props.onCheckedValueChange ?? (hasMenuContext ? menuContext.onCheckedValueChange : undefined);\n const toggleCheckbox = useEventCallback((e, name, value, checked) => {\n const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {\n name,\n checkedItems: newCheckedItems\n });\n setCheckedValues(s => ({\n ...s,\n [name]: newCheckedItems\n }));\n });\n const selectRadio = useEventCallback((e, name, value) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({\n ...s,\n [name]: newCheckedItems\n }));\n handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {\n name,\n checkedItems: newCheckedItems\n });\n });\n return {\n components: {\n root: 'div'\n },\n root: getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props\n }),\n hasIcons: menuContext.hasIcons || false,\n hasCheckmarks: menuContext.hasCheckmarks || false,\n checkedValues,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox\n };\n};\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks\n };\n};\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (props, contextValue, hasMenuContext) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val]) {\n isUsingPropsAndContext = true;\n }\n }\n return hasMenuContext && isUsingPropsAndContext;\n};\n//# sourceMappingURL=useMenuList.js.map"],"names":["useMenuList_unstable","props","ref","findAllFocusable","useFocusFinders","menuContext","useMenuContextSelectors","hasMenuContext","useHasParentContext","MenuContext","focusAttributes","useArrowNavigationGroup","circular","ignoreDefaultKeydown","Tab","usingPropsAndMenuContext","console","warn","innerRef","React","useRef","setFocusByFirstCharacter","useCallback","e","itemEl","acceptedRoles","current","menuItems","el","hasAttribute","indexOf","getAttribute","startIndex","length","firstChars","map","menuItem","_menuItem_textContent","textContent","charAt","toLowerCase","char","key","getIndexFirstChars","start","firstChar","i","index","focus","checkedValues","setCheckedValues","useControllableState","state","undefined","defaultState","defaultCheckedValues","initialState","handleCheckedValueChange","onCheckedValueChange","toggleCheckbox","useEventCallback","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","root","getNativeElementProps","useMergedRefs","role","triggerId","hasIcons","hasCheckmarks","useMenuContext_unstable","context","contextValue","isUsingPropsAndContext","val"],"mappings":";;;;+BASaA;;aAAAA;;;6DATU;gCACsE;8BACpC;sCACrB;6BACI;AAKjC,MAAMA,uBAAuB,CAACC,OAAOC,MAAQ;IAClD,MAAM,EACJC,iBAAgB,EACjB,GAAGC,IAAAA,6BAAe;IACnB,MAAMC,cAAcC;IACpB,MAAMC,iBAAiBC,IAAAA,yCAAmB,EAACC,wBAAW;IACtD,MAAMC,kBAAkBC,IAAAA,qCAAuB,EAAC;QAC9CC,UAAU,IAAI;QACdC,sBAAsB;YACpBC,KAAKP;QACP;IACF;IACA,IAAIQ,yBAAyBd,OAAOI,aAAaE,iBAAiB;QAChE,4CAA4C;QAC5C,sCAAsC;QACtCS,QAAQC,IAAI,CAAC;IACf,CAAC;IACD,MAAMC,WAAWC,OAAMC,MAAM,CAAC,IAAI;IAClC,MAAMC,2BAA2BF,OAAMG,WAAW,CAAC,CAACC,GAAGC,SAAW;QAChE,gFAAgF;QAChF,MAAMC,gBAAgB;YAAC;YAAY;YAAoB;SAAgB;QACvE,IAAI,CAACP,SAASQ,OAAO,EAAE;YACrB;QACF,CAAC;QACD,MAAMC,YAAYxB,iBAAiBe,SAASQ,OAAO,EAAEE,CAAAA,KAAMA,GAAGC,YAAY,CAAC,WAAWJ,cAAcK,OAAO,CAACF,GAAGG,YAAY,CAAC,aAAa,CAAC;QAC1I,IAAIC,aAAaL,UAAUG,OAAO,CAACN,UAAU;QAC7C,IAAIQ,eAAeL,UAAUM,MAAM,EAAE;YACnCD,aAAa;QACf,CAAC;QACD,MAAME,aAAaP,UAAUQ,GAAG,CAACC,CAAAA,WAAY;YAC3C,IAAIC;YACJ,OAAO,AAACA,CAAAA,wBAAwBD,SAASE,WAAW,AAAD,MAAO,IAAI,IAAID,0BAA0B,KAAK,IAAI,KAAK,IAAIA,sBAAsBE,MAAM,CAAC,GAAGC,WAAW,EAAE;QAC7J;QACA,MAAMC,OAAOlB,EAAEmB,GAAG,CAACF,WAAW;QAC9B,MAAMG,qBAAqB,CAACC,OAAOC,YAAc;YAC/C,IAAK,IAAIC,IAAIF,OAAOE,IAAIZ,WAAWD,MAAM,EAAEa,IAAK;gBAC9C,IAAIL,SAASP,UAAU,CAACY,EAAE,EAAE;oBAC1B,OAAOA;gBACT,CAAC;YACH;YACA,OAAO,CAAC;QACV;QACA,oCAAoC;QACpC,IAAIC,QAAQJ,mBAAmBX,YAAYS;QAC3C,wDAAwD;QACxD,IAAIM,UAAU,CAAC,GAAG;YAChBA,QAAQJ,mBAAmB,GAAGF;QAChC,CAAC;QACD,wBAAwB;QACxB,IAAIM,QAAQ,CAAC,GAAG;YACdpB,SAAS,CAACoB,MAAM,CAACC,KAAK;QACxB,CAAC;IACH,GAAG;QAAC7C;KAAiB;IACrB,MAAM,CAAC8C,eAAeC,iBAAiB,GAAGC,IAAAA,oCAAoB,EAAC;QAC7DC,OAAOnD,MAAMgD,aAAa,IAAK1C,CAAAA,iBAAiBF,YAAY4C,aAAa,GAAGI,SAAS,AAAD;QACpFC,cAAcrD,MAAMsD,oBAAoB;QACxCC,cAAc,CAAC;IACjB;IACA,MAAMC,2BAA2BxD,MAAMyD,oBAAoB,IAAKnD,CAAAA,iBAAiBF,YAAYqD,oBAAoB,GAAGL,SAAS,AAAD;IAC5H,MAAMM,iBAAiBC,IAAAA,gCAAgB,EAAC,CAACrC,GAAGsC,MAAMC,OAAOC,UAAY;QACnE,MAAMC,eAAe,AAACf,CAAAA,kBAAkB,IAAI,IAAIA,kBAAkB,KAAK,IAAI,KAAK,IAAIA,aAAa,CAACY,KAAK,AAAD,KAAM,EAAE;QAC9G,MAAMI,kBAAkB;eAAID;SAAa;QACzC,IAAID,SAAS;YACXE,gBAAgBC,MAAM,CAACD,gBAAgBnC,OAAO,CAACgC,QAAQ;QACzD,OAAO;YACLG,gBAAgBE,IAAI,CAACL;QACvB,CAAC;QACDL,6BAA6B,IAAI,IAAIA,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyBlC,GAAG;YAC9GsC;YACAG,cAAcC;QAChB,EAAE;QACFf,iBAAiBkB,CAAAA,IAAM,CAAA;gBACrB,GAAGA,CAAC;gBACJ,CAACP,KAAK,EAAEI;YACV,CAAA;IACF;IACA,MAAMI,cAAcT,IAAAA,gCAAgB,EAAC,CAACrC,GAAGsC,MAAMC,QAAU;QACvD,MAAMG,kBAAkB;YAACH;SAAM;QAC/BZ,iBAAiBkB,CAAAA,IAAM,CAAA;gBACrB,GAAGA,CAAC;gBACJ,CAACP,KAAK,EAAEI;YACV,CAAA;QACAR,6BAA6B,IAAI,IAAIA,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyBlC,GAAG;YAC9GsC;YACAG,cAAcC;QAChB,EAAE;IACJ;IACA,OAAO;QACLK,YAAY;YACVC,MAAM;QACR;QACAA,MAAMC,IAAAA,qCAAqB,EAAC,OAAO;YACjCtE,KAAKuE,IAAAA,6BAAa,EAACvE,KAAKgB;YACxBwD,MAAM;YACN,mBAAmBrE,YAAYsE,SAAS;YACxC,GAAGjE,eAAe;YAClB,GAAGT,KAAK;QACV;QACA2E,UAAUvE,YAAYuE,QAAQ,IAAI,KAAK;QACvCC,eAAexE,YAAYwE,aAAa,IAAI,KAAK;QACjD5B;QACA5B;QACAgD;QACAV;IACF;AACF;AACA;;CAEC,GACD,MAAMrD,0BAA0B,IAAM;IACpC,MAAM2C,gBAAgB6B,IAAAA,oCAAuB,EAACC,CAAAA,UAAWA,QAAQ9B,aAAa;IAC9E,MAAMS,uBAAuBoB,IAAAA,oCAAuB,EAACC,CAAAA,UAAWA,QAAQrB,oBAAoB;IAC5F,MAAMiB,YAAYG,IAAAA,oCAAuB,EAACC,CAAAA,UAAWA,QAAQJ,SAAS;IACtE,MAAMC,WAAWE,IAAAA,oCAAuB,EAACC,CAAAA,UAAWA,QAAQH,QAAQ;IACpE,MAAMC,gBAAgBC,IAAAA,oCAAuB,EAACC,CAAAA,UAAWA,QAAQF,aAAa;IAC9E,OAAO;QACL5B;QACAS;QACAiB;QACAC;QACAC;IACF;AACF;AACA;;CAEC,GACD,MAAM9D,2BAA2B,CAACd,OAAO+E,cAAczE,iBAAmB;IACxE,IAAI0E,yBAAyB,KAAK;IAClC,IAAK,MAAMC,OAAOF,aAAc;QAC9B,IAAI/E,KAAK,CAACiF,IAAI,EAAE;YACdD,yBAAyB,IAAI;QAC/B,CAAC;IACH;IACA,OAAO1E,kBAAkB0E;AAC3B,GACA,uCAAuC"}
1
+ {"version":3,"mappings":"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","names":["useMenuList_unstable","props","ref","findAllFocusable","react_tabster_1","menuContext","useMenuContextSelectors","hasMenuContext","react_context_selector_1","menuContext_2","focusAttributes","circular","ignoreDefaultKeydown","Tab","usingPropsAndMenuContext","console","warn","innerRef","React","useRef","setFocusByFirstCharacter","useCallback","e","itemEl","acceptedRoles","current","menuItems","el","hasAttribute","indexOf","getAttribute","startIndex","length","firstChars","map","menuItem","textContent","charAt","toLowerCase","char","key","getIndexFirstChars","start","firstChar","i","index","focus","checkedValues","setCheckedValues","react_utilities_1","state","undefined","defaultState","defaultCheckedValues","initialState","handleCheckedValueChange","onCheckedValueChange","toggleCheckbox","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","root","role","triggerId","hasIcons","hasCheckmarks","exports","menuContext_1","context","contextValue","isUsingPropsAndContext","val"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuList/useMenuList.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n useMergedRefs,\n useEventCallback,\n useControllableState,\n getNativeElementProps,\n} from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\nimport type { MenuListProps, MenuListState } from './MenuList.types';\n\n/**\n * Returns the props and state required to render the component\n */\nexport const useMenuList_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const { findAllFocusable } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n const focusAttributes = useArrowNavigationGroup({ circular: true, ignoreDefaultKeydown: { Tab: hasMenuContext } });\n\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n\n const innerRef = React.useRef<HTMLElement>(null);\n\n const setFocusByFirstCharacter = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\n if (!innerRef.current) {\n return;\n }\n\n const menuItems = findAllFocusable(\n innerRef.current,\n (el: HTMLElement) => el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')!) !== -1,\n );\n\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n\n const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());\n const char = e.key.toLowerCase();\n\n const getIndexFirstChars = (start: number, firstChar: string) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n },\n [findAllFocusable],\n );\n\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues ?? (hasMenuContext ? menuContext.checkedValues : undefined),\n defaultState: props.defaultCheckedValues,\n initialState: {},\n });\n\n const handleCheckedValueChange =\n props.onCheckedValueChange ?? (hasMenuContext ? menuContext.onCheckedValueChange : undefined);\n\n const toggleCheckbox = useEventCallback(\n (e: React.MouseEvent | React.KeyboardEvent, name: string, value: string, checked: boolean) => {\n const checkedItems = checkedValues?.[name] || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n },\n );\n\n const selectRadio = useEventCallback((e: React.MouseEvent | React.KeyboardEvent, name: string, value: string) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n });\n\n return {\n components: {\n root: 'div',\n },\n root: getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props,\n }),\n hasIcons: menuContext.hasIcons || false,\n hasCheckmarks: menuContext.hasCheckmarks || false,\n checkedValues,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox,\n };\n};\n\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks,\n };\n};\n\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (\n props: MenuListProps,\n contextValue: ReturnType<typeof useMenuContextSelectors>,\n hasMenuContext: boolean,\n) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val as keyof Omit<typeof contextValue, 'hasMenuContext' | 'onCheckedValueChange' | 'triggerId'>]) {\n isUsingPropsAndContext = true;\n }\n }\n\n return hasMenuContext && isUsingPropsAndContext;\n};\n"]}
@@ -1,25 +1,30 @@
1
1
  "use strict";
2
+
2
3
  Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "useMenuListContextValues_unstable", {
6
- enumerable: true,
7
- get: ()=>useMenuListContextValues_unstable
4
+ value: true
8
5
  });
6
+ exports.useMenuListContextValues_unstable = void 0;
9
7
  function useMenuListContextValues_unstable(state) {
10
- const { checkedValues , hasCheckmarks , hasIcons , selectRadio , setFocusByFirstCharacter , toggleCheckbox } = state;
11
- // This context is created with "@fluentui/react-context-selector", these is no sense to memoize it
12
- const menuList = {
13
- checkedValues,
14
- hasCheckmarks,
15
- hasIcons,
16
- selectRadio,
17
- setFocusByFirstCharacter,
18
- toggleCheckbox
19
- };
20
- return {
21
- menuList
22
- };
23
- } //# sourceMappingURL=useMenuListContextValues.js.map
24
-
8
+ const {
9
+ checkedValues,
10
+ hasCheckmarks,
11
+ hasIcons,
12
+ selectRadio,
13
+ setFocusByFirstCharacter,
14
+ toggleCheckbox
15
+ } = state;
16
+ // This context is created with "@fluentui/react-context-selector", these is no sense to memoize it
17
+ const menuList = {
18
+ checkedValues,
19
+ hasCheckmarks,
20
+ hasIcons,
21
+ selectRadio,
22
+ setFocusByFirstCharacter,
23
+ toggleCheckbox
24
+ };
25
+ return {
26
+ menuList
27
+ };
28
+ }
29
+ exports.useMenuListContextValues_unstable = useMenuListContextValues_unstable;
25
30
  //# sourceMappingURL=useMenuListContextValues.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../lib/components/MenuList/useMenuListContextValues.js"],"sourcesContent":["export function useMenuListContextValues_unstable(state) {\n const {\n checkedValues,\n hasCheckmarks,\n hasIcons,\n selectRadio,\n setFocusByFirstCharacter,\n toggleCheckbox\n } = state;\n // This context is created with \"@fluentui/react-context-selector\", these is no sense to memoize it\n const menuList = {\n checkedValues,\n hasCheckmarks,\n hasIcons,\n selectRadio,\n setFocusByFirstCharacter,\n toggleCheckbox\n };\n return {\n menuList\n };\n}\n//# sourceMappingURL=useMenuListContextValues.js.map"],"names":["useMenuListContextValues_unstable","state","checkedValues","hasCheckmarks","hasIcons","selectRadio","setFocusByFirstCharacter","toggleCheckbox","menuList"],"mappings":";;;;+BAAgBA;;aAAAA;;AAAT,SAASA,kCAAkCC,KAAK,EAAE;IACvD,MAAM,EACJC,cAAa,EACbC,cAAa,EACbC,SAAQ,EACRC,YAAW,EACXC,yBAAwB,EACxBC,eAAc,EACf,GAAGN;IACJ,mGAAmG;IACnG,MAAMO,WAAW;QACfN;QACAC;QACAC;QACAC;QACAC;QACAC;IACF;IACA,OAAO;QACLC;IACF;AACF,EACA,oDAAoD"}
1
+ {"version":3,"mappings":";;;;;;AAEA,SAAgBA,iCAAiC,CAACC,KAAoB;EACpE,MAAM;IAAEC,aAAa;IAAEC,aAAa;IAAEC,QAAQ;IAAEC,WAAW;IAAEC,wBAAwB;IAAEC;EAAc,CAAE,GAAGN,KAAK;EAE/G;EACA,MAAMO,QAAQ,GAAG;IACfN,aAAa;IACbC,aAAa;IACbC,QAAQ;IACRC,WAAW;IACXC,wBAAwB;IACxBC;GACD;EAED,OAAO;IAAEC;EAAQ,CAAE;AACrB;AAdAC","names":["useMenuListContextValues_unstable","state","checkedValues","hasCheckmarks","hasIcons","selectRadio","setFocusByFirstCharacter","toggleCheckbox","menuList","exports"],"sourceRoot":"","sources":["../../../../../../../../../packages/react-components/react-menu/src/components/MenuList/useMenuListContextValues.ts"],"sourcesContent":["import type { MenuListContextValues, MenuListState } from './MenuList.types';\n\nexport function useMenuListContextValues_unstable(state: MenuListState): MenuListContextValues {\n const { checkedValues, hasCheckmarks, hasIcons, selectRadio, setFocusByFirstCharacter, toggleCheckbox } = state;\n\n // This context is created with \"@fluentui/react-context-selector\", these is no sense to memoize it\n const menuList = {\n checkedValues,\n hasCheckmarks,\n hasIcons,\n selectRadio,\n setFocusByFirstCharacter,\n toggleCheckbox,\n };\n\n return { menuList };\n}\n"]}