@fluentui-react-native/menu 1.4.28 → 1.4.30

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 (241) hide show
  1. package/CHANGELOG.json +79 -1
  2. package/CHANGELOG.md +26 -2
  3. package/SPEC.md +46 -0
  4. package/lib/Menu/Menu.d.ts +4 -0
  5. package/lib/Menu/Menu.d.ts.map +1 -0
  6. package/lib/Menu/Menu.js +35 -0
  7. package/lib/Menu/Menu.js.map +1 -0
  8. package/lib/Menu/Menu.types.d.ts +40 -0
  9. package/lib/Menu/Menu.types.d.ts.map +1 -0
  10. package/lib/Menu/Menu.types.js +2 -0
  11. package/lib/Menu/Menu.types.js.map +1 -0
  12. package/lib/Menu/index.d.ts +6 -0
  13. package/lib/Menu/index.d.ts.map +1 -0
  14. package/lib/Menu/index.js +5 -0
  15. package/lib/Menu/index.js.map +1 -0
  16. package/lib/Menu/useMenu.d.ts +3 -0
  17. package/lib/Menu/useMenu.d.ts.map +1 -0
  18. package/lib/Menu/useMenu.js +76 -0
  19. package/lib/Menu/useMenu.js.map +1 -0
  20. package/lib/Menu/useMenuContextValue.d.ts +4 -0
  21. package/lib/Menu/useMenuContextValue.d.ts.map +1 -0
  22. package/lib/Menu/useMenuContextValue.js +8 -0
  23. package/lib/Menu/useMenuContextValue.js.map +1 -0
  24. package/lib/MenuDivider/MenuDivider.d.ts +2 -0
  25. package/lib/MenuDivider/MenuDivider.d.ts.map +1 -0
  26. package/lib/MenuDivider/MenuDivider.js +15 -0
  27. package/lib/MenuDivider/MenuDivider.js.map +1 -0
  28. package/lib/MenuDivider/MenuDivider.styling.d.ts +4 -0
  29. package/lib/MenuDivider/MenuDivider.styling.d.ts.map +1 -0
  30. package/lib/MenuDivider/MenuDivider.styling.js +19 -0
  31. package/lib/MenuDivider/MenuDivider.styling.js.map +1 -0
  32. package/lib/MenuDivider/MenuDivider.types.d.ts +21 -0
  33. package/lib/MenuDivider/MenuDivider.types.d.ts.map +1 -0
  34. package/lib/MenuDivider/MenuDivider.types.js +2 -0
  35. package/lib/MenuDivider/MenuDivider.types.js.map +1 -0
  36. package/lib/MenuDivider/MenuDividerTokens.d.ts +5 -0
  37. package/lib/MenuDivider/MenuDividerTokens.d.ts.map +1 -0
  38. package/lib/MenuDivider/MenuDividerTokens.js +7 -0
  39. package/lib/MenuDivider/MenuDividerTokens.js.map +1 -0
  40. package/lib/MenuDivider/MenuDividerTokens.macos.d.ts +5 -0
  41. package/lib/MenuDivider/MenuDividerTokens.macos.d.ts.map +1 -0
  42. package/lib/MenuDivider/MenuDividerTokens.macos.js +7 -0
  43. package/lib/MenuDivider/MenuDividerTokens.macos.js.map +1 -0
  44. package/lib/MenuDivider/MenuDividerTokens.win32.d.ts +5 -0
  45. package/lib/MenuDivider/MenuDividerTokens.win32.d.ts.map +1 -0
  46. package/lib/MenuDivider/MenuDividerTokens.win32.js +7 -0
  47. package/lib/MenuDivider/MenuDividerTokens.win32.js.map +1 -0
  48. package/lib/MenuDivider/index.d.ts +4 -0
  49. package/lib/MenuDivider/index.d.ts.map +1 -0
  50. package/lib/MenuDivider/index.js +3 -0
  51. package/lib/MenuDivider/index.js.map +1 -0
  52. package/lib/MenuItem/MenuItem.d.ts +7 -0
  53. package/lib/MenuItem/MenuItem.d.ts.map +1 -0
  54. package/lib/MenuItem/MenuItem.js +58 -0
  55. package/lib/MenuItem/MenuItem.js.map +1 -0
  56. package/lib/MenuItem/MenuItem.styling.d.ts +5 -0
  57. package/lib/MenuItem/MenuItem.styling.d.ts.map +1 -0
  58. package/lib/MenuItem/MenuItem.styling.js +50 -0
  59. package/lib/MenuItem/MenuItem.styling.js.map +1 -0
  60. package/lib/MenuItem/MenuItem.types.d.ts +98 -0
  61. package/lib/MenuItem/MenuItem.types.d.ts.map +1 -0
  62. package/lib/MenuItem/MenuItem.types.js +2 -0
  63. package/lib/MenuItem/MenuItem.types.js.map +1 -0
  64. package/lib/MenuItem/MenuItemTokens.d.ts +5 -0
  65. package/lib/MenuItem/MenuItemTokens.d.ts.map +1 -0
  66. package/lib/MenuItem/MenuItemTokens.js +39 -0
  67. package/lib/MenuItem/MenuItemTokens.js.map +1 -0
  68. package/lib/MenuItem/MenuItemTokens.macos.d.ts +5 -0
  69. package/lib/MenuItem/MenuItemTokens.macos.d.ts.map +1 -0
  70. package/lib/MenuItem/MenuItemTokens.macos.js +34 -0
  71. package/lib/MenuItem/MenuItemTokens.macos.js.map +1 -0
  72. package/lib/MenuItem/MenuItemTokens.win32.d.ts +5 -0
  73. package/lib/MenuItem/MenuItemTokens.win32.d.ts.map +1 -0
  74. package/lib/MenuItem/MenuItemTokens.win32.js +40 -0
  75. package/lib/MenuItem/MenuItemTokens.win32.js.map +1 -0
  76. package/lib/MenuItem/index.d.ts +5 -0
  77. package/lib/MenuItem/index.d.ts.map +1 -0
  78. package/lib/MenuItem/index.js +4 -0
  79. package/lib/MenuItem/index.js.map +1 -0
  80. package/lib/MenuItem/useMenuItem.d.ts +7 -0
  81. package/lib/MenuItem/useMenuItem.d.ts.map +1 -0
  82. package/lib/MenuItem/useMenuItem.js +74 -0
  83. package/lib/MenuItem/useMenuItem.js.map +1 -0
  84. package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +7 -0
  85. package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -0
  86. package/lib/MenuItemCheckbox/MenuItemCheckbox.js +37 -0
  87. package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
  88. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +5 -0
  89. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts.map +1 -0
  90. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js +40 -0
  91. package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -0
  92. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +66 -0
  93. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -0
  94. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js +2 -0
  95. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
  96. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +5 -0
  97. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts.map +1 -0
  98. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js +51 -0
  99. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -0
  100. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts +5 -0
  101. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts.map +1 -0
  102. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +49 -0
  103. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -0
  104. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +5 -0
  105. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts.map +1 -0
  106. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +52 -0
  107. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -0
  108. package/lib/MenuItemCheckbox/index.d.ts +5 -0
  109. package/lib/MenuItemCheckbox/index.d.ts.map +1 -0
  110. package/lib/MenuItemCheckbox/index.js +4 -0
  111. package/lib/MenuItemCheckbox/index.js.map +1 -0
  112. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +13 -0
  113. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -0
  114. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +85 -0
  115. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
  116. package/lib/MenuItemRadio/MenuItemRadio.d.ts +4 -0
  117. package/lib/MenuItemRadio/MenuItemRadio.d.ts.map +1 -0
  118. package/lib/MenuItemRadio/MenuItemRadio.js +12 -0
  119. package/lib/MenuItemRadio/MenuItemRadio.js.map +1 -0
  120. package/lib/MenuItemRadio/index.d.ts +3 -0
  121. package/lib/MenuItemRadio/index.d.ts.map +1 -0
  122. package/lib/MenuItemRadio/index.js +3 -0
  123. package/lib/MenuItemRadio/index.js.map +1 -0
  124. package/lib/MenuItemRadio/useMenuItemRadio.d.ts +3 -0
  125. package/lib/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -0
  126. package/lib/MenuItemRadio/useMenuItemRadio.js +30 -0
  127. package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -0
  128. package/lib/MenuList/MenuList.d.ts +4 -0
  129. package/lib/MenuList/MenuList.d.ts.map +1 -0
  130. package/lib/MenuList/MenuList.js +68 -0
  131. package/lib/MenuList/MenuList.js.map +1 -0
  132. package/lib/MenuList/MenuList.styling.d.ts +5 -0
  133. package/lib/MenuList/MenuList.styling.d.ts.map +1 -0
  134. package/lib/MenuList/MenuList.styling.js +17 -0
  135. package/lib/MenuList/MenuList.styling.js.map +1 -0
  136. package/lib/MenuList/MenuList.types.d.ts +77 -0
  137. package/lib/MenuList/MenuList.types.d.ts.map +1 -0
  138. package/lib/MenuList/MenuList.types.js +2 -0
  139. package/lib/MenuList/MenuList.types.js.map +1 -0
  140. package/lib/MenuList/MenuListTokens.d.ts +5 -0
  141. package/lib/MenuList/MenuListTokens.d.ts.map +1 -0
  142. package/lib/MenuList/MenuListTokens.js +9 -0
  143. package/lib/MenuList/MenuListTokens.js.map +1 -0
  144. package/lib/MenuList/MenuListTokens.macos.d.ts +5 -0
  145. package/lib/MenuList/MenuListTokens.macos.d.ts.map +1 -0
  146. package/lib/MenuList/MenuListTokens.macos.js +7 -0
  147. package/lib/MenuList/MenuListTokens.macos.js.map +1 -0
  148. package/lib/MenuList/MenuListTokens.win32.d.ts +5 -0
  149. package/lib/MenuList/MenuListTokens.win32.d.ts.map +1 -0
  150. package/lib/MenuList/MenuListTokens.win32.js +12 -0
  151. package/lib/MenuList/MenuListTokens.win32.js.map +1 -0
  152. package/lib/MenuList/index.d.ts +6 -0
  153. package/lib/MenuList/index.d.ts.map +1 -0
  154. package/lib/MenuList/index.js +5 -0
  155. package/lib/MenuList/index.js.map +1 -0
  156. package/lib/MenuList/useMenuList.d.ts +3 -0
  157. package/lib/MenuList/useMenuList.d.ts.map +1 -0
  158. package/lib/MenuList/useMenuList.js +109 -0
  159. package/lib/MenuList/useMenuList.js.map +1 -0
  160. package/lib/MenuList/useMenuListContextValue.d.ts +4 -0
  161. package/lib/MenuList/useMenuListContextValue.d.ts.map +1 -0
  162. package/lib/MenuList/useMenuListContextValue.js +5 -0
  163. package/lib/MenuList/useMenuListContextValue.js.map +1 -0
  164. package/lib/MenuPopover/MenuPopover.d.ts +4 -0
  165. package/lib/MenuPopover/MenuPopover.d.ts.map +1 -0
  166. package/lib/MenuPopover/MenuPopover.js +44 -0
  167. package/lib/MenuPopover/MenuPopover.js.map +1 -0
  168. package/lib/MenuPopover/MenuPopover.types.d.ts +10 -0
  169. package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -0
  170. package/lib/MenuPopover/MenuPopover.types.js +2 -0
  171. package/lib/MenuPopover/MenuPopover.types.js.map +1 -0
  172. package/lib/MenuPopover/MenuPopoverTokens.d.ts +3 -0
  173. package/lib/MenuPopover/MenuPopoverTokens.d.ts.map +1 -0
  174. package/lib/MenuPopover/MenuPopoverTokens.js +4 -0
  175. package/lib/MenuPopover/MenuPopoverTokens.js.map +1 -0
  176. package/lib/MenuPopover/index.d.ts +5 -0
  177. package/lib/MenuPopover/index.d.ts.map +1 -0
  178. package/lib/MenuPopover/index.js +4 -0
  179. package/lib/MenuPopover/index.js.map +1 -0
  180. package/lib/MenuPopover/useMenuPopover.d.ts +3 -0
  181. package/lib/MenuPopover/useMenuPopover.d.ts.map +1 -0
  182. package/lib/MenuPopover/useMenuPopover.js +92 -0
  183. package/lib/MenuPopover/useMenuPopover.js.map +1 -0
  184. package/lib/MenuTrigger/MenuTrigger.d.ts +5 -0
  185. package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -0
  186. package/lib/MenuTrigger/MenuTrigger.js +20 -0
  187. package/lib/MenuTrigger/MenuTrigger.js.map +1 -0
  188. package/lib/MenuTrigger/MenuTrigger.types.d.ts +28 -0
  189. package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -0
  190. package/lib/MenuTrigger/MenuTrigger.types.js +2 -0
  191. package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -0
  192. package/lib/MenuTrigger/index.d.ts +5 -0
  193. package/lib/MenuTrigger/index.d.ts.map +1 -0
  194. package/lib/MenuTrigger/index.js +4 -0
  195. package/lib/MenuTrigger/index.js.map +1 -0
  196. package/lib/MenuTrigger/useMenuTrigger.d.ts +3 -0
  197. package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -0
  198. package/lib/MenuTrigger/useMenuTrigger.js +79 -0
  199. package/lib/MenuTrigger/useMenuTrigger.js.map +1 -0
  200. package/lib/MenuTrigger/useMergeRefs.d.ts +20 -0
  201. package/lib/MenuTrigger/useMergeRefs.d.ts.map +1 -0
  202. package/lib/MenuTrigger/useMergeRefs.js +36 -0
  203. package/lib/MenuTrigger/useMergeRefs.js.map +1 -0
  204. package/lib/__tests__/Menu.test.d.ts +2 -0
  205. package/lib/__tests__/Menu.test.d.ts.map +1 -0
  206. package/lib/__tests__/Menu.test.js +145 -0
  207. package/lib/__tests__/Menu.test.js.map +1 -0
  208. package/lib/consts.d.ts +2 -0
  209. package/lib/consts.d.ts.map +1 -0
  210. package/lib/consts.js +6 -0
  211. package/lib/consts.js.map +1 -0
  212. package/lib/context/index.d.ts +4 -0
  213. package/lib/context/index.d.ts.map +1 -0
  214. package/lib/context/index.js +4 -0
  215. package/lib/context/index.js.map +1 -0
  216. package/lib/context/menuContext.d.ts +16 -0
  217. package/lib/context/menuContext.d.ts.map +1 -0
  218. package/lib/context/menuContext.js +20 -0
  219. package/lib/context/menuContext.js.map +1 -0
  220. package/lib/context/menuListContext.d.ts +14 -0
  221. package/lib/context/menuListContext.d.ts.map +1 -0
  222. package/lib/context/menuListContext.js +15 -0
  223. package/lib/context/menuListContext.js.map +1 -0
  224. package/lib/context/menuTriggerContext.d.ts +9 -0
  225. package/lib/context/menuTriggerContext.d.ts.map +1 -0
  226. package/lib/context/menuTriggerContext.js +9 -0
  227. package/lib/context/menuTriggerContext.js.map +1 -0
  228. package/lib/index.d.ts +10 -0
  229. package/lib/index.d.ts.map +1 -0
  230. package/lib/index.js +10 -0
  231. package/lib/index.js.map +1 -0
  232. package/lib-commonjs/MenuItem/MenuItem.types.d.ts +12 -0
  233. package/lib-commonjs/MenuItem/MenuItem.types.d.ts.map +1 -1
  234. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +6 -0
  235. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
  236. package/lib-commonjs/MenuList/MenuList.types.d.ts +3 -0
  237. package/lib-commonjs/MenuList/MenuList.types.d.ts.map +1 -1
  238. package/package.json +9 -9
  239. package/src/MenuItem/MenuItem.types.ts +14 -0
  240. package/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +8 -0
  241. package/src/MenuList/MenuList.types.ts +4 -0
@@ -0,0 +1,92 @@
1
+ import React from 'react';
2
+ import { I18nManager, Platform } from 'react-native';
3
+ import { useMenuContext } from '../context/menuContext';
4
+ var controlledDismissBehaviors = ['preventDismissOnKeyDown', 'preventDismissOnClickOutside'];
5
+ var stopPropagationKeys = ['ArrowUp', 'ArrowDown', 'Tab', 'Home', 'End', 'Escape'];
6
+ export var useMenuPopover = function (props) {
7
+ var context = useMenuContext();
8
+ var setOpen = context.setOpen, triggerRef = context.triggerRef, isControlled = context.isControlled, isSubmenu = context.isSubmenu, openOnHover = context.openOnHover, parentPopoverHoverOutTimer = context.parentPopoverHoverOutTimer, popoverHoverOutTimer = context.popoverHoverOutTimer, setPopoverHoverOutTimer = context.setPopoverHoverOutTimer, shouldFocusOnContainer = context.shouldFocusOnContainer, triggerHoverOutTimer = context.triggerHoverOutTimer;
9
+ var onKeyDownProp = props.onKeyDown, onKeyUpProp = props.onKeyUp;
10
+ var onDismiss = React.useCallback(function () {
11
+ var _a;
12
+ (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props);
13
+ setOpen(undefined, false /* isOpen */), [setOpen];
14
+ }, [props.onDismiss, setOpen]);
15
+ var dismissBehaviors = isControlled ? controlledDismissBehaviors : undefined;
16
+ var directionalHint = getDirectionalHint(isSubmenu, I18nManager.isRTL);
17
+ // Initial focus behavior differs per platform, Windows platforms move focus
18
+ // automatically onto first element of Callout
19
+ var setInitialFocus = Platform.OS === 'win32' || Platform.OS === 'windows';
20
+ var doNotTakePointerCapture = openOnHover;
21
+ var accessibilityRole = 'menu';
22
+ var onMouseEnter = React.useCallback(function () {
23
+ clearTimeout(triggerHoverOutTimer);
24
+ clearTimeout(popoverHoverOutTimer);
25
+ clearTimeout(parentPopoverHoverOutTimer);
26
+ }, [parentPopoverHoverOutTimer, popoverHoverOutTimer, triggerHoverOutTimer]);
27
+ var onMouseLeave = React.useCallback(function () {
28
+ if (!openOnHover) {
29
+ return;
30
+ }
31
+ var timer = setTimeout(function () {
32
+ setOpen(undefined, false /* isOpen */);
33
+ }, 500);
34
+ setPopoverHoverOutTimer(timer);
35
+ }, [openOnHover, setOpen, setPopoverHoverOutTimer]);
36
+ var onKeyDown = React.useCallback(function (e) {
37
+ onKeyDownProp && onKeyDownProp(e);
38
+ // Mark key events that move selection as handled.
39
+ // These key events are handled on the native side.
40
+ if (stopPropagationKeys.includes(e.nativeEvent.key)) {
41
+ e.stopPropagation();
42
+ }
43
+ }, [onKeyDownProp]);
44
+ var onKeyUp = React.useCallback(function (e) {
45
+ onKeyUpProp && onKeyUpProp(e);
46
+ // Mark key events that move selection as handled.
47
+ // These key events are handled on the native side.
48
+ if (stopPropagationKeys.includes(e.nativeEvent.key)) {
49
+ e.stopPropagation();
50
+ }
51
+ }, [onKeyUpProp]);
52
+ var _a = React.useState(shouldFocusOnContainer), canFocusOnPopover = _a[0], setCanFocusOnPopover = _a[1];
53
+ var onBlur = React.useCallback(function () {
54
+ setCanFocusOnPopover(false);
55
+ }, [setCanFocusOnPopover]);
56
+ React.useEffect(function () {
57
+ return function cleanup() {
58
+ clearTimeout(popoverHoverOutTimer);
59
+ };
60
+ });
61
+ return {
62
+ props: {
63
+ accessibilityRole: accessibilityRole,
64
+ target: triggerRef,
65
+ onDismiss: onDismiss,
66
+ onShow: props.onShow,
67
+ directionalHint: directionalHint,
68
+ dismissBehaviors: dismissBehaviors,
69
+ doNotTakePointerCapture: doNotTakePointerCapture,
70
+ setInitialFocus: setInitialFocus,
71
+ },
72
+ innerView: {
73
+ onMouseEnter: onMouseEnter,
74
+ onMouseLeave: onMouseLeave,
75
+ onKeyDown: onKeyDown,
76
+ onKeyUp: onKeyUp,
77
+ accessible: shouldFocusOnContainer,
78
+ focusable: canFocusOnPopover,
79
+ onBlur: onBlur,
80
+ },
81
+ };
82
+ };
83
+ var getDirectionalHint = function (isSubmenu, isRtl) {
84
+ if (!isSubmenu) {
85
+ return undefined;
86
+ }
87
+ if (isRtl) {
88
+ return 'leftTopEdge';
89
+ }
90
+ return 'rightTopEdge';
91
+ };
92
+ //# sourceMappingURL=useMenuPopover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import type { MenuTriggerProps } from './MenuTrigger.types';
3
+ export declare const MenuTrigger: React.FunctionComponent<MenuTriggerProps>;
4
+ export default MenuTrigger;
5
+ //# sourceMappingURL=MenuTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAejE,CAAC;AAGF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { menuTriggerName } from './MenuTrigger.types';
3
+ import { useMenuTrigger } from './useMenuTrigger';
4
+ import { MenuTriggerProvider } from '../context/menuTriggerContext';
5
+ export var MenuTrigger = function (props) {
6
+ if (__DEV__) {
7
+ if (!React.Children.only(props.children)) {
8
+ console.warn('Only expecting one child for MenuTrigger');
9
+ }
10
+ }
11
+ var menuTrigger = useMenuTrigger(props.children.props);
12
+ // In order to properly support accessibility without erasing props set on the
13
+ // child component which may affect accessibility, we need to modify the
14
+ // state in the inner render so we can access the child component and its props.
15
+ var revised = React.cloneElement(props.children, menuTrigger.props);
16
+ return React.createElement(MenuTriggerProvider, { value: menuTrigger.hasSubmenu }, revised);
17
+ };
18
+ MenuTrigger.displayName = menuTriggerName;
19
+ export default MenuTrigger;
20
+ //# sourceMappingURL=MenuTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,CAAC,IAAM,WAAW,GAA8C,UAAC,KAAuB;IAC5F,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACxC,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;SAC1D;KACF;IAED,IAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEzD,8EAA8E;IAC9E,wEAAwE;IACxE,gFAAgF;IAChF,IAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO,oBAAC,mBAAmB,IAAC,KAAK,EAAE,WAAW,CAAC,UAAU,IAAG,OAAO,CAAuB,CAAC;AAC7F,CAAC,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAe,WAAW,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type * as React from 'react';
2
+ import type { InteractionEvent, PressablePropsExtended } from '@fluentui-react-native/interactive-hooks';
3
+ export declare const menuTriggerName = "MenuTrigger";
4
+ /**
5
+ * Represents single react element (or null), which is the
6
+ * type of the child of MenuTrigger. Notably this excludes string, number,
7
+ * and array of elements as children, which MenuTrigger doesn't support.
8
+ */
9
+ type SingleReactElement = React.ReactElement | null;
10
+ export interface MenuTriggerProps {
11
+ children?: SingleReactElement;
12
+ }
13
+ export interface MenuTriggerChildProps extends Omit<PressablePropsExtended, 'onPress'> {
14
+ /**
15
+ * A RefObject to refer to the trigger component.
16
+ */
17
+ componentRef?: React.RefObject<React.Component>;
18
+ /**
19
+ * A callback to call on button click event
20
+ */
21
+ onClick?: (e: InteractionEvent) => void;
22
+ }
23
+ export interface MenuTriggerState {
24
+ props: MenuTriggerChildProps;
25
+ hasSubmenu: boolean;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=MenuTrigger.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuTrigger.types.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAEzG,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,KAAK,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC;IACpF;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEhD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export var menuTriggerName = 'MenuTrigger';
2
+ //# sourceMappingURL=MenuTrigger.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuTrigger.types.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,IAAM,eAAe,GAAG,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { MenuTrigger } from './MenuTrigger';
2
+ export { menuTriggerName } from './MenuTrigger.types';
3
+ export type { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
4
+ export { useMenuTrigger } from './useMenuTrigger';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { MenuTrigger } from './MenuTrigger';
2
+ export { menuTriggerName } from './MenuTrigger.types';
3
+ export { useMenuTrigger } from './useMenuTrigger';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MenuTrigger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
2
+ export declare const useMenuTrigger: (childProps: MenuTriggerChildProps) => MenuTriggerState;
3
+ //# sourceMappingURL=useMenuTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUnF,eAAO,MAAM,cAAc,eAAgB,qBAAqB,KAAG,gBAgHlE,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { __assign, __spreadArray } from "tslib";
2
+ import React from 'react';
3
+ import { Platform } from 'react-native';
4
+ import { useMergedRefs } from './useMergeRefs';
5
+ import { hoverDelayDefault } from '../consts';
6
+ import { useMenuContext } from '../context/menuContext';
7
+ var baseAccessibilityActions = Platform.OS === 'win32' ? [{ name: 'Expand' }, { name: 'Collapse' }] : [];
8
+ var expandedState = { expanded: true };
9
+ var collapsedState = { expanded: false };
10
+ export var useMenuTrigger = function (childProps) {
11
+ var context = useMenuContext();
12
+ var _a = context.hoverDelay, hoverDelay = _a === void 0 ? hoverDelayDefault : _a, open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
13
+ var childAccessibilityActions = childProps.accessibilityActions, childAccessibilityState = childProps.accessibilityState, childOnAccessibilityAction = childProps.onAccessibilityAction, childOnClick = childProps.onClick, childOnHoverIn = childProps.onHoverIn, childOnHoverOut = childProps.onHoverOut, childComponentRef = childProps.componentRef;
14
+ var accessibilityActions = React.useMemo(function () {
15
+ if (childAccessibilityActions) {
16
+ return __spreadArray(__spreadArray([], baseAccessibilityActions, true), childAccessibilityActions, true);
17
+ }
18
+ return baseAccessibilityActions;
19
+ }, [childAccessibilityActions]);
20
+ var accessibilityState = React.useMemo(function () {
21
+ var baseState = open ? expandedState : collapsedState;
22
+ if (childAccessibilityState) {
23
+ return __assign(__assign({}, baseState), childAccessibilityState);
24
+ }
25
+ return baseState;
26
+ }, [childAccessibilityState, open]);
27
+ var onAccessibilityAction = React.useCallback(function (e) {
28
+ if (Platform.OS === 'win32') {
29
+ switch (e.nativeEvent.actionName) {
30
+ case 'Expand':
31
+ setOpen(e, true /* isOpen */);
32
+ break;
33
+ case 'Collapse':
34
+ setOpen(e, false /* isOpen */);
35
+ break;
36
+ }
37
+ }
38
+ childOnAccessibilityAction && childOnAccessibilityAction(e);
39
+ }, [childOnAccessibilityAction, setOpen]);
40
+ var onHoverIn = React.useCallback(function (e) {
41
+ if (openOnHover) {
42
+ clearTimeout(popoverHoverOutTimer);
43
+ clearTimeout(triggerHoverOutTimer);
44
+ e.persist();
45
+ setTimeout(function () {
46
+ setOpen(e, true /* isOpen */);
47
+ }, hoverDelay);
48
+ }
49
+ childOnHoverIn && childOnHoverIn(e);
50
+ }, [childOnHoverIn, hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
51
+ var onHoverOut = React.useCallback(function (e) {
52
+ if (openOnHover) {
53
+ e.persist();
54
+ var timer = setTimeout(function () {
55
+ setOpen(e, false /* isOpen */);
56
+ }, hoverDelay);
57
+ setTriggerHoverOutTimer(timer);
58
+ }
59
+ childOnHoverOut && childOnHoverOut(e);
60
+ }, [childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
61
+ var onClick = React.useCallback(function (e) {
62
+ setOpen(e, !open);
63
+ childOnClick && childOnClick(e);
64
+ }, [childOnClick, open, setOpen]);
65
+ var ref = useMergedRefs(triggerRef, childComponentRef);
66
+ return {
67
+ props: {
68
+ onClick: onClick,
69
+ onHoverIn: onHoverIn,
70
+ onHoverOut: onHoverOut,
71
+ componentRef: ref,
72
+ accessibilityState: accessibilityState,
73
+ accessibilityActions: accessibilityActions,
74
+ onAccessibilityAction: onAccessibilityAction,
75
+ },
76
+ hasSubmenu: context.isSubmenu,
77
+ };
78
+ };
79
+ //# sourceMappingURL=useMenuTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copied from @fluentui/react-utilities
3
+ *
4
+ * Keeping the file local to Menu for now while looking into whether
5
+ * we can pull in @fluentui/react-utilities package
6
+ */
7
+ import * as React from 'react';
8
+ /**
9
+ * A Ref function which can be treated like a ref object in that it has an attached
10
+ * current property, which will be updated as the ref is evaluated.
11
+ */
12
+ export type RefObjectFunction<T> = React.RefObject<T> & ((value: T) => void);
13
+ /**
14
+ * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
15
+ * updates all provided refs
16
+ * @param refs - Refs to collectively update with one ref value.
17
+ * @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
18
+ */
19
+ export declare function useMergedRefs<T>(...refs: (React.Ref<T> | undefined)[]): RefObjectFunction<T>;
20
+ //# sourceMappingURL=useMergeRefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMergeRefs.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAoB5F"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copied from @fluentui/react-utilities
3
+ *
4
+ * Keeping the file local to Menu for now while looking into whether
5
+ * we can pull in @fluentui/react-utilities package
6
+ */
7
+ import { __spreadArray } from "tslib";
8
+ import * as React from 'react';
9
+ /**
10
+ * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
11
+ * updates all provided refs
12
+ * @param refs - Refs to collectively update with one ref value.
13
+ * @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
14
+ */
15
+ export function useMergedRefs() {
16
+ var refs = [];
17
+ for (var _i = 0; _i < arguments.length; _i++) {
18
+ refs[_i] = arguments[_i];
19
+ }
20
+ var mergedCallback = React.useCallback(function (value) {
21
+ // Update the "current" prop hanging on the function.
22
+ mergedCallback.current = value;
23
+ for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {
24
+ var ref = refs_1[_i];
25
+ if (typeof ref === 'function') {
26
+ ref(value);
27
+ }
28
+ else if (ref) {
29
+ // work around the immutability of the React.Ref type
30
+ ref.current = value;
31
+ }
32
+ }
33
+ }, __spreadArray([], refs, true));
34
+ return mergedCallback;
35
+ }
36
+ //# sourceMappingURL=useMergeRefs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMergeRefs.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMergeRefs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAAI,cAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,yBAAqC;;IACpE,IAAM,cAAc,GAAyB,KAAK,CAAC,WAAW,CAC5D,UAAC,KAAQ;QACP,qDAAqD;QACpD,cAAuD,CAAC,OAAO,GAAG,KAAK,CAAC;QAEzE,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAnB,IAAM,GAAG,aAAA;YACZ,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,KAAK,CAAC,CAAC;aACZ;iBAAM,IAAI,GAAG,EAAE;gBACd,qDAAqD;gBACpD,GAA4C,CAAC,OAAO,GAAG,KAAK,CAAC;aAC/D;SACF;IACH,CAAC,oBAEG,IAAI,QAC0B,CAAC;IAErC,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Menu.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,145 @@
1
+ import * as React from 'react';
2
+ import { ButtonV1 as Button } from '@fluentui-react-native/button';
3
+ import { checkReRender } from '@fluentui-react-native/test-tools';
4
+ import * as renderer from 'react-test-renderer';
5
+ import { Menu } from '../Menu/Menu';
6
+ import { MenuDivider } from '../MenuDivider/MenuDivider';
7
+ import { MenuItem } from '../MenuItem/MenuItem';
8
+ import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
9
+ import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
10
+ import { MenuList } from '../MenuList/MenuList';
11
+ import MenuPopover from '../MenuPopover/MenuPopover';
12
+ import MenuTrigger from '../MenuTrigger/MenuTrigger';
13
+ describe('Menu component tests', function () {
14
+ it('Menu default', function () {
15
+ var tree = renderer
16
+ .create(React.createElement(Menu, null,
17
+ React.createElement(MenuTrigger, null,
18
+ React.createElement(Button, null, "Default")),
19
+ React.createElement(MenuPopover, null,
20
+ React.createElement(MenuList, null,
21
+ React.createElement(MenuItem, null, "Option 1")))))
22
+ .toJSON();
23
+ expect(tree).toMatchSnapshot();
24
+ });
25
+ it('Menu open', function () {
26
+ var tree = renderer
27
+ .create(React.createElement(Menu, { open: true },
28
+ React.createElement(MenuTrigger, null,
29
+ React.createElement(Button, null, "Open")),
30
+ React.createElement(MenuPopover, null,
31
+ React.createElement(MenuList, null,
32
+ React.createElement(MenuItem, null, "Option 1")))))
33
+ .toJSON();
34
+ expect(tree).toMatchSnapshot();
35
+ });
36
+ it('Menu defaultOpen', function () {
37
+ var tree = renderer
38
+ .create(React.createElement(Menu, { defaultOpen: true },
39
+ React.createElement(MenuTrigger, null,
40
+ React.createElement(Button, null, "Open")),
41
+ React.createElement(MenuPopover, null,
42
+ React.createElement(MenuList, null,
43
+ React.createElement(MenuItem, null, "Option 1"),
44
+ React.createElement(MenuItem, { disabled: true }, "Option 2")))))
45
+ .toJSON();
46
+ expect(tree).toMatchSnapshot();
47
+ });
48
+ it('Menu open checkbox and divider', function () {
49
+ var tree = renderer
50
+ .create(React.createElement(Menu, { open: true },
51
+ React.createElement(MenuTrigger, null,
52
+ React.createElement(Button, null, "Open")),
53
+ React.createElement(MenuPopover, null,
54
+ React.createElement(MenuList, null,
55
+ React.createElement(MenuItemCheckbox, { name: "Option 1" }, "Option 1"),
56
+ React.createElement(MenuDivider, null),
57
+ React.createElement(MenuItemCheckbox, { disabled: true, name: "Option 2" }, "Option 2")))))
58
+ .toJSON();
59
+ expect(tree).toMatchSnapshot();
60
+ });
61
+ it('Menu open radio', function () {
62
+ var tree = renderer
63
+ .create(React.createElement(Menu, { open: true },
64
+ React.createElement(MenuTrigger, null,
65
+ React.createElement(Button, null, "Open")),
66
+ React.createElement(MenuPopover, null,
67
+ React.createElement(MenuList, null,
68
+ React.createElement(MenuItemRadio, { name: "Option 1" }, "Option 1"),
69
+ React.createElement(MenuItemRadio, { name: "Option 2" }, "Option 2")))))
70
+ .toJSON();
71
+ expect(tree).toMatchSnapshot();
72
+ });
73
+ it('Menu open checkbox defaultChecked', function () {
74
+ var tree = renderer
75
+ .create(React.createElement(Menu, { open: true, defaultChecked: ['Option 1'] },
76
+ React.createElement(MenuTrigger, null,
77
+ React.createElement(Button, null, "Open")),
78
+ React.createElement(MenuPopover, null,
79
+ React.createElement(MenuList, null,
80
+ React.createElement(MenuItemCheckbox, { name: "Option 1" }, "Option 1"),
81
+ React.createElement(MenuDivider, null),
82
+ React.createElement(MenuItemCheckbox, { name: "Option 2" }, "Option 2")))))
83
+ .toJSON();
84
+ expect(tree).toMatchSnapshot();
85
+ });
86
+ it('Menu open checkbox checked', function () {
87
+ var tree = renderer
88
+ .create(React.createElement(Menu, { open: true, checked: ['Option 1'] },
89
+ React.createElement(MenuTrigger, null,
90
+ React.createElement(Button, null, "Open")),
91
+ React.createElement(MenuPopover, null,
92
+ React.createElement(MenuList, null,
93
+ React.createElement(MenuItemCheckbox, { name: "Option 1" }, "Option 1"),
94
+ React.createElement(MenuDivider, null),
95
+ React.createElement(MenuItemCheckbox, { name: "Option 2" }, "Option 2")))))
96
+ .toJSON();
97
+ expect(tree).toMatchSnapshot();
98
+ });
99
+ it('Menu submenu', function () {
100
+ var tree = renderer
101
+ .create(React.createElement(Menu, { open: true },
102
+ React.createElement(MenuTrigger, null,
103
+ React.createElement(Button, null, "Default")),
104
+ React.createElement(MenuPopover, null,
105
+ React.createElement(MenuList, null,
106
+ React.createElement(MenuItem, null, "Option 1"),
107
+ React.createElement(Menu, null,
108
+ React.createElement(MenuTrigger, null,
109
+ React.createElement(MenuItem, null, "Option 2")),
110
+ React.createElement(MenuPopover, null,
111
+ React.createElement(MenuList, null,
112
+ React.createElement(MenuItem, null, "Option 1"))))))))
113
+ .toJSON();
114
+ expect(tree).toMatchSnapshot();
115
+ });
116
+ });
117
+ describe('Menu rerender tests', function () {
118
+ it('Menu re-renders correctly', function () {
119
+ checkReRender(function () { return (React.createElement(Menu, { open: true },
120
+ React.createElement(MenuTrigger, null,
121
+ React.createElement(Button, null, "Rerender twice")),
122
+ React.createElement(MenuPopover, null,
123
+ React.createElement(MenuList, null,
124
+ React.createElement(MenuItem, null, "Option 1"))))); }, 3);
125
+ });
126
+ it('Menu re-renders correctly with style', function () {
127
+ var style = { backgroundColor: 'black' };
128
+ checkReRender(function () { return (React.createElement(Menu, null,
129
+ React.createElement(MenuTrigger, null,
130
+ React.createElement(Button, { style: style }, "Rerender twice")),
131
+ React.createElement(MenuPopover, null,
132
+ React.createElement(MenuList, null,
133
+ React.createElement(MenuItem, null, "Option 1"))))); }, 3);
134
+ });
135
+ it('Menu re-renders correctly with accessibilityAction', function () {
136
+ var action = [{ name: 'Expand' }];
137
+ checkReRender(function () { return (React.createElement(Menu, null,
138
+ React.createElement(MenuTrigger, null,
139
+ React.createElement(Button, null, "Rerender twice")),
140
+ React.createElement(MenuPopover, null,
141
+ React.createElement(MenuList, null,
142
+ React.createElement(MenuItem, { accessibilityActions: action }, "Option 1"))))); }, 3);
143
+ });
144
+ });
145
+ //# sourceMappingURL=Menu.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const hoverDelayDefault: number;
2
+ //# sourceMappingURL=consts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAG5B,CAAC"}
package/lib/consts.js ADDED
@@ -0,0 +1,6 @@
1
+ import { Platform } from 'react-native';
2
+ export var hoverDelayDefault = Platform.select({
3
+ macos: 100,
4
+ default: 500, // win32
5
+ });
6
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,IAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG,EAAE,QAAQ;CACvB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { MenuContextValue, MenuContext, MenuProvider, useMenuContext } from './menuContext';
2
+ export { MenuListContextValue, MenuListContext, MenuListProvider, useMenuListContext } from './menuListContext';
3
+ export { MenuTriggerContext, MenuTriggerProvider, useMenuTriggerContext } from './menuTriggerContext';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { MenuContext, MenuProvider, useMenuContext } from './menuContext';
2
+ export { MenuListContext, MenuListProvider, useMenuListContext } from './menuListContext';
3
+ export { MenuTriggerContext, MenuTriggerProvider, useMenuTriggerContext } from './menuTriggerContext';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAwB,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /// <reference types="node" />
2
+ import * as React from 'react';
3
+ import type { MenuState } from '../Menu/Menu.types';
4
+ /**
5
+ * Context shared between Menu and its child components
6
+ */
7
+ export interface MenuContextValue extends MenuState {
8
+ popoverHoverOutTimer?: NodeJS.Timeout;
9
+ triggerHoverOutTimer?: NodeJS.Timeout;
10
+ setPopoverHoverOutTimer?: (timer: NodeJS.Timeout) => void;
11
+ setTriggerHoverOutTimer?: (timer: NodeJS.Timeout) => void;
12
+ }
13
+ export declare const MenuContext: React.Context<MenuContextValue>;
14
+ export declare const MenuProvider: React.Provider<MenuContextValue>;
15
+ export declare const useMenuContext: () => MenuContextValue;
16
+ //# sourceMappingURL=menuContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuContext.d.ts","sourceRoot":"","sources":["../../src/context/menuContext.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACtC,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;IAC1D,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,WAAW,iCAetB,CAAC;AAEH,eAAO,MAAM,YAAY,kCAAuB,CAAC;AACjD,eAAO,MAAM,cAAc,wBAAsC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ export var MenuContext = React.createContext({
3
+ isControlled: false,
4
+ checked: [],
5
+ defaultChecked: [],
6
+ hasCheckmarks: false,
7
+ hasIcons: false,
8
+ hasTooltips: false,
9
+ isSubmenu: false,
10
+ open: false,
11
+ onCheckedChange: function () { return false; },
12
+ setOpen: function () { return false; },
13
+ shouldFocusOnContainer: undefined,
14
+ triggerRef: null,
15
+ hasMaxHeight: false,
16
+ hasMaxWidth: false,
17
+ });
18
+ export var MenuProvider = MenuContext.Provider;
19
+ export var useMenuContext = function () { return React.useContext(MenuContext); };
20
+ //# sourceMappingURL=menuContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuContext.js","sourceRoot":"","sources":["../../src/context/menuContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,MAAM,CAAC,IAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAmB;IAC/D,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,KAAK;IACX,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,OAAO,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACpB,sBAAsB,EAAE,SAAS;IACjC,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;AACjD,MAAM,CAAC,IAAM,cAAc,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAA7B,CAA6B,CAAC"}