@fluentui-react-native/menu 1.4.9 → 1.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +91 -1
- package/CHANGELOG.md +28 -2
- package/lib/Menu/Menu.d.ts.map +1 -1
- package/lib/Menu/Menu.js +1 -1
- package/lib/Menu/Menu.js.map +1 -1
- package/lib/Menu/Menu.types.d.ts +1 -1
- package/lib/Menu/Menu.types.d.ts.map +1 -1
- package/lib/Menu/Menu.types.js.map +1 -1
- package/lib/Menu/useMenu.d.ts.map +1 -1
- package/lib/Menu/useMenu.js +1 -1
- package/lib/Menu/useMenu.js.map +1 -1
- package/lib/Menu/useMenuContextValue.d.ts +1 -1
- package/lib/Menu/useMenuContextValue.d.ts.map +1 -1
- package/lib/Menu/useMenuContextValue.js.map +1 -1
- package/lib/MenuDivider/MenuDivider.d.ts.map +1 -1
- package/lib/MenuDivider/MenuDivider.js +1 -1
- package/lib/MenuDivider/MenuDivider.js.map +1 -1
- package/lib/MenuDivider/MenuDivider.styling.d.ts.map +1 -1
- package/lib/MenuDivider/MenuDivider.styling.js +1 -1
- package/lib/MenuDivider/MenuDivider.styling.js.map +1 -1
- package/lib/MenuDivider/MenuDivider.types.d.ts.map +1 -1
- package/lib/MenuDivider/MenuDivider.types.js.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.d.ts.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.js.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.macos.d.ts.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.macos.js.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.win32.d.ts.map +1 -1
- package/lib/MenuDivider/MenuDividerTokens.win32.js.map +1 -1
- package/lib/MenuItem/MenuItem.d.ts +2 -1
- package/lib/MenuItem/MenuItem.d.ts.map +1 -1
- package/lib/MenuItem/MenuItem.js +2 -3
- package/lib/MenuItem/MenuItem.js.map +1 -1
- package/lib/MenuItem/MenuItem.styling.d.ts.map +1 -1
- package/lib/MenuItem/MenuItem.styling.js +1 -1
- package/lib/MenuItem/MenuItem.styling.js.map +1 -1
- package/lib/MenuItem/MenuItem.types.d.ts +2 -2
- package/lib/MenuItem/MenuItem.types.d.ts.map +1 -1
- package/lib/MenuItem/MenuItem.types.js.map +1 -1
- package/lib/MenuItem/MenuItemTokens.d.ts.map +1 -1
- package/lib/MenuItem/MenuItemTokens.js.map +1 -1
- package/lib/MenuItem/MenuItemTokens.macos.d.ts.map +1 -1
- package/lib/MenuItem/MenuItemTokens.macos.js.map +1 -1
- package/lib/MenuItem/MenuItemTokens.win32.d.ts.map +1 -1
- package/lib/MenuItem/MenuItemTokens.win32.js.map +1 -1
- package/lib/MenuItem/useMenuItem.d.ts.map +1 -1
- package/lib/MenuItem/useMenuItem.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +2 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js +2 -3
- package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +2 -2
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -1
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +1 -1
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +1 -1
- package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.d.ts.map +1 -1
- package/lib/MenuItemRadio/MenuItemRadio.js.map +1 -1
- package/lib/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -1
- package/lib/MenuItemRadio/useMenuItemRadio.js +1 -1
- package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib/MenuList/MenuList.d.ts.map +1 -1
- package/lib/MenuList/MenuList.js +3 -3
- package/lib/MenuList/MenuList.js.map +1 -1
- package/lib/MenuList/MenuList.styling.d.ts.map +1 -1
- package/lib/MenuList/MenuList.styling.js +1 -1
- package/lib/MenuList/MenuList.styling.js.map +1 -1
- package/lib/MenuList/MenuList.types.d.ts +2 -2
- package/lib/MenuList/MenuList.types.d.ts.map +1 -1
- package/lib/MenuList/MenuList.types.js.map +1 -1
- package/lib/MenuList/MenuListTokens.d.ts.map +1 -1
- package/lib/MenuList/MenuListTokens.js.map +1 -1
- package/lib/MenuList/MenuListTokens.macos.d.ts.map +1 -1
- package/lib/MenuList/MenuListTokens.macos.js.map +1 -1
- package/lib/MenuList/MenuListTokens.win32.d.ts.map +1 -1
- package/lib/MenuList/MenuListTokens.win32.js.map +1 -1
- package/lib/MenuList/useMenuList.d.ts.map +1 -1
- package/lib/MenuList/useMenuList.js.map +1 -1
- package/lib/MenuList/useMenuListContextValue.d.ts +1 -1
- package/lib/MenuList/useMenuListContextValue.d.ts.map +1 -1
- package/lib/MenuPopover/MenuPopover.d.ts.map +1 -1
- package/lib/MenuPopover/MenuPopover.js +3 -3
- package/lib/MenuPopover/MenuPopover.js.map +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.d.ts.map +1 -1
- package/lib/MenuPopover/MenuPopoverTokens.js.map +1 -1
- package/lib/MenuPopover/useMenuPopover.d.ts.map +1 -1
- package/lib/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
- package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
- package/lib/MenuTrigger/useMenuTrigger.js +3 -3
- package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib/__tests__/Menu.test.js +6 -6
- package/lib/__tests__/Menu.test.js.map +1 -1
- package/lib/context/menuContext.d.ts.map +1 -1
- package/lib/context/menuContext.js.map +1 -1
- package/lib/context/menuListContext.d.ts.map +1 -1
- package/lib/context/menuListContext.js.map +1 -1
- package/lib-commonjs/Menu/Menu.d.ts.map +1 -1
- package/lib-commonjs/Menu/Menu.js +1 -1
- package/lib-commonjs/Menu/Menu.js.map +1 -1
- package/lib-commonjs/Menu/Menu.types.d.ts +1 -1
- package/lib-commonjs/Menu/Menu.types.d.ts.map +1 -1
- package/lib-commonjs/Menu/Menu.types.js.map +1 -1
- package/lib-commonjs/Menu/useMenu.d.ts.map +1 -1
- package/lib-commonjs/Menu/useMenu.js +1 -1
- package/lib-commonjs/Menu/useMenu.js.map +1 -1
- package/lib-commonjs/Menu/useMenuContextValue.d.ts +1 -1
- package/lib-commonjs/Menu/useMenuContextValue.d.ts.map +1 -1
- package/lib-commonjs/Menu/useMenuContextValue.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.d.ts.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.js +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.styling.d.ts.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.styling.js +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.styling.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.types.d.ts.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDivider.types.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.d.ts.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.d.ts.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.d.ts.map +1 -1
- package/lib-commonjs/MenuDivider/MenuDividerTokens.win32.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItem.d.ts +2 -1
- package/lib-commonjs/MenuItem/MenuItem.d.ts.map +1 -1
- package/lib-commonjs/MenuItem/MenuItem.js +2 -3
- package/lib-commonjs/MenuItem/MenuItem.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItem.styling.d.ts.map +1 -1
- package/lib-commonjs/MenuItem/MenuItem.styling.js +1 -1
- package/lib-commonjs/MenuItem/MenuItem.styling.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItem.types.d.ts +2 -2
- package/lib-commonjs/MenuItem/MenuItem.types.d.ts.map +1 -1
- package/lib-commonjs/MenuItem/MenuItem.types.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.d.ts.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.macos.d.ts.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.win32.d.ts.map +1 -1
- package/lib-commonjs/MenuItem/MenuItemTokens.win32.js.map +1 -1
- package/lib-commonjs/MenuItem/useMenuItem.d.ts.map +1 -1
- package/lib-commonjs/MenuItem/useMenuItem.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.d.ts +2 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js +2 -3
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.js +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.styling.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +2 -2
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/MenuItemCheckboxTokens.win32.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts +1 -1
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +1 -1
- package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.d.ts.map +1 -1
- package/lib-commonjs/MenuItemRadio/MenuItemRadio.js.map +1 -1
- package/lib-commonjs/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -1
- package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js +1 -1
- package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuList.js +3 -3
- package/lib-commonjs/MenuList/MenuList.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.styling.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuList.styling.js +1 -1
- package/lib-commonjs/MenuList/MenuList.styling.js.map +1 -1
- package/lib-commonjs/MenuList/MenuList.types.d.ts +2 -2
- package/lib-commonjs/MenuList/MenuList.types.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuList.types.js.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.js.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.macos.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.macos.js.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.win32.d.ts.map +1 -1
- package/lib-commonjs/MenuList/MenuListTokens.win32.js.map +1 -1
- package/lib-commonjs/MenuList/useMenuList.d.ts.map +1 -1
- package/lib-commonjs/MenuList/useMenuList.js.map +1 -1
- package/lib-commonjs/MenuList/useMenuListContextValue.d.ts +1 -1
- package/lib-commonjs/MenuList/useMenuListContextValue.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopover.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopover.js +3 -3
- package/lib-commonjs/MenuPopover/MenuPopover.js.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/MenuPopoverTokens.js.map +1 -1
- package/lib-commonjs/MenuPopover/useMenuPopover.d.ts.map +1 -1
- package/lib-commonjs/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js +3 -3
- package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib-commonjs/__tests__/Menu.test.js +6 -6
- package/lib-commonjs/__tests__/Menu.test.js.map +1 -1
- package/lib-commonjs/context/menuContext.d.ts.map +1 -1
- package/lib-commonjs/context/menuContext.js.map +1 -1
- package/lib-commonjs/context/menuListContext.d.ts.map +1 -1
- package/lib-commonjs/context/menuListContext.js.map +1 -1
- package/package.json +11 -11
- package/src/Menu/Menu.tsx +3 -1
- package/src/Menu/Menu.types.ts +3 -1
- package/src/Menu/useMenu.ts +5 -3
- package/src/Menu/useMenuContextValue.ts +2 -1
- package/src/MenuDivider/MenuDivider.styling.ts +2 -1
- package/src/MenuDivider/MenuDivider.tsx +3 -1
- package/src/MenuDivider/MenuDivider.types.ts +1 -0
- package/src/MenuDivider/MenuDividerTokens.macos.ts +1 -0
- package/src/MenuDivider/MenuDividerTokens.ts +1 -0
- package/src/MenuDivider/MenuDividerTokens.win32.ts +1 -0
- package/src/MenuItem/MenuItem.styling.ts +2 -1
- package/src/MenuItem/MenuItem.tsx +5 -3
- package/src/MenuItem/MenuItem.types.ts +3 -2
- package/src/MenuItem/MenuItemTokens.macos.ts +1 -0
- package/src/MenuItem/MenuItemTokens.ts +1 -0
- package/src/MenuItem/MenuItemTokens.win32.ts +1 -0
- package/src/MenuItem/useMenuItem.ts +3 -1
- package/src/MenuItemCheckbox/MenuItemCheckbox.styling.ts +2 -1
- package/src/MenuItemCheckbox/MenuItemCheckbox.tsx +5 -3
- package/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +4 -2
- package/src/MenuItemCheckbox/MenuItemCheckboxTokens.macos.ts +1 -0
- package/src/MenuItemCheckbox/MenuItemCheckboxTokens.ts +1 -0
- package/src/MenuItemCheckbox/MenuItemCheckboxTokens.win32.ts +1 -0
- package/src/MenuItemCheckbox/useMenuItemCheckbox.ts +4 -2
- package/src/MenuItemRadio/MenuItemRadio.tsx +1 -0
- package/src/MenuItemRadio/useMenuItemRadio.ts +3 -1
- package/src/MenuList/MenuList.styling.ts +2 -1
- package/src/MenuList/MenuList.tsx +6 -4
- package/src/MenuList/MenuList.types.ts +3 -2
- package/src/MenuList/MenuListTokens.macos.ts +1 -0
- package/src/MenuList/MenuListTokens.ts +1 -0
- package/src/MenuList/MenuListTokens.win32.ts +1 -0
- package/src/MenuList/useMenuList.ts +4 -2
- package/src/MenuList/useMenuListContextValue.ts +1 -1
- package/src/MenuPopover/MenuPopover.tsx +5 -3
- package/src/MenuPopover/MenuPopoverTokens.ts +1 -0
- package/src/MenuPopover/useMenuPopover.ts +3 -1
- package/src/MenuTrigger/MenuTrigger.tsx +1 -0
- package/src/MenuTrigger/MenuTrigger.types.ts +1 -0
- package/src/MenuTrigger/useMenuTrigger.ts +7 -5
- package/src/__tests__/Menu.test.tsx +8 -6
- package/src/context/menuContext.ts +1 -0
- package/src/context/menuListContext.ts +1 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Theme, UseStylingOptions } from '@fluentui-react-native/framework';
|
|
2
2
|
import { buildProps } from '@fluentui-react-native/framework';
|
|
3
3
|
import { borderStyles, fontStyles, layoutStyles } from '@fluentui-react-native/tokens';
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import type { MenuItemProps, MenuItemTokens, MenuItemSlotProps } from './MenuItem.types';
|
|
6
6
|
import { menuItemName } from './MenuItem.types';
|
|
7
|
+
import { defaultMenuItemTokens } from './MenuItemTokens';
|
|
7
8
|
|
|
8
9
|
export const menuItemStates: (keyof MenuItemTokens)[] = ['hovered', 'focused', 'pressed', 'disabled'];
|
|
9
10
|
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/** @jsx withSlots */
|
|
2
|
+
import React from 'react';
|
|
2
3
|
import { I18nManager, Pressable, View } from 'react-native';
|
|
3
|
-
|
|
4
|
+
|
|
4
5
|
import type { UseSlots } from '@fluentui-react-native/framework';
|
|
5
6
|
import { compose, memoize, mergeProps, withSlots } from '@fluentui-react-native/framework';
|
|
6
7
|
import { TextV1 as Text } from '@fluentui-react-native/text';
|
|
8
|
+
import { SvgXml } from 'react-native-svg';
|
|
9
|
+
|
|
10
|
+
import { stylingSettings } from './MenuItem.styling';
|
|
7
11
|
import type { MenuItemProps, MenuItemType } from './MenuItem.types';
|
|
8
12
|
import { menuItemName } from './MenuItem.types';
|
|
9
13
|
import { useMenuItem } from './useMenuItem';
|
|
10
|
-
import { stylingSettings } from './MenuItem.styling';
|
|
11
|
-
import React from 'react';
|
|
12
14
|
|
|
13
15
|
export const MenuItem = compose<MenuItemType>({
|
|
14
16
|
displayName: menuItemName,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type * as React from 'react';
|
|
2
2
|
import type { ColorValue } from 'react-native';
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
5
|
-
import type { TextProps } from '@fluentui-react-native/text';
|
|
6
5
|
import type { IFocusable, InteractionEvent, PressablePropsExtended, PressableState } from '@fluentui-react-native/interactive-hooks';
|
|
6
|
+
import type { TextProps } from '@fluentui-react-native/text';
|
|
7
7
|
import type { FontTokens, IBorderTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
|
|
8
|
+
import type { XmlProps } from 'react-native-svg';
|
|
8
9
|
|
|
9
10
|
export const menuItemName = 'MenuItem';
|
|
10
11
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuItemTokens } from './MenuItem.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme> = (t: Theme): MenuItemTokens => ({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuItemTokens } from './MenuItem.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme> = (t: Theme): MenuItemTokens => ({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuItemTokens } from './MenuItem.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme> = (t: Theme): MenuItemTokens => ({
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { AccessibilityState } from 'react-native';
|
|
3
3
|
import { I18nManager, Platform } from 'react-native';
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import { memoize } from '@fluentui-react-native/framework';
|
|
6
6
|
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
7
7
|
import { isKeyPressEvent, usePressableState, useKeyDownProps, useViewCommandFocus } from '@fluentui-react-native/interactive-hooks';
|
|
8
|
+
|
|
9
|
+
import type { MenuItemProps, MenuItemInfo } from './MenuItem.types';
|
|
8
10
|
import { useMenuContext } from '../context/menuContext';
|
|
9
11
|
import { useMenuListContext } from '../context/menuListContext';
|
|
10
12
|
import { useMenuTriggerContext } from '../context/menuTriggerContext';
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Theme, UseStylingOptions } from '@fluentui-react-native/framework';
|
|
2
2
|
import { buildProps } from '@fluentui-react-native/framework';
|
|
3
3
|
import { borderStyles, fontStyles, layoutStyles } from '@fluentui-react-native/tokens';
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import type { MenuItemCheckboxProps, MenuItemCheckboxTokens, MenuItemCheckboxSlotProps } from './MenuItemCheckbox.types';
|
|
6
6
|
import { menuItemCheckboxName } from './MenuItemCheckbox.types';
|
|
7
|
+
import { defaultMenuItemCheckboxTokens } from './MenuItemCheckboxTokens';
|
|
7
8
|
|
|
8
9
|
export const menuItemCheckboxStates: (keyof MenuItemCheckboxTokens)[] = ['hovered', 'focused', 'pressed', 'disabled', 'checked'];
|
|
9
10
|
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/** @jsx withSlots */
|
|
2
|
+
import React from 'react';
|
|
2
3
|
import { Pressable } from 'react-native';
|
|
3
|
-
|
|
4
|
+
|
|
4
5
|
import type { Slots, UseSlots } from '@fluentui-react-native/framework';
|
|
5
6
|
import { compose, mergeProps, withSlots } from '@fluentui-react-native/framework';
|
|
6
7
|
import { TextV1 as Text } from '@fluentui-react-native/text';
|
|
8
|
+
import { SvgXml } from 'react-native-svg';
|
|
9
|
+
|
|
10
|
+
import { stylingSettings } from './MenuItemCheckbox.styling';
|
|
7
11
|
import type {
|
|
8
12
|
MenuItemCheckboxProps,
|
|
9
13
|
MenuItemCheckboxSlotProps,
|
|
@@ -12,9 +16,7 @@ import type {
|
|
|
12
16
|
} from './MenuItemCheckbox.types';
|
|
13
17
|
import { menuItemCheckboxName } from './MenuItemCheckbox.types';
|
|
14
18
|
import { useMenuItemCheckbox } from './useMenuItemCheckbox';
|
|
15
|
-
import { stylingSettings } from './MenuItemCheckbox.styling';
|
|
16
19
|
import { getAccessibilityLabel, getTooltip } from '../MenuItem/MenuItem';
|
|
17
|
-
import React from 'react';
|
|
18
20
|
|
|
19
21
|
export const MenuItemCheckbox = compose<MenuItemCheckboxType>({
|
|
20
22
|
displayName: menuItemCheckboxName,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type * as React from 'react';
|
|
2
2
|
import type { ColorValue } from 'react-native';
|
|
3
|
-
|
|
4
|
-
import type { TextProps } from '@fluentui-react-native/text';
|
|
3
|
+
|
|
5
4
|
import type { PressablePropsExtended, PressableState } from '@fluentui-react-native/interactive-hooks';
|
|
5
|
+
import type { TextProps } from '@fluentui-react-native/text';
|
|
6
|
+
import type { XmlProps } from 'react-native-svg';
|
|
7
|
+
|
|
6
8
|
import type { MenuItemProps, MenuItemTokens } from '../MenuItem/MenuItem.types';
|
|
7
9
|
|
|
8
10
|
export const menuItemCheckboxName = 'MenuItemCheckbox';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme> = (t: Theme): MenuItemCheckboxTokens => ({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme> = (t: Theme): MenuItemCheckboxTokens => ({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FontWeightValue, Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuItemCheckboxTokens } from './MenuItemCheckbox.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuItemCheckboxTokens: TokenSettings<MenuItemCheckboxTokens, Theme> = (t: Theme): MenuItemCheckboxTokens => ({
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { AccessibilityActionEvent, AccessibilityState } from 'react-native';
|
|
3
3
|
import { I18nManager, Platform } from 'react-native';
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import { memoize } from '@fluentui-react-native/framework';
|
|
6
6
|
import type { InteractionEvent, KeyPressEvent } from '@fluentui-react-native/interactive-hooks';
|
|
7
7
|
import { usePressableState, useKeyDownProps, useOnPressWithFocus, useViewCommandFocus } from '@fluentui-react-native/interactive-hooks';
|
|
8
|
+
|
|
9
|
+
import type { MenuItemCheckboxProps, MenuItemCheckboxInfo } from './MenuItemCheckbox.types';
|
|
10
|
+
import { useMenuContext } from '../context/menuContext';
|
|
8
11
|
import { useMenuListContext } from '../context/menuListContext';
|
|
9
12
|
import { submenuTriggerKeys, triggerKeys, useHoverFocusEffect } from '../MenuItem/useMenuItem';
|
|
10
|
-
import { useMenuContext } from '../context/menuContext';
|
|
11
13
|
|
|
12
14
|
const defaultAccessibilityActions = [{ name: 'Toggle' }];
|
|
13
15
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { UseSlots } from '@fluentui-react-native/framework';
|
|
2
|
+
|
|
2
3
|
import { useMenuItemRadio } from './useMenuItemRadio';
|
|
3
4
|
import { MenuItemCheckbox, menuItemFinalRender } from '../MenuItemCheckbox/MenuItemCheckbox';
|
|
4
5
|
import type { MenuItemCheckboxProps, MenuItemCheckboxType } from '../MenuItemCheckbox/MenuItemCheckbox.types';
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
|
|
2
3
|
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
4
|
+
|
|
5
|
+
import { useMenuContext } from '../context/menuContext';
|
|
3
6
|
import { useMenuListContext } from '../context/menuListContext';
|
|
4
7
|
import type { MenuItemCheckboxProps, MenuItemCheckboxInfo } from '../MenuItemCheckbox/MenuItemCheckbox.types';
|
|
5
8
|
import { useMenuCheckboxInteraction } from '../MenuItemCheckbox/useMenuItemCheckbox';
|
|
6
|
-
import { useMenuContext } from '../context/menuContext';
|
|
7
9
|
|
|
8
10
|
export const useMenuItemRadio = (props: MenuItemCheckboxProps): MenuItemCheckboxInfo => {
|
|
9
11
|
const { disabled, name, persistOnClick } = props;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Theme, UseStylingOptions } from '@fluentui-react-native/framework';
|
|
2
2
|
import { buildProps } from '@fluentui-react-native/framework';
|
|
3
3
|
import { layoutStyles } from '@fluentui-react-native/tokens';
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import type { MenuListProps, MenuListTokens, MenuListSlotProps } from './MenuList.types';
|
|
6
6
|
import { menuListName } from './MenuList.types';
|
|
7
|
+
import { defaultMenuListTokens } from './MenuListTokens';
|
|
7
8
|
|
|
8
9
|
export const menuListStates: (keyof MenuListTokens)[] = ['hasMaxHeight'];
|
|
9
10
|
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
/** @jsx withSlots */
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Platform, ScrollView, View } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
6
|
+
import { FocusZone } from '@fluentui-react-native/focus-zone';
|
|
4
7
|
import type { UseSlots } from '@fluentui-react-native/framework';
|
|
5
8
|
import { compose, mergeProps, stagedComponent, withSlots } from '@fluentui-react-native/framework';
|
|
9
|
+
|
|
10
|
+
import { stylingSettings } from './MenuList.styling';
|
|
6
11
|
import type { MenuListProps, MenuListState, MenuListType } from './MenuList.types';
|
|
7
12
|
import { menuListName } from './MenuList.types';
|
|
8
|
-
import { stylingSettings } from './MenuList.styling';
|
|
9
|
-
import { MenuListProvider } from '../context/menuListContext';
|
|
10
13
|
import { useMenuList } from './useMenuList';
|
|
11
14
|
import { useMenuListContextValue } from './useMenuListContextValue';
|
|
12
|
-
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
13
|
-
import { FocusZone } from '@fluentui-react-native/focus-zone';
|
|
14
15
|
import { useMenuContext } from '../context';
|
|
16
|
+
import { MenuListProvider } from '../context/menuListContext';
|
|
15
17
|
|
|
16
18
|
const MenuStack = stagedComponent((props: React.PropsWithRef<IViewProps> & { gap?: number }) => {
|
|
17
19
|
const { gap, ...rest } = props;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { ScrollViewProps } from 'react-native';
|
|
3
|
+
|
|
1
4
|
import type { IViewProps } from '@fluentui-react-native/adapters';
|
|
2
5
|
import type { FocusZoneProps } from '@fluentui-react-native/focus-zone';
|
|
3
6
|
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
4
7
|
import type { IBackgroundColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
|
|
5
|
-
import type React from 'react';
|
|
6
|
-
import type { ScrollViewProps } from 'react-native';
|
|
7
8
|
|
|
8
9
|
export const menuListName = 'MenuList';
|
|
9
10
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuListTokens } from './MenuList.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuListTokens: TokenSettings<MenuListTokens, Theme> = (t: Theme): MenuListTokens => ({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuListTokens } from './MenuList.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuListTokens: TokenSettings<MenuListTokens, Theme> = (t: Theme): MenuListTokens => ({
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Theme } from '@fluentui-react-native/framework';
|
|
2
2
|
import { globalTokens } from '@fluentui-react-native/theme-tokens';
|
|
3
3
|
import type { TokenSettings } from '@fluentui-react-native/use-styling';
|
|
4
|
+
|
|
4
5
|
import type { MenuListTokens } from './MenuList.types';
|
|
5
6
|
|
|
6
7
|
export const defaultMenuListTokens: TokenSettings<MenuListTokens, Theme> = (t: Theme): MenuListTokens => ({
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
2
1
|
import React from 'react';
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
4
|
+
|
|
4
5
|
import type { MenuListProps, MenuListState } from './MenuList.types';
|
|
6
|
+
import { useMenuContext } from '../context/menuContext';
|
|
5
7
|
|
|
6
8
|
// Track the radio items so we know what to clear selection from when selectRadio is called
|
|
7
9
|
// Purposefully left out of the hook because
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { MenuListContextValue } from '../context/menuListContext';
|
|
2
1
|
import type { MenuListState } from './MenuList.types';
|
|
2
|
+
import type { MenuListContextValue } from '../context/menuListContext';
|
|
3
3
|
|
|
4
4
|
export const useMenuListContextValue = (state: MenuListState): MenuListContextValue => {
|
|
5
5
|
return { hasCheckmarks: state.props.hasCheckmarks, hasTooltips: state.props.hasTooltips, ...state };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Platform, View } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { Callout } from '@fluentui-react-native/callout';
|
|
2
5
|
import type { UseTokens } from '@fluentui-react-native/framework';
|
|
3
6
|
import { compressible, mergeProps, patchTokens, useFluentTheme } from '@fluentui-react-native/framework';
|
|
4
|
-
|
|
7
|
+
|
|
5
8
|
import type { MenuPopoverProps, MenuPopoverTokens } from './MenuPopover.types';
|
|
6
9
|
import { menuPopoverName } from './MenuPopover.types';
|
|
7
|
-
import { useMenuPopover } from './useMenuPopover';
|
|
8
10
|
import { useMenuPopoverTokens } from './MenuPopoverTokens';
|
|
9
|
-
import {
|
|
11
|
+
import { useMenuPopover } from './useMenuPopover';
|
|
10
12
|
import { useMenuContext } from '../context';
|
|
11
13
|
|
|
12
14
|
export const MenuPopover = compressible<MenuPopoverProps, MenuPopoverTokens>(
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { I18nManager, Platform } from 'react-native';
|
|
3
|
+
|
|
3
4
|
import type { DirectionalHint, DismissBehaviors } from '@fluentui-react-native/callout';
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
import type { MenuPopoverProps, MenuPopoverState } from './MenuPopover.types';
|
|
7
|
+
import { useMenuContext } from '../context/menuContext';
|
|
6
8
|
|
|
7
9
|
const controlledDismissBehaviors = ['preventDismissOnKeyDown', 'preventDismissOnClickOutside'] as DismissBehaviors[];
|
|
8
10
|
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
3
|
-
import type { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
1
|
+
import React from 'react';
|
|
4
2
|
import type { AccessibilityActionEvent, AccessibilityActionName } from 'react-native';
|
|
5
3
|
import { Platform } from 'react-native';
|
|
6
|
-
|
|
7
|
-
import {
|
|
4
|
+
|
|
5
|
+
import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
|
|
6
|
+
|
|
7
|
+
import type { MenuTriggerChildProps, MenuTriggerState } from './MenuTrigger.types';
|
|
8
8
|
import { useMergedRefs } from './useMergeRefs';
|
|
9
|
+
import { hoverDelayDefault } from '../consts';
|
|
10
|
+
import { useMenuContext } from '../context/menuContext';
|
|
9
11
|
|
|
10
12
|
const baseAccessibilityActions =
|
|
11
13
|
Platform.OS === ('win32' as any) ? [{ name: 'Expand' as AccessibilityActionName }, { name: 'Collapse' as AccessibilityActionName }] : [];
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { AccessibilityActionName } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { ButtonV1 as Button } from '@fluentui-react-native/button';
|
|
5
|
+
import { checkReRender } from '@fluentui-react-native/test-tools';
|
|
3
6
|
import * as renderer from 'react-test-renderer';
|
|
7
|
+
|
|
4
8
|
import { Menu } from '../Menu/Menu';
|
|
5
|
-
import {
|
|
6
|
-
import MenuTrigger from '../MenuTrigger/MenuTrigger';
|
|
7
|
-
import { ButtonV1 as Button } from '@fluentui-react-native/button';
|
|
8
|
-
import MenuPopover from '../MenuPopover/MenuPopover';
|
|
9
|
-
import { MenuList } from '../MenuList/MenuList';
|
|
9
|
+
import { MenuDivider } from '../MenuDivider/MenuDivider';
|
|
10
10
|
import { MenuItem } from '../MenuItem/MenuItem';
|
|
11
11
|
import { MenuItemCheckbox } from '../MenuItemCheckbox/MenuItemCheckbox';
|
|
12
|
-
import { MenuDivider } from '../MenuDivider/MenuDivider';
|
|
13
12
|
import { MenuItemRadio } from '../MenuItemRadio/MenuItemRadio';
|
|
13
|
+
import { MenuList } from '../MenuList/MenuList';
|
|
14
|
+
import MenuPopover from '../MenuPopover/MenuPopover';
|
|
15
|
+
import MenuTrigger from '../MenuTrigger/MenuTrigger';
|
|
14
16
|
|
|
15
17
|
describe('Menu component tests', () => {
|
|
16
18
|
it('Menu default', () => {
|