@fluentui-react-native/menu 0.5.1 → 0.5.2
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 +16 -1
- package/CHANGELOG.md +10 -2
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +3 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js +20 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +5 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js +21 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +43 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js +2 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +5 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js +26 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +5 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +27 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +3 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +25 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.d.ts +3 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js +23 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts +5 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.js +24 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +43 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.js +5 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts +5 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js +30 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts +5 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js +31 -0
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts +3 -0
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -0
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +29 -0
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
- package/package.json +1 -1
- package/src/MenuItemCheckbox/MenuItemCheckbox.styling.ts +37 -0
- package/src/MenuItemCheckbox/MenuItemCheckbox.tsx +26 -0
- package/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +52 -0
- package/src/MenuItemCheckbox/MenuItemCheckboxTokens.ts +29 -0
- package/src/MenuItemCheckbox/MenuItemCheckboxTokens.win32.ts +30 -0
- package/src/MenuItemCheckbox/useMenuItemCheckbox.ts +40 -0
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,22 @@
|
|
|
2
2
|
"name": "@fluentui-react-native/menu",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Wed, 11 May 2022 19:33:47 GMT",
|
|
6
|
+
"tag": "@fluentui-react-native/menu_v0.5.2",
|
|
7
|
+
"version": "0.5.2",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "ruaraki@microsoft.com",
|
|
12
|
+
"package": "@fluentui-react-native/menu",
|
|
13
|
+
"commit": "cd21471b444c9005b14d07af0cad289008093a83",
|
|
14
|
+
"comment": "Add MenuItemCheckbox"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"date": "Tue, 10 May 2022 20:49:25 GMT",
|
|
6
21
|
"tag": "@fluentui-react-native/menu_v0.5.1",
|
|
7
22
|
"version": "0.5.1",
|
|
8
23
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
# Change Log - @fluentui-react-native/menu
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Wed, 11 May 2022 19:33:47 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 0.5.2
|
|
8
|
+
|
|
9
|
+
Wed, 11 May 2022 19:33:47 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- Add MenuItemCheckbox (ruaraki@microsoft.com)
|
|
14
|
+
|
|
7
15
|
## 0.5.1
|
|
8
16
|
|
|
9
|
-
Tue, 10 May 2022 20:49:
|
|
17
|
+
Tue, 10 May 2022 20:49:25 GMT
|
|
10
18
|
|
|
11
19
|
### Patches
|
|
12
20
|
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { MenuItemCheckboxProps } from './MenuItemCheckbox.types';
|
|
2
|
+
export declare const MenuItemCheckbox: import("@fluentui-react-native/framework").ComposableComponent<MenuItemCheckboxProps, import("./MenuItemCheckbox.types").MenuItemCheckboxSlotProps, import("./MenuItemCheckbox.types").MenuItemCheckboxTokens, object>;
|
|
3
|
+
//# sourceMappingURL=MenuItemCheckbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAwB,qBAAqB,EAAwB,MAAM,0BAA0B,CAAC;AAI7G,eAAO,MAAM,gBAAgB,wNAiB3B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
/** @jsx withSlots */
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import { compose, mergeProps, withSlots } from '@fluentui-react-native/framework';
|
|
5
|
+
import { Text } from '@fluentui-react-native/experimental-text';
|
|
6
|
+
import { menuItemCheckboxName } from './MenuItemCheckbox.types';
|
|
7
|
+
import { useMenuItemCheckbox } from './useMenuItemCheckbox';
|
|
8
|
+
import { stylingSettings } from './MenuItemCheckbox.styling';
|
|
9
|
+
export var MenuItemCheckbox = compose(__assign(__assign({ displayName: menuItemCheckboxName }, stylingSettings), { slots: {
|
|
10
|
+
root: View,
|
|
11
|
+
content: Text,
|
|
12
|
+
}, useRender: function (userProps, useSlots) {
|
|
13
|
+
var menuItem = useMenuItemCheckbox(userProps);
|
|
14
|
+
var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
|
|
15
|
+
return function (final) {
|
|
16
|
+
var mergedProps = mergeProps(menuItem.props, final);
|
|
17
|
+
return withSlots(Slots.root, __assign({}, mergedProps), mergedProps.content && withSlots(Slots.content, null, mergedProps.content));
|
|
18
|
+
};
|
|
19
|
+
} }));
|
|
20
|
+
//# sourceMappingURL=MenuItemCheckbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";AAAA,qBAAqB;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAY,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAA+C,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,CAAC,IAAM,gBAAgB,GAAG,OAAO,qBACrC,WAAW,EAAE,oBAAoB,IAC9B,eAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,UAAC,KAA4B;YAClC,IAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEtD,OAAO,UAAC,KAAK,CAAC,IAAI,eAAK,WAAW,GAAG,WAAW,CAAC,OAAO,IAAI,UAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CAAc,CAAC;QACjI,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { UseStylingOptions } from '@fluentui-react-native/framework';
|
|
2
|
+
import { MenuItemCheckboxProps, MenuItemCheckboxTokens, MenuItemCheckboxSlotProps } from './MenuItemCheckbox.types';
|
|
3
|
+
export declare const menuItemCheckboxStates: (keyof MenuItemCheckboxTokens)[];
|
|
4
|
+
export declare const stylingSettings: UseStylingOptions<MenuItemCheckboxProps, MenuItemCheckboxSlotProps, MenuItemCheckboxTokens>;
|
|
5
|
+
//# sourceMappingURL=MenuItemCheckbox.styling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.styling.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.styling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,iBAAiB,EAAc,MAAM,kCAAkC,CAAC;AAGxF,OAAO,EAAwB,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1I,eAAO,MAAM,sBAAsB,EAAE,CAAC,MAAM,sBAAsB,CAAC,EAAkD,CAAC;AAEtH,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,sBAAsB,CA6BvH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { __assign, __spreadArray } from "tslib";
|
|
2
|
+
import { buildProps } from '@fluentui-react-native/framework';
|
|
3
|
+
import { fontStyles, layoutStyles } from '@fluentui-react-native/tokens';
|
|
4
|
+
import { defaultMenuItemCheckboxTokens } from './MenuItemCheckboxTokens';
|
|
5
|
+
import { menuItemCheckboxName } from './MenuItemCheckbox.types';
|
|
6
|
+
export var menuItemCheckboxStates = ['hovered', 'focused', 'pressed', 'disabled'];
|
|
7
|
+
export var stylingSettings = {
|
|
8
|
+
tokens: [defaultMenuItemCheckboxTokens, menuItemCheckboxName],
|
|
9
|
+
states: menuItemCheckboxStates,
|
|
10
|
+
slotProps: {
|
|
11
|
+
root: buildProps(function (tokens, theme) { return ({
|
|
12
|
+
style: __assign({ alignItems: 'center', backgroundColor: tokens.backgroundColor, display: 'flex', flexDirection: 'row' }, layoutStyles.from(tokens, theme)),
|
|
13
|
+
}); }, __spreadArray(['backgroundColor'], layoutStyles.keys, true)),
|
|
14
|
+
content: buildProps(function (tokens, theme) {
|
|
15
|
+
return {
|
|
16
|
+
style: __assign({ flexGrow: 1, color: tokens.color }, fontStyles.from(tokens, theme)),
|
|
17
|
+
};
|
|
18
|
+
}, __spreadArray(['color'], fontStyles.keys, true)),
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=MenuItemCheckbox.styling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.styling.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.styling.ts"],"names":[],"mappings":";AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAA4E,MAAM,0BAA0B,CAAC;AAE1I,MAAM,CAAC,IAAM,sBAAsB,GAAqC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEtH,MAAM,CAAC,IAAM,eAAe,GAAgG;IAC1H,MAAM,EAAE,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;IAC7D,MAAM,EAAE,sBAAsB;IAC9B,SAAS,EAAE;QACT,IAAI,EAAE,UAAU,CACd,UAAC,MAA8B,EAAE,KAAY,IAAK,OAAA,CAAC;YACjD,KAAK,aACH,UAAU,EAAE,QAAQ,EACpB,eAAe,EAAE,MAAM,CAAC,eAAe,EACvC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,KAAK,IACjB,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CACpC;SACF,CAAC,EARgD,CAQhD,iBACD,iBAAiB,GAAK,YAAY,CAAC,IAAI,QACzC;QACD,OAAO,EAAE,UAAU,CACjB,UAAC,MAA8B,EAAE,KAAY;YAC3C,OAAO;gBACL,KAAK,aACH,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,MAAM,CAAC,KAAK,IAChB,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAClC;aACF,CAAC;QACJ,CAAC,iBACA,OAAO,GAAK,UAAU,CAAC,IAAI,QAC7B;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ViewProps } from 'react-native';
|
|
3
|
+
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
4
|
+
import { TextProps } from '@fluentui-react-native/experimental-text';
|
|
5
|
+
import { IFocusable, InteractionEvent, IPressableHooks, IWithPressableOptions } from '@fluentui-react-native/interactive-hooks';
|
|
6
|
+
import { FontTokens, IBorderTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
|
|
7
|
+
export declare const menuItemCheckboxName = "MenuItemCheckbox";
|
|
8
|
+
export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorderTokens, IColorTokens {
|
|
9
|
+
disabled?: MenuItemCheckboxTokens;
|
|
10
|
+
focused?: MenuItemCheckboxTokens;
|
|
11
|
+
hovered?: MenuItemCheckboxTokens;
|
|
12
|
+
pressed?: MenuItemCheckboxTokens;
|
|
13
|
+
}
|
|
14
|
+
export interface MenuItemCheckboxProps extends Omit<IWithPressableOptions<ViewProps>, 'onPress'> {
|
|
15
|
+
content: string;
|
|
16
|
+
/**
|
|
17
|
+
* Applies disabled styles to menu item but remains focusable
|
|
18
|
+
*/
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* A RefObject to access the IButton interface. Use this to access the public methods and properties of the component.
|
|
22
|
+
*/
|
|
23
|
+
componentRef?: React.RefObject<IFocusable>;
|
|
24
|
+
/**
|
|
25
|
+
* If the menu item is a trigger for a submenu
|
|
26
|
+
*/
|
|
27
|
+
hasSubmenu?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* A callback to call on button click event
|
|
30
|
+
*/
|
|
31
|
+
onClick?: (e: InteractionEvent) => void;
|
|
32
|
+
}
|
|
33
|
+
export declare type MenuItemCheckboxState = IPressableHooks<MenuItemCheckboxProps & React.ComponentPropsWithRef<any>>;
|
|
34
|
+
export interface MenuItemCheckboxSlotProps {
|
|
35
|
+
root: React.PropsWithRef<IViewProps>;
|
|
36
|
+
content?: TextProps;
|
|
37
|
+
}
|
|
38
|
+
export interface MenuItemCheckboxType {
|
|
39
|
+
props: MenuItemCheckboxProps;
|
|
40
|
+
tokens: MenuItemCheckboxTokens;
|
|
41
|
+
slotProps: MenuItemCheckboxSlotProps;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=MenuItemCheckbox.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.types.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAChI,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEtG,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,MAAM,WAAW,sBAAuB,SAAQ,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY;IACnG,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC9F,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,oBAAY,qBAAqB,GAAG,eAAe,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9G,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,yBAAyB,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.types.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,IAAM,oBAAoB,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
3
|
+
import { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
4
|
+
export declare const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuItemCheckboxTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckboxTokens.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,6BAA6B,EAAE,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAuBrF,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
2
|
+
export var defaultMenuItemCheckboxTokens = function (t) { return ({
|
|
3
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
4
|
+
borderRadius: globalTokens.corner.radius.medium,
|
|
5
|
+
color: t.colors.neutralForeground2,
|
|
6
|
+
fontFamily: t.typography.families.primary,
|
|
7
|
+
fontSize: globalTokens.font.size[300],
|
|
8
|
+
fontWeight: globalTokens.font.weight.regular,
|
|
9
|
+
minHeight: 32,
|
|
10
|
+
minWidth: 160,
|
|
11
|
+
maxWidth: 300,
|
|
12
|
+
padding: globalTokens.spacing.sNudge,
|
|
13
|
+
hovered: {
|
|
14
|
+
backgroundColor: t.colors.neutralBackground1Hover,
|
|
15
|
+
color: t.colors.neutralForeground2Hover,
|
|
16
|
+
},
|
|
17
|
+
pressed: {
|
|
18
|
+
backgroundColor: t.colors.neutralBackground1Pressed,
|
|
19
|
+
color: t.colors.neutralForeground2Pressed,
|
|
20
|
+
},
|
|
21
|
+
disabled: {
|
|
22
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
23
|
+
color: t.colors.neutralForegroundDisabled,
|
|
24
|
+
},
|
|
25
|
+
}); };
|
|
26
|
+
//# sourceMappingURL=MenuItemCheckboxTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckboxTokens.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAInE,MAAM,CAAC,IAAM,6BAA6B,GAAiD,UAAC,CAAQ,IAA6B,OAAA,CAAC;IAChI,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM;IACpC,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;KACxC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;CACF,CAAC,EAvB+H,CAuB/H,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
3
|
+
import { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
4
|
+
export declare const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuItemCheckboxTokens.win32.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckboxTokens.win32.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.win32.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,6BAA6B,EAAE,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAwBrF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
2
|
+
export var defaultMenuItemCheckboxTokens = function (t) { return ({
|
|
3
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
4
|
+
borderRadius: globalTokens.corner.radius.none,
|
|
5
|
+
color: t.colors.neutralForeground1,
|
|
6
|
+
fontFamily: t.typography.families.primary,
|
|
7
|
+
fontSize: globalTokens.font.size[200],
|
|
8
|
+
fontWeight: globalTokens.font.weight.regular,
|
|
9
|
+
minHeight: 24,
|
|
10
|
+
minWidth: 160,
|
|
11
|
+
maxWidth: 300,
|
|
12
|
+
padding: globalTokens.spacing.xs,
|
|
13
|
+
paddingHorizontal: globalTokens.spacing.s,
|
|
14
|
+
hovered: {
|
|
15
|
+
backgroundColor: t.colors.neutralBackground1Hover,
|
|
16
|
+
color: t.colors.neutralForeground1Hover,
|
|
17
|
+
},
|
|
18
|
+
pressed: {
|
|
19
|
+
backgroundColor: t.colors.neutralBackground1Pressed,
|
|
20
|
+
color: t.colors.neutralForeground1Pressed,
|
|
21
|
+
},
|
|
22
|
+
disabled: {
|
|
23
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
24
|
+
color: t.colors.neutralForegroundDisabled,
|
|
25
|
+
},
|
|
26
|
+
}); };
|
|
27
|
+
//# sourceMappingURL=MenuItemCheckboxTokens.win32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckboxTokens.win32.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.win32.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAInE,MAAM,CAAC,IAAM,6BAA6B,GAAiD,UAAC,CAAQ,IAA6B,OAAA,CAAC;IAChI,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE;IAChC,iBAAiB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;KACxC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;CACF,CAAC,EAxB+H,CAwB/H,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAKxF,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAwBlE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { memoize } from '@fluentui-react-native/framework';
|
|
4
|
+
import { useAsPressable, useKeyProps } from '@fluentui-react-native/interactive-hooks';
|
|
5
|
+
import { useMenuContext } from '../context/menuContext';
|
|
6
|
+
export var useMenuItemCheckbox = function (props) {
|
|
7
|
+
// attach the pressable state handlers
|
|
8
|
+
var defaultComponentRef = React.useRef(null);
|
|
9
|
+
var onClick = props.onClick, accessibilityState = props.accessibilityState, _a = props.componentRef, componentRef = _a === void 0 ? defaultComponentRef : _a, disabled = props.disabled, rest = __rest(props, ["onClick", "accessibilityState", "componentRef", "disabled"]);
|
|
10
|
+
var pressable = useAsPressable(__assign(__assign({}, rest), { disabled: disabled, onPress: onClick }));
|
|
11
|
+
var onKeyProps = useKeyProps(onClick, ' ', 'Enter');
|
|
12
|
+
var hasSubmenu = useMenuContext().isSubmenu;
|
|
13
|
+
return {
|
|
14
|
+
props: __assign(__assign(__assign({}, pressable.props), { accessible: true, accessibilityRole: 'button', onAccessibilityTap: props.onAccessibilityTap || props.onClick, accessibilityLabel: props.accessibilityLabel, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: !disabled, hasSubmenu: hasSubmenu, ref: componentRef }), onKeyProps),
|
|
15
|
+
state: pressable.state,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
var getAccessibilityState = memoize(getAccessibilityStateWorker);
|
|
19
|
+
function getAccessibilityStateWorker(disabled, accessibilityState) {
|
|
20
|
+
if (accessibilityState) {
|
|
21
|
+
return __assign({ disabled: disabled }, accessibilityState);
|
|
22
|
+
}
|
|
23
|
+
return { disabled: disabled };
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=useMenuItemCheckbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,KAA4B;IAC9D,sCAAsC;IACtC,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,IAAA,OAAO,GAAgF,KAAK,QAArF,EAAE,kBAAkB,GAA4D,KAAK,mBAAjE,EAAE,KAA0D,KAAK,aAA7B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAAE,QAAQ,GAAc,KAAK,SAAnB,EAAK,IAAI,UAAK,KAAK,EAA9F,6DAAsF,CAAF,CAAW;IACrG,IAAM,SAAS,GAAG,cAAc,uBAAM,IAAI,KAAE,QAAQ,UAAA,EAAE,OAAO,EAAE,OAAO,IAAG,CAAC;IAC1E,IAAM,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,IAAM,UAAU,GAAG,cAAc,EAAE,CAAC,SAAS,CAAC;IAE9C,OAAO;QACL,KAAK,iCACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,QAAQ,EAC3B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EACvE,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,UAAU,YAAA,EACV,GAAG,EAAE,YAAY,KACd,UAAU,CACd;QACD,KAAK,EAAE,SAAS,CAAC,KAAK;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,qBAAqB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,kBAAuC;IAC7F,IAAI,kBAAkB,EAAE;QACtB,kBAAS,QAAQ,UAAA,IAAK,kBAAkB,EAAG;KAC5C;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { MenuItemCheckboxProps } from './MenuItemCheckbox.types';
|
|
2
|
+
export declare const MenuItemCheckbox: import("@fluentui-react-native/framework").ComposableComponent<MenuItemCheckboxProps, import("./MenuItemCheckbox.types").MenuItemCheckboxSlotProps, import("./MenuItemCheckbox.types").MenuItemCheckboxTokens, object>;
|
|
3
|
+
//# sourceMappingURL=MenuItemCheckbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAwB,qBAAqB,EAAwB,MAAM,0BAA0B,CAAC;AAI7G,eAAO,MAAM,gBAAgB,wNAiB3B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MenuItemCheckbox = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
/** @jsx withSlots */
|
|
6
|
+
var react_native_1 = require("react-native");
|
|
7
|
+
var framework_1 = require("@fluentui-react-native/framework");
|
|
8
|
+
var experimental_text_1 = require("@fluentui-react-native/experimental-text");
|
|
9
|
+
var MenuItemCheckbox_types_1 = require("./MenuItemCheckbox.types");
|
|
10
|
+
var useMenuItemCheckbox_1 = require("./useMenuItemCheckbox");
|
|
11
|
+
var MenuItemCheckbox_styling_1 = require("./MenuItemCheckbox.styling");
|
|
12
|
+
exports.MenuItemCheckbox = (0, framework_1.compose)((0, tslib_1.__assign)((0, tslib_1.__assign)({ displayName: MenuItemCheckbox_types_1.menuItemCheckboxName }, MenuItemCheckbox_styling_1.stylingSettings), { slots: {
|
|
13
|
+
root: react_native_1.View,
|
|
14
|
+
content: experimental_text_1.Text,
|
|
15
|
+
}, useRender: function (userProps, useSlots) {
|
|
16
|
+
var menuItem = (0, useMenuItemCheckbox_1.useMenuItemCheckbox)(userProps);
|
|
17
|
+
var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
|
|
18
|
+
return function (final) {
|
|
19
|
+
var mergedProps = (0, framework_1.mergeProps)(menuItem.props, final);
|
|
20
|
+
return (0, framework_1.withSlots)(Slots.root, (0, tslib_1.__assign)({}, mergedProps), mergedProps.content && (0, framework_1.withSlots)(Slots.content, null, mergedProps.content));
|
|
21
|
+
};
|
|
22
|
+
} }));
|
|
23
|
+
//# sourceMappingURL=MenuItemCheckbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAoC;AACpC,8DAA4F;AAC5F,8EAAgE;AAChE,mEAA6G;AAC7G,6DAA4D;AAC5D,uEAA6D;AAEhD,QAAA,gBAAgB,GAAG,IAAA,mBAAO,gDACrC,WAAW,EAAE,6CAAoB,IAC9B,0CAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,OAAO,EAAE,wBAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,IAAA,yCAAmB,EAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,UAAC,KAA4B;YAClC,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEtD,OAAO,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW,GAAG,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CAAc,CAAC;QACjI,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { UseStylingOptions } from '@fluentui-react-native/framework';
|
|
2
|
+
import { MenuItemCheckboxProps, MenuItemCheckboxTokens, MenuItemCheckboxSlotProps } from './MenuItemCheckbox.types';
|
|
3
|
+
export declare const menuItemCheckboxStates: (keyof MenuItemCheckboxTokens)[];
|
|
4
|
+
export declare const stylingSettings: UseStylingOptions<MenuItemCheckboxProps, MenuItemCheckboxSlotProps, MenuItemCheckboxTokens>;
|
|
5
|
+
//# sourceMappingURL=MenuItemCheckbox.styling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.styling.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.styling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,iBAAiB,EAAc,MAAM,kCAAkC,CAAC;AAGxF,OAAO,EAAwB,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1I,eAAO,MAAM,sBAAsB,EAAE,CAAC,MAAM,sBAAsB,CAAC,EAAkD,CAAC;AAEtH,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,sBAAsB,CA6BvH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stylingSettings = exports.menuItemCheckboxStates = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var framework_1 = require("@fluentui-react-native/framework");
|
|
6
|
+
var tokens_1 = require("@fluentui-react-native/tokens");
|
|
7
|
+
var MenuItemCheckboxTokens_1 = require("./MenuItemCheckboxTokens");
|
|
8
|
+
var MenuItemCheckbox_types_1 = require("./MenuItemCheckbox.types");
|
|
9
|
+
exports.menuItemCheckboxStates = ['hovered', 'focused', 'pressed', 'disabled'];
|
|
10
|
+
exports.stylingSettings = {
|
|
11
|
+
tokens: [MenuItemCheckboxTokens_1.defaultMenuItemCheckboxTokens, MenuItemCheckbox_types_1.menuItemCheckboxName],
|
|
12
|
+
states: exports.menuItemCheckboxStates,
|
|
13
|
+
slotProps: {
|
|
14
|
+
root: (0, framework_1.buildProps)(function (tokens, theme) { return ({
|
|
15
|
+
style: (0, tslib_1.__assign)({ alignItems: 'center', backgroundColor: tokens.backgroundColor, display: 'flex', flexDirection: 'row' }, tokens_1.layoutStyles.from(tokens, theme)),
|
|
16
|
+
}); }, (0, tslib_1.__spreadArray)(['backgroundColor'], tokens_1.layoutStyles.keys, true)),
|
|
17
|
+
content: (0, framework_1.buildProps)(function (tokens, theme) {
|
|
18
|
+
return {
|
|
19
|
+
style: (0, tslib_1.__assign)({ flexGrow: 1, color: tokens.color }, tokens_1.fontStyles.from(tokens, theme)),
|
|
20
|
+
};
|
|
21
|
+
}, (0, tslib_1.__spreadArray)(['color'], tokens_1.fontStyles.keys, true)),
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=MenuItemCheckbox.styling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.styling.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.styling.ts"],"names":[],"mappings":";;;;AAAA,8DAAwF;AACxF,wDAAyE;AACzE,mEAAyE;AACzE,mEAA0I;AAE7H,QAAA,sBAAsB,GAAqC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEzG,QAAA,eAAe,GAAgG;IAC1H,MAAM,EAAE,CAAC,sDAA6B,EAAE,6CAAoB,CAAC;IAC7D,MAAM,EAAE,8BAAsB;IAC9B,SAAS,EAAE;QACT,IAAI,EAAE,IAAA,sBAAU,EACd,UAAC,MAA8B,EAAE,KAAY,IAAK,OAAA,CAAC;YACjD,KAAK,0BACH,UAAU,EAAE,QAAQ,EACpB,eAAe,EAAE,MAAM,CAAC,eAAe,EACvC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,KAAK,IACjB,qBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CACpC;SACF,CAAC,EARgD,CAQhD,8BACD,iBAAiB,GAAK,qBAAY,CAAC,IAAI,QACzC;QACD,OAAO,EAAE,IAAA,sBAAU,EACjB,UAAC,MAA8B,EAAE,KAAY;YAC3C,OAAO;gBACL,KAAK,0BACH,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,MAAM,CAAC,KAAK,IAChB,mBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAClC;aACF,CAAC;QACJ,CAAC,8BACA,OAAO,GAAK,mBAAU,CAAC,IAAI,QAC7B;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ViewProps } from 'react-native';
|
|
3
|
+
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
4
|
+
import { TextProps } from '@fluentui-react-native/experimental-text';
|
|
5
|
+
import { IFocusable, InteractionEvent, IPressableHooks, IWithPressableOptions } from '@fluentui-react-native/interactive-hooks';
|
|
6
|
+
import { FontTokens, IBorderTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
|
|
7
|
+
export declare const menuItemCheckboxName = "MenuItemCheckbox";
|
|
8
|
+
export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorderTokens, IColorTokens {
|
|
9
|
+
disabled?: MenuItemCheckboxTokens;
|
|
10
|
+
focused?: MenuItemCheckboxTokens;
|
|
11
|
+
hovered?: MenuItemCheckboxTokens;
|
|
12
|
+
pressed?: MenuItemCheckboxTokens;
|
|
13
|
+
}
|
|
14
|
+
export interface MenuItemCheckboxProps extends Omit<IWithPressableOptions<ViewProps>, 'onPress'> {
|
|
15
|
+
content: string;
|
|
16
|
+
/**
|
|
17
|
+
* Applies disabled styles to menu item but remains focusable
|
|
18
|
+
*/
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* A RefObject to access the IButton interface. Use this to access the public methods and properties of the component.
|
|
22
|
+
*/
|
|
23
|
+
componentRef?: React.RefObject<IFocusable>;
|
|
24
|
+
/**
|
|
25
|
+
* If the menu item is a trigger for a submenu
|
|
26
|
+
*/
|
|
27
|
+
hasSubmenu?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* A callback to call on button click event
|
|
30
|
+
*/
|
|
31
|
+
onClick?: (e: InteractionEvent) => void;
|
|
32
|
+
}
|
|
33
|
+
export declare type MenuItemCheckboxState = IPressableHooks<MenuItemCheckboxProps & React.ComponentPropsWithRef<any>>;
|
|
34
|
+
export interface MenuItemCheckboxSlotProps {
|
|
35
|
+
root: React.PropsWithRef<IViewProps>;
|
|
36
|
+
content?: TextProps;
|
|
37
|
+
}
|
|
38
|
+
export interface MenuItemCheckboxType {
|
|
39
|
+
props: MenuItemCheckboxProps;
|
|
40
|
+
tokens: MenuItemCheckboxTokens;
|
|
41
|
+
slotProps: MenuItemCheckboxSlotProps;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=MenuItemCheckbox.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.types.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAChI,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEtG,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,MAAM,WAAW,sBAAuB,SAAQ,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY;IACnG,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC9F,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,oBAAY,qBAAqB,GAAG,eAAe,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9G,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,yBAAyB,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckbox.types.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.types.ts"],"names":[],"mappings":";;;AAOa,QAAA,oBAAoB,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
3
|
+
import { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
4
|
+
export declare const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuItemCheckboxTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckboxTokens.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,6BAA6B,EAAE,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAuBrF,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultMenuItemCheckboxTokens = void 0;
|
|
4
|
+
var theme_tokens_1 = require("@fluentui-react-native/theme-tokens");
|
|
5
|
+
var defaultMenuItemCheckboxTokens = function (t) { return ({
|
|
6
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
7
|
+
borderRadius: theme_tokens_1.globalTokens.corner.radius.medium,
|
|
8
|
+
color: t.colors.neutralForeground2,
|
|
9
|
+
fontFamily: t.typography.families.primary,
|
|
10
|
+
fontSize: theme_tokens_1.globalTokens.font.size[300],
|
|
11
|
+
fontWeight: theme_tokens_1.globalTokens.font.weight.regular,
|
|
12
|
+
minHeight: 32,
|
|
13
|
+
minWidth: 160,
|
|
14
|
+
maxWidth: 300,
|
|
15
|
+
padding: theme_tokens_1.globalTokens.spacing.sNudge,
|
|
16
|
+
hovered: {
|
|
17
|
+
backgroundColor: t.colors.neutralBackground1Hover,
|
|
18
|
+
color: t.colors.neutralForeground2Hover,
|
|
19
|
+
},
|
|
20
|
+
pressed: {
|
|
21
|
+
backgroundColor: t.colors.neutralBackground1Pressed,
|
|
22
|
+
color: t.colors.neutralForeground2Pressed,
|
|
23
|
+
},
|
|
24
|
+
disabled: {
|
|
25
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
26
|
+
color: t.colors.neutralForegroundDisabled,
|
|
27
|
+
},
|
|
28
|
+
}); };
|
|
29
|
+
exports.defaultMenuItemCheckboxTokens = defaultMenuItemCheckboxTokens;
|
|
30
|
+
//# sourceMappingURL=MenuItemCheckboxTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckboxTokens.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAI5D,IAAM,6BAA6B,GAAiD,UAAC,CAAQ,IAA6B,OAAA,CAAC;IAChI,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,YAAY,EAAE,2BAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,2BAAY,CAAC,OAAO,CAAC,MAAM;IACpC,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;KACxC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;CACF,CAAC,EAvB+H,CAuB/H,CAAC;AAvBU,QAAA,6BAA6B,iCAuBvC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
3
|
+
import { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
4
|
+
export declare const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuItemCheckboxTokens.win32.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckboxTokens.win32.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.win32.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,6BAA6B,EAAE,aAAa,CAAC,sBAAsB,EAAE,KAAK,CAwBrF,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultMenuItemCheckboxTokens = void 0;
|
|
4
|
+
var theme_tokens_1 = require("@fluentui-react-native/theme-tokens");
|
|
5
|
+
var defaultMenuItemCheckboxTokens = function (t) { return ({
|
|
6
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
7
|
+
borderRadius: theme_tokens_1.globalTokens.corner.radius.none,
|
|
8
|
+
color: t.colors.neutralForeground1,
|
|
9
|
+
fontFamily: t.typography.families.primary,
|
|
10
|
+
fontSize: theme_tokens_1.globalTokens.font.size[200],
|
|
11
|
+
fontWeight: theme_tokens_1.globalTokens.font.weight.regular,
|
|
12
|
+
minHeight: 24,
|
|
13
|
+
minWidth: 160,
|
|
14
|
+
maxWidth: 300,
|
|
15
|
+
padding: theme_tokens_1.globalTokens.spacing.xs,
|
|
16
|
+
paddingHorizontal: theme_tokens_1.globalTokens.spacing.s,
|
|
17
|
+
hovered: {
|
|
18
|
+
backgroundColor: t.colors.neutralBackground1Hover,
|
|
19
|
+
color: t.colors.neutralForeground1Hover,
|
|
20
|
+
},
|
|
21
|
+
pressed: {
|
|
22
|
+
backgroundColor: t.colors.neutralBackground1Pressed,
|
|
23
|
+
color: t.colors.neutralForeground1Pressed,
|
|
24
|
+
},
|
|
25
|
+
disabled: {
|
|
26
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
27
|
+
color: t.colors.neutralForegroundDisabled,
|
|
28
|
+
},
|
|
29
|
+
}); };
|
|
30
|
+
exports.defaultMenuItemCheckboxTokens = defaultMenuItemCheckboxTokens;
|
|
31
|
+
//# sourceMappingURL=MenuItemCheckboxTokens.win32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemCheckboxTokens.win32.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckboxTokens.win32.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAI5D,IAAM,6BAA6B,GAAiD,UAAC,CAAQ,IAA6B,OAAA,CAAC;IAChI,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,YAAY,EAAE,2BAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE;IAChC,iBAAiB,EAAE,2BAAY,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;KACxC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;CACF,CAAC,EAxB+H,CAwB/H,CAAC;AAxBU,QAAA,6BAA6B,iCAwBvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAKxF,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAwBlE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMenuItemCheckbox = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var React = (0, tslib_1.__importStar)(require("react"));
|
|
6
|
+
var framework_1 = require("@fluentui-react-native/framework");
|
|
7
|
+
var interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
|
|
8
|
+
var menuContext_1 = require("../context/menuContext");
|
|
9
|
+
var useMenuItemCheckbox = function (props) {
|
|
10
|
+
// attach the pressable state handlers
|
|
11
|
+
var defaultComponentRef = React.useRef(null);
|
|
12
|
+
var onClick = props.onClick, accessibilityState = props.accessibilityState, _a = props.componentRef, componentRef = _a === void 0 ? defaultComponentRef : _a, disabled = props.disabled, rest = (0, tslib_1.__rest)(props, ["onClick", "accessibilityState", "componentRef", "disabled"]);
|
|
13
|
+
var pressable = (0, interactive_hooks_1.useAsPressable)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, rest), { disabled: disabled, onPress: onClick }));
|
|
14
|
+
var onKeyProps = (0, interactive_hooks_1.useKeyProps)(onClick, ' ', 'Enter');
|
|
15
|
+
var hasSubmenu = (0, menuContext_1.useMenuContext)().isSubmenu;
|
|
16
|
+
return {
|
|
17
|
+
props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityRole: 'button', onAccessibilityTap: props.onAccessibilityTap || props.onClick, accessibilityLabel: props.accessibilityLabel, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: !disabled, hasSubmenu: hasSubmenu, ref: componentRef }), onKeyProps),
|
|
18
|
+
state: pressable.state,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
exports.useMenuItemCheckbox = useMenuItemCheckbox;
|
|
22
|
+
var getAccessibilityState = (0, framework_1.memoize)(getAccessibilityStateWorker);
|
|
23
|
+
function getAccessibilityStateWorker(disabled, accessibilityState) {
|
|
24
|
+
if (accessibilityState) {
|
|
25
|
+
return (0, tslib_1.__assign)({ disabled: disabled }, accessibilityState);
|
|
26
|
+
}
|
|
27
|
+
return { disabled: disabled };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=useMenuItemCheckbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAG/B,8DAA2D;AAC3D,8EAAuF;AACvF,sDAAwD;AAEjD,IAAM,mBAAmB,GAAG,UAAC,KAA4B;IAC9D,sCAAsC;IACtC,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,IAAA,OAAO,GAAgF,KAAK,QAArF,EAAE,kBAAkB,GAA4D,KAAK,mBAAjE,EAAE,KAA0D,KAAK,aAA7B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAAE,QAAQ,GAAc,KAAK,SAAnB,EAAK,IAAI,uBAAK,KAAK,EAA9F,6DAAsF,CAAF,CAAW;IACrG,IAAM,SAAS,GAAG,IAAA,kCAAc,kDAAM,IAAI,KAAE,QAAQ,UAAA,EAAE,OAAO,EAAE,OAAO,IAAG,CAAC;IAC1E,IAAM,UAAU,GAAG,IAAA,+BAAW,EAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,IAAM,UAAU,GAAG,IAAA,4BAAc,GAAE,CAAC,SAAS,CAAC;IAE9C,OAAO;QACL,KAAK,wEACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,QAAQ,EAC3B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EACvE,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,UAAU,YAAA,EACV,GAAG,EAAE,YAAY,KACd,UAAU,CACd;QACD,KAAK,EAAE,SAAS,CAAC,KAAK;KACvB,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,mBAAmB,uBAwB9B;AAEF,IAAM,qBAAqB,GAAG,IAAA,mBAAO,EAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,kBAAuC;IAC7F,IAAI,kBAAkB,EAAE;QACtB,+BAAS,QAAQ,UAAA,IAAK,kBAAkB,EAAG;KAC5C;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Theme, UseStylingOptions, buildProps } from '@fluentui-react-native/framework';
|
|
2
|
+
import { fontStyles, layoutStyles } from '@fluentui-react-native/tokens';
|
|
3
|
+
import { defaultMenuItemCheckboxTokens } from './MenuItemCheckboxTokens';
|
|
4
|
+
import { menuItemCheckboxName, MenuItemCheckboxProps, MenuItemCheckboxTokens, MenuItemCheckboxSlotProps } from './MenuItemCheckbox.types';
|
|
5
|
+
|
|
6
|
+
export const menuItemCheckboxStates: (keyof MenuItemCheckboxTokens)[] = ['hovered', 'focused', 'pressed', 'disabled'];
|
|
7
|
+
|
|
8
|
+
export const stylingSettings: UseStylingOptions<MenuItemCheckboxProps, MenuItemCheckboxSlotProps, MenuItemCheckboxTokens> = {
|
|
9
|
+
tokens: [defaultMenuItemCheckboxTokens, menuItemCheckboxName],
|
|
10
|
+
states: menuItemCheckboxStates,
|
|
11
|
+
slotProps: {
|
|
12
|
+
root: buildProps(
|
|
13
|
+
(tokens: MenuItemCheckboxTokens, theme: Theme) => ({
|
|
14
|
+
style: {
|
|
15
|
+
alignItems: 'center',
|
|
16
|
+
backgroundColor: tokens.backgroundColor,
|
|
17
|
+
display: 'flex',
|
|
18
|
+
flexDirection: 'row',
|
|
19
|
+
...layoutStyles.from(tokens, theme),
|
|
20
|
+
},
|
|
21
|
+
}),
|
|
22
|
+
['backgroundColor', ...layoutStyles.keys],
|
|
23
|
+
),
|
|
24
|
+
content: buildProps(
|
|
25
|
+
(tokens: MenuItemCheckboxTokens, theme: Theme) => {
|
|
26
|
+
return {
|
|
27
|
+
style: {
|
|
28
|
+
flexGrow: 1,
|
|
29
|
+
color: tokens.color,
|
|
30
|
+
...fontStyles.from(tokens, theme),
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
['color', ...fontStyles.keys],
|
|
35
|
+
),
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** @jsx withSlots */
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { compose, mergeProps, UseSlots, withSlots } from '@fluentui-react-native/framework';
|
|
4
|
+
import { Text } from '@fluentui-react-native/experimental-text';
|
|
5
|
+
import { menuItemCheckboxName, MenuItemCheckboxProps, MenuItemCheckboxType } from './MenuItemCheckbox.types';
|
|
6
|
+
import { useMenuItemCheckbox } from './useMenuItemCheckbox';
|
|
7
|
+
import { stylingSettings } from './MenuItemCheckbox.styling';
|
|
8
|
+
|
|
9
|
+
export const MenuItemCheckbox = compose<MenuItemCheckboxType>({
|
|
10
|
+
displayName: menuItemCheckboxName,
|
|
11
|
+
...stylingSettings,
|
|
12
|
+
slots: {
|
|
13
|
+
root: View,
|
|
14
|
+
content: Text,
|
|
15
|
+
},
|
|
16
|
+
useRender: (userProps: MenuItemCheckboxProps, useSlots: UseSlots<MenuItemCheckboxType>) => {
|
|
17
|
+
const menuItem = useMenuItemCheckbox(userProps);
|
|
18
|
+
const Slots = useSlots(userProps, (layer): boolean => menuItem.state[layer]);
|
|
19
|
+
|
|
20
|
+
return (final: MenuItemCheckboxProps) => {
|
|
21
|
+
const mergedProps = mergeProps(menuItem.props, final);
|
|
22
|
+
|
|
23
|
+
return <Slots.root {...mergedProps}>{mergedProps.content && <Slots.content>{mergedProps.content}</Slots.content>}</Slots.root>;
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ViewProps } from 'react-native';
|
|
3
|
+
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
4
|
+
import { TextProps } from '@fluentui-react-native/experimental-text';
|
|
5
|
+
import { IFocusable, InteractionEvent, IPressableHooks, IWithPressableOptions } from '@fluentui-react-native/interactive-hooks';
|
|
6
|
+
import { FontTokens, IBorderTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
|
|
7
|
+
|
|
8
|
+
export const menuItemCheckboxName = 'MenuItemCheckbox';
|
|
9
|
+
|
|
10
|
+
export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorderTokens, IColorTokens {
|
|
11
|
+
disabled?: MenuItemCheckboxTokens;
|
|
12
|
+
focused?: MenuItemCheckboxTokens;
|
|
13
|
+
hovered?: MenuItemCheckboxTokens;
|
|
14
|
+
pressed?: MenuItemCheckboxTokens;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface MenuItemCheckboxProps extends Omit<IWithPressableOptions<ViewProps>, 'onPress'> {
|
|
18
|
+
content: string;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Applies disabled styles to menu item but remains focusable
|
|
22
|
+
*/
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* A RefObject to access the IButton interface. Use this to access the public methods and properties of the component.
|
|
27
|
+
*/
|
|
28
|
+
componentRef?: React.RefObject<IFocusable>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* If the menu item is a trigger for a submenu
|
|
32
|
+
*/
|
|
33
|
+
hasSubmenu?: boolean;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A callback to call on button click event
|
|
37
|
+
*/
|
|
38
|
+
onClick?: (e: InteractionEvent) => void;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type MenuItemCheckboxState = IPressableHooks<MenuItemCheckboxProps & React.ComponentPropsWithRef<any>>;
|
|
42
|
+
|
|
43
|
+
export interface MenuItemCheckboxSlotProps {
|
|
44
|
+
root: React.PropsWithRef<IViewProps>;
|
|
45
|
+
content?: TextProps;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface MenuItemCheckboxType {
|
|
49
|
+
props: MenuItemCheckboxProps;
|
|
50
|
+
tokens: MenuItemCheckboxTokens;
|
|
51
|
+
slotProps: MenuItemCheckboxSlotProps;
|
|
52
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
|
+
import { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
import { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
5
|
+
|
|
6
|
+
export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme> = (t: Theme): MenuItemCheckboxTokens => ({
|
|
7
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
8
|
+
borderRadius: globalTokens.corner.radius.medium,
|
|
9
|
+
color: t.colors.neutralForeground2,
|
|
10
|
+
fontFamily: t.typography.families.primary,
|
|
11
|
+
fontSize: globalTokens.font.size[300],
|
|
12
|
+
fontWeight: globalTokens.font.weight.regular as FontWeightValue,
|
|
13
|
+
minHeight: 32,
|
|
14
|
+
minWidth: 160,
|
|
15
|
+
maxWidth: 300,
|
|
16
|
+
padding: globalTokens.spacing.sNudge,
|
|
17
|
+
hovered: {
|
|
18
|
+
backgroundColor: t.colors.neutralBackground1Hover,
|
|
19
|
+
color: t.colors.neutralForeground2Hover,
|
|
20
|
+
},
|
|
21
|
+
pressed: {
|
|
22
|
+
backgroundColor: t.colors.neutralBackground1Pressed,
|
|
23
|
+
color: t.colors.neutralForeground2Pressed,
|
|
24
|
+
},
|
|
25
|
+
disabled: {
|
|
26
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
27
|
+
color: t.colors.neutralForegroundDisabled,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
|
+
import { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
import { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
5
|
+
|
|
6
|
+
export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme> = (t: Theme): MenuItemCheckboxTokens => ({
|
|
7
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
8
|
+
borderRadius: globalTokens.corner.radius.none,
|
|
9
|
+
color: t.colors.neutralForeground1,
|
|
10
|
+
fontFamily: t.typography.families.primary,
|
|
11
|
+
fontSize: globalTokens.font.size[200],
|
|
12
|
+
fontWeight: globalTokens.font.weight.regular as FontWeightValue,
|
|
13
|
+
minHeight: 24,
|
|
14
|
+
minWidth: 160,
|
|
15
|
+
maxWidth: 300,
|
|
16
|
+
padding: globalTokens.spacing.xs,
|
|
17
|
+
paddingHorizontal: globalTokens.spacing.s,
|
|
18
|
+
hovered: {
|
|
19
|
+
backgroundColor: t.colors.neutralBackground1Hover,
|
|
20
|
+
color: t.colors.neutralForeground1Hover,
|
|
21
|
+
},
|
|
22
|
+
pressed: {
|
|
23
|
+
backgroundColor: t.colors.neutralBackground1Pressed,
|
|
24
|
+
color: t.colors.neutralForeground1Pressed,
|
|
25
|
+
},
|
|
26
|
+
disabled: {
|
|
27
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
28
|
+
color: t.colors.neutralForegroundDisabled,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { AccessibilityState } from 'react-native';
|
|
3
|
+
import { MenuItemCheckboxProps, MenuItemCheckboxState } from './MenuItemCheckbox.types';
|
|
4
|
+
import { memoize } from '@fluentui-react-native/framework';
|
|
5
|
+
import { useAsPressable, useKeyProps } from '@fluentui-react-native/interactive-hooks';
|
|
6
|
+
import { useMenuContext } from '../context/menuContext';
|
|
7
|
+
|
|
8
|
+
export const useMenuItemCheckbox = (props: MenuItemCheckboxProps): MenuItemCheckboxState => {
|
|
9
|
+
// attach the pressable state handlers
|
|
10
|
+
const defaultComponentRef = React.useRef(null);
|
|
11
|
+
const { onClick, accessibilityState, componentRef = defaultComponentRef, disabled, ...rest } = props;
|
|
12
|
+
const pressable = useAsPressable({ ...rest, disabled, onPress: onClick });
|
|
13
|
+
const onKeyProps = useKeyProps(onClick, ' ', 'Enter');
|
|
14
|
+
const hasSubmenu = useMenuContext().isSubmenu;
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
props: {
|
|
18
|
+
...pressable.props,
|
|
19
|
+
accessible: true,
|
|
20
|
+
accessibilityRole: 'button',
|
|
21
|
+
onAccessibilityTap: props.onAccessibilityTap || props.onClick,
|
|
22
|
+
accessibilityLabel: props.accessibilityLabel,
|
|
23
|
+
accessibilityState: getAccessibilityState(disabled, accessibilityState),
|
|
24
|
+
enableFocusRing: true,
|
|
25
|
+
focusable: !disabled,
|
|
26
|
+
hasSubmenu,
|
|
27
|
+
ref: componentRef,
|
|
28
|
+
...onKeyProps,
|
|
29
|
+
},
|
|
30
|
+
state: pressable.state,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const getAccessibilityState = memoize(getAccessibilityStateWorker);
|
|
35
|
+
function getAccessibilityStateWorker(disabled: boolean, accessibilityState?: AccessibilityState) {
|
|
36
|
+
if (accessibilityState) {
|
|
37
|
+
return { disabled, ...accessibilityState };
|
|
38
|
+
}
|
|
39
|
+
return { disabled };
|
|
40
|
+
}
|