@fluentui/react-menu 9.25.1 → 9.74.3-experimental.esm.20260709-49ee7a20cf.0

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 (451) hide show
  1. package/CHANGELOG.md +23 -2
  2. package/dist/index.d.cts +1046 -0
  3. package/lib/Menu.js +1 -1
  4. package/lib/Menu.js.map +1 -1
  5. package/lib/MenuDivider.js +1 -1
  6. package/lib/MenuDivider.js.map +1 -1
  7. package/lib/MenuGroup.js +1 -1
  8. package/lib/MenuGroup.js.map +1 -1
  9. package/lib/MenuGroupHeader.js +1 -1
  10. package/lib/MenuGroupHeader.js.map +1 -1
  11. package/lib/MenuItem.js +1 -1
  12. package/lib/MenuItem.js.map +1 -1
  13. package/lib/MenuItemCheckbox.js +1 -1
  14. package/lib/MenuItemCheckbox.js.map +1 -1
  15. package/lib/MenuItemLink.js +1 -1
  16. package/lib/MenuItemLink.js.map +1 -1
  17. package/lib/MenuItemRadio.js +1 -1
  18. package/lib/MenuItemRadio.js.map +1 -1
  19. package/lib/MenuItemSwitch.js +1 -1
  20. package/lib/MenuItemSwitch.js.map +1 -1
  21. package/lib/MenuList.js +1 -1
  22. package/lib/MenuList.js.map +1 -1
  23. package/lib/MenuPopover.js +1 -1
  24. package/lib/MenuPopover.js.map +1 -1
  25. package/lib/MenuSplitGroup.js +1 -1
  26. package/lib/MenuSplitGroup.js.map +1 -1
  27. package/lib/MenuTrigger.js +1 -1
  28. package/lib/MenuTrigger.js.map +1 -1
  29. package/lib/components/Menu/Menu.js +3 -3
  30. package/lib/components/Menu/Menu.js.map +1 -1
  31. package/lib/components/Menu/MenuSurfaceMotion.js +3 -3
  32. package/lib/components/Menu/index.js +4 -4
  33. package/lib/components/Menu/index.js.map +1 -1
  34. package/lib/components/Menu/renderMenu.js +4 -4
  35. package/lib/components/Menu/renderMenu.js.map +1 -1
  36. package/lib/components/Menu/useMenu.js +10 -10
  37. package/lib/components/Menu/useMenu.js.map +1 -1
  38. package/lib/components/Menu/useMenuContextValues.js +1 -1
  39. package/lib/components/MenuDivider/MenuDivider.js +5 -5
  40. package/lib/components/MenuDivider/MenuDivider.js.map +1 -1
  41. package/lib/components/MenuDivider/index.js +4 -4
  42. package/lib/components/MenuDivider/index.js.map +1 -1
  43. package/lib/components/MenuDivider/renderMenuDivider.js +1 -1
  44. package/lib/components/MenuDivider/useMenuDivider.js +1 -1
  45. package/lib/components/MenuDivider/useMenuDividerStyles.styles.js +2 -2
  46. package/lib/components/MenuDivider/useMenuDividerStyles.styles.js.map +1 -1
  47. package/lib/components/MenuDivider/useMenuDividerStyles.styles.raw.js +2 -2
  48. package/lib/components/MenuGroup/MenuGroup.js +6 -6
  49. package/lib/components/MenuGroup/MenuGroup.js.map +1 -1
  50. package/lib/components/MenuGroup/index.js +5 -5
  51. package/lib/components/MenuGroup/index.js.map +1 -1
  52. package/lib/components/MenuGroup/renderMenuGroup.js +2 -2
  53. package/lib/components/MenuGroup/renderMenuGroup.js.map +1 -1
  54. package/lib/components/MenuGroup/useMenuGroup.js +1 -1
  55. package/lib/components/MenuGroup/useMenuGroupContextValues.js +1 -1
  56. package/lib/components/MenuGroup/useMenuGroupStyles.styles.js +1 -1
  57. package/lib/components/MenuGroup/useMenuGroupStyles.styles.js.map +1 -1
  58. package/lib/components/MenuGroup/useMenuGroupStyles.styles.raw.js +1 -1
  59. package/lib/components/MenuGroupHeader/MenuGroupHeader.js +5 -5
  60. package/lib/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
  61. package/lib/components/MenuGroupHeader/index.js +4 -4
  62. package/lib/components/MenuGroupHeader/index.js.map +1 -1
  63. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +1 -1
  64. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +2 -2
  65. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  66. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.js +2 -2
  67. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.js.map +1 -1
  68. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.raw.js +2 -2
  69. package/lib/components/MenuItem/MenuItem.js +5 -5
  70. package/lib/components/MenuItem/MenuItem.js.map +1 -1
  71. package/lib/components/MenuItem/index.js +5 -5
  72. package/lib/components/MenuItem/index.js.map +1 -1
  73. package/lib/components/MenuItem/renderMenuItem.js +1 -1
  74. package/lib/components/MenuItem/useCharacterSearch.js +1 -1
  75. package/lib/components/MenuItem/useCharacterSearch.js.map +1 -1
  76. package/lib/components/MenuItem/useMenuItem.js +4 -4
  77. package/lib/components/MenuItem/useMenuItem.js.map +1 -1
  78. package/lib/components/MenuItem/useMenuItemBase.js +10 -10
  79. package/lib/components/MenuItem/useMenuItemBase.js.map +1 -1
  80. package/lib/components/MenuItem/useMenuItemStyles.styles.js +5 -5
  81. package/lib/components/MenuItem/useMenuItemStyles.styles.js.map +1 -1
  82. package/lib/components/MenuItem/useMenuItemStyles.styles.raw.js +5 -5
  83. package/lib/components/MenuItem/useMenuItemStyles.styles.raw.js.map +1 -1
  84. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js +5 -5
  85. package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  86. package/lib/components/MenuItemCheckbox/index.js +4 -4
  87. package/lib/components/MenuItemCheckbox/index.js.map +1 -1
  88. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +1 -1
  89. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +5 -5
  90. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  91. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.js +3 -3
  92. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.js.map +1 -1
  93. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.raw.js +3 -3
  94. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.raw.js.map +1 -1
  95. package/lib/components/MenuItemLink/MenuItemLink.js +5 -5
  96. package/lib/components/MenuItemLink/MenuItemLink.js.map +1 -1
  97. package/lib/components/MenuItemLink/index.js +4 -4
  98. package/lib/components/MenuItemLink/index.js.map +1 -1
  99. package/lib/components/MenuItemLink/renderMenuItemLink.js +1 -1
  100. package/lib/components/MenuItemLink/useMenuItemLink.js +3 -3
  101. package/lib/components/MenuItemLink/useMenuItemLink.js.map +1 -1
  102. package/lib/components/MenuItemLink/useMenuItemLinkStyles.styles.js +2 -2
  103. package/lib/components/MenuItemLink/useMenuItemLinkStyles.styles.js.map +1 -1
  104. package/lib/components/MenuItemLink/useMenuItemLinkStyles.styles.raw.js +2 -2
  105. package/lib/components/MenuItemLink/useMenuItemLinkStyles.styles.raw.js.map +1 -1
  106. package/lib/components/MenuItemRadio/MenuItemRadio.js +5 -5
  107. package/lib/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
  108. package/lib/components/MenuItemRadio/index.js +4 -4
  109. package/lib/components/MenuItemRadio/index.js.map +1 -1
  110. package/lib/components/MenuItemRadio/renderMenuItemRadio.js +1 -1
  111. package/lib/components/MenuItemRadio/useMenuItemRadio.js +5 -5
  112. package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  113. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.styles.js +3 -3
  114. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.styles.js.map +1 -1
  115. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.styles.raw.js +3 -3
  116. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.styles.raw.js.map +1 -1
  117. package/lib/components/MenuItemSwitch/MenuItemSwitch.js +5 -5
  118. package/lib/components/MenuItemSwitch/MenuItemSwitch.js.map +1 -1
  119. package/lib/components/MenuItemSwitch/index.js +4 -4
  120. package/lib/components/MenuItemSwitch/index.js.map +1 -1
  121. package/lib/components/MenuItemSwitch/renderMenuItemSwitch.js +1 -1
  122. package/lib/components/MenuItemSwitch/useMenuItemSwitch.js +5 -5
  123. package/lib/components/MenuItemSwitch/useMenuItemSwitch.js.map +1 -1
  124. package/lib/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.js +3 -3
  125. package/lib/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.js.map +1 -1
  126. package/lib/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.raw.js +3 -3
  127. package/lib/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.raw.js.map +1 -1
  128. package/lib/components/MenuList/MenuList.js +6 -6
  129. package/lib/components/MenuList/MenuList.js.map +1 -1
  130. package/lib/components/MenuList/index.js +5 -5
  131. package/lib/components/MenuList/index.js.map +1 -1
  132. package/lib/components/MenuList/renderMenuList.js +2 -2
  133. package/lib/components/MenuList/renderMenuList.js.map +1 -1
  134. package/lib/components/MenuList/useMenuList.js +8 -8
  135. package/lib/components/MenuList/useMenuList.js.map +1 -1
  136. package/lib/components/MenuList/useMenuListContextValues.js +1 -1
  137. package/lib/components/MenuList/useMenuListStyles.styles.js +1 -1
  138. package/lib/components/MenuList/useMenuListStyles.styles.js.map +1 -1
  139. package/lib/components/MenuList/useMenuListStyles.styles.raw.js +1 -1
  140. package/lib/components/MenuPopover/MenuPopover.js +5 -5
  141. package/lib/components/MenuPopover/MenuPopover.js.map +1 -1
  142. package/lib/components/MenuPopover/index.js +4 -4
  143. package/lib/components/MenuPopover/index.js.map +1 -1
  144. package/lib/components/MenuPopover/renderMenuPopover.js +2 -2
  145. package/lib/components/MenuPopover/useMenuPopover.js +9 -9
  146. package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
  147. package/lib/components/MenuPopover/useMenuPopoverStyles.styles.js +2 -2
  148. package/lib/components/MenuPopover/useMenuPopoverStyles.styles.js.map +1 -1
  149. package/lib/components/MenuPopover/useMenuPopoverStyles.styles.raw.js +2 -2
  150. package/lib/components/MenuSplitGroup/MenuSplitGroup.js +6 -6
  151. package/lib/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  152. package/lib/components/MenuSplitGroup/index.js +4 -4
  153. package/lib/components/MenuSplitGroup/index.js.map +1 -1
  154. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +2 -2
  155. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  156. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +6 -6
  157. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  158. package/lib/components/MenuSplitGroup/useMenuSplitGroupContextValues.js +1 -1
  159. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js +3 -3
  160. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js.map +1 -1
  161. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.raw.js +3 -3
  162. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.raw.js.map +1 -1
  163. package/lib/components/MenuTrigger/MenuTrigger.js +2 -2
  164. package/lib/components/MenuTrigger/MenuTrigger.js.map +1 -1
  165. package/lib/components/MenuTrigger/index.js +3 -3
  166. package/lib/components/MenuTrigger/index.js.map +1 -1
  167. package/lib/components/MenuTrigger/renderMenuTrigger.js +2 -2
  168. package/lib/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
  169. package/lib/components/MenuTrigger/useMenuTrigger.js +9 -9
  170. package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  171. package/lib/components/index.js +2 -2
  172. package/lib/components/index.js.map +1 -1
  173. package/lib/contexts/menuContext.js +1 -1
  174. package/lib/contexts/menuGroupContext.js +1 -1
  175. package/lib/contexts/menuListContext.js +1 -1
  176. package/lib/contexts/menuSplitGroupContext.js +1 -1
  177. package/lib/contexts/menuTriggerContext.js +1 -1
  178. package/lib/index.js +19 -19
  179. package/lib/index.js.map +1 -1
  180. package/lib/selectable/index.js +1 -1
  181. package/lib/selectable/index.js.map +1 -1
  182. package/lib/selectable/useCheckmarkStyles.styles.js +1 -1
  183. package/lib/selectable/useCheckmarkStyles.styles.js.map +1 -1
  184. package/lib/selectable/useCheckmarkStyles.styles.raw.js +1 -1
  185. package/lib/utils/index.js +4 -4
  186. package/lib/utils/index.js.map +1 -1
  187. package/lib/utils/useIsSubmenu.js +3 -3
  188. package/lib/utils/useIsSubmenu.js.map +1 -1
  189. package/lib/utils/useOnMenuEnter.js +2 -2
  190. package/lib/utils/useOnMenuSafeZoneTimeout.js +1 -1
  191. package/lib/utils/useValidateNesting.js +3 -3
  192. package/lib/utils/useValidateNesting.js.map +1 -1
  193. package/lib-commonjs/{Menu.js → Menu.cjs} +1 -1
  194. package/lib-commonjs/{Menu.js.map → Menu.cjs.map} +1 -1
  195. package/lib-commonjs/{MenuDivider.js → MenuDivider.cjs} +1 -1
  196. package/lib-commonjs/{MenuDivider.js.map → MenuDivider.cjs.map} +1 -1
  197. package/lib-commonjs/{MenuGroup.js → MenuGroup.cjs} +1 -1
  198. package/lib-commonjs/{MenuGroup.js.map → MenuGroup.cjs.map} +1 -1
  199. package/lib-commonjs/{MenuGroupHeader.js → MenuGroupHeader.cjs} +1 -1
  200. package/lib-commonjs/{MenuGroupHeader.js.map → MenuGroupHeader.cjs.map} +1 -1
  201. package/lib-commonjs/{MenuItem.js → MenuItem.cjs} +1 -1
  202. package/lib-commonjs/{MenuItem.js.map → MenuItem.cjs.map} +1 -1
  203. package/lib-commonjs/{MenuItemCheckbox.js → MenuItemCheckbox.cjs} +1 -1
  204. package/lib-commonjs/{MenuItemCheckbox.js.map → MenuItemCheckbox.cjs.map} +1 -1
  205. package/lib-commonjs/{MenuItemLink.js → MenuItemLink.cjs} +1 -1
  206. package/lib-commonjs/{MenuItemLink.js.map → MenuItemLink.cjs.map} +1 -1
  207. package/lib-commonjs/{MenuItemRadio.js → MenuItemRadio.cjs} +1 -1
  208. package/lib-commonjs/{MenuItemRadio.js.map → MenuItemRadio.cjs.map} +1 -1
  209. package/lib-commonjs/{MenuItemSwitch.js → MenuItemSwitch.cjs} +1 -1
  210. package/lib-commonjs/{MenuItemSwitch.js.map → MenuItemSwitch.cjs.map} +1 -1
  211. package/lib-commonjs/{MenuList.js → MenuList.cjs} +1 -1
  212. package/lib-commonjs/{MenuList.js.map → MenuList.cjs.map} +1 -1
  213. package/lib-commonjs/{MenuPopover.js → MenuPopover.cjs} +1 -1
  214. package/lib-commonjs/{MenuPopover.js.map → MenuPopover.cjs.map} +1 -1
  215. package/lib-commonjs/{MenuSplitGroup.js → MenuSplitGroup.cjs} +1 -1
  216. package/lib-commonjs/{MenuSplitGroup.js.map → MenuSplitGroup.cjs.map} +1 -1
  217. package/lib-commonjs/{MenuTrigger.js → MenuTrigger.cjs} +1 -1
  218. package/lib-commonjs/{MenuTrigger.js.map → MenuTrigger.cjs.map} +1 -1
  219. package/lib-commonjs/components/Menu/{Menu.js → Menu.cjs} +3 -3
  220. package/lib-commonjs/components/Menu/{Menu.js.map → Menu.cjs.map} +1 -1
  221. package/lib-commonjs/components/Menu/{index.js → index.cjs} +4 -4
  222. package/lib-commonjs/components/Menu/{index.js.map → index.cjs.map} +1 -1
  223. package/lib-commonjs/components/Menu/{renderMenu.js → renderMenu.cjs} +1 -1
  224. package/lib-commonjs/components/Menu/{renderMenu.js.map → renderMenu.cjs.map} +1 -1
  225. package/lib-commonjs/components/Menu/{useMenu.js → useMenu.cjs} +9 -9
  226. package/lib-commonjs/components/Menu/{useMenu.js.map → useMenu.cjs.map} +1 -1
  227. package/lib-commonjs/components/MenuDivider/{MenuDivider.js → MenuDivider.cjs} +3 -3
  228. package/lib-commonjs/components/MenuDivider/{MenuDivider.js.map → MenuDivider.cjs.map} +1 -1
  229. package/lib-commonjs/components/MenuDivider/{index.js → index.cjs} +4 -4
  230. package/lib-commonjs/components/MenuDivider/{index.js.map → index.cjs.map} +1 -1
  231. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.styles.cjs.map +1 -0
  232. package/lib-commonjs/components/MenuGroup/{MenuGroup.js → MenuGroup.cjs} +4 -4
  233. package/lib-commonjs/components/MenuGroup/{MenuGroup.js.map → MenuGroup.cjs.map} +1 -1
  234. package/lib-commonjs/components/MenuGroup/{index.js → index.cjs} +5 -5
  235. package/lib-commonjs/components/MenuGroup/{index.js.map → index.cjs.map} +1 -1
  236. package/lib-commonjs/components/MenuGroup/{renderMenuGroup.js → renderMenuGroup.cjs} +1 -1
  237. package/lib-commonjs/components/MenuGroup/{renderMenuGroup.js.map → renderMenuGroup.cjs.map} +1 -1
  238. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.styles.cjs.map +1 -0
  239. package/lib-commonjs/components/MenuGroupHeader/{MenuGroupHeader.js → MenuGroupHeader.cjs} +3 -3
  240. package/lib-commonjs/components/MenuGroupHeader/{MenuGroupHeader.js.map → MenuGroupHeader.cjs.map} +1 -1
  241. package/lib-commonjs/components/MenuGroupHeader/{index.js → index.cjs} +4 -4
  242. package/lib-commonjs/components/MenuGroupHeader/{index.js.map → index.cjs.map} +1 -1
  243. package/lib-commonjs/components/MenuGroupHeader/{useMenuGroupHeader.js → useMenuGroupHeader.cjs} +1 -1
  244. package/lib-commonjs/components/MenuGroupHeader/{useMenuGroupHeader.js.map → useMenuGroupHeader.cjs.map} +1 -1
  245. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.cjs.map +1 -0
  246. package/lib-commonjs/components/MenuItem/{MenuItem.js → MenuItem.cjs} +3 -3
  247. package/lib-commonjs/components/MenuItem/{MenuItem.js.map → MenuItem.cjs.map} +1 -1
  248. package/lib-commonjs/components/MenuItem/{index.js → index.cjs} +5 -5
  249. package/lib-commonjs/components/MenuItem/{index.js.map → index.cjs.map} +1 -1
  250. package/lib-commonjs/components/MenuItem/{useCharacterSearch.js → useCharacterSearch.cjs} +1 -1
  251. package/lib-commonjs/components/MenuItem/{useCharacterSearch.js.map → useCharacterSearch.cjs.map} +1 -1
  252. package/lib-commonjs/components/MenuItem/{useMenuItem.js → useMenuItem.cjs} +1 -1
  253. package/lib-commonjs/components/MenuItem/{useMenuItem.js.map → useMenuItem.cjs.map} +1 -1
  254. package/lib-commonjs/components/MenuItem/{useMenuItemBase.js → useMenuItemBase.cjs} +6 -6
  255. package/lib-commonjs/components/MenuItem/{useMenuItemBase.js.map → useMenuItemBase.cjs.map} +1 -1
  256. package/lib-commonjs/components/MenuItem/{useMenuItemStyles.styles.js → useMenuItemStyles.styles.cjs} +1 -1
  257. package/lib-commonjs/components/MenuItem/useMenuItemStyles.styles.cjs.map +1 -0
  258. package/lib-commonjs/components/MenuItem/{useMenuItemStyles.styles.raw.js → useMenuItemStyles.styles.raw.cjs} +1 -1
  259. package/lib-commonjs/components/MenuItem/{useMenuItemStyles.styles.raw.js.map → useMenuItemStyles.styles.raw.cjs.map} +1 -1
  260. package/lib-commonjs/components/MenuItemCheckbox/{MenuItemCheckbox.js → MenuItemCheckbox.cjs} +3 -3
  261. package/lib-commonjs/components/MenuItemCheckbox/{MenuItemCheckbox.js.map → MenuItemCheckbox.cjs.map} +1 -1
  262. package/lib-commonjs/components/MenuItemCheckbox/{index.js → index.cjs} +4 -4
  263. package/lib-commonjs/components/MenuItemCheckbox/{index.js.map → index.cjs.map} +1 -1
  264. package/lib-commonjs/components/MenuItemCheckbox/{useMenuItemCheckbox.js → useMenuItemCheckbox.cjs} +2 -2
  265. package/lib-commonjs/components/MenuItemCheckbox/{useMenuItemCheckbox.js.map → useMenuItemCheckbox.cjs.map} +1 -1
  266. package/lib-commonjs/components/MenuItemCheckbox/{useMenuItemCheckboxStyles.styles.raw.js → useMenuItemCheckboxStyles.styles.cjs} +2 -2
  267. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.cjs.map +1 -0
  268. package/lib-commonjs/components/MenuItemCheckbox/{useMenuItemCheckboxStyles.styles.js → useMenuItemCheckboxStyles.styles.raw.cjs} +2 -2
  269. package/lib-commonjs/components/MenuItemCheckbox/{useMenuItemCheckboxStyles.styles.raw.js.map → useMenuItemCheckboxStyles.styles.raw.cjs.map} +1 -1
  270. package/lib-commonjs/components/MenuItemLink/{MenuItemLink.js → MenuItemLink.cjs} +3 -3
  271. package/lib-commonjs/components/MenuItemLink/{MenuItemLink.js.map → MenuItemLink.cjs.map} +1 -1
  272. package/lib-commonjs/components/MenuItemLink/{index.js → index.cjs} +4 -4
  273. package/lib-commonjs/components/MenuItemLink/{index.js.map → index.cjs.map} +1 -1
  274. package/lib-commonjs/components/MenuItemLink/{useMenuItemLink.js → useMenuItemLink.cjs} +2 -2
  275. package/lib-commonjs/components/MenuItemLink/{useMenuItemLink.js.map → useMenuItemLink.cjs.map} +1 -1
  276. package/lib-commonjs/components/MenuItemLink/{useMenuItemLinkStyles.styles.js → useMenuItemLinkStyles.styles.cjs} +1 -1
  277. package/lib-commonjs/components/MenuItemLink/useMenuItemLinkStyles.styles.cjs.map +1 -0
  278. package/lib-commonjs/components/MenuItemLink/{useMenuItemLinkStyles.styles.raw.js → useMenuItemLinkStyles.styles.raw.cjs} +1 -1
  279. package/lib-commonjs/components/MenuItemLink/{useMenuItemLinkStyles.styles.raw.js.map → useMenuItemLinkStyles.styles.raw.cjs.map} +1 -1
  280. package/lib-commonjs/components/MenuItemRadio/{MenuItemRadio.js → MenuItemRadio.cjs} +3 -3
  281. package/lib-commonjs/components/MenuItemRadio/{MenuItemRadio.js.map → MenuItemRadio.cjs.map} +1 -1
  282. package/lib-commonjs/components/MenuItemRadio/{index.js → index.cjs} +4 -4
  283. package/lib-commonjs/components/MenuItemRadio/{index.js.map → index.cjs.map} +1 -1
  284. package/lib-commonjs/components/MenuItemRadio/{useMenuItemRadio.js → useMenuItemRadio.cjs} +2 -2
  285. package/lib-commonjs/components/MenuItemRadio/{useMenuItemRadio.js.map → useMenuItemRadio.cjs.map} +1 -1
  286. package/lib-commonjs/components/MenuItemRadio/{useMenuItemRadioStyles.styles.js → useMenuItemRadioStyles.styles.cjs} +2 -2
  287. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.styles.cjs.map +1 -0
  288. package/lib-commonjs/components/MenuItemRadio/{useMenuItemRadioStyles.styles.raw.js → useMenuItemRadioStyles.styles.raw.cjs} +2 -2
  289. package/lib-commonjs/components/MenuItemRadio/{useMenuItemRadioStyles.styles.raw.js.map → useMenuItemRadioStyles.styles.raw.cjs.map} +1 -1
  290. package/lib-commonjs/components/MenuItemSwitch/{MenuItemSwitch.js → MenuItemSwitch.cjs} +3 -3
  291. package/lib-commonjs/components/MenuItemSwitch/{MenuItemSwitch.js.map → MenuItemSwitch.cjs.map} +1 -1
  292. package/lib-commonjs/components/MenuItemSwitch/{index.js → index.cjs} +4 -4
  293. package/lib-commonjs/components/MenuItemSwitch/{index.js.map → index.cjs.map} +1 -1
  294. package/lib-commonjs/components/MenuItemSwitch/{useMenuItemSwitch.js → useMenuItemSwitch.cjs} +2 -2
  295. package/lib-commonjs/components/MenuItemSwitch/{useMenuItemSwitch.js.map → useMenuItemSwitch.cjs.map} +1 -1
  296. package/lib-commonjs/components/MenuItemSwitch/{useMenuItemSwitchStyles.styles.js → useMenuItemSwitchStyles.styles.cjs} +1 -1
  297. package/lib-commonjs/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.cjs.map +1 -0
  298. package/lib-commonjs/components/MenuItemSwitch/{useMenuItemSwitchStyles.styles.raw.js → useMenuItemSwitchStyles.styles.raw.cjs} +1 -1
  299. package/lib-commonjs/components/MenuItemSwitch/{useMenuItemSwitchStyles.styles.raw.js.map → useMenuItemSwitchStyles.styles.raw.cjs.map} +1 -1
  300. package/lib-commonjs/components/MenuList/{MenuList.js → MenuList.cjs} +4 -4
  301. package/lib-commonjs/components/MenuList/{MenuList.js.map → MenuList.cjs.map} +1 -1
  302. package/lib-commonjs/components/MenuList/{index.js → index.cjs} +5 -5
  303. package/lib-commonjs/components/MenuList/{index.js.map → index.cjs.map} +1 -1
  304. package/lib-commonjs/components/MenuList/{renderMenuList.js → renderMenuList.cjs} +1 -1
  305. package/lib-commonjs/components/MenuList/{renderMenuList.js.map → renderMenuList.cjs.map} +1 -1
  306. package/lib-commonjs/components/MenuList/{useMenuList.js → useMenuList.cjs} +2 -2
  307. package/lib-commonjs/components/MenuList/{useMenuList.js.map → useMenuList.cjs.map} +1 -1
  308. package/lib-commonjs/components/MenuList/useMenuListStyles.styles.cjs.map +1 -0
  309. package/lib-commonjs/components/MenuPopover/{MenuPopover.js → MenuPopover.cjs} +3 -3
  310. package/lib-commonjs/components/MenuPopover/{MenuPopover.js.map → MenuPopover.cjs.map} +1 -1
  311. package/lib-commonjs/components/MenuPopover/{index.js → index.cjs} +4 -4
  312. package/lib-commonjs/components/MenuPopover/{index.js.map → index.cjs.map} +1 -1
  313. package/lib-commonjs/components/MenuPopover/{useMenuPopover.js → useMenuPopover.cjs} +3 -3
  314. package/lib-commonjs/components/MenuPopover/{useMenuPopover.js.map → useMenuPopover.cjs.map} +1 -1
  315. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.styles.cjs.map +1 -0
  316. package/lib-commonjs/components/MenuSplitGroup/{MenuSplitGroup.js → MenuSplitGroup.cjs} +4 -4
  317. package/lib-commonjs/components/MenuSplitGroup/{MenuSplitGroup.js.map → MenuSplitGroup.cjs.map} +1 -1
  318. package/lib-commonjs/components/MenuSplitGroup/{index.js → index.cjs} +4 -4
  319. package/lib-commonjs/components/MenuSplitGroup/{index.js.map → index.cjs.map} +1 -1
  320. package/lib-commonjs/components/MenuSplitGroup/{renderMenuSplitGroup.js → renderMenuSplitGroup.cjs} +1 -1
  321. package/lib-commonjs/components/MenuSplitGroup/{renderMenuSplitGroup.js.map → renderMenuSplitGroup.cjs.map} +1 -1
  322. package/lib-commonjs/components/MenuSplitGroup/{useMenuSplitGroup.js → useMenuSplitGroup.cjs} +1 -1
  323. package/lib-commonjs/components/MenuSplitGroup/{useMenuSplitGroup.js.map → useMenuSplitGroup.cjs.map} +1 -1
  324. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.cjs.map +1 -0
  325. package/lib-commonjs/components/MenuSplitGroup/{useMenuSplitGroupStyles.styles.raw.js → useMenuSplitGroupStyles.styles.raw.cjs} +1 -1
  326. package/lib-commonjs/components/MenuSplitGroup/{useMenuSplitGroupStyles.styles.raw.js.map → useMenuSplitGroupStyles.styles.raw.cjs.map} +1 -1
  327. package/lib-commonjs/components/MenuTrigger/{MenuTrigger.js → MenuTrigger.cjs} +2 -2
  328. package/lib-commonjs/components/MenuTrigger/{MenuTrigger.js.map → MenuTrigger.cjs.map} +1 -1
  329. package/lib-commonjs/components/MenuTrigger/{index.js → index.cjs} +3 -3
  330. package/lib-commonjs/components/MenuTrigger/{index.js.map → index.cjs.map} +1 -1
  331. package/lib-commonjs/components/MenuTrigger/{renderMenuTrigger.js → renderMenuTrigger.cjs} +1 -1
  332. package/lib-commonjs/components/MenuTrigger/{renderMenuTrigger.js.map → renderMenuTrigger.cjs.map} +1 -1
  333. package/lib-commonjs/components/MenuTrigger/{useMenuTrigger.js → useMenuTrigger.cjs} +5 -5
  334. package/lib-commonjs/components/MenuTrigger/{useMenuTrigger.js.map → useMenuTrigger.cjs.map} +1 -1
  335. package/lib-commonjs/components/{index.js → index.cjs} +2 -2
  336. package/lib-commonjs/components/{index.js.map → index.cjs.map} +1 -1
  337. package/lib-commonjs/{index.js → index.cjs} +22 -22
  338. package/lib-commonjs/{index.js.map → index.cjs.map} +1 -1
  339. package/lib-commonjs/selectable/{index.js → index.cjs} +1 -1
  340. package/lib-commonjs/selectable/{index.js.map → index.cjs.map} +1 -1
  341. package/lib-commonjs/selectable/useCheckmarkStyles.styles.cjs.map +1 -0
  342. package/lib-commonjs/utils/{index.js → index.cjs} +4 -4
  343. package/lib-commonjs/utils/{index.js.map → index.cjs.map} +1 -1
  344. package/lib-commonjs/utils/{useIsSubmenu.js → useIsSubmenu.cjs} +2 -2
  345. package/lib-commonjs/utils/{useIsSubmenu.js.map → useIsSubmenu.cjs.map} +1 -1
  346. package/lib-commonjs/utils/{useValidateNesting.js → useValidateNesting.cjs} +1 -1
  347. package/lib-commonjs/utils/{useValidateNesting.js.map → useValidateNesting.cjs.map} +1 -1
  348. package/package.json +26 -25
  349. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.styles.js.map +0 -1
  350. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.styles.js.map +0 -1
  351. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.js.map +0 -1
  352. package/lib-commonjs/components/MenuItem/useMenuItemStyles.styles.js.map +0 -1
  353. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.js.map +0 -1
  354. package/lib-commonjs/components/MenuItemLink/useMenuItemLinkStyles.styles.js.map +0 -1
  355. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.styles.js.map +0 -1
  356. package/lib-commonjs/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.js.map +0 -1
  357. package/lib-commonjs/components/MenuList/useMenuListStyles.styles.js.map +0 -1
  358. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.styles.js.map +0 -1
  359. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js.map +0 -1
  360. package/lib-commonjs/selectable/useCheckmarkStyles.styles.js.map +0 -1
  361. /package/lib-commonjs/components/Menu/{Menu.types.js → Menu.types.cjs} +0 -0
  362. /package/lib-commonjs/components/Menu/{Menu.types.js.map → Menu.types.cjs.map} +0 -0
  363. /package/lib-commonjs/components/Menu/{MenuSurfaceMotion.js → MenuSurfaceMotion.cjs} +0 -0
  364. /package/lib-commonjs/components/Menu/{MenuSurfaceMotion.js.map → MenuSurfaceMotion.cjs.map} +0 -0
  365. /package/lib-commonjs/components/Menu/{useMenuContextValues.js → useMenuContextValues.cjs} +0 -0
  366. /package/lib-commonjs/components/Menu/{useMenuContextValues.js.map → useMenuContextValues.cjs.map} +0 -0
  367. /package/lib-commonjs/components/MenuDivider/{MenuDivider.types.js → MenuDivider.types.cjs} +0 -0
  368. /package/lib-commonjs/components/MenuDivider/{MenuDivider.types.js.map → MenuDivider.types.cjs.map} +0 -0
  369. /package/lib-commonjs/components/MenuDivider/{renderMenuDivider.js → renderMenuDivider.cjs} +0 -0
  370. /package/lib-commonjs/components/MenuDivider/{renderMenuDivider.js.map → renderMenuDivider.cjs.map} +0 -0
  371. /package/lib-commonjs/components/MenuDivider/{useMenuDivider.js → useMenuDivider.cjs} +0 -0
  372. /package/lib-commonjs/components/MenuDivider/{useMenuDivider.js.map → useMenuDivider.cjs.map} +0 -0
  373. /package/lib-commonjs/components/MenuDivider/{useMenuDividerStyles.styles.js → useMenuDividerStyles.styles.cjs} +0 -0
  374. /package/lib-commonjs/components/MenuDivider/{useMenuDividerStyles.styles.raw.js → useMenuDividerStyles.styles.raw.cjs} +0 -0
  375. /package/lib-commonjs/components/MenuDivider/{useMenuDividerStyles.styles.raw.js.map → useMenuDividerStyles.styles.raw.cjs.map} +0 -0
  376. /package/lib-commonjs/components/MenuGroup/{MenuGroup.types.js → MenuGroup.types.cjs} +0 -0
  377. /package/lib-commonjs/components/MenuGroup/{MenuGroup.types.js.map → MenuGroup.types.cjs.map} +0 -0
  378. /package/lib-commonjs/components/MenuGroup/{useMenuGroup.js → useMenuGroup.cjs} +0 -0
  379. /package/lib-commonjs/components/MenuGroup/{useMenuGroup.js.map → useMenuGroup.cjs.map} +0 -0
  380. /package/lib-commonjs/components/MenuGroup/{useMenuGroupContextValues.js → useMenuGroupContextValues.cjs} +0 -0
  381. /package/lib-commonjs/components/MenuGroup/{useMenuGroupContextValues.js.map → useMenuGroupContextValues.cjs.map} +0 -0
  382. /package/lib-commonjs/components/MenuGroup/{useMenuGroupStyles.styles.js → useMenuGroupStyles.styles.cjs} +0 -0
  383. /package/lib-commonjs/components/MenuGroup/{useMenuGroupStyles.styles.raw.js → useMenuGroupStyles.styles.raw.cjs} +0 -0
  384. /package/lib-commonjs/components/MenuGroup/{useMenuGroupStyles.styles.raw.js.map → useMenuGroupStyles.styles.raw.cjs.map} +0 -0
  385. /package/lib-commonjs/components/MenuGroupHeader/{MenuGroupHeader.types.js → MenuGroupHeader.types.cjs} +0 -0
  386. /package/lib-commonjs/components/MenuGroupHeader/{MenuGroupHeader.types.js.map → MenuGroupHeader.types.cjs.map} +0 -0
  387. /package/lib-commonjs/components/MenuGroupHeader/{renderMenuGroupHeader.js → renderMenuGroupHeader.cjs} +0 -0
  388. /package/lib-commonjs/components/MenuGroupHeader/{renderMenuGroupHeader.js.map → renderMenuGroupHeader.cjs.map} +0 -0
  389. /package/lib-commonjs/components/MenuGroupHeader/{useMenuGroupHeaderStyles.styles.js → useMenuGroupHeaderStyles.styles.cjs} +0 -0
  390. /package/lib-commonjs/components/MenuGroupHeader/{useMenuGroupHeaderStyles.styles.raw.js → useMenuGroupHeaderStyles.styles.raw.cjs} +0 -0
  391. /package/lib-commonjs/components/MenuGroupHeader/{useMenuGroupHeaderStyles.styles.raw.js.map → useMenuGroupHeaderStyles.styles.raw.cjs.map} +0 -0
  392. /package/lib-commonjs/components/MenuItem/{MenuItem.types.js → MenuItem.types.cjs} +0 -0
  393. /package/lib-commonjs/components/MenuItem/{MenuItem.types.js.map → MenuItem.types.cjs.map} +0 -0
  394. /package/lib-commonjs/components/MenuItem/{renderMenuItem.js → renderMenuItem.cjs} +0 -0
  395. /package/lib-commonjs/components/MenuItem/{renderMenuItem.js.map → renderMenuItem.cjs.map} +0 -0
  396. /package/lib-commonjs/components/MenuItemCheckbox/{MenuItemCheckbox.types.js → MenuItemCheckbox.types.cjs} +0 -0
  397. /package/lib-commonjs/components/MenuItemCheckbox/{MenuItemCheckbox.types.js.map → MenuItemCheckbox.types.cjs.map} +0 -0
  398. /package/lib-commonjs/components/MenuItemCheckbox/{renderMenuItemCheckbox.js → renderMenuItemCheckbox.cjs} +0 -0
  399. /package/lib-commonjs/components/MenuItemCheckbox/{renderMenuItemCheckbox.js.map → renderMenuItemCheckbox.cjs.map} +0 -0
  400. /package/lib-commonjs/components/MenuItemLink/{MenuItemLink.types.js → MenuItemLink.types.cjs} +0 -0
  401. /package/lib-commonjs/components/MenuItemLink/{MenuItemLink.types.js.map → MenuItemLink.types.cjs.map} +0 -0
  402. /package/lib-commonjs/components/MenuItemLink/{renderMenuItemLink.js → renderMenuItemLink.cjs} +0 -0
  403. /package/lib-commonjs/components/MenuItemLink/{renderMenuItemLink.js.map → renderMenuItemLink.cjs.map} +0 -0
  404. /package/lib-commonjs/components/MenuItemRadio/{MenuItemRadio.types.js → MenuItemRadio.types.cjs} +0 -0
  405. /package/lib-commonjs/components/MenuItemRadio/{MenuItemRadio.types.js.map → MenuItemRadio.types.cjs.map} +0 -0
  406. /package/lib-commonjs/components/MenuItemRadio/{renderMenuItemRadio.js → renderMenuItemRadio.cjs} +0 -0
  407. /package/lib-commonjs/components/MenuItemRadio/{renderMenuItemRadio.js.map → renderMenuItemRadio.cjs.map} +0 -0
  408. /package/lib-commonjs/components/MenuItemSwitch/{MenuItemSwitch.types.js → MenuItemSwitch.types.cjs} +0 -0
  409. /package/lib-commonjs/components/MenuItemSwitch/{MenuItemSwitch.types.js.map → MenuItemSwitch.types.cjs.map} +0 -0
  410. /package/lib-commonjs/components/MenuItemSwitch/{renderMenuItemSwitch.js → renderMenuItemSwitch.cjs} +0 -0
  411. /package/lib-commonjs/components/MenuItemSwitch/{renderMenuItemSwitch.js.map → renderMenuItemSwitch.cjs.map} +0 -0
  412. /package/lib-commonjs/components/MenuList/{MenuList.types.js → MenuList.types.cjs} +0 -0
  413. /package/lib-commonjs/components/MenuList/{MenuList.types.js.map → MenuList.types.cjs.map} +0 -0
  414. /package/lib-commonjs/components/MenuList/{useMenuListContextValues.js → useMenuListContextValues.cjs} +0 -0
  415. /package/lib-commonjs/components/MenuList/{useMenuListContextValues.js.map → useMenuListContextValues.cjs.map} +0 -0
  416. /package/lib-commonjs/components/MenuList/{useMenuListStyles.styles.js → useMenuListStyles.styles.cjs} +0 -0
  417. /package/lib-commonjs/components/MenuList/{useMenuListStyles.styles.raw.js → useMenuListStyles.styles.raw.cjs} +0 -0
  418. /package/lib-commonjs/components/MenuList/{useMenuListStyles.styles.raw.js.map → useMenuListStyles.styles.raw.cjs.map} +0 -0
  419. /package/lib-commonjs/components/MenuPopover/{MenuPopover.types.js → MenuPopover.types.cjs} +0 -0
  420. /package/lib-commonjs/components/MenuPopover/{MenuPopover.types.js.map → MenuPopover.types.cjs.map} +0 -0
  421. /package/lib-commonjs/components/MenuPopover/{renderMenuPopover.js → renderMenuPopover.cjs} +0 -0
  422. /package/lib-commonjs/components/MenuPopover/{renderMenuPopover.js.map → renderMenuPopover.cjs.map} +0 -0
  423. /package/lib-commonjs/components/MenuPopover/{useMenuPopoverStyles.styles.js → useMenuPopoverStyles.styles.cjs} +0 -0
  424. /package/lib-commonjs/components/MenuPopover/{useMenuPopoverStyles.styles.raw.js → useMenuPopoverStyles.styles.raw.cjs} +0 -0
  425. /package/lib-commonjs/components/MenuPopover/{useMenuPopoverStyles.styles.raw.js.map → useMenuPopoverStyles.styles.raw.cjs.map} +0 -0
  426. /package/lib-commonjs/components/MenuSplitGroup/{MenuSplitGroup.types.js → MenuSplitGroup.types.cjs} +0 -0
  427. /package/lib-commonjs/components/MenuSplitGroup/{MenuSplitGroup.types.js.map → MenuSplitGroup.types.cjs.map} +0 -0
  428. /package/lib-commonjs/components/MenuSplitGroup/{useMenuSplitGroupContextValues.js → useMenuSplitGroupContextValues.cjs} +0 -0
  429. /package/lib-commonjs/components/MenuSplitGroup/{useMenuSplitGroupContextValues.js.map → useMenuSplitGroupContextValues.cjs.map} +0 -0
  430. /package/lib-commonjs/components/MenuSplitGroup/{useMenuSplitGroupStyles.styles.js → useMenuSplitGroupStyles.styles.cjs} +0 -0
  431. /package/lib-commonjs/components/MenuTrigger/{MenuTrigger.types.js → MenuTrigger.types.cjs} +0 -0
  432. /package/lib-commonjs/components/MenuTrigger/{MenuTrigger.types.js.map → MenuTrigger.types.cjs.map} +0 -0
  433. /package/lib-commonjs/contexts/{menuContext.js → menuContext.cjs} +0 -0
  434. /package/lib-commonjs/contexts/{menuContext.js.map → menuContext.cjs.map} +0 -0
  435. /package/lib-commonjs/contexts/{menuGroupContext.js → menuGroupContext.cjs} +0 -0
  436. /package/lib-commonjs/contexts/{menuGroupContext.js.map → menuGroupContext.cjs.map} +0 -0
  437. /package/lib-commonjs/contexts/{menuListContext.js → menuListContext.cjs} +0 -0
  438. /package/lib-commonjs/contexts/{menuListContext.js.map → menuListContext.cjs.map} +0 -0
  439. /package/lib-commonjs/contexts/{menuSplitGroupContext.js → menuSplitGroupContext.cjs} +0 -0
  440. /package/lib-commonjs/contexts/{menuSplitGroupContext.js.map → menuSplitGroupContext.cjs.map} +0 -0
  441. /package/lib-commonjs/contexts/{menuTriggerContext.js → menuTriggerContext.cjs} +0 -0
  442. /package/lib-commonjs/contexts/{menuTriggerContext.js.map → menuTriggerContext.cjs.map} +0 -0
  443. /package/lib-commonjs/selectable/{types.js → types.cjs} +0 -0
  444. /package/lib-commonjs/selectable/{types.js.map → types.cjs.map} +0 -0
  445. /package/lib-commonjs/selectable/{useCheckmarkStyles.styles.js → useCheckmarkStyles.styles.cjs} +0 -0
  446. /package/lib-commonjs/selectable/{useCheckmarkStyles.styles.raw.js → useCheckmarkStyles.styles.raw.cjs} +0 -0
  447. /package/lib-commonjs/selectable/{useCheckmarkStyles.styles.raw.js.map → useCheckmarkStyles.styles.raw.cjs.map} +0 -0
  448. /package/lib-commonjs/utils/{useOnMenuEnter.js → useOnMenuEnter.cjs} +0 -0
  449. /package/lib-commonjs/utils/{useOnMenuEnter.js.map → useOnMenuEnter.cjs.map} +0 -0
  450. /package/lib-commonjs/utils/{useOnMenuSafeZoneTimeout.js → useOnMenuSafeZoneTimeout.cjs} +0 -0
  451. /package/lib-commonjs/utils/{useOnMenuSafeZoneTimeout.js.map → useOnMenuSafeZoneTimeout.cjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuList/useMenuList.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport {\n useMergedRefs,\n useEventCallback,\n useControllableState,\n getIntrinsicElementProps,\n slot,\n} from '@fluentui/react-utilities';\nimport {\n useArrowNavigationGroup,\n useFocusFinders,\n TabsterMoveFocusEventName,\n type TabsterMoveFocusEvent,\n} from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\nimport type { MenuListProps, MenuListState } from './MenuList.types';\nimport { useValidateNesting } from '../../utils/useValidateNesting';\n\nconst MENU_ITEM_ROLES = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\nconst MENU_ITEM_ROLES_SELECTOR = MENU_ITEM_ROLES.map(role => `[role=\"${role}\"]`).join(',');\n\n/**\n * Returns the props and state required to render the component.\n *\n * Composes with `useMenuListBase_unstable` and adds Tabster-driven keyboard\n * navigation: circular arrow-key focus, a `TabsterMoveFocusEvent` listener\n * that lets `useMenuPopover_unstable` handle Tab key presses, a focus-aware\n * `setFocusByFirstCharacter`, and the `hasIcons` / `hasCheckmarks` slot\n * alignment hints sourced from the parent `MenuContext`.\n */\nexport const useMenuList_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n\n const wrapperRef = React.useRef<HTMLElement>(null);\n const { findAllFocusable } = useFocusFinders();\n const { targetDocument } = useFluent();\n const focusAttributes = useArrowNavigationGroup({ circular: true });\n\n const baseState = useMenuListBase_unstable(props, ref);\n // recreate root non-mutatively: merge wrapperRef so the effect below can\n // observe the rendered DOM element, and add Tabster arrow-nav attributes\n const mergedRootRef = useMergedRefs(baseState.root.ref, wrapperRef) as React.Ref<HTMLDivElement>;\n\n React.useEffect(() => {\n const element = wrapperRef.current;\n\n if (!hasMenuContext || !targetDocument || !element) {\n return;\n }\n\n const onTabsterMoveFocus = (e: TabsterMoveFocusEvent) => {\n const nextElement = e.detail.next;\n if (nextElement && element.contains(targetDocument.activeElement) && !element.contains(nextElement)) {\n // Preventing Tabster from handling Tab press, useMenuPopover will handle it.\n e.preventDefault();\n }\n };\n\n targetDocument.addEventListener(TabsterMoveFocusEventName, onTabsterMoveFocus);\n return () => {\n targetDocument.removeEventListener(TabsterMoveFocusEventName, onTabsterMoveFocus);\n };\n }, [hasMenuContext, targetDocument]);\n\n const setFocusByFirstCharacter = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n if (!wrapperRef.current) {\n return;\n }\n const menuItems = findAllFocusable(\n wrapperRef.current,\n (el: HTMLElement) => el.hasAttribute('role') && MENU_ITEM_ROLES.indexOf(el.getAttribute('role')!) !== -1,\n );\n focusItemMatchingFirstCharacter(menuItems, e.key, itemEl);\n },\n [findAllFocusable],\n );\n\n return {\n ...baseState,\n root: {\n ...focusAttributes,\n ...baseState.root,\n ref: mergedRootRef,\n },\n setFocusByFirstCharacter,\n };\n};\n\n/**\n * Base hook for MenuList component, produces state required to render the component.\n *\n * Does not invoke any Tabster APIs internally: arrow-key navigation and the\n * focus-aware `setFocusByFirstCharacter` are added by the wrapper\n * `useMenuList_unstable`. The base's `setFocusByFirstCharacter` walks the DOM\n * via `querySelectorAll` and does not filter by Tabster's focusability rules,\n * so consumers integrating their own focus management should layer that on top.\n *\n * @param props - props from this instance of MenuList\n * @param ref - reference to root HTMLElement of MenuList\n */\nexport const useMenuListBase_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const checkedValuesContext = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChangeContext = useMenuContext_unstable(context => context.onCheckedValueChange);\n const hasIconsContext = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarksContext = useMenuContext_unstable(context => context.hasCheckmarks);\n const hasMenuContext = useHasParentContext(MenuContext);\n\n const innerRef = React.useRef<HTMLElement>(null);\n const validateNestingRef = useValidateNesting('MenuList');\n\n const setFocusByFirstCharacter = React.useCallback((e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n if (!innerRef.current) {\n return;\n }\n const menuItems = Array.from(innerRef.current.querySelectorAll<HTMLElement>(MENU_ITEM_ROLES_SELECTOR));\n focusItemMatchingFirstCharacter(menuItems, e.key, itemEl);\n }, []);\n\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues ?? (hasMenuContext ? checkedValuesContext : undefined),\n defaultState: props.defaultCheckedValues,\n initialState: {},\n });\n\n const handleCheckedValueChange =\n props.onCheckedValueChange ?? (hasMenuContext ? onCheckedValueChangeContext : undefined);\n\n const toggleCheckbox = useEventCallback(\n (e: React.MouseEvent | React.KeyboardEvent, name: string, value: string, checked: boolean) => {\n const checkedItems = checkedValues?.[name] || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n },\n );\n\n const selectRadio = useEventCallback((e: React.MouseEvent | React.KeyboardEvent, name: string, value: string) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n });\n\n return {\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, innerRef, validateNestingRef) as React.Ref<HTMLDivElement>,\n role: 'menu',\n 'aria-labelledby': triggerId,\n ...props,\n }),\n { elementType: 'div' },\n ),\n checkedValues,\n hasIcons: props.hasIcons ?? hasIconsContext ?? false,\n hasCheckmarks: props.hasCheckmarks ?? hasCheckmarksContext ?? false,\n hasMenuContext,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox,\n };\n};\n\n/**\n * Focuses the next menu item whose textContent starts with the typed character,\n * wrapping around the list. Shared between the Tabster-free base impl and the\n * Tabster-aware wrapper.\n */\nconst focusItemMatchingFirstCharacter = (menuItems: HTMLElement[], key: string, current: HTMLElement) => {\n let startIndex = menuItems.indexOf(current) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n\n const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());\n const char = key.toLowerCase();\n\n const getIndexFirstChars = (start: number) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n\n let index = getIndexFirstChars(startIndex);\n if (index === -1) {\n index = getIndexFirstChars(0);\n }\n if (index > -1) {\n menuItems[index].focus();\n }\n};\n\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks,\n };\n};\n\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (\n props: MenuListProps,\n contextValue: ReturnType<typeof useMenuContextSelectors>,\n hasMenuContext: boolean,\n) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val as keyof Omit<typeof contextValue, 'hasMenuContext' | 'onCheckedValueChange' | 'triggerId'>]) {\n isUsingPropsAndContext = true;\n }\n }\n\n return hasMenuContext && isUsingPropsAndContext;\n};\n"],"names":["React","useMergedRefs","useEventCallback","useControllableState","getIntrinsicElementProps","slot","useArrowNavigationGroup","useFocusFinders","TabsterMoveFocusEventName","useFluent_unstable","useFluent","useHasParentContext","useMenuContext_unstable","MenuContext","useValidateNesting","MENU_ITEM_ROLES","MENU_ITEM_ROLES_SELECTOR","map","role","join","useMenuList_unstable","props","ref","menuContext","useMenuContextSelectors","hasMenuContext","usingPropsAndMenuContext","console","warn","wrapperRef","useRef","findAllFocusable","targetDocument","focusAttributes","circular","baseState","useMenuListBase_unstable","mergedRootRef","root","useEffect","element","current","onTabsterMoveFocus","e","nextElement","detail","next","contains","activeElement","preventDefault","addEventListener","removeEventListener","setFocusByFirstCharacter","useCallback","itemEl","menuItems","el","hasAttribute","indexOf","getAttribute","focusItemMatchingFirstCharacter","key","triggerId","context","checkedValuesContext","checkedValues","onCheckedValueChangeContext","onCheckedValueChange","hasIconsContext","hasIcons","hasCheckmarksContext","hasCheckmarks","innerRef","validateNestingRef","Array","from","querySelectorAll","setCheckedValues","state","undefined","defaultState","defaultCheckedValues","initialState","handleCheckedValueChange","toggleCheckbox","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","always","elementType","startIndex","length","firstChars","menuItem","textContent","charAt","toLowerCase","char","getIndexFirstChars","start","i","index","focus","contextValue","isUsingPropsAndContext","val"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/MenuList/useMenuList.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport {\n useMergedRefs,\n useEventCallback,\n useControllableState,\n getIntrinsicElementProps,\n slot,\n} from '@fluentui/react-utilities';\nimport {\n useArrowNavigationGroup,\n useFocusFinders,\n TabsterMoveFocusEventName,\n type TabsterMoveFocusEvent,\n} from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\nimport type { MenuListProps, MenuListState } from './MenuList.types';\nimport { useValidateNesting } from '../../utils/useValidateNesting';\n\nconst MENU_ITEM_ROLES = ['menuitem', 'menuitemcheckbox', 'menuitemradio'];\nconst MENU_ITEM_ROLES_SELECTOR = MENU_ITEM_ROLES.map(role => `[role=\"${role}\"]`).join(',');\n\n/**\n * Returns the props and state required to render the component.\n *\n * Composes with `useMenuListBase_unstable` and adds Tabster-driven keyboard\n * navigation: circular arrow-key focus, a `TabsterMoveFocusEvent` listener\n * that lets `useMenuPopover_unstable` handle Tab key presses, a focus-aware\n * `setFocusByFirstCharacter`, and the `hasIcons` / `hasCheckmarks` slot\n * alignment hints sourced from the parent `MenuContext`.\n */\nexport const useMenuList_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n\n const wrapperRef = React.useRef<HTMLElement>(null);\n const { findAllFocusable } = useFocusFinders();\n const { targetDocument } = useFluent();\n const focusAttributes = useArrowNavigationGroup({ circular: true });\n\n const baseState = useMenuListBase_unstable(props, ref);\n // recreate root non-mutatively: merge wrapperRef so the effect below can\n // observe the rendered DOM element, and add Tabster arrow-nav attributes\n const mergedRootRef = useMergedRefs(baseState.root.ref, wrapperRef) as React.Ref<HTMLDivElement>;\n\n React.useEffect(() => {\n const element = wrapperRef.current;\n\n if (!hasMenuContext || !targetDocument || !element) {\n return;\n }\n\n const onTabsterMoveFocus = (e: TabsterMoveFocusEvent) => {\n const nextElement = e.detail.next;\n if (nextElement && element.contains(targetDocument.activeElement) && !element.contains(nextElement)) {\n // Preventing Tabster from handling Tab press, useMenuPopover will handle it.\n e.preventDefault();\n }\n };\n\n targetDocument.addEventListener(TabsterMoveFocusEventName, onTabsterMoveFocus);\n return () => {\n targetDocument.removeEventListener(TabsterMoveFocusEventName, onTabsterMoveFocus);\n };\n }, [hasMenuContext, targetDocument]);\n\n const setFocusByFirstCharacter = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n if (!wrapperRef.current) {\n return;\n }\n const menuItems = findAllFocusable(\n wrapperRef.current,\n (el: HTMLElement) => el.hasAttribute('role') && MENU_ITEM_ROLES.indexOf(el.getAttribute('role')!) !== -1,\n );\n focusItemMatchingFirstCharacter(menuItems, e.key, itemEl);\n },\n [findAllFocusable],\n );\n\n return {\n ...baseState,\n root: {\n ...focusAttributes,\n ...baseState.root,\n ref: mergedRootRef,\n },\n setFocusByFirstCharacter,\n };\n};\n\n/**\n * Base hook for MenuList component, produces state required to render the component.\n *\n * Does not invoke any Tabster APIs internally: arrow-key navigation and the\n * focus-aware `setFocusByFirstCharacter` are added by the wrapper\n * `useMenuList_unstable`. The base's `setFocusByFirstCharacter` walks the DOM\n * via `querySelectorAll` and does not filter by Tabster's focusability rules,\n * so consumers integrating their own focus management should layer that on top.\n *\n * @param props - props from this instance of MenuList\n * @param ref - reference to root HTMLElement of MenuList\n */\nexport const useMenuListBase_unstable = (props: MenuListProps, ref: React.Ref<HTMLElement>): MenuListState => {\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const checkedValuesContext = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChangeContext = useMenuContext_unstable(context => context.onCheckedValueChange);\n const hasIconsContext = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarksContext = useMenuContext_unstable(context => context.hasCheckmarks);\n const hasMenuContext = useHasParentContext(MenuContext);\n\n const innerRef = React.useRef<HTMLElement>(null);\n const validateNestingRef = useValidateNesting('MenuList');\n\n const setFocusByFirstCharacter = React.useCallback((e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => {\n if (!innerRef.current) {\n return;\n }\n const menuItems = Array.from(innerRef.current.querySelectorAll<HTMLElement>(MENU_ITEM_ROLES_SELECTOR));\n focusItemMatchingFirstCharacter(menuItems, e.key, itemEl);\n }, []);\n\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues ?? (hasMenuContext ? checkedValuesContext : undefined),\n defaultState: props.defaultCheckedValues,\n initialState: {},\n });\n\n const handleCheckedValueChange =\n props.onCheckedValueChange ?? (hasMenuContext ? onCheckedValueChangeContext : undefined);\n\n const toggleCheckbox = useEventCallback(\n (e: React.MouseEvent | React.KeyboardEvent, name: string, value: string, checked: boolean) => {\n const checkedItems = checkedValues?.[name] || [];\n const newCheckedItems = [...checkedItems];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n },\n );\n\n const selectRadio = useEventCallback((e: React.MouseEvent | React.KeyboardEvent, name: string, value: string) => {\n const newCheckedItems = [value];\n setCheckedValues(s => ({ ...s, [name]: newCheckedItems }));\n handleCheckedValueChange?.(e, { name, checkedItems: newCheckedItems });\n });\n\n return {\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, innerRef, validateNestingRef) as React.Ref<HTMLDivElement>,\n role: 'menu',\n 'aria-labelledby': triggerId,\n ...props,\n }),\n { elementType: 'div' },\n ),\n checkedValues,\n hasIcons: props.hasIcons ?? hasIconsContext ?? false,\n hasCheckmarks: props.hasCheckmarks ?? hasCheckmarksContext ?? false,\n hasMenuContext,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox,\n };\n};\n\n/**\n * Focuses the next menu item whose textContent starts with the typed character,\n * wrapping around the list. Shared between the Tabster-free base impl and the\n * Tabster-aware wrapper.\n */\nconst focusItemMatchingFirstCharacter = (menuItems: HTMLElement[], key: string, current: HTMLElement) => {\n let startIndex = menuItems.indexOf(current) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n\n const firstChars = menuItems.map(menuItem => menuItem.textContent?.charAt(0).toLowerCase());\n const char = key.toLowerCase();\n\n const getIndexFirstChars = (start: number) => {\n for (let i = start; i < firstChars.length; i++) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n\n let index = getIndexFirstChars(startIndex);\n if (index === -1) {\n index = getIndexFirstChars(0);\n }\n if (index > -1) {\n menuItems[index].focus();\n }\n};\n\n/**\n * Adds some sugar to fetching multiple context selector values\n */\nconst useMenuContextSelectors = () => {\n const checkedValues = useMenuContext_unstable(context => context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable(context => context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const hasIcons = useMenuContext_unstable(context => context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable(context => context.hasCheckmarks);\n\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks,\n };\n};\n\n/**\n * Helper function to detect if props and MenuContext values are both used\n */\nconst usingPropsAndMenuContext = (\n props: MenuListProps,\n contextValue: ReturnType<typeof useMenuContextSelectors>,\n hasMenuContext: boolean,\n) => {\n let isUsingPropsAndContext = false;\n for (const val in contextValue) {\n if (props[val as keyof Omit<typeof contextValue, 'hasMenuContext' | 'onCheckedValueChange' | 'triggerId'>]) {\n isUsingPropsAndContext = true;\n }\n }\n\n return hasMenuContext && isUsingPropsAndContext;\n};\n"],"names":["React","useMergedRefs","useEventCallback","useControllableState","getIntrinsicElementProps","slot","useArrowNavigationGroup","useFocusFinders","TabsterMoveFocusEventName","useFluent_unstable","useFluent","useHasParentContext","useMenuContext_unstable","MenuContext","useValidateNesting","MENU_ITEM_ROLES","MENU_ITEM_ROLES_SELECTOR","map","role","join","useMenuList_unstable","props","ref","menuContext","useMenuContextSelectors","hasMenuContext","usingPropsAndMenuContext","console","warn","wrapperRef","useRef","findAllFocusable","targetDocument","focusAttributes","circular","baseState","useMenuListBase_unstable","mergedRootRef","root","useEffect","element","current","onTabsterMoveFocus","e","nextElement","detail","next","contains","activeElement","preventDefault","addEventListener","removeEventListener","setFocusByFirstCharacter","useCallback","itemEl","menuItems","el","hasAttribute","indexOf","getAttribute","focusItemMatchingFirstCharacter","key","triggerId","context","checkedValuesContext","checkedValues","onCheckedValueChangeContext","onCheckedValueChange","hasIconsContext","hasIcons","hasCheckmarksContext","hasCheckmarks","innerRef","validateNestingRef","Array","from","querySelectorAll","setCheckedValues","state","undefined","defaultState","defaultCheckedValues","initialState","handleCheckedValueChange","toggleCheckbox","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","always","elementType","startIndex","length","firstChars","menuItem","textContent","charAt","toLowerCase","char","getIndexFirstChars","start","i","index","focus","contextValue","isUsingPropsAndContext","val"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useMenuListStyles.styles.js"],"sourcesContent":["'use client';\nimport { mergeClasses, makeStyles } from \"@griffel/react\";\nexport const menuListClassNames = {\n root: 'fui-MenuList'\n};\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: '2px'\n },\n hasMenuContext: {\n height: '100%'\n }\n});\n/**\n * Apply styling to the Menu slots based on the state\n */ export const useMenuListStyles_unstable = (state)=>{\n const styles = useStyles();\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(menuListClassNames.root, styles.root, state.hasMenuContext && styles.hasMenuContext, state.root.className);\n return state;\n};\n"],"names":["mergeClasses","__styles","menuListClassNames","root","useStyles","mc9l5x","Beiy3e4","i8kkvl","Belr9w4","rmohyg","hasMenuContext","Bqenvij","d","p","useMenuListStyles_unstable","state","styles","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAECE,kBAAkB;;;IAedY,0BAA0B;;;;uBAhBF,gBAAgB;AAClD,2BAA2B;IAC9BX,IAAI,EAAE;AACV,CAAC;AACD,MAAMC,SAAS,GAAA,WAAA,OAAGH,eAAA,EAAA;IAAAE,IAAA,EAAA;QAAAE,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;IAAAC,cAAA,EAAA;QAAAC,OAAA,EAAA;IAAA;AAAA,GAAA;IAAAC,CAAA,EAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,CAAA,EAAA,CAAA;YAAA;SAAA;QAAA;KAAA;AAAA,CASjB,CAAC;AAGS,oCAAoCE,KAAK,IAAG;IACnD,MAAMC,MAAM,GAAGZ,SAAS,CAAC,CAAC;IAC1B,oDAAA;IACAW,KAAK,CAACZ,IAAI,CAACc,SAAS,OAAGjB,mBAAY,EAACE,kBAAkB,CAACC,IAAI,EAAEa,MAAM,CAACb,IAAI,EAAEY,KAAK,CAACL,cAAc,IAAIM,MAAM,CAACN,cAAc,EAAEK,KAAK,CAACZ,IAAI,CAACc,SAAS,CAAC;IAC9I,OAAOF,KAAK;AAChB,CAAC"}
@@ -11,9 +11,9 @@ Object.defineProperty(exports, "MenuPopover", {
11
11
  });
12
12
  const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
13
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
14
- const _useMenuPopover = require("./useMenuPopover");
15
- const _useMenuPopoverStylesstyles = require("./useMenuPopoverStyles.styles");
16
- const _renderMenuPopover = require("./renderMenuPopover");
14
+ const _useMenuPopover = require("./useMenuPopover.cjs");
15
+ const _useMenuPopoverStylesstyles = require("./useMenuPopoverStyles.styles.cjs");
16
+ const _renderMenuPopover = require("./renderMenuPopover.cjs");
17
17
  const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
18
18
  const MenuPopover = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
19
19
  const state = (0, _useMenuPopover.useMenuPopover_unstable)(props, ref);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuPopover/MenuPopover.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useMenuPopover_unstable } from './useMenuPopover';\nimport { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles.styles';\nimport { renderMenuPopover_unstable } from './renderMenuPopover';\nimport type { MenuPopoverProps } from './MenuPopover.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus\n */\nexport const MenuPopover: ForwardRefComponent<MenuPopoverProps> = React.forwardRef((props, ref) => {\n const state = useMenuPopover_unstable(props, ref);\n\n useMenuPopoverStyles_unstable(state);\n\n useCustomStyleHook_unstable('useMenuPopoverStyles_unstable')(state);\n\n return renderMenuPopover_unstable(state);\n});\n\nMenuPopover.displayName = 'MenuPopover';\n"],"names":["React","useMenuPopover_unstable","useMenuPopoverStyles_unstable","renderMenuPopover_unstable","useCustomStyleHook_unstable","MenuPopover","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;gCACS,mBAAmB;4CACb,gCAAgC;mCACnC,sBAAsB;qCAGrB,kCAAkC;AAKvE,MAAMK,cAAAA,WAAAA,GAAqDL,OAAMM,UAAU,CAAC,CAACC,OAAOC;IACzF,MAAMC,YAAQR,uCAAAA,EAAwBM,OAAOC;QAE7CN,yDAAAA,EAA8BO;QAE9BL,gDAAAA,EAA4B,iCAAiCK;IAE7D,WAAON,6CAAAA,EAA2BM;AACpC,GAAG;AAEHJ,YAAYK,WAAW,GAAG"}
1
+ {"version":3,"sources":["../src/components/MenuPopover/MenuPopover.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useMenuPopover_unstable } from './useMenuPopover';\nimport { useMenuPopoverStyles_unstable } from './useMenuPopoverStyles.styles';\nimport { renderMenuPopover_unstable } from './renderMenuPopover';\nimport type { MenuPopoverProps } from './MenuPopover.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Popover intended to wrap `MenuList` and adds styling and interaction support specific to menus\n */\nexport const MenuPopover: ForwardRefComponent<MenuPopoverProps> = React.forwardRef((props, ref) => {\n const state = useMenuPopover_unstable(props, ref);\n\n useMenuPopoverStyles_unstable(state);\n\n useCustomStyleHook_unstable('useMenuPopoverStyles_unstable')(state);\n\n return renderMenuPopover_unstable(state);\n});\n\nMenuPopover.displayName = 'MenuPopover';\n"],"names":["React","useMenuPopover_unstable","useMenuPopoverStyles_unstable","renderMenuPopover_unstable","useCustomStyleHook_unstable","MenuPopover","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;gCACS,sBAAmB;4CACb,mCAAgC;mCACnC,yBAAsB;qCAGrB,kCAAkC;AAKvE,MAAMK,cAAAA,WAAAA,GAAqDL,OAAMM,UAAU,CAAC,CAACC,OAAOC;IACzF,MAAMC,YAAQR,uCAAAA,EAAwBM,OAAOC;QAE7CN,yDAAAA,EAA8BO;QAE9BL,gDAAAA,EAA4B,iCAAiCK;IAE7D,WAAON,6CAAAA,EAA2BM;AACpC,GAAG;AAEHJ,YAAYK,WAAW,GAAG"}
@@ -28,7 +28,7 @@ _export(exports, {
28
28
  return _useMenuPopover.useMenuPopover_unstable;
29
29
  }
30
30
  });
31
- const _MenuPopover = require("./MenuPopover");
32
- const _renderMenuPopover = require("./renderMenuPopover");
33
- const _useMenuPopover = require("./useMenuPopover");
34
- const _useMenuPopoverStylesstyles = require("./useMenuPopoverStyles.styles");
31
+ const _MenuPopover = require("./MenuPopover.cjs");
32
+ const _renderMenuPopover = require("./renderMenuPopover.cjs");
33
+ const _useMenuPopover = require("./useMenuPopover.cjs");
34
+ const _useMenuPopoverStylesstyles = require("./useMenuPopoverStyles.styles.cjs");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuPopover/index.ts"],"sourcesContent":["export { MenuPopover } from './MenuPopover';\nexport type { MenuPopoverProps, MenuPopoverSlots, MenuPopoverState } from './MenuPopover.types';\nexport { renderMenuPopover_unstable } from './renderMenuPopover';\nexport { useMenuPopover_unstable, useMenuPopoverBase_unstable } from './useMenuPopover';\nexport { menuPopoverClassNames, useMenuPopoverStyles_unstable } from './useMenuPopoverStyles.styles';\n"],"names":["MenuPopover","renderMenuPopover_unstable","useMenuPopover_unstable","useMenuPopoverBase_unstable","menuPopoverClassNames","useMenuPopoverStyles_unstable"],"mappings":";;;;;;;;;;;;eAASA,wBAAW;;;eAIXI,iDAAqB;;;eAFrBH,6CAA0B;;;eACDE,2CAA2B;;;eAC7BE,yDAA6B;;;eADpDH,uCAAuB;;;6BAHJ,gBAAgB;mCAED,sBAAsB;gCACI,mBAAmB;4CACnB,gCAAgC"}
1
+ {"version":3,"sources":["../src/components/MenuPopover/index.ts"],"sourcesContent":["export { MenuPopover } from './MenuPopover';\nexport type { MenuPopoverProps, MenuPopoverSlots, MenuPopoverState } from './MenuPopover.types';\nexport { renderMenuPopover_unstable } from './renderMenuPopover';\nexport { useMenuPopover_unstable, useMenuPopoverBase_unstable } from './useMenuPopover';\nexport { menuPopoverClassNames, useMenuPopoverStyles_unstable } from './useMenuPopoverStyles.styles';\n"],"names":["MenuPopover","renderMenuPopover_unstable","useMenuPopover_unstable","useMenuPopoverBase_unstable","menuPopoverClassNames","useMenuPopoverStyles_unstable"],"mappings":";;;;;;;;;;;;eAASA,wBAAW;;;eAIXI,iDAAqB;;;eAFrBH,6CAA0B;;;eACDE,2CAA2B;;;eAC7BE,yDAA6B;;;eADpDH,uCAAuB;;;6BAHJ,mBAAgB;mCAED,yBAAsB;gCACI,sBAAmB;4CACnB,mCAAgC"}
@@ -24,9 +24,9 @@ const _reactmotion = require("@fluentui/react-motion");
24
24
  const _reacttabster = require("@fluentui/react-tabster");
25
25
  const _reactutilities = require("@fluentui/react-utilities");
26
26
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
27
- const _menuContext = require("../../contexts/menuContext");
28
- const _menuListContext = require("../../contexts/menuListContext");
29
- const _index = require("../../utils/index");
27
+ const _menuContext = require("../../contexts/menuContext.cjs");
28
+ const _menuListContext = require("../../contexts/menuListContext.cjs");
29
+ const _index = require("../../utils/index.cjs");
30
30
  const useMenuPopoverBase_unstable = (props, ref)=>{
31
31
  'use no memo'; // justified: compiler would optimize useMenuPopoverBase_unstable — manual opt-out to preserve runtime behavior
32
32
  const safeZone = (0, _menuContext.useMenuContext_unstable)((context)=>context.safeZone);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuPopover/useMenuPopover.ts"],"sourcesContent":["'use client';\n\nimport { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useMotionForwardedRef } from '@fluentui/react-motion';\nimport {\n useRestoreFocusSource,\n useTabsterAttributes,\n useMergedTabsterAttributes_unstable,\n} from '@fluentui/react-tabster';\nimport { getIntrinsicElementProps, useEventCallback, useMergedRefs, slot, useTimeout } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { dispatchMenuEnterEvent, useIsSubmenu } from '../../utils/index';\nimport type { MenuPopoverProps, MenuPopoverState } from './MenuPopover.types';\n\n/**\n * Base hook for MenuPopover, produces state required to render the component.\n *\n * Does not invoke `@fluentui/react-tabster` focus-restoration or\n * `@fluentui/react-motion` ref-forwarding APIs internally; the wrapper\n * `useMenuPopover_unstable` layers those on top.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */\nexport const useMenuPopoverBase_unstable = (props: MenuPopoverProps, ref: React.Ref<HTMLElement>): MenuPopoverState => {\n 'use no memo'; // justified: compiler would optimize useMenuPopoverBase_unstable — manual opt-out to preserve runtime behavior\n\n const safeZone = useMenuContext_unstable(context => context.safeZone);\n const popoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const triggerRef = useMenuContext_unstable(context => context.triggerRef);\n\n const isSubmenu = useIsSubmenu();\n const shouldCloseOnArrowLeft = useMenuListContext_unstable(ctx => ctx.shouldCloseOnArrowLeft ?? true);\n\n const canDispatchCustomEventRef = React.useRef(true);\n const [setThrottleTimeout, clearThrottleTimeout] = useTimeout();\n\n const { dir } = useFluent();\n const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;\n\n // use DOM listener since react events propagate up the react tree\n // no need to do `contains` logic as menus are all positioned in different portals\n const mouseOverListenerCallbackRef = React.useCallback(\n (node: HTMLElement) => {\n if (node) {\n // Dispatches the custom menu mouse enter event with throttling\n // Needs to trigger on mouseover to support keyboard + mouse together\n // i.e. keyboard opens submenus while cursor is still on the parent\n node.addEventListener('mouseover', e => {\n if (canDispatchCustomEventRef.current) {\n canDispatchCustomEventRef.current = false;\n dispatchMenuEnterEvent(popoverRef.current as HTMLElement, e);\n setThrottleTimeout(() => {\n canDispatchCustomEventRef.current = true;\n }, 250);\n }\n });\n }\n },\n [popoverRef, setThrottleTimeout],\n );\n\n React.useEffect(() => {\n return () => clearThrottleTimeout();\n }, [clearThrottleTimeout]);\n\n const inline = useMenuContext_unstable(context => context.inline) ?? false;\n const mountNode = useMenuContext_unstable(context => context.mountNode);\n\n const rootProps = slot.always(\n getIntrinsicElementProps('div', {\n role: 'presentation',\n ...props,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef) as React.Ref<HTMLDivElement>,\n }),\n { elementType: 'div' },\n );\n\n const { onMouseEnter: onMouseEnterOriginal, onKeyDown: onKeyDownOriginal } = rootProps;\n rootProps.onMouseEnter = useEventCallback((event: React.MouseEvent<HTMLDivElement>) => {\n if (openOnHover || isSubmenu) {\n setOpen(event, { open: true, keyboard: false, type: 'menuPopoverMouseEnter', event });\n }\n onMouseEnterOriginal?.(event);\n });\n\n rootProps.onKeyDown = useEventCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const key = event.key;\n if (key === Escape || (isSubmenu && shouldCloseOnArrowLeft && key === CloseArrowKey)) {\n if (open && popoverRef.current?.contains(event.target as HTMLElement) && !event.isDefaultPrevented()) {\n setOpen(event, { open: false, keyboard: true, type: 'menuPopoverKeyDown', event });\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover, Menu and Tooltip\n event.preventDefault();\n }\n }\n if (key === Tab) {\n setOpen(event, { open: false, keyboard: true, type: 'menuPopoverKeyDown', event });\n if (!isSubmenu) {\n triggerRef.current?.focus();\n }\n }\n onKeyDownOriginal?.(event);\n });\n\n return {\n inline,\n mountNode,\n safeZone,\n components: { root: 'div' },\n root: rootProps,\n };\n};\n\n/**\n * Create the state required to render MenuPopover.\n *\n * The returned state can be modified with hooks such as useMenuPopoverStyles_unstable,\n * before being passed to renderMenuPopover_unstable.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */\nexport const useMenuPopover_unstable = (props: MenuPopoverProps, ref: React.Ref<HTMLElement>): MenuPopoverState => {\n const restoreFocusSourceAttributes = useRestoreFocusSource();\n\n // Opt the menu's popover out of tabster's Escape handling. The menu closes itself on\n // Escape; without this tabster would also act on Escape (e.g. escaping a parent\n // groupper/modalizer) and move focus away from the trigger instead of restoring it.\n const ignoreEscapeKeyAttribute = useTabsterAttributes({\n focusable: { ignoreKeydown: { Escape: true } },\n });\n\n const tabsterAttributes = useMergedTabsterAttributes_unstable(restoreFocusSourceAttributes, ignoreEscapeKeyAttribute);\n\n const motionRef = useMotionForwardedRef();\n const baseState = useMenuPopoverBase_unstable(props, ref);\n\n return {\n ...baseState,\n root: {\n ...tabsterAttributes,\n ...baseState.root,\n ref: useMergedRefs(baseState.root.ref, motionRef) as React.Ref<HTMLDivElement>,\n },\n };\n};\n"],"names":["ArrowLeft","Tab","ArrowRight","Escape","useFluent_unstable","useFluent","useMotionForwardedRef","useRestoreFocusSource","useTabsterAttributes","useMergedTabsterAttributes_unstable","getIntrinsicElementProps","useEventCallback","useMergedRefs","slot","useTimeout","React","useMenuContext_unstable","useMenuListContext_unstable","dispatchMenuEnterEvent","useIsSubmenu","useMenuPopoverBase_unstable","props","ref","safeZone","context","popoverRef","menuPopoverRef","setOpen","open","openOnHover","triggerRef","isSubmenu","shouldCloseOnArrowLeft","ctx","canDispatchCustomEventRef","useRef","setThrottleTimeout","clearThrottleTimeout","dir","CloseArrowKey","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","useEffect","inline","mountNode","rootProps","always","role","elementType","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","event","keyboard","type","key","contains","target","isDefaultPrevented","preventDefault","focus","components","root","useMenuPopover_unstable","restoreFocusSourceAttributes","ignoreEscapeKeyAttribute","focusable","ignoreKeydown","tabsterAttributes","motionRef","baseState"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/MenuPopover/useMenuPopover.ts"],"sourcesContent":["'use client';\n\nimport { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useMotionForwardedRef } from '@fluentui/react-motion';\nimport {\n useRestoreFocusSource,\n useTabsterAttributes,\n useMergedTabsterAttributes_unstable,\n} from '@fluentui/react-tabster';\nimport { getIntrinsicElementProps, useEventCallback, useMergedRefs, slot, useTimeout } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { dispatchMenuEnterEvent, useIsSubmenu } from '../../utils/index';\nimport type { MenuPopoverProps, MenuPopoverState } from './MenuPopover.types';\n\n/**\n * Base hook for MenuPopover, produces state required to render the component.\n *\n * Does not invoke `@fluentui/react-tabster` focus-restoration or\n * `@fluentui/react-motion` ref-forwarding APIs internally; the wrapper\n * `useMenuPopover_unstable` layers those on top.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */\nexport const useMenuPopoverBase_unstable = (props: MenuPopoverProps, ref: React.Ref<HTMLElement>): MenuPopoverState => {\n 'use no memo'; // justified: compiler would optimize useMenuPopoverBase_unstable — manual opt-out to preserve runtime behavior\n\n const safeZone = useMenuContext_unstable(context => context.safeZone);\n const popoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const triggerRef = useMenuContext_unstable(context => context.triggerRef);\n\n const isSubmenu = useIsSubmenu();\n const shouldCloseOnArrowLeft = useMenuListContext_unstable(ctx => ctx.shouldCloseOnArrowLeft ?? true);\n\n const canDispatchCustomEventRef = React.useRef(true);\n const [setThrottleTimeout, clearThrottleTimeout] = useTimeout();\n\n const { dir } = useFluent();\n const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;\n\n // use DOM listener since react events propagate up the react tree\n // no need to do `contains` logic as menus are all positioned in different portals\n const mouseOverListenerCallbackRef = React.useCallback(\n (node: HTMLElement) => {\n if (node) {\n // Dispatches the custom menu mouse enter event with throttling\n // Needs to trigger on mouseover to support keyboard + mouse together\n // i.e. keyboard opens submenus while cursor is still on the parent\n node.addEventListener('mouseover', e => {\n if (canDispatchCustomEventRef.current) {\n canDispatchCustomEventRef.current = false;\n dispatchMenuEnterEvent(popoverRef.current as HTMLElement, e);\n setThrottleTimeout(() => {\n canDispatchCustomEventRef.current = true;\n }, 250);\n }\n });\n }\n },\n [popoverRef, setThrottleTimeout],\n );\n\n React.useEffect(() => {\n return () => clearThrottleTimeout();\n }, [clearThrottleTimeout]);\n\n const inline = useMenuContext_unstable(context => context.inline) ?? false;\n const mountNode = useMenuContext_unstable(context => context.mountNode);\n\n const rootProps = slot.always(\n getIntrinsicElementProps('div', {\n role: 'presentation',\n ...props,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef) as React.Ref<HTMLDivElement>,\n }),\n { elementType: 'div' },\n );\n\n const { onMouseEnter: onMouseEnterOriginal, onKeyDown: onKeyDownOriginal } = rootProps;\n rootProps.onMouseEnter = useEventCallback((event: React.MouseEvent<HTMLDivElement>) => {\n if (openOnHover || isSubmenu) {\n setOpen(event, { open: true, keyboard: false, type: 'menuPopoverMouseEnter', event });\n }\n onMouseEnterOriginal?.(event);\n });\n\n rootProps.onKeyDown = useEventCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const key = event.key;\n if (key === Escape || (isSubmenu && shouldCloseOnArrowLeft && key === CloseArrowKey)) {\n if (open && popoverRef.current?.contains(event.target as HTMLElement) && !event.isDefaultPrevented()) {\n setOpen(event, { open: false, keyboard: true, type: 'menuPopoverKeyDown', event });\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover, Menu and Tooltip\n event.preventDefault();\n }\n }\n if (key === Tab) {\n setOpen(event, { open: false, keyboard: true, type: 'menuPopoverKeyDown', event });\n if (!isSubmenu) {\n triggerRef.current?.focus();\n }\n }\n onKeyDownOriginal?.(event);\n });\n\n return {\n inline,\n mountNode,\n safeZone,\n components: { root: 'div' },\n root: rootProps,\n };\n};\n\n/**\n * Create the state required to render MenuPopover.\n *\n * The returned state can be modified with hooks such as useMenuPopoverStyles_unstable,\n * before being passed to renderMenuPopover_unstable.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */\nexport const useMenuPopover_unstable = (props: MenuPopoverProps, ref: React.Ref<HTMLElement>): MenuPopoverState => {\n const restoreFocusSourceAttributes = useRestoreFocusSource();\n\n // Opt the menu's popover out of tabster's Escape handling. The menu closes itself on\n // Escape; without this tabster would also act on Escape (e.g. escaping a parent\n // groupper/modalizer) and move focus away from the trigger instead of restoring it.\n const ignoreEscapeKeyAttribute = useTabsterAttributes({\n focusable: { ignoreKeydown: { Escape: true } },\n });\n\n const tabsterAttributes = useMergedTabsterAttributes_unstable(restoreFocusSourceAttributes, ignoreEscapeKeyAttribute);\n\n const motionRef = useMotionForwardedRef();\n const baseState = useMenuPopoverBase_unstable(props, ref);\n\n return {\n ...baseState,\n root: {\n ...tabsterAttributes,\n ...baseState.root,\n ref: useMergedRefs(baseState.root.ref, motionRef) as React.Ref<HTMLDivElement>,\n },\n };\n};\n"],"names":["ArrowLeft","Tab","ArrowRight","Escape","useFluent_unstable","useFluent","useMotionForwardedRef","useRestoreFocusSource","useTabsterAttributes","useMergedTabsterAttributes_unstable","getIntrinsicElementProps","useEventCallback","useMergedRefs","slot","useTimeout","React","useMenuContext_unstable","useMenuListContext_unstable","dispatchMenuEnterEvent","useIsSubmenu","useMenuPopoverBase_unstable","props","ref","safeZone","context","popoverRef","menuPopoverRef","setOpen","open","openOnHover","triggerRef","isSubmenu","shouldCloseOnArrowLeft","ctx","canDispatchCustomEventRef","useRef","setThrottleTimeout","clearThrottleTimeout","dir","CloseArrowKey","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","useEffect","inline","mountNode","rootProps","always","role","elementType","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","event","keyboard","type","key","contains","target","isDefaultPrevented","preventDefault","focus","components","root","useMenuPopover_unstable","restoreFocusSourceAttributes","ignoreEscapeKeyAttribute","focusable","ignoreKeydown","tabsterAttributes","motionRef","baseState"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useMenuPopoverStyles.styles.js"],"sourcesContent":["'use client';\nimport { mergeClasses, makeStyles } from \"@griffel/react\";\nimport { tokens, typographyStyles } from \"@fluentui/react-theme\";\nexport const menuPopoverClassNames = {\n root: 'fui-MenuPopover'\n};\nconst useStyles = makeStyles({\n root: {\n borderRadius: tokens.borderRadiusMedium,\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1,\n boxSizing: 'border-box',\n minWidth: '138px',\n maxWidth: '300px',\n overflowX: 'hidden',\n width: 'max-content',\n boxShadow: `${tokens.shadow16}`,\n padding: '4px',\n border: `1px solid ${tokens.colorTransparentStroke}`,\n ...typographyStyles.body1\n }\n});\n/**\n * Apply styling to the Menu slots based on the state\n */ export const useMenuPopoverStyles_unstable = (state)=>{\n const styles = useStyles();\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(menuPopoverClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"names":["mergeClasses","__styles","tokens","typographyStyles","menuPopoverClassNames","root","useStyles","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","De3pzq","sj55zd","B7ck84d","Bf4jedk","B2u0y6b","B68tc82","a9b677","E5pizo","Byoj8tv","uwmqm3","z189sj","z8tnut","B0ocmuz","Bgfg5da","B9xav0g","oivjwe","Bn0qgzm","B4g9neb","zhjwy3","wvpqe5","ibv6hh","u1mtju","h3c5rm","vrafjx","Bekrc4i","i8vvqc","g2u3we","icvyot","B4j52fo","irswps","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","d","p","useMenuPopoverStyles_unstable","state","styles","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAGCI,qBAAqB;;;iCAqBY;;;;uBAvBL,gBAAgB;AAElD,8BAA8B;IACjCC,IAAI,EAAE;AACV,CAAC;AACD,MAAMC,SAAS,GAAA,WAAA,OAAGL,eAAA,EAAA;IAAAI,IAAA,EAAA;QAAAE,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;IAAA;AAAA,GAAA;IAAAC,CAAA,EAAA;QAAA;YAAA;YAAA;gBAAAC,CAAA,EAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAA,CAAA,EAAA,CAAA;YAAA;SAAA;QAAA;YAAA;YAAA;gBAAAA,CAAA,EAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA,CAejB,CAAC;AAGS,MAAMC,iCAAiCC,KAAK,IAAG;IACtD,MAAMC,MAAM,GAAG5C,SAAS,CAAC,CAAC;IAC1B,oDAAA;IACA2C,KAAK,CAAC5C,IAAI,CAAC8C,SAAS,OAAGnD,mBAAY,EAACI,qBAAqB,CAACC,IAAI,EAAE6C,MAAM,CAAC7C,IAAI,EAAE4C,KAAK,CAAC5C,IAAI,CAAC8C,SAAS,CAAC;IAClG,OAAOF,KAAK;AAChB,CAAC"}
@@ -11,11 +11,11 @@ Object.defineProperty(exports, "MenuSplitGroup", {
11
11
  });
12
12
  const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
13
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
14
- const _useMenuSplitGroup = require("./useMenuSplitGroup");
15
- const _renderMenuSplitGroup = require("./renderMenuSplitGroup");
16
- const _useMenuSplitGroupStylesstyles = require("./useMenuSplitGroupStyles.styles");
14
+ const _useMenuSplitGroup = require("./useMenuSplitGroup.cjs");
15
+ const _renderMenuSplitGroup = require("./renderMenuSplitGroup.cjs");
16
+ const _useMenuSplitGroupStylesstyles = require("./useMenuSplitGroupStyles.styles.cjs");
17
17
  const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
18
- const _useMenuSplitGroupContextValues = require("./useMenuSplitGroupContextValues");
18
+ const _useMenuSplitGroupContextValues = require("./useMenuSplitGroupContextValues.cjs");
19
19
  const MenuSplitGroup = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
20
20
  const state = (0, _useMenuSplitGroup.useMenuSplitGroup_unstable)(props, ref);
21
21
  (0, _useMenuSplitGroupStylesstyles.useMenuSplitGroupStyles_unstable)(state);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuSplitGroup/MenuSplitGroup.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useMenuSplitGroup_unstable } from './useMenuSplitGroup';\nimport { renderMenuSplitGroup_unstable } from './renderMenuSplitGroup';\nimport { useMenuSplitGroupStyles_unstable } from './useMenuSplitGroupStyles.styles';\nimport type { MenuSplitGroupProps } from './MenuSplitGroup.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useMenuSplitGroupContextValues } from './useMenuSplitGroupContextValues';\n\n/**\n * Layout wrapper that provides extra keyboard navigation behavior for two `MenuItem` components.\n */\nexport const MenuSplitGroup: ForwardRefComponent<MenuSplitGroupProps> = React.forwardRef((props, ref) => {\n const state = useMenuSplitGroup_unstable(props, ref);\n\n useMenuSplitGroupStyles_unstable(state);\n\n useCustomStyleHook_unstable('useMenuSplitGroupStyles_unstable')(state);\n\n return renderMenuSplitGroup_unstable(state, useMenuSplitGroupContextValues(state));\n});\n\nMenuSplitGroup.displayName = 'MenuSplitGroup';\n"],"names":["React","useMenuSplitGroup_unstable","renderMenuSplitGroup_unstable","useMenuSplitGroupStyles_unstable","useCustomStyleHook_unstable","useMenuSplitGroupContextValues","MenuSplitGroup","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;mCACY,sBAAsB;sCACnB,yBAAyB;+CACtB,mCAAmC;qCAGxC,kCAAkC;gDAC/B,mCAAmC;AAK3E,MAAMM,iBAAAA,WAAAA,GAA2DN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IAC/F,MAAMC,YAAQT,6CAAAA,EAA2BO,OAAOC;QAEhDN,+DAAAA,EAAiCO;QAEjCN,gDAAAA,EAA4B,oCAAoCM;IAEhE,WAAOR,mDAAAA,EAA8BQ,WAAOL,8DAAAA,EAA+BK;AAC7E,GAAG;AAEHJ,eAAeK,WAAW,GAAG"}
1
+ {"version":3,"sources":["../src/components/MenuSplitGroup/MenuSplitGroup.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useMenuSplitGroup_unstable } from './useMenuSplitGroup';\nimport { renderMenuSplitGroup_unstable } from './renderMenuSplitGroup';\nimport { useMenuSplitGroupStyles_unstable } from './useMenuSplitGroupStyles.styles';\nimport type { MenuSplitGroupProps } from './MenuSplitGroup.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useMenuSplitGroupContextValues } from './useMenuSplitGroupContextValues';\n\n/**\n * Layout wrapper that provides extra keyboard navigation behavior for two `MenuItem` components.\n */\nexport const MenuSplitGroup: ForwardRefComponent<MenuSplitGroupProps> = React.forwardRef((props, ref) => {\n const state = useMenuSplitGroup_unstable(props, ref);\n\n useMenuSplitGroupStyles_unstable(state);\n\n useCustomStyleHook_unstable('useMenuSplitGroupStyles_unstable')(state);\n\n return renderMenuSplitGroup_unstable(state, useMenuSplitGroupContextValues(state));\n});\n\nMenuSplitGroup.displayName = 'MenuSplitGroup';\n"],"names":["React","useMenuSplitGroup_unstable","renderMenuSplitGroup_unstable","useMenuSplitGroupStyles_unstable","useCustomStyleHook_unstable","useMenuSplitGroupContextValues","MenuSplitGroup","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;mCACY,yBAAsB;sCACnB,4BAAyB;+CACtB,sCAAmC;qCAGxC,kCAAkC;gDAC/B,sCAAmC;AAK3E,MAAMM,iBAAAA,WAAAA,GAA2DN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IAC/F,MAAMC,YAAQT,6CAAAA,EAA2BO,OAAOC;QAEhDN,+DAAAA,EAAiCO;QAEjCN,gDAAAA,EAA4B,oCAAoCM;IAEhE,WAAOR,mDAAAA,EAA8BQ,WAAOL,8DAAAA,EAA+BK;AAC7E,GAAG;AAEHJ,eAAeK,WAAW,GAAG"}
@@ -25,7 +25,7 @@ _export(exports, {
25
25
  return _useMenuSplitGroup.useMenuSplitGroup_unstable;
26
26
  }
27
27
  });
28
- const _MenuSplitGroup = require("./MenuSplitGroup");
29
- const _renderMenuSplitGroup = require("./renderMenuSplitGroup");
30
- const _useMenuSplitGroup = require("./useMenuSplitGroup");
31
- const _useMenuSplitGroupStylesstyles = require("./useMenuSplitGroupStyles.styles");
28
+ const _MenuSplitGroup = require("./MenuSplitGroup.cjs");
29
+ const _renderMenuSplitGroup = require("./renderMenuSplitGroup.cjs");
30
+ const _useMenuSplitGroup = require("./useMenuSplitGroup.cjs");
31
+ const _useMenuSplitGroupStylesstyles = require("./useMenuSplitGroupStyles.styles.cjs");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuSplitGroup/index.ts"],"sourcesContent":["export { MenuSplitGroup } from './MenuSplitGroup';\nexport type { MenuSplitGroupProps, MenuSplitGroupSlots, MenuSplitGroupState } from './MenuSplitGroup.types';\nexport { renderMenuSplitGroup_unstable } from './renderMenuSplitGroup';\nexport { useMenuSplitGroup_unstable } from './useMenuSplitGroup';\nexport { menuSplitGroupClassNames, useMenuSplitGroupStyles_unstable } from './useMenuSplitGroupStyles.styles';\n"],"names":["MenuSplitGroup","renderMenuSplitGroup_unstable","useMenuSplitGroup_unstable","menuSplitGroupClassNames","useMenuSplitGroupStyles_unstable"],"mappings":";;;;;;;;;;;;eAASA,8BAAc;;;eAIdG,uDAAwB;;;eAFxBF,mDAA6B;;;eAEHG,+DAAgC;;;eAD1DF,6CAA0B;;;gCAHJ,mBAAmB;sCAEJ,yBAAyB;mCAC5B,sBAAsB;+CACU,mCAAmC"}
1
+ {"version":3,"sources":["../src/components/MenuSplitGroup/index.ts"],"sourcesContent":["export { MenuSplitGroup } from './MenuSplitGroup';\nexport type { MenuSplitGroupProps, MenuSplitGroupSlots, MenuSplitGroupState } from './MenuSplitGroup.types';\nexport { renderMenuSplitGroup_unstable } from './renderMenuSplitGroup';\nexport { useMenuSplitGroup_unstable } from './useMenuSplitGroup';\nexport { menuSplitGroupClassNames, useMenuSplitGroupStyles_unstable } from './useMenuSplitGroupStyles.styles';\n"],"names":["MenuSplitGroup","renderMenuSplitGroup_unstable","useMenuSplitGroup_unstable","menuSplitGroupClassNames","useMenuSplitGroupStyles_unstable"],"mappings":";;;;;;;;;;;;eAASA,8BAAc;;;eAIdG,uDAAwB;;;eAFxBF,mDAA6B;;;eAEHG,+DAAgC;;;eAD1DF,6CAA0B;;;gCAHJ,sBAAmB;sCAEJ,4BAAyB;mCAC5B,yBAAsB;+CACU,sCAAmC"}
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "renderMenuSplitGroup_unstable", {
10
10
  });
11
11
  const _jsxruntime = require("@fluentui/react-jsx-runtime/jsx-runtime");
12
12
  const _reactutilities = require("@fluentui/react-utilities");
13
- const _menuSplitGroupContext = require("../../contexts/menuSplitGroupContext");
13
+ const _menuSplitGroupContext = require("../../contexts/menuSplitGroupContext.cjs");
14
14
  const renderMenuSplitGroup_unstable = (state, contexts)=>{
15
15
  (0, _reactutilities.assertSlots)(state);
16
16
  var _contexts_menuSplitGroup;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuSplitGroup/renderMenuSplitGroup.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\nimport type { MenuSplitGroupState, MenuSplitGroupSlots, MenuSplitGroupContextValues } from './MenuSplitGroup.types';\nimport { menuSplitGroupContextDefaultValue, MenuSplitGroupContextProvider } from '../../contexts/menuSplitGroupContext';\n\n/**\n * Render the final JSX of MenuSplitGroup\n */\nexport const renderMenuSplitGroup_unstable = (\n state: MenuSplitGroupState,\n contexts?: MenuSplitGroupContextValues,\n): JSXElement => {\n assertSlots<MenuSplitGroupSlots>(state);\n\n return (\n <MenuSplitGroupContextProvider value={contexts?.menuSplitGroup ?? menuSplitGroupContextDefaultValue}>\n <state.root />\n </MenuSplitGroupContextProvider>\n );\n};\n"],"names":["assertSlots","menuSplitGroupContextDefaultValue","MenuSplitGroupContextProvider","renderMenuSplitGroup_unstable","state","contexts","value","menuSplitGroup","root"],"mappings":";;;;+BAUaG;;;;;;4BATb,gDAAiD;gCACrB,4BAA4B;uCAGyB,uCAAuC;AAKjH,sCAAsC,CAC3CC,OACAC;QAEAL,2BAAAA,EAAiCI;QAGOC;IADxC,OAAA,WAAA,OACE,eAAA,EAACH,oDAAAA,EAAAA;QAA8BI,OAAOD,4BAAAA,aAAAA,QAAAA,aAAAA,KAAAA,IAAAA,KAAAA,IAAAA,SAAUE,cAAAA,AAAc,MAAA,QAAxBF,6BAAAA,KAAAA,IAAAA,2BAA4BJ,wDAAAA;kBAChE,WAAA,OAAA,eAAA,EAACG,MAAMI,IAAI,EAAA,CAAA;;AAGjB,EAAE"}
1
+ {"version":3,"sources":["../src/components/MenuSplitGroup/renderMenuSplitGroup.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\nimport type { MenuSplitGroupState, MenuSplitGroupSlots, MenuSplitGroupContextValues } from './MenuSplitGroup.types';\nimport { menuSplitGroupContextDefaultValue, MenuSplitGroupContextProvider } from '../../contexts/menuSplitGroupContext';\n\n/**\n * Render the final JSX of MenuSplitGroup\n */\nexport const renderMenuSplitGroup_unstable = (\n state: MenuSplitGroupState,\n contexts?: MenuSplitGroupContextValues,\n): JSXElement => {\n assertSlots<MenuSplitGroupSlots>(state);\n\n return (\n <MenuSplitGroupContextProvider value={contexts?.menuSplitGroup ?? menuSplitGroupContextDefaultValue}>\n <state.root />\n </MenuSplitGroupContextProvider>\n );\n};\n"],"names":["assertSlots","menuSplitGroupContextDefaultValue","MenuSplitGroupContextProvider","renderMenuSplitGroup_unstable","state","contexts","value","menuSplitGroup","root"],"mappings":";;;;+BAUaG;;;;;;4BATb,gDAAiD;gCACrB,4BAA4B;uCAGyB,0CAAuC;AAKjH,sCAAsC,CAC3CC,OACAC;QAEAL,2BAAAA,EAAiCI;QAGOC;IADxC,OAAA,WAAA,OACE,eAAA,EAACH,oDAAAA,EAAAA;QAA8BI,OAAOD,4BAAAA,aAAAA,QAAAA,aAAAA,KAAAA,IAAAA,KAAAA,IAAAA,SAAUE,cAAAA,AAAc,MAAA,QAAxBF,6BAAAA,KAAAA,IAAAA,2BAA4BJ,wDAAAA;kBAChE,WAAA,OAAA,eAAA,EAACG,MAAMI,IAAI,EAAA,CAAA;;AAGjB,EAAE"}
@@ -15,7 +15,7 @@ const _reactutilities = require("@fluentui/react-utilities");
15
15
  const _reacttabster = require("@fluentui/react-tabster");
16
16
  const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
17
17
  const _keyboardkeys = require("@fluentui/keyboard-keys");
18
- const _useMenuSplitGroupStylesstyles = require("./useMenuSplitGroupStyles.styles");
18
+ const _useMenuSplitGroupStylesstyles = require("./useMenuSplitGroupStyles.styles.cjs");
19
19
  const useMenuSplitGroup_unstable = (props, ref)=>{
20
20
  const innerRef = _react.useRef(undefined);
21
21
  const { dir, targetDocument } = (0, _reactsharedcontexts.useFluent_unstable)();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuSplitGroup/useMenuSplitGroup.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, getRTLSafeKey, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport type { MenuSplitGroupProps, MenuSplitGroupState } from './MenuSplitGroup.types';\nimport { ArrowRight, ArrowLeft } from '@fluentui/keyboard-keys';\nimport { menuSplitGroupMultilineAttr } from './useMenuSplitGroupStyles.styles';\n\n/**\n * Create the state required to render MenuSplitGroup.\n *\n * The returned state can be modified with hooks such as useMenuSplitGroupStyles_unstable,\n * before being passed to renderMenuSplitGroup_unstable.\n *\n * @param props - props from this instance of MenuSplitGroup\n * @param ref - reference to root HTMLElement of MenuSplitGroup\n */\nexport const useMenuSplitGroup_unstable = (\n props: MenuSplitGroupProps,\n ref: React.Ref<HTMLElement>,\n): MenuSplitGroupState => {\n const innerRef = React.useRef<HTMLDivElement>(undefined);\n const { dir, targetDocument } = useFluent();\n\n const nextArrowKey = getRTLSafeKey(ArrowRight, dir);\n const prevArrowKey = getRTLSafeKey(ArrowLeft, dir);\n\n const { findNextFocusable, findPrevFocusable } = useFocusFinders();\n const { multilineRef, setMultiline } = useHandleMultilineMenuItem();\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n const activeElement = targetDocument?.activeElement;\n if (!activeElement) {\n return;\n }\n\n if (!innerRef.current?.contains(activeElement)) {\n return;\n }\n\n if (e.key === nextArrowKey) {\n const next = findNextFocusable(activeElement as HTMLElement, { container: innerRef.current });\n next?.focus();\n }\n\n if (e.key === prevArrowKey) {\n const prev = findPrevFocusable(activeElement as HTMLElement, { container: innerRef.current });\n prev?.focus();\n }\n },\n [findNextFocusable, findPrevFocusable, targetDocument, nextArrowKey, prevArrowKey],\n );\n\n return {\n components: {\n root: 'div',\n },\n setMultiline,\n root: slot.always(\n // eslint-disable-next-line react-hooks/refs\n getIntrinsicElementProps('div', {\n role: 'group',\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, innerRef, multilineRef) as React.Ref<HTMLDivElement>,\n onKeyDown,\n ...props,\n }),\n { elementType: 'div' },\n ),\n };\n};\n\n/**\n * Creates a callback that lets a multiline menu item child set an attribute on this component\n * Children can mount before parents so we need to store the value and apply it when the parent is mounted\n */\nconst useHandleMultilineMenuItem = () => {\n const [handle] = React.useState(() => {\n let isMultiline = false;\n let multilineNode: HTMLElement | null = null;\n\n function applyAttr() {\n multilineNode?.toggleAttribute(menuSplitGroupMultilineAttr, isMultiline);\n }\n\n return {\n multilineRef: (node: HTMLDivElement | null) => {\n if (node) {\n multilineNode = node;\n applyAttr();\n } else {\n multilineNode = null;\n }\n },\n setMultiline: (value: boolean) => {\n isMultiline = value;\n applyAttr();\n },\n };\n });\n\n return handle;\n};\n"],"names":["React","getIntrinsicElementProps","getRTLSafeKey","useMergedRefs","slot","useFocusFinders","useFluent_unstable","useFluent","ArrowRight","ArrowLeft","menuSplitGroupMultilineAttr","useMenuSplitGroup_unstable","props","ref","innerRef","useRef","undefined","dir","targetDocument","nextArrowKey","prevArrowKey","findNextFocusable","findPrevFocusable","multilineRef","setMultiline","useHandleMultilineMenuItem","onKeyDown","useCallback","e","activeElement","current","contains","key","next","container","focus","prev","components","root","always","role","elementType","handle","useState","isMultiline","multilineNode","applyAttr","toggleAttribute","node","value"],"mappings":"AAAA;;;;;+BAmBaW;;;;;;;iEAjBU,QAAQ;gCAC8C,4BAA4B;8BACzE,0BAA0B;qCACV,kCAAkC;8BAE5C,0BAA0B;+CACpB,mCAAmC;AAWxE,mCAAmC,CACxCC,OACAC;IAEA,MAAMC,WAAWd,OAAMe,MAAM,CAAiBC;IAC9C,MAAM,EAAEC,GAAG,EAAEC,cAAc,EAAE,OAAGX,uCAAAA;IAEhC,MAAMY,mBAAejB,6BAAAA,EAAcM,wBAAAA,EAAYS;IAC/C,MAAMG,mBAAelB,6BAAAA,EAAcO,uBAAAA,EAAWQ;IAE9C,MAAM,EAAEI,iBAAiB,EAAEC,iBAAiB,EAAE,OAAGjB,6BAAAA;IACjD,MAAM,EAAEkB,YAAY,EAAEC,YAAY,EAAE,GAAGC;IAEvC,MAAMC,YAAY1B,OAAM2B,WAAW,CACjC,CAACC;YAMMd;QALL,MAAMe,gBAAgBX,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBW,aAAa;QACnD,IAAI,CAACA,eAAe;YAClB;QACF;QAEA,IAAI,CAAA,CAAA,CAACf,oBAAAA,SAASgB,OAAAA,AAAO,MAAA,QAAhBhB,sBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,kBAAkBiB,QAAQ,CAACF,cAAAA,GAAgB;YAC9C;QACF;QAEA,IAAID,EAAEI,GAAG,KAAKb,cAAc;YAC1B,MAAMc,OAAOZ,kBAAkBQ,eAA8B;gBAAEK,WAAWpB,SAASgB,OAAO;YAAC;YAC3FG,SAAAA,QAAAA,SAAAA,KAAAA,IAAAA,KAAAA,IAAAA,KAAME,KAAK;QACb;QAEA,IAAIP,EAAEI,GAAG,KAAKZ,cAAc;YAC1B,MAAMgB,OAAOd,kBAAkBO,eAA8B;gBAAEK,WAAWpB,SAASgB,OAAO;YAAC;YAC3FM,SAAAA,QAAAA,SAAAA,KAAAA,IAAAA,KAAAA,IAAAA,KAAMD,KAAK;QACb;IACF,GACA;QAACd;QAAmBC;QAAmBJ;QAAgBC;QAAcC;KAAa;IAGpF,OAAO;QACLiB,YAAY;YACVC,MAAM;QACR;QACAd;QACAc,MAAMlC,oBAAAA,CAAKmC,MAAM,CACf,IACAtC,wCAD4C,AAC5CA,EAAyB,OAAO;YAC9BuC,MAAM;YACN,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5F3B,SAAKV,6BAAAA,EAAcU,KAAKC,UAAUS;YAClCG;YACA,GAAGd,KAAK;QACV,IACA;YAAE6B,aAAa;QAAM;IAEzB;AACF,EAAE;AAEF;;;CAGC,GACD,MAAMhB,6BAA6B;IACjC,MAAM,CAACiB,OAAO,GAAG1C,OAAM2C,QAAQ,CAAC;QAC9B,IAAIC,cAAc;QAClB,IAAIC,gBAAoC;QAExC,SAASC;YACPD,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAeE,eAAe,CAACrC,0DAAAA,EAA6BkC;QAC9D;QAEA,OAAO;YACLrB,cAAc,CAACyB;gBACb,IAAIA,MAAM;oBACRH,gBAAgBG;oBAChBF;gBACF,OAAO;oBACLD,gBAAgB;gBAClB;YACF;YACArB,cAAc,CAACyB;gBACbL,cAAcK;gBACdH;YACF;QACF;IACF;IAEA,OAAOJ;AACT"}
1
+ {"version":3,"sources":["../src/components/MenuSplitGroup/useMenuSplitGroup.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, getRTLSafeKey, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport type { MenuSplitGroupProps, MenuSplitGroupState } from './MenuSplitGroup.types';\nimport { ArrowRight, ArrowLeft } from '@fluentui/keyboard-keys';\nimport { menuSplitGroupMultilineAttr } from './useMenuSplitGroupStyles.styles';\n\n/**\n * Create the state required to render MenuSplitGroup.\n *\n * The returned state can be modified with hooks such as useMenuSplitGroupStyles_unstable,\n * before being passed to renderMenuSplitGroup_unstable.\n *\n * @param props - props from this instance of MenuSplitGroup\n * @param ref - reference to root HTMLElement of MenuSplitGroup\n */\nexport const useMenuSplitGroup_unstable = (\n props: MenuSplitGroupProps,\n ref: React.Ref<HTMLElement>,\n): MenuSplitGroupState => {\n const innerRef = React.useRef<HTMLDivElement>(undefined);\n const { dir, targetDocument } = useFluent();\n\n const nextArrowKey = getRTLSafeKey(ArrowRight, dir);\n const prevArrowKey = getRTLSafeKey(ArrowLeft, dir);\n\n const { findNextFocusable, findPrevFocusable } = useFocusFinders();\n const { multilineRef, setMultiline } = useHandleMultilineMenuItem();\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n const activeElement = targetDocument?.activeElement;\n if (!activeElement) {\n return;\n }\n\n if (!innerRef.current?.contains(activeElement)) {\n return;\n }\n\n if (e.key === nextArrowKey) {\n const next = findNextFocusable(activeElement as HTMLElement, { container: innerRef.current });\n next?.focus();\n }\n\n if (e.key === prevArrowKey) {\n const prev = findPrevFocusable(activeElement as HTMLElement, { container: innerRef.current });\n prev?.focus();\n }\n },\n [findNextFocusable, findPrevFocusable, targetDocument, nextArrowKey, prevArrowKey],\n );\n\n return {\n components: {\n root: 'div',\n },\n setMultiline,\n root: slot.always(\n // eslint-disable-next-line react-hooks/refs\n getIntrinsicElementProps('div', {\n role: 'group',\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, innerRef, multilineRef) as React.Ref<HTMLDivElement>,\n onKeyDown,\n ...props,\n }),\n { elementType: 'div' },\n ),\n };\n};\n\n/**\n * Creates a callback that lets a multiline menu item child set an attribute on this component\n * Children can mount before parents so we need to store the value and apply it when the parent is mounted\n */\nconst useHandleMultilineMenuItem = () => {\n const [handle] = React.useState(() => {\n let isMultiline = false;\n let multilineNode: HTMLElement | null = null;\n\n function applyAttr() {\n multilineNode?.toggleAttribute(menuSplitGroupMultilineAttr, isMultiline);\n }\n\n return {\n multilineRef: (node: HTMLDivElement | null) => {\n if (node) {\n multilineNode = node;\n applyAttr();\n } else {\n multilineNode = null;\n }\n },\n setMultiline: (value: boolean) => {\n isMultiline = value;\n applyAttr();\n },\n };\n });\n\n return handle;\n};\n"],"names":["React","getIntrinsicElementProps","getRTLSafeKey","useMergedRefs","slot","useFocusFinders","useFluent_unstable","useFluent","ArrowRight","ArrowLeft","menuSplitGroupMultilineAttr","useMenuSplitGroup_unstable","props","ref","innerRef","useRef","undefined","dir","targetDocument","nextArrowKey","prevArrowKey","findNextFocusable","findPrevFocusable","multilineRef","setMultiline","useHandleMultilineMenuItem","onKeyDown","useCallback","e","activeElement","current","contains","key","next","container","focus","prev","components","root","always","role","elementType","handle","useState","isMultiline","multilineNode","applyAttr","toggleAttribute","node","value"],"mappings":"AAAA;;;;;+BAmBaW;;;;;;;iEAjBU,QAAQ;gCAC8C,4BAA4B;8BACzE,0BAA0B;qCACV,kCAAkC;8BAE5C,0BAA0B;+CACpB,sCAAmC;AAWxE,mCAAmC,CACxCC,OACAC;IAEA,MAAMC,WAAWd,OAAMe,MAAM,CAAiBC;IAC9C,MAAM,EAAEC,GAAG,EAAEC,cAAc,EAAE,OAAGX,uCAAAA;IAEhC,MAAMY,mBAAejB,6BAAAA,EAAcM,wBAAAA,EAAYS;IAC/C,MAAMG,mBAAelB,6BAAAA,EAAcO,uBAAAA,EAAWQ;IAE9C,MAAM,EAAEI,iBAAiB,EAAEC,iBAAiB,EAAE,OAAGjB,6BAAAA;IACjD,MAAM,EAAEkB,YAAY,EAAEC,YAAY,EAAE,GAAGC;IAEvC,MAAMC,YAAY1B,OAAM2B,WAAW,CACjC,CAACC;YAMMd;QALL,MAAMe,gBAAgBX,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBW,aAAa;QACnD,IAAI,CAACA,eAAe;YAClB;QACF;QAEA,IAAI,CAAA,CAAA,CAACf,oBAAAA,SAASgB,OAAAA,AAAO,MAAA,QAAhBhB,sBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,kBAAkBiB,QAAQ,CAACF,cAAAA,GAAgB;YAC9C;QACF;QAEA,IAAID,EAAEI,GAAG,KAAKb,cAAc;YAC1B,MAAMc,OAAOZ,kBAAkBQ,eAA8B;gBAAEK,WAAWpB,SAASgB,OAAO;YAAC;YAC3FG,SAAAA,QAAAA,SAAAA,KAAAA,IAAAA,KAAAA,IAAAA,KAAME,KAAK;QACb;QAEA,IAAIP,EAAEI,GAAG,KAAKZ,cAAc;YAC1B,MAAMgB,OAAOd,kBAAkBO,eAA8B;gBAAEK,WAAWpB,SAASgB,OAAO;YAAC;YAC3FM,SAAAA,QAAAA,SAAAA,KAAAA,IAAAA,KAAAA,IAAAA,KAAMD,KAAK;QACb;IACF,GACA;QAACd;QAAmBC;QAAmBJ;QAAgBC;QAAcC;KAAa;IAGpF,OAAO;QACLiB,YAAY;YACVC,MAAM;QACR;QACAd;QACAc,MAAMlC,oBAAAA,CAAKmC,MAAM,CACf,IACAtC,wCAD4C,AAC5CA,EAAyB,OAAO;YAC9BuC,MAAM;YACN,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5F3B,SAAKV,6BAAAA,EAAcU,KAAKC,UAAUS;YAClCG;YACA,GAAGd,KAAK;QACV,IACA;YAAE6B,aAAa;QAAM;IAEzB;AACF,EAAE;AAEF;;;CAGC,GACD,MAAMhB,6BAA6B;IACjC,MAAM,CAACiB,OAAO,GAAG1C,OAAM2C,QAAQ,CAAC;QAC9B,IAAIC,cAAc;QAClB,IAAIC,gBAAoC;QAExC,SAASC;YACPD,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAeE,eAAe,CAACrC,0DAAAA,EAA6BkC;QAC9D;QAEA,OAAO;YACLrB,cAAc,CAACyB;gBACb,IAAIA,MAAM;oBACRH,gBAAgBG;oBAChBF;gBACF,OAAO;oBACLD,gBAAgB;gBAClB;YACF;YACArB,cAAc,CAACyB;gBACbL,cAAcK;gBACdH;YACF;QACF;IACF;IAEA,OAAOJ;AACT"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useMenuSplitGroupStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, mergeClasses } from \"@griffel/react\";\nimport { tokens } from \"@fluentui/react-theme\";\nimport { menuItemClassNames } from \"../MenuItem/useMenuItemStyles.styles.js\";\nexport const menuSplitGroupMultilineAttr = 'data-multiline';\nexport const menuSplitGroupClassNames = {\n root: 'fui-MenuSplitGroup'\n};\n/**\n * Styles for the root slot\n * TODO - remove the use of nested combinators to style child menu items\n */ const useStyles = makeStyles({\n root: {\n [`[${menuSplitGroupMultilineAttr}]`]: {\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n alignSelf: 'center'\n }\n },\n display: 'flex',\n [`& > .${menuItemClassNames.root}:nth-of-type(1)`]: {\n flex: 1\n },\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n paddingLeft: 0,\n '::before': {\n content: '\"\"',\n width: tokens.strokeWidthThin,\n height: '20px',\n backgroundColor: tokens.colorNeutralStroke1\n }\n }\n }\n});\n/**\n * Apply styling to the MenuSplitGroup slots based on the state\n */ export const useMenuSplitGroupStyles_unstable = (state)=>{\n const styles = useStyles();\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(menuSplitGroupClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"names":["__styles","mergeClasses","tokens","menuItemClassNames","menuSplitGroupMultilineAttr","menuSplitGroupClassNames","root","useStyles","Bhlrgs3","mc9l5x","rue6gn","oe75ve","Bbblmiw","Bn2ps6a","Bu15iap","B71tm0z","Gjs4sj","foni4y","Ie9k5m","f30fub","Jberyy","d","p","useMenuSplitGroupStyles_unstable","state","styles","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAKCK,wBAAwB;;;+BADG;;;oCAiCS;;;;uBApCR,gBAAgB;AAGlD,MAAMD,8BAA8B,gBAAgB;AACpD,iCAAiC;IACpCE,IAAI,EAAE;AACV,CAAC;AACD;;;CAGA,GAAI,MAAMC,SAAS,GAAA,WAAA,OAAGP,eAAA,EAAA;IAAAM,IAAA,EAAA;QAAAE,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,OAAA,EAAA;YAAA;YAAA;SAAA;QAAAC,OAAA,EAAA;YAAA;YAAA;SAAA;QAAAC,MAAA,EAAA;YAAA;YAAA;SAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;AAAA,GAAA;IAAAC,CAAA,EAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,CAAA,EAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA,CAuBrB,CAAC;AAGS,MAAMC,oCAAoCC,KAAK,IAAG;IACzD,MAAMC,MAAM,GAAGlB,SAAS,CAAC,CAAC;IAC1B,oDAAA;IACAiB,KAAK,CAAClB,IAAI,CAACoB,SAAS,OAAGzB,mBAAY,EAACI,wBAAwB,CAACC,IAAI,EAAEmB,MAAM,CAACnB,IAAI,EAAEkB,KAAK,CAAClB,IAAI,CAACoB,SAAS,CAAC;IACrG,OAAOF,KAAK;AAChB,CAAC"}
@@ -22,7 +22,7 @@ _export(exports, {
22
22
  });
23
23
  const _react = require("@griffel/react");
24
24
  const _reacttheme = require("@fluentui/react-theme");
25
- const _useMenuItemStylesstyles = require("../MenuItem/useMenuItemStyles.styles");
25
+ const _useMenuItemStylesstyles = require("../MenuItem/useMenuItemStyles.styles.cjs");
26
26
  const menuSplitGroupMultilineAttr = 'data-multiline';
27
27
  const menuSplitGroupClassNames = {
28
28
  root: 'fui-MenuSplitGroup'
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { menuItemClassNames } from '../MenuItem/useMenuItemStyles.styles';\nimport type { MenuSplitGroupSlots, MenuSplitGroupState } from './MenuSplitGroup.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const menuSplitGroupMultilineAttr = 'data-multiline';\n\nexport const menuSplitGroupClassNames: SlotClassNames<MenuSplitGroupSlots> = {\n root: 'fui-MenuSplitGroup',\n};\n/**\n * Styles for the root slot\n * TODO - remove the use of nested combinators to style child menu items\n */\nconst useStyles = makeStyles({\n root: {\n [`[${menuSplitGroupMultilineAttr}]`]: {\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n alignSelf: 'center',\n },\n },\n display: 'flex',\n [`& > .${menuItemClassNames.root}:nth-of-type(1)`]: {\n flex: 1,\n },\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n paddingLeft: 0,\n '::before': {\n content: '\"\"',\n width: tokens.strokeWidthThin,\n height: '20px',\n backgroundColor: tokens.colorNeutralStroke1,\n },\n },\n },\n});\n\n/**\n * Apply styling to the MenuSplitGroup slots based on the state\n */\nexport const useMenuSplitGroupStyles_unstable = (state: MenuSplitGroupState): MenuSplitGroupState => {\n const styles = useStyles();\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(menuSplitGroupClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","menuItemClassNames","menuSplitGroupMultilineAttr","menuSplitGroupClassNames","root","useStyles","alignSelf","display","flex","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","content","width","strokeWidthThin","height","backgroundColor","colorNeutralStroke1","useMenuSplitGroupStyles_unstable","state","styles","className"],"mappings":"AAAA;;;;;;;;;;;;IAUaK,wBAAAA;;;+BAFAD;;;IAqCAgB,gCAAAA;;;;uBA3C4B,iBAAiB;4BACnC,wBAAwB;yCACZ,uCAAuC;AAInE,MAAMhB,8BAA8B,iBAAiB;AAErD,iCAAsE;IAC3EE,MAAM;AACR,EAAE;AACF;;;CAGC,GACD,MAAMC,gBAAYP,iBAAAA,EAAW;IAC3BM,MAAM;QACJ,CAAC,CAAC,CAAC,EAAEF,4BAA4B,CAAC,CAAC,CAAC,EAAE;YACpC,CAAC,CAAC,KAAK,EAAED,2CAAAA,CAAmBG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;gBAClDE,WAAW;YACb;QACF;QACAC,SAAS;QACT,CAAC,CAAC,KAAK,EAAEN,2CAAAA,CAAmBG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;YAClDI,MAAM;QACR;QACA,CAAC,CAAC,KAAK,EAAEP,2CAAAA,CAAmBG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;YAClDK,qBAAqB;YACrBC,wBAAwB;YACxBC,aAAa;YACb,YAAY;gBACVC,SAAS;gBACTC,OAAOb,kBAAAA,CAAOc,eAAe;gBAC7BC,QAAQ;gBACRC,iBAAiBhB,kBAAAA,CAAOiB,mBAAmB;YAC7C;QACF;IACF;AACF;AAKO,yCAAyC,CAACE;IAC/C,MAAMC,SAASf;IACf,oDAAoD;IACpDc,MAAMf,IAAI,CAACiB,SAAS,OAAGtB,mBAAAA,EAAaI,yBAAyBC,IAAI,EAAEgB,OAAOhB,IAAI,EAAEe,MAAMf,IAAI,CAACiB,SAAS;IACpG,OAAOF;AACT,EAAE"}
1
+ {"version":3,"sources":["../src/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { menuItemClassNames } from '../MenuItem/useMenuItemStyles.styles';\nimport type { MenuSplitGroupSlots, MenuSplitGroupState } from './MenuSplitGroup.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const menuSplitGroupMultilineAttr = 'data-multiline';\n\nexport const menuSplitGroupClassNames: SlotClassNames<MenuSplitGroupSlots> = {\n root: 'fui-MenuSplitGroup',\n};\n/**\n * Styles for the root slot\n * TODO - remove the use of nested combinators to style child menu items\n */\nconst useStyles = makeStyles({\n root: {\n [`[${menuSplitGroupMultilineAttr}]`]: {\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n alignSelf: 'center',\n },\n },\n display: 'flex',\n [`& > .${menuItemClassNames.root}:nth-of-type(1)`]: {\n flex: 1,\n },\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n paddingLeft: 0,\n '::before': {\n content: '\"\"',\n width: tokens.strokeWidthThin,\n height: '20px',\n backgroundColor: tokens.colorNeutralStroke1,\n },\n },\n },\n});\n\n/**\n * Apply styling to the MenuSplitGroup slots based on the state\n */\nexport const useMenuSplitGroupStyles_unstable = (state: MenuSplitGroupState): MenuSplitGroupState => {\n const styles = useStyles();\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(menuSplitGroupClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","menuItemClassNames","menuSplitGroupMultilineAttr","menuSplitGroupClassNames","root","useStyles","alignSelf","display","flex","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","content","width","strokeWidthThin","height","backgroundColor","colorNeutralStroke1","useMenuSplitGroupStyles_unstable","state","styles","className"],"mappings":"AAAA;;;;;;;;;;;;IAUaK,wBAAAA;;;+BAFAD;;;IAqCAgB,gCAAAA;;;;uBA3C4B,iBAAiB;4BACnC,wBAAwB;yCACZ,0CAAuC;AAInE,MAAMhB,8BAA8B,iBAAiB;AAErD,iCAAsE;IAC3EE,MAAM;AACR,EAAE;AACF;;;CAGC,GACD,MAAMC,gBAAYP,iBAAAA,EAAW;IAC3BM,MAAM;QACJ,CAAC,CAAC,CAAC,EAAEF,4BAA4B,CAAC,CAAC,CAAC,EAAE;YACpC,CAAC,CAAC,KAAK,EAAED,2CAAAA,CAAmBG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;gBAClDE,WAAW;YACb;QACF;QACAC,SAAS;QACT,CAAC,CAAC,KAAK,EAAEN,2CAAAA,CAAmBG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;YAClDI,MAAM;QACR;QACA,CAAC,CAAC,KAAK,EAAEP,2CAAAA,CAAmBG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;YAClDK,qBAAqB;YACrBC,wBAAwB;YACxBC,aAAa;YACb,YAAY;gBACVC,SAAS;gBACTC,OAAOb,kBAAAA,CAAOc,eAAe;gBAC7BC,QAAQ;gBACRC,iBAAiBhB,kBAAAA,CAAOiB,mBAAmB;YAC7C;QACF;IACF;AACF;AAKO,yCAAyC,CAACE;IAC/C,MAAMC,SAASf;IACf,oDAAoD;IACpDc,MAAMf,IAAI,CAACiB,SAAS,OAAGtB,mBAAAA,EAAaI,yBAAyBC,IAAI,EAAEgB,OAAOhB,IAAI,EAAEe,MAAMf,IAAI,CAACiB,SAAS;IACpG,OAAOF;AACT,EAAE"}
@@ -9,8 +9,8 @@ Object.defineProperty(exports, "MenuTrigger", {
9
9
  return MenuTrigger;
10
10
  }
11
11
  });
12
- const _useMenuTrigger = require("./useMenuTrigger");
13
- const _renderMenuTrigger = require("./renderMenuTrigger");
12
+ const _useMenuTrigger = require("./useMenuTrigger.cjs");
13
+ const _renderMenuTrigger = require("./renderMenuTrigger.cjs");
14
14
  const MenuTrigger = (props)=>{
15
15
  const state = (0, _useMenuTrigger.useMenuTrigger_unstable)(props);
16
16
  return (0, _renderMenuTrigger.renderMenuTrigger_unstable)(state);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuTrigger/MenuTrigger.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { useMenuTrigger_unstable } from './useMenuTrigger';\nimport { renderMenuTrigger_unstable } from './renderMenuTrigger';\nimport type { MenuTriggerProps } from './MenuTrigger.types';\nimport type { FluentTriggerComponent } from '@fluentui/react-utilities';\n\n/**\n * Wraps a trigger element as an only child\n * and adds the necessary event handling to open a popup menu\n */\nexport const MenuTrigger: React.FC<MenuTriggerProps> = props => {\n const state = useMenuTrigger_unstable(props);\n\n return renderMenuTrigger_unstable(state);\n};\n\nMenuTrigger.displayName = 'MenuTrigger';\n// type casting here is required to ensure internal type FluentTriggerComponent is not leaked\n(MenuTrigger as FluentTriggerComponent).isFluentTriggerComponent = true;\n"],"names":["useMenuTrigger_unstable","renderMenuTrigger_unstable","MenuTrigger","props","state","displayName","isFluentTriggerComponent"],"mappings":"AAAA;;;;;;;;;;;gCAGwC,mBAAmB;mCAChB,sBAAsB;AAQ1D,MAAME,cAA0CC,CAAAA;IACrD,MAAMC,YAAQJ,uCAAAA,EAAwBG;IAEtC,WAAOF,6CAAAA,EAA2BG;AACpC,EAAE;AAEFF,YAAYG,WAAW,GAAG;AAC1B,6FAA6F;AAC5FH,YAAuCI,wBAAwB,GAAG"}
1
+ {"version":3,"sources":["../src/components/MenuTrigger/MenuTrigger.tsx"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { useMenuTrigger_unstable } from './useMenuTrigger';\nimport { renderMenuTrigger_unstable } from './renderMenuTrigger';\nimport type { MenuTriggerProps } from './MenuTrigger.types';\nimport type { FluentTriggerComponent } from '@fluentui/react-utilities';\n\n/**\n * Wraps a trigger element as an only child\n * and adds the necessary event handling to open a popup menu\n */\nexport const MenuTrigger: React.FC<MenuTriggerProps> = props => {\n const state = useMenuTrigger_unstable(props);\n\n return renderMenuTrigger_unstable(state);\n};\n\nMenuTrigger.displayName = 'MenuTrigger';\n// type casting here is required to ensure internal type FluentTriggerComponent is not leaked\n(MenuTrigger as FluentTriggerComponent).isFluentTriggerComponent = true;\n"],"names":["useMenuTrigger_unstable","renderMenuTrigger_unstable","MenuTrigger","props","state","displayName","isFluentTriggerComponent"],"mappings":"AAAA;;;;;;;;;;;gCAGwC,sBAAmB;mCAChB,yBAAsB;AAQ1D,MAAME,cAA0CC,CAAAA;IACrD,MAAMC,YAAQJ,uCAAAA,EAAwBG;IAEtC,WAAOF,6CAAAA,EAA2BG;AACpC,EAAE;AAEFF,YAAYG,WAAW,GAAG;AAC1B,6FAA6F;AAC5FH,YAAuCI,wBAAwB,GAAG"}
@@ -22,6 +22,6 @@ _export(exports, {
22
22
  return _useMenuTrigger.useMenuTrigger_unstable;
23
23
  }
24
24
  });
25
- const _MenuTrigger = require("./MenuTrigger");
26
- const _renderMenuTrigger = require("./renderMenuTrigger");
27
- const _useMenuTrigger = require("./useMenuTrigger");
25
+ const _MenuTrigger = require("./MenuTrigger.cjs");
26
+ const _renderMenuTrigger = require("./renderMenuTrigger.cjs");
27
+ const _useMenuTrigger = require("./useMenuTrigger.cjs");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuTrigger/index.ts"],"sourcesContent":["export { MenuTrigger } from './MenuTrigger';\nexport type {\n MenuTriggerChildProps,\n MenuTriggerBaseProps,\n MenuTriggerProps,\n MenuTriggerState,\n} from './MenuTrigger.types';\nexport { renderMenuTrigger_unstable } from './renderMenuTrigger';\nexport { useMenuTrigger_unstable, useMenuTriggerBase_unstable } from './useMenuTrigger';\n"],"names":["MenuTrigger","renderMenuTrigger_unstable","useMenuTrigger_unstable","useMenuTriggerBase_unstable"],"mappings":";;;;;;;;;;;;eAASA,wBAAW;;;eAOXC,6CAA0B;;;eACDE,2CAA2B;;;eAApDD,uCAAuB;;;6BARJ,gBAAgB;mCAOD,sBAAsB;gCACI,mBAAmB"}
1
+ {"version":3,"sources":["../src/components/MenuTrigger/index.ts"],"sourcesContent":["export { MenuTrigger } from './MenuTrigger';\nexport type {\n MenuTriggerChildProps,\n MenuTriggerBaseProps,\n MenuTriggerProps,\n MenuTriggerState,\n} from './MenuTrigger.types';\nexport { renderMenuTrigger_unstable } from './renderMenuTrigger';\nexport { useMenuTrigger_unstable, useMenuTriggerBase_unstable } from './useMenuTrigger';\n"],"names":["MenuTrigger","renderMenuTrigger_unstable","useMenuTrigger_unstable","useMenuTriggerBase_unstable"],"mappings":";;;;;;;;;;;;eAASA,wBAAW;;;eAOXC,6CAA0B;;;eACDE,2CAA2B;;;eAApDD,uCAAuB;;;6BARJ,mBAAgB;mCAOD,yBAAsB;gCACI,sBAAmB"}
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "renderMenuTrigger_unstable", {
10
10
  });
11
11
  const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
12
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
- const _menuTriggerContext = require("../../contexts/menuTriggerContext");
13
+ const _menuTriggerContext = require("../../contexts/menuTriggerContext.cjs");
14
14
  const renderMenuTrigger_unstable = (state)=>{
15
15
  return /*#__PURE__*/ _react.createElement(_menuTriggerContext.MenuTriggerContextProvider, {
16
16
  value: state.isSubmenu
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuTrigger/renderMenuTrigger.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MenuTriggerContextProvider } from '../../contexts/menuTriggerContext';\nimport type { MenuTriggerState } from './MenuTrigger.types';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\n/**\n * Render the final JSX of MenuTrigger\n *\n * Only renders children\n */\nexport const renderMenuTrigger_unstable = (state: MenuTriggerState): JSXElement => {\n return <MenuTriggerContextProvider value={state.isSubmenu}>{state.children}</MenuTriggerContextProvider>;\n};\n"],"names":["React","MenuTriggerContextProvider","renderMenuTrigger_unstable","state","value","isSubmenu","children"],"mappings":";;;;;;;;;;;iEAAuB,QAAQ;oCACY,oCAAoC;AASxE,MAAME,6BAA6B,CAACC;IACzC,OAAA,WAAA,GAAO,OAAA,aAAA,CAACF,8CAAAA,EAAAA;QAA2BG,OAAOD,MAAME,SAAS;OAAGF,MAAMG,QAAQ;AAC5E,EAAE"}
1
+ {"version":3,"sources":["../src/components/MenuTrigger/renderMenuTrigger.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MenuTriggerContextProvider } from '../../contexts/menuTriggerContext';\nimport type { MenuTriggerState } from './MenuTrigger.types';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\n/**\n * Render the final JSX of MenuTrigger\n *\n * Only renders children\n */\nexport const renderMenuTrigger_unstable = (state: MenuTriggerState): JSXElement => {\n return <MenuTriggerContextProvider value={state.isSubmenu}>{state.children}</MenuTriggerContextProvider>;\n};\n"],"names":["React","MenuTriggerContextProvider","renderMenuTrigger_unstable","state","value","isSubmenu","children"],"mappings":";;;;;;;;;;;iEAAuB,QAAQ;oCACY,uCAAoC;AASxE,MAAME,6BAA6B,CAACC;IACzC,OAAA,WAAA,GAAO,OAAA,aAAA,CAACF,8CAAAA,EAAAA;QAA2BG,OAAOD,MAAME,SAAS;OAAGF,MAAMG,QAAQ;AAC5E,EAAE"}
@@ -24,9 +24,9 @@ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
24
24
  const _reacttabster = require("@fluentui/react-tabster");
25
25
  const _reactutilities = require("@fluentui/react-utilities");
26
26
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
27
- const _menuContext = require("../../contexts/menuContext");
28
- const _menuListContext = require("../../contexts/menuListContext");
29
- const _utils = require("../../utils");
27
+ const _menuContext = require("../../contexts/menuContext.cjs");
28
+ const _menuListContext = require("../../contexts/menuListContext.cjs");
29
+ const _index = require("../../utils/index.cjs");
30
30
  function noop() {
31
31
  // does nothing
32
32
  }
@@ -53,7 +53,7 @@ const useMenuTriggerBase_unstable = (props)=>{
53
53
  const triggerId = (0, _menuContext.useMenuContext_unstable)((context)=>context.triggerId);
54
54
  const openOnHover = (0, _menuContext.useMenuContext_unstable)((context)=>context.openOnHover);
55
55
  const openOnContext = (0, _menuContext.useMenuContext_unstable)((context)=>context.openOnContext);
56
- const isSubmenu = (0, _utils.useIsSubmenu)();
56
+ const isSubmenu = (0, _index.useIsSubmenu)();
57
57
  const shouldOpenOnArrowRight = (0, _menuListContext.useMenuListContext_unstable)((ctx)=>{
58
58
  var _ctx_shouldOpenOnArrowRight;
59
59
  return (_ctx_shouldOpenOnArrowRight = ctx.shouldOpenOnArrowRight) !== null && _ctx_shouldOpenOnArrowRight !== void 0 ? _ctx_shouldOpenOnArrowRight : true;
@@ -68,7 +68,7 @@ const useMenuTriggerBase_unstable = (props)=>{
68
68
  //
69
69
  // Handles an edge case where mouse movement over the menu trigger didn't happen as safe zone blocked pointer events,
70
70
  // but the cursor is already over the menu trigger.
71
- const safeZoneHandlerRef = (0, _utils.useOnMenuSafeZoneTimeout)((0, _reactutilities.useEventCallback)(()=>{
71
+ const safeZoneHandlerRef = (0, _index.useOnMenuSafeZoneTimeout)((0, _reactutilities.useEventCallback)(()=>{
72
72
  if (isSubmenu) {
73
73
  openedViaSafeZoneRef.current = true;
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuTrigger/useMenuTrigger.ts"],"sourcesContent":["'use client';\n\nimport { useARIAButtonProps } from '@fluentui/react-aria';\nimport { ArrowRight, ArrowLeft, Escape, ArrowDown } from '@fluentui/keyboard-keys';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport {\n applyTriggerPropsToChildren,\n getTriggerChild,\n getReactElementRef,\n isHTMLElement,\n mergeCallbacks,\n useEventCallback,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { MenuTriggerBaseProps, MenuTriggerProps, MenuTriggerState } from './MenuTrigger.types';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useIsSubmenu, useOnMenuSafeZoneTimeout } from '../../utils';\n\nfunction noop() {\n // does nothing\n}\n\n/**\n * Create the state required to render MenuTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup menu.\n *\n * Composes with `useMenuTriggerBase_unstable` and supplies Tabster's `findFirstFocusable`\n * as the `focusFirst` callback so that submenu-trigger keyboard navigation honours\n * Tabster movers, focus traps, and other Tabster-managed state.\n *\n * @param props - props from this instance of MenuTrigger\n */\nexport const useMenuTrigger_unstable = (props: MenuTriggerProps): MenuTriggerState => {\n const menuPopoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n\n const { findFirstFocusable } = useFocusFinders();\n\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(menuPopoverRef.current);\n firstFocusable?.focus();\n }, [findFirstFocusable, menuPopoverRef]);\n\n return useMenuTriggerBase_unstable({ ...props, focusFirst });\n};\n\n/**\n * Options accepted by `useMenuTriggerBase_unstable`.\n */\n\n/**\n * Base hook for MenuTrigger component, produces state required to render the component.\n *\n * Headless: this hook does not import from `@fluentui/react-tabster` and does not\n * perform any focus discovery on its own. The submenu-already-open arrow-key path\n * delegates to the optional `options.focusFirst` callback, which lets consumers wire\n * up whichever focus-finding strategy fits their environment (Tabster, a native DOM\n * query, a virtual focus manager, etc.). When `focusFirst` is not provided that path\n * becomes a no-op.\n *\n * @public\n */\nexport const useMenuTriggerBase_unstable = (props: MenuTriggerBaseProps): MenuTriggerState => {\n const { children, disableButtonEnhancement = false, focusFirst } = props;\n\n const triggerRef = useMenuContext_unstable(context => context.triggerRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const openOnContext = useMenuContext_unstable(context => context.openOnContext);\n\n const isSubmenu = useIsSubmenu();\n const shouldOpenOnArrowRight = useMenuListContext_unstable(ctx => ctx.shouldOpenOnArrowRight ?? true);\n\n const openedWithKeyboardRef = React.useRef(false);\n const openedViaSafeZoneRef = React.useRef(false);\n const hasMouseMovedRef = React.useRef(false);\n\n const { dir } = useFluent();\n const OpenArrowKey = dir === 'ltr' ? ArrowRight : ArrowLeft;\n\n const child = getTriggerChild(children);\n\n // Heads up!\n //\n // Handles an edge case where mouse movement over the menu trigger didn't happen as safe zone blocked pointer events,\n // but the cursor is already over the menu trigger.\n const safeZoneHandlerRef = useOnMenuSafeZoneTimeout(\n useEventCallback(() => {\n if (isSubmenu) {\n openedViaSafeZoneRef.current = true;\n }\n }),\n );\n\n const onContextMenu = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event) || event.isDefaultPrevented()) {\n return;\n }\n\n if (openOnContext) {\n event.preventDefault();\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerContextMenu', event });\n }\n };\n\n const onClick = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (!openOnContext) {\n setOpen(event, { open: !open, keyboard: openedWithKeyboardRef.current, type: 'menuTriggerClick', event });\n openedWithKeyboardRef.current = false;\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event) || event.isDefaultPrevented()) {\n return;\n }\n\n const key = event.key;\n\n if (\n !openOnContext &&\n ((isSubmenu && shouldOpenOnArrowRight && key === OpenArrowKey) || (!isSubmenu && key === ArrowDown))\n ) {\n setOpen(event, { open: true, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n if (key === Escape && !isSubmenu) {\n setOpen(event, { open: false, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n // if menu is already open, can't rely on effects to focus\n if (open && key === OpenArrowKey && isSubmenu && shouldOpenOnArrowRight) {\n focusFirst?.();\n }\n };\n\n const onMouseOver = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (openOnHover) {\n if (hasMouseMovedRef.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseEnter', event });\n } else if (openedViaSafeZoneRef.current) {\n setOpen(event, { open: true, keyboard: false, ignoreHoverDelay: true, type: 'menuTriggerMouseEnter', event });\n openedViaSafeZoneRef.current = false;\n }\n }\n };\n\n // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience\n // First time open the mouse using mousemove and then continue with mouseenter\n // Only use once to determine that the user is using the mouse since it is an expensive event to handle\n const onMouseMove = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && !hasMouseMovedRef.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseMove', event });\n hasMouseMovedRef.current = true;\n }\n };\n\n const onMouseLeave = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover) {\n setOpen(event, { open: false, keyboard: false, type: 'menuTriggerMouseLeave', event });\n }\n };\n\n const contextMenuProps = {\n id: triggerId,\n ...child?.props,\n ref: useMergedRefs(triggerRef, getReactElementRef(child), safeZoneHandlerRef),\n onMouseEnter: useEventCallback(child?.props.onMouseEnter ?? noop),\n onMouseLeave: useEventCallback(mergeCallbacks(child?.props.onMouseLeave, onMouseLeave)),\n onContextMenu: useEventCallback(mergeCallbacks(child?.props.onContextMenu, onContextMenu)),\n // eslint-disable-next-line react-hooks/refs\n onMouseMove: useEventCallback(mergeCallbacks(child?.props.onMouseMove, onMouseMove)),\n // eslint-disable-next-line react-hooks/refs\n onMouseOver: useEventCallback(mergeCallbacks(child?.props.onMouseOver, onMouseOver)),\n };\n\n const triggerChildProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': !open && !isSubmenu ? undefined : open,\n ...contextMenuProps,\n // eslint-disable-next-line react-hooks/refs\n onClick: useEventCallback(mergeCallbacks(child?.props.onClick, onClick)),\n // eslint-disable-next-line react-hooks/refs\n onKeyDown: useEventCallback(mergeCallbacks(child?.props.onKeyDown, onKeyDown)),\n } as const;\n\n const ariaButtonTriggerChildProps = useARIAButtonProps(\n child?.type === 'button' || child?.type === 'a' ? child.type : 'div',\n triggerChildProps,\n );\n\n return {\n isSubmenu,\n children: applyTriggerPropsToChildren(\n children,\n openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps,\n ),\n };\n};\n\nconst isTargetDisabled = (event: React.SyntheticEvent | Event) => {\n const isDisabled = (el: HTMLElement) =>\n el.hasAttribute('disabled') || (el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true');\n if (isHTMLElement(event.target) && isDisabled(event.target)) {\n return true;\n }\n\n return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);\n};\n"],"names":["useARIAButtonProps","ArrowRight","ArrowLeft","Escape","ArrowDown","useFluent_unstable","useFluent","useFocusFinders","applyTriggerPropsToChildren","getTriggerChild","getReactElementRef","isHTMLElement","mergeCallbacks","useEventCallback","useMergedRefs","React","useMenuContext_unstable","useMenuListContext_unstable","useIsSubmenu","useOnMenuSafeZoneTimeout","noop","useMenuTrigger_unstable","props","menuPopoverRef","context","findFirstFocusable","focusFirst","useCallback","firstFocusable","current","focus","useMenuTriggerBase_unstable","children","disableButtonEnhancement","triggerRef","setOpen","open","triggerId","openOnHover","openOnContext","isSubmenu","shouldOpenOnArrowRight","ctx","openedWithKeyboardRef","useRef","openedViaSafeZoneRef","hasMouseMovedRef","dir","OpenArrowKey","child","safeZoneHandlerRef","onContextMenu","event","isTargetDisabled","isDefaultPrevented","preventDefault","keyboard","type","onClick","onKeyDown","key","onMouseOver","ignoreHoverDelay","onMouseMove","onMouseLeave","contextMenuProps","id","ref","onMouseEnter","triggerChildProps","undefined","ariaButtonTriggerChildProps","isDisabled","el","hasAttribute","getAttribute","target","currentTarget"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/MenuTrigger/useMenuTrigger.ts"],"sourcesContent":["'use client';\n\nimport { useARIAButtonProps } from '@fluentui/react-aria';\nimport { ArrowRight, ArrowLeft, Escape, ArrowDown } from '@fluentui/keyboard-keys';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport {\n applyTriggerPropsToChildren,\n getTriggerChild,\n getReactElementRef,\n isHTMLElement,\n mergeCallbacks,\n useEventCallback,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { MenuTriggerBaseProps, MenuTriggerProps, MenuTriggerState } from './MenuTrigger.types';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useIsSubmenu, useOnMenuSafeZoneTimeout } from '../../utils';\n\nfunction noop() {\n // does nothing\n}\n\n/**\n * Create the state required to render MenuTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup menu.\n *\n * Composes with `useMenuTriggerBase_unstable` and supplies Tabster's `findFirstFocusable`\n * as the `focusFirst` callback so that submenu-trigger keyboard navigation honours\n * Tabster movers, focus traps, and other Tabster-managed state.\n *\n * @param props - props from this instance of MenuTrigger\n */\nexport const useMenuTrigger_unstable = (props: MenuTriggerProps): MenuTriggerState => {\n const menuPopoverRef = useMenuContext_unstable(context => context.menuPopoverRef);\n\n const { findFirstFocusable } = useFocusFinders();\n\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(menuPopoverRef.current);\n firstFocusable?.focus();\n }, [findFirstFocusable, menuPopoverRef]);\n\n return useMenuTriggerBase_unstable({ ...props, focusFirst });\n};\n\n/**\n * Options accepted by `useMenuTriggerBase_unstable`.\n */\n\n/**\n * Base hook for MenuTrigger component, produces state required to render the component.\n *\n * Headless: this hook does not import from `@fluentui/react-tabster` and does not\n * perform any focus discovery on its own. The submenu-already-open arrow-key path\n * delegates to the optional `options.focusFirst` callback, which lets consumers wire\n * up whichever focus-finding strategy fits their environment (Tabster, a native DOM\n * query, a virtual focus manager, etc.). When `focusFirst` is not provided that path\n * becomes a no-op.\n *\n * @public\n */\nexport const useMenuTriggerBase_unstable = (props: MenuTriggerBaseProps): MenuTriggerState => {\n const { children, disableButtonEnhancement = false, focusFirst } = props;\n\n const triggerRef = useMenuContext_unstable(context => context.triggerRef);\n const setOpen = useMenuContext_unstable(context => context.setOpen);\n const open = useMenuContext_unstable(context => context.open);\n const triggerId = useMenuContext_unstable(context => context.triggerId);\n const openOnHover = useMenuContext_unstable(context => context.openOnHover);\n const openOnContext = useMenuContext_unstable(context => context.openOnContext);\n\n const isSubmenu = useIsSubmenu();\n const shouldOpenOnArrowRight = useMenuListContext_unstable(ctx => ctx.shouldOpenOnArrowRight ?? true);\n\n const openedWithKeyboardRef = React.useRef(false);\n const openedViaSafeZoneRef = React.useRef(false);\n const hasMouseMovedRef = React.useRef(false);\n\n const { dir } = useFluent();\n const OpenArrowKey = dir === 'ltr' ? ArrowRight : ArrowLeft;\n\n const child = getTriggerChild(children);\n\n // Heads up!\n //\n // Handles an edge case where mouse movement over the menu trigger didn't happen as safe zone blocked pointer events,\n // but the cursor is already over the menu trigger.\n const safeZoneHandlerRef = useOnMenuSafeZoneTimeout(\n useEventCallback(() => {\n if (isSubmenu) {\n openedViaSafeZoneRef.current = true;\n }\n }),\n );\n\n const onContextMenu = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event) || event.isDefaultPrevented()) {\n return;\n }\n\n if (openOnContext) {\n event.preventDefault();\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerContextMenu', event });\n }\n };\n\n const onClick = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (!openOnContext) {\n setOpen(event, { open: !open, keyboard: openedWithKeyboardRef.current, type: 'menuTriggerClick', event });\n openedWithKeyboardRef.current = false;\n }\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event) || event.isDefaultPrevented()) {\n return;\n }\n\n const key = event.key;\n\n if (\n !openOnContext &&\n ((isSubmenu && shouldOpenOnArrowRight && key === OpenArrowKey) || (!isSubmenu && key === ArrowDown))\n ) {\n setOpen(event, { open: true, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n if (key === Escape && !isSubmenu) {\n setOpen(event, { open: false, keyboard: true, type: 'menuTriggerKeyDown', event });\n }\n\n // if menu is already open, can't rely on effects to focus\n if (open && key === OpenArrowKey && isSubmenu && shouldOpenOnArrowRight) {\n focusFirst?.();\n }\n };\n\n const onMouseOver = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n\n if (openOnHover) {\n if (hasMouseMovedRef.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseEnter', event });\n } else if (openedViaSafeZoneRef.current) {\n setOpen(event, { open: true, keyboard: false, ignoreHoverDelay: true, type: 'menuTriggerMouseEnter', event });\n openedViaSafeZoneRef.current = false;\n }\n }\n };\n\n // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience\n // First time open the mouse using mousemove and then continue with mouseenter\n // Only use once to determine that the user is using the mouse since it is an expensive event to handle\n const onMouseMove = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && !hasMouseMovedRef.current) {\n setOpen(event, { open: true, keyboard: false, type: 'menuTriggerMouseMove', event });\n hasMouseMovedRef.current = true;\n }\n };\n\n const onMouseLeave = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement & HTMLDivElement>) => {\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover) {\n setOpen(event, { open: false, keyboard: false, type: 'menuTriggerMouseLeave', event });\n }\n };\n\n const contextMenuProps = {\n id: triggerId,\n ...child?.props,\n ref: useMergedRefs(triggerRef, getReactElementRef(child), safeZoneHandlerRef),\n onMouseEnter: useEventCallback(child?.props.onMouseEnter ?? noop),\n onMouseLeave: useEventCallback(mergeCallbacks(child?.props.onMouseLeave, onMouseLeave)),\n onContextMenu: useEventCallback(mergeCallbacks(child?.props.onContextMenu, onContextMenu)),\n // eslint-disable-next-line react-hooks/refs\n onMouseMove: useEventCallback(mergeCallbacks(child?.props.onMouseMove, onMouseMove)),\n // eslint-disable-next-line react-hooks/refs\n onMouseOver: useEventCallback(mergeCallbacks(child?.props.onMouseOver, onMouseOver)),\n };\n\n const triggerChildProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': !open && !isSubmenu ? undefined : open,\n ...contextMenuProps,\n // eslint-disable-next-line react-hooks/refs\n onClick: useEventCallback(mergeCallbacks(child?.props.onClick, onClick)),\n // eslint-disable-next-line react-hooks/refs\n onKeyDown: useEventCallback(mergeCallbacks(child?.props.onKeyDown, onKeyDown)),\n } as const;\n\n const ariaButtonTriggerChildProps = useARIAButtonProps(\n child?.type === 'button' || child?.type === 'a' ? child.type : 'div',\n triggerChildProps,\n );\n\n return {\n isSubmenu,\n children: applyTriggerPropsToChildren(\n children,\n openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps,\n ),\n };\n};\n\nconst isTargetDisabled = (event: React.SyntheticEvent | Event) => {\n const isDisabled = (el: HTMLElement) =>\n el.hasAttribute('disabled') || (el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true');\n if (isHTMLElement(event.target) && isDisabled(event.target)) {\n return true;\n }\n\n return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);\n};\n"],"names":["useARIAButtonProps","ArrowRight","ArrowLeft","Escape","ArrowDown","useFluent_unstable","useFluent","useFocusFinders","applyTriggerPropsToChildren","getTriggerChild","getReactElementRef","isHTMLElement","mergeCallbacks","useEventCallback","useMergedRefs","React","useMenuContext_unstable","useMenuListContext_unstable","useIsSubmenu","useOnMenuSafeZoneTimeout","noop","useMenuTrigger_unstable","props","menuPopoverRef","context","findFirstFocusable","focusFirst","useCallback","firstFocusable","current","focus","useMenuTriggerBase_unstable","children","disableButtonEnhancement","triggerRef","setOpen","open","triggerId","openOnHover","openOnContext","isSubmenu","shouldOpenOnArrowRight","ctx","openedWithKeyboardRef","useRef","openedViaSafeZoneRef","hasMouseMovedRef","dir","OpenArrowKey","child","safeZoneHandlerRef","onContextMenu","event","isTargetDisabled","isDefaultPrevented","preventDefault","keyboard","type","onClick","onKeyDown","key","onMouseOver","ignoreHoverDelay","onMouseMove","onMouseLeave","contextMenuProps","id","ref","onMouseEnter","triggerChildProps","undefined","ariaButtonTriggerChildProps","isDisabled","el","hasAttribute","getAttribute","target","currentTarget"],"mappings":"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"}
@@ -43,5 +43,5 @@ _export(exports, {
43
43
  return _index1.useMenuList_unstable;
44
44
  }
45
45
  });
46
- const _index = require("./MenuItem/index");
47
- const _index1 = require("./MenuList/index");
46
+ const _index = require("./MenuItem/index.cjs");
47
+ const _index1 = require("./MenuList/index.cjs");