@fluentui-react-native/menu 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +79 -1
- package/CHANGELOG.md +26 -2
- package/lib/MenuGroup/MenuGroup.d.ts +2 -0
- package/lib/MenuGroup/MenuGroup.d.ts.map +1 -0
- package/lib/MenuGroup/MenuGroup.js +35 -0
- package/lib/MenuGroup/MenuGroup.js.map +1 -0
- package/lib/MenuGroup/MenuGroup.types.d.ts +15 -0
- package/lib/MenuGroup/MenuGroup.types.d.ts.map +1 -0
- package/lib/MenuGroup/MenuGroup.types.js +2 -0
- package/lib/MenuGroup/MenuGroup.types.js.map +1 -0
- package/lib/MenuGroup/index.d.ts +4 -0
- package/lib/MenuGroup/index.d.ts.map +1 -0
- package/lib/MenuGroup/index.js +3 -0
- package/lib/MenuGroup/index.js.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.d.ts +3 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.d.ts.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.js +15 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.js.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.styling.d.ts +4 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.styling.d.ts.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.styling.js +17 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.styling.js.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.types.d.ts +16 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.types.d.ts.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.types.js +2 -0
- package/lib/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.d.ts +5 -0
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.d.ts.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.js +10 -0
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.js.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.d.ts +5 -0
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.d.ts.map +1 -0
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.js +11 -0
- package/lib/MenuGroupHeader/MenuGroupHeaderTokens.macos.js.map +1 -0
- package/lib/MenuGroupHeader/index.d.ts +4 -0
- package/lib/MenuGroupHeader/index.d.ts.map +1 -0
- package/lib/MenuGroupHeader/index.js +3 -0
- package/lib/MenuGroupHeader/index.js.map +1 -0
- package/lib/__tests__/Menu.test.js +19 -0
- package/lib/__tests__/Menu.test.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib-commonjs/MenuGroup/MenuGroup.d.ts +2 -0
- package/lib-commonjs/MenuGroup/MenuGroup.d.ts.map +1 -0
- package/lib-commonjs/MenuGroup/MenuGroup.js +38 -0
- package/lib-commonjs/MenuGroup/MenuGroup.js.map +1 -0
- package/lib-commonjs/MenuGroup/MenuGroup.types.d.ts +15 -0
- package/lib-commonjs/MenuGroup/MenuGroup.types.d.ts.map +1 -0
- package/lib-commonjs/MenuGroup/MenuGroup.types.js +5 -0
- package/lib-commonjs/MenuGroup/MenuGroup.types.js.map +1 -0
- package/lib-commonjs/MenuGroup/index.d.ts +4 -0
- package/lib-commonjs/MenuGroup/index.d.ts.map +1 -0
- package/lib-commonjs/MenuGroup/index.js +8 -0
- package/lib-commonjs/MenuGroup/index.js.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.d.ts +3 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.d.ts.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.js +18 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.js.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.d.ts +4 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.d.ts.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.js +20 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.styling.js.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.types.d.ts +16 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.types.d.ts.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.types.js +5 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeader.types.js.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.d.ts +5 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.d.ts.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.js +14 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.js.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.d.ts +5 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.d.ts.map +1 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.js +15 -0
- package/lib-commonjs/MenuGroupHeader/MenuGroupHeaderTokens.macos.js.map +1 -0
- package/lib-commonjs/MenuGroupHeader/index.d.ts +4 -0
- package/lib-commonjs/MenuGroupHeader/index.d.ts.map +1 -0
- package/lib-commonjs/MenuGroupHeader/index.js +8 -0
- package/lib-commonjs/MenuGroupHeader/index.js.map +1 -0
- package/lib-commonjs/__tests__/Menu.test.js +19 -0
- package/lib-commonjs/__tests__/Menu.test.js.map +1 -1
- package/lib-commonjs/index.d.ts +2 -0
- package/lib-commonjs/index.d.ts.map +1 -1
- package/lib-commonjs/index.js +7 -1
- package/lib-commonjs/index.js.map +1 -1
- package/package.json +10 -10
- package/src/MenuGroup/MenuGroup.tsx +44 -0
- package/src/MenuGroup/MenuGroup.types.ts +20 -0
- package/src/MenuGroup/index.ts +3 -0
- package/src/MenuGroupHeader/MenuGroupHeader.styling.ts +25 -0
- package/src/MenuGroupHeader/MenuGroupHeader.tsx +31 -0
- package/src/MenuGroupHeader/MenuGroupHeader.types.ts +19 -0
- package/src/MenuGroupHeader/MenuGroupHeaderTokens.macos.ts +15 -0
- package/src/MenuGroupHeader/MenuGroupHeaderTokens.ts +14 -0
- package/src/MenuGroupHeader/index.ts +3 -0
- package/src/__tests__/Menu.test.tsx +28 -0
- package/src/__tests__/__snapshots__/Menu.test.tsx.snap +91 -0
- package/src/index.ts +9 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MenuGroupHeader = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var framework_1 = require("@fluentui-react-native/framework");
|
|
6
|
+
var text_1 = require("@fluentui-react-native/text");
|
|
7
|
+
var MenuGroupHeader_styling_1 = require("./MenuGroupHeader.styling");
|
|
8
|
+
var MenuGroupHeader_types_1 = require("./MenuGroupHeader.types");
|
|
9
|
+
exports.MenuGroupHeader = (0, framework_1.compose)(tslib_1.__assign(tslib_1.__assign({ displayName: MenuGroupHeader_types_1.menuGroupHeaderName }, MenuGroupHeader_styling_1.stylingSettings), { slots: {
|
|
10
|
+
root: text_1.TextV1,
|
|
11
|
+
}, useRender: function (userProps, useSlots) {
|
|
12
|
+
var Slots = useSlots(userProps);
|
|
13
|
+
return function (final, children) {
|
|
14
|
+
var mergedProps = tslib_1.__rest((0, framework_1.mergeProps)(userProps, final), []);
|
|
15
|
+
return ((0, framework_1.withSlots)(Slots.root, tslib_1.__assign({ accessible: userProps.accessible }, mergedProps), children));
|
|
16
|
+
};
|
|
17
|
+
} }));
|
|
18
|
+
//# sourceMappingURL=MenuGroupHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeader.js","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeader.tsx"],"names":[],"mappings":";;;;AAGA,8DAAkF;AAElF,oDAA6D;AAE7D,qEAA4D;AAE5D,iEAA8D;AAEjD,QAAA,eAAe,GAAG,IAAA,mBAAO,sCACpC,WAAW,EAAE,2CAAmB,IAC7B,yCAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,aAAI;KACX,EACD,SAAS,EAAE,UAAC,SAA+B,EAAE,QAAuC;QAClF,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAElC,OAAO,UAAC,KAA2B,EAAE,QAAyB;YAC5D,IAAW,WAAW,kBAAK,IAAA,sBAAU,EAAC,SAAS,EAAE,KAAK,CAAC,EAAjD,EAAkB,CAA+B,CAAC;YAExD,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,qBAAC,UAAU,EAAE,SAAS,CAAC,UAAU,IAAM,WAAW,GAC1D,QAAQ,CACE,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { UseStylingOptions } from '@fluentui-react-native/framework';
|
|
2
|
+
import type { MenuGroupHeaderProps, MenuGroupHeaderTokens, MenuGroupHeaderSlotProps } from './MenuGroupHeader.types';
|
|
3
|
+
export declare const stylingSettings: UseStylingOptions<MenuGroupHeaderProps, MenuGroupHeaderSlotProps, MenuGroupHeaderTokens>;
|
|
4
|
+
//# sourceMappingURL=MenuGroupHeader.styling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeader.styling.d.ts","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeader.styling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAKjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGrH,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,qBAAqB,CAgBpH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stylingSettings = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var framework_1 = require("@fluentui-react-native/framework");
|
|
6
|
+
var framework_2 = require("@fluentui-react-native/framework");
|
|
7
|
+
var MenuGroupHeader_types_1 = require("./MenuGroupHeader.types");
|
|
8
|
+
var MenuGroupHeaderTokens_1 = require("./MenuGroupHeaderTokens");
|
|
9
|
+
exports.stylingSettings = {
|
|
10
|
+
tokens: [MenuGroupHeaderTokens_1.defaultMenuGroupHeaderTokens, MenuGroupHeader_types_1.menuGroupHeaderName],
|
|
11
|
+
slotProps: {
|
|
12
|
+
root: (0, framework_2.buildProps)(function (tokens, theme) {
|
|
13
|
+
return {
|
|
14
|
+
color: tokens.color,
|
|
15
|
+
style: tslib_1.__assign({ marginStart: tokens.gap }, framework_1.fontStyles.from(tokens, theme)),
|
|
16
|
+
};
|
|
17
|
+
}, ['color']),
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=MenuGroupHeader.styling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeader.styling.js","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeader.styling.ts"],"names":[],"mappings":";;;;AACA,8DAA8D;AAC9D,8DAA8D;AAE9D,iEAA8D;AAE9D,iEAAuE;AAE1D,QAAA,eAAe,GAA6F;IACvH,MAAM,EAAE,CAAC,oDAA4B,EAAE,2CAAmB,CAAC;IAC3D,SAAS,EAAE;QACT,IAAI,EAAE,IAAA,sBAAU,EACd,UAAC,MAA6B,EAAE,KAAY;YAC1C,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,qBACH,WAAW,EAAE,MAAM,CAAC,GAAG,IACpB,sBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAClC;aACF,CAAC;QACJ,CAAC,EACD,CAAC,OAAO,CAAC,CACV;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { TextProps } from '@fluentui-react-native/text';
|
|
2
|
+
import type { FontTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
|
|
3
|
+
export declare const menuGroupHeaderName = "MenuGroupHeader";
|
|
4
|
+
export interface MenuGroupHeaderTokens extends LayoutTokens, FontTokens, IColorTokens {
|
|
5
|
+
gap?: number;
|
|
6
|
+
}
|
|
7
|
+
export type MenuGroupHeaderProps = TextProps;
|
|
8
|
+
export interface MenuGroupHeaderSlotProps {
|
|
9
|
+
root: TextProps;
|
|
10
|
+
}
|
|
11
|
+
export interface MenuGroupHeaderType {
|
|
12
|
+
props: MenuGroupHeaderProps;
|
|
13
|
+
tokens: MenuGroupHeaderTokens;
|
|
14
|
+
slotProps: MenuGroupHeaderSlotProps;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=MenuGroupHeader.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeader.types.d.ts","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeader.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE5F,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,MAAM,WAAW,qBAAsB,SAAQ,YAAY,EAAE,UAAU,EAAE,YAAY;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AACD,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,wBAAwB,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeader.types.js","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeader.types.ts"],"names":[],"mappings":";;;AAGa,QAAA,mBAAmB,GAAG,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
3
|
+
import type { MenuGroupHeaderTokens } from './MenuGroupHeader.types';
|
|
4
|
+
export declare const defaultMenuGroupHeaderTokens: TokenSettings<MenuGroupHeaderTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuGroupHeaderTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeaderTokens.d.ts","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeaderTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,eAAO,MAAM,4BAA4B,EAAE,aAAa,CAAC,qBAAqB,EAAE,KAAK,CAOnF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultMenuGroupHeaderTokens = void 0;
|
|
4
|
+
var theme_tokens_1 = require("@fluentui-react-native/theme-tokens");
|
|
5
|
+
var defaultMenuGroupHeaderTokens = function (t) { return ({
|
|
6
|
+
color: t.colors.neutralForeground2,
|
|
7
|
+
fontFamily: t.typography.families.primary,
|
|
8
|
+
fontSize: theme_tokens_1.globalTokens.font.size300,
|
|
9
|
+
fontWeight: theme_tokens_1.globalTokens.font.weight.regular,
|
|
10
|
+
gap: theme_tokens_1.globalTokens.size40,
|
|
11
|
+
padding: theme_tokens_1.globalTokens.size60,
|
|
12
|
+
}); };
|
|
13
|
+
exports.defaultMenuGroupHeaderTokens = defaultMenuGroupHeaderTokens;
|
|
14
|
+
//# sourceMappingURL=MenuGroupHeaderTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeaderTokens.js","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeaderTokens.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAK5D,IAAM,4BAA4B,GAAgD,UAAC,CAAC,IAA4B,OAAA,CAAC;IACtH,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,OAAO,EAAE,2BAAY,CAAC,MAAM;CAC7B,CAAC,EAPqH,CAOrH,CAAC;AAPU,QAAA,4BAA4B,gCAOtC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
3
|
+
import type { MenuGroupHeaderTokens } from './MenuGroupHeader.types';
|
|
4
|
+
export declare const defaultMenuGroupHeaderTokens: TokenSettings<MenuGroupHeaderTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuGroupHeaderTokens.macos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeaderTokens.macos.d.ts","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeaderTokens.macos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,eAAO,MAAM,4BAA4B,EAAE,aAAa,CAAC,qBAAqB,EAAE,KAAK,CAQnF,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultMenuGroupHeaderTokens = void 0;
|
|
4
|
+
var theme_tokens_1 = require("@fluentui-react-native/theme-tokens");
|
|
5
|
+
var defaultMenuGroupHeaderTokens = function (t) { return ({
|
|
6
|
+
color: t.colors.disabledText,
|
|
7
|
+
fontFamily: t.typography.families.primary,
|
|
8
|
+
fontSize: 13,
|
|
9
|
+
fontWeight: theme_tokens_1.globalTokens.font.weight.regular,
|
|
10
|
+
gap: theme_tokens_1.globalTokens.size40,
|
|
11
|
+
paddingHorizontal: 5,
|
|
12
|
+
paddingVertical: 3,
|
|
13
|
+
}); };
|
|
14
|
+
exports.defaultMenuGroupHeaderTokens = defaultMenuGroupHeaderTokens;
|
|
15
|
+
//# sourceMappingURL=MenuGroupHeaderTokens.macos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuGroupHeaderTokens.macos.js","sourceRoot":"","sources":["../../src/MenuGroupHeader/MenuGroupHeaderTokens.macos.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAK5D,IAAM,4BAA4B,GAAgD,UAAC,CAAC,IAA4B,OAAA,CAAC;IACtH,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;IAC5B,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,2BAAY,CAAC,MAAM;IACxB,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,CAAC;CACnB,CAAC,EARqH,CAQrH,CAAC;AARU,QAAA,4BAA4B,gCAQtC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { MenuGroupHeader } from './MenuGroupHeader';
|
|
2
|
+
export { menuGroupHeaderName } from './MenuGroupHeader.types';
|
|
3
|
+
export type { MenuGroupHeaderProps, MenuGroupHeaderTokens, MenuGroupHeaderSlotProps, MenuGroupHeaderType } from './MenuGroupHeader.types';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/MenuGroupHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.menuGroupHeaderName = exports.MenuGroupHeader = void 0;
|
|
4
|
+
var MenuGroupHeader_1 = require("./MenuGroupHeader");
|
|
5
|
+
Object.defineProperty(exports, "MenuGroupHeader", { enumerable: true, get: function () { return MenuGroupHeader_1.MenuGroupHeader; } });
|
|
6
|
+
var MenuGroupHeader_types_1 = require("./MenuGroupHeader.types");
|
|
7
|
+
Object.defineProperty(exports, "menuGroupHeaderName", { enumerable: true, get: function () { return MenuGroupHeader_types_1.menuGroupHeaderName; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MenuGroupHeader/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA"}
|
|
@@ -7,6 +7,8 @@ var test_tools_1 = require("@fluentui-react-native/test-tools");
|
|
|
7
7
|
var renderer = tslib_1.__importStar(require("react-test-renderer"));
|
|
8
8
|
var Menu_1 = require("../Menu/Menu");
|
|
9
9
|
var MenuDivider_1 = require("../MenuDivider/MenuDivider");
|
|
10
|
+
var MenuGroup_1 = require("../MenuGroup");
|
|
11
|
+
var MenuGroupHeader_1 = require("../MenuGroupHeader");
|
|
10
12
|
var MenuItem_1 = require("../MenuItem/MenuItem");
|
|
11
13
|
var MenuItemCheckbox_1 = require("../MenuItemCheckbox/MenuItemCheckbox");
|
|
12
14
|
var MenuItemRadio_1 = require("../MenuItemRadio/MenuItemRadio");
|
|
@@ -117,6 +119,23 @@ describe('Menu component tests', function () {
|
|
|
117
119
|
expect(tree).toMatchSnapshot();
|
|
118
120
|
});
|
|
119
121
|
});
|
|
122
|
+
it('Menu open menu group and menu header', function () {
|
|
123
|
+
var tree = renderer
|
|
124
|
+
.create(React.createElement(Menu_1.Menu, { open: true },
|
|
125
|
+
React.createElement(MenuTrigger_1.default, null,
|
|
126
|
+
React.createElement(button_1.ButtonV1, null, "Open")),
|
|
127
|
+
React.createElement(MenuPopover_1.default, null,
|
|
128
|
+
React.createElement(MenuList_1.MenuList, null,
|
|
129
|
+
React.createElement(MenuGroup_1.MenuGroup, null,
|
|
130
|
+
React.createElement(MenuGroupHeader_1.MenuGroupHeader, null, "Header 1"),
|
|
131
|
+
React.createElement(MenuItem_1.MenuItem, null, "Option 1")),
|
|
132
|
+
React.createElement(MenuDivider_1.MenuDivider, null),
|
|
133
|
+
React.createElement(MenuGroup_1.MenuGroup, null,
|
|
134
|
+
React.createElement(MenuGroupHeader_1.MenuGroupHeader, null, "Header 2"),
|
|
135
|
+
React.createElement(MenuItem_1.MenuItem, null, "Option 1"))))))
|
|
136
|
+
.toJSON();
|
|
137
|
+
expect(tree).toMatchSnapshot();
|
|
138
|
+
});
|
|
120
139
|
describe('Menu rerender tests', function () {
|
|
121
140
|
it('Menu re-renders correctly', function () {
|
|
122
141
|
(0, test_tools_1.checkReRender)(function () { return (React.createElement(Menu_1.Menu, { open: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.test.js","sourceRoot":"","sources":["../../src/__tests__/Menu.test.tsx"],"names":[],"mappings":"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"}
|
package/lib-commonjs/index.d.ts
CHANGED
|
@@ -7,4 +7,6 @@ export { MenuItemCheckbox, menuItemCheckboxName, MenuItemCheckboxProps, MenuItem
|
|
|
7
7
|
export { MenuItemRadio, menuItemRadioName, useMenuItemRadio, MenuItemRadioInfo, MenuItemRadioProps, MenuItemRadioSlotProps, MenuItemRadioTokens, MenuItemRadioType, } from './MenuItemRadio';
|
|
8
8
|
export { MenuList, menuListName, MenuListProps, MenuListSlotProps, MenuListState, MenuListTokens, MenuListType, useMenuList, useMenuListContextValue, } from './MenuList';
|
|
9
9
|
export { MenuDivider, menuDividerName, MenuDividerProps, MenuDividerSlotProps, MenuDividerTokens, MenuDividerType } from './MenuDivider';
|
|
10
|
+
export { MenuGroup, menuGroupName, MenuGroupProps, MenuGroupSlotProps, MenuGroupTokens, MenuGroupType } from './MenuGroup';
|
|
11
|
+
export { MenuGroupHeader, menuGroupHeaderName, MenuGroupHeaderProps, MenuGroupHeaderSlotProps, MenuGroupHeaderTokens, MenuGroupHeaderType, } from './MenuGroupHeader';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpI,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpI,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACzI,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
package/lib-commonjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.menuDividerName = exports.MenuDivider = exports.useMenuListContextValue = exports.useMenuList = exports.menuListName = exports.MenuList = exports.useMenuItemRadio = exports.MenuItemRadio = exports.useMenuItemCheckbox = exports.useMenuCheckboxInteraction = exports.menuItemCheckboxName = exports.MenuItemCheckbox = exports.useMenuItem = exports.menuItemName = exports.MenuItem = exports.useMenuPopover = exports.menuPopoverName = exports.MenuPopover = exports.useMenuTrigger = exports.menuTriggerName = exports.MenuTrigger = exports.useMenuContextValue = exports.useMenu = exports.menuName = exports.Menu = exports.MenuTriggerProvider = exports.MenuTriggerContext = exports.useMenuTriggerContext = exports.MenuListProvider = exports.MenuListContext = exports.useMenuListContext = exports.MenuProvider = exports.MenuContext = exports.useMenuContext = void 0;
|
|
3
|
+
exports.menuGroupHeaderName = exports.MenuGroupHeader = exports.menuGroupName = exports.MenuGroup = exports.menuDividerName = exports.MenuDivider = exports.useMenuListContextValue = exports.useMenuList = exports.menuListName = exports.MenuList = exports.useMenuItemRadio = exports.MenuItemRadio = exports.useMenuItemCheckbox = exports.useMenuCheckboxInteraction = exports.menuItemCheckboxName = exports.MenuItemCheckbox = exports.useMenuItem = exports.menuItemName = exports.MenuItem = exports.useMenuPopover = exports.menuPopoverName = exports.MenuPopover = exports.useMenuTrigger = exports.menuTriggerName = exports.MenuTrigger = exports.useMenuContextValue = exports.useMenu = exports.menuName = exports.Menu = exports.MenuTriggerProvider = exports.MenuTriggerContext = exports.useMenuTriggerContext = exports.MenuListProvider = exports.MenuListContext = exports.useMenuListContext = exports.MenuProvider = exports.MenuContext = exports.useMenuContext = void 0;
|
|
4
4
|
var context_1 = require("./context");
|
|
5
5
|
Object.defineProperty(exports, "useMenuContext", { enumerable: true, get: function () { return context_1.useMenuContext; } });
|
|
6
6
|
Object.defineProperty(exports, "MenuContext", { enumerable: true, get: function () { return context_1.MenuContext; } });
|
|
@@ -44,4 +44,10 @@ Object.defineProperty(exports, "useMenuListContextValue", { enumerable: true, ge
|
|
|
44
44
|
var MenuDivider_1 = require("./MenuDivider");
|
|
45
45
|
Object.defineProperty(exports, "MenuDivider", { enumerable: true, get: function () { return MenuDivider_1.MenuDivider; } });
|
|
46
46
|
Object.defineProperty(exports, "menuDividerName", { enumerable: true, get: function () { return MenuDivider_1.menuDividerName; } });
|
|
47
|
+
var MenuGroup_1 = require("./MenuGroup");
|
|
48
|
+
Object.defineProperty(exports, "MenuGroup", { enumerable: true, get: function () { return MenuGroup_1.MenuGroup; } });
|
|
49
|
+
Object.defineProperty(exports, "menuGroupName", { enumerable: true, get: function () { return MenuGroup_1.menuGroupName; } });
|
|
50
|
+
var MenuGroupHeader_1 = require("./MenuGroupHeader");
|
|
51
|
+
Object.defineProperty(exports, "MenuGroupHeader", { enumerable: true, get: function () { return MenuGroupHeader_1.MenuGroupHeader; } });
|
|
52
|
+
Object.defineProperty(exports, "menuGroupHeaderName", { enumerable: true, get: function () { return MenuGroupHeader_1.menuGroupHeaderName; } });
|
|
47
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAYmB;AAXjB,yGAAA,cAAc,OAAA;AACd,sGAAA,WAAW,OAAA;AAEX,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AAEf,2GAAA,gBAAgB,OAAA;AAChB,gHAAA,qBAAqB,OAAA;AACrB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AAErB,+BAA4F;AAAnF,4FAAA,IAAI,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAAwB,+FAAA,OAAO,OAAA;AAAE,2GAAA,mBAAmB,OAAA;AAC3E,6CAAsH;AAA7G,0GAAA,WAAW,OAAA;AAAE,8GAAA,eAAe,OAAA;AAA2C,6GAAA,cAAc,OAAA;AAC9F,6CAAoI;AAA3H,0GAAA,WAAW,OAAA;AAAE,8GAAA,eAAe,OAAA;AAAyD,6GAAA,cAAc,OAAA;AAC5G,uCAUoB;AATlB,oGAAA,QAAQ,OAAA;AACR,wGAAA,YAAY,OAAA;AAOZ,uGAAA,WAAW,OAAA;AAEb,uDAU4B;AAT1B,oHAAA,gBAAgB,OAAA;AAChB,wHAAA,oBAAoB,OAAA;AAMpB,8HAAA,0BAA0B,OAAA;AAC1B,uHAAA,mBAAmB,OAAA;AAErB,iDASyB;AARvB,8GAAA,aAAa,OAAA;AAEb,iHAAA,gBAAgB,OAAA;AAOlB,uCAUoB;AATlB,oGAAA,QAAQ,OAAA;AACR,wGAAA,YAAY,OAAA;AAMZ,uGAAA,WAAW,OAAA;AACX,mHAAA,uBAAuB,OAAA;AAEzB,6CAAyI;AAAhI,0GAAA,WAAW,OAAA;AAAE,8GAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAYmB;AAXjB,yGAAA,cAAc,OAAA;AACd,sGAAA,WAAW,OAAA;AAEX,uGAAA,YAAY,OAAA;AACZ,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AAEf,2GAAA,gBAAgB,OAAA;AAChB,gHAAA,qBAAqB,OAAA;AACrB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AAErB,+BAA4F;AAAnF,4FAAA,IAAI,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAAwB,+FAAA,OAAO,OAAA;AAAE,2GAAA,mBAAmB,OAAA;AAC3E,6CAAsH;AAA7G,0GAAA,WAAW,OAAA;AAAE,8GAAA,eAAe,OAAA;AAA2C,6GAAA,cAAc,OAAA;AAC9F,6CAAoI;AAA3H,0GAAA,WAAW,OAAA;AAAE,8GAAA,eAAe,OAAA;AAAyD,6GAAA,cAAc,OAAA;AAC5G,uCAUoB;AATlB,oGAAA,QAAQ,OAAA;AACR,wGAAA,YAAY,OAAA;AAOZ,uGAAA,WAAW,OAAA;AAEb,uDAU4B;AAT1B,oHAAA,gBAAgB,OAAA;AAChB,wHAAA,oBAAoB,OAAA;AAMpB,8HAAA,0BAA0B,OAAA;AAC1B,uHAAA,mBAAmB,OAAA;AAErB,iDASyB;AARvB,8GAAA,aAAa,OAAA;AAEb,iHAAA,gBAAgB,OAAA;AAOlB,uCAUoB;AATlB,oGAAA,QAAQ,OAAA;AACR,wGAAA,YAAY,OAAA;AAMZ,uGAAA,WAAW,OAAA;AACX,mHAAA,uBAAuB,OAAA;AAEzB,6CAAyI;AAAhI,0GAAA,WAAW,OAAA;AAAE,8GAAA,eAAe,OAAA;AACrC,yCAA2H;AAAlH,sGAAA,SAAS,OAAA;AAAE,0GAAA,aAAa,OAAA;AACjC,qDAO2B;AANzB,kHAAA,eAAe,OAAA;AACf,sHAAA,mBAAmB,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui-react-native/menu",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
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.10.2 <1.0.0",
|
|
26
|
-
"@fluentui-react-native/callout": ">=0.23.
|
|
27
|
-
"@fluentui-react-native/focus-zone": ">=0.11.
|
|
28
|
-
"@fluentui-react-native/framework": "0.9.
|
|
29
|
-
"@fluentui-react-native/icon": "^0.17.
|
|
30
|
-
"@fluentui-react-native/interactive-hooks": ">=0.22.
|
|
31
|
-
"@fluentui-react-native/text": ">=0.19.
|
|
32
|
-
"@fluentui-react-native/theme-tokens": ">=0.24.
|
|
33
|
-
"@fluentui-react-native/tokens": ">=0.20.
|
|
26
|
+
"@fluentui-react-native/callout": ">=0.23.13 <1.0.0",
|
|
27
|
+
"@fluentui-react-native/focus-zone": ">=0.11.42 <1.0.0",
|
|
28
|
+
"@fluentui-react-native/framework": "0.9.9",
|
|
29
|
+
"@fluentui-react-native/icon": "^0.17.26",
|
|
30
|
+
"@fluentui-react-native/interactive-hooks": ">=0.22.30 <1.0.0",
|
|
31
|
+
"@fluentui-react-native/text": ">=0.19.32 <1.0.0",
|
|
32
|
+
"@fluentui-react-native/theme-tokens": ">=0.24.6 <1.0.0",
|
|
33
|
+
"@fluentui-react-native/tokens": ">=0.20.15 <1.0.0",
|
|
34
34
|
"@fluentui-react-native/use-styling": ">=0.9.4 <1.0.0",
|
|
35
35
|
"tslib": "^2.3.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@fluentui-react-native/button": ">=0.32.
|
|
38
|
+
"@fluentui-react-native/button": ">=0.32.52 <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",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** @jsx withSlots */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import { compose, mergeProps, withSlots } from '@fluentui-react-native/framework';
|
|
6
|
+
import type { UseSlots } from '@fluentui-react-native/framework';
|
|
7
|
+
|
|
8
|
+
import type { MenuGroupProps, MenuGroupType } from './MenuGroup.types';
|
|
9
|
+
import { menuGroupName } from './MenuGroup.types';
|
|
10
|
+
|
|
11
|
+
export const MenuGroup = compose<MenuGroupType>({
|
|
12
|
+
displayName: menuGroupName,
|
|
13
|
+
slots: {
|
|
14
|
+
root: View,
|
|
15
|
+
},
|
|
16
|
+
useRender: (userProps: MenuGroupProps, useSlots: UseSlots<MenuGroupType>) => {
|
|
17
|
+
const Slots = useSlots(userProps);
|
|
18
|
+
return (final: MenuGroupProps, children: React.ReactNode) => {
|
|
19
|
+
const { ...mergedProps } = mergeProps(userProps, final);
|
|
20
|
+
|
|
21
|
+
let itemPosition = 0;
|
|
22
|
+
const childrenWithSet = React.Children.toArray(children).map((child) => {
|
|
23
|
+
if (React.isValidElement(child)) {
|
|
24
|
+
const itemCount = React.Children.toArray(children).filter(
|
|
25
|
+
(child) => React.isValidElement(child) && (child as any).type.displayName !== 'MenuGroupHeader',
|
|
26
|
+
).length;
|
|
27
|
+
|
|
28
|
+
if ((child as any).type.displayName !== 'MenuGroupHeader') {
|
|
29
|
+
itemPosition++;
|
|
30
|
+
}
|
|
31
|
+
return React.cloneElement(
|
|
32
|
+
child as React.ReactElement<unknown, string | React.JSXElementConstructor<any>>,
|
|
33
|
+
{
|
|
34
|
+
accessibilityPositionInSet: child.props.accessibilityPositionInSet ?? itemPosition, // win32
|
|
35
|
+
accessibilitySetSize: child.props.accessibilitySetSize ?? itemCount, //win32
|
|
36
|
+
} as any,
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
return child;
|
|
40
|
+
});
|
|
41
|
+
return <Slots.root {...mergedProps}>{childrenWithSet}</Slots.root>;
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ViewProps } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
4
|
+
import type { LayoutTokens } from '@fluentui-react-native/tokens';
|
|
5
|
+
|
|
6
|
+
export const menuGroupName = 'MenuGroup';
|
|
7
|
+
|
|
8
|
+
export type MenuGroupTokens = LayoutTokens;
|
|
9
|
+
|
|
10
|
+
export type MenuGroupProps = IViewProps;
|
|
11
|
+
|
|
12
|
+
export interface MenuGroupSlotProps {
|
|
13
|
+
root: ViewProps;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface MenuGroupType {
|
|
17
|
+
props: MenuGroupProps;
|
|
18
|
+
tokens: MenuGroupTokens;
|
|
19
|
+
slotProps: MenuGroupSlotProps;
|
|
20
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Theme, UseStylingOptions } from '@fluentui-react-native/framework';
|
|
2
|
+
import { fontStyles } from '@fluentui-react-native/framework';
|
|
3
|
+
import { buildProps } from '@fluentui-react-native/framework';
|
|
4
|
+
|
|
5
|
+
import { menuGroupHeaderName } from './MenuGroupHeader.types';
|
|
6
|
+
import type { MenuGroupHeaderProps, MenuGroupHeaderTokens, MenuGroupHeaderSlotProps } from './MenuGroupHeader.types';
|
|
7
|
+
import { defaultMenuGroupHeaderTokens } from './MenuGroupHeaderTokens';
|
|
8
|
+
|
|
9
|
+
export const stylingSettings: UseStylingOptions<MenuGroupHeaderProps, MenuGroupHeaderSlotProps, MenuGroupHeaderTokens> = {
|
|
10
|
+
tokens: [defaultMenuGroupHeaderTokens, menuGroupHeaderName],
|
|
11
|
+
slotProps: {
|
|
12
|
+
root: buildProps(
|
|
13
|
+
(tokens: MenuGroupHeaderTokens, theme: Theme) => {
|
|
14
|
+
return {
|
|
15
|
+
color: tokens.color,
|
|
16
|
+
style: {
|
|
17
|
+
marginStart: tokens.gap,
|
|
18
|
+
...fontStyles.from(tokens, theme),
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
['color'],
|
|
23
|
+
),
|
|
24
|
+
},
|
|
25
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** @jsx withSlots */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
import { compose, mergeProps, withSlots } from '@fluentui-react-native/framework';
|
|
5
|
+
import type { UseSlots } from '@fluentui-react-native/framework';
|
|
6
|
+
import { TextV1 as Text } from '@fluentui-react-native/text';
|
|
7
|
+
|
|
8
|
+
import { stylingSettings } from './MenuGroupHeader.styling';
|
|
9
|
+
import type { MenuGroupHeaderProps, MenuGroupHeaderType } from './MenuGroupHeader.types';
|
|
10
|
+
import { menuGroupHeaderName } from './MenuGroupHeader.types';
|
|
11
|
+
|
|
12
|
+
export const MenuGroupHeader = compose<MenuGroupHeaderType>({
|
|
13
|
+
displayName: menuGroupHeaderName,
|
|
14
|
+
...stylingSettings,
|
|
15
|
+
slots: {
|
|
16
|
+
root: Text,
|
|
17
|
+
},
|
|
18
|
+
useRender: (userProps: MenuGroupHeaderProps, useSlots: UseSlots<MenuGroupHeaderType>) => {
|
|
19
|
+
const Slots = useSlots(userProps);
|
|
20
|
+
|
|
21
|
+
return (final: MenuGroupHeaderProps, children: React.ReactNode) => {
|
|
22
|
+
const { ...mergedProps } = mergeProps(userProps, final);
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<Slots.root accessible={userProps.accessible} {...mergedProps}>
|
|
26
|
+
{children}
|
|
27
|
+
</Slots.root>
|
|
28
|
+
);
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TextProps } from '@fluentui-react-native/text';
|
|
2
|
+
import type { FontTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
|
|
3
|
+
|
|
4
|
+
export const menuGroupHeaderName = 'MenuGroupHeader';
|
|
5
|
+
|
|
6
|
+
export interface MenuGroupHeaderTokens extends LayoutTokens, FontTokens, IColorTokens {
|
|
7
|
+
gap?: number;
|
|
8
|
+
}
|
|
9
|
+
export type MenuGroupHeaderProps = TextProps;
|
|
10
|
+
|
|
11
|
+
export interface MenuGroupHeaderSlotProps {
|
|
12
|
+
root: TextProps;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface MenuGroupHeaderType {
|
|
16
|
+
props: MenuGroupHeaderProps;
|
|
17
|
+
tokens: MenuGroupHeaderTokens;
|
|
18
|
+
slotProps: MenuGroupHeaderSlotProps;
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
|
+
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
5
|
+
import type { MenuGroupHeaderTokens } from './MenuGroupHeader.types';
|
|
6
|
+
|
|
7
|
+
export const defaultMenuGroupHeaderTokens: TokenSettings<MenuGroupHeaderTokens, Theme> = (t): MenuGroupHeaderTokens => ({
|
|
8
|
+
color: t.colors.disabledText,
|
|
9
|
+
fontFamily: t.typography.families.primary,
|
|
10
|
+
fontSize: 13,
|
|
11
|
+
fontWeight: globalTokens.font.weight.regular as FontWeightValue,
|
|
12
|
+
gap: globalTokens.size40,
|
|
13
|
+
paddingHorizontal: 5,
|
|
14
|
+
paddingVertical: 3,
|
|
15
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
|
+
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
5
|
+
import type { MenuGroupHeaderTokens } from './MenuGroupHeader.types';
|
|
6
|
+
|
|
7
|
+
export const defaultMenuGroupHeaderTokens: TokenSettings<MenuGroupHeaderTokens, Theme> = (t): MenuGroupHeaderTokens => ({
|
|
8
|
+
color: t.colors.neutralForeground2,
|
|
9
|
+
fontFamily: t.typography.families.primary,
|
|
10
|
+
fontSize: globalTokens.font.size300,
|
|
11
|
+
fontWeight: globalTokens.font.weight.regular as FontWeightValue,
|
|
12
|
+
gap: globalTokens.size40,
|
|
13
|
+
padding: globalTokens.size60,
|
|
14
|
+
});
|
|
@@ -7,6 +7,8 @@ import * as renderer from 'react-test-renderer';
|
|
|
7
7
|
|
|
8
8
|
import { Menu } from '../Menu/Menu';
|
|
9
9
|
import { MenuDivider } from '../MenuDivider/MenuDivider';
|
|
10
|
+
import { MenuGroup } from '../MenuGroup';
|
|
11
|
+
import { MenuGroupHeader } from '../MenuGroupHeader';
|
|
10
12
|
import { MenuItem } from '../MenuItem/MenuItem';
|
|
11
13
|
import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
|
|
12
14
|
import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
|
|
@@ -180,6 +182,32 @@ describe('Menu component tests', () => {
|
|
|
180
182
|
});
|
|
181
183
|
});
|
|
182
184
|
|
|
185
|
+
it('Menu open menu group and menu header', () => {
|
|
186
|
+
const tree = renderer
|
|
187
|
+
.create(
|
|
188
|
+
<Menu open>
|
|
189
|
+
<MenuTrigger>
|
|
190
|
+
<Button>Open</Button>
|
|
191
|
+
</MenuTrigger>
|
|
192
|
+
<MenuPopover>
|
|
193
|
+
<MenuList>
|
|
194
|
+
<MenuGroup>
|
|
195
|
+
<MenuGroupHeader>Header 1</MenuGroupHeader>
|
|
196
|
+
<MenuItem>Option 1</MenuItem>
|
|
197
|
+
</MenuGroup>
|
|
198
|
+
<MenuDivider></MenuDivider>
|
|
199
|
+
<MenuGroup>
|
|
200
|
+
<MenuGroupHeader>Header 2</MenuGroupHeader>
|
|
201
|
+
<MenuItem>Option 1</MenuItem>
|
|
202
|
+
</MenuGroup>
|
|
203
|
+
</MenuList>
|
|
204
|
+
</MenuPopover>
|
|
205
|
+
</Menu>,
|
|
206
|
+
)
|
|
207
|
+
.toJSON();
|
|
208
|
+
expect(tree).toMatchSnapshot();
|
|
209
|
+
});
|
|
210
|
+
|
|
183
211
|
describe('Menu rerender tests', () => {
|
|
184
212
|
it('Menu re-renders correctly', () => {
|
|
185
213
|
checkReRender(
|