@fluentui-react-native/menu 1.11.26 → 1.11.28

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 (50) hide show
  1. package/CHANGELOG.json +91 -1
  2. package/CHANGELOG.md +28 -2
  3. package/lib/MenuGroup/MenuGroup.d.ts.map +1 -1
  4. package/lib/MenuGroup/MenuGroup.js +13 -2
  5. package/lib/MenuGroup/MenuGroup.js.map +1 -1
  6. package/lib/MenuGroup/MenuGroup.types.d.ts +2 -0
  7. package/lib/MenuGroup/MenuGroup.types.d.ts.map +1 -1
  8. package/lib/MenuGroup/MenuGroup.types.js.map +1 -1
  9. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +5 -5
  10. package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
  11. package/lib/MenuList/MenuList.d.ts.map +1 -1
  12. package/lib/MenuList/MenuList.js +28 -17
  13. package/lib/MenuList/MenuList.js.map +1 -1
  14. package/lib/MenuList/MenuList.types.d.ts +3 -3
  15. package/lib/MenuList/MenuList.types.d.ts.map +1 -1
  16. package/lib/MenuList/useMenuList.d.ts.map +1 -1
  17. package/lib/MenuList/useMenuList.js +12 -2
  18. package/lib/MenuList/useMenuList.js.map +1 -1
  19. package/lib/context/menuListContext.d.ts +1 -1
  20. package/lib/context/menuListContext.d.ts.map +1 -1
  21. package/lib/context/menuListContext.js +0 -1
  22. package/lib/context/menuListContext.js.map +1 -1
  23. package/lib-commonjs/MenuGroup/MenuGroup.d.ts.map +1 -1
  24. package/lib-commonjs/MenuGroup/MenuGroup.js +12 -1
  25. package/lib-commonjs/MenuGroup/MenuGroup.js.map +1 -1
  26. package/lib-commonjs/MenuGroup/MenuGroup.types.d.ts +2 -0
  27. package/lib-commonjs/MenuGroup/MenuGroup.types.d.ts.map +1 -1
  28. package/lib-commonjs/MenuGroup/MenuGroup.types.js.map +1 -1
  29. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +5 -5
  30. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
  31. package/lib-commonjs/MenuList/MenuList.d.ts.map +1 -1
  32. package/lib-commonjs/MenuList/MenuList.js +28 -17
  33. package/lib-commonjs/MenuList/MenuList.js.map +1 -1
  34. package/lib-commonjs/MenuList/MenuList.types.d.ts +3 -3
  35. package/lib-commonjs/MenuList/MenuList.types.d.ts.map +1 -1
  36. package/lib-commonjs/MenuList/useMenuList.d.ts.map +1 -1
  37. package/lib-commonjs/MenuList/useMenuList.js +12 -2
  38. package/lib-commonjs/MenuList/useMenuList.js.map +1 -1
  39. package/lib-commonjs/context/menuListContext.d.ts +1 -1
  40. package/lib-commonjs/context/menuListContext.d.ts.map +1 -1
  41. package/lib-commonjs/context/menuListContext.js +0 -1
  42. package/lib-commonjs/context/menuListContext.js.map +1 -1
  43. package/package.json +10 -10
  44. package/src/MenuGroup/MenuGroup.tsx +21 -2
  45. package/src/MenuGroup/MenuGroup.types.ts +2 -0
  46. package/src/MenuItemCheckbox/MenuItemCheckboxTokens.macos.ts +5 -5
  47. package/src/MenuList/MenuList.tsx +34 -38
  48. package/src/MenuList/MenuList.types.ts +4 -4
  49. package/src/MenuList/useMenuList.ts +14 -1
  50. package/src/context/menuListContext.ts +1 -2
package/CHANGELOG.json CHANGED
@@ -2,7 +2,97 @@
2
2
  "name": "@fluentui-react-native/menu",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 25 Oct 2023 20:45:34 GMT",
5
+ "date": "Tue, 31 Oct 2023 19:09:36 GMT",
6
+ "version": "1.11.28",
7
+ "tag": "@fluentui-react-native/menu_v1.11.28",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "ruaraki@microsoft.com",
12
+ "package": "@fluentui-react-native/menu",
13
+ "commit": "e66e88aa687589668526066da35ca8b1abc6287c",
14
+ "comment": "Fix keyboarding behavior"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@fluentui-react-native/menu",
19
+ "comment": "Bump @fluentui-react-native/focus-zone to v0.13.3",
20
+ "commit": "not available"
21
+ }
22
+ ]
23
+ }
24
+ },
25
+ {
26
+ "date": "Mon, 30 Oct 2023 21:26:06 GMT",
27
+ "version": "1.11.27",
28
+ "tag": "@fluentui-react-native/menu_v1.11.27",
29
+ "comments": {
30
+ "patch": [
31
+ {
32
+ "author": "email not defined",
33
+ "package": "@fluentui-react-native/menu",
34
+ "commit": "7461843f37999539940e7babf4603f0a3719aeaa",
35
+ "comment": "remove deprecated alias tokens from v1 components"
36
+ },
37
+ {
38
+ "author": "beachball",
39
+ "package": "@fluentui-react-native/menu",
40
+ "comment": "Bump @fluentui-react-native/callout to v0.24.17",
41
+ "commit": "not available"
42
+ },
43
+ {
44
+ "author": "beachball",
45
+ "package": "@fluentui-react-native/menu",
46
+ "comment": "Bump @fluentui-react-native/focus-zone to v0.13.2",
47
+ "commit": "not available"
48
+ },
49
+ {
50
+ "author": "beachball",
51
+ "package": "@fluentui-react-native/menu",
52
+ "comment": "Bump @fluentui-react-native/framework to v0.11.8",
53
+ "commit": "not available"
54
+ },
55
+ {
56
+ "author": "beachball",
57
+ "package": "@fluentui-react-native/menu",
58
+ "comment": "Bump @fluentui-react-native/icon to v0.19.14",
59
+ "commit": "not available"
60
+ },
61
+ {
62
+ "author": "beachball",
63
+ "package": "@fluentui-react-native/menu",
64
+ "comment": "Bump @fluentui-react-native/interactive-hooks to v0.24.10",
65
+ "commit": "not available"
66
+ },
67
+ {
68
+ "author": "beachball",
69
+ "package": "@fluentui-react-native/menu",
70
+ "comment": "Bump @fluentui-react-native/text to v0.21.12",
71
+ "commit": "not available"
72
+ },
73
+ {
74
+ "author": "beachball",
75
+ "package": "@fluentui-react-native/menu",
76
+ "comment": "Bump @fluentui-react-native/theme-tokens to v0.25.2",
77
+ "commit": "not available"
78
+ },
79
+ {
80
+ "author": "beachball",
81
+ "package": "@fluentui-react-native/menu",
82
+ "comment": "Bump @fluentui-react-native/tokens to v0.21.4",
83
+ "commit": "not available"
84
+ },
85
+ {
86
+ "author": "beachball",
87
+ "package": "@fluentui-react-native/menu",
88
+ "comment": "Bump @fluentui-react-native/button to v0.35.9",
89
+ "commit": "not available"
90
+ }
91
+ ]
92
+ }
93
+ },
94
+ {
95
+ "date": "Wed, 25 Oct 2023 20:50:34 GMT",
6
96
  "version": "1.11.26",
7
97
  "tag": "@fluentui-react-native/menu_v1.11.26",
8
98
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,38 @@
1
1
  # Change Log - @fluentui-react-native/menu
2
2
 
3
- This log was last generated on Wed, 25 Oct 2023 20:45:34 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 31 Oct 2023 19:09:36 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 1.11.28
8
+
9
+ Tue, 31 Oct 2023 19:09:36 GMT
10
+
11
+ ### Patches
12
+
13
+ - Fix keyboarding behavior (ruaraki@microsoft.com)
14
+ - Bump @fluentui-react-native/focus-zone to v0.13.3
15
+
16
+ ## 1.11.27
17
+
18
+ Mon, 30 Oct 2023 21:26:06 GMT
19
+
20
+ ### Patches
21
+
22
+ - remove deprecated alias tokens from v1 components (email not defined)
23
+ - Bump @fluentui-react-native/callout to v0.24.17
24
+ - Bump @fluentui-react-native/focus-zone to v0.13.2
25
+ - Bump @fluentui-react-native/framework to v0.11.8
26
+ - Bump @fluentui-react-native/icon to v0.19.14
27
+ - Bump @fluentui-react-native/interactive-hooks to v0.24.10
28
+ - Bump @fluentui-react-native/text to v0.21.12
29
+ - Bump @fluentui-react-native/theme-tokens to v0.25.2
30
+ - Bump @fluentui-react-native/tokens to v0.21.4
31
+ - Bump @fluentui-react-native/button to v0.35.9
32
+
7
33
  ## 1.11.26
8
34
 
9
- Wed, 25 Oct 2023 20:45:34 GMT
35
+ Wed, 25 Oct 2023 20:50:34 GMT
10
36
 
11
37
  ### Patches
12
38
 
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.d.ts","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS,uOAiCpB,CAAC"}
1
+ {"version":3,"file":"MenuGroup.d.ts","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.tsx"],"names":[],"mappings":"AAeA,eAAO,MAAM,SAAS,uOAgDpB,CAAC"}
@@ -2,13 +2,17 @@ import { __assign, __rest } from "tslib";
2
2
  /** @jsxRuntime classic */
3
3
  /** @jsx withSlots */
4
4
  import React from 'react';
5
- import { View } from 'react-native';
5
+ import { Platform, View } from 'react-native';
6
+ import { FocusZone } from '@fluentui-react-native/focus-zone';
6
7
  import { compose, mergeProps, withSlots } from '@fluentui-react-native/framework';
7
8
  import { menuGroupName } from './MenuGroup.types';
9
+ // Intentionally not enabled on macOS to match system context menus
10
+ var hasFocusZone = ['win32'].includes(Platform.OS);
8
11
  export var MenuGroup = compose({
9
12
  displayName: menuGroupName,
10
13
  slots: {
11
14
  root: View,
15
+ contentWrapper: hasFocusZone ? FocusZone : React.Fragment,
12
16
  },
13
17
  useRender: function (userProps, useSlots) {
14
18
  var Slots = useSlots(userProps);
@@ -29,7 +33,14 @@ export var MenuGroup = compose({
29
33
  }
30
34
  return child;
31
35
  });
32
- return withSlots(Slots.root, __assign({}, mergedProps), childrenWithSet);
36
+ return (withSlots(Slots.root, __assign({}, mergedProps),
37
+ withSlots(Slots.contentWrapper
38
+ // avoid error that fires when props are passed into React.fragment
39
+ , __assign({}, (hasFocusZone && {
40
+ focusZoneDirection: 'vertical',
41
+ enableFocusRing: false,
42
+ navigateAtEnd: 'NavigateContinue',
43
+ })), childrenWithSet)));
33
44
  };
34
45
  },
35
46
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.js","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.tsx"],"names":[],"mappings":";AAAA,0BAA0B;AAC1B,qBAAqB;AACrB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAIlF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,CAAC,IAAM,SAAS,GAAG,OAAO,CAAgB;IAC9C,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;KACX;IACD,SAAS,EAAE,UAAC,SAAyB,EAAE,QAAiC;QACtE,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,UAAC,KAAqB,EAAE,QAAyB;YACtD,IAAW,WAAW,UAAK,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,EAAjD,EAAkB,CAA+B,CAAC;YAExD,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK;;gBACjE,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBAC/B,IAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CACvD,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAApF,CAAoF,CAChG,CAAC,MAAM,CAAC;oBAET,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAAE;wBACzD,YAAY,EAAE,CAAC;qBAChB;oBACD,OAAO,KAAK,CAAC,YAAY,CACvB,KAA+E,EAC/E;wBACE,0BAA0B,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,0BAA0B,mCAAI,YAAY;wBAClF,oBAAoB,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,oBAAoB,mCAAI,SAAS,EAAE,OAAO;qBACtE,CACT,CAAC;iBACH;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YACH,OAAO,UAAC,KAAK,CAAC,IAAI,eAAK,WAAW,GAAG,eAAe,CAAc,CAAC;QACrE,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"MenuGroup.js","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.tsx"],"names":[],"mappings":";AAAA,0BAA0B;AAC1B,qBAAqB;AACrB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAIlF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,mEAAmE;AACnE,IAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAY,CAAC,CAAC;AAE/D,MAAM,CAAC,IAAM,SAAS,GAAG,OAAO,CAAgB;IAC9C,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ;KAC1D;IACD,SAAS,EAAE,UAAC,SAAyB,EAAE,QAAiC;QACtE,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,UAAC,KAAqB,EAAE,QAAyB;YACtD,IAAW,WAAW,UAAK,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,EAAjD,EAAkB,CAA+B,CAAC;YAExD,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK;;gBACjE,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBAC/B,IAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CACvD,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAApF,CAAoF,CAChG,CAAC,MAAM,CAAC;oBAET,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAAE;wBACzD,YAAY,EAAE,CAAC;qBAChB;oBACD,OAAO,KAAK,CAAC,YAAY,CACvB,KAA+E,EAC/E;wBACE,0BAA0B,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,0BAA0B,mCAAI,YAAY;wBAClF,oBAAoB,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,oBAAoB,mCAAI,SAAS,EAAE,OAAO;qBACtE,CACT,CAAC;iBACH;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,OAAO,CACL,UAAC,KAAK,CAAC,IAAI,eAAK,WAAW;gBACzB,UAAC,KAAK,CAAC,cAAc;gBACnB,mEAAmE;+BAC/D,CAAC,YAAY,IAAI;oBACnB,kBAAkB,EAAE,UAAU;oBAC9B,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,kBAAkB;iBAClC,CAAC,GAED,eAAe,CACK,CACZ,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,11 +1,13 @@
1
1
  import type { ViewProps } from 'react-native';
2
2
  import type { IViewProps } from '@fluentui-react-native/adapters';
3
+ import type { FocusZoneProps } from '@fluentui-react-native/focus-zone';
3
4
  import type { LayoutTokens } from '@fluentui-react-native/tokens';
4
5
  export declare const menuGroupName = "MenuGroup";
5
6
  export type MenuGroupTokens = LayoutTokens;
6
7
  export type MenuGroupProps = IViewProps;
7
8
  export interface MenuGroupSlotProps {
8
9
  root: ViewProps;
10
+ contentWrapper: FocusZoneProps;
9
11
  }
10
12
  export interface MenuGroupType {
11
13
  props: MenuGroupProps;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.types.d.ts","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,kBAAkB,CAAC;CAC/B"}
1
+ {"version":3,"file":"MenuGroup.types.d.ts","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,kBAAkB,CAAC;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.types.js","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.types.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,IAAM,aAAa,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuGroup.types.js","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,IAAM,aAAa,GAAG,WAAW,CAAC"}
@@ -16,8 +16,8 @@ export var defaultMenuItemCheckboxTokens = function (t) { return ({
16
16
  paddingVertical: 3,
17
17
  focused: {
18
18
  backgroundColor: t.colors.brandBackground,
19
- color: t.colors.brandedContent,
20
- iconColor: t.colors.brandedContent,
19
+ color: t.colors.neutralForegroundOnBrand,
20
+ iconColor: t.colors.neutralForegroundOnBrand,
21
21
  checked: {
22
22
  checkmarkColor: t.colors.neutralForeground2Hover,
23
23
  checkmarkVisibility: 1,
@@ -25,10 +25,10 @@ export var defaultMenuItemCheckboxTokens = function (t) { return ({
25
25
  },
26
26
  pressed: {
27
27
  backgroundColor: t.colors.brandBackgroundPressed,
28
- color: t.colors.brandedPressedContent,
29
- iconColor: t.colors.brandedPressedContent,
28
+ color: t.colors.neutralForegroundOnBrandPressed,
29
+ iconColor: t.colors.neutralForegroundOnBrandPressed,
30
30
  checked: {
31
- checkmarkColor: t.colors.brandedPressedContent,
31
+ checkmarkColor: t.colors.neutralForegroundOnBrandPressed,
32
32
  checkmarkVisibility: 1,
33
33
  },
34
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckboxTokens.macos.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.macos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,MAAM,CAAC,IAAM,6BAA6B,GAAiD,UAAC,CAAQ,IAA6B,OAAA,CAAC;IAChI,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;IAC/C,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,YAAY,CAAC,QAAQ;IACvC,aAAa,EAAE,EAAE;IACjB,mBAAmB,EAAE,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO;IACnC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,YAAY,CAAC,MAAM;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IACtC,QAAQ,EAAE,EAAE;IACZ,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,CAAC;IAClB,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe;QACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;QAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;QAClC,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;YAChD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;QACzC,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;YAC9C,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;QAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QACxC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QAC5C,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;YACjD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,OAAO,EAAE;QACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC3C,mBAAmB,EAAE,CAAC;KACvB;CACF,CAAC,EA9C+H,CA8C/H,CAAC"}
1
+ {"version":3,"file":"MenuItemCheckboxTokens.macos.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.macos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,MAAM,CAAC,IAAM,6BAA6B,GAAiD,UAAC,CAAQ,IAA6B,OAAA,CAAC;IAChI,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;IAC/C,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,YAAY,CAAC,QAAQ;IACvC,aAAa,EAAE,EAAE;IACjB,mBAAmB,EAAE,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO;IACnC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,YAAY,CAAC,MAAM;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IACtC,QAAQ,EAAE,EAAE;IACZ,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,CAAC;IAClB,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe;QACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QACxC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QAC5C,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;YAChD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,+BAA+B;QAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,+BAA+B;QACnD,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,+BAA+B;YACxD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;QAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QACxC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QAC5C,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;YACjD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,OAAO,EAAE;QACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC3C,mBAAmB,EAAE,CAAC;KACvB;CACF,CAAC,EA9C+H,CA8C/H,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AA0BnF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,aAAa,aAAa,KAAG,OAE9F,CAAC;AACF,eAAO,MAAM,QAAQ,gLA8EnB,CAAC"}
1
+ {"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AA8BnF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,aAAa,aAAa,KAAG,OAE9F,CAAC;AAEF,eAAO,MAAM,QAAQ,gLAqEnB,CAAC"}
@@ -9,7 +9,6 @@ import { stylingSettings } from './MenuList.styling';
9
9
  import { menuListName } from './MenuList.types';
10
10
  import { useMenuList } from './useMenuList';
11
11
  import { useMenuListContextValue } from './useMenuListContextValue';
12
- import { useMenuContext } from '../context';
13
12
  import { MenuListProvider } from '../context/menuListContext';
14
13
  var MenuStack = stagedComponent(function (props) {
15
14
  var gap = props.gap, rest = __rest(props, ["gap"]);
@@ -28,22 +27,21 @@ var MenuStack = stagedComponent(function (props) {
28
27
  };
29
28
  });
30
29
  MenuStack.displayName = 'MenuStack';
30
+ var shouldHaveFocusZone = ['macos', 'win32'].includes(Platform.OS);
31
+ var focusLandsOnContainer = Platform.OS === 'macos';
32
+ var hasCircularNavigation = Platform.OS === 'win32';
33
+ var hasTabNavigation = Platform.OS === 'win32';
31
34
  export var menuListLookup = function (layer, state, userProps) {
32
35
  return state[layer] || userProps[layer] || layer === 'hasMaxHeight';
33
36
  };
34
- export var MenuList = compose(__assign(__assign({ displayName: menuListName }, stylingSettings), { slots: __assign({ root: MenuStack, scrollView: ScrollView }, (Platform.OS === 'macos' && { focusZone: FocusZone })), useRender: function (userProps, useSlots) {
37
+ export var MenuList = compose(__assign(__assign({ displayName: menuListName }, stylingSettings), { slots: {
38
+ root: MenuStack,
39
+ scrollView: ScrollView,
40
+ focusZone: shouldHaveFocusZone ? FocusZone : React.Fragment,
41
+ }, useRender: function (userProps, useSlots) {
35
42
  var menuList = useMenuList(userProps);
36
- var menuContext = useMenuContext();
37
43
  var menuListContextValue = useMenuListContextValue(menuList);
38
44
  var Slots = useSlots(menuList.props, function (layer) { return menuListLookup(layer, menuList, userProps); });
39
- var focusZoneRef = React.useRef();
40
- var setFocusZoneFocus = function () {
41
- var _a;
42
- (_a = focusZoneRef === null || focusZoneRef === void 0 ? void 0 : focusZoneRef.current) === null || _a === void 0 ? void 0 : _a.focus();
43
- };
44
- React.useEffect(function () {
45
- setFocusZoneFocus();
46
- }, []);
47
45
  return function (_final, children) {
48
46
  var itemCount = React.Children.toArray(children).filter(function (child) { return React.isValidElement(child) && child.type.displayName !== 'MenuDivider'; }).length;
49
47
  var itemPosition = 0;
@@ -60,12 +58,25 @@ export var MenuList = compose(__assign(__assign({ displayName: menuListName }, s
60
58
  }
61
59
  return child;
62
60
  });
63
- var content = Platform.OS === 'macos' ? (withSlots(Slots.root, { onMouseLeave: setFocusZoneFocus, onKeyDown: menuList.onListKeyDown },
64
- withSlots(Slots.scrollView, { showsVerticalScrollIndicator: menuContext.hasMaxHeight, showsHorizontalScrollIndicator: menuContext.hasMaxWidth },
65
- withSlots(Slots.focusZone, { componentRef: focusZoneRef, focusZoneDirection: 'vertical', defaultTabbableElement: focusZoneRef,
66
- // @ts-ignore FocusZone takes ViewProps, but that isn't defined on it's type.
67
- enableFocusRing: false }, childrenWithSet)))) : menuContext.hasMaxHeight ? (withSlots(Slots.root, { onKeyDown: menuList.onListKeyDown, style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} },
68
- withSlots(Slots.scrollView, null, childrenWithSet))) : (withSlots(Slots.root, { onKeyDown: menuList.onListKeyDown, style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} }, childrenWithSet));
61
+ var shouldHaveScrollView = Platform.OS === 'macos' || menuList.hasMaxHeight || menuList.hasMaxWidth;
62
+ var ScrollViewWrapper = shouldHaveScrollView ? Slots.scrollView : React.Fragment;
63
+ var content = (withSlots(Slots.root, null,
64
+ withSlots(ScrollViewWrapper
65
+ // avoid error that fires when props are passed into React.fragment
66
+ , __assign({}, (shouldHaveScrollView && {
67
+ showsVerticalScrollIndicator: menuList.hasMaxHeight,
68
+ showsHorizontalScrollIndicator: menuList.hasMaxWidth,
69
+ })),
70
+ withSlots(Slots.focusZone
71
+ // avoid error that fires when props are passed into React.fragment
72
+ , __assign({}, (shouldHaveFocusZone && {
73
+ componentRef: focusLandsOnContainer && menuList.focusZoneRef,
74
+ focusZoneDirection: 'vertical',
75
+ defaultTabbableElement: focusLandsOnContainer && menuList.focusZoneRef,
76
+ enableFocusRing: false,
77
+ isCircularNavigation: hasCircularNavigation,
78
+ tabKeyNavigation: hasTabNavigation ? 'Normal' : 'None',
79
+ })), childrenWithSet))));
69
80
  return withSlots(MenuListProvider, { value: menuListContextValue }, content);
70
81
  };
71
82
  } }));
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"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"}
@@ -67,9 +67,9 @@ export interface MenuListState extends Omit<MenuListProps, 'checked' | 'onChecke
67
67
  removeRadioItem: (name: string) => void;
68
68
  trackMenuItem: (item: TrackedMenuItem) => void;
69
69
  untrackMenuItem: (item: TrackedMenuItem) => void;
70
- onListKeyDown: (e: InteractionEvent) => void;
71
- hasMaxHeight?: boolean;
72
- hasMaxWidth?: boolean;
70
+ hasMaxHeight: boolean;
71
+ hasMaxWidth: boolean;
72
+ focusZoneRef?: React.RefObject<View>;
73
73
  }
74
74
  export interface MenuListSlotProps {
75
75
  root: React.PropsWithRef<IViewProps> & {
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAmBtF,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aA4JnD,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAS,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,OAAO,SAgBhF,CAAC"}
1
+ {"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAoBtF,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aAwKnD,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAS,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,OAAO,SAgBhF,CAAC"}
@@ -16,6 +16,7 @@ var removeRadioItem = function (name) {
16
16
  };
17
17
  var platformsWithoutFocusOnDisabled = ['ios', 'macos'];
18
18
  var handledKeys = ['Home', 'End'];
19
+ var handleFocusOnMouseLevae = Platform.OS === 'macos';
19
20
  export var useMenuList = function (_props) {
20
21
  var context = useMenuContext();
21
22
  // MenuList v2 needs to be able to be standalone, but this is not in scope for v1
@@ -129,8 +130,17 @@ export var useMenuList = function (_props) {
129
130
  clearTimeout(context.triggerHoverOutTimer);
130
131
  };
131
132
  });
133
+ // focus management
134
+ var focusZoneRef = React.useRef();
135
+ var setFocusZoneFocus = function () {
136
+ var _a;
137
+ (_a = focusZoneRef === null || focusZoneRef === void 0 ? void 0 : focusZoneRef.current) === null || _a === void 0 ? void 0 : _a.focus();
138
+ };
139
+ React.useEffect(function () {
140
+ setFocusZoneFocus();
141
+ }, []);
132
142
  return {
133
- props: __assign({}, context),
143
+ props: __assign(__assign({}, context), { onMouseLeave: handleFocusOnMouseLevae ? setFocusZoneFocus : context.onMouseLeave, onKeyDown: onListKeyDown }),
134
144
  isCheckedControlled: isCheckedControlled,
135
145
  checked: checked,
136
146
  onArrowClose: onArrowClose,
@@ -140,9 +150,9 @@ export var useMenuList = function (_props) {
140
150
  removeRadioItem: removeRadioItem,
141
151
  trackMenuItem: trackMenuItem,
142
152
  untrackMenuItem: untrackMenuItem,
143
- onListKeyDown: onListKeyDown,
144
153
  hasMaxHeight: context.hasMaxHeight,
145
154
  hasMaxWidth: context.hasMaxWidth,
155
+ focusZoneRef: focusZoneRef,
146
156
  };
147
157
  };
148
158
  // Hook called in individual MenuItems to keep track of their refs - this is for "Home" and "End" functionality.
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,2FAA2F;AAC3F,4CAA4C;AAC5C,qGAAqG;AACrG,2HAA2H;AAC3H,IAAM,UAAU,GAAG,EAAE,CAAC;AACtB,IAAM,YAAY,GAAG,UAAC,IAAY;IAChC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC;AACF,IAAM,eAAe,GAAG,UAAC,IAAY;IACnC,UAAU,CAAC,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,KAAK,IAAI,EAAb,CAAa,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,IAAM,+BAA+B,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzD,IAAM,WAAW,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpC,IAAM,uBAAuB,GAAG,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC;AAExD,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,MAAqB;IAC/C,IAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,iFAAiF;IACjF,+DAA+D;IACvD,IAAA,cAAc,GAAyG,OAAO,eAAhH,EAAmB,uBAAuB,GAA+D,OAAO,gBAAtE,EAAW,eAAe,GAAqC,OAAO,QAA5C,EAAE,SAAS,GAA0B,OAAO,UAAjC,EAAE,OAAO,GAAiB,OAAO,QAAxB,EAAE,UAAU,GAAK,OAAO,WAAZ,CAAa;IAEvI,6EAA6E;IAC7E,IAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/B,IAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,KAAK,CAAC;SACd;QAED,KAAkB,UAAe,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE;YAA9B,IAAM,GAAG,wBAAA;YACZ,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACnB;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEhB,IAAA,KAAwC,KAAK,CAAC,QAAQ,CAA0B;QACpF,IAAI,UAAU,EAAE;YACd,OAAO,UAAU,CAAC;SACnB;QAED,IAAM,cAAc,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC;QAC5C,IAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAkB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;YAA7B,IAAM,GAAG,uBAAA;YACZ,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACnB;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,EAXK,eAAe,QAAA,EAAE,kBAAkB,QAWxC,CAAC;IAEH,IAAM,mBAAmB,GAAG,OAAO,eAAe,KAAK,WAAW,CAAC;IACnE,IAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;IAEnE,IAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,UAAC,CAAmB,EAAE,IAAY,EAAE,SAAkB;QACpD,IAAM,cAAc,gBAAQ,OAAO,CAAE,CAAC;QACtC,IAAI,SAAS,EAAE;YACb,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;SAC7B;aAAM;YACL,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,mBAAmB,EAAE;YACxB,kBAAkB,CAAC,cAAc,CAAC,CAAC;SACpC;QAED,IAAI,uBAAuB,EAAE;YAC3B,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;SACzD;IACH,CAAC,EACD,CAAC,mBAAmB,EAAE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,CAC5E,CAAC;IAEF,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,UAAC,CAAmB,EAAE,IAAY;QAChC,IAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,KAA0B,UAAoB,EAApB,KAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAApB,cAAoB,EAApB,IAAoB,EAAE;YAA3C,IAAM,WAAW,SAAA;YACpB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACrC,4CAA4C;gBAC5C,cAAc,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;aACpD;SACF;QACD,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,mBAAmB,EAAE;YACxB,kBAAkB,CAAC,cAAc,CAAC,CAAC;SACpC;QAED,IAAI,uBAAuB,EAAE;YAC3B,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;SACzD;IACH,CAAC,EACD,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAC5E,CAAC;IAEF,oGAAoG;IACpG,0GAA0G;IAC1G,gGAAgG;IAChG,8FAA8F;IAC9F,6FAA6F;IAC7F,IAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACpC,UAAC,CAAmB;;QAClB,IAAI,CAAC,SAAS,EAAE;YACd,OAAO;SACR;QAED,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACnD,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,0CAAE,KAAK,EAAE,CAAC;IAC/B,CAAC,EACD,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CACjC,CAAC;IAEF,yGAAyG;IACzG,6GAA6G;IAC7G,0GAA0G;IAC1G,4CAA4C;IAE5C,8GAA8G;IAC9G,uCAAuC;IACvC,IAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAoB,cAAM,OAAA,EAAE,EAAF,CAAE,EAAE,EAAE,CAAC,CAAC;IACxE,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,UAAC,IAAqB,IAAK,OAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAA3B,CAA2B,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACpH,IAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,UAAC,IAAqB;QACpB,OAAA,gBAAgB,CAAC,MAAM,CACrB,gBAAgB,CAAC,SAAS,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAlB,CAAkB,CAAC,EACrD,CAAC,CACF;IAHD,CAGC,EACH,CAAC,gBAAgB,CAAC,CACnB,CAAC;IAEF,IAAM,aAAa,GAAG,UAAC,CAAmB;;QACxC,IAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;QAC9B,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7B,yFAAyF;YACzF,oEAAoE;YACpE,IAAI,SAAS,SAAQ,EAAE,GAAG,SAAQ,CAAC;YACnC,IAAI,GAAG,KAAK,MAAM,EAAE;gBAClB,SAAS,GAAG,CAAC,CAAC;gBACd,GAAG,GAAG,CAAC,CAAC;aACT;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACxB,SAAS,GAAG,CAAC,CAAC,CAAC;gBACf,GAAG,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;aACnC;YACD,OAAO,+BAA+B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;gBAC9F,GAAG,IAAI,SAAS,CAAC;aAClB;YACD,MAAA,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;SAC5C;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC;QACd,OAAO,SAAS,OAAO;YACrB,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,IAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAQ,CAAC;IAC1C,IAAM,iBAAiB,GAAG;;QACxB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,0CAAE,KAAK,EAAE,CAAC;IACjC,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC;QACd,iBAAiB,EAAE,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,KAAK,wBACA,OAAO,KACV,YAAY,EAAE,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAChF,SAAS,EAAE,aAAa,GACzB;QACD,mBAAmB,qBAAA;QACnB,OAAO,SAAA;QACP,YAAY,cAAA;QACZ,eAAe,iBAAA;QACf,WAAW,aAAA;QACX,YAAY,cAAA;QACZ,eAAe,iBAAA;QACf,aAAa,eAAA;QACb,eAAe,iBAAA;QACf,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,YAAY;KAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,gHAAgH;AAChH,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,GAA0B,EAAE,QAAiB;IACzE,IAAA,KAAqC,kBAAkB,EAAE,EAAvD,aAAa,mBAAA,EAAE,eAAe,qBAAyB,CAAC;IAChE,IAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACxB,cAAM,OAAA,CAAC;QACL,GAAG,KAAA;QACH,QAAQ,UAAA;KACT,CAAC,EAHI,CAGJ,EACF,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChB,CAAC;IAEF,oEAAoE;IACpE,KAAK,CAAC,SAAS,CAAC;QACd,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,cAAM,OAAA,eAAe,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC;QACnC,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import type { MenuListState } from '../MenuList/MenuList.types';
3
3
  /**
4
4
  * Context shared between Menu and its child components
5
5
  */
6
- export type MenuListContextValue = Omit<MenuListState, 'props'> & {
6
+ export type MenuListContextValue = Omit<MenuListState, 'props' | 'focusZoneRef' | 'hasMaxHeight' | 'hasMaxWidth'> & {
7
7
  hasCheckmarks: boolean;
8
8
  hasIcons: boolean;
9
9
  hasTooltips: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"menuListContext.d.ts","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG;IAChE,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,qCAa1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,sCAA2B,CAAC;AACzD,eAAO,MAAM,kBAAkB,4BAA0C,CAAC"}
1
+ {"version":3,"file":"menuListContext.d.ts","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG;IAClH,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,qCAY1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,sCAA2B,CAAC;AACzD,eAAO,MAAM,kBAAkB,4BAA0C,CAAC"}
@@ -11,7 +11,6 @@ export var MenuListContext = React.createContext({
11
11
  removeRadioItem: function () { return false; },
12
12
  trackMenuItem: function () { return false; },
13
13
  untrackMenuItem: function () { return false; },
14
- onListKeyDown: function () { return false; },
15
14
  });
16
15
  export var MenuListProvider = MenuListContext.Provider;
17
16
  export var useMenuListContext = function () { return React.useContext(MenuListContext); };
@@ -1 +1 @@
1
- {"version":3,"file":"menuListContext.js","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,CAAC,IAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB;IACvE,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC1B,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzD,MAAM,CAAC,IAAM,kBAAkB,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAjC,CAAiC,CAAC"}
1
+ {"version":3,"file":"menuListContext.js","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,CAAC,IAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB;IACvE,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC1B,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzD,MAAM,CAAC,IAAM,kBAAkB,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAjC,CAAiC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.d.ts","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS,uOAiCpB,CAAC"}
1
+ {"version":3,"file":"MenuGroup.d.ts","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.tsx"],"names":[],"mappings":"AAeA,eAAO,MAAM,SAAS,uOAgDpB,CAAC"}
@@ -6,12 +6,16 @@ var tslib_1 = require("tslib");
6
6
  /** @jsx withSlots */
7
7
  var react_1 = tslib_1.__importDefault(require("react"));
8
8
  var react_native_1 = require("react-native");
9
+ var focus_zone_1 = require("@fluentui-react-native/focus-zone");
9
10
  var framework_1 = require("@fluentui-react-native/framework");
10
11
  var MenuGroup_types_1 = require("./MenuGroup.types");
12
+ // Intentionally not enabled on macOS to match system context menus
13
+ var hasFocusZone = ['win32'].includes(react_native_1.Platform.OS);
11
14
  exports.MenuGroup = (0, framework_1.compose)({
12
15
  displayName: MenuGroup_types_1.menuGroupName,
13
16
  slots: {
14
17
  root: react_native_1.View,
18
+ contentWrapper: hasFocusZone ? focus_zone_1.FocusZone : react_1.default.Fragment,
15
19
  },
16
20
  useRender: function (userProps, useSlots) {
17
21
  var Slots = useSlots(userProps);
@@ -32,7 +36,14 @@ exports.MenuGroup = (0, framework_1.compose)({
32
36
  }
33
37
  return child;
34
38
  });
35
- return (0, framework_1.withSlots)(Slots.root, tslib_1.__assign({}, mergedProps), childrenWithSet);
39
+ return ((0, framework_1.withSlots)(Slots.root, tslib_1.__assign({}, mergedProps),
40
+ (0, framework_1.withSlots)(Slots.contentWrapper
41
+ // avoid error that fires when props are passed into React.fragment
42
+ , tslib_1.__assign({}, (hasFocusZone && {
43
+ focusZoneDirection: 'vertical',
44
+ enableFocusRing: false,
45
+ navigateAtEnd: 'NavigateContinue',
46
+ })), childrenWithSet)));
36
47
  };
37
48
  },
38
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.js","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.tsx"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qBAAqB;AACrB,wDAA0B;AAC1B,6CAAoC;AAEpC,8DAAkF;AAIlF,qDAAkD;AAErC,QAAA,SAAS,GAAG,IAAA,mBAAO,EAAgB;IAC9C,WAAW,EAAE,+BAAa;IAC1B,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;KACX;IACD,SAAS,EAAE,UAAC,SAAyB,EAAE,QAAiC;QACtE,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,UAAC,KAAqB,EAAE,QAAyB;YACtD,IAAW,WAAW,kBAAK,IAAA,sBAAU,EAAC,SAAS,EAAE,KAAK,CAAC,EAAjD,EAAkB,CAA+B,CAAC;YAExD,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAM,eAAe,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK;;gBACjE,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBAC/B,IAAM,SAAS,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CACvD,UAAC,KAAK,IAAK,OAAA,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAApF,CAAoF,CAChG,CAAC,MAAM,CAAC;oBAET,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAAE;wBACzD,YAAY,EAAE,CAAC;qBAChB;oBACD,OAAO,eAAK,CAAC,YAAY,CACvB,KAA+E,EAC/E;wBACE,0BAA0B,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,0BAA0B,mCAAI,YAAY;wBAClF,oBAAoB,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,oBAAoB,mCAAI,SAAS,EAAE,OAAO;qBACtE,CACT,CAAC;iBACH;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YACH,OAAO,2BAAC,KAAK,CAAC,IAAI,uBAAK,WAAW,GAAG,eAAe,CAAc,CAAC;QACrE,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"MenuGroup.js","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.tsx"],"names":[],"mappings":";;;;AAAA,0BAA0B;AAC1B,qBAAqB;AACrB,wDAA0B;AAC1B,6CAA8C;AAE9C,gEAA8D;AAC9D,8DAAkF;AAIlF,qDAAkD;AAElD,mEAAmE;AACnE,IAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,uBAAQ,CAAC,EAAY,CAAC,CAAC;AAElD,QAAA,SAAS,GAAG,IAAA,mBAAO,EAAgB;IAC9C,WAAW,EAAE,+BAAa;IAC1B,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,sBAAS,CAAC,CAAC,CAAC,eAAK,CAAC,QAAQ;KAC1D;IACD,SAAS,EAAE,UAAC,SAAyB,EAAE,QAAiC;QACtE,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,UAAC,KAAqB,EAAE,QAAyB;YACtD,IAAW,WAAW,kBAAK,IAAA,sBAAU,EAAC,SAAS,EAAE,KAAK,CAAC,EAAjD,EAAkB,CAA+B,CAAC;YAExD,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAM,eAAe,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK;;gBACjE,IAAI,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBAC/B,IAAM,SAAS,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CACvD,UAAC,KAAK,IAAK,OAAA,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAApF,CAAoF,CAChG,CAAC,MAAM,CAAC;oBAET,IAAK,KAAa,CAAC,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAAE;wBACzD,YAAY,EAAE,CAAC;qBAChB;oBACD,OAAO,eAAK,CAAC,YAAY,CACvB,KAA+E,EAC/E;wBACE,0BAA0B,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,0BAA0B,mCAAI,YAAY;wBAClF,oBAAoB,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,oBAAoB,mCAAI,SAAS,EAAE,OAAO;qBACtE,CACT,CAAC;iBACH;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,uBAAK,WAAW;gBACzB,2BAAC,KAAK,CAAC,cAAc;gBACnB,mEAAmE;uCAC/D,CAAC,YAAY,IAAI;oBACnB,kBAAkB,EAAE,UAAU;oBAC9B,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,kBAAkB;iBAClC,CAAC,GAED,eAAe,CACK,CACZ,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,11 +1,13 @@
1
1
  import type { ViewProps } from 'react-native';
2
2
  import type { IViewProps } from '@fluentui-react-native/adapters';
3
+ import type { FocusZoneProps } from '@fluentui-react-native/focus-zone';
3
4
  import type { LayoutTokens } from '@fluentui-react-native/tokens';
4
5
  export declare const menuGroupName = "MenuGroup";
5
6
  export type MenuGroupTokens = LayoutTokens;
6
7
  export type MenuGroupProps = IViewProps;
7
8
  export interface MenuGroupSlotProps {
8
9
  root: ViewProps;
10
+ contentWrapper: FocusZoneProps;
9
11
  }
10
12
  export interface MenuGroupType {
11
13
  props: MenuGroupProps;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.types.d.ts","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,kBAAkB,CAAC;CAC/B"}
1
+ {"version":3,"file":"MenuGroup.types.d.ts","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,kBAAkB,CAAC;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuGroup.types.js","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.types.ts"],"names":[],"mappings":";;;AAKa,QAAA,aAAa,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuGroup.types.js","sourceRoot":"","sources":["../../src/MenuGroup/MenuGroup.types.ts"],"names":[],"mappings":";;;AAMa,QAAA,aAAa,GAAG,WAAW,CAAC"}
@@ -19,8 +19,8 @@ var defaultMenuItemCheckboxTokens = function (t) { return ({
19
19
  paddingVertical: 3,
20
20
  focused: {
21
21
  backgroundColor: t.colors.brandBackground,
22
- color: t.colors.brandedContent,
23
- iconColor: t.colors.brandedContent,
22
+ color: t.colors.neutralForegroundOnBrand,
23
+ iconColor: t.colors.neutralForegroundOnBrand,
24
24
  checked: {
25
25
  checkmarkColor: t.colors.neutralForeground2Hover,
26
26
  checkmarkVisibility: 1,
@@ -28,10 +28,10 @@ var defaultMenuItemCheckboxTokens = function (t) { return ({
28
28
  },
29
29
  pressed: {
30
30
  backgroundColor: t.colors.brandBackgroundPressed,
31
- color: t.colors.brandedPressedContent,
32
- iconColor: t.colors.brandedPressedContent,
31
+ color: t.colors.neutralForegroundOnBrandPressed,
32
+ iconColor: t.colors.neutralForegroundOnBrandPressed,
33
33
  checked: {
34
- checkmarkColor: t.colors.brandedPressedContent,
34
+ checkmarkColor: t.colors.neutralForegroundOnBrandPressed,
35
35
  checkmarkVisibility: 1,
36
36
  },
37
37
  },
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckboxTokens.macos.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.macos.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAK5D,IAAM,6BAA6B,GAAiD,UAAC,CAAQ,IAA6B,OAAA,CAAC;IAChI,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;IAC/C,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,2BAAY,CAAC,QAAQ;IACvC,aAAa,EAAE,EAAE;IACjB,mBAAmB,EAAE,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,OAAO;IACnC,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,2BAAY,CAAC,MAAM;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IACtC,QAAQ,EAAE,EAAE;IACZ,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,CAAC;IAClB,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe;QACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;QAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;QAClC,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;YAChD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;QACzC,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;YAC9C,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;QAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QACxC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QAC5C,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;YACjD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,OAAO,EAAE;QACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC3C,mBAAmB,EAAE,CAAC;KACvB;CACF,CAAC,EA9C+H,CA8C/H,CAAC;AA9CU,QAAA,6BAA6B,iCA8CvC"}
1
+ {"version":3,"file":"MenuItemCheckboxTokens.macos.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.macos.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAK5D,IAAM,6BAA6B,GAAiD,UAAC,CAAQ,IAA6B,OAAA,CAAC;IAChI,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;IAC/C,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,2BAAY,CAAC,QAAQ;IACvC,aAAa,EAAE,EAAE;IACjB,mBAAmB,EAAE,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,OAAO;IACnC,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,2BAAY,CAAC,MAAM;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IACtC,QAAQ,EAAE,EAAE;IACZ,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,CAAC;IAClB,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe;QACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QACxC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QAC5C,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;YAChD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,+BAA+B;QAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,+BAA+B;QACnD,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,+BAA+B;YACxD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;QAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QACxC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;QAC5C,OAAO,EAAE;YACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB;YACjD,mBAAmB,EAAE,CAAC;SACvB;KACF;IACD,OAAO,EAAE;QACP,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC3C,mBAAmB,EAAE,CAAC;KACvB;CACF,CAAC,EA9C+H,CA8C/H,CAAC;AA9CU,QAAA,6BAA6B,iCA8CvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AA0BnF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,aAAa,aAAa,KAAG,OAE9F,CAAC;AACF,eAAO,MAAM,QAAQ,gLA8EnB,CAAC"}
1
+ {"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AA8BnF,eAAO,MAAM,cAAc,UAAW,MAAM,SAAS,aAAa,aAAa,aAAa,KAAG,OAE9F,CAAC;AAEF,eAAO,MAAM,QAAQ,gLAqEnB,CAAC"}
@@ -12,7 +12,6 @@ var MenuList_styling_1 = require("./MenuList.styling");
12
12
  var MenuList_types_1 = require("./MenuList.types");
13
13
  var useMenuList_1 = require("./useMenuList");
14
14
  var useMenuListContextValue_1 = require("./useMenuListContextValue");
15
- var context_1 = require("../context");
16
15
  var menuListContext_1 = require("../context/menuListContext");
17
16
  var MenuStack = (0, framework_1.stagedComponent)(function (props) {
18
17
  var gap = props.gap, rest = tslib_1.__rest(props, ["gap"]);
@@ -31,23 +30,22 @@ var MenuStack = (0, framework_1.stagedComponent)(function (props) {
31
30
  };
32
31
  });
33
32
  MenuStack.displayName = 'MenuStack';
33
+ var shouldHaveFocusZone = ['macos', 'win32'].includes(react_native_1.Platform.OS);
34
+ var focusLandsOnContainer = react_native_1.Platform.OS === 'macos';
35
+ var hasCircularNavigation = react_native_1.Platform.OS === 'win32';
36
+ var hasTabNavigation = react_native_1.Platform.OS === 'win32';
34
37
  var menuListLookup = function (layer, state, userProps) {
35
38
  return state[layer] || userProps[layer] || layer === 'hasMaxHeight';
36
39
  };
37
40
  exports.menuListLookup = menuListLookup;
38
- exports.MenuList = (0, framework_1.compose)(tslib_1.__assign(tslib_1.__assign({ displayName: MenuList_types_1.menuListName }, MenuList_styling_1.stylingSettings), { slots: tslib_1.__assign({ root: MenuStack, scrollView: react_native_1.ScrollView }, (react_native_1.Platform.OS === 'macos' && { focusZone: focus_zone_1.FocusZone })), useRender: function (userProps, useSlots) {
41
+ exports.MenuList = (0, framework_1.compose)(tslib_1.__assign(tslib_1.__assign({ displayName: MenuList_types_1.menuListName }, MenuList_styling_1.stylingSettings), { slots: {
42
+ root: MenuStack,
43
+ scrollView: react_native_1.ScrollView,
44
+ focusZone: shouldHaveFocusZone ? focus_zone_1.FocusZone : react_1.default.Fragment,
45
+ }, useRender: function (userProps, useSlots) {
39
46
  var menuList = (0, useMenuList_1.useMenuList)(userProps);
40
- var menuContext = (0, context_1.useMenuContext)();
41
47
  var menuListContextValue = (0, useMenuListContextValue_1.useMenuListContextValue)(menuList);
42
48
  var Slots = useSlots(menuList.props, function (layer) { return (0, exports.menuListLookup)(layer, menuList, userProps); });
43
- var focusZoneRef = react_1.default.useRef();
44
- var setFocusZoneFocus = function () {
45
- var _a;
46
- (_a = focusZoneRef === null || focusZoneRef === void 0 ? void 0 : focusZoneRef.current) === null || _a === void 0 ? void 0 : _a.focus();
47
- };
48
- react_1.default.useEffect(function () {
49
- setFocusZoneFocus();
50
- }, []);
51
49
  return function (_final, children) {
52
50
  var itemCount = react_1.default.Children.toArray(children).filter(function (child) { return react_1.default.isValidElement(child) && child.type.displayName !== 'MenuDivider'; }).length;
53
51
  var itemPosition = 0;
@@ -64,12 +62,25 @@ exports.MenuList = (0, framework_1.compose)(tslib_1.__assign(tslib_1.__assign({
64
62
  }
65
63
  return child;
66
64
  });
67
- var content = react_native_1.Platform.OS === 'macos' ? ((0, framework_1.withSlots)(Slots.root, { onMouseLeave: setFocusZoneFocus, onKeyDown: menuList.onListKeyDown },
68
- (0, framework_1.withSlots)(Slots.scrollView, { showsVerticalScrollIndicator: menuContext.hasMaxHeight, showsHorizontalScrollIndicator: menuContext.hasMaxWidth },
69
- (0, framework_1.withSlots)(Slots.focusZone, { componentRef: focusZoneRef, focusZoneDirection: 'vertical', defaultTabbableElement: focusZoneRef,
70
- // @ts-ignore FocusZone takes ViewProps, but that isn't defined on it's type.
71
- enableFocusRing: false }, childrenWithSet)))) : menuContext.hasMaxHeight ? ((0, framework_1.withSlots)(Slots.root, { onKeyDown: menuList.onListKeyDown, style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} },
72
- (0, framework_1.withSlots)(Slots.scrollView, null, childrenWithSet))) : ((0, framework_1.withSlots)(Slots.root, { onKeyDown: menuList.onListKeyDown, style: menuContext.minWidth ? { minWidth: menuContext.minWidth } : {} }, childrenWithSet));
65
+ var shouldHaveScrollView = react_native_1.Platform.OS === 'macos' || menuList.hasMaxHeight || menuList.hasMaxWidth;
66
+ var ScrollViewWrapper = shouldHaveScrollView ? Slots.scrollView : react_1.default.Fragment;
67
+ var content = ((0, framework_1.withSlots)(Slots.root, null,
68
+ (0, framework_1.withSlots)(ScrollViewWrapper
69
+ // avoid error that fires when props are passed into React.fragment
70
+ , tslib_1.__assign({}, (shouldHaveScrollView && {
71
+ showsVerticalScrollIndicator: menuList.hasMaxHeight,
72
+ showsHorizontalScrollIndicator: menuList.hasMaxWidth,
73
+ })),
74
+ (0, framework_1.withSlots)(Slots.focusZone
75
+ // avoid error that fires when props are passed into React.fragment
76
+ , tslib_1.__assign({}, (shouldHaveFocusZone && {
77
+ componentRef: focusLandsOnContainer && menuList.focusZoneRef,
78
+ focusZoneDirection: 'vertical',
79
+ defaultTabbableElement: focusLandsOnContainer && menuList.focusZoneRef,
80
+ enableFocusRing: false,
81
+ isCircularNavigation: hasCircularNavigation,
82
+ tabKeyNavigation: hasTabNavigation ? 'Normal' : 'None',
83
+ })), childrenWithSet))));
73
84
  return (0, framework_1.withSlots)(menuListContext_1.MenuListProvider, { value: menuListContextValue }, content);
74
85
  };
75
86
  } }));
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.tsx"],"names":[],"mappings":"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"}
@@ -67,9 +67,9 @@ export interface MenuListState extends Omit<MenuListProps, 'checked' | 'onChecke
67
67
  removeRadioItem: (name: string) => void;
68
68
  trackMenuItem: (item: TrackedMenuItem) => void;
69
69
  untrackMenuItem: (item: TrackedMenuItem) => void;
70
- onListKeyDown: (e: InteractionEvent) => void;
71
- hasMaxHeight?: boolean;
72
- hasMaxWidth?: boolean;
70
+ hasMaxHeight: boolean;
71
+ hasMaxWidth: boolean;
72
+ focusZoneRef?: React.RefObject<View>;
73
73
  }
74
74
  export interface MenuListSlotProps {
75
75
  root: React.PropsWithRef<IViewProps> & {
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAmBtF,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aA4JnD,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAS,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,OAAO,SAgBhF,CAAC"}
1
+ {"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAoBtF,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aAwKnD,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAAS,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,OAAO,SAgBhF,CAAC"}
@@ -19,6 +19,7 @@ var removeRadioItem = function (name) {
19
19
  };
20
20
  var platformsWithoutFocusOnDisabled = ['ios', 'macos'];
21
21
  var handledKeys = ['Home', 'End'];
22
+ var handleFocusOnMouseLevae = react_native_1.Platform.OS === 'macos';
22
23
  var useMenuList = function (_props) {
23
24
  var context = (0, menuContext_1.useMenuContext)();
24
25
  // MenuList v2 needs to be able to be standalone, but this is not in scope for v1
@@ -132,8 +133,17 @@ var useMenuList = function (_props) {
132
133
  clearTimeout(context.triggerHoverOutTimer);
133
134
  };
134
135
  });
136
+ // focus management
137
+ var focusZoneRef = react_1.default.useRef();
138
+ var setFocusZoneFocus = function () {
139
+ var _a;
140
+ (_a = focusZoneRef === null || focusZoneRef === void 0 ? void 0 : focusZoneRef.current) === null || _a === void 0 ? void 0 : _a.focus();
141
+ };
142
+ react_1.default.useEffect(function () {
143
+ setFocusZoneFocus();
144
+ }, []);
135
145
  return {
136
- props: tslib_1.__assign({}, context),
146
+ props: tslib_1.__assign(tslib_1.__assign({}, context), { onMouseLeave: handleFocusOnMouseLevae ? setFocusZoneFocus : context.onMouseLeave, onKeyDown: onListKeyDown }),
137
147
  isCheckedControlled: isCheckedControlled,
138
148
  checked: checked,
139
149
  onArrowClose: onArrowClose,
@@ -143,9 +153,9 @@ var useMenuList = function (_props) {
143
153
  removeRadioItem: removeRadioItem,
144
154
  trackMenuItem: trackMenuItem,
145
155
  untrackMenuItem: untrackMenuItem,
146
- onListKeyDown: onListKeyDown,
147
156
  hasMaxHeight: context.hasMaxHeight,
148
157
  hasMaxWidth: context.hasMaxWidth,
158
+ focusZoneRef: focusZoneRef,
149
159
  };
150
160
  };
151
161
  exports.useMenuList = useMenuList;
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { MenuListState } from '../MenuList/MenuList.types';
3
3
  /**
4
4
  * Context shared between Menu and its child components
5
5
  */
6
- export type MenuListContextValue = Omit<MenuListState, 'props'> & {
6
+ export type MenuListContextValue = Omit<MenuListState, 'props' | 'focusZoneRef' | 'hasMaxHeight' | 'hasMaxWidth'> & {
7
7
  hasCheckmarks: boolean;
8
8
  hasIcons: boolean;
9
9
  hasTooltips: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"menuListContext.d.ts","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG;IAChE,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,qCAa1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,sCAA2B,CAAC;AACzD,eAAO,MAAM,kBAAkB,4BAA0C,CAAC"}
1
+ {"version":3,"file":"menuListContext.d.ts","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG;IAClH,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,qCAY1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,sCAA2B,CAAC;AACzD,eAAO,MAAM,kBAAkB,4BAA0C,CAAC"}
@@ -15,7 +15,6 @@ exports.MenuListContext = React.createContext({
15
15
  removeRadioItem: function () { return false; },
16
16
  trackMenuItem: function () { return false; },
17
17
  untrackMenuItem: function () { return false; },
18
- onListKeyDown: function () { return false; },
19
18
  });
20
19
  exports.MenuListProvider = exports.MenuListContext.Provider;
21
20
  var useMenuListContext = function () { return React.useContext(exports.MenuListContext); };
@@ -1 +1 @@
1
- {"version":3,"file":"menuListContext.js","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":";;;;AAAA,mDAA+B;AAalB,QAAA,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB;IACvE,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC1B,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;CAC3B,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,uBAAe,CAAC,QAAQ,CAAC;AAClD,IAAM,kBAAkB,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,uBAAe,CAAC,EAAjC,CAAiC,CAAC;AAA7D,QAAA,kBAAkB,sBAA2C"}
1
+ {"version":3,"file":"menuListContext.js","sourceRoot":"","sources":["../../src/context/menuListContext.ts"],"names":[],"mappings":";;;;AAAA,mDAA+B;AAalB,QAAA,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB;IACvE,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,YAAY,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IACzB,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC5B,aAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;IAC1B,eAAe,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK;CAC7B,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,uBAAe,CAAC,QAAQ,CAAC;AAClD,IAAM,kBAAkB,GAAG,cAAM,OAAA,KAAK,CAAC,UAAU,CAAC,uBAAe,CAAC,EAAjC,CAAiC,CAAC;AAA7D,QAAA,kBAAkB,sBAA2C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui-react-native/menu",
3
- "version": "1.11.26",
3
+ "version": "1.11.28",
4
4
  "description": "A cross-platform Menu component using the Fluent Design System",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -23,19 +23,19 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@fluentui-react-native/adapters": ">=0.11.3 <1.0.0",
26
- "@fluentui-react-native/callout": ">=0.24.16 <1.0.0",
27
- "@fluentui-react-native/focus-zone": ">=0.13.1 <1.0.0",
28
- "@fluentui-react-native/framework": "0.11.7",
29
- "@fluentui-react-native/icon": "^0.19.13",
30
- "@fluentui-react-native/interactive-hooks": ">=0.24.9 <1.0.0",
31
- "@fluentui-react-native/text": ">=0.21.11 <1.0.0",
32
- "@fluentui-react-native/theme-tokens": ">=0.25.1 <1.0.0",
33
- "@fluentui-react-native/tokens": ">=0.21.3 <1.0.0",
26
+ "@fluentui-react-native/callout": ">=0.24.17 <1.0.0",
27
+ "@fluentui-react-native/focus-zone": ">=0.13.3 <1.0.0",
28
+ "@fluentui-react-native/framework": "0.11.8",
29
+ "@fluentui-react-native/icon": "^0.19.14",
30
+ "@fluentui-react-native/interactive-hooks": ">=0.24.10 <1.0.0",
31
+ "@fluentui-react-native/text": ">=0.21.12 <1.0.0",
32
+ "@fluentui-react-native/theme-tokens": ">=0.25.2 <1.0.0",
33
+ "@fluentui-react-native/tokens": ">=0.21.4 <1.0.0",
34
34
  "@fluentui-react-native/use-styling": ">=0.11.1 <1.0.0",
35
35
  "tslib": "^2.3.1"
36
36
  },
37
37
  "devDependencies": {
38
- "@fluentui-react-native/button": ">=0.35.8 <1.0.0",
38
+ "@fluentui-react-native/button": ">=0.35.9 <1.0.0",
39
39
  "@fluentui-react-native/eslint-config-rules": "^0.1.1",
40
40
  "@fluentui-react-native/scripts": "^0.1.1",
41
41
  "@fluentui-react-native/test-tools": ">=0.1.1 <1.0.0",
@@ -1,18 +1,23 @@
1
1
  /** @jsxRuntime classic */
2
2
  /** @jsx withSlots */
3
3
  import React from 'react';
4
- import { View } from 'react-native';
4
+ import { Platform, View } from 'react-native';
5
5
 
6
+ import { FocusZone } from '@fluentui-react-native/focus-zone';
6
7
  import { compose, mergeProps, withSlots } from '@fluentui-react-native/framework';
7
8
  import type { UseSlots } from '@fluentui-react-native/framework';
8
9
 
9
10
  import type { MenuGroupProps, MenuGroupType } from './MenuGroup.types';
10
11
  import { menuGroupName } from './MenuGroup.types';
11
12
 
13
+ // Intentionally not enabled on macOS to match system context menus
14
+ const hasFocusZone = ['win32'].includes(Platform.OS as string);
15
+
12
16
  export const MenuGroup = compose<MenuGroupType>({
13
17
  displayName: menuGroupName,
14
18
  slots: {
15
19
  root: View,
20
+ contentWrapper: hasFocusZone ? FocusZone : React.Fragment,
16
21
  },
17
22
  useRender: (userProps: MenuGroupProps, useSlots: UseSlots<MenuGroupType>) => {
18
23
  const Slots = useSlots(userProps);
@@ -39,7 +44,21 @@ export const MenuGroup = compose<MenuGroupType>({
39
44
  }
40
45
  return child;
41
46
  });
42
- return <Slots.root {...mergedProps}>{childrenWithSet}</Slots.root>;
47
+
48
+ return (
49
+ <Slots.root {...mergedProps}>
50
+ <Slots.contentWrapper
51
+ // avoid error that fires when props are passed into React.fragment
52
+ {...(hasFocusZone && {
53
+ focusZoneDirection: 'vertical',
54
+ enableFocusRing: false,
55
+ navigateAtEnd: 'NavigateContinue',
56
+ })}
57
+ >
58
+ {childrenWithSet}
59
+ </Slots.contentWrapper>
60
+ </Slots.root>
61
+ );
43
62
  };
44
63
  },
45
64
  });
@@ -1,6 +1,7 @@
1
1
  import type { ViewProps } from 'react-native';
2
2
 
3
3
  import type { IViewProps } from '@fluentui-react-native/adapters';
4
+ import type { FocusZoneProps } from '@fluentui-react-native/focus-zone';
4
5
  import type { LayoutTokens } from '@fluentui-react-native/tokens';
5
6
 
6
7
  export const menuGroupName = 'MenuGroup';
@@ -11,6 +12,7 @@ export type MenuGroupProps = IViewProps;
11
12
 
12
13
  export interface MenuGroupSlotProps {
13
14
  root: ViewProps;
15
+ contentWrapper: FocusZoneProps;
14
16
  }
15
17
 
16
18
  export interface MenuGroupType {
@@ -21,8 +21,8 @@ export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens
21
21
  paddingVertical: 3,
22
22
  focused: {
23
23
  backgroundColor: t.colors.brandBackground,
24
- color: t.colors.brandedContent,
25
- iconColor: t.colors.brandedContent,
24
+ color: t.colors.neutralForegroundOnBrand,
25
+ iconColor: t.colors.neutralForegroundOnBrand,
26
26
  checked: {
27
27
  checkmarkColor: t.colors.neutralForeground2Hover,
28
28
  checkmarkVisibility: 1,
@@ -30,10 +30,10 @@ export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens
30
30
  },
31
31
  pressed: {
32
32
  backgroundColor: t.colors.brandBackgroundPressed,
33
- color: t.colors.brandedPressedContent,
34
- iconColor: t.colors.brandedPressedContent,
33
+ color: t.colors.neutralForegroundOnBrandPressed,
34
+ iconColor: t.colors.neutralForegroundOnBrandPressed,
35
35
  checked: {
36
- checkmarkColor: t.colors.brandedPressedContent,
36
+ checkmarkColor: t.colors.neutralForegroundOnBrandPressed,
37
37
  checkmarkVisibility: 1,
38
38
  },
39
39
  },
@@ -13,7 +13,6 @@ import type { MenuListProps, MenuListState, MenuListType } from './MenuList.type
13
13
  import { menuListName } from './MenuList.types';
14
14
  import { useMenuList } from './useMenuList';
15
15
  import { useMenuListContextValue } from './useMenuListContextValue';
16
- import { useMenuContext } from '../context';
17
16
  import { MenuListProvider } from '../context/menuListContext';
18
17
 
19
18
  const MenuStack = stagedComponent((props: React.PropsWithRef<IViewProps> & { gap?: number }) => {
@@ -35,32 +34,28 @@ const MenuStack = stagedComponent((props: React.PropsWithRef<IViewProps> & { gap
35
34
  });
36
35
  MenuStack.displayName = 'MenuStack';
37
36
 
37
+ const shouldHaveFocusZone = ['macos', 'win32'].includes(Platform.OS as string);
38
+ const focusLandsOnContainer = Platform.OS === 'macos';
39
+ const hasCircularNavigation = Platform.OS === ('win32' as any);
40
+ const hasTabNavigation = Platform.OS === ('win32' as any);
41
+
38
42
  export const menuListLookup = (layer: string, state: MenuListState, userProps: MenuListProps): boolean => {
39
43
  return state[layer] || userProps[layer] || layer === 'hasMaxHeight';
40
44
  };
45
+
41
46
  export const MenuList = compose<MenuListType>({
42
47
  displayName: menuListName,
43
48
  ...stylingSettings,
44
49
  slots: {
45
50
  root: MenuStack,
46
51
  scrollView: ScrollView,
47
- ...(Platform.OS === 'macos' && { focusZone: FocusZone }),
52
+ focusZone: shouldHaveFocusZone ? FocusZone : React.Fragment,
48
53
  },
49
54
  useRender: (userProps: MenuListProps, useSlots: UseSlots<MenuListType>) => {
50
55
  const menuList = useMenuList(userProps);
51
- const menuContext = useMenuContext();
52
56
  const menuListContextValue = useMenuListContextValue(menuList);
53
57
  const Slots = useSlots(menuList.props, (layer) => menuListLookup(layer, menuList, userProps));
54
58
 
55
- const focusZoneRef = React.useRef<View>();
56
- const setFocusZoneFocus = () => {
57
- focusZoneRef?.current?.focus();
58
- };
59
-
60
- React.useEffect(() => {
61
- setFocusZoneFocus();
62
- }, []);
63
-
64
59
  return (_final: MenuListProps, children: React.ReactNode) => {
65
60
  const itemCount = React.Children.toArray(children).filter(
66
61
  (child) => React.isValidElement(child) && (child as any).type.displayName !== 'MenuDivider',
@@ -85,33 +80,34 @@ export const MenuList = compose<MenuListType>({
85
80
  return child;
86
81
  });
87
82
 
88
- const content =
89
- Platform.OS === 'macos' ? (
90
- <Slots.root onMouseLeave={setFocusZoneFocus} onKeyDown={menuList.onListKeyDown}>
91
- <Slots.scrollView
92
- showsVerticalScrollIndicator={menuContext.hasMaxHeight}
93
- showsHorizontalScrollIndicator={menuContext.hasMaxWidth}
83
+ const shouldHaveScrollView = Platform.OS === 'macos' || menuList.hasMaxHeight || menuList.hasMaxWidth;
84
+ const ScrollViewWrapper = shouldHaveScrollView ? Slots.scrollView : React.Fragment;
85
+
86
+ const content = (
87
+ <Slots.root>
88
+ <ScrollViewWrapper
89
+ // avoid error that fires when props are passed into React.fragment
90
+ {...(shouldHaveScrollView && {
91
+ showsVerticalScrollIndicator: menuList.hasMaxHeight,
92
+ showsHorizontalScrollIndicator: menuList.hasMaxWidth,
93
+ })}
94
+ >
95
+ <Slots.focusZone
96
+ // avoid error that fires when props are passed into React.fragment
97
+ {...(shouldHaveFocusZone && {
98
+ componentRef: focusLandsOnContainer && menuList.focusZoneRef,
99
+ focusZoneDirection: 'vertical',
100
+ defaultTabbableElement: focusLandsOnContainer && menuList.focusZoneRef,
101
+ enableFocusRing: false,
102
+ isCircularNavigation: hasCircularNavigation,
103
+ tabKeyNavigation: hasTabNavigation ? 'Normal' : 'None',
104
+ })}
94
105
  >
95
- <Slots.focusZone
96
- componentRef={focusZoneRef}
97
- focusZoneDirection={'vertical'}
98
- defaultTabbableElement={focusZoneRef} // eslint-disable-next-line @typescript-eslint/ban-ts-comment
99
- // @ts-ignore FocusZone takes ViewProps, but that isn't defined on it's type.
100
- enableFocusRing={false}
101
- >
102
- {childrenWithSet}
103
- </Slots.focusZone>
104
- </Slots.scrollView>
105
- </Slots.root>
106
- ) : menuContext.hasMaxHeight ? (
107
- <Slots.root onKeyDown={menuList.onListKeyDown} style={menuContext.minWidth ? { minWidth: menuContext.minWidth } : {}}>
108
- <Slots.scrollView>{childrenWithSet}</Slots.scrollView>
109
- </Slots.root>
110
- ) : (
111
- <Slots.root onKeyDown={menuList.onListKeyDown} style={menuContext.minWidth ? { minWidth: menuContext.minWidth } : {}}>
112
- {childrenWithSet}
113
- </Slots.root>
114
- );
106
+ {childrenWithSet}
107
+ </Slots.focusZone>
108
+ </ScrollViewWrapper>
109
+ </Slots.root>
110
+ );
115
111
 
116
112
  return <MenuListProvider value={menuListContextValue}>{content}</MenuListProvider>;
117
113
  };
@@ -79,14 +79,14 @@ export interface MenuListState extends Omit<MenuListProps, 'checked' | 'onChecke
79
79
  removeRadioItem: (name: string) => void;
80
80
  trackMenuItem: (item: TrackedMenuItem) => void;
81
81
  untrackMenuItem: (item: TrackedMenuItem) => void;
82
- onListKeyDown: (e: InteractionEvent) => void;
83
- hasMaxHeight?: boolean;
84
- hasMaxWidth?: boolean;
82
+ hasMaxHeight: boolean;
83
+ hasMaxWidth: boolean;
84
+ focusZoneRef?: React.RefObject<View>;
85
85
  }
86
86
 
87
87
  export interface MenuListSlotProps {
88
88
  root: React.PropsWithRef<IViewProps> & { gap?: number };
89
- focusZone?: FocusZoneProps; // macOS only
89
+ focusZone?: FocusZoneProps; // macOS and win32 only
90
90
  scrollView?: ScrollViewProps;
91
91
  }
92
92
 
@@ -22,6 +22,7 @@ const removeRadioItem = (name: string) => {
22
22
 
23
23
  const platformsWithoutFocusOnDisabled = ['ios', 'macos'];
24
24
  const handledKeys = ['Home', 'End'];
25
+ const handleFocusOnMouseLevae = Platform.OS === 'macos';
25
26
 
26
27
  export const useMenuList = (_props: MenuListProps): MenuListState => {
27
28
  const context = useMenuContext();
@@ -162,9 +163,21 @@ export const useMenuList = (_props: MenuListProps): MenuListState => {
162
163
  };
163
164
  });
164
165
 
166
+ // focus management
167
+ const focusZoneRef = React.useRef<View>();
168
+ const setFocusZoneFocus = () => {
169
+ focusZoneRef?.current?.focus();
170
+ };
171
+
172
+ React.useEffect(() => {
173
+ setFocusZoneFocus();
174
+ }, []);
175
+
165
176
  return {
166
177
  props: {
167
178
  ...context,
179
+ onMouseLeave: handleFocusOnMouseLevae ? setFocusZoneFocus : context.onMouseLeave,
180
+ onKeyDown: onListKeyDown,
168
181
  },
169
182
  isCheckedControlled,
170
183
  checked,
@@ -175,9 +188,9 @@ export const useMenuList = (_props: MenuListProps): MenuListState => {
175
188
  removeRadioItem,
176
189
  trackMenuItem,
177
190
  untrackMenuItem,
178
- onListKeyDown,
179
191
  hasMaxHeight: context.hasMaxHeight,
180
192
  hasMaxWidth: context.hasMaxWidth,
193
+ focusZoneRef: focusZoneRef,
181
194
  };
182
195
  };
183
196
 
@@ -5,7 +5,7 @@ import type { MenuListState } from '../MenuList/MenuList.types';
5
5
  /**
6
6
  * Context shared between Menu and its child components
7
7
  */
8
- export type MenuListContextValue = Omit<MenuListState, 'props'> & {
8
+ export type MenuListContextValue = Omit<MenuListState, 'props' | 'focusZoneRef' | 'hasMaxHeight' | 'hasMaxWidth'> & {
9
9
  hasCheckmarks: boolean;
10
10
  hasIcons: boolean;
11
11
  hasTooltips: boolean;
@@ -23,7 +23,6 @@ export const MenuListContext = React.createContext<MenuListContextValue>({
23
23
  removeRadioItem: () => false,
24
24
  trackMenuItem: () => false,
25
25
  untrackMenuItem: () => false,
26
- onListKeyDown: () => false,
27
26
  });
28
27
 
29
28
  export const MenuListProvider = MenuListContext.Provider;