@fluentui-react-native/menu 1.4.28 → 1.4.29
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 +64 -1
- package/CHANGELOG.md +18 -2
- package/lib/Menu/Menu.d.ts +4 -0
- package/lib/Menu/Menu.d.ts.map +1 -0
- package/lib/Menu/Menu.js +35 -0
- package/lib/Menu/Menu.js.map +1 -0
- package/lib/Menu/Menu.types.d.ts +40 -0
- package/lib/Menu/Menu.types.d.ts.map +1 -0
- package/lib/Menu/Menu.types.js +2 -0
- package/lib/Menu/Menu.types.js.map +1 -0
- package/lib/Menu/index.d.ts +6 -0
- package/lib/Menu/index.d.ts.map +1 -0
- package/lib/Menu/index.js +5 -0
- package/lib/Menu/index.js.map +1 -0
- package/lib/Menu/useMenu.d.ts +3 -0
- package/lib/Menu/useMenu.d.ts.map +1 -0
- package/lib/Menu/useMenu.js +76 -0
- package/lib/Menu/useMenu.js.map +1 -0
- package/lib/Menu/useMenuContextValue.d.ts +4 -0
- package/lib/Menu/useMenuContextValue.d.ts.map +1 -0
- package/lib/Menu/useMenuContextValue.js +8 -0
- package/lib/Menu/useMenuContextValue.js.map +1 -0
- package/lib/MenuDivider/MenuDivider.d.ts +2 -0
- package/lib/MenuDivider/MenuDivider.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDivider.js +15 -0
- package/lib/MenuDivider/MenuDivider.js.map +1 -0
- package/lib/MenuDivider/MenuDivider.styling.d.ts +4 -0
- package/lib/MenuDivider/MenuDivider.styling.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDivider.styling.js +19 -0
- package/lib/MenuDivider/MenuDivider.styling.js.map +1 -0
- package/lib/MenuDivider/MenuDivider.types.d.ts +21 -0
- package/lib/MenuDivider/MenuDivider.types.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDivider.types.js +2 -0
- package/lib/MenuDivider/MenuDivider.types.js.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.d.ts +5 -0
- package/lib/MenuDivider/MenuDividerTokens.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.js +7 -0
- package/lib/MenuDivider/MenuDividerTokens.js.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.macos.d.ts +5 -0
- package/lib/MenuDivider/MenuDividerTokens.macos.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.macos.js +7 -0
- package/lib/MenuDivider/MenuDividerTokens.macos.js.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.win32.d.ts +5 -0
- package/lib/MenuDivider/MenuDividerTokens.win32.d.ts.map +1 -0
- package/lib/MenuDivider/MenuDividerTokens.win32.js +7 -0
- package/lib/MenuDivider/MenuDividerTokens.win32.js.map +1 -0
- package/lib/MenuDivider/index.d.ts +4 -0
- package/lib/MenuDivider/index.d.ts.map +1 -0
- package/lib/MenuDivider/index.js +3 -0
- package/lib/MenuDivider/index.js.map +1 -0
- package/lib/MenuItem/MenuItem.d.ts +7 -0
- package/lib/MenuItem/MenuItem.d.ts.map +1 -0
- package/lib/MenuItem/MenuItem.js +58 -0
- package/lib/MenuItem/MenuItem.js.map +1 -0
- package/lib/MenuItem/MenuItem.styling.d.ts +5 -0
- package/lib/MenuItem/MenuItem.styling.d.ts.map +1 -0
- package/lib/MenuItem/MenuItem.styling.js +50 -0
- package/lib/MenuItem/MenuItem.styling.js.map +1 -0
- package/lib/MenuItem/MenuItem.types.d.ts +86 -0
- package/lib/MenuItem/MenuItem.types.d.ts.map +1 -0
- package/lib/MenuItem/MenuItem.types.js +2 -0
- package/lib/MenuItem/MenuItem.types.js.map +1 -0
- package/lib/MenuItem/MenuItemTokens.d.ts +5 -0
- package/lib/MenuItem/MenuItemTokens.d.ts.map +1 -0
- package/lib/MenuItem/MenuItemTokens.js +39 -0
- package/lib/MenuItem/MenuItemTokens.js.map +1 -0
- package/lib/MenuItem/MenuItemTokens.macos.d.ts +5 -0
- package/lib/MenuItem/MenuItemTokens.macos.d.ts.map +1 -0
- package/lib/MenuItem/MenuItemTokens.macos.js +34 -0
- package/lib/MenuItem/MenuItemTokens.macos.js.map +1 -0
- package/lib/MenuItem/MenuItemTokens.win32.d.ts +5 -0
- package/lib/MenuItem/MenuItemTokens.win32.d.ts.map +1 -0
- package/lib/MenuItem/MenuItemTokens.win32.js +40 -0
- package/lib/MenuItem/MenuItemTokens.win32.js.map +1 -0
- package/lib/MenuItem/index.d.ts +5 -0
- package/lib/MenuItem/index.d.ts.map +1 -0
- package/lib/MenuItem/index.js +4 -0
- package/lib/MenuItem/index.js.map +1 -0
- package/lib/MenuItem/useMenuItem.d.ts +7 -0
- package/lib/MenuItem/useMenuItem.d.ts.map +1 -0
- package/lib/MenuItem/useMenuItem.js +74 -0
- package/lib/MenuItem/useMenuItem.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +7 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js +37 -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 +40 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +60 -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 +51 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts +5 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js +49 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.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 +52 -0
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -0
- package/lib/MenuItemCheckbox/index.d.ts +5 -0
- package/lib/MenuItemCheckbox/index.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/index.js +4 -0
- package/lib/MenuItemCheckbox/index.js.map +1 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +13 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +85 -0
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -0
- package/lib/MenuItemRadio/MenuItemRadio.d.ts +4 -0
- package/lib/MenuItemRadio/MenuItemRadio.d.ts.map +1 -0
- package/lib/MenuItemRadio/MenuItemRadio.js +12 -0
- package/lib/MenuItemRadio/MenuItemRadio.js.map +1 -0
- package/lib/MenuItemRadio/index.d.ts +3 -0
- package/lib/MenuItemRadio/index.d.ts.map +1 -0
- package/lib/MenuItemRadio/index.js +3 -0
- package/lib/MenuItemRadio/index.js.map +1 -0
- package/lib/MenuItemRadio/useMenuItemRadio.d.ts +3 -0
- package/lib/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -0
- package/lib/MenuItemRadio/useMenuItemRadio.js +30 -0
- package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -0
- package/lib/MenuList/MenuList.d.ts +4 -0
- package/lib/MenuList/MenuList.d.ts.map +1 -0
- package/lib/MenuList/MenuList.js +68 -0
- package/lib/MenuList/MenuList.js.map +1 -0
- package/lib/MenuList/MenuList.styling.d.ts +5 -0
- package/lib/MenuList/MenuList.styling.d.ts.map +1 -0
- package/lib/MenuList/MenuList.styling.js +17 -0
- package/lib/MenuList/MenuList.styling.js.map +1 -0
- package/lib/MenuList/MenuList.types.d.ts +74 -0
- package/lib/MenuList/MenuList.types.d.ts.map +1 -0
- package/lib/MenuList/MenuList.types.js +2 -0
- package/lib/MenuList/MenuList.types.js.map +1 -0
- package/lib/MenuList/MenuListTokens.d.ts +5 -0
- package/lib/MenuList/MenuListTokens.d.ts.map +1 -0
- package/lib/MenuList/MenuListTokens.js +9 -0
- package/lib/MenuList/MenuListTokens.js.map +1 -0
- package/lib/MenuList/MenuListTokens.macos.d.ts +5 -0
- package/lib/MenuList/MenuListTokens.macos.d.ts.map +1 -0
- package/lib/MenuList/MenuListTokens.macos.js +7 -0
- package/lib/MenuList/MenuListTokens.macos.js.map +1 -0
- package/lib/MenuList/MenuListTokens.win32.d.ts +5 -0
- package/lib/MenuList/MenuListTokens.win32.d.ts.map +1 -0
- package/lib/MenuList/MenuListTokens.win32.js +12 -0
- package/lib/MenuList/MenuListTokens.win32.js.map +1 -0
- package/lib/MenuList/index.d.ts +6 -0
- package/lib/MenuList/index.d.ts.map +1 -0
- package/lib/MenuList/index.js +5 -0
- package/lib/MenuList/index.js.map +1 -0
- package/lib/MenuList/useMenuList.d.ts +3 -0
- package/lib/MenuList/useMenuList.d.ts.map +1 -0
- package/lib/MenuList/useMenuList.js +109 -0
- package/lib/MenuList/useMenuList.js.map +1 -0
- package/lib/MenuList/useMenuListContextValue.d.ts +4 -0
- package/lib/MenuList/useMenuListContextValue.d.ts.map +1 -0
- package/lib/MenuList/useMenuListContextValue.js +5 -0
- package/lib/MenuList/useMenuListContextValue.js.map +1 -0
- package/lib/MenuPopover/MenuPopover.d.ts +4 -0
- package/lib/MenuPopover/MenuPopover.d.ts.map +1 -0
- package/lib/MenuPopover/MenuPopover.js +44 -0
- package/lib/MenuPopover/MenuPopover.js.map +1 -0
- package/lib/MenuPopover/MenuPopover.types.d.ts +10 -0
- package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -0
- package/lib/MenuPopover/MenuPopover.types.js +2 -0
- package/lib/MenuPopover/MenuPopover.types.js.map +1 -0
- package/lib/MenuPopover/MenuPopoverTokens.d.ts +3 -0
- package/lib/MenuPopover/MenuPopoverTokens.d.ts.map +1 -0
- package/lib/MenuPopover/MenuPopoverTokens.js +4 -0
- package/lib/MenuPopover/MenuPopoverTokens.js.map +1 -0
- package/lib/MenuPopover/index.d.ts +5 -0
- package/lib/MenuPopover/index.d.ts.map +1 -0
- package/lib/MenuPopover/index.js +4 -0
- package/lib/MenuPopover/index.js.map +1 -0
- package/lib/MenuPopover/useMenuPopover.d.ts +3 -0
- package/lib/MenuPopover/useMenuPopover.d.ts.map +1 -0
- package/lib/MenuPopover/useMenuPopover.js +92 -0
- package/lib/MenuPopover/useMenuPopover.js.map +1 -0
- package/lib/MenuTrigger/MenuTrigger.d.ts +5 -0
- package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -0
- package/lib/MenuTrigger/MenuTrigger.js +20 -0
- package/lib/MenuTrigger/MenuTrigger.js.map +1 -0
- package/lib/MenuTrigger/MenuTrigger.types.d.ts +28 -0
- package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -0
- package/lib/MenuTrigger/MenuTrigger.types.js +2 -0
- package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -0
- package/lib/MenuTrigger/index.d.ts +5 -0
- package/lib/MenuTrigger/index.d.ts.map +1 -0
- package/lib/MenuTrigger/index.js +4 -0
- package/lib/MenuTrigger/index.js.map +1 -0
- package/lib/MenuTrigger/useMenuTrigger.d.ts +3 -0
- package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -0
- package/lib/MenuTrigger/useMenuTrigger.js +79 -0
- package/lib/MenuTrigger/useMenuTrigger.js.map +1 -0
- package/lib/MenuTrigger/useMergeRefs.d.ts +20 -0
- package/lib/MenuTrigger/useMergeRefs.d.ts.map +1 -0
- package/lib/MenuTrigger/useMergeRefs.js +36 -0
- package/lib/MenuTrigger/useMergeRefs.js.map +1 -0
- package/lib/__tests__/Menu.test.d.ts +2 -0
- package/lib/__tests__/Menu.test.d.ts.map +1 -0
- package/lib/__tests__/Menu.test.js +145 -0
- package/lib/__tests__/Menu.test.js.map +1 -0
- package/lib/consts.d.ts +2 -0
- package/lib/consts.d.ts.map +1 -0
- package/lib/consts.js +6 -0
- package/lib/consts.js.map +1 -0
- package/lib/context/index.d.ts +4 -0
- package/lib/context/index.d.ts.map +1 -0
- package/lib/context/index.js +4 -0
- package/lib/context/index.js.map +1 -0
- package/lib/context/menuContext.d.ts +16 -0
- package/lib/context/menuContext.d.ts.map +1 -0
- package/lib/context/menuContext.js +20 -0
- package/lib/context/menuContext.js.map +1 -0
- package/lib/context/menuListContext.d.ts +14 -0
- package/lib/context/menuListContext.d.ts.map +1 -0
- package/lib/context/menuListContext.js +15 -0
- package/lib/context/menuListContext.js.map +1 -0
- package/lib/context/menuTriggerContext.d.ts +9 -0
- package/lib/context/menuTriggerContext.d.ts.map +1 -0
- package/lib/context/menuTriggerContext.js +9 -0
- package/lib/context/menuTriggerContext.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/package.json +9 -9
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { __assign, __spreadArray } from "tslib";
|
|
2
|
+
import { buildProps } from '@fluentui-react-native/framework';
|
|
3
|
+
import { layoutStyles } from '@fluentui-react-native/tokens';
|
|
4
|
+
import { menuListName } from './MenuList.types';
|
|
5
|
+
import { defaultMenuListTokens } from './MenuListTokens';
|
|
6
|
+
export var menuListStates = ['hasMaxHeight'];
|
|
7
|
+
export var stylingSettings = {
|
|
8
|
+
tokens: [defaultMenuListTokens, menuListName],
|
|
9
|
+
states: menuListStates,
|
|
10
|
+
slotProps: {
|
|
11
|
+
root: buildProps(function (tokens, theme) { return ({
|
|
12
|
+
style: __assign({ backgroundColor: tokens.backgroundColor, display: 'flex' }, layoutStyles.from(tokens, theme)),
|
|
13
|
+
gap: tokens.gap,
|
|
14
|
+
}); }, __spreadArray(['backgroundColor', 'gap'], layoutStyles.keys, true)),
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=MenuList.styling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuList.styling.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.styling.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,CAAC,IAAM,cAAc,GAA6B,CAAC,cAAc,CAAC,CAAC;AAEzE,MAAM,CAAC,IAAM,eAAe,GAAwE;IAClG,MAAM,EAAE,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAC7C,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE;QACT,IAAI,EAAE,UAAU,CACd,UAAC,MAAsB,EAAE,KAAY,IAAK,OAAA,CAAC;YACzC,KAAK,aACH,eAAe,EAAE,MAAM,CAAC,eAAe,EACvC,OAAO,EAAE,MAAM,IACZ,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CACpC;YACD,GAAG,EAAE,MAAM,CAAC,GAAG;SAChB,CAAC,EAPwC,CAOxC,iBACD,iBAAiB,EAAE,KAAK,GAAK,YAAY,CAAC,IAAI,QAChD;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { ScrollViewProps } from 'react-native';
|
|
3
|
+
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
4
|
+
import type { FocusZoneProps } from '@fluentui-react-native/focus-zone';
|
|
5
|
+
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
6
|
+
import type { IBackgroundColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
|
|
7
|
+
export declare const menuListName = "MenuList";
|
|
8
|
+
export interface MenuListTokens extends LayoutTokens, IBackgroundColorTokens {
|
|
9
|
+
/**
|
|
10
|
+
* Space between items in pixels
|
|
11
|
+
*/
|
|
12
|
+
gap?: number;
|
|
13
|
+
hasMaxHeight?: MenuListTokens;
|
|
14
|
+
}
|
|
15
|
+
export interface MenuListProps extends Omit<IViewProps, 'onPress'> {
|
|
16
|
+
/**
|
|
17
|
+
* Array of all checked items
|
|
18
|
+
*/
|
|
19
|
+
checked?: string[];
|
|
20
|
+
/**
|
|
21
|
+
* Default items to be checked on mount
|
|
22
|
+
*/
|
|
23
|
+
defaultChecked?: string[];
|
|
24
|
+
/**
|
|
25
|
+
* States that menu items can contain selectable items and reserves space for item alignment
|
|
26
|
+
*/
|
|
27
|
+
hasCheckmarks?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* States that menu items can contain icons and reserves space for item alignment
|
|
30
|
+
*/
|
|
31
|
+
hasIcons?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* States that menu items all have tooltips with its text by default.
|
|
34
|
+
*
|
|
35
|
+
* This option is useful for programmatically generated items to provide
|
|
36
|
+
* text for options that end up having tuncated text.
|
|
37
|
+
*/
|
|
38
|
+
hasTooltips?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Callback when checked items change
|
|
41
|
+
*
|
|
42
|
+
* @param checked Array of all currently checked values
|
|
43
|
+
*/
|
|
44
|
+
onCheckedChange?: (e: InteractionEvent, checked: string[]) => void;
|
|
45
|
+
/**
|
|
46
|
+
* Defines a minumum width for the Menu.
|
|
47
|
+
*/
|
|
48
|
+
minWidth?: number | string;
|
|
49
|
+
}
|
|
50
|
+
export interface MenuListState extends Omit<MenuListProps, 'checked' | 'onCheckedChange'> {
|
|
51
|
+
props: MenuListProps;
|
|
52
|
+
checked?: Record<string, boolean>;
|
|
53
|
+
isCheckedControlled: boolean;
|
|
54
|
+
onArrowClose?: (e: InteractionEvent) => void;
|
|
55
|
+
onCheckedChange?: (e: InteractionEvent, name: string, isChecked: boolean) => void;
|
|
56
|
+
selectRadio?: (e: InteractionEvent, name: string) => void;
|
|
57
|
+
addRadioItem: (name: string) => void;
|
|
58
|
+
removeRadioItem: (name: string) => void;
|
|
59
|
+
hasMaxHeight?: boolean;
|
|
60
|
+
hasMaxWidth?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface MenuListSlotProps {
|
|
63
|
+
root: React.PropsWithRef<IViewProps> & {
|
|
64
|
+
gap?: number;
|
|
65
|
+
};
|
|
66
|
+
focusZone?: FocusZoneProps;
|
|
67
|
+
scrollView?: ScrollViewProps;
|
|
68
|
+
}
|
|
69
|
+
export interface MenuListType {
|
|
70
|
+
props: MenuListProps;
|
|
71
|
+
tokens: MenuListTokens;
|
|
72
|
+
slotProps: MenuListSlotProps;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=MenuList.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE1F,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,sBAAsB;IAC1E;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;IAChE;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,iBAAiB,CAAC;IACvF,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAClF,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuList.types.js","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,IAAM,YAAY,GAAG,UAAU,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 { MenuListTokens } from './MenuList.types';
|
|
4
|
+
export declare const defaultMenuListTokens: TokenSettings<MenuListTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuListTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuListTokens.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuListTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CAMrE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
2
|
+
export var defaultMenuListTokens = function (t) { return ({
|
|
3
|
+
padding: globalTokens.size40,
|
|
4
|
+
minWidth: 128,
|
|
5
|
+
maxWidth: 300,
|
|
6
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
7
|
+
gap: globalTokens.size20,
|
|
8
|
+
}); };
|
|
9
|
+
//# sourceMappingURL=MenuListTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuListTokens.js","sourceRoot":"","sources":["../../src/MenuList/MenuListTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,MAAM,CAAC,IAAM,qBAAqB,GAAyC,UAAC,CAAQ,IAAqB,OAAA,CAAC;IACxG,OAAO,EAAE,YAAY,CAAC,MAAM;IAC5B,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,GAAG,EAAE,YAAY,CAAC,MAAM;CACzB,CAAC,EANuG,CAMvG,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 { MenuListTokens } from './MenuList.types';
|
|
4
|
+
export declare const defaultMenuListTokens: TokenSettings<MenuListTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuListTokens.macos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuListTokens.macos.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuListTokens.macos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CAIrE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
2
|
+
export var defaultMenuListTokens = function (t) { return ({
|
|
3
|
+
padding: 5,
|
|
4
|
+
backgroundColor: t.colors.transparentBackground,
|
|
5
|
+
gap: globalTokens.size20,
|
|
6
|
+
}); };
|
|
7
|
+
//# sourceMappingURL=MenuListTokens.macos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuListTokens.macos.js","sourceRoot":"","sources":["../../src/MenuList/MenuListTokens.macos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,MAAM,CAAC,IAAM,qBAAqB,GAAyC,UAAC,CAAQ,IAAqB,OAAA,CAAC;IACxG,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB;IAC/C,GAAG,EAAE,YAAY,CAAC,MAAM;CACzB,CAAC,EAJuG,CAIvG,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 { MenuListTokens } from './MenuList.types';
|
|
4
|
+
export declare const defaultMenuListTokens: TokenSettings<MenuListTokens, Theme>;
|
|
5
|
+
//# sourceMappingURL=MenuListTokens.win32.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuListTokens.win32.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuListTokens.win32.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CASrE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
2
|
+
export var defaultMenuListTokens = function (t) { return ({
|
|
3
|
+
paddingVertical: globalTokens.size40,
|
|
4
|
+
minWidth: 128,
|
|
5
|
+
maxWidth: 300,
|
|
6
|
+
backgroundColor: t.colors.neutralBackground1,
|
|
7
|
+
/* To account for the width of the vertical scrollView. With the default minWidth, some content may be cut off */
|
|
8
|
+
hasMaxHeight: {
|
|
9
|
+
minWidth: 140,
|
|
10
|
+
},
|
|
11
|
+
}); };
|
|
12
|
+
//# sourceMappingURL=MenuListTokens.win32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuListTokens.win32.js","sourceRoot":"","sources":["../../src/MenuList/MenuListTokens.win32.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,MAAM,CAAC,IAAM,qBAAqB,GAAyC,UAAC,CAAQ,IAAqB,OAAA,CAAC;IACxG,eAAe,EAAE,YAAY,CAAC,MAAM;IACpC,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,iHAAiH;IACjH,YAAY,EAAE;QACZ,QAAQ,EAAE,GAAG;KACd;CACF,CAAC,EATuG,CASvG,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { MenuList } from './MenuList';
|
|
2
|
+
export { menuListName } from './MenuList.types';
|
|
3
|
+
export type { MenuListProps, MenuListState, MenuListTokens, MenuListSlotProps, MenuListType } from './MenuList.types';
|
|
4
|
+
export { useMenuList } from './useMenuList';
|
|
5
|
+
export { useMenuListContextValue } from './useMenuListContextValue';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/MenuList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MenuList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAerE,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aAmHnD,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useMenuContext } from '../context/menuContext';
|
|
4
|
+
// Track the radio items so we know what to clear selection from when selectRadio is called
|
|
5
|
+
// Purposefully left out of the hook because
|
|
6
|
+
// 1. RadioItems just keeps track of information - changing this array doesn't need to force rerender
|
|
7
|
+
// 2. Keeping them here means these consts are not recreated on every render, which would force rerendering of all children
|
|
8
|
+
var radioItems = [];
|
|
9
|
+
var addRadioItem = function (name) {
|
|
10
|
+
radioItems.push(name);
|
|
11
|
+
};
|
|
12
|
+
var removeRadioItem = function (name) {
|
|
13
|
+
radioItems.filter(function (item) { return item !== name; });
|
|
14
|
+
};
|
|
15
|
+
export var useMenuList = function (_props) {
|
|
16
|
+
var context = useMenuContext();
|
|
17
|
+
// MenuList v2 needs to be able to be standalone, but this is not in scope for v1
|
|
18
|
+
// Assuming that checked information will come from parent Menu
|
|
19
|
+
var defaultChecked = context.defaultChecked, onCheckedChangeOriginal = context.onCheckedChange, checkedOriginal = context.checked, isSubmenu = context.isSubmenu, setOpen = context.setOpen, triggerRef = context.triggerRef;
|
|
20
|
+
// Convert passed in array to map so that i's easier to look up checked state
|
|
21
|
+
var checkedMap = React.useMemo(function () {
|
|
22
|
+
var state = {};
|
|
23
|
+
if (!checkedOriginal) {
|
|
24
|
+
return state;
|
|
25
|
+
}
|
|
26
|
+
for (var _i = 0, checkedOriginal_1 = checkedOriginal; _i < checkedOriginal_1.length; _i++) {
|
|
27
|
+
var key = checkedOriginal_1[_i];
|
|
28
|
+
state[key] = true;
|
|
29
|
+
}
|
|
30
|
+
return state;
|
|
31
|
+
}, [checkedOriginal]);
|
|
32
|
+
var _a = React.useState(function () {
|
|
33
|
+
if (checkedMap) {
|
|
34
|
+
return checkedMap;
|
|
35
|
+
}
|
|
36
|
+
var initialChecked = defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : [];
|
|
37
|
+
var state = {};
|
|
38
|
+
for (var _i = 0, initialChecked_1 = initialChecked; _i < initialChecked_1.length; _i++) {
|
|
39
|
+
var key = initialChecked_1[_i];
|
|
40
|
+
state[key] = true;
|
|
41
|
+
}
|
|
42
|
+
return state;
|
|
43
|
+
}), checkedInternal = _a[0], setCheckedInternal = _a[1];
|
|
44
|
+
var isCheckedControlled = typeof checkedOriginal !== 'undefined';
|
|
45
|
+
var checked = isCheckedControlled ? checkedMap : checkedInternal;
|
|
46
|
+
var onCheckedChange = React.useCallback(function (e, name, isChecked) {
|
|
47
|
+
var updatedChecked = __assign({}, checked);
|
|
48
|
+
if (isChecked) {
|
|
49
|
+
updatedChecked[name] = true;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
delete updatedChecked[name];
|
|
53
|
+
}
|
|
54
|
+
if (!isCheckedControlled) {
|
|
55
|
+
setCheckedInternal(updatedChecked);
|
|
56
|
+
}
|
|
57
|
+
if (onCheckedChangeOriginal) {
|
|
58
|
+
onCheckedChangeOriginal(e, Object.keys(updatedChecked));
|
|
59
|
+
}
|
|
60
|
+
}, [isCheckedControlled, checked, onCheckedChangeOriginal, setCheckedInternal]);
|
|
61
|
+
var selectRadio = React.useCallback(function (e, name) {
|
|
62
|
+
var updatedChecked = {};
|
|
63
|
+
for (var _i = 0, _a = Object.keys(checked); _i < _a.length; _i++) {
|
|
64
|
+
var checkedName = _a[_i];
|
|
65
|
+
if (!radioItems.includes(checkedName)) {
|
|
66
|
+
// Preserve checked state if non-radio items
|
|
67
|
+
updatedChecked[checkedName] = checked[checkedName];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
updatedChecked[name] = true;
|
|
71
|
+
if (!isCheckedControlled) {
|
|
72
|
+
setCheckedInternal(updatedChecked);
|
|
73
|
+
}
|
|
74
|
+
if (onCheckedChangeOriginal) {
|
|
75
|
+
onCheckedChangeOriginal(e, Object.keys(updatedChecked));
|
|
76
|
+
}
|
|
77
|
+
}, [isCheckedControlled, onCheckedChangeOriginal, setCheckedInternal, checked]);
|
|
78
|
+
// The close arrow key must be handled at this level so that close arrow is responsive when arrowing
|
|
79
|
+
// on a submenu trigger inside a submenu. Otherwise the arrowing event gets "swallowed up" by the trigger,
|
|
80
|
+
// because it is considered to be inside the submenu due to the Menu component wrapping both the
|
|
81
|
+
// trigger and popover. Listening to key events directly here to handle this case doesn't work
|
|
82
|
+
// since left and right arrow key events are already handled and swallowed by native behavior
|
|
83
|
+
var onArrowClose = React.useCallback(function (e) {
|
|
84
|
+
var _a;
|
|
85
|
+
if (!isSubmenu) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
setOpen(e, false /* isOpen */, false /* bubble */);
|
|
89
|
+
(_a = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
90
|
+
}, [isSubmenu, setOpen, triggerRef]);
|
|
91
|
+
React.useEffect(function () {
|
|
92
|
+
return function cleanup() {
|
|
93
|
+
clearTimeout(context.triggerHoverOutTimer);
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
return {
|
|
97
|
+
props: __assign({}, context),
|
|
98
|
+
isCheckedControlled: isCheckedControlled,
|
|
99
|
+
checked: checked,
|
|
100
|
+
onArrowClose: onArrowClose,
|
|
101
|
+
onCheckedChange: onCheckedChange,
|
|
102
|
+
selectRadio: selectRadio,
|
|
103
|
+
addRadioItem: addRadioItem,
|
|
104
|
+
removeRadioItem: removeRadioItem,
|
|
105
|
+
hasMaxHeight: context.hasMaxHeight,
|
|
106
|
+
hasMaxWidth: context.hasMaxWidth,
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=useMenuList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MenuListState } from './MenuList.types';
|
|
2
|
+
import type { MenuListContextValue } from '../context/menuListContext';
|
|
3
|
+
export declare const useMenuListContextValue: (state: MenuListState) => MenuListContextValue;
|
|
4
|
+
//# sourceMappingURL=useMenuListContextValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuListContextValue.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuListContextValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,eAAO,MAAM,uBAAuB,UAAW,aAAa,KAAG,oBAE9D,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
export var useMenuListContextValue = function (state) {
|
|
3
|
+
return __assign({ hasCheckmarks: state.props.hasCheckmarks, hasIcons: state.props.hasIcons, hasTooltips: state.props.hasTooltips }, state);
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=useMenuListContextValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuListContextValue.js","sourceRoot":"","sources":["../../src/MenuList/useMenuListContextValue.ts"],"names":[],"mappings":";AAGA,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,KAAoB;IAC1D,kBAAS,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,IAAK,KAAK,EAAG;AACtI,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MenuPopoverTokens } from './MenuPopover.types';
|
|
2
|
+
export declare const MenuPopover: import("@fluentui-react-native/use-tokens").CustomizableComponent<import("@fluentui-react-native/callout").ICalloutProps, MenuPopoverTokens, import("@fluentui-react-native/framework").Theme>;
|
|
3
|
+
export default MenuPopover;
|
|
4
|
+
//# sourceMappingURL=MenuPopover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAM/E,eAAO,MAAM,WAAW,gMAwCvB,CAAC;AAGF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Platform, View } from 'react-native';
|
|
4
|
+
import { Callout } from '@fluentui-react-native/callout';
|
|
5
|
+
import { compressible, mergeProps, patchTokens, useFluentTheme } from '@fluentui-react-native/framework';
|
|
6
|
+
import { menuPopoverName } from './MenuPopover.types';
|
|
7
|
+
import { useMenuPopoverTokens } from './MenuPopoverTokens';
|
|
8
|
+
import { useMenuPopover } from './useMenuPopover';
|
|
9
|
+
import { useMenuContext } from '../context';
|
|
10
|
+
export var MenuPopover = compressible(function (props, useTokens) {
|
|
11
|
+
var _a;
|
|
12
|
+
var directionalHint = props.directionalHint, gapSpace = props.gapSpace, maxHeight = props.maxHeight, maxWidth = props.maxWidth, minWidth = props.minWidth, minPadding = props.minPadding, borderWidth = props.borderWidth, borderColor = props.borderColor, backgroundColor = props.backgroundColor;
|
|
13
|
+
var state = useMenuPopover(props);
|
|
14
|
+
var theme = useFluentTheme();
|
|
15
|
+
var context = useMenuContext();
|
|
16
|
+
var _b = useTokens(theme), tokens = _b[0], cache = _b[1];
|
|
17
|
+
context.hasMaxHeight = maxHeight != undefined;
|
|
18
|
+
context.minWidth = minWidth !== null && minWidth !== void 0 ? minWidth : context.minWidth;
|
|
19
|
+
_a = patchTokens(tokens, cache, {
|
|
20
|
+
directionalHint: directionalHint,
|
|
21
|
+
gapSpace: gapSpace,
|
|
22
|
+
maxHeight: maxHeight,
|
|
23
|
+
maxWidth: maxWidth,
|
|
24
|
+
minWidth: minWidth,
|
|
25
|
+
minPadding: minPadding,
|
|
26
|
+
borderWidth: borderWidth,
|
|
27
|
+
borderColor: borderColor,
|
|
28
|
+
backgroundColor: backgroundColor,
|
|
29
|
+
}), tokens = _a[0], cache = _a[1];
|
|
30
|
+
return function (final, children) {
|
|
31
|
+
var mergedProps = mergeProps(tokens, state.props, final);
|
|
32
|
+
var innerViewProps =
|
|
33
|
+
//For windows platforms, styling needs to be set on container view instead of the callout itself for the scrollview to reflect correct width and height
|
|
34
|
+
Platform.OS === 'windows' || Platform.OS === 'win32'
|
|
35
|
+
? __assign(__assign({}, state.innerView), { style: {
|
|
36
|
+
maxHeight: mergedProps.maxHeight,
|
|
37
|
+
} }) : state.innerView;
|
|
38
|
+
var content = React.createElement(View, innerViewProps, children);
|
|
39
|
+
return React.createElement(Callout, __assign({}, mergedProps), content);
|
|
40
|
+
};
|
|
41
|
+
}, useMenuPopoverTokens);
|
|
42
|
+
MenuPopover.displayName = menuPopoverName;
|
|
43
|
+
export default MenuPopover;
|
|
44
|
+
//# sourceMappingURL=MenuPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGzG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,IAAM,WAAW,GAAG,YAAY,CACrC,UAAC,KAAuB,EAAE,SAAuC;;IACvD,IAAA,eAAe,GAAqG,KAAK,gBAA1G,EAAE,QAAQ,GAA2F,KAAK,SAAhG,EAAE,SAAS,GAAgF,KAAK,UAArF,EAAE,QAAQ,GAAsE,KAAK,SAA3E,EAAE,QAAQ,GAA4D,KAAK,SAAjE,EAAE,UAAU,GAAgD,KAAK,WAArD,EAAE,WAAW,GAAmC,KAAK,YAAxC,EAAE,WAAW,GAAsB,KAAK,YAA3B,EAAE,eAAe,GAAK,KAAK,gBAAV,CAAW;IAClI,IAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,IAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAA,KAAkB,SAAS,CAAC,KAAK,CAAC,EAAjC,MAAM,QAAA,EAAE,KAAK,QAAoB,CAAC;IAEvC,OAAO,CAAC,YAAY,GAAG,SAAS,IAAI,SAAS,CAAC;IAC9C,OAAO,CAAC,QAAQ,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,OAAO,CAAC,QAAQ,CAAC;IAEhD,KAAkB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE;QAC3C,eAAe,iBAAA;QACf,QAAQ,UAAA;QACR,SAAS,WAAA;QACT,QAAQ,UAAA;QACR,QAAQ,UAAA;QACR,UAAU,YAAA;QACV,WAAW,aAAA;QACX,WAAW,aAAA;QACX,eAAe,iBAAA;KAChB,CAAC,EAVD,MAAM,QAAA,EAAE,KAAK,QAAA,CAUX;IAEH,OAAO,UAAC,KAAuB,EAAE,QAAyB;QACxD,IAAM,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAM,cAAc;QAClB,uJAAuJ;QACvJ,QAAQ,CAAC,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,EAAE,KAAM,OAAe;YAC3D,CAAC,uBACM,KAAK,CAAC,SAAS,KAClB,KAAK,EAAE;oBACL,SAAS,EAAE,WAAW,CAAC,SAAS;iBACjC,IAEL,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QACtB,IAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QACpE,OAAO,oBAAC,OAAO,eAAK,WAAW,GAAG,OAAO,CAAW,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC,EACD,oBAAoB,CACrB,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
2
|
+
import type { ICalloutProps, ICalloutTokens } from '@fluentui-react-native/callout';
|
|
3
|
+
export declare const menuPopoverName = "MenuPopover";
|
|
4
|
+
export type MenuPopoverTokens = Omit<ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'>;
|
|
5
|
+
export type MenuPopoverProps = ICalloutProps;
|
|
6
|
+
export interface MenuPopoverState {
|
|
7
|
+
props: ICalloutProps;
|
|
8
|
+
innerView: IViewProps;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=MenuPopover.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEpF,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAI7C,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,CAAC,CAAC;AAEtG,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPopover.types.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,IAAM,eAAe,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPopoverTokens.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,eAAO,MAAM,oBAAoB,yEAGhC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { buildUseTokens } from '@fluentui-react-native/framework';
|
|
2
|
+
import { menuPopoverName } from './MenuPopover.types';
|
|
3
|
+
export var useMenuPopoverTokens = buildUseTokens(function (t) { return ({ borderWidth: 1, borderColor: t.colors.neutralStrokeAccessible }); }, menuPopoverName);
|
|
4
|
+
//# sourceMappingURL=MenuPopoverTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuPopoverTokens.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,CAAC,IAAM,oBAAoB,GAAG,cAAc,CAChD,UAAC,CAAQ,IAAK,OAAA,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC,EAAnE,CAAmE,EACjF,eAAe,CAChB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MenuPopover } from './MenuPopover';
|
|
2
|
+
export { menuPopoverName } from './MenuPopover.types';
|
|
3
|
+
export type { MenuPopoverProps, MenuPopoverState, MenuPopoverTokens } from './MenuPopover.types';
|
|
4
|
+
export { useMenuPopover } from './useMenuPopover';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MenuPopover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAM9E,eAAO,MAAM,cAAc,UAAW,gBAAgB,KAAG,gBAyGxD,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { I18nManager, Platform } from 'react-native';
|
|
3
|
+
import { useMenuContext } from '../context/menuContext';
|
|
4
|
+
var controlledDismissBehaviors = ['preventDismissOnKeyDown', 'preventDismissOnClickOutside'];
|
|
5
|
+
var stopPropagationKeys = ['ArrowUp', 'ArrowDown', 'Tab', 'Home', 'End', 'Escape'];
|
|
6
|
+
export var useMenuPopover = function (props) {
|
|
7
|
+
var context = useMenuContext();
|
|
8
|
+
var setOpen = context.setOpen, triggerRef = context.triggerRef, isControlled = context.isControlled, isSubmenu = context.isSubmenu, openOnHover = context.openOnHover, parentPopoverHoverOutTimer = context.parentPopoverHoverOutTimer, popoverHoverOutTimer = context.popoverHoverOutTimer, setPopoverHoverOutTimer = context.setPopoverHoverOutTimer, shouldFocusOnContainer = context.shouldFocusOnContainer, triggerHoverOutTimer = context.triggerHoverOutTimer;
|
|
9
|
+
var onKeyDownProp = props.onKeyDown, onKeyUpProp = props.onKeyUp;
|
|
10
|
+
var onDismiss = React.useCallback(function () {
|
|
11
|
+
var _a;
|
|
12
|
+
(_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
13
|
+
setOpen(undefined, false /* isOpen */), [setOpen];
|
|
14
|
+
}, [props.onDismiss, setOpen]);
|
|
15
|
+
var dismissBehaviors = isControlled ? controlledDismissBehaviors : undefined;
|
|
16
|
+
var directionalHint = getDirectionalHint(isSubmenu, I18nManager.isRTL);
|
|
17
|
+
// Initial focus behavior differs per platform, Windows platforms move focus
|
|
18
|
+
// automatically onto first element of Callout
|
|
19
|
+
var setInitialFocus = Platform.OS === 'win32' || Platform.OS === 'windows';
|
|
20
|
+
var doNotTakePointerCapture = openOnHover;
|
|
21
|
+
var accessibilityRole = 'menu';
|
|
22
|
+
var onMouseEnter = React.useCallback(function () {
|
|
23
|
+
clearTimeout(triggerHoverOutTimer);
|
|
24
|
+
clearTimeout(popoverHoverOutTimer);
|
|
25
|
+
clearTimeout(parentPopoverHoverOutTimer);
|
|
26
|
+
}, [parentPopoverHoverOutTimer, popoverHoverOutTimer, triggerHoverOutTimer]);
|
|
27
|
+
var onMouseLeave = React.useCallback(function () {
|
|
28
|
+
if (!openOnHover) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
var timer = setTimeout(function () {
|
|
32
|
+
setOpen(undefined, false /* isOpen */);
|
|
33
|
+
}, 500);
|
|
34
|
+
setPopoverHoverOutTimer(timer);
|
|
35
|
+
}, [openOnHover, setOpen, setPopoverHoverOutTimer]);
|
|
36
|
+
var onKeyDown = React.useCallback(function (e) {
|
|
37
|
+
onKeyDownProp && onKeyDownProp(e);
|
|
38
|
+
// Mark key events that move selection as handled.
|
|
39
|
+
// These key events are handled on the native side.
|
|
40
|
+
if (stopPropagationKeys.includes(e.nativeEvent.key)) {
|
|
41
|
+
e.stopPropagation();
|
|
42
|
+
}
|
|
43
|
+
}, [onKeyDownProp]);
|
|
44
|
+
var onKeyUp = React.useCallback(function (e) {
|
|
45
|
+
onKeyUpProp && onKeyUpProp(e);
|
|
46
|
+
// Mark key events that move selection as handled.
|
|
47
|
+
// These key events are handled on the native side.
|
|
48
|
+
if (stopPropagationKeys.includes(e.nativeEvent.key)) {
|
|
49
|
+
e.stopPropagation();
|
|
50
|
+
}
|
|
51
|
+
}, [onKeyUpProp]);
|
|
52
|
+
var _a = React.useState(shouldFocusOnContainer), canFocusOnPopover = _a[0], setCanFocusOnPopover = _a[1];
|
|
53
|
+
var onBlur = React.useCallback(function () {
|
|
54
|
+
setCanFocusOnPopover(false);
|
|
55
|
+
}, [setCanFocusOnPopover]);
|
|
56
|
+
React.useEffect(function () {
|
|
57
|
+
return function cleanup() {
|
|
58
|
+
clearTimeout(popoverHoverOutTimer);
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
props: {
|
|
63
|
+
accessibilityRole: accessibilityRole,
|
|
64
|
+
target: triggerRef,
|
|
65
|
+
onDismiss: onDismiss,
|
|
66
|
+
onShow: props.onShow,
|
|
67
|
+
directionalHint: directionalHint,
|
|
68
|
+
dismissBehaviors: dismissBehaviors,
|
|
69
|
+
doNotTakePointerCapture: doNotTakePointerCapture,
|
|
70
|
+
setInitialFocus: setInitialFocus,
|
|
71
|
+
},
|
|
72
|
+
innerView: {
|
|
73
|
+
onMouseEnter: onMouseEnter,
|
|
74
|
+
onMouseLeave: onMouseLeave,
|
|
75
|
+
onKeyDown: onKeyDown,
|
|
76
|
+
onKeyUp: onKeyUp,
|
|
77
|
+
accessible: shouldFocusOnContainer,
|
|
78
|
+
focusable: canFocusOnPopover,
|
|
79
|
+
onBlur: onBlur,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
var getDirectionalHint = function (isSubmenu, isRtl) {
|
|
84
|
+
if (!isSubmenu) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
if (isRtl) {
|
|
88
|
+
return 'leftTopEdge';
|
|
89
|
+
}
|
|
90
|
+
return 'rightTopEdge';
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=useMenuPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAejE,CAAC;AAGF,eAAe,WAAW,CAAC"}
|