@fluentui-react-native/menu 1.15.0 → 1.15.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 (369) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/SPEC.md +8 -4
  3. package/lib/Menu/Menu.d.ts +2 -2
  4. package/lib/Menu/Menu.js +12 -12
  5. package/lib/Menu/Menu.types.d.ts +47 -47
  6. package/lib/Menu/Menu.types.js +4 -4
  7. package/lib/Menu/index.d.ts +1 -1
  8. package/lib/Menu/index.js +1 -1
  9. package/lib/Menu/renderMenu.android.d.ts +2 -6
  10. package/lib/Menu/renderMenu.android.js +10 -17
  11. package/lib/Menu/renderMenu.d.ts +2 -6
  12. package/lib/Menu/renderMenu.js +5 -8
  13. package/lib/Menu/useMenu.android.d.ts +1 -1
  14. package/lib/Menu/useMenu.android.js +245 -251
  15. package/lib/Menu/useMenu.d.ts +1 -1
  16. package/lib/Menu/useMenu.js +70 -75
  17. package/lib/Menu/useMenuContextValue.d.ts +1 -1
  18. package/lib/Menu/useMenuContextValue.js +4 -4
  19. package/lib/MenuCallout/MenuCallout.android.d.ts +2 -2
  20. package/lib/MenuCallout/MenuCallout.android.js +19 -39
  21. package/lib/MenuCallout/MenuCallout.d.ts +2 -2
  22. package/lib/MenuCallout/MenuCallout.js +7 -7
  23. package/lib/MenuCallout/MenuCallout.types.d.ts +13 -13
  24. package/lib/MenuCallout/MenuCallout.types.d.ts.map +1 -1
  25. package/lib/MenuCallout/MenuCallout.types.js +1 -1
  26. package/lib/MenuCallout/index.d.ts +1 -1
  27. package/lib/MenuCallout/index.js +1 -1
  28. package/lib/MenuDivider/MenuDivider.d.ts +2 -7
  29. package/lib/MenuDivider/MenuDivider.js +13 -13
  30. package/lib/MenuDivider/MenuDivider.styling.d.ts +1 -1
  31. package/lib/MenuDivider/MenuDivider.styling.js +16 -19
  32. package/lib/MenuDivider/MenuDivider.types.d.ts +12 -12
  33. package/lib/MenuDivider/MenuDivider.types.js +1 -1
  34. package/lib/MenuDivider/MenuDividerTokens.android.d.ts +1 -1
  35. package/lib/MenuDivider/MenuDividerTokens.android.js +4 -4
  36. package/lib/MenuDivider/MenuDividerTokens.d.ts +1 -1
  37. package/lib/MenuDivider/MenuDividerTokens.js +4 -4
  38. package/lib/MenuDivider/MenuDividerTokens.macos.d.ts +1 -1
  39. package/lib/MenuDivider/MenuDividerTokens.macos.js +4 -4
  40. package/lib/MenuDivider/MenuDividerTokens.win32.d.ts +1 -1
  41. package/lib/MenuDivider/MenuDividerTokens.win32.js +4 -4
  42. package/lib/MenuDivider/index.d.ts +1 -1
  43. package/lib/MenuDivider/index.js +1 -1
  44. package/lib/MenuGroup/MenuGroup.d.ts +2 -7
  45. package/lib/MenuGroup/MenuGroup.js +51 -63
  46. package/lib/MenuGroup/MenuGroup.types.d.ts +7 -7
  47. package/lib/MenuGroup/MenuGroup.types.js +1 -1
  48. package/lib/MenuGroup/index.d.ts +1 -1
  49. package/lib/MenuGroup/index.js +1 -1
  50. package/lib/MenuGroupHeader/MenuGroupHeader.d.ts +2 -7
  51. package/lib/MenuGroupHeader/MenuGroupHeader.js +14 -14
  52. package/lib/MenuGroupHeader/MenuGroupHeader.styling.d.ts +1 -1
  53. package/lib/MenuGroupHeader/MenuGroupHeader.styling.js +13 -16
  54. package/lib/MenuGroupHeader/MenuGroupHeader.types.d.ts +7 -7
  55. package/lib/MenuGroupHeader/MenuGroupHeader.types.js +1 -1
  56. package/lib/MenuGroupHeader/MenuGroupHeaderTokens.d.ts +1 -1
  57. package/lib/MenuGroupHeader/MenuGroupHeaderTokens.js +7 -7
  58. package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.d.ts +1 -1
  59. package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.js +8 -8
  60. package/lib/MenuGroupHeader/index.d.ts +1 -1
  61. package/lib/MenuGroupHeader/index.js +1 -1
  62. package/lib/MenuItem/MenuItem.d.ts +2 -7
  63. package/lib/MenuItem/MenuItem.js +41 -63
  64. package/lib/MenuItem/MenuItem.styling.d.ts +1 -1
  65. package/lib/MenuItem/MenuItem.styling.js +52 -70
  66. package/lib/MenuItem/MenuItem.types.d.ts +83 -83
  67. package/lib/MenuItem/MenuItem.types.js +1 -1
  68. package/lib/MenuItem/MenuItemTokens.android.d.ts +1 -1
  69. package/lib/MenuItem/MenuItemTokens.android.js +17 -17
  70. package/lib/MenuItem/MenuItemTokens.d.ts +1 -1
  71. package/lib/MenuItem/MenuItemTokens.js +35 -35
  72. package/lib/MenuItem/MenuItemTokens.macos.d.ts +1 -1
  73. package/lib/MenuItem/MenuItemTokens.macos.js +34 -34
  74. package/lib/MenuItem/MenuItemTokens.win32.d.ts +1 -1
  75. package/lib/MenuItem/MenuItemTokens.win32.js +36 -36
  76. package/lib/MenuItem/index.d.ts +1 -1
  77. package/lib/MenuItem/index.js +1 -1
  78. package/lib/MenuItem/useMenuItem.d.ts +1 -1
  79. package/lib/MenuItem/useMenuItem.js +101 -111
  80. package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +3 -11
  81. package/lib/MenuItemCheckbox/MenuItemCheckbox.js +26 -54
  82. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +1 -1
  83. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js +62 -81
  84. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +89 -90
  85. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
  86. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js +1 -1
  87. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.android.d.ts +1 -1
  88. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.android.js +35 -35
  89. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +1 -1
  90. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js +44 -44
  91. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts +1 -1
  92. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +42 -42
  93. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +1 -1
  94. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +45 -45
  95. package/lib/MenuItemCheckbox/index.d.ts +2 -8
  96. package/lib/MenuItemCheckbox/index.js +1 -1
  97. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +2 -5
  98. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +104 -129
  99. package/lib/MenuItemRadio/MenuItemRadio.d.ts +3 -11
  100. package/lib/MenuItemRadio/MenuItemRadio.js +26 -54
  101. package/lib/MenuItemRadio/MenuItemRadio.styling.android.d.ts +1 -1
  102. package/lib/MenuItemRadio/MenuItemRadio.styling.android.js +60 -78
  103. package/lib/MenuItemRadio/MenuItemRadio.styling.d.ts +1 -1
  104. package/lib/MenuItemRadio/MenuItemRadio.styling.js +44 -59
  105. package/lib/MenuItemRadio/MenuItemRadio.types.d.ts +120 -121
  106. package/lib/MenuItemRadio/MenuItemRadio.types.d.ts.map +1 -1
  107. package/lib/MenuItemRadio/MenuItemRadio.types.js +1 -1
  108. package/lib/MenuItemRadio/MenuItemRadioTokens.android.d.ts +1 -1
  109. package/lib/MenuItemRadio/MenuItemRadioTokens.android.js +38 -38
  110. package/lib/MenuItemRadio/MenuItemRadioTokens.d.ts +1 -1
  111. package/lib/MenuItemRadio/MenuItemRadioTokens.js +45 -45
  112. package/lib/MenuItemRadio/MenuItemRadioTokens.macos.d.ts +1 -1
  113. package/lib/MenuItemRadio/MenuItemRadioTokens.macos.js +43 -43
  114. package/lib/MenuItemRadio/index.d.ts +2 -8
  115. package/lib/MenuItemRadio/index.js +1 -1
  116. package/lib/MenuItemRadio/useMenuItemRadio.d.ts +1 -1
  117. package/lib/MenuItemRadio/useMenuItemRadio.js +23 -26
  118. package/lib/MenuList/MenuList.d.ts +2 -7
  119. package/lib/MenuList/MenuList.js +54 -70
  120. package/lib/MenuList/MenuList.styling.d.ts +1 -1
  121. package/lib/MenuList/MenuList.styling.js +21 -27
  122. package/lib/MenuList/MenuList.types.d.ts +72 -72
  123. package/lib/MenuList/MenuList.types.js +1 -1
  124. package/lib/MenuList/MenuListTokens.android.d.ts +1 -1
  125. package/lib/MenuList/MenuListTokens.android.js +4 -4
  126. package/lib/MenuList/MenuListTokens.d.ts +1 -1
  127. package/lib/MenuList/MenuListTokens.js +6 -6
  128. package/lib/MenuList/MenuListTokens.macos.d.ts +1 -1
  129. package/lib/MenuList/MenuListTokens.macos.js +4 -4
  130. package/lib/MenuList/MenuListTokens.win32.d.ts +1 -1
  131. package/lib/MenuList/MenuListTokens.win32.js +9 -9
  132. package/lib/MenuList/index.d.ts +1 -1
  133. package/lib/MenuList/index.js +1 -1
  134. package/lib/MenuList/useMenuList.d.ts +1 -1
  135. package/lib/MenuList/useMenuList.js +142 -159
  136. package/lib/MenuList/useMenuListContextValue.d.ts +1 -1
  137. package/lib/MenuList/useMenuListContextValue.js +2 -2
  138. package/lib/MenuPopover/MenuPopover.d.ts +3 -9
  139. package/lib/MenuPopover/MenuPopover.d.ts.map +1 -1
  140. package/lib/MenuPopover/MenuPopover.js +35 -35
  141. package/lib/MenuPopover/MenuPopover.types.d.ts +14 -14
  142. package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  143. package/lib/MenuPopover/MenuPopover.types.js +1 -1
  144. package/lib/MenuPopover/MenuPopoverTokens.android.d.ts +3 -7
  145. package/lib/MenuPopover/MenuPopoverTokens.android.d.ts.map +1 -1
  146. package/lib/MenuPopover/MenuPopoverTokens.android.js +3 -6
  147. package/lib/MenuPopover/MenuPopoverTokens.d.ts +3 -7
  148. package/lib/MenuPopover/MenuPopoverTokens.d.ts.map +1 -1
  149. package/lib/MenuPopover/MenuPopoverTokens.js +2 -5
  150. package/lib/MenuPopover/MenuPopoverTokens.macos.d.ts +3 -7
  151. package/lib/MenuPopover/MenuPopoverTokens.macos.d.ts.map +1 -1
  152. package/lib/MenuPopover/MenuPopoverTokens.macos.js +7 -10
  153. package/lib/MenuPopover/MenuPopoverTokens.macos.js.map +1 -1
  154. package/lib/MenuPopover/index.d.ts +1 -1
  155. package/lib/MenuPopover/index.js +1 -1
  156. package/lib/MenuPopover/useMenuPopover.d.ts +2 -2
  157. package/lib/MenuPopover/useMenuPopover.js +79 -96
  158. package/lib/MenuPopover/useMenuPopover.js.map +1 -1
  159. package/lib/MenuTrigger/MenuTrigger.d.ts +3 -3
  160. package/lib/MenuTrigger/MenuTrigger.js +16 -16
  161. package/lib/MenuTrigger/MenuTrigger.types.d.ts +13 -13
  162. package/lib/MenuTrigger/MenuTrigger.types.js +1 -1
  163. package/lib/MenuTrigger/index.d.ts +1 -1
  164. package/lib/MenuTrigger/index.js +1 -1
  165. package/lib/MenuTrigger/useMenuTrigger.d.ts +1 -1
  166. package/lib/MenuTrigger/useMenuTrigger.js +70 -99
  167. package/lib/MenuTrigger/useMergeRefs.d.ts +1 -1
  168. package/lib/MenuTrigger/useMergeRefs.js +14 -16
  169. package/lib/__tests__/Menu.test.d.ts +1 -1
  170. package/lib/__tests__/Menu.test.js +122 -230
  171. package/lib/consts.d.ts +1 -1
  172. package/lib/consts.js +3 -3
  173. package/lib/context/index.d.ts +1 -1
  174. package/lib/context/index.js +1 -1
  175. package/lib/context/menuContext.d.ts +5 -5
  176. package/lib/context/menuContext.js +15 -15
  177. package/lib/context/menuListContext.d.ts +4 -4
  178. package/lib/context/menuListContext.js +12 -12
  179. package/lib/context/menuTriggerContext.d.ts +1 -1
  180. package/lib/context/menuTriggerContext.js +1 -1
  181. package/lib/index.d.ts +4 -26
  182. package/lib/index.js +2 -12
  183. package/lib-commonjs/Menu/Menu.d.ts +2 -2
  184. package/lib-commonjs/Menu/Menu.js +23 -25
  185. package/lib-commonjs/Menu/Menu.types.d.ts +47 -47
  186. package/lib-commonjs/Menu/Menu.types.js +6 -6
  187. package/lib-commonjs/Menu/index.d.ts +1 -1
  188. package/lib-commonjs/Menu/index.js +11 -31
  189. package/lib-commonjs/Menu/renderMenu.android.d.ts +2 -6
  190. package/lib-commonjs/Menu/renderMenu.android.js +14 -26
  191. package/lib-commonjs/Menu/renderMenu.d.ts +2 -6
  192. package/lib-commonjs/Menu/renderMenu.js +8 -11
  193. package/lib-commonjs/Menu/useMenu.android.d.ts +1 -1
  194. package/lib-commonjs/Menu/useMenu.android.js +280 -303
  195. package/lib-commonjs/Menu/useMenu.d.ts +1 -1
  196. package/lib-commonjs/Menu/useMenu.js +79 -86
  197. package/lib-commonjs/Menu/useMenuContextValue.d.ts +1 -1
  198. package/lib-commonjs/Menu/useMenuContextValue.js +10 -12
  199. package/lib-commonjs/MenuCallout/MenuCallout.android.d.ts +2 -2
  200. package/lib-commonjs/MenuCallout/MenuCallout.android.js +25 -48
  201. package/lib-commonjs/MenuCallout/MenuCallout.d.ts +2 -2
  202. package/lib-commonjs/MenuCallout/MenuCallout.js +12 -12
  203. package/lib-commonjs/MenuCallout/MenuCallout.types.d.ts +13 -13
  204. package/lib-commonjs/MenuCallout/MenuCallout.types.d.ts.map +1 -1
  205. package/lib-commonjs/MenuCallout/MenuCallout.types.js +3 -3
  206. package/lib-commonjs/MenuCallout/index.d.ts +1 -1
  207. package/lib-commonjs/MenuCallout/index.js +7 -17
  208. package/lib-commonjs/MenuDivider/MenuDivider.d.ts +2 -7
  209. package/lib-commonjs/MenuDivider/MenuDivider.js +19 -19
  210. package/lib-commonjs/MenuDivider/MenuDivider.styling.d.ts +1 -1
  211. package/lib-commonjs/MenuDivider/MenuDivider.styling.js +22 -25
  212. package/lib-commonjs/MenuDivider/MenuDivider.types.d.ts +12 -12
  213. package/lib-commonjs/MenuDivider/MenuDivider.types.js +3 -3
  214. package/lib-commonjs/MenuDivider/MenuDividerTokens.android.d.ts +1 -1
  215. package/lib-commonjs/MenuDivider/MenuDividerTokens.android.js +7 -7
  216. package/lib-commonjs/MenuDivider/MenuDividerTokens.d.ts +1 -1
  217. package/lib-commonjs/MenuDivider/MenuDividerTokens.js +7 -7
  218. package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.d.ts +1 -1
  219. package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.js +7 -7
  220. package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.d.ts +1 -1
  221. package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.js +7 -7
  222. package/lib-commonjs/MenuDivider/index.d.ts +1 -1
  223. package/lib-commonjs/MenuDivider/index.js +7 -17
  224. package/lib-commonjs/MenuGroup/MenuGroup.d.ts +2 -7
  225. package/lib-commonjs/MenuGroup/MenuGroup.js +62 -78
  226. package/lib-commonjs/MenuGroup/MenuGroup.types.d.ts +7 -7
  227. package/lib-commonjs/MenuGroup/MenuGroup.types.js +3 -3
  228. package/lib-commonjs/MenuGroup/index.d.ts +1 -1
  229. package/lib-commonjs/MenuGroup/index.js +7 -17
  230. package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.d.ts +2 -7
  231. package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.js +20 -20
  232. package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.d.ts +1 -1
  233. package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.js +19 -22
  234. package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.types.d.ts +7 -7
  235. package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.types.js +3 -3
  236. package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.d.ts +1 -1
  237. package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.js +10 -10
  238. package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.d.ts +1 -1
  239. package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.js +11 -11
  240. package/lib-commonjs/MenuGroupHeader/index.d.ts +1 -1
  241. package/lib-commonjs/MenuGroupHeader/index.js +7 -17
  242. package/lib-commonjs/MenuItem/MenuItem.d.ts +2 -7
  243. package/lib-commonjs/MenuItem/MenuItem.js +51 -73
  244. package/lib-commonjs/MenuItem/MenuItem.styling.d.ts +1 -1
  245. package/lib-commonjs/MenuItem/MenuItem.styling.js +59 -80
  246. package/lib-commonjs/MenuItem/MenuItem.types.d.ts +83 -83
  247. package/lib-commonjs/MenuItem/MenuItem.types.js +3 -3
  248. package/lib-commonjs/MenuItem/MenuItemTokens.android.d.ts +1 -1
  249. package/lib-commonjs/MenuItem/MenuItemTokens.android.js +20 -20
  250. package/lib-commonjs/MenuItem/MenuItemTokens.d.ts +1 -1
  251. package/lib-commonjs/MenuItem/MenuItemTokens.js +38 -38
  252. package/lib-commonjs/MenuItem/MenuItemTokens.macos.d.ts +1 -1
  253. package/lib-commonjs/MenuItem/MenuItemTokens.macos.js +37 -37
  254. package/lib-commonjs/MenuItem/MenuItemTokens.win32.d.ts +1 -1
  255. package/lib-commonjs/MenuItem/MenuItemTokens.win32.js +39 -39
  256. package/lib-commonjs/MenuItem/index.d.ts +1 -1
  257. package/lib-commonjs/MenuItem/index.js +9 -24
  258. package/lib-commonjs/MenuItem/useMenuItem.d.ts +1 -1
  259. package/lib-commonjs/MenuItem/useMenuItem.js +140 -169
  260. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.d.ts +3 -11
  261. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js +37 -65
  262. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +1 -1
  263. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.js +69 -91
  264. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +89 -90
  265. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
  266. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.js +3 -3
  267. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.android.d.ts +1 -1
  268. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.android.js +38 -38
  269. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +1 -1
  270. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js +47 -47
  271. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts +1 -1
  272. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +45 -45
  273. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +1 -1
  274. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +48 -48
  275. package/lib-commonjs/MenuItemCheckbox/index.d.ts +2 -8
  276. package/lib-commonjs/MenuItemCheckbox/index.js +10 -30
  277. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts +2 -5
  278. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +143 -185
  279. package/lib-commonjs/MenuItemRadio/MenuItemRadio.d.ts +3 -11
  280. package/lib-commonjs/MenuItemRadio/MenuItemRadio.js +37 -65
  281. package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.android.d.ts +1 -1
  282. package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.android.js +67 -88
  283. package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.d.ts +1 -1
  284. package/lib-commonjs/MenuItemRadio/MenuItemRadio.styling.js +51 -69
  285. package/lib-commonjs/MenuItemRadio/MenuItemRadio.types.d.ts +120 -121
  286. package/lib-commonjs/MenuItemRadio/MenuItemRadio.types.d.ts.map +1 -1
  287. package/lib-commonjs/MenuItemRadio/MenuItemRadio.types.js +3 -3
  288. package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.android.d.ts +1 -1
  289. package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.android.js +41 -41
  290. package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.d.ts +1 -1
  291. package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.js +48 -48
  292. package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.macos.d.ts +1 -1
  293. package/lib-commonjs/MenuItemRadio/MenuItemRadioTokens.macos.js +46 -46
  294. package/lib-commonjs/MenuItemRadio/index.d.ts +2 -8
  295. package/lib-commonjs/MenuItemRadio/index.js +9 -24
  296. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.d.ts +1 -1
  297. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js +58 -78
  298. package/lib-commonjs/MenuList/MenuList.d.ts +2 -7
  299. package/lib-commonjs/MenuList/MenuList.js +69 -87
  300. package/lib-commonjs/MenuList/MenuList.styling.d.ts +1 -1
  301. package/lib-commonjs/MenuList/MenuList.styling.js +28 -34
  302. package/lib-commonjs/MenuList/MenuList.types.d.ts +72 -72
  303. package/lib-commonjs/MenuList/MenuList.types.js +3 -3
  304. package/lib-commonjs/MenuList/MenuListTokens.android.d.ts +1 -1
  305. package/lib-commonjs/MenuList/MenuListTokens.android.js +7 -7
  306. package/lib-commonjs/MenuList/MenuListTokens.d.ts +1 -1
  307. package/lib-commonjs/MenuList/MenuListTokens.js +9 -9
  308. package/lib-commonjs/MenuList/MenuListTokens.macos.d.ts +1 -1
  309. package/lib-commonjs/MenuList/MenuListTokens.macos.js +7 -7
  310. package/lib-commonjs/MenuList/MenuListTokens.win32.d.ts +1 -1
  311. package/lib-commonjs/MenuList/MenuListTokens.win32.js +12 -12
  312. package/lib-commonjs/MenuList/index.d.ts +1 -1
  313. package/lib-commonjs/MenuList/index.js +11 -31
  314. package/lib-commonjs/MenuList/useMenuList.d.ts +1 -1
  315. package/lib-commonjs/MenuList/useMenuList.js +151 -170
  316. package/lib-commonjs/MenuList/useMenuListContextValue.d.ts +1 -1
  317. package/lib-commonjs/MenuList/useMenuListContextValue.js +4 -4
  318. package/lib-commonjs/MenuPopover/MenuPopover.d.ts +3 -9
  319. package/lib-commonjs/MenuPopover/MenuPopover.d.ts.map +1 -1
  320. package/lib-commonjs/MenuPopover/MenuPopover.js +48 -50
  321. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts +14 -14
  322. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  323. package/lib-commonjs/MenuPopover/MenuPopover.types.js +3 -3
  324. package/lib-commonjs/MenuPopover/MenuPopoverTokens.android.d.ts +3 -7
  325. package/lib-commonjs/MenuPopover/MenuPopoverTokens.android.d.ts.map +1 -1
  326. package/lib-commonjs/MenuPopover/MenuPopoverTokens.android.js +9 -12
  327. package/lib-commonjs/MenuPopover/MenuPopoverTokens.d.ts +3 -7
  328. package/lib-commonjs/MenuPopover/MenuPopoverTokens.d.ts.map +1 -1
  329. package/lib-commonjs/MenuPopover/MenuPopoverTokens.js +6 -9
  330. package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.d.ts +3 -7
  331. package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.d.ts.map +1 -1
  332. package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.js +12 -15
  333. package/lib-commonjs/MenuPopover/MenuPopoverTokens.macos.js.map +1 -1
  334. package/lib-commonjs/MenuPopover/index.d.ts +1 -1
  335. package/lib-commonjs/MenuPopover/index.js +9 -24
  336. package/lib-commonjs/MenuPopover/useMenuPopover.d.ts +2 -2
  337. package/lib-commonjs/MenuPopover/useMenuPopover.js +87 -106
  338. package/lib-commonjs/MenuPopover/useMenuPopover.js.map +1 -1
  339. package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts +3 -3
  340. package/lib-commonjs/MenuTrigger/MenuTrigger.js +52 -69
  341. package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts +13 -13
  342. package/lib-commonjs/MenuTrigger/MenuTrigger.types.js +3 -3
  343. package/lib-commonjs/MenuTrigger/index.d.ts +1 -1
  344. package/lib-commonjs/MenuTrigger/index.js +9 -24
  345. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts +1 -1
  346. package/lib-commonjs/MenuTrigger/useMenuTrigger.js +80 -111
  347. package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts +1 -1
  348. package/lib-commonjs/MenuTrigger/useMergeRefs.js +46 -65
  349. package/lib-commonjs/__tests__/Menu.test.d.ts +1 -1
  350. package/lib-commonjs/__tests__/Menu.test.js +169 -333
  351. package/lib-commonjs/consts.d.ts +1 -1
  352. package/lib-commonjs/consts.js +6 -6
  353. package/lib-commonjs/context/index.d.ts +1 -1
  354. package/lib-commonjs/context/index.js +16 -70
  355. package/lib-commonjs/context/menuContext.d.ts +5 -5
  356. package/lib-commonjs/context/menuContext.js +47 -64
  357. package/lib-commonjs/context/menuListContext.d.ts +4 -4
  358. package/lib-commonjs/context/menuListContext.js +44 -61
  359. package/lib-commonjs/context/menuTriggerContext.d.ts +1 -1
  360. package/lib-commonjs/context/menuTriggerContext.js +7 -9
  361. package/lib-commonjs/index.d.ts +4 -26
  362. package/lib-commonjs/index.js +56 -296
  363. package/package.json +28 -27
  364. package/src/MenuCallout/MenuCallout.types.ts +12 -13
  365. package/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +4 -2
  366. package/src/MenuItemRadio/MenuItemRadio.types.ts +4 -2
  367. package/src/MenuPopover/MenuPopover.types.ts +12 -13
  368. package/src/MenuPopover/MenuPopoverTokens.macos.ts +2 -2
  369. package/src/MenuPopover/useMenuPopover.ts +1 -1
@@ -1,41 +1,41 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultMenuItemTokens = void 0;
4
- const theme_tokens_1 = require('@fluentui-react-native/theme-tokens');
4
+ const theme_tokens_1 = require("@fluentui-react-native/theme-tokens");
5
5
  const defaultMenuItemTokens = (t) => ({
6
- backgroundColor: t.colors.transparentBackground,
7
- borderRadius: 5, // hardcoded for now to match NSMenu
8
- checkmarkSize: 16,
9
- color: t.colors.neutralForeground1,
10
- fontFamily: t.typography.families.primary,
11
- fontSize: 13, // aligning with NSMenu font size
12
- fontWeight: theme_tokens_1.globalTokens.font.weight.regular,
13
- gap: theme_tokens_1.globalTokens.size40,
14
- iconColor: t.colors.neutralForeground1,
15
- iconSize: 16,
16
- paddingHorizontal: 5, // hardcoded for now to match NSMenu
17
- paddingVertical: 3, // hardcoded for now to match NSMenu
18
- submenuIndicatorColor: t.colors.neutralForeground1,
19
- submenuIndicatorPadding: theme_tokens_1.globalTokens.sizeNone,
20
- submenuIndicatorSize: 16,
21
- focused: {
22
- backgroundColor: t.colors.menuItemBackgroundHovered,
23
- color: t.colors.menuItemTextHovered,
24
- iconColor: t.colors.menuItemTextHovered,
25
- submenuIndicatorColor: t.colors.menuItemTextHovered,
26
- },
27
- pressed: {
28
- backgroundColor: t.colors.menuItemBackgroundPressed,
29
- color: t.colors.menuItemTextHovered,
30
- iconColor: t.colors.menuItemTextHovered,
31
- submenuIndicatorColor: t.colors.menuItemTextHovered,
32
- },
33
- disabled: {
34
- backgroundColor: t.colors.menuBackground,
35
- color: t.colors.disabledText,
36
- iconColor: t.colors.disabledText,
37
- submenuIndicatorColor: t.colors.disabledText,
38
- },
6
+ backgroundColor: t.colors.transparentBackground,
7
+ borderRadius: 5, // hardcoded for now to match NSMenu
8
+ checkmarkSize: 16,
9
+ color: t.colors.neutralForeground1,
10
+ fontFamily: t.typography.families.primary,
11
+ fontSize: 13, // aligning with NSMenu font size
12
+ fontWeight: theme_tokens_1.globalTokens.font.weight.regular,
13
+ gap: theme_tokens_1.globalTokens.size40,
14
+ iconColor: t.colors.neutralForeground1,
15
+ iconSize: 16,
16
+ paddingHorizontal: 5, // hardcoded for now to match NSMenu
17
+ paddingVertical: 3, // hardcoded for now to match NSMenu
18
+ submenuIndicatorColor: t.colors.neutralForeground1,
19
+ submenuIndicatorPadding: theme_tokens_1.globalTokens.sizeNone,
20
+ submenuIndicatorSize: 16,
21
+ focused: {
22
+ backgroundColor: t.colors.menuItemBackgroundHovered,
23
+ color: t.colors.menuItemTextHovered,
24
+ iconColor: t.colors.menuItemTextHovered,
25
+ submenuIndicatorColor: t.colors.menuItemTextHovered,
26
+ },
27
+ pressed: {
28
+ backgroundColor: t.colors.menuItemBackgroundPressed,
29
+ color: t.colors.menuItemTextHovered,
30
+ iconColor: t.colors.menuItemTextHovered,
31
+ submenuIndicatorColor: t.colors.menuItemTextHovered,
32
+ },
33
+ disabled: {
34
+ backgroundColor: t.colors.menuBackground,
35
+ color: t.colors.disabledText,
36
+ iconColor: t.colors.disabledText,
37
+ submenuIndicatorColor: t.colors.disabledText,
38
+ },
39
39
  });
40
40
  exports.defaultMenuItemTokens = defaultMenuItemTokens;
41
- //# sourceMappingURL=MenuItemTokens.macos.js.map
41
+ //# sourceMappingURL=MenuItemTokens.macos.js.map
@@ -2,4 +2,4 @@ import type { Theme } from '@fluentui-react-native/framework';
2
2
  import type { TokenSettings } from '@fluentui-react-native/use-styling';
3
3
  import type { MenuItemTokens } from './MenuItem.types';
4
4
  export declare const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme>;
5
- //# sourceMappingURL=MenuItemTokens.win32.d.ts.map
5
+ //# sourceMappingURL=MenuItemTokens.win32.d.ts.map
@@ -1,44 +1,44 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultMenuItemTokens = void 0;
4
- const theme_tokens_1 = require('@fluentui-react-native/theme-tokens');
4
+ const theme_tokens_1 = require("@fluentui-react-native/theme-tokens");
5
5
  const defaultMenuItemTokens = (t) => ({
6
- backgroundColor: t.colors.neutralBackground1,
7
- borderRadius: theme_tokens_1.globalTokens.corner.radiusNone,
8
- checkmarkSize: 16,
9
- color: t.colors.neutralForeground1,
10
- fontFamily: t.typography.families.primary,
11
- fontSize: theme_tokens_1.globalTokens.font.size200,
12
- fontWeight: theme_tokens_1.globalTokens.font.weight.regular,
13
- gap: theme_tokens_1.globalTokens.size40,
14
- iconColor: t.colors.neutralForeground1,
15
- iconSize: 16,
16
- minHeight: 24,
17
- minWidth: 128,
18
- maxWidth: 300,
19
- padding: theme_tokens_1.globalTokens.size40,
20
- paddingHorizontal: theme_tokens_1.globalTokens.size80,
21
- submenuIndicatorColor: t.colors.neutralForeground1,
22
- submenuIndicatorPadding: theme_tokens_1.globalTokens.size20,
23
- submenuIndicatorSize: 16,
24
- pressed: {
25
- backgroundColor: t.colors.neutralBackground1Pressed,
26
- color: t.colors.neutralForeground1Pressed,
27
- iconColor: t.colors.neutralForeground1Pressed,
28
- submenuIndicatorColor: t.colors.neutralForeground1Pressed,
29
- },
30
- disabled: {
31
6
  backgroundColor: t.colors.neutralBackground1,
32
- color: t.colors.neutralForegroundDisabled,
33
- iconColor: t.colors.neutralForegroundDisabled,
34
- submenuIndicatorColor: t.colors.neutralForegroundDisabled,
35
- },
36
- focused: {
37
- backgroundColor: t.colors.neutralBackground1Hover,
38
- color: t.colors.neutralForeground1Hover,
39
- iconColor: t.colors.neutralForeground1Hover,
40
- submenuIndicatorColor: t.colors.neutralForeground1Hover,
41
- },
7
+ borderRadius: theme_tokens_1.globalTokens.corner.radiusNone,
8
+ checkmarkSize: 16,
9
+ color: t.colors.neutralForeground1,
10
+ fontFamily: t.typography.families.primary,
11
+ fontSize: theme_tokens_1.globalTokens.font.size200,
12
+ fontWeight: theme_tokens_1.globalTokens.font.weight.regular,
13
+ gap: theme_tokens_1.globalTokens.size40,
14
+ iconColor: t.colors.neutralForeground1,
15
+ iconSize: 16,
16
+ minHeight: 24,
17
+ minWidth: 128,
18
+ maxWidth: 300,
19
+ padding: theme_tokens_1.globalTokens.size40,
20
+ paddingHorizontal: theme_tokens_1.globalTokens.size80,
21
+ submenuIndicatorColor: t.colors.neutralForeground1,
22
+ submenuIndicatorPadding: theme_tokens_1.globalTokens.size20,
23
+ submenuIndicatorSize: 16,
24
+ pressed: {
25
+ backgroundColor: t.colors.neutralBackground1Pressed,
26
+ color: t.colors.neutralForeground1Pressed,
27
+ iconColor: t.colors.neutralForeground1Pressed,
28
+ submenuIndicatorColor: t.colors.neutralForeground1Pressed,
29
+ },
30
+ disabled: {
31
+ backgroundColor: t.colors.neutralBackground1,
32
+ color: t.colors.neutralForegroundDisabled,
33
+ iconColor: t.colors.neutralForegroundDisabled,
34
+ submenuIndicatorColor: t.colors.neutralForegroundDisabled,
35
+ },
36
+ focused: {
37
+ backgroundColor: t.colors.neutralBackground1Hover,
38
+ color: t.colors.neutralForeground1Hover,
39
+ iconColor: t.colors.neutralForeground1Hover,
40
+ submenuIndicatorColor: t.colors.neutralForeground1Hover,
41
+ },
42
42
  });
43
43
  exports.defaultMenuItemTokens = defaultMenuItemTokens;
44
- //# sourceMappingURL=MenuItemTokens.win32.js.map
44
+ //# sourceMappingURL=MenuItemTokens.win32.js.map
@@ -2,4 +2,4 @@ export { MenuItem } from './MenuItem';
2
2
  export { menuItemName } from './MenuItem.types';
3
3
  export type { MenuItemProps, MenuItemState, MenuItemInfo, MenuItemTokens, MenuItemSlotProps, MenuItemType } from './MenuItem.types';
4
4
  export { useMenuItem } from './useMenuItem';
5
- //# sourceMappingURL=index.d.ts.map
5
+ //# sourceMappingURL=index.d.ts.map
@@ -1,25 +1,10 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useMenuItem = exports.menuItemName = exports.MenuItem = void 0;
4
- const MenuItem_1 = require('./MenuItem');
5
- Object.defineProperty(exports, 'MenuItem', {
6
- enumerable: true,
7
- get: function () {
8
- return MenuItem_1.MenuItem;
9
- },
10
- });
11
- const MenuItem_types_1 = require('./MenuItem.types');
12
- Object.defineProperty(exports, 'menuItemName', {
13
- enumerable: true,
14
- get: function () {
15
- return MenuItem_types_1.menuItemName;
16
- },
17
- });
18
- const useMenuItem_1 = require('./useMenuItem');
19
- Object.defineProperty(exports, 'useMenuItem', {
20
- enumerable: true,
21
- get: function () {
22
- return useMenuItem_1.useMenuItem;
23
- },
24
- });
25
- //# sourceMappingURL=index.js.map
4
+ const MenuItem_1 = require("./MenuItem");
5
+ Object.defineProperty(exports, "MenuItem", { enumerable: true, get: function () { return MenuItem_1.MenuItem; } });
6
+ const MenuItem_types_1 = require("./MenuItem.types");
7
+ Object.defineProperty(exports, "menuItemName", { enumerable: true, get: function () { return MenuItem_types_1.menuItemName; } });
8
+ const useMenuItem_1 = require("./useMenuItem");
9
+ Object.defineProperty(exports, "useMenuItem", { enumerable: true, get: function () { return useMenuItem_1.useMenuItem; } });
10
+ //# sourceMappingURL=index.js.map
@@ -4,4 +4,4 @@ export declare const triggerKeys: string[];
4
4
  export declare const submenuTriggerKeys: string[];
5
5
  export declare const useMenuItem: (props: MenuItemProps) => MenuItemInfo;
6
6
  export declare const useHoverFocusEffect: (hovered: boolean, componentRef: React.MutableRefObject<any>) => void;
7
- //# sourceMappingURL=useMenuItem.d.ts.map
7
+ //# sourceMappingURL=useMenuItem.d.ts.map
@@ -1,185 +1,156 @@
1
- 'use strict';
2
- var __createBinding =
3
- (this && this.__createBinding) ||
4
- (Object.create
5
- ? function (o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = {
10
- enumerable: true,
11
- get: function () {
12
- return m[k];
13
- },
14
- };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }
18
- : function (o, m, k, k2) {
19
- if (k2 === undefined) k2 = k;
20
- o[k2] = m[k];
21
- });
22
- var __setModuleDefault =
23
- (this && this.__setModuleDefault) ||
24
- (Object.create
25
- ? function (o, v) {
26
- Object.defineProperty(o, 'default', { enumerable: true, value: v });
27
- }
28
- : function (o, v) {
29
- o['default'] = v;
30
- });
31
- var __importStar =
32
- (this && this.__importStar) ||
33
- (function () {
34
- var ownKeys = function (o) {
35
- ownKeys =
36
- Object.getOwnPropertyNames ||
37
- function (o) {
38
- var ar = [];
39
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
40
- return ar;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
41
24
  };
42
- return ownKeys(o);
25
+ return ownKeys(o);
43
26
  };
44
27
  return function (mod) {
45
- if (mod && mod.__esModule) return mod;
46
- var result = {};
47
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== 'default') __createBinding(result, mod, k[i]);
48
- __setModuleDefault(result, mod);
49
- return result;
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
50
33
  };
51
- })();
52
- Object.defineProperty(exports, '__esModule', { value: true });
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
53
36
  exports.useHoverFocusEffect = exports.useMenuItem = exports.submenuTriggerKeys = exports.triggerKeys = void 0;
54
- const React = __importStar(require('react'));
55
- const react_native_1 = require('react-native');
56
- const framework_1 = require('@fluentui-react-native/framework');
57
- const interactive_hooks_1 = require('@fluentui-react-native/interactive-hooks');
58
- const menuContext_1 = require('../context/menuContext');
59
- const menuListContext_1 = require('../context/menuListContext');
60
- const menuTriggerContext_1 = require('../context/menuTriggerContext');
61
- const useMenuList_1 = require('../MenuList/useMenuList');
37
+ const React = __importStar(require("react"));
38
+ const react_native_1 = require("react-native");
39
+ const framework_1 = require("@fluentui-react-native/framework");
40
+ const interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
41
+ const menuContext_1 = require("../context/menuContext");
42
+ const menuListContext_1 = require("../context/menuListContext");
43
+ const menuTriggerContext_1 = require("../context/menuTriggerContext");
44
+ const useMenuList_1 = require("../MenuList/useMenuList");
62
45
  exports.triggerKeys = [' ', 'Enter'];
63
46
  exports.submenuTriggerKeys = ['ArrowLeft', 'ArrowRight', ...exports.triggerKeys];
64
47
  const useMenuItem = (props) => {
65
- // attach the pressable state handlers
66
- const defaultComponentRef = React.useRef(null);
67
- const { accessible, onClick, accessibilityState, componentRef = defaultComponentRef, disabled = false, persistOnClick, ...rest } = props;
68
- const { isSubmenu, persistOnItemClick, setOpen } = (0, menuContext_1.useMenuContext)();
69
- const { hasCheckmarks, hasIcons, hasTooltips, onArrowClose } = (0, menuListContext_1.useMenuListContext)();
70
- const isTrigger = (0, menuTriggerContext_1.useMenuTriggerContext)();
71
- const shouldPersist = persistOnClick ?? persistOnItemClick;
72
- const hasSubmenu = isSubmenu && isTrigger;
73
- const onInvoke = React.useCallback(
74
- (e) => {
75
- const isRtl = react_native_1.I18nManager.isRTL;
76
- const isArrowKey =
77
- (0, interactive_hooks_1.isKeyPressEvent)(e) && (e.nativeEvent.key === 'ArrowLeft' || e.nativeEvent.key === 'ArrowRight');
78
- const isArrowOpen =
79
- hasSubmenu &&
80
- (0, interactive_hooks_1.isKeyPressEvent)(e) &&
81
- ((isRtl && e.nativeEvent.key === 'ArrowLeft') || (!isRtl && e.nativeEvent.key === 'ArrowRight'));
82
- if (!disabled && (!isArrowKey || isArrowOpen)) {
83
- componentRef?.current?.blur();
84
- onClick?.(e);
85
- // For RN, ENTER / SPACE keypresses are handled by both the `onKey` event handlers and `onPress` handler. Because we
86
- // pass this callback into both `onKeyDown` and `onPress` props, we need to mark the event as handled for ENTER / SPACE
87
- // key presses so that we don't have duplicate `onClick` calls.
88
- e.preventDefault();
89
- }
90
- if (!hasSubmenu && !isArrowKey && !shouldPersist) {
91
- setOpen(e, false /*isOpen*/, true /*bubble*/);
92
- }
93
- const isArrowClose =
94
- (0, interactive_hooks_1.isKeyPressEvent)(e) &&
95
- ((isRtl && e.nativeEvent.key === 'ArrowRight') || (!isRtl && e.nativeEvent.key === 'ArrowLeft'));
96
- if (isArrowClose) {
97
- onArrowClose?.(e);
98
- }
99
- },
100
- [componentRef, disabled, hasSubmenu, onArrowClose, onClick, setOpen, shouldPersist],
101
- );
102
- const pressable = (0, interactive_hooks_1.usePressableState)({ ...rest, onPress: onInvoke });
103
- const itemRef = (0, interactive_hooks_1.useViewCommandFocus)(componentRef);
104
- const keys = disabled ? [] : isSubmenu ? exports.submenuTriggerKeys : exports.triggerKeys;
105
- // Explicitly override onKeyDown to override the native behavior of moving focus with arrow keys.
106
- const onKeyDownProps = (0, interactive_hooks_1.useKeyDownProps)(onInvoke, ...keys);
107
- (0, exports.useHoverFocusEffect)(pressable.state.hovered, componentRef);
108
- const [enableFocusRing, setEnableFocusRing] = React.useState(!pressable.state.hovered);
109
- const onHoverIn = React.useCallback(
110
- (e) => {
111
- pressable.props.onHoverIn(e);
112
- // when it's a hover focus, set enableFocusRing explicitly to false
113
- if (!pressable.state.focused) {
114
- setEnableFocusRing(false);
115
- }
116
- },
117
- [pressable],
118
- );
119
- const onFocus = React.useCallback(
120
- (e) => {
121
- pressable.props.onFocus(e);
122
- // when it's not a hover focus, set enableFocusRing explicitly to true
123
- if (!pressable.state.focused) {
124
- setEnableFocusRing(true);
125
- }
126
- },
127
- [pressable],
128
- );
129
- // Track the ref and disabled props on this menu item so the MenuList can handle Home and End keypresses.
130
- (0, useMenuList_1.useMenuItemTracking)(componentRef, disabled);
131
- return {
132
- props: {
133
- ...pressable.props,
134
- onHoverIn: react_native_1.Platform.select({
135
- macos: pressable.props.onHoverIn,
136
- default: onHoverIn, // win32
137
- }),
138
- onFocus: react_native_1.Platform.select({
139
- macos: pressable.props.onFocus,
140
- default: onFocus, // win32
141
- }),
142
- accessible: accessible ?? true,
143
- accessibilityRole: 'menuitem',
144
- onAccessibilityTap: props.onAccessibilityTap || onInvoke,
145
- accessibilityState: getAccessibilityState(disabled, accessibilityState),
146
- disabled,
147
- enableFocusRing: react_native_1.Platform.select({
148
- macos: false,
149
- default: enableFocusRing, // win32
150
- }),
151
- focusable: react_native_1.Platform.select({
152
- macos: !disabled,
153
- default: true, // win32
154
- }),
155
- ref: itemRef,
156
- ...onKeyDownProps,
157
- },
158
- state: {
159
- ...pressable.state,
160
- hasSubmenu,
161
- hasIcons,
162
- hasCheckmarks,
163
- hasTooltips,
164
- },
165
- };
48
+ // attach the pressable state handlers
49
+ const defaultComponentRef = React.useRef(null);
50
+ const { accessible, onClick, accessibilityState, componentRef = defaultComponentRef, disabled = false, persistOnClick, ...rest } = props;
51
+ const { isSubmenu, persistOnItemClick, setOpen } = (0, menuContext_1.useMenuContext)();
52
+ const { hasCheckmarks, hasIcons, hasTooltips, onArrowClose } = (0, menuListContext_1.useMenuListContext)();
53
+ const isTrigger = (0, menuTriggerContext_1.useMenuTriggerContext)();
54
+ const shouldPersist = persistOnClick ?? persistOnItemClick;
55
+ const hasSubmenu = isSubmenu && isTrigger;
56
+ const onInvoke = React.useCallback((e) => {
57
+ const isRtl = react_native_1.I18nManager.isRTL;
58
+ const isArrowKey = (0, interactive_hooks_1.isKeyPressEvent)(e) && (e.nativeEvent.key === 'ArrowLeft' || e.nativeEvent.key === 'ArrowRight');
59
+ const isArrowOpen = hasSubmenu &&
60
+ (0, interactive_hooks_1.isKeyPressEvent)(e) &&
61
+ ((isRtl && e.nativeEvent.key === 'ArrowLeft') || (!isRtl && e.nativeEvent.key === 'ArrowRight'));
62
+ if (!disabled && (!isArrowKey || isArrowOpen)) {
63
+ componentRef?.current?.blur();
64
+ onClick?.(e);
65
+ // For RN, ENTER / SPACE keypresses are handled by both the `onKey` event handlers and `onPress` handler. Because we
66
+ // pass this callback into both `onKeyDown` and `onPress` props, we need to mark the event as handled for ENTER / SPACE
67
+ // key presses so that we don't have duplicate `onClick` calls.
68
+ e.preventDefault();
69
+ }
70
+ if (!hasSubmenu && !isArrowKey && !shouldPersist) {
71
+ setOpen(e, false /*isOpen*/, true /*bubble*/);
72
+ }
73
+ const isArrowClose = (0, interactive_hooks_1.isKeyPressEvent)(e) && ((isRtl && e.nativeEvent.key === 'ArrowRight') || (!isRtl && e.nativeEvent.key === 'ArrowLeft'));
74
+ if (isArrowClose) {
75
+ onArrowClose?.(e);
76
+ }
77
+ }, [componentRef, disabled, hasSubmenu, onArrowClose, onClick, setOpen, shouldPersist]);
78
+ const pressable = (0, interactive_hooks_1.usePressableState)({ ...rest, onPress: onInvoke });
79
+ const itemRef = (0, interactive_hooks_1.useViewCommandFocus)(componentRef);
80
+ const keys = disabled ? [] : isSubmenu ? exports.submenuTriggerKeys : exports.triggerKeys;
81
+ // Explicitly override onKeyDown to override the native behavior of moving focus with arrow keys.
82
+ const onKeyDownProps = (0, interactive_hooks_1.useKeyDownProps)(onInvoke, ...keys);
83
+ (0, exports.useHoverFocusEffect)(pressable.state.hovered, componentRef);
84
+ const [enableFocusRing, setEnableFocusRing] = React.useState(!pressable.state.hovered);
85
+ const onHoverIn = React.useCallback((e) => {
86
+ pressable.props.onHoverIn(e);
87
+ // when it's a hover focus, set enableFocusRing explicitly to false
88
+ if (!pressable.state.focused) {
89
+ setEnableFocusRing(false);
90
+ }
91
+ }, [pressable]);
92
+ const onFocus = React.useCallback((e) => {
93
+ pressable.props.onFocus(e);
94
+ // when it's not a hover focus, set enableFocusRing explicitly to true
95
+ if (!pressable.state.focused) {
96
+ setEnableFocusRing(true);
97
+ }
98
+ }, [pressable]);
99
+ // Track the ref and disabled props on this menu item so the MenuList can handle Home and End keypresses.
100
+ (0, useMenuList_1.useMenuItemTracking)(componentRef, disabled);
101
+ return {
102
+ props: {
103
+ ...pressable.props,
104
+ onHoverIn: react_native_1.Platform.select({
105
+ macos: pressable.props.onHoverIn,
106
+ default: onHoverIn, // win32
107
+ }),
108
+ onFocus: react_native_1.Platform.select({
109
+ macos: pressable.props.onFocus,
110
+ default: onFocus, // win32
111
+ }),
112
+ accessible: accessible ?? true,
113
+ accessibilityRole: 'menuitem',
114
+ onAccessibilityTap: props.onAccessibilityTap || onInvoke,
115
+ accessibilityState: getAccessibilityState(disabled, accessibilityState),
116
+ disabled,
117
+ enableFocusRing: react_native_1.Platform.select({
118
+ macos: false,
119
+ default: enableFocusRing, // win32
120
+ }),
121
+ focusable: react_native_1.Platform.select({
122
+ macos: !disabled,
123
+ default: true, // win32
124
+ }),
125
+ ref: itemRef,
126
+ ...onKeyDownProps,
127
+ },
128
+ state: {
129
+ ...pressable.state,
130
+ hasSubmenu,
131
+ hasIcons,
132
+ hasCheckmarks,
133
+ hasTooltips,
134
+ },
135
+ };
166
136
  };
167
137
  exports.useMenuItem = useMenuItem;
168
138
  const getAccessibilityState = (0, framework_1.memoize)(getAccessibilityStateWorker);
169
139
  function getAccessibilityStateWorker(disabled, accessibilityState) {
170
- if (accessibilityState) {
171
- return { disabled, ...accessibilityState };
172
- }
173
- return { disabled };
140
+ if (accessibilityState) {
141
+ return { disabled, ...accessibilityState };
142
+ }
143
+ return { disabled };
174
144
  }
175
145
  const useHoverFocusEffect = (hovered, componentRef) => {
176
- React.useLayoutEffect(() => {
177
- if (hovered) {
178
- componentRef?.current?.focus();
179
- } else {
180
- componentRef?.current?.blur();
181
- }
182
- }, [hovered, componentRef]);
146
+ React.useLayoutEffect(() => {
147
+ if (hovered) {
148
+ componentRef?.current?.focus();
149
+ }
150
+ else {
151
+ componentRef?.current?.blur();
152
+ }
153
+ }, [hovered, componentRef]);
183
154
  };
184
155
  exports.useHoverFocusEffect = useHoverFocusEffect;
185
- //# sourceMappingURL=useMenuItem.js.map
156
+ //# sourceMappingURL=useMenuItem.js.map
@@ -1,13 +1,5 @@
1
1
  import type { Slots, FinalRender } from '@fluentui-react-native/framework';
2
2
  import type { MenuItemCheckboxProps, MenuItemCheckboxSlotProps, MenuItemCheckboxInfo } from './MenuItemCheckbox.types';
3
- export declare const MenuItemCheckbox: import('@fluentui-react-native/framework').ComposableComponent<
4
- MenuItemCheckboxProps,
5
- MenuItemCheckboxSlotProps,
6
- import('./MenuItemCheckbox.types').MenuItemCheckboxTokens,
7
- import('@fluentui-react-native/framework').ObjectBase
8
- >;
9
- export declare const menuItemFinalRender: (
10
- menuItem: MenuItemCheckboxInfo,
11
- Slots: Slots<MenuItemCheckboxSlotProps>,
12
- ) => FinalRender<MenuItemCheckboxProps>;
13
- //# sourceMappingURL=MenuItemCheckbox.d.ts.map
3
+ export declare const MenuItemCheckbox: import("@fluentui-react-native/framework").ComposableComponent<MenuItemCheckboxProps, MenuItemCheckboxSlotProps, import("./MenuItemCheckbox.types").MenuItemCheckboxTokens, import("@fluentui-react-native/framework").ObjectBase>;
4
+ export declare const menuItemFinalRender: (menuItem: MenuItemCheckboxInfo, Slots: Slots<MenuItemCheckboxSlotProps>) => FinalRender<MenuItemCheckboxProps>;
5
+ //# sourceMappingURL=MenuItemCheckbox.d.ts.map