@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
@@ -8,176 +8,159 @@ import { useMenuListContext } from '../context/menuListContext';
8
8
  // 2. Keeping them here means these consts are not recreated on every render, which would force rerendering of all children
9
9
  const radioItems = [];
10
10
  const addRadioItem = (name) => {
11
- radioItems.push(name);
11
+ radioItems.push(name);
12
12
  };
13
13
  const removeRadioItem = (name) => {
14
- radioItems.filter((item) => item !== name);
14
+ radioItems.filter((item) => item !== name);
15
15
  };
16
16
  const platformsWithoutFocusOnDisabled = ['ios', 'macos'];
17
17
  const handledKeys = ['Home', 'End'];
18
18
  const handleFocusOnMouseLevae = Platform.OS === 'macos';
19
19
  export const useMenuList = (_props) => {
20
- const context = useMenuContext();
21
- // MenuList v2 needs to be able to be standalone, but this is not in scope for v1
22
- // Assuming that checked information will come from parent Menu
23
- const { defaultChecked, onCheckedChange: onCheckedChangeOriginal, checked: checkedOriginal, isSubmenu, setOpen, triggerRef } = context;
24
- // Convert passed in array to map so that i's easier to look up checked state
25
- const checkedMap = React.useMemo(() => {
26
- const state = {};
27
- if (!checkedOriginal) {
28
- return state;
29
- }
30
- for (const key of checkedOriginal) {
31
- state[key] = true;
32
- }
33
- return state;
34
- }, [checkedOriginal]);
35
- const [checkedInternal, setCheckedInternal] = React.useState(() => {
36
- if (checkedMap) {
37
- return checkedMap;
38
- }
39
- const initialChecked = defaultChecked ?? [];
40
- const state = {};
41
- for (const key of initialChecked) {
42
- state[key] = true;
43
- }
44
- return state;
45
- });
46
- const isCheckedControlled = typeof checkedOriginal !== 'undefined';
47
- const checked = isCheckedControlled ? checkedMap : checkedInternal;
48
- const onCheckedChange = React.useCallback(
49
- (e, name, isChecked) => {
50
- const updatedChecked = { ...checked };
51
- if (isChecked) {
20
+ const context = useMenuContext();
21
+ // MenuList v2 needs to be able to be standalone, but this is not in scope for v1
22
+ // Assuming that checked information will come from parent Menu
23
+ const { defaultChecked, onCheckedChange: onCheckedChangeOriginal, checked: checkedOriginal, isSubmenu, setOpen, triggerRef } = context;
24
+ // Convert passed in array to map so that i's easier to look up checked state
25
+ const checkedMap = React.useMemo(() => {
26
+ const state = {};
27
+ if (!checkedOriginal) {
28
+ return state;
29
+ }
30
+ for (const key of checkedOriginal) {
31
+ state[key] = true;
32
+ }
33
+ return state;
34
+ }, [checkedOriginal]);
35
+ const [checkedInternal, setCheckedInternal] = React.useState(() => {
36
+ if (checkedMap) {
37
+ return checkedMap;
38
+ }
39
+ const initialChecked = defaultChecked ?? [];
40
+ const state = {};
41
+ for (const key of initialChecked) {
42
+ state[key] = true;
43
+ }
44
+ return state;
45
+ });
46
+ const isCheckedControlled = typeof checkedOriginal !== 'undefined';
47
+ const checked = isCheckedControlled ? checkedMap : checkedInternal;
48
+ const onCheckedChange = React.useCallback((e, name, isChecked) => {
49
+ const updatedChecked = { ...checked };
50
+ if (isChecked) {
51
+ updatedChecked[name] = true;
52
+ }
53
+ else {
54
+ delete updatedChecked[name];
55
+ }
56
+ if (!isCheckedControlled) {
57
+ setCheckedInternal(updatedChecked);
58
+ }
59
+ if (onCheckedChangeOriginal) {
60
+ onCheckedChangeOriginal(e, Object.keys(updatedChecked));
61
+ }
62
+ }, [isCheckedControlled, checked, onCheckedChangeOriginal, setCheckedInternal]);
63
+ const selectRadio = React.useCallback((e, name) => {
64
+ const updatedChecked = {};
65
+ for (const checkedName of Object.keys(checked)) {
66
+ if (!radioItems.includes(checkedName)) {
67
+ // Preserve checked state if non-radio items
68
+ updatedChecked[checkedName] = checked[checkedName];
69
+ }
70
+ }
52
71
  updatedChecked[name] = true;
53
- } else {
54
- delete updatedChecked[name];
55
- }
56
- if (!isCheckedControlled) {
57
- setCheckedInternal(updatedChecked);
58
- }
59
- if (onCheckedChangeOriginal) {
60
- onCheckedChangeOriginal(e, Object.keys(updatedChecked));
61
- }
62
- },
63
- [isCheckedControlled, checked, onCheckedChangeOriginal, setCheckedInternal],
64
- );
65
- const selectRadio = React.useCallback(
66
- (e, name) => {
67
- const updatedChecked = {};
68
- for (const checkedName of Object.keys(checked)) {
69
- if (!radioItems.includes(checkedName)) {
70
- // Preserve checked state if non-radio items
71
- updatedChecked[checkedName] = checked[checkedName];
72
+ if (!isCheckedControlled) {
73
+ setCheckedInternal(updatedChecked);
74
+ }
75
+ if (onCheckedChangeOriginal) {
76
+ onCheckedChangeOriginal(e, Object.keys(updatedChecked));
77
+ }
78
+ }, [isCheckedControlled, onCheckedChangeOriginal, setCheckedInternal, checked]);
79
+ // The close arrow key must be handled at this level so that close arrow is responsive when arrowing
80
+ // on a submenu trigger inside a submenu. Otherwise the arrowing event gets "swallowed up" by the trigger,
81
+ // because it is considered to be inside the submenu due to the Menu component wrapping both the
82
+ // trigger and popover. Listening to key events directly here to handle this case doesn't work
83
+ // since left and right arrow key events are already handled and swallowed by native behavior
84
+ const onArrowClose = React.useCallback((e) => {
85
+ if (!isSubmenu) {
86
+ return;
72
87
  }
73
- }
74
- updatedChecked[name] = true;
75
- if (!isCheckedControlled) {
76
- setCheckedInternal(updatedChecked);
77
- }
78
- if (onCheckedChangeOriginal) {
79
- onCheckedChangeOriginal(e, Object.keys(updatedChecked));
80
- }
81
- },
82
- [isCheckedControlled, onCheckedChangeOriginal, setCheckedInternal, checked],
83
- );
84
- // The close arrow key must be handled at this level so that close arrow is responsive when arrowing
85
- // on a submenu trigger inside a submenu. Otherwise the arrowing event gets "swallowed up" by the trigger,
86
- // because it is considered to be inside the submenu due to the Menu component wrapping both the
87
- // trigger and popover. Listening to key events directly here to handle this case doesn't work
88
- // since left and right arrow key events are already handled and swallowed by native behavior
89
- const onArrowClose = React.useCallback(
90
- (e) => {
91
- if (!isSubmenu) {
92
- return;
93
- }
94
- setOpen(e, false /* isOpen */, false /* bubble */);
95
- triggerRef?.current?.focus();
96
- },
97
- [isSubmenu, setOpen, triggerRef],
98
- );
99
- // Handle 'Home' and 'End' keypresses here. Native menus allow 'Home' and 'End' keypresses to jump to the
100
- // start and end of each menu list. We need to keep track of all MenuItems in our list, and we need access to
101
- // (1) the item's ref to focus on and (2) whether the item is disabled or not as different platforms allow
102
- // and don't allow focus for disabled items.
103
- // Instead of calling useState to instantiate an array, we call useMemo because we don't want to re-render the
104
- // MenuList on adding / removing items.
105
- const trackedMenuItems = React.useMemo(() => [], []);
106
- const trackMenuItem = React.useCallback((item) => trackedMenuItems.push(item), [trackedMenuItems]);
107
- const untrackMenuItem = React.useCallback(
108
- (item) =>
109
- trackedMenuItems.splice(
110
- trackedMenuItems.findIndex((x) => x.ref === item.ref),
111
- 1,
112
- ),
113
- [trackedMenuItems],
114
- );
115
- const onListKeyDown = (e) => {
116
- const key = e.nativeEvent.key;
117
- if (handledKeys.includes(key)) {
118
- // For iOS and macOS, 'Home' and 'End' must set focus on the first and last enabled item.
119
- // For other platforms, we can just jump to the first and last keys.
120
- let increment, idx;
121
- if (key === 'Home') {
122
- increment = 1;
123
- idx = 0;
124
- } else if (key === 'End') {
125
- increment = -1;
126
- idx = trackedMenuItems.length - 1;
127
- }
128
- while (platformsWithoutFocusOnDisabled.includes(Platform.OS) && trackedMenuItems[idx].disabled) {
129
- idx += increment;
130
- }
131
- trackedMenuItems[idx].ref.current?.focus();
132
- }
133
- };
134
- React.useEffect(() => {
135
- return function cleanup() {
136
- clearTimeout(context.triggerHoverOutTimer);
88
+ setOpen(e, false /* isOpen */, false /* bubble */);
89
+ triggerRef?.current?.focus();
90
+ }, [isSubmenu, setOpen, triggerRef]);
91
+ // Handle 'Home' and 'End' keypresses here. Native menus allow 'Home' and 'End' keypresses to jump to the
92
+ // start and end of each menu list. We need to keep track of all MenuItems in our list, and we need access to
93
+ // (1) the item's ref to focus on and (2) whether the item is disabled or not as different platforms allow
94
+ // and don't allow focus for disabled items.
95
+ // Instead of calling useState to instantiate an array, we call useMemo because we don't want to re-render the
96
+ // MenuList on adding / removing items.
97
+ const trackedMenuItems = React.useMemo(() => [], []);
98
+ const trackMenuItem = React.useCallback((item) => trackedMenuItems.push(item), [trackedMenuItems]);
99
+ const untrackMenuItem = React.useCallback((item) => trackedMenuItems.splice(trackedMenuItems.findIndex((x) => x.ref === item.ref), 1), [trackedMenuItems]);
100
+ const onListKeyDown = (e) => {
101
+ const key = e.nativeEvent.key;
102
+ if (handledKeys.includes(key)) {
103
+ // For iOS and macOS, 'Home' and 'End' must set focus on the first and last enabled item.
104
+ // For other platforms, we can just jump to the first and last keys.
105
+ let increment, idx;
106
+ if (key === 'Home') {
107
+ increment = 1;
108
+ idx = 0;
109
+ }
110
+ else if (key === 'End') {
111
+ increment = -1;
112
+ idx = trackedMenuItems.length - 1;
113
+ }
114
+ while (platformsWithoutFocusOnDisabled.includes(Platform.OS) && trackedMenuItems[idx].disabled) {
115
+ idx += increment;
116
+ }
117
+ trackedMenuItems[idx].ref.current?.focus();
118
+ }
119
+ };
120
+ React.useEffect(() => {
121
+ return function cleanup() {
122
+ clearTimeout(context.triggerHoverOutTimer);
123
+ };
124
+ });
125
+ // focus management
126
+ const focusZoneRef = React.useRef(null);
127
+ const setFocusZoneFocus = () => {
128
+ focusZoneRef?.current?.focus();
129
+ };
130
+ React.useEffect(() => {
131
+ setFocusZoneFocus();
132
+ }, []);
133
+ return {
134
+ props: {
135
+ ...context,
136
+ onMouseLeave: handleFocusOnMouseLevae ? setFocusZoneFocus : context.onMouseLeave,
137
+ onKeyDown: onListKeyDown,
138
+ },
139
+ isCheckedControlled,
140
+ checked,
141
+ onArrowClose,
142
+ onCheckedChange,
143
+ selectRadio,
144
+ addRadioItem,
145
+ removeRadioItem,
146
+ trackMenuItem,
147
+ untrackMenuItem,
148
+ hasMaxHeight: context.hasMaxHeight ?? false,
149
+ hasMaxWidth: context.hasMaxWidth ?? false,
150
+ focusZoneRef: focusZoneRef,
137
151
  };
138
- });
139
- // focus management
140
- const focusZoneRef = React.useRef(null);
141
- const setFocusZoneFocus = () => {
142
- focusZoneRef?.current?.focus();
143
- };
144
- React.useEffect(() => {
145
- setFocusZoneFocus();
146
- }, []);
147
- return {
148
- props: {
149
- ...context,
150
- onMouseLeave: handleFocusOnMouseLevae ? setFocusZoneFocus : context.onMouseLeave,
151
- onKeyDown: onListKeyDown,
152
- },
153
- isCheckedControlled,
154
- checked,
155
- onArrowClose,
156
- onCheckedChange,
157
- selectRadio,
158
- addRadioItem,
159
- removeRadioItem,
160
- trackMenuItem,
161
- untrackMenuItem,
162
- hasMaxHeight: context.hasMaxHeight ?? false,
163
- hasMaxWidth: context.hasMaxWidth ?? false,
164
- focusZoneRef: focusZoneRef,
165
- };
166
152
  };
167
153
  // Hook called in individual MenuItems to keep track of their refs - this is for "Home" and "End" functionality.
168
154
  export const useMenuItemTracking = (ref, disabled) => {
169
- const { trackMenuItem, untrackMenuItem } = useMenuListContext();
170
- const item = React.useMemo(
171
- () => ({
172
- ref,
173
- disabled,
174
- }),
175
- [ref, disabled],
176
- );
177
- // We only want to call this once - when the item initially renders.
178
- React.useEffect(() => {
179
- trackMenuItem(item);
180
- return () => untrackMenuItem(item);
181
- }, []);
155
+ const { trackMenuItem, untrackMenuItem } = useMenuListContext();
156
+ const item = React.useMemo(() => ({
157
+ ref,
158
+ disabled,
159
+ }), [ref, disabled]);
160
+ // We only want to call this once - when the item initially renders.
161
+ React.useEffect(() => {
162
+ trackMenuItem(item);
163
+ return () => untrackMenuItem(item);
164
+ }, []);
182
165
  };
183
- //# sourceMappingURL=useMenuList.js.map
166
+ //# sourceMappingURL=useMenuList.js.map
@@ -1,4 +1,4 @@
1
1
  import type { MenuListState } from './MenuList.types';
2
2
  import type { MenuListContextValue } from '../context/menuListContext';
3
3
  export declare const useMenuListContextValue: (state: MenuListState) => MenuListContextValue;
4
- //# sourceMappingURL=useMenuListContextValue.d.ts.map
4
+ //# sourceMappingURL=useMenuListContextValue.d.ts.map
@@ -1,4 +1,4 @@
1
1
  export const useMenuListContextValue = (state) => {
2
- return { hasCheckmarks: state.props.hasCheckmarks, hasIcons: state.props.hasIcons, hasTooltips: state.props.hasTooltips, ...state };
2
+ return { hasCheckmarks: state.props.hasCheckmarks, hasIcons: state.props.hasIcons, hasTooltips: state.props.hasTooltips, ...state };
3
3
  };
4
- //# sourceMappingURL=useMenuListContextValue.js.map
4
+ //# sourceMappingURL=useMenuListContextValue.js.map
@@ -1,10 +1,4 @@
1
- export declare const MenuPopover: import('@fluentui-react-native/use-tokens').CustomizableComponent<
2
- import('@fluentui-react-native/callout').ICalloutProps,
3
- Omit<import('@fluentui-react-native/callout').ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'> & {
4
- borderRadius?: string | import('react-native').AnimatableNumericValue;
5
- elevation?: number;
6
- },
7
- import('@fluentui-react-native/theme-types').Theme
8
- >;
1
+ import type { MenuPopoverTokens } from './MenuPopover.types';
2
+ export declare const MenuPopover: import("@fluentui-react-native/use-tokens").CustomizableComponent<import("@fluentui-react-native/callout").ICalloutProps, MenuPopoverTokens, import("@fluentui-react-native/theme-types").Theme>;
9
3
  export default MenuPopover;
10
- //# sourceMappingURL=MenuPopover.d.ts.map
4
+ //# sourceMappingURL=MenuPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,WAAW;;;sDA4CvB,CAAC;AAGF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO/E,eAAO,MAAM,WAAW,kMA4CvB,CAAC;AAGF,eAAe,WAAW,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from 'react/jsx-runtime';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import { Platform, View } from 'react-native';
4
4
  import { compressible, mergeProps, patchTokens, useFluentTheme } from '@fluentui-react-native/framework';
@@ -8,40 +8,40 @@ import { useMenuPopover } from './useMenuPopover';
8
8
  import { useMenuContext } from '../context';
9
9
  import { MenuCallout } from '../MenuCallout';
10
10
  export const MenuPopover = compressible((props, useTokens) => {
11
- const { directionalHint, gapSpace, maxHeight, maxWidth, minWidth, minPadding, borderWidth, borderColor, backgroundColor } = props;
12
- const state = useMenuPopover(props);
13
- const theme = useFluentTheme();
14
- const context = useMenuContext();
15
- let [tokens, cache] = useTokens(theme);
16
- context.hasMaxHeight = maxHeight != undefined;
17
- context.minWidth = minWidth ?? context.minWidth;
18
- [tokens, cache] = patchTokens(tokens, cache, {
19
- directionalHint,
20
- gapSpace,
21
- maxHeight,
22
- maxWidth,
23
- minWidth,
24
- minPadding,
25
- borderWidth,
26
- borderColor,
27
- backgroundColor,
28
- });
29
- return (final, children) => {
30
- const mergedProps = mergeProps(tokens, state.props, final);
31
- const innerViewProps =
32
- //For windows platforms, styling needs to be set on container view instead of the callout itself for the scrollview to reflect correct width and height
33
- Platform.OS === 'windows' || Platform.OS === 'win32'
34
- ? {
35
- ...state.innerView,
36
- style: {
37
- maxHeight: mergedProps.maxHeight,
38
- },
39
- }
40
- : state.innerView;
41
- const content = React.createElement(View, innerViewProps, children);
42
- return _jsx(MenuCallout, { tokens: tokens, ...mergedProps, children: content });
43
- };
11
+ const { directionalHint, gapSpace, maxHeight, maxWidth, minWidth, minPadding, borderWidth, borderColor, backgroundColor } = props;
12
+ const state = useMenuPopover(props);
13
+ const theme = useFluentTheme();
14
+ const context = useMenuContext();
15
+ let [tokens, cache] = useTokens(theme);
16
+ context.hasMaxHeight = maxHeight != undefined;
17
+ context.minWidth = minWidth ?? context.minWidth;
18
+ [tokens, cache] = patchTokens(tokens, cache, {
19
+ directionalHint,
20
+ gapSpace,
21
+ maxHeight,
22
+ maxWidth,
23
+ minWidth,
24
+ minPadding,
25
+ borderWidth,
26
+ borderColor,
27
+ backgroundColor,
28
+ });
29
+ return (final, children) => {
30
+ const mergedProps = mergeProps(tokens, state.props, final);
31
+ const innerViewProps =
32
+ //For windows platforms, styling needs to be set on container view instead of the callout itself for the scrollview to reflect correct width and height
33
+ Platform.OS === 'windows' || Platform.OS === 'win32'
34
+ ? {
35
+ ...state.innerView,
36
+ style: {
37
+ maxHeight: mergedProps.maxHeight,
38
+ },
39
+ }
40
+ : state.innerView;
41
+ const content = React.createElement(View, innerViewProps, children);
42
+ return (_jsx(MenuCallout, { tokens: tokens, ...mergedProps, children: content }));
43
+ };
44
44
  }, useMenuPopoverTokens);
45
45
  MenuPopover.displayName = menuPopoverName;
46
46
  export default MenuPopover;
47
- //# sourceMappingURL=MenuPopover.js.map
47
+ //# sourceMappingURL=MenuPopover.js.map
@@ -1,22 +1,22 @@
1
1
  import type { AnimatableNumericValue } from 'react-native';
2
2
  import type { IViewProps } from '@fluentui-react-native/adapters';
3
3
  import type { ICalloutProps, ICalloutTokens } from '@fluentui-react-native/callout';
4
- export declare const menuPopoverName = 'MenuPopover';
4
+ export declare const menuPopoverName = "MenuPopover";
5
5
  export type MenuPopoverTokens = Omit<ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'> & {
6
- /**
7
- * The props for the corner radius for the Modal MenuPopover
8
- * @platform android macos
9
- */
10
- borderRadius?: AnimatableNumericValue | string;
11
- /**
12
- * Shadown elevation for the Modal MenuPopover
13
- * @platform android
14
- */
15
- elevation?: number;
6
+ /**
7
+ * The props for the corner radius for the Modal MenuPopover
8
+ * @platform android macos
9
+ */
10
+ borderRadius?: AnimatableNumericValue | string;
11
+ /**
12
+ * Shadown elevation for the Modal MenuPopover
13
+ * @platform android
14
+ */
15
+ elevation?: number;
16
16
  };
17
17
  export type MenuPopoverProps = ICalloutProps;
18
18
  export interface MenuPopoverState {
19
- props: ICalloutProps;
20
- innerView: IViewProps;
19
+ props: ICalloutProps;
20
+ innerView: IViewProps;
21
21
  }
22
- //# sourceMappingURL=MenuPopover.types.d.ts.map
22
+ //# sourceMappingURL=MenuPopover.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEpF,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAI7C,MAAM,MAAM,iBAAiB,GAC3B,CAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,CAAC,GAAG;IACtE;;;OAGG;IACH,YAAY,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC;IAE/C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAA,CAAC;AAEN,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB"}
1
+ {"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEpF,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAI7C,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,CAAC,GAAG;IACtG;;;OAGG;IACH,YAAY,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC;IAE/C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB"}
@@ -1,2 +1,2 @@
1
1
  export const menuPopoverName = 'MenuPopover';
2
- //# sourceMappingURL=MenuPopover.types.js.map
2
+ //# sourceMappingURL=MenuPopover.types.js.map
@@ -1,7 +1,3 @@
1
- export declare const useMenuPopoverTokens: import('@fluentui-react-native/framework').UseTokens<
2
- Omit<import('@fluentui-react-native/callout').ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'> & {
3
- borderRadius?: string | import('react-native').AnimatableNumericValue;
4
- elevation?: number;
5
- }
6
- >;
7
- //# sourceMappingURL=MenuPopoverTokens.android.d.ts.map
1
+ import type { MenuPopoverTokens } from './MenuPopover.types';
2
+ export declare const useMenuPopoverTokens: import("@fluentui-react-native/framework").UseTokens<MenuPopoverTokens>;
3
+ //# sourceMappingURL=MenuPopoverTokens.android.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopoverTokens.android.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.android.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,oBAAoB;;;EAWhC,CAAC"}
1
+ {"version":3,"file":"MenuPopoverTokens.android.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.android.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,eAAO,MAAM,oBAAoB,yEAWhC,CAAC"}
@@ -2,8 +2,7 @@ import { Dimensions } from 'react-native';
2
2
  import { buildUseTokens } from '@fluentui-react-native/framework';
3
3
  import { globalTokens } from '@fluentui-react-native/theme-tokens';
4
4
  import { menuPopoverName } from './MenuPopover.types';
5
- export const useMenuPopoverTokens = buildUseTokens(
6
- (t) => ({
5
+ export const useMenuPopoverTokens = buildUseTokens((t) => ({
7
6
  borderWidth: 1,
8
7
  borderColor: t.colors.neutralStrokeAccessible,
9
8
  maxHeight: Dimensions.get('window').height / 2 - globalTokens.size320, // Getting window height size and subtracting the padding considering on vertical
@@ -11,7 +10,5 @@ export const useMenuPopoverTokens = buildUseTokens(
11
10
  cornerRadius: globalTokens.corner.radius80,
12
11
  elevation: globalTokens.size160,
13
12
  minPadding: globalTokens.size160,
14
- }),
15
- menuPopoverName,
16
- );
17
- //# sourceMappingURL=MenuPopoverTokens.android.js.map
13
+ }), menuPopoverName);
14
+ //# sourceMappingURL=MenuPopoverTokens.android.js.map
@@ -1,7 +1,3 @@
1
- export declare const useMenuPopoverTokens: import('@fluentui-react-native/framework').UseTokens<
2
- Omit<import('@fluentui-react-native/callout').ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'> & {
3
- borderRadius?: string | import('react-native').AnimatableNumericValue;
4
- elevation?: number;
5
- }
6
- >;
7
- //# sourceMappingURL=MenuPopoverTokens.d.ts.map
1
+ import type { MenuPopoverTokens } from './MenuPopover.types';
2
+ export declare const useMenuPopoverTokens: import("@fluentui-react-native/framework").UseTokens<MenuPopoverTokens>;
3
+ //# sourceMappingURL=MenuPopoverTokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopoverTokens.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB;;;EAGhC,CAAC"}
1
+ {"version":3,"file":"MenuPopoverTokens.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,eAAO,MAAM,oBAAoB,yEAGhC,CAAC"}
@@ -1,7 +1,4 @@
1
1
  import { buildUseTokens } from '@fluentui-react-native/framework';
2
2
  import { menuPopoverName } from './MenuPopover.types';
3
- export const useMenuPopoverTokens = buildUseTokens(
4
- (t) => ({ borderWidth: 1, borderColor: t.colors.neutralStrokeAccessible }),
5
- menuPopoverName,
6
- );
7
- //# sourceMappingURL=MenuPopoverTokens.js.map
3
+ export const useMenuPopoverTokens = buildUseTokens((t) => ({ borderWidth: 1, borderColor: t.colors.neutralStrokeAccessible }), menuPopoverName);
4
+ //# sourceMappingURL=MenuPopoverTokens.js.map
@@ -1,7 +1,3 @@
1
- export declare const useMenuPopoverTokens: import('@fluentui-react-native/framework').UseTokens<
2
- Omit<import('@fluentui-react-native/callout').ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'> & {
3
- borderRadius?: string | import('react-native').AnimatableNumericValue;
4
- elevation?: number;
5
- }
6
- >;
7
- //# sourceMappingURL=MenuPopoverTokens.macos.d.ts.map
1
+ import type { MenuPopoverTokens } from './MenuPopover.types';
2
+ export declare const useMenuPopoverTokens: import("@fluentui-react-native/framework").UseTokens<MenuPopoverTokens>;
3
+ //# sourceMappingURL=MenuPopoverTokens.macos.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopoverTokens.macos.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.macos.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB;;;EAWhC,CAAC"}
1
+ {"version":3,"file":"MenuPopoverTokens.macos.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.macos.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,eAAO,MAAM,oBAAoB,yEAWhC,CAAC"}
@@ -1,16 +1,13 @@
1
1
  import { buildUseTokens } from '@fluentui-react-native/framework';
2
2
  import { getCurrentAppearance, isHighContrast } from '@fluentui-react-native/theming-utils';
3
3
  import { menuPopoverName } from './MenuPopover.types';
4
- export const useMenuPopoverTokens = buildUseTokens(
5
- (t) => ({
4
+ export const useMenuPopoverTokens = buildUseTokens((t) => ({
6
5
  borderWidth: 1,
7
6
  borderRadius: 5,
8
7
  borderColor: isHighContrast()
9
- ? t.colors.neutralStroke1
10
- : getCurrentAppearance(t.host.appearance, 'light') === 'dark'
11
- ? t.colors.neutralStroke3
12
- : t.colors.transparentStroke,
13
- }),
14
- menuPopoverName,
15
- );
16
- //# sourceMappingURL=MenuPopoverTokens.macos.js.map
8
+ ? t.colors.neutralStroke1
9
+ : getCurrentAppearance(t.host.appearance, 'light') === 'dark'
10
+ ? t.colors.neutralStroke3
11
+ : t.colors.transparentStroke,
12
+ }), menuPopoverName);
13
+ //# sourceMappingURL=MenuPopoverTokens.macos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopoverTokens.macos.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.macos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAG5F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAChD,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC;IACb,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,cAAc,EAAE;QAC3B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc;QACzB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,MAAM;YAC7D,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc;YACzB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB;CAC/B,CAAC,EACF,eAAe,CAChB,CAAC"}
1
+ {"version":3,"file":"MenuPopoverTokens.macos.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.macos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAG5F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAChD,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC;IACb,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,cAAc,EAAE;QAC3B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc;QACzB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,MAAM;YAC3D,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc;YACzB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB;CACjC,CAAC,EACF,eAAe,CAChB,CAAC"}
@@ -2,4 +2,4 @@ export { MenuPopover } from './MenuPopover';
2
2
  export { menuPopoverName } from './MenuPopover.types';
3
3
  export type { MenuPopoverProps, MenuPopoverState, MenuPopoverTokens } from './MenuPopover.types';
4
4
  export { useMenuPopover } from './useMenuPopover';
5
- //# sourceMappingURL=index.d.ts.map
5
+ //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
1
  export { MenuPopover } from './MenuPopover';
2
2
  export { menuPopoverName } from './MenuPopover.types';
3
3
  export { useMenuPopover } from './useMenuPopover';
4
- //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  import type { MenuPopoverState } from './MenuPopover.types';
2
- export declare const useMenuPopover: (props: import('@fluentui-react-native/callout').ICalloutProps) => MenuPopoverState;
3
- //# sourceMappingURL=useMenuPopover.d.ts.map
2
+ export declare const useMenuPopover: (props: import("@fluentui-react-native/callout").ICalloutProps) => MenuPopoverState;
3
+ //# sourceMappingURL=useMenuPopover.d.ts.map