@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.
- package/CHANGELOG.json +91 -1
- package/CHANGELOG.md +28 -2
- package/lib/MenuGroup/MenuGroup.d.ts.map +1 -1
- package/lib/MenuGroup/MenuGroup.js +13 -2
- package/lib/MenuGroup/MenuGroup.js.map +1 -1
- package/lib/MenuGroup/MenuGroup.types.d.ts +2 -0
- package/lib/MenuGroup/MenuGroup.types.d.ts.map +1 -1
- package/lib/MenuGroup/MenuGroup.types.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +5 -5
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
- package/lib/MenuList/MenuList.d.ts.map +1 -1
- package/lib/MenuList/MenuList.js +28 -17
- package/lib/MenuList/MenuList.js.map +1 -1
- package/lib/MenuList/MenuList.types.d.ts +3 -3
- package/lib/MenuList/MenuList.types.d.ts.map +1 -1
- package/lib/MenuList/useMenuList.d.ts.map +1 -1
- package/lib/MenuList/useMenuList.js +12 -2
- package/lib/MenuList/useMenuList.js.map +1 -1
- package/lib/context/menuListContext.d.ts +1 -1
- package/lib/context/menuListContext.d.ts.map +1 -1
- package/lib/context/menuListContext.js +0 -1
- package/lib/context/menuListContext.js.map +1 -1
- package/lib-commonjs/MenuGroup/MenuGroup.d.ts.map +1 -1
- package/lib-commonjs/MenuGroup/MenuGroup.js +12 -1
- package/lib-commonjs/MenuGroup/MenuGroup.js.map +1 -1
- package/lib-commonjs/MenuGroup/MenuGroup.types.d.ts +2 -0
- package/lib-commonjs/MenuGroup/MenuGroup.types.d.ts.map +1 -1
- package/lib-commonjs/MenuGroup/MenuGroup.types.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +5 -5
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuList.js +28 -17
- package/lib-commonjs/MenuList/MenuList.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.types.d.ts +3 -3
- package/lib-commonjs/MenuList/MenuList.types.d.ts.map +1 -1
- package/lib-commonjs/MenuList/useMenuList.d.ts.map +1 -1
- package/lib-commonjs/MenuList/useMenuList.js +12 -2
- package/lib-commonjs/MenuList/useMenuList.js.map +1 -1
- package/lib-commonjs/context/menuListContext.d.ts +1 -1
- package/lib-commonjs/context/menuListContext.d.ts.map +1 -1
- package/lib-commonjs/context/menuListContext.js +0 -1
- package/lib-commonjs/context/menuListContext.js.map +1 -1
- package/package.json +10 -10
- package/src/MenuGroup/MenuGroup.tsx +21 -2
- package/src/MenuGroup/MenuGroup.types.ts +2 -0
- package/src/MenuItemCheckbox/MenuItemCheckboxTokens.macos.ts +5 -5
- package/src/MenuList/MenuList.tsx +34 -38
- package/src/MenuList/MenuList.types.ts +4 -4
- package/src/MenuList/useMenuList.ts +14 -1
- 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": "
|
|
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
|
|
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:
|
|
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":"
|
|
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),
|
|
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;
|
|
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;
|
|
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":"
|
|
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.
|
|
20
|
-
iconColor: t.colors.
|
|
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.
|
|
29
|
-
iconColor: t.colors.
|
|
28
|
+
color: t.colors.neutralForegroundOnBrandPressed,
|
|
29
|
+
iconColor: t.colors.neutralForegroundOnBrandPressed,
|
|
30
30
|
checked: {
|
|
31
|
-
checkmarkColor: t.colors.
|
|
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,
|
|
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;
|
|
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"}
|
package/lib/MenuList/MenuList.js
CHANGED
|
@@ -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:
|
|
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
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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":";AAAA,0BAA0B;AAC1B,qBAAqB;AACrB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE1F,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,sBAAsB;IAC1E;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;IAChE;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACvF,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAClF,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,
|
|
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;
|
|
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":";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;
|
|
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;
|
|
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;
|
|
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":"
|
|
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),
|
|
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,
|
|
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;
|
|
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":";;;
|
|
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.
|
|
23
|
-
iconColor: t.colors.
|
|
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.
|
|
32
|
-
iconColor: t.colors.
|
|
31
|
+
color: t.colors.neutralForegroundOnBrandPressed,
|
|
32
|
+
iconColor: t.colors.neutralForegroundOnBrandPressed,
|
|
33
33
|
checked: {
|
|
34
|
-
checkmarkColor: t.colors.
|
|
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,
|
|
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;
|
|
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:
|
|
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
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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":";;;;AAAA,0BAA0B;AAC1B,qBAAqB;AACrB,wDAA0B;AAC1B,6CAA0D;AAG1D,gEAA8D;AAE9D,8DAAmG;AAEnG,uDAAqD;AAErD,mDAAgD;AAChD,6CAA4C;AAC5C,qEAAoE;AACpE,
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE1F,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,sBAAsB;IAC1E;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;IAChE;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACvF,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAClF,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,
|
|
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;
|
|
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":";;;;AAAA,wDAA0B;AAC1B,6CAAwC;AAMxC,sDAAwD;AACxD,8DAAgE;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;
|
|
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;
|
|
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;
|
|
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.
|
|
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.
|
|
27
|
-
"@fluentui-react-native/focus-zone": ">=0.13.
|
|
28
|
-
"@fluentui-react-native/framework": "0.11.
|
|
29
|
-
"@fluentui-react-native/icon": "^0.19.
|
|
30
|
-
"@fluentui-react-native/interactive-hooks": ">=0.24.
|
|
31
|
-
"@fluentui-react-native/text": ">=0.21.
|
|
32
|
-
"@fluentui-react-native/theme-tokens": ">=0.25.
|
|
33
|
-
"@fluentui-react-native/tokens": ">=0.21.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
25
|
-
iconColor: t.colors.
|
|
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.
|
|
34
|
-
iconColor: t.colors.
|
|
33
|
+
color: t.colors.neutralForegroundOnBrandPressed,
|
|
34
|
+
iconColor: t.colors.neutralForegroundOnBrandPressed,
|
|
35
35
|
checked: {
|
|
36
|
-
checkmarkColor: t.colors.
|
|
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
|
-
|
|
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
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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;
|