@fluentui-react-native/menu 1.0.72 → 1.0.74

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 (97) hide show
  1. package/CHANGELOG.json +73 -1
  2. package/CHANGELOG.md +25 -2
  3. package/lib/MenuDivider/MenuDividerTokens.js +1 -1
  4. package/lib/MenuDivider/MenuDividerTokens.js.map +1 -1
  5. package/lib/MenuDivider/MenuDividerTokens.macos.js +1 -1
  6. package/lib/MenuDivider/MenuDividerTokens.macos.js.map +1 -1
  7. package/lib/MenuDivider/MenuDividerTokens.win32.js +1 -1
  8. package/lib/MenuDivider/MenuDividerTokens.win32.js.map +1 -1
  9. package/lib/MenuItem/MenuItemTokens.js +2 -2
  10. package/lib/MenuItem/MenuItemTokens.js.map +1 -1
  11. package/lib/MenuItem/MenuItemTokens.macos.js +1 -1
  12. package/lib/MenuItem/MenuItemTokens.macos.js.map +1 -1
  13. package/lib/MenuItem/MenuItemTokens.win32.js +2 -2
  14. package/lib/MenuItem/MenuItemTokens.win32.js.map +1 -1
  15. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js +2 -2
  16. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -1
  17. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +1 -1
  18. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
  19. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +2 -2
  20. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -1
  21. package/lib/MenuTrigger/MenuTrigger.d.ts +3 -2
  22. package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -1
  23. package/lib/MenuTrigger/MenuTrigger.js +13 -20
  24. package/lib/MenuTrigger/MenuTrigger.js.map +1 -1
  25. package/lib/MenuTrigger/MenuTrigger.types.d.ts +11 -1
  26. package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
  27. package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -1
  28. package/lib/MenuTrigger/useMenuTrigger.d.ts +2 -2
  29. package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  30. package/lib/MenuTrigger/useMenuTrigger.js +28 -8
  31. package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
  32. package/lib/MenuTrigger/useMergeRefs.d.ts +20 -0
  33. package/lib/MenuTrigger/useMergeRefs.d.ts.map +1 -0
  34. package/lib/MenuTrigger/useMergeRefs.js +36 -0
  35. package/lib/MenuTrigger/useMergeRefs.js.map +1 -0
  36. package/lib/__tests__/Menu.test.js +1 -1
  37. package/lib/__tests__/Menu.test.js.map +1 -1
  38. package/lib-commonjs/MenuDivider/MenuDividerTokens.js +1 -1
  39. package/lib-commonjs/MenuDivider/MenuDividerTokens.js.map +1 -1
  40. package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.js +1 -1
  41. package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.js.map +1 -1
  42. package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.js +1 -1
  43. package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.js.map +1 -1
  44. package/lib-commonjs/MenuItem/MenuItemTokens.js +2 -2
  45. package/lib-commonjs/MenuItem/MenuItemTokens.js.map +1 -1
  46. package/lib-commonjs/MenuItem/MenuItemTokens.macos.js +1 -1
  47. package/lib-commonjs/MenuItem/MenuItemTokens.macos.js.map +1 -1
  48. package/lib-commonjs/MenuItem/MenuItemTokens.win32.js +2 -2
  49. package/lib-commonjs/MenuItem/MenuItemTokens.win32.js.map +1 -1
  50. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js +2 -2
  51. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -1
  52. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +1 -1
  53. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
  54. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +2 -2
  55. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -1
  56. package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts +3 -2
  57. package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts.map +1 -1
  58. package/lib-commonjs/MenuTrigger/MenuTrigger.js +14 -20
  59. package/lib-commonjs/MenuTrigger/MenuTrigger.js.map +1 -1
  60. package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts +11 -1
  61. package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
  62. package/lib-commonjs/MenuTrigger/MenuTrigger.types.js.map +1 -1
  63. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts +2 -2
  64. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  65. package/lib-commonjs/MenuTrigger/useMenuTrigger.js +27 -8
  66. package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
  67. package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts +20 -0
  68. package/lib-commonjs/MenuTrigger/useMergeRefs.d.ts.map +1 -0
  69. package/lib-commonjs/MenuTrigger/useMergeRefs.js +40 -0
  70. package/lib-commonjs/MenuTrigger/useMergeRefs.js.map +1 -0
  71. package/lib-commonjs/__tests__/Menu.test.js +1 -1
  72. package/lib-commonjs/__tests__/Menu.test.js.map +1 -1
  73. package/package.json +8 -8
  74. package/src/MenuDivider/MenuDividerTokens.macos.ts +1 -1
  75. package/src/MenuDivider/MenuDividerTokens.ts +1 -1
  76. package/src/MenuDivider/MenuDividerTokens.win32.ts +1 -1
  77. package/src/MenuItem/MenuItemTokens.macos.ts +1 -1
  78. package/src/MenuItem/MenuItemTokens.ts +2 -2
  79. package/src/MenuItem/MenuItemTokens.win32.ts +2 -2
  80. package/src/MenuItemCheckbox/MenuItemCheckboxTokens.macos.ts +1 -1
  81. package/src/MenuItemCheckbox/MenuItemCheckboxTokens.ts +2 -2
  82. package/src/MenuItemCheckbox/MenuItemCheckboxTokens.win32.ts +2 -2
  83. package/src/MenuTrigger/MenuTrigger.tsx +15 -23
  84. package/src/MenuTrigger/MenuTrigger.types.ts +12 -0
  85. package/src/MenuTrigger/useMenuTrigger.ts +44 -9
  86. package/src/MenuTrigger/useMergeRefs.ts +42 -0
  87. package/src/__tests__/Menu.test.tsx +1 -1
  88. package/src/__tests__/__snapshots__/Menu.test.tsx.snap +27 -27
  89. package/lib/MenuTrigger/getRevisedProps.d.ts +0 -11
  90. package/lib/MenuTrigger/getRevisedProps.d.ts.map +0 -1
  91. package/lib/MenuTrigger/getRevisedProps.js +0 -45
  92. package/lib/MenuTrigger/getRevisedProps.js.map +0 -1
  93. package/lib-commonjs/MenuTrigger/getRevisedProps.d.ts +0 -11
  94. package/lib-commonjs/MenuTrigger/getRevisedProps.d.ts.map +0 -1
  95. package/lib-commonjs/MenuTrigger/getRevisedProps.js +0 -48
  96. package/lib-commonjs/MenuTrigger/getRevisedProps.js.map +0 -1
  97. package/src/MenuTrigger/getRevisedProps.ts +0 -52
@@ -9,7 +9,7 @@ export const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme> = (t: T
9
9
  checkmarkSize: 16,
10
10
  color: t.colors.menuItemText, // matches ContextualMenu
11
11
  fontFamily: t.typography.families.primary,
12
- fontSize: globalTokens.font.size[300],
12
+ fontSize: globalTokens.font.size300,
13
13
  fontWeight: globalTokens.font.weight.regular as FontWeightValue,
14
14
  gap: globalTokens.spacing.xs,
15
15
  paddingHorizontal: 5, // hardcoded for now to match ContextualMenu
@@ -5,11 +5,11 @@ import { MenuItemTokens } from './MenuItem.types';
5
5
 
6
6
  export const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme> = (t: Theme): MenuItemTokens => ({
7
7
  backgroundColor: t.colors.neutralBackground1,
8
- borderRadius: globalTokens.corner.radius.medium,
8
+ borderRadius: globalTokens.corner.radius40,
9
9
  checkmarkSize: 16,
10
10
  color: t.colors.neutralForeground2,
11
11
  fontFamily: t.typography.families.primary,
12
- fontSize: globalTokens.font.size[300],
12
+ fontSize: globalTokens.font.size300,
13
13
  fontWeight: globalTokens.font.weight.regular as FontWeightValue,
14
14
  gap: globalTokens.spacing.xs,
15
15
  minHeight: 32,
@@ -5,11 +5,11 @@ import { MenuItemTokens } from './MenuItem.types';
5
5
 
6
6
  export const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme> = (t: Theme): MenuItemTokens => ({
7
7
  backgroundColor: t.colors.neutralBackground1,
8
- borderRadius: globalTokens.corner.radius.none,
8
+ borderRadius: globalTokens.corner.radiusNone,
9
9
  checkmarkSize: 16,
10
10
  color: t.colors.neutralForeground1,
11
11
  fontFamily: t.typography.families.primary,
12
- fontSize: globalTokens.font.size[200],
12
+ fontSize: globalTokens.font.size200,
13
13
  fontWeight: globalTokens.font.weight.regular as FontWeightValue,
14
14
  gap: globalTokens.spacing.xs,
15
15
  minHeight: 24,
@@ -11,7 +11,7 @@ export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens
11
11
  checkmarkVisibility: 0,
12
12
  color: t.colors.neutralForeground2,
13
13
  fontFamily: t.typography.families.primary,
14
- fontSize: globalTokens.font.size[300],
14
+ fontSize: globalTokens.font.size300,
15
15
  fontWeight: globalTokens.font.weight.regular as FontWeightValue,
16
16
  gap: globalTokens.spacing.xs,
17
17
  paddingHorizontal: 5,
@@ -5,13 +5,13 @@ import { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
5
5
 
6
6
  export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme> = (t: Theme): MenuItemCheckboxTokens => ({
7
7
  backgroundColor: t.colors.neutralBackground1,
8
- borderRadius: globalTokens.corner.radius.medium,
8
+ borderRadius: globalTokens.corner.radius40,
9
9
  checkmarkPadding: globalTokens.spacing.none,
10
10
  checkmarkSize: 16,
11
11
  checkmarkVisibility: 0,
12
12
  color: t.colors.neutralForeground2,
13
13
  fontFamily: t.typography.families.primary,
14
- fontSize: globalTokens.font.size[300],
14
+ fontSize: globalTokens.font.size300,
15
15
  fontWeight: globalTokens.font.weight.regular as FontWeightValue,
16
16
  gap: globalTokens.spacing.xs,
17
17
  minHeight: 32,
@@ -5,13 +5,13 @@ import { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
5
5
 
6
6
  export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme> = (t: Theme): MenuItemCheckboxTokens => ({
7
7
  backgroundColor: t.colors.neutralBackground1,
8
- borderRadius: globalTokens.corner.radius.none,
8
+ borderRadius: globalTokens.corner.radiusNone,
9
9
  checkmarkPadding: globalTokens.spacing.xxs,
10
10
  checkmarkSize: 16,
11
11
  checkmarkVisibility: 0,
12
12
  color: t.colors.neutralForeground1,
13
13
  fontFamily: t.typography.families.primary,
14
- fontSize: globalTokens.font.size[200],
14
+ fontSize: globalTokens.font.size200,
15
15
  fontWeight: globalTokens.font.weight.regular as FontWeightValue,
16
16
  gap: globalTokens.spacing.xs,
17
17
  minHeight: 24,
@@ -1,32 +1,24 @@
1
- import React from 'react';
2
- import { stagedComponent } from '@fluentui-react-native/framework';
3
- import { menuTriggerName } from './MenuTrigger.types';
1
+ import * as React from 'react';
2
+ import { menuTriggerName, MenuTriggerProps } from './MenuTrigger.types';
4
3
  import { useMenuTrigger } from './useMenuTrigger';
5
4
  import { MenuTriggerProvider } from '../context/menuTriggerContext';
6
- import { getRevisedProps } from './getRevisedProps';
7
5
 
8
- export const MenuTrigger = stagedComponent((_props: React.PropsWithChildren<Record<never, any>>) => {
9
- const menuTrigger = useMenuTrigger();
10
-
11
- return (_rest: React.PropsWithChildren<Record<never, any>>, children: React.ReactNode) => {
12
- const childrenArray = React.Children.toArray(children) as React.ReactElement[];
13
-
14
- if (__DEV__) {
15
- if (childrenArray.length !== 1) {
16
- console.warn('Only expecting one child for MenuTrigger');
17
- }
6
+ export const MenuTrigger: React.FunctionComponent<MenuTriggerProps> = (props: MenuTriggerProps) => {
7
+ if (__DEV__) {
8
+ if (!React.Children.only(props.children)) {
9
+ console.warn('Only expecting one child for MenuTrigger');
18
10
  }
11
+ }
12
+
13
+ const menuTrigger = useMenuTrigger(props.children.props);
19
14
 
20
- // In order to properly support accessibility without erasing props set on the
21
- // child component which may affect accessibility, we need to modify the
22
- // state in the inner render so we can access the child component and its props.
23
- const child = childrenArray[0];
24
- const revisedProps = getRevisedProps(menuTrigger, child.props);
25
- const revised = React.cloneElement(child, revisedProps);
15
+ // In order to properly support accessibility without erasing props set on the
16
+ // child component which may affect accessibility, we need to modify the
17
+ // state in the inner render so we can access the child component and its props.
18
+ const revised = React.cloneElement(props.children, menuTrigger.props);
26
19
 
27
- return <MenuTriggerProvider value={menuTrigger.hasSubmenu}>{revised}</MenuTriggerProvider>;
28
- };
29
- });
20
+ return <MenuTriggerProvider value={menuTrigger.hasSubmenu}>{revised}</MenuTriggerProvider>;
21
+ };
30
22
  MenuTrigger.displayName = menuTriggerName;
31
23
 
32
24
  export default MenuTrigger;
@@ -1,7 +1,19 @@
1
+ import * as React from 'react';
1
2
  import { InteractionEvent, PressablePropsExtended } from '@fluentui-react-native/interactive-hooks';
2
3
 
3
4
  export const menuTriggerName = 'MenuTrigger';
4
5
 
6
+ /**
7
+ * Represents single react element (or null), which is the
8
+ * type of the child of MenuTrigger. Notably this excludes string, number,
9
+ * and array of elements as children, which MenuTrigger doesn't support.
10
+ */
11
+ type SingleReactElement = React.ReactElement | null;
12
+
13
+ export interface MenuTriggerProps {
14
+ children?: SingleReactElement;
15
+ }
16
+
5
17
  export interface MenuTriggerChildProps extends Omit<PressablePropsExtended, 'onPress'> {
6
18
  /**
7
19
  * A RefObject to refer to the trigger component.
@@ -1,16 +1,17 @@
1
1
  import { useMenuContext } from '../context/menuContext';
2
2
  import { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
3
- import { MenuTriggerState } from './MenuTrigger.types';
3
+ import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
4
4
  import { AccessibilityActionEvent, AccessibilityActionName, Platform } from 'react-native';
5
5
  import React from 'react';
6
6
  import { hoverDelayDefault } from '../consts';
7
+ import { useMergedRefs } from './useMergeRefs';
7
8
 
8
- const accessibilityActions =
9
+ const baseAccessibilityActions =
9
10
  Platform.OS === ('win32' as any) ? [{ name: 'Expand' as AccessibilityActionName }, { name: 'Collapse' as AccessibilityActionName }] : [];
10
11
  const expandedState = { expanded: true };
11
12
  const collapsedState = { expanded: false };
12
13
 
13
- export const useMenuTrigger = (): MenuTriggerState => {
14
+ export const useMenuTrigger = (childProps: MenuTriggerChildProps): MenuTriggerState => {
14
15
  const context = useMenuContext();
15
16
  const {
16
17
  hoverDelay = hoverDelayDefault,
@@ -23,7 +24,33 @@ export const useMenuTrigger = (): MenuTriggerState => {
23
24
  triggerRef,
24
25
  } = context;
25
26
 
26
- const accessibilityState = open ? expandedState : collapsedState;
27
+ const {
28
+ accessibilityActions: childAccessibilityActions,
29
+ accessibilityState: childAccessibilityState,
30
+ onAccessibilityAction: childOnAccessibilityAction,
31
+ onClick: childOnClick,
32
+ onHoverIn: childOnHoverIn,
33
+ onHoverOut: childOnHoverOut,
34
+ componentRef: childComponentRef,
35
+ } = childProps;
36
+
37
+ const accessibilityActions = React.useMemo(() => {
38
+ if (childAccessibilityActions) {
39
+ return [...baseAccessibilityActions, ...childAccessibilityActions];
40
+ }
41
+
42
+ return baseAccessibilityActions;
43
+ }, [childAccessibilityActions]);
44
+
45
+ const accessibilityState = React.useMemo(() => {
46
+ const baseState = open ? expandedState : collapsedState;
47
+
48
+ if (childAccessibilityState) {
49
+ return { ...baseState, ...childAccessibilityState };
50
+ }
51
+
52
+ return baseState;
53
+ }, [childAccessibilityState, open]);
27
54
 
28
55
  const onAccessibilityAction = React.useCallback(
29
56
  (e: AccessibilityActionEvent) => {
@@ -38,8 +65,9 @@ export const useMenuTrigger = (): MenuTriggerState => {
38
65
  break;
39
66
  }
40
67
  }
68
+ childOnAccessibilityAction && childOnAccessibilityAction(e);
41
69
  },
42
- [setOpen],
70
+ [childOnAccessibilityAction, setOpen],
43
71
  );
44
72
 
45
73
  const onHoverIn = React.useCallback(
@@ -52,8 +80,10 @@ export const useMenuTrigger = (): MenuTriggerState => {
52
80
  setOpen(e, true /* isOpen */);
53
81
  }, hoverDelay);
54
82
  }
83
+
84
+ childOnHoverIn && childOnHoverIn(e);
55
85
  },
56
- [hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer],
86
+ [childOnHoverIn, hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer],
57
87
  );
58
88
 
59
89
  const onHoverOut = React.useCallback(
@@ -65,17 +95,22 @@ export const useMenuTrigger = (): MenuTriggerState => {
65
95
  }, hoverDelay);
66
96
  setTriggerHoverOutTimer(timer);
67
97
  }
98
+
99
+ childOnHoverOut && childOnHoverOut(e);
68
100
  },
69
- [hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer],
101
+ [childOnHoverOut, hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer],
70
102
  );
71
103
 
72
104
  const onClick = React.useCallback(
73
105
  (e: InteractionEvent) => {
74
106
  setOpen(e, !open);
107
+ childOnClick && childOnClick(e);
75
108
  },
76
- [open, setOpen],
109
+ [childOnClick, open, setOpen],
77
110
  );
78
111
 
112
+ const ref = useMergedRefs(triggerRef, childComponentRef);
113
+
79
114
  React.useEffect(() => {
80
115
  return function cleanup() {
81
116
  clearTimeout(triggerHoverOutTimer);
@@ -87,7 +122,7 @@ export const useMenuTrigger = (): MenuTriggerState => {
87
122
  onClick,
88
123
  onHoverIn,
89
124
  onHoverOut,
90
- componentRef: triggerRef,
125
+ componentRef: ref,
91
126
  accessibilityState,
92
127
  accessibilityActions,
93
128
  onAccessibilityAction,
@@ -0,0 +1,42 @@
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
+
8
+ import * as React from 'react';
9
+
10
+ /**
11
+ * A Ref function which can be treated like a ref object in that it has an attached
12
+ * current property, which will be updated as the ref is evaluated.
13
+ */
14
+ export type RefObjectFunction<T> = React.RefObject<T> & ((value: T) => void);
15
+
16
+ /**
17
+ * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that
18
+ * updates all provided refs
19
+ * @param refs - Refs to collectively update with one ref value.
20
+ * @returns A function with an attached "current" prop, so that it can be treated like a RefObject.
21
+ */
22
+ export function useMergedRefs<T>(...refs: (React.Ref<T> | undefined)[]): RefObjectFunction<T> {
23
+ const mergedCallback: RefObjectFunction<T> = React.useCallback(
24
+ (value: T) => {
25
+ // Update the "current" prop hanging on the function.
26
+ (mergedCallback as unknown as React.MutableRefObject<T>).current = value;
27
+
28
+ for (const ref of refs) {
29
+ if (typeof ref === 'function') {
30
+ ref(value);
31
+ } else if (ref) {
32
+ // work around the immutability of the React.Ref type
33
+ (ref as unknown as React.MutableRefObject<T>).current = value;
34
+ }
35
+ }
36
+ },
37
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- already exhaustive
38
+ [...refs],
39
+ ) as unknown as RefObjectFunction<T>;
40
+
41
+ return mergedCallback;
42
+ }
@@ -12,7 +12,7 @@ import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
12
12
  import { MenuDivider } from '../MenuDivider/MenuDivider';
13
13
  import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
14
14
 
15
- describe('Checkbox component tests', () => {
15
+ describe('Menu component tests', () => {
16
16
  it('Menu default', () => {
17
17
  const tree = renderer
18
18
  .create(
@@ -1,6 +1,6 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`Checkbox component tests Menu default 1`] = `
3
+ exports[`Menu component tests Menu default 1`] = `
4
4
  <View
5
5
  accessibilityActions={Array []}
6
6
  accessibilityLabel="Default"
@@ -32,13 +32,13 @@ exports[`Checkbox component tests Menu default 1`] = `
32
32
  "backgroundColor": "#f3f2f1",
33
33
  "borderColor": "#8a8886",
34
34
  "borderRadius": 4,
35
- "borderWidth": 1.5,
35
+ "borderWidth": 1,
36
36
  "display": "flex",
37
37
  "flexDirection": "row",
38
38
  "justifyContent": "center",
39
39
  "minWidth": 96,
40
40
  "padding": 8,
41
- "paddingHorizontal": 14.5,
41
+ "paddingHorizontal": 15,
42
42
  "width": undefined,
43
43
  }
44
44
  }
@@ -65,7 +65,7 @@ exports[`Checkbox component tests Menu default 1`] = `
65
65
  </View>
66
66
  `;
67
67
 
68
- exports[`Checkbox component tests Menu defaultOpen 1`] = `
68
+ exports[`Menu component tests Menu defaultOpen 1`] = `
69
69
  Array [
70
70
  <View
71
71
  accessibilityActions={Array []}
@@ -98,13 +98,13 @@ Array [
98
98
  "backgroundColor": "#f3f2f1",
99
99
  "borderColor": "#8a8886",
100
100
  "borderRadius": 4,
101
- "borderWidth": 1.5,
101
+ "borderWidth": 1,
102
102
  "display": "flex",
103
103
  "flexDirection": "row",
104
104
  "justifyContent": "center",
105
105
  "minWidth": 96,
106
106
  "padding": 8,
107
- "paddingHorizontal": 14.5,
107
+ "paddingHorizontal": 15,
108
108
  "width": undefined,
109
109
  }
110
110
  }
@@ -273,7 +273,7 @@ Array [
273
273
  ]
274
274
  `;
275
275
 
276
- exports[`Checkbox component tests Menu open 1`] = `
276
+ exports[`Menu component tests Menu open 1`] = `
277
277
  Array [
278
278
  <View
279
279
  accessibilityActions={Array []}
@@ -306,13 +306,13 @@ Array [
306
306
  "backgroundColor": "#f3f2f1",
307
307
  "borderColor": "#8a8886",
308
308
  "borderRadius": 4,
309
- "borderWidth": 1.5,
309
+ "borderWidth": 1,
310
310
  "display": "flex",
311
311
  "flexDirection": "row",
312
312
  "justifyContent": "center",
313
313
  "minWidth": 96,
314
314
  "padding": 8,
315
- "paddingHorizontal": 14.5,
315
+ "paddingHorizontal": 15,
316
316
  "width": undefined,
317
317
  }
318
318
  }
@@ -434,7 +434,7 @@ Array [
434
434
  ]
435
435
  `;
436
436
 
437
- exports[`Checkbox component tests Menu open checkbox and divider 1`] = `
437
+ exports[`Menu component tests Menu open checkbox and divider 1`] = `
438
438
  Array [
439
439
  <View
440
440
  accessibilityActions={Array []}
@@ -467,13 +467,13 @@ Array [
467
467
  "backgroundColor": "#f3f2f1",
468
468
  "borderColor": "#8a8886",
469
469
  "borderRadius": 4,
470
- "borderWidth": 1.5,
470
+ "borderWidth": 1,
471
471
  "display": "flex",
472
472
  "flexDirection": "row",
473
473
  "justifyContent": "center",
474
474
  "minWidth": 96,
475
475
  "padding": 8,
476
- "paddingHorizontal": 14.5,
476
+ "paddingHorizontal": 15,
477
477
  "width": undefined,
478
478
  }
479
479
  }
@@ -654,7 +654,7 @@ Array [
654
654
  Object {
655
655
  "backgroundColor": "#d1d1d1",
656
656
  "display": "flex",
657
- "height": 1.5,
657
+ "height": 1,
658
658
  "margin": 4,
659
659
  "marginVertical": undefined,
660
660
  "width": undefined,
@@ -780,7 +780,7 @@ Array [
780
780
  ]
781
781
  `;
782
782
 
783
- exports[`Checkbox component tests Menu open checkbox checked 1`] = `
783
+ exports[`Menu component tests Menu open checkbox checked 1`] = `
784
784
  Array [
785
785
  <View
786
786
  accessibilityActions={Array []}
@@ -813,13 +813,13 @@ Array [
813
813
  "backgroundColor": "#f3f2f1",
814
814
  "borderColor": "#8a8886",
815
815
  "borderRadius": 4,
816
- "borderWidth": 1.5,
816
+ "borderWidth": 1,
817
817
  "display": "flex",
818
818
  "flexDirection": "row",
819
819
  "justifyContent": "center",
820
820
  "minWidth": 96,
821
821
  "padding": 8,
822
- "paddingHorizontal": 14.5,
822
+ "paddingHorizontal": 15,
823
823
  "width": undefined,
824
824
  }
825
825
  }
@@ -1000,7 +1000,7 @@ Array [
1000
1000
  Object {
1001
1001
  "backgroundColor": "#d1d1d1",
1002
1002
  "display": "flex",
1003
- "height": 1.5,
1003
+ "height": 1,
1004
1004
  "margin": 4,
1005
1005
  "marginVertical": undefined,
1006
1006
  "width": undefined,
@@ -1126,7 +1126,7 @@ Array [
1126
1126
  ]
1127
1127
  `;
1128
1128
 
1129
- exports[`Checkbox component tests Menu open checkbox defaultChecked 1`] = `
1129
+ exports[`Menu component tests Menu open checkbox defaultChecked 1`] = `
1130
1130
  Array [
1131
1131
  <View
1132
1132
  accessibilityActions={Array []}
@@ -1159,13 +1159,13 @@ Array [
1159
1159
  "backgroundColor": "#f3f2f1",
1160
1160
  "borderColor": "#8a8886",
1161
1161
  "borderRadius": 4,
1162
- "borderWidth": 1.5,
1162
+ "borderWidth": 1,
1163
1163
  "display": "flex",
1164
1164
  "flexDirection": "row",
1165
1165
  "justifyContent": "center",
1166
1166
  "minWidth": 96,
1167
1167
  "padding": 8,
1168
- "paddingHorizontal": 14.5,
1168
+ "paddingHorizontal": 15,
1169
1169
  "width": undefined,
1170
1170
  }
1171
1171
  }
@@ -1346,7 +1346,7 @@ Array [
1346
1346
  Object {
1347
1347
  "backgroundColor": "#d1d1d1",
1348
1348
  "display": "flex",
1349
- "height": 1.5,
1349
+ "height": 1,
1350
1350
  "margin": 4,
1351
1351
  "marginVertical": undefined,
1352
1352
  "width": undefined,
@@ -1472,7 +1472,7 @@ Array [
1472
1472
  ]
1473
1473
  `;
1474
1474
 
1475
- exports[`Checkbox component tests Menu open radio 1`] = `
1475
+ exports[`Menu component tests Menu open radio 1`] = `
1476
1476
  Array [
1477
1477
  <View
1478
1478
  accessibilityActions={Array []}
@@ -1505,13 +1505,13 @@ Array [
1505
1505
  "backgroundColor": "#f3f2f1",
1506
1506
  "borderColor": "#8a8886",
1507
1507
  "borderRadius": 4,
1508
- "borderWidth": 1.5,
1508
+ "borderWidth": 1,
1509
1509
  "display": "flex",
1510
1510
  "flexDirection": "row",
1511
1511
  "justifyContent": "center",
1512
1512
  "minWidth": 96,
1513
1513
  "padding": 8,
1514
- "paddingHorizontal": 14.5,
1514
+ "paddingHorizontal": 15,
1515
1515
  "width": undefined,
1516
1516
  }
1517
1517
  }
@@ -1806,7 +1806,7 @@ Array [
1806
1806
  ]
1807
1807
  `;
1808
1808
 
1809
- exports[`Checkbox component tests Menu submenu 1`] = `
1809
+ exports[`Menu component tests Menu submenu 1`] = `
1810
1810
  Array [
1811
1811
  <View
1812
1812
  accessibilityActions={Array []}
@@ -1839,13 +1839,13 @@ Array [
1839
1839
  "backgroundColor": "#f3f2f1",
1840
1840
  "borderColor": "#8a8886",
1841
1841
  "borderRadius": 4,
1842
- "borderWidth": 1.5,
1842
+ "borderWidth": 1,
1843
1843
  "display": "flex",
1844
1844
  "flexDirection": "row",
1845
1845
  "justifyContent": "center",
1846
1846
  "minWidth": 96,
1847
1847
  "padding": 8,
1848
- "paddingHorizontal": 14.5,
1848
+ "paddingHorizontal": 15,
1849
1849
  "width": undefined,
1850
1850
  }
1851
1851
  }
@@ -1,11 +0,0 @@
1
- import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
2
- /**
3
- * Creates a merged set of props between the MenuTrigger's child component's props
4
- * and the props that the MenuTrigger wants its child to have.
5
- *
6
- * Because children are not accessible in the outer render, we deal with the merge in this function.
7
- */
8
- export declare const getRevisedProps: typeof getRevisedPropsWorker;
9
- declare function getRevisedPropsWorker(state: MenuTriggerState, props: any): MenuTriggerChildProps;
10
- export {};
11
- //# sourceMappingURL=getRevisedProps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRevisedProps.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,8BAAiC,CAAC;AAC9D,iBAAS,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,GAAG,qBAAqB,CAuCzF"}
@@ -1,45 +0,0 @@
1
- import { __assign, __spreadArray } from "tslib";
2
- import { memoize } from '@fluentui-react-native/framework';
3
- import { isMouseEvent } from '@fluentui-react-native/interactive-hooks';
4
- /**
5
- * Creates a merged set of props between the MenuTrigger's child component's props
6
- * and the props that the MenuTrigger wants its child to have.
7
- *
8
- * Because children are not accessible in the outer render, we deal with the merge in this function.
9
- */
10
- export var getRevisedProps = memoize(getRevisedPropsWorker);
11
- function getRevisedPropsWorker(state, props) {
12
- var revisedProps = __assign({}, state.props);
13
- if (props.accessibilityState) {
14
- revisedProps.accessibilityState = __assign(__assign({}, state.props.accessibilityState), props.accessibilityState);
15
- }
16
- if (props.accessibilityActions) {
17
- revisedProps.accessibilityActions = __spreadArray(__spreadArray([], state.props.accessibilityActions, true), props.accessibilityActions, true);
18
- }
19
- if (props.onAccessibilityAction) {
20
- revisedProps.onAccessibilityAction = function (e) {
21
- state.props.onAccessibilityAction(e);
22
- props.onAccessibilityAction(e);
23
- };
24
- }
25
- if (props.onClick) {
26
- revisedProps.onClick = function (e) {
27
- state.props.onClick(e);
28
- props.onClick(e);
29
- };
30
- }
31
- if (props.onHoverIn) {
32
- revisedProps.onHoverIn = function (e) {
33
- state.props.onHoverIn(isMouseEvent(e) && e);
34
- props.onHoverIn(e);
35
- };
36
- }
37
- if (props.onHoverOut) {
38
- revisedProps.onHoverOut = function (e) {
39
- state.props.onHoverOut(isMouseEvent(e) && e);
40
- props.onHoverOut(e);
41
- };
42
- }
43
- return __assign({}, revisedProps);
44
- }
45
- //# sourceMappingURL=getRevisedProps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRevisedProps.js","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAoB,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAG1F;;;;;GAKG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAC9D,SAAS,qBAAqB,CAAC,KAAuB,EAAE,KAAU;IAChE,IAAM,YAAY,gBAAQ,KAAK,CAAC,KAAK,CAAE,CAAC;IACxC,IAAI,KAAK,CAAC,kBAAkB,EAAE;QAC5B,YAAY,CAAC,kBAAkB,yBAAQ,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAK,KAAK,CAAC,kBAAkB,CAAE,CAAC;KACtG;IAED,IAAI,KAAK,CAAC,oBAAoB,EAAE;QAC9B,YAAY,CAAC,oBAAoB,mCAAO,KAAK,CAAC,KAAK,CAAC,oBAAoB,SAAK,KAAK,CAAC,oBAAoB,OAAC,CAAC;KAC1G;IAED,IAAI,KAAK,CAAC,qBAAqB,EAAE;QAC/B,YAAY,CAAC,qBAAqB,GAAG,UAAC,CAA2B;YAC/D,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,YAAY,CAAC,OAAO,GAAG,UAAC,CAAmB;YACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,YAAY,CAAC,SAAS,GAAG,UAAC,CAAmB;YAC3C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;KACH;IAED,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,YAAY,CAAC,UAAU,GAAG,UAAC,CAAmB;YAC5C,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC;KACH;IAED,oBAAY,YAAY,EAAG;AAC7B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
2
- /**
3
- * Creates a merged set of props between the MenuTrigger's child component's props
4
- * and the props that the MenuTrigger wants its child to have.
5
- *
6
- * Because children are not accessible in the outer render, we deal with the merge in this function.
7
- */
8
- export declare const getRevisedProps: typeof getRevisedPropsWorker;
9
- declare function getRevisedPropsWorker(state: MenuTriggerState, props: any): MenuTriggerChildProps;
10
- export {};
11
- //# sourceMappingURL=getRevisedProps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRevisedProps.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/getRevisedProps.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,8BAAiC,CAAC;AAC9D,iBAAS,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,GAAG,qBAAqB,CAuCzF"}