@fluentui/react-menu 0.0.0-nightly-20230317-1454.1 → 0.0.0-nightly-20230322-0439.1
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/.swcrc +2 -11
- package/CHANGELOG.json +116 -23
- package/CHANGELOG.md +36 -14
- package/lib/Menu.js +1 -1
- package/lib/MenuDivider.js +1 -1
- package/lib/MenuGroup.js +1 -1
- package/lib/MenuGroupHeader.js +1 -1
- package/lib/MenuItem.js +1 -1
- package/lib/MenuItemCheckbox.js +1 -1
- package/lib/MenuItemRadio.js +1 -1
- package/lib/MenuList.js +1 -1
- package/lib/MenuPopover.js +1 -1
- package/lib/MenuSplitGroup.js +1 -1
- package/lib/MenuTrigger.js +1 -1
- package/lib/components/Menu/Menu.js +5 -5
- package/lib/components/Menu/Menu.types.js +1 -1
- package/lib/components/Menu/index.js +5 -5
- package/lib/components/Menu/renderMenu.js +2 -2
- package/lib/components/Menu/useMenu.js +35 -28
- package/lib/components/Menu/useMenu.js.map +1 -1
- package/lib/components/MenuDivider/MenuDivider.js +6 -6
- package/lib/components/MenuDivider/index.js +5 -5
- package/lib/components/MenuDivider/renderMenuDivider.js +2 -2
- package/lib/components/MenuDivider/useMenuDivider.js +6 -6
- package/lib/components/MenuDivider/useMenuDividerStyles.js +3 -3
- package/lib/components/MenuGroup/MenuGroup.js +7 -7
- package/lib/components/MenuGroup/index.js +6 -6
- package/lib/components/MenuGroup/renderMenuGroup.js +3 -3
- package/lib/components/MenuGroup/useMenuGroup.js +7 -7
- package/lib/components/MenuGroup/useMenuGroupContextValues.js +1 -1
- package/lib/components/MenuGroup/useMenuGroupStyles.js +2 -2
- package/lib/components/MenuGroupHeader/MenuGroupHeader.js +6 -6
- package/lib/components/MenuGroupHeader/index.js +5 -5
- package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +2 -2
- package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +5 -5
- package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +3 -3
- package/lib/components/MenuItem/MenuItem.js +6 -6
- package/lib/components/MenuItem/index.js +5 -5
- package/lib/components/MenuItem/renderMenuItem.js +2 -2
- package/lib/components/MenuItem/useCharacterSearch.js +6 -5
- package/lib/components/MenuItem/useCharacterSearch.js.map +1 -1
- package/lib/components/MenuItem/useMenuItem.js +27 -24
- package/lib/components/MenuItem/useMenuItem.js.map +1 -1
- package/lib/components/MenuItem/useMenuItemStyles.js +26 -13
- package/lib/components/MenuItem/useMenuItemStyles.js.map +1 -1
- package/lib/components/MenuItemCheckbox/MenuItemCheckbox.js +6 -6
- package/lib/components/MenuItemCheckbox/index.js +5 -5
- package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +2 -2
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +12 -10
- package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +8 -8
- package/lib/components/MenuItemRadio/MenuItemRadio.js +6 -6
- package/lib/components/MenuItemRadio/index.js +5 -5
- package/lib/components/MenuItemRadio/renderMenuItemRadio.js +2 -2
- package/lib/components/MenuItemRadio/useMenuItemRadio.js +12 -10
- package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib/components/MenuItemRadio/useMenuItemRadioStyles.js +8 -8
- package/lib/components/MenuList/MenuList.js +7 -7
- package/lib/components/MenuList/MenuList.types.js +1 -1
- package/lib/components/MenuList/index.js +6 -6
- package/lib/components/MenuList/renderMenuList.js +3 -3
- package/lib/components/MenuList/useMenuList.js +24 -19
- package/lib/components/MenuList/useMenuList.js.map +1 -1
- package/lib/components/MenuList/useMenuListStyles.js +2 -2
- package/lib/components/MenuPopover/MenuPopover.js +6 -6
- package/lib/components/MenuPopover/index.js +5 -5
- package/lib/components/MenuPopover/renderMenuPopover.js +3 -3
- package/lib/components/MenuPopover/useMenuPopover.js +21 -19
- package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib/components/MenuPopover/useMenuPopoverStyles.js +3 -3
- package/lib/components/MenuSplitGroup/MenuSplitGroup.js +6 -6
- package/lib/components/MenuSplitGroup/index.js +5 -5
- package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +2 -2
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +13 -12
- package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
- package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.js +4 -4
- package/lib/components/MenuTrigger/MenuTrigger.js +4 -4
- package/lib/components/MenuTrigger/MenuTrigger.types.js +1 -1
- package/lib/components/MenuTrigger/index.js +4 -4
- package/lib/components/MenuTrigger/renderMenuTrigger.js +2 -2
- package/lib/components/MenuTrigger/useMenuTrigger.js +29 -29
- package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib/components/index.js +2 -2
- package/lib/contexts/menuContext.js +3 -3
- package/lib/contexts/menuGroupContext.js +4 -3
- package/lib/contexts/menuGroupContext.js.map +1 -1
- package/lib/contexts/menuListContext.js +2 -2
- package/lib/contexts/menuTriggerContext.js +3 -2
- package/lib/contexts/menuTriggerContext.js.map +1 -1
- package/lib/index.js +16 -16
- package/lib/selectable/index.js +2 -2
- package/lib/selectable/types.js +1 -1
- package/lib/selectable/useCheckmarkStyles.js +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/useIsSubmenu.js +3 -3
- package/lib/utils/useOnMenuEnter.js +6 -5
- package/lib/utils/useOnMenuEnter.js.map +1 -1
- package/lib-commonjs/Menu.js.map +1 -1
- package/lib-commonjs/MenuDivider.js.map +1 -1
- package/lib-commonjs/MenuGroup.js.map +1 -1
- package/lib-commonjs/MenuGroupHeader.js.map +1 -1
- package/lib-commonjs/MenuItem.js.map +1 -1
- package/lib-commonjs/MenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/MenuItemRadio.js.map +1 -1
- package/lib-commonjs/MenuList.js.map +1 -1
- package/lib-commonjs/MenuPopover.js.map +1 -1
- package/lib-commonjs/MenuSplitGroup.js.map +1 -1
- package/lib-commonjs/MenuTrigger.js.map +1 -1
- package/lib-commonjs/components/Menu/Menu.js +1 -1
- package/lib-commonjs/components/Menu/Menu.js.map +1 -1
- package/lib-commonjs/components/Menu/Menu.types.js.map +1 -1
- package/lib-commonjs/components/Menu/index.js.map +1 -1
- package/lib-commonjs/components/Menu/renderMenu.js.map +1 -1
- package/lib-commonjs/components/Menu/useMenu.js +31 -25
- package/lib-commonjs/components/Menu/useMenu.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/MenuDivider.js +1 -1
- package/lib-commonjs/components/MenuDivider/MenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/index.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/useMenuDivider.js +4 -4
- package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -1
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js +1 -1
- package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/MenuGroup.js +1 -1
- package/lib-commonjs/components/MenuGroup/MenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/index.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroup.js +5 -5
- package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroupContextValues.js.map +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js +1 -1
- package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js +1 -1
- package/lib-commonjs/components/MenuGroupHeader/MenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/index.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js +2 -2
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js +1 -1
- package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItem/MenuItem.js +1 -1
- package/lib-commonjs/components/MenuItem/MenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/index.js.map +1 -1
- package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useCharacterSearch.js +4 -3
- package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useMenuItem.js +17 -14
- package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.js +38 -8
- package/lib-commonjs/components/MenuItem/useMenuItemStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/index.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +7 -5
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js +5 -5
- package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js +1 -1
- package/lib-commonjs/components/MenuItemRadio/MenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/index.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +7 -5
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js +5 -5
- package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.js.map +1 -1
- package/lib-commonjs/components/MenuList/MenuList.js +1 -1
- package/lib-commonjs/components/MenuList/MenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/MenuList.types.js.map +1 -1
- package/lib-commonjs/components/MenuList/index.js.map +1 -1
- package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/useMenuList.js +20 -15
- package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -1
- package/lib-commonjs/components/MenuList/useMenuListStyles.js +1 -1
- package/lib-commonjs/components/MenuList/useMenuListStyles.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/MenuPopover.js +1 -1
- package/lib-commonjs/components/MenuPopover/MenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/index.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/useMenuPopover.js +14 -12
- package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -1
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js +1 -1
- package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js +1 -1
- package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/index.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +8 -7
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js +2 -2
- package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.js +1 -1
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/MenuTrigger.types.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/index.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/renderMenuTrigger.js.map +1 -1
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +21 -21
- package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -1
- package/lib-commonjs/components/index.js.map +1 -1
- package/lib-commonjs/contexts/menuContext.js +1 -1
- package/lib-commonjs/contexts/menuContext.js.map +1 -1
- package/lib-commonjs/contexts/menuGroupContext.js +3 -2
- package/lib-commonjs/contexts/menuGroupContext.js.map +1 -1
- package/lib-commonjs/contexts/menuListContext.js.map +1 -1
- package/lib-commonjs/contexts/menuTriggerContext.js +2 -1
- package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -1
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/selectable/index.js.map +1 -1
- package/lib-commonjs/selectable/types.js.map +1 -1
- package/lib-commonjs/selectable/useCheckmarkStyles.js.map +1 -1
- package/lib-commonjs/utils/index.js.map +1 -1
- package/lib-commonjs/utils/useIsSubmenu.js.map +1 -1
- package/lib-commonjs/utils/useOnMenuEnter.js +3 -2
- package/lib-commonjs/utils/useOnMenuEnter.js.map +1 -1
- package/package.json +13 -12
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import * as React from
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
const MenuGroupContext = /*#__PURE__*/React.createContext(undefined);
|
|
3
3
|
const menuGroupContextDefaultValue = {
|
|
4
|
-
headerId:
|
|
4
|
+
headerId: ''
|
|
5
5
|
};
|
|
6
6
|
export const MenuGroupContextProvider = MenuGroupContext.Provider;
|
|
7
|
-
|
|
7
|
+
var _React_useContext;
|
|
8
|
+
export const useMenuGroupContext_unstable = () => (_React_useContext = React.useContext(MenuGroupContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuGroupContextDefaultValue;
|
|
8
9
|
//# sourceMappingURL=menuGroupContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","MenuGroupContext","createContext","undefined","menuGroupContextDefaultValue","headerId","MenuGroupContextProvider","Provider","useMenuGroupContext_unstable","useContext"],"sources":["../../src/contexts/menuGroupContext.ts"],"sourcesContent":["import * as React from 'react';\n\nconst MenuGroupContext = React.createContext<MenuGroupContextValue | undefined>(\n undefined,\n) as React.Context<MenuGroupContextValue>;\n\nconst menuGroupContextDefaultValue: MenuGroupContextValue = {\n headerId: '',\n};\n\n/**\n * Context used to guarantee correct aria-relationship between header\n * and group information\n */\nexport type MenuGroupContextValue = {\n /**\n * Element id applied to the `MenuGroupHeader` component\n */\n headerId: string;\n};\n\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\nexport const useMenuGroupContext_unstable = () => React.useContext(MenuGroupContext) ?? menuGroupContextDefaultValue;\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB,MAAMC,gBAAA,gBAAmBD,KAAA,CAAME,aAAa,CAC1CC,SAAA;AAGF,MAAMC,4BAAA,GAAsD;EAC1DC,QAAA,EAAU;AACZ;AAaA,OAAO,MAAMC,wBAAA,GAA2BL,gBAAA,CAAiBM,QAAQ;
|
|
1
|
+
{"version":3,"names":["React","MenuGroupContext","createContext","undefined","menuGroupContextDefaultValue","headerId","MenuGroupContextProvider","Provider","_React_useContext","useMenuGroupContext_unstable","useContext"],"sources":["../../src/contexts/menuGroupContext.ts"],"sourcesContent":["import * as React from 'react';\n\nconst MenuGroupContext = React.createContext<MenuGroupContextValue | undefined>(\n undefined,\n) as React.Context<MenuGroupContextValue>;\n\nconst menuGroupContextDefaultValue: MenuGroupContextValue = {\n headerId: '',\n};\n\n/**\n * Context used to guarantee correct aria-relationship between header\n * and group information\n */\nexport type MenuGroupContextValue = {\n /**\n * Element id applied to the `MenuGroupHeader` component\n */\n headerId: string;\n};\n\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\nexport const useMenuGroupContext_unstable = () => React.useContext(MenuGroupContext) ?? menuGroupContextDefaultValue;\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB,MAAMC,gBAAA,gBAAmBD,KAAA,CAAME,aAAa,CAC1CC,SAAA;AAGF,MAAMC,4BAAA,GAAsD;EAC1DC,QAAA,EAAU;AACZ;AAaA,OAAO,MAAMC,wBAAA,GAA2BL,gBAAA,CAAiBM,QAAQ;IACfC,iBAAA;AAAlD,OAAO,MAAMC,4BAAA,GAA+BA,CAAA,KAAM,CAAAD,iBAAA,GAAAR,KAAA,CAAMU,UAAU,CAACT,gBAAA,eAAjBO,iBAAA,cAAAA,iBAAA,GAAsCJ,4BAA4B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { createContext, useContextSelector } from
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { createContext, useContextSelector } from '@fluentui/react-context-selector';
|
|
3
3
|
export const MenuListContext = /*#__PURE__*/createContext(undefined);
|
|
4
4
|
const menuListContextDefaultValue = {
|
|
5
5
|
checkedValues: {},
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import * as React from
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
/**
|
|
3
3
|
* Context used communicate with a child menu item that it is a trigger for a submenu
|
|
4
4
|
*/
|
|
5
5
|
const MenuTriggerContext = /*#__PURE__*/React.createContext(undefined);
|
|
6
6
|
const menuTriggerContextDefaultValue = false;
|
|
7
7
|
export const MenuTriggerContextProvider = MenuTriggerContext.Provider;
|
|
8
|
-
|
|
8
|
+
var _React_useContext;
|
|
9
|
+
export const useMenuTriggerContext_unstable = () => (_React_useContext = React.useContext(MenuTriggerContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuTriggerContextDefaultValue;
|
|
9
10
|
//# sourceMappingURL=menuTriggerContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","MenuTriggerContext","createContext","undefined","menuTriggerContextDefaultValue","MenuTriggerContextProvider","Provider","useMenuTriggerContext_unstable","useContext"],"sources":["../../src/contexts/menuTriggerContext.ts"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Context used communicate with a child menu item that it is a trigger for a submenu\n */\nconst MenuTriggerContext = React.createContext<boolean | undefined>(undefined) as React.Context<boolean>;\n\nconst menuTriggerContextDefaultValue = false;\n\nexport const MenuTriggerContextProvider = MenuTriggerContext.Provider;\nexport const useMenuTriggerContext_unstable = () =>\n React.useContext(MenuTriggerContext) ?? menuTriggerContextDefaultValue;\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB;;;AAGA,MAAMC,kBAAA,gBAAqBD,KAAA,CAAME,aAAa,CAAsBC,SAAA;AAEpE,MAAMC,8BAAA,GAAiC,KAAK;AAE5C,OAAO,MAAMC,0BAAA,GAA6BJ,kBAAA,CAAmBK,QAAQ;
|
|
1
|
+
{"version":3,"names":["React","MenuTriggerContext","createContext","undefined","menuTriggerContextDefaultValue","MenuTriggerContextProvider","Provider","_React_useContext","useMenuTriggerContext_unstable","useContext"],"sources":["../../src/contexts/menuTriggerContext.ts"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Context used communicate with a child menu item that it is a trigger for a submenu\n */\nconst MenuTriggerContext = React.createContext<boolean | undefined>(undefined) as React.Context<boolean>;\n\nconst menuTriggerContextDefaultValue = false;\n\nexport const MenuTriggerContextProvider = MenuTriggerContext.Provider;\nexport const useMenuTriggerContext_unstable = () =>\n React.useContext(MenuTriggerContext) ?? menuTriggerContextDefaultValue;\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAEvB;;;AAGA,MAAMC,kBAAA,gBAAqBD,KAAA,CAAME,aAAa,CAAsBC,SAAA;AAEpE,MAAMC,8BAAA,GAAiC,KAAK;AAE5C,OAAO,MAAMC,0BAAA,GAA6BJ,kBAAA,CAAmBK,QAAQ;IAEnEC,iBAAA;AADF,OAAO,MAAMC,8BAAA,GAAiCA,CAAA,KAC5C,CAAAD,iBAAA,GAAAP,KAAA,CAAMS,UAAU,CAACR,kBAAA,eAAjBM,iBAAA,cAAAA,iBAAA,GAAwCH,8BAA8B"}
|
package/lib/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export { MenuProvider, useMenuContext_unstable } from
|
|
2
|
-
export { MenuTriggerContextProvider, useMenuTriggerContext_unstable } from
|
|
3
|
-
export { MenuGroupContextProvider, useMenuGroupContext_unstable } from
|
|
4
|
-
export { MenuListProvider, useMenuListContext_unstable } from
|
|
5
|
-
export { Menu, renderMenu_unstable, useMenuContextValues_unstable, useMenu_unstable } from
|
|
6
|
-
export { MenuDivider, menuDividerClassNames, renderMenuDivider_unstable, useMenuDividerStyles_unstable, useMenuDivider_unstable } from
|
|
7
|
-
export { MenuGroup, menuGroupClassNames, renderMenuGroup_unstable, useMenuGroupContextValues_unstable, useMenuGroupStyles_unstable, useMenuGroup_unstable } from
|
|
8
|
-
export { MenuGroupHeader, menuGroupHeaderClassNames, renderMenuGroupHeader_unstable, useMenuGroupHeaderStyles_unstable, useMenuGroupHeader_unstable } from
|
|
9
|
-
export { MenuItem, menuItemClassNames, renderMenuItem_unstable, useMenuItemStyles_unstable, useMenuItem_unstable } from
|
|
10
|
-
export { MenuItemCheckbox, menuItemCheckboxClassNames, renderMenuItemCheckbox_unstable, useMenuItemCheckboxStyles_unstable, useMenuItemCheckbox_unstable } from
|
|
11
|
-
export { MenuItemRadio, menuItemRadioClassNames, renderMenuItemRadio_unstable, useMenuItemRadioStyles_unstable, useMenuItemRadio_unstable } from
|
|
12
|
-
export { MenuList, menuListClassNames, renderMenuList_unstable, useMenuListContextValues_unstable, useMenuListStyles_unstable, useMenuList_unstable } from
|
|
13
|
-
export { MenuPopover, menuPopoverClassNames, renderMenuPopover_unstable, useMenuPopoverStyles_unstable, useMenuPopover_unstable } from
|
|
14
|
-
export { MenuSplitGroup, menuSplitGroupClassNames, renderMenuSplitGroup_unstable, useMenuSplitGroupStyles_unstable, useMenuSplitGroup_unstable } from
|
|
15
|
-
export { MenuTrigger, renderMenuTrigger_unstable, useMenuTrigger_unstable } from
|
|
16
|
-
export { useCheckmarkStyles_unstable } from
|
|
1
|
+
export { MenuProvider, useMenuContext_unstable } from './contexts/menuContext';
|
|
2
|
+
export { MenuTriggerContextProvider, useMenuTriggerContext_unstable } from './contexts/menuTriggerContext';
|
|
3
|
+
export { MenuGroupContextProvider, useMenuGroupContext_unstable } from './contexts/menuGroupContext';
|
|
4
|
+
export { MenuListProvider, useMenuListContext_unstable } from './contexts/menuListContext';
|
|
5
|
+
export { Menu, renderMenu_unstable, useMenuContextValues_unstable, useMenu_unstable } from './Menu';
|
|
6
|
+
export { MenuDivider, menuDividerClassNames, renderMenuDivider_unstable, useMenuDividerStyles_unstable, useMenuDivider_unstable } from './MenuDivider';
|
|
7
|
+
export { MenuGroup, menuGroupClassNames, renderMenuGroup_unstable, useMenuGroupContextValues_unstable, useMenuGroupStyles_unstable, useMenuGroup_unstable } from './MenuGroup';
|
|
8
|
+
export { MenuGroupHeader, menuGroupHeaderClassNames, renderMenuGroupHeader_unstable, useMenuGroupHeaderStyles_unstable, useMenuGroupHeader_unstable } from './MenuGroupHeader';
|
|
9
|
+
export { MenuItem, menuItemClassNames, renderMenuItem_unstable, useMenuItemStyles_unstable, useMenuItem_unstable } from './MenuItem';
|
|
10
|
+
export { MenuItemCheckbox, menuItemCheckboxClassNames, renderMenuItemCheckbox_unstable, useMenuItemCheckboxStyles_unstable, useMenuItemCheckbox_unstable } from './MenuItemCheckbox';
|
|
11
|
+
export { MenuItemRadio, menuItemRadioClassNames, renderMenuItemRadio_unstable, useMenuItemRadioStyles_unstable, useMenuItemRadio_unstable } from './MenuItemRadio';
|
|
12
|
+
export { MenuList, menuListClassNames, renderMenuList_unstable, useMenuListContextValues_unstable, useMenuListStyles_unstable, useMenuList_unstable } from './MenuList';
|
|
13
|
+
export { MenuPopover, menuPopoverClassNames, renderMenuPopover_unstable, useMenuPopoverStyles_unstable, useMenuPopover_unstable } from './MenuPopover';
|
|
14
|
+
export { MenuSplitGroup, menuSplitGroupClassNames, renderMenuSplitGroup_unstable, useMenuSplitGroupStyles_unstable, useMenuSplitGroup_unstable } from './MenuSplitGroup';
|
|
15
|
+
export { MenuTrigger, renderMenuTrigger_unstable, useMenuTrigger_unstable } from './MenuTrigger';
|
|
16
|
+
export { useCheckmarkStyles_unstable } from './selectable/index';
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
package/lib/selectable/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from './useCheckmarkStyles';
|
|
2
|
+
export * from './types';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/lib/selectable/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import * as React from
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
//# sourceMappingURL=types.js.map
|
package/lib/utils/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './useOnMenuEnter';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useHasParentContext } from
|
|
2
|
-
import { useMenuContext_unstable } from
|
|
3
|
-
import { MenuListContext } from
|
|
1
|
+
import { useHasParentContext } from '@fluentui/react-context-selector';
|
|
2
|
+
import { useMenuContext_unstable } from '../contexts/menuContext';
|
|
3
|
+
import { MenuListContext } from '../contexts/menuListContext';
|
|
4
4
|
/**
|
|
5
5
|
* A component can be a part of a submenu whether its menu context `isSubmenu` flag is true
|
|
6
6
|
* or whether it is a part of a `MenuList`
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { useEventCallback } from
|
|
3
|
-
import { elementContains } from
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useEventCallback } from '@fluentui/react-utilities';
|
|
3
|
+
import { elementContains } from '@fluentui/react-portal';
|
|
4
4
|
/**
|
|
5
5
|
* Name of the custom event
|
|
6
6
|
*/
|
|
7
|
-
export const MENU_ENTER_EVENT =
|
|
7
|
+
export const MENU_ENTER_EVENT = 'fuimenuenter';
|
|
8
8
|
/**
|
|
9
9
|
* This hook works similarly to @see {useOnClickOutside}
|
|
10
10
|
*
|
|
@@ -27,10 +27,11 @@ export const useOnMenuMouseEnter = options => {
|
|
|
27
27
|
const listener = useEventCallback(ev => {
|
|
28
28
|
const popoverRef = refs[0];
|
|
29
29
|
const someMenuPopover = ev.target;
|
|
30
|
+
var _popoverRef_current;
|
|
30
31
|
// someMenu is a child -> will always be contained because of vParents
|
|
31
32
|
// someMenu is a parent -> will always not be contained because no vParent
|
|
32
33
|
// someMenu is the current popover -> it will contain itself
|
|
33
|
-
const isOutsidePopover = !elementContains(popoverRef.current
|
|
34
|
+
const isOutsidePopover = !elementContains((_popoverRef_current = popoverRef.current) !== null && _popoverRef_current !== void 0 ? _popoverRef_current : null, someMenuPopover);
|
|
34
35
|
if (isOutsidePopover && !disabled) {
|
|
35
36
|
callback(ev);
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEventCallback","elementContains","MENU_ENTER_EVENT","useOnMenuMouseEnter","options","refs","callback","element","disabled","listener","ev","popoverRef","someMenuPopover","target","isOutsidePopover","current","useEffect","addEventListener","removeEventListener","dispatchMenuEnterEvent","el","nativeEvent","dispatchEvent","CustomEvent","bubbles","detail"],"sources":["../../src/utils/useOnMenuEnter.ts"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback } from '@fluentui/react-utilities';\nimport { elementContains } from '@fluentui/react-portal';\nimport type { UseOnClickOrScrollOutsideOptions } from '@fluentui/react-utilities';\n\n/**\n * Name of the custom event\n */\nexport const MENU_ENTER_EVENT = 'fuimenuenter';\n\n/**\n * This hook works similarly to @see {useOnClickOutside}\n *\n * Problem: Trying to behave the same as system menus:\n * When the mouse leaves a stack of nested menus the stack should not dismiss.\n * However if the mouse leaves a stack of menus and enters a parent menu all its children menu should dismiss.\n *\n * We don't use the native mouseenter event because it would trigger too many times in the document\n * Instead, dispatch custom DOM event from the menu so that it can bubble\n * Each nested menu can use the listener to check if the event is from a child or parent menu\n */\nexport const useOnMenuMouseEnter = (options: UseOnClickOrScrollOutsideOptions) => {\n const { refs, callback, element, disabled } = options;\n\n // Keep mouse event here because this is essentially a custom 'mouseenter' event\n const listener = useEventCallback((ev: MouseEvent) => {\n const popoverRef = refs[0];\n const someMenuPopover = ev.target as HTMLElement;\n\n // someMenu is a child -> will always be contained because of vParents\n // someMenu is a parent -> will always not be contained because no vParent\n // someMenu is the current popover -> it will contain itself\n const isOutsidePopover = !elementContains(popoverRef.current ?? null, someMenuPopover);\n if (isOutsidePopover && !disabled) {\n callback(ev);\n }\n });\n\n React.useEffect(() => {\n // eslint-disable-next-line eqeqeq\n if (element == null) {\n return;\n }\n\n /**\n * Because `addEventListener` type override falls back to 2nd definition (evt name is unknown string literal)\n * evt is being typed as a base class of MouseEvent -> `Event`.\n * This type is used to override `listener` calls to make TS happy\n */\n\n type ListenerOverride = (evt: Event) => void;\n\n if (!disabled) {\n element.addEventListener(MENU_ENTER_EVENT, listener as ListenerOverride);\n }\n\n return () => {\n element.removeEventListener(MENU_ENTER_EVENT, listener as ListenerOverride);\n };\n }, [listener, element, disabled]);\n};\n\n/**\n * Dispatches the custom MouseEvent enter event. Similar to calling `el.click()`\n * @param el element for the event target\n * @param nativeEvent the native mouse event this is mapped to\n */\nexport const dispatchMenuEnterEvent = (el: HTMLElement, nativeEvent: MouseEvent) => {\n el.dispatchEvent(new CustomEvent(MENU_ENTER_EVENT, { bubbles: true, detail: { nativeEvent } }));\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,eAAe,QAAQ;AAGhC;;;AAGA,OAAO,MAAMC,gBAAA,GAAmB;AAEhC;;;;;;;;;;;AAWA,OAAO,MAAMC,mBAAA,GAAuBC,OAAA,IAA8C;EAChF,MAAM;IAAEC,IAAA;IAAMC,QAAA;IAAUC,OAAA;IAASC;EAAQ,CAAE,GAAGJ,OAAA;EAE9C;EACA,MAAMK,QAAA,GAAWT,gBAAA,CAAkBU,EAAA,IAAmB;IACpD,MAAMC,UAAA,GAAaN,IAAI,CAAC,EAAE;IAC1B,MAAMO,eAAA,GAAkBF,EAAA,CAAGG,MAAM;
|
|
1
|
+
{"version":3,"names":["React","useEventCallback","elementContains","MENU_ENTER_EVENT","useOnMenuMouseEnter","options","refs","callback","element","disabled","listener","ev","popoverRef","someMenuPopover","target","_popoverRef_current","isOutsidePopover","current","useEffect","addEventListener","removeEventListener","dispatchMenuEnterEvent","el","nativeEvent","dispatchEvent","CustomEvent","bubbles","detail"],"sources":["../../src/utils/useOnMenuEnter.ts"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback } from '@fluentui/react-utilities';\nimport { elementContains } from '@fluentui/react-portal';\nimport type { UseOnClickOrScrollOutsideOptions } from '@fluentui/react-utilities';\n\n/**\n * Name of the custom event\n */\nexport const MENU_ENTER_EVENT = 'fuimenuenter';\n\n/**\n * This hook works similarly to @see {useOnClickOutside}\n *\n * Problem: Trying to behave the same as system menus:\n * When the mouse leaves a stack of nested menus the stack should not dismiss.\n * However if the mouse leaves a stack of menus and enters a parent menu all its children menu should dismiss.\n *\n * We don't use the native mouseenter event because it would trigger too many times in the document\n * Instead, dispatch custom DOM event from the menu so that it can bubble\n * Each nested menu can use the listener to check if the event is from a child or parent menu\n */\nexport const useOnMenuMouseEnter = (options: UseOnClickOrScrollOutsideOptions) => {\n const { refs, callback, element, disabled } = options;\n\n // Keep mouse event here because this is essentially a custom 'mouseenter' event\n const listener = useEventCallback((ev: MouseEvent) => {\n const popoverRef = refs[0];\n const someMenuPopover = ev.target as HTMLElement;\n\n // someMenu is a child -> will always be contained because of vParents\n // someMenu is a parent -> will always not be contained because no vParent\n // someMenu is the current popover -> it will contain itself\n const isOutsidePopover = !elementContains(popoverRef.current ?? null, someMenuPopover);\n if (isOutsidePopover && !disabled) {\n callback(ev);\n }\n });\n\n React.useEffect(() => {\n // eslint-disable-next-line eqeqeq\n if (element == null) {\n return;\n }\n\n /**\n * Because `addEventListener` type override falls back to 2nd definition (evt name is unknown string literal)\n * evt is being typed as a base class of MouseEvent -> `Event`.\n * This type is used to override `listener` calls to make TS happy\n */\n\n type ListenerOverride = (evt: Event) => void;\n\n if (!disabled) {\n element.addEventListener(MENU_ENTER_EVENT, listener as ListenerOverride);\n }\n\n return () => {\n element.removeEventListener(MENU_ENTER_EVENT, listener as ListenerOverride);\n };\n }, [listener, element, disabled]);\n};\n\n/**\n * Dispatches the custom MouseEvent enter event. Similar to calling `el.click()`\n * @param el element for the event target\n * @param nativeEvent the native mouse event this is mapped to\n */\nexport const dispatchMenuEnterEvent = (el: HTMLElement, nativeEvent: MouseEvent) => {\n el.dispatchEvent(new CustomEvent(MENU_ENTER_EVENT, { bubbles: true, detail: { nativeEvent } }));\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,eAAe,QAAQ;AAGhC;;;AAGA,OAAO,MAAMC,gBAAA,GAAmB;AAEhC;;;;;;;;;;;AAWA,OAAO,MAAMC,mBAAA,GAAuBC,OAAA,IAA8C;EAChF,MAAM;IAAEC,IAAA;IAAMC,QAAA;IAAUC,OAAA;IAASC;EAAQ,CAAE,GAAGJ,OAAA;EAE9C;EACA,MAAMK,QAAA,GAAWT,gBAAA,CAAkBU,EAAA,IAAmB;IACpD,MAAMC,UAAA,GAAaN,IAAI,CAAC,EAAE;IAC1B,MAAMO,eAAA,GAAkBF,EAAA,CAAGG,MAAM;QAKSC,mBAAA;IAH1C;IACA;IACA;IACA,MAAMC,gBAAA,GAAmB,CAACd,eAAA,CAAgB,CAAAa,mBAAA,GAAAH,UAAA,CAAWK,OAAO,cAAlBF,mBAAA,cAAAA,mBAAA,GAAsB,IAAI,EAAEF,eAAA;IACtE,IAAIG,gBAAA,IAAoB,CAACP,QAAA,EAAU;MACjCF,QAAA,CAASI,EAAA;IACX;EACF;EAEAX,KAAA,CAAMkB,SAAS,CAAC,MAAM;IACpB;IACA,IAAIV,OAAA,IAAW,IAAI,EAAE;MACnB;IACF;IAUA,IAAI,CAACC,QAAA,EAAU;MACbD,OAAA,CAAQW,gBAAgB,CAAChB,gBAAA,EAAkBO,QAAA;IAC7C;IAEA,OAAO,MAAM;MACXF,OAAA,CAAQY,mBAAmB,CAACjB,gBAAA,EAAkBO,QAAA;IAChD;EACF,GAAG,CAACA,QAAA,EAAUF,OAAA,EAASC,QAAA,CAAS;AAClC;AAEA;;;;;AAKA,OAAO,MAAMY,sBAAA,GAAyBA,CAACC,EAAA,EAAiBC,WAAA,KAA4B;EAClFD,EAAA,CAAGE,aAAa,CAAC,IAAIC,WAAA,CAAYtB,gBAAA,EAAkB;IAAEuB,OAAA,EAAS,IAAI;IAAEC,MAAA,EAAQ;MAAEJ;IAAY;EAAE;AAC9F"}
|
package/lib-commonjs/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/Menu.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/Menu.js"],"sourcesContent":["export * from './components/Menu/index';\n//# sourceMappingURL=Menu.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,gCAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuDivider.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuDivider.js"],"sourcesContent":["export * from './components/MenuDivider/index';\n//# sourceMappingURL=MenuDivider.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,uCAAuC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuGroup.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuGroup.js"],"sourcesContent":["export * from './components/MenuGroup/index';\n//# sourceMappingURL=MenuGroup.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,qCAAqC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuGroupHeader.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuGroupHeader.js"],"sourcesContent":["export * from './components/MenuGroupHeader/index';\n//# sourceMappingURL=MenuGroupHeader.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,2CAA2C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuItem.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuItem.js"],"sourcesContent":["export * from './components/MenuItem/index';\n//# sourceMappingURL=MenuItem.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,oCAAoC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuItemCheckbox.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuItemCheckbox.js"],"sourcesContent":["export * from './components/MenuItemCheckbox/index';\n//# sourceMappingURL=MenuItemCheckbox.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,4CAA4C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuItemRadio.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuItemRadio.js"],"sourcesContent":["export * from './components/MenuItemRadio/index';\n//# sourceMappingURL=MenuItemRadio.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,yCAAyC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuList.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuList.js"],"sourcesContent":["export * from './components/MenuList/index';\n//# sourceMappingURL=MenuList.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,oCAAoC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuPopover.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuPopover.js"],"sourcesContent":["export * from './components/MenuPopover/index';\n//# sourceMappingURL=MenuPopover.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,uCAAuC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuSplitGroup.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuSplitGroup.js"],"sourcesContent":["export * from './components/MenuSplitGroup/index';\n//# sourceMappingURL=MenuSplitGroup.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,0CAA0C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/MenuTrigger.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../lib/MenuTrigger.js"],"sourcesContent":["export * from './components/MenuTrigger/index';\n//# sourceMappingURL=MenuTrigger.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,uCAAuC"}
|
|
@@ -16,6 +16,6 @@ const Menu = (props)=>{
|
|
|
16
16
|
const contextValues = (0, _useMenuContextValues.useMenuContextValues_unstable)(state);
|
|
17
17
|
return (0, _renderMenu.renderMenu_unstable)(state, contextValues);
|
|
18
18
|
};
|
|
19
|
-
Menu.displayName =
|
|
19
|
+
Menu.displayName = 'Menu'; //# sourceMappingURL=Menu.js.map
|
|
20
20
|
|
|
21
21
|
//# sourceMappingURL=Menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/Menu/Menu.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/Menu/Menu.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenu_unstable } from './useMenu';\nimport { useMenuContextValues_unstable } from './useMenuContextValues';\nimport { renderMenu_unstable } from './renderMenu';\n/**\n * Wrapper component that manages state for a popup MenuList and a MenuTrigger\n */\nexport const Menu = props => {\n const state = useMenu_unstable(props);\n const contextValues = useMenuContextValues_unstable(state);\n return renderMenu_unstable(state, contextValues);\n};\nMenu.displayName = 'Menu';\n//# sourceMappingURL=Menu.js.map"],"names":["Menu","props","state","useMenu_unstable","contextValues","useMenuContextValues_unstable","renderMenu_unstable","displayName"],"mappings":";;;;+BAOaA;;aAAAA;;;6DAPU;yBACU;sCACa;4BACV;AAI7B,MAAMA,OAAOC,CAAAA,QAAS;IAC3B,MAAMC,QAAQC,IAAAA,yBAAgB,EAACF;IAC/B,MAAMG,gBAAgBC,IAAAA,mDAA6B,EAACH;IACpD,OAAOI,IAAAA,+BAAmB,EAACJ,OAAOE;AACpC;AACAJ,KAAKO,WAAW,GAAG,QACnB,gCAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/Menu/Menu.types.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/Menu/Menu.types.js"],"sourcesContent":["import * as React from 'react';\n//# sourceMappingURL=Menu.types.js.map"],"names":[],"mappings":";;;;;6DAAuB;CACvB,sCAAsC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/Menu/index.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/Menu/index.js"],"sourcesContent":["export * from './Menu';\nexport * from './Menu.types';\nexport * from './renderMenu';\nexport * from './useMenu';\nexport * from './useMenuContextValues';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/Menu/renderMenu.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/Menu/renderMenu.js"],"sourcesContent":["import * as React from 'react';\nimport { MenuProvider } from '../../contexts/menuContext';\n/**\n * Render the final JSX of Menu\n */\nexport const renderMenu_unstable = (state, contextValues) => {\n return /*#__PURE__*/React.createElement(MenuProvider, {\n value: contextValues.menu\n }, state.menuTrigger, state.open && state.menuPopover);\n};\n//# sourceMappingURL=renderMenu.js.map"],"names":["renderMenu_unstable","state","contextValues","React","createElement","MenuProvider","value","menu","menuTrigger","open","menuPopover"],"mappings":";;;;+BAKaA;;aAAAA;;;6DALU;6BACM;AAItB,MAAMA,sBAAsB,CAACC,OAAOC,gBAAkB;IAC3D,OAAO,WAAW,GAAEC,OAAMC,aAAa,CAACC,yBAAY,EAAE;QACpDC,OAAOJ,cAAcK,IAAI;IAC3B,GAAGN,MAAMO,WAAW,EAAEP,MAAMQ,IAAI,IAAIR,MAAMS,WAAW;AACvD,GACA,sCAAsC"}
|
|
@@ -19,34 +19,34 @@ const _useIsSubmenu = require("../../utils/useIsSubmenu");
|
|
|
19
19
|
// If it's not possible to position the submenu in smaller viewports, try
|
|
20
20
|
// and fallback to this order of positions
|
|
21
21
|
const submenuFallbackPositions = [
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
'after',
|
|
23
|
+
'after-bottom',
|
|
24
|
+
'before-top',
|
|
25
|
+
'before',
|
|
26
|
+
'before-bottom',
|
|
27
|
+
'above'
|
|
28
28
|
];
|
|
29
29
|
const useMenu_unstable = (props)=>{
|
|
30
30
|
const isSubmenu = (0, _useIsSubmenu.useIsSubmenu)();
|
|
31
31
|
const { hoverDelay =500 , inline =false , hasCheckmarks =false , hasIcons =false , closeOnScroll =false , openOnContext =false , persistOnItemClick =false , openOnHover =isSubmenu , defaultCheckedValues , mountNode =null } = props;
|
|
32
|
-
const triggerId = (0, _reactUtilities.useId)(
|
|
32
|
+
const triggerId = (0, _reactUtilities.useId)('menu');
|
|
33
33
|
const [contextTarget, setContextTarget] = (0, _reactPositioning.usePositioningMouseTarget)();
|
|
34
34
|
const positioningState = {
|
|
35
|
-
position: isSubmenu ?
|
|
36
|
-
align: isSubmenu ?
|
|
35
|
+
position: isSubmenu ? 'after' : 'below',
|
|
36
|
+
align: isSubmenu ? 'top' : 'start',
|
|
37
37
|
target: props.openOnContext ? contextTarget : undefined,
|
|
38
38
|
fallbackPositions: isSubmenu ? submenuFallbackPositions : undefined,
|
|
39
39
|
...(0, _reactPositioning.resolvePositioningShorthand)(props.positioning)
|
|
40
40
|
};
|
|
41
41
|
const children = _react.Children.toArray(props.children);
|
|
42
|
-
if (process.env.NODE_ENV !==
|
|
42
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
43
43
|
if (children.length === 0) {
|
|
44
44
|
// eslint-disable-next-line no-console
|
|
45
|
-
console.warn(
|
|
45
|
+
console.warn('Menu must contain at least one child');
|
|
46
46
|
}
|
|
47
47
|
if (children.length > 2) {
|
|
48
48
|
// eslint-disable-next-line no-console
|
|
49
|
-
console.warn(
|
|
49
|
+
console.warn('Menu must contain at most two children');
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
let menuTrigger = undefined;
|
|
@@ -111,7 +111,8 @@ const useMenu_unstable = (props)=>{
|
|
|
111
111
|
initialState: {}
|
|
112
112
|
});
|
|
113
113
|
const onCheckedValueChange = (0, _reactUtilities.useEventCallback)((e, { name , checkedItems })=>{
|
|
114
|
-
|
|
114
|
+
var _props_onCheckedValueChange;
|
|
115
|
+
(_props_onCheckedValueChange = props.onCheckedValueChange) === null || _props_onCheckedValueChange === void 0 ? void 0 : _props_onCheckedValueChange.call(props, e, {
|
|
115
116
|
name,
|
|
116
117
|
checkedItems
|
|
117
118
|
});
|
|
@@ -128,7 +129,10 @@ const useMenu_unstable = (props)=>{
|
|
|
128
129
|
const useMenuOpenState = (state)=>{
|
|
129
130
|
const { targetDocument } = (0, _reactSharedContexts.useFluent_unstable)();
|
|
130
131
|
const parentSetOpen = (0, _menuContext.useMenuContext_unstable)((context)=>context.setOpen);
|
|
131
|
-
const onOpenChange = (0, _reactUtilities.useEventCallback)((e, data)=>
|
|
132
|
+
const onOpenChange = (0, _reactUtilities.useEventCallback)((e, data)=>{
|
|
133
|
+
var _state_onOpenChange;
|
|
134
|
+
return (_state_onOpenChange = state.onOpenChange) === null || _state_onOpenChange === void 0 ? void 0 : _state_onOpenChange.call(state, e, data);
|
|
135
|
+
});
|
|
132
136
|
const shouldHandleCloseRef = _react.useRef(false);
|
|
133
137
|
const setOpenTimeout = _react.useRef(0);
|
|
134
138
|
const enteringTriggerRef = _react.useRef(false);
|
|
@@ -139,10 +143,10 @@ const useMenuOpenState = (state)=>{
|
|
|
139
143
|
});
|
|
140
144
|
const trySetOpen = (0, _reactUtilities.useEventCallback)((e, data)=>{
|
|
141
145
|
const event = e instanceof CustomEvent && e.type === _index.MENU_ENTER_EVENT ? e.detail.nativeEvent : e;
|
|
142
|
-
onOpenChange
|
|
146
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(event, {
|
|
143
147
|
...data
|
|
144
148
|
});
|
|
145
|
-
if (data.open && e.type ===
|
|
149
|
+
if (data.open && e.type === 'contextmenu') {
|
|
146
150
|
state.setContextTarget(e);
|
|
147
151
|
}
|
|
148
152
|
if (!data.open) {
|
|
@@ -162,9 +166,10 @@ const useMenuOpenState = (state)=>{
|
|
|
162
166
|
// < React 17 still uses pooled synthetic events
|
|
163
167
|
e.persist();
|
|
164
168
|
}
|
|
165
|
-
if (e.type ===
|
|
166
|
-
|
|
167
|
-
|
|
169
|
+
if (e.type === 'mouseleave' || e.type === 'mouseenter' || e.type === 'mousemove' || e.type === _index.MENU_ENTER_EVENT) {
|
|
170
|
+
var _state_triggerRef_current;
|
|
171
|
+
if ((_state_triggerRef_current = state.triggerRef.current) === null || _state_triggerRef_current === void 0 ? void 0 : _state_triggerRef_current.contains(e.target)) {
|
|
172
|
+
enteringTriggerRef.current = e.type === 'mouseenter' || e.type === 'mousemove';
|
|
168
173
|
}
|
|
169
174
|
// FIXME leaking Node timeout type
|
|
170
175
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -184,7 +189,7 @@ const useMenuOpenState = (state)=>{
|
|
|
184
189
|
].filter(Boolean),
|
|
185
190
|
callback: (event)=>setOpen(event, {
|
|
186
191
|
open: false,
|
|
187
|
-
type:
|
|
192
|
+
type: 'clickOutside',
|
|
188
193
|
event
|
|
189
194
|
})
|
|
190
195
|
});
|
|
@@ -195,7 +200,7 @@ const useMenuOpenState = (state)=>{
|
|
|
195
200
|
element: targetDocument,
|
|
196
201
|
callback: (event)=>setOpen(event, {
|
|
197
202
|
open: false,
|
|
198
|
-
type:
|
|
203
|
+
type: 'scrollOutside',
|
|
199
204
|
event
|
|
200
205
|
}),
|
|
201
206
|
refs: [
|
|
@@ -212,7 +217,7 @@ const useMenuOpenState = (state)=>{
|
|
|
212
217
|
if (!enteringTriggerRef.current) {
|
|
213
218
|
setOpen(event, {
|
|
214
219
|
open: false,
|
|
215
|
-
type:
|
|
220
|
+
type: 'menuMouseEnter',
|
|
216
221
|
event
|
|
217
222
|
});
|
|
218
223
|
}
|
|
@@ -233,7 +238,7 @@ const useMenuOpenState = (state)=>{
|
|
|
233
238
|
const { findFirstFocusable } = (0, _reactTabster.useFocusFinders)();
|
|
234
239
|
const focusFirst = _react.useCallback(()=>{
|
|
235
240
|
const firstFocusable = findFirstFocusable(state.menuPopoverRef.current);
|
|
236
|
-
firstFocusable
|
|
241
|
+
firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();
|
|
237
242
|
}, [
|
|
238
243
|
findFirstFocusable,
|
|
239
244
|
state.menuPopoverRef
|
|
@@ -243,13 +248,14 @@ const useMenuOpenState = (state)=>{
|
|
|
243
248
|
focusFirst();
|
|
244
249
|
} else {
|
|
245
250
|
if (shouldHandleCloseRef.current) {
|
|
246
|
-
// We know that React effects are sync so we focus the trigger here
|
|
251
|
+
var // We know that React effects are sync so we focus the trigger here
|
|
247
252
|
// after any event handler (event handlers will update state and re-render).
|
|
248
253
|
// Since the browser only performs the default behaviour for the Tab key once
|
|
249
254
|
// keyboard events have fully bubbled up the window, the browser will move
|
|
250
255
|
// focus to the next tabbable element before/after the trigger if needed.
|
|
251
256
|
// If the Tab key was not pressed, focus will remain on the trigger as expected.
|
|
252
|
-
|
|
257
|
+
_state_triggerRef_current;
|
|
258
|
+
(_state_triggerRef_current = state.triggerRef.current) === null || _state_triggerRef_current === void 0 ? void 0 : _state_triggerRef_current.focus();
|
|
253
259
|
}
|
|
254
260
|
}
|
|
255
261
|
shouldHandleCloseRef.current = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/Menu/useMenu.js"],"sourcesContent":["import * as React from \"react\";\nimport { usePositioningMouseTarget, usePositioning, resolvePositioningShorthand } from \"@fluentui/react-positioning\";\nimport { useControllableState, useId, useOnClickOutside, useEventCallback, useOnScrollOutside } from \"@fluentui/react-utilities\";\nimport { useFluent_unstable as useFluent } from \"@fluentui/react-shared-contexts\";\nimport { elementContains } from \"@fluentui/react-portal\";\nimport { useFocusFinders } from \"@fluentui/react-tabster\";\nimport { useMenuContext_unstable } from \"../../contexts/menuContext\";\nimport { MENU_ENTER_EVENT, useOnMenuMouseEnter } from \"../../utils/index\";\nimport { useIsSubmenu } from \"../../utils/useIsSubmenu\";\n// If it's not possible to position the submenu in smaller viewports, try\n// and fallback to this order of positions\nconst submenuFallbackPositions = [\"after\", \"after-bottom\", \"before-top\", \"before\", \"before-bottom\", \"above\"];\n/**\n * Create the state required to render Menu.\n *\n * The returned state can be modified with hooks such as useMenuStyles,\n * before being passed to renderMenu_unstable.\n *\n * @param props - props from this instance of Menu\n */\nexport const useMenu_unstable = props => {\n const isSubmenu = useIsSubmenu();\n const {\n hoverDelay = 500,\n inline = false,\n hasCheckmarks = false,\n hasIcons = false,\n closeOnScroll = false,\n openOnContext = false,\n persistOnItemClick = false,\n openOnHover = isSubmenu,\n defaultCheckedValues,\n mountNode = null\n } = props;\n const triggerId = useId(\"menu\");\n const [contextTarget, setContextTarget] = usePositioningMouseTarget();\n const positioningState = {\n position: isSubmenu ? \"after\" : \"below\",\n align: isSubmenu ? \"top\" : \"start\",\n target: props.openOnContext ? contextTarget : undefined,\n fallbackPositions: isSubmenu ? submenuFallbackPositions : undefined,\n ...resolvePositioningShorthand(props.positioning)\n };\n const children = React.Children.toArray(props.children);\n if (process.env.NODE_ENV !== \"production\") {\n if (children.length === 0) {\n // eslint-disable-next-line no-console\n console.warn(\"Menu must contain at least one child\");\n }\n if (children.length > 2) {\n // eslint-disable-next-line no-console\n console.warn(\"Menu must contain at most two children\");\n }\n }\n let menuTrigger = undefined;\n let menuPopover = undefined;\n if (children.length === 2) {\n menuTrigger = children[0];\n menuPopover = children[1];\n } else if (children.length === 1) {\n menuPopover = children[0];\n }\n const {\n targetRef: triggerRef,\n containerRef: menuPopoverRef\n } = usePositioning(positioningState);\n // TODO Better way to narrow types ?\n const [open, setOpen] = useMenuOpenState({\n hoverDelay,\n isSubmenu,\n setContextTarget,\n closeOnScroll,\n menuPopoverRef,\n triggerRef,\n open: props.open,\n defaultOpen: props.defaultOpen,\n onOpenChange: props.onOpenChange,\n openOnContext\n });\n const [checkedValues, onCheckedValueChange] = useMenuSelectableState({\n checkedValues: props.checkedValues,\n defaultCheckedValues,\n onCheckedValueChange: props.onCheckedValueChange\n });\n return {\n inline,\n hoverDelay,\n triggerId,\n isSubmenu,\n openOnHover,\n contextTarget,\n setContextTarget,\n hasCheckmarks,\n hasIcons,\n closeOnScroll,\n menuTrigger,\n menuPopover,\n mountNode,\n triggerRef,\n menuPopoverRef,\n components: {},\n openOnContext,\n open,\n setOpen,\n checkedValues,\n onCheckedValueChange,\n persistOnItemClick\n };\n};\n/**\n * Adds appropriate state values and handlers for selectable items\n * i.e checkboxes and radios\n */\nconst useMenuSelectableState = props => {\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues,\n defaultState: props.defaultCheckedValues,\n initialState: {}\n });\n const onCheckedValueChange = useEventCallback((e, {\n name,\n checkedItems\n }) => {\n props.onCheckedValueChange?.(e, {\n name,\n checkedItems\n });\n setCheckedValues(currentValue => ({\n ...currentValue,\n [name]: checkedItems\n }));\n });\n return [checkedValues, onCheckedValueChange];\n};\nconst useMenuOpenState = state => {\n const {\n targetDocument\n } = useFluent();\n const parentSetOpen = useMenuContext_unstable(context => context.setOpen);\n const onOpenChange = useEventCallback((e, data) => state.onOpenChange?.(e, data));\n const shouldHandleCloseRef = React.useRef(false);\n const setOpenTimeout = React.useRef(0);\n const enteringTriggerRef = React.useRef(false);\n const [open, setOpenState] = useControllableState({\n state: state.open,\n defaultState: state.defaultOpen,\n initialState: false\n });\n const trySetOpen = useEventCallback((e, data) => {\n const event = e instanceof CustomEvent && e.type === MENU_ENTER_EVENT ? e.detail.nativeEvent : e;\n onOpenChange?.(event, {\n ...data\n });\n if (data.open && e.type === \"contextmenu\") {\n state.setContextTarget(e);\n }\n if (!data.open) {\n state.setContextTarget(undefined);\n shouldHandleCloseRef.current = true;\n }\n if (data.bubble) {\n parentSetOpen(e, {\n ...data\n });\n }\n setOpenState(data.open);\n });\n const setOpen = useEventCallback((e, data) => {\n clearTimeout(setOpenTimeout.current);\n if (!(e instanceof Event) && e.persist) {\n // < React 17 still uses pooled synthetic events\n e.persist();\n }\n if (e.type === \"mouseleave\" || e.type === \"mouseenter\" || e.type === \"mousemove\" || e.type === MENU_ENTER_EVENT) {\n if (state.triggerRef.current?.contains(e.target)) {\n enteringTriggerRef.current = e.type === \"mouseenter\" || e.type === \"mousemove\";\n }\n // FIXME leaking Node timeout type\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n setOpenTimeout.current = setTimeout(() => trySetOpen(e, data), state.hoverDelay);\n } else {\n trySetOpen(e, data);\n }\n });\n useOnClickOutside({\n contains: elementContains,\n disabled: !open,\n element: targetDocument,\n refs: [state.menuPopoverRef, !state.openOnContext && state.triggerRef].filter(Boolean),\n callback: event => setOpen(event, {\n open: false,\n type: \"clickOutside\",\n event\n })\n });\n // only close on scroll for context, or when closeOnScroll is specified\n const closeOnScroll = state.openOnContext || state.closeOnScroll;\n useOnScrollOutside({\n contains: elementContains,\n element: targetDocument,\n callback: event => setOpen(event, {\n open: false,\n type: \"scrollOutside\",\n event\n }),\n refs: [state.menuPopoverRef, !state.openOnContext && state.triggerRef].filter(Boolean),\n disabled: !open || !closeOnScroll\n });\n useOnMenuMouseEnter({\n element: targetDocument,\n callback: event => {\n // When moving from a menu directly back to its trigger, this handler can close the menu\n // Explicitly check a flag to see if this situation happens\n if (!enteringTriggerRef.current) {\n setOpen(event, {\n open: false,\n type: \"menuMouseEnter\",\n event\n });\n }\n },\n disabled: !open,\n refs: [state.menuPopoverRef]\n });\n // Clear timeout on unmount\n // Setting state after a component unmounts can cause memory leaks\n React.useEffect(() => {\n return () => {\n clearTimeout(setOpenTimeout.current);\n };\n }, []);\n // Manage focus for open state\n const {\n findFirstFocusable\n } = useFocusFinders();\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(state.menuPopoverRef.current);\n firstFocusable?.focus();\n }, [findFirstFocusable, state.menuPopoverRef]);\n React.useEffect(() => {\n if (open) {\n focusFirst();\n } else {\n if (shouldHandleCloseRef.current) {\n // We know that React effects are sync so we focus the trigger here\n // after any event handler (event handlers will update state and re-render).\n // Since the browser only performs the default behaviour for the Tab key once\n // keyboard events have fully bubbled up the window, the browser will move\n // focus to the next tabbable element before/after the trigger if needed.\n // If the Tab key was not pressed, focus will remain on the trigger as expected.\n state.triggerRef.current?.focus();\n }\n }\n shouldHandleCloseRef.current = false;\n }, [state.triggerRef, state.isSubmenu, open, focusFirst]);\n return [open, setOpen];\n};\n//# sourceMappingURL=useMenu.js.map"],"names":["useMenu_unstable","submenuFallbackPositions","props","isSubmenu","useIsSubmenu","hoverDelay","inline","hasCheckmarks","hasIcons","closeOnScroll","openOnContext","persistOnItemClick","openOnHover","defaultCheckedValues","mountNode","triggerId","useId","contextTarget","setContextTarget","usePositioningMouseTarget","positioningState","position","align","target","undefined","fallbackPositions","resolvePositioningShorthand","positioning","children","React","Children","toArray","process","env","NODE_ENV","length","console","warn","menuTrigger","menuPopover","targetRef","triggerRef","containerRef","menuPopoverRef","usePositioning","open","setOpen","useMenuOpenState","defaultOpen","onOpenChange","checkedValues","onCheckedValueChange","useMenuSelectableState","components","setCheckedValues","useControllableState","state","defaultState","initialState","useEventCallback","e","name","checkedItems","currentValue","targetDocument","useFluent","parentSetOpen","useMenuContext_unstable","context","data","shouldHandleCloseRef","useRef","setOpenTimeout","enteringTriggerRef","setOpenState","trySetOpen","event","CustomEvent","type","MENU_ENTER_EVENT","detail","nativeEvent","current","bubble","clearTimeout","Event","persist","contains","setTimeout","useOnClickOutside","elementContains","disabled","element","refs","filter","Boolean","callback","useOnScrollOutside","useOnMenuMouseEnter","useEffect","findFirstFocusable","useFocusFinders","focusFirst","useCallback","firstFocusable","focus"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/Menu/useMenu.js"],"sourcesContent":["import * as React from 'react';\nimport { usePositioningMouseTarget, usePositioning, resolvePositioningShorthand } from '@fluentui/react-positioning';\nimport { useControllableState, useId, useOnClickOutside, useEventCallback, useOnScrollOutside } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { elementContains } from '@fluentui/react-portal';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MENU_ENTER_EVENT, useOnMenuMouseEnter } from '../../utils/index';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\n// If it's not possible to position the submenu in smaller viewports, try\n// and fallback to this order of positions\nconst submenuFallbackPositions = ['after', 'after-bottom', 'before-top', 'before', 'before-bottom', 'above'];\n/**\n * Create the state required to render Menu.\n *\n * The returned state can be modified with hooks such as useMenuStyles,\n * before being passed to renderMenu_unstable.\n *\n * @param props - props from this instance of Menu\n */\nexport const useMenu_unstable = props => {\n const isSubmenu = useIsSubmenu();\n const {\n hoverDelay = 500,\n inline = false,\n hasCheckmarks = false,\n hasIcons = false,\n closeOnScroll = false,\n openOnContext = false,\n persistOnItemClick = false,\n openOnHover = isSubmenu,\n defaultCheckedValues,\n mountNode = null\n } = props;\n const triggerId = useId('menu');\n const [contextTarget, setContextTarget] = usePositioningMouseTarget();\n const positioningState = {\n position: isSubmenu ? 'after' : 'below',\n align: isSubmenu ? 'top' : 'start',\n target: props.openOnContext ? contextTarget : undefined,\n fallbackPositions: isSubmenu ? submenuFallbackPositions : undefined,\n ...resolvePositioningShorthand(props.positioning)\n };\n const children = React.Children.toArray(props.children);\n if (process.env.NODE_ENV !== 'production') {\n if (children.length === 0) {\n // eslint-disable-next-line no-console\n console.warn('Menu must contain at least one child');\n }\n if (children.length > 2) {\n // eslint-disable-next-line no-console\n console.warn('Menu must contain at most two children');\n }\n }\n let menuTrigger = undefined;\n let menuPopover = undefined;\n if (children.length === 2) {\n menuTrigger = children[0];\n menuPopover = children[1];\n } else if (children.length === 1) {\n menuPopover = children[0];\n }\n const {\n targetRef: triggerRef,\n containerRef: menuPopoverRef\n } = usePositioning(positioningState);\n // TODO Better way to narrow types ?\n const [open, setOpen] = useMenuOpenState({\n hoverDelay,\n isSubmenu,\n setContextTarget,\n closeOnScroll,\n menuPopoverRef,\n triggerRef,\n open: props.open,\n defaultOpen: props.defaultOpen,\n onOpenChange: props.onOpenChange,\n openOnContext\n });\n const [checkedValues, onCheckedValueChange] = useMenuSelectableState({\n checkedValues: props.checkedValues,\n defaultCheckedValues,\n onCheckedValueChange: props.onCheckedValueChange\n });\n return {\n inline,\n hoverDelay,\n triggerId,\n isSubmenu,\n openOnHover,\n contextTarget,\n setContextTarget,\n hasCheckmarks,\n hasIcons,\n closeOnScroll,\n menuTrigger,\n menuPopover,\n mountNode,\n triggerRef,\n menuPopoverRef,\n components: {},\n openOnContext,\n open,\n setOpen,\n checkedValues,\n onCheckedValueChange,\n persistOnItemClick\n };\n};\n/**\n * Adds appropriate state values and handlers for selectable items\n * i.e checkboxes and radios\n */\nconst useMenuSelectableState = props => {\n const [checkedValues, setCheckedValues] = useControllableState({\n state: props.checkedValues,\n defaultState: props.defaultCheckedValues,\n initialState: {}\n });\n const onCheckedValueChange = useEventCallback((e, {\n name,\n checkedItems\n }) => {\n var _props_onCheckedValueChange;\n (_props_onCheckedValueChange = props.onCheckedValueChange) === null || _props_onCheckedValueChange === void 0 ? void 0 : _props_onCheckedValueChange.call(props, e, {\n name,\n checkedItems\n });\n setCheckedValues(currentValue => ({\n ...currentValue,\n [name]: checkedItems\n }));\n });\n return [checkedValues, onCheckedValueChange];\n};\nconst useMenuOpenState = state => {\n const {\n targetDocument\n } = useFluent();\n const parentSetOpen = useMenuContext_unstable(context => context.setOpen);\n const onOpenChange = useEventCallback((e, data) => {\n var _state_onOpenChange;\n return (_state_onOpenChange = state.onOpenChange) === null || _state_onOpenChange === void 0 ? void 0 : _state_onOpenChange.call(state, e, data);\n });\n const shouldHandleCloseRef = React.useRef(false);\n const setOpenTimeout = React.useRef(0);\n const enteringTriggerRef = React.useRef(false);\n const [open, setOpenState] = useControllableState({\n state: state.open,\n defaultState: state.defaultOpen,\n initialState: false\n });\n const trySetOpen = useEventCallback((e, data) => {\n const event = e instanceof CustomEvent && e.type === MENU_ENTER_EVENT ? e.detail.nativeEvent : e;\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(event, {\n ...data\n });\n if (data.open && e.type === 'contextmenu') {\n state.setContextTarget(e);\n }\n if (!data.open) {\n state.setContextTarget(undefined);\n shouldHandleCloseRef.current = true;\n }\n if (data.bubble) {\n parentSetOpen(e, {\n ...data\n });\n }\n setOpenState(data.open);\n });\n const setOpen = useEventCallback((e, data) => {\n clearTimeout(setOpenTimeout.current);\n if (!(e instanceof Event) && e.persist) {\n // < React 17 still uses pooled synthetic events\n e.persist();\n }\n if (e.type === 'mouseleave' || e.type === 'mouseenter' || e.type === 'mousemove' || e.type === MENU_ENTER_EVENT) {\n var _state_triggerRef_current;\n if ((_state_triggerRef_current = state.triggerRef.current) === null || _state_triggerRef_current === void 0 ? void 0 : _state_triggerRef_current.contains(e.target)) {\n enteringTriggerRef.current = e.type === 'mouseenter' || e.type === 'mousemove';\n }\n // FIXME leaking Node timeout type\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n setOpenTimeout.current = setTimeout(() => trySetOpen(e, data), state.hoverDelay);\n } else {\n trySetOpen(e, data);\n }\n });\n useOnClickOutside({\n contains: elementContains,\n disabled: !open,\n element: targetDocument,\n refs: [state.menuPopoverRef, !state.openOnContext && state.triggerRef].filter(Boolean),\n callback: event => setOpen(event, {\n open: false,\n type: 'clickOutside',\n event\n })\n });\n // only close on scroll for context, or when closeOnScroll is specified\n const closeOnScroll = state.openOnContext || state.closeOnScroll;\n useOnScrollOutside({\n contains: elementContains,\n element: targetDocument,\n callback: event => setOpen(event, {\n open: false,\n type: 'scrollOutside',\n event\n }),\n refs: [state.menuPopoverRef, !state.openOnContext && state.triggerRef].filter(Boolean),\n disabled: !open || !closeOnScroll\n });\n useOnMenuMouseEnter({\n element: targetDocument,\n callback: event => {\n // When moving from a menu directly back to its trigger, this handler can close the menu\n // Explicitly check a flag to see if this situation happens\n if (!enteringTriggerRef.current) {\n setOpen(event, {\n open: false,\n type: 'menuMouseEnter',\n event\n });\n }\n },\n disabled: !open,\n refs: [state.menuPopoverRef]\n });\n // Clear timeout on unmount\n // Setting state after a component unmounts can cause memory leaks\n React.useEffect(() => {\n return () => {\n clearTimeout(setOpenTimeout.current);\n };\n }, []);\n // Manage focus for open state\n const {\n findFirstFocusable\n } = useFocusFinders();\n const focusFirst = React.useCallback(() => {\n const firstFocusable = findFirstFocusable(state.menuPopoverRef.current);\n firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();\n }, [findFirstFocusable, state.menuPopoverRef]);\n React.useEffect(() => {\n if (open) {\n focusFirst();\n } else {\n if (shouldHandleCloseRef.current) {\n var\n // We know that React effects are sync so we focus the trigger here\n // after any event handler (event handlers will update state and re-render).\n // Since the browser only performs the default behaviour for the Tab key once\n // keyboard events have fully bubbled up the window, the browser will move\n // focus to the next tabbable element before/after the trigger if needed.\n // If the Tab key was not pressed, focus will remain on the trigger as expected.\n _state_triggerRef_current;\n (_state_triggerRef_current = state.triggerRef.current) === null || _state_triggerRef_current === void 0 ? void 0 : _state_triggerRef_current.focus();\n }\n }\n shouldHandleCloseRef.current = false;\n }, [state.triggerRef, state.isSubmenu, open, focusFirst]);\n return [open, setOpen];\n};\n//# sourceMappingURL=useMenu.js.map"],"names":["useMenu_unstable","submenuFallbackPositions","props","isSubmenu","useIsSubmenu","hoverDelay","inline","hasCheckmarks","hasIcons","closeOnScroll","openOnContext","persistOnItemClick","openOnHover","defaultCheckedValues","mountNode","triggerId","useId","contextTarget","setContextTarget","usePositioningMouseTarget","positioningState","position","align","target","undefined","fallbackPositions","resolvePositioningShorthand","positioning","children","React","Children","toArray","process","env","NODE_ENV","length","console","warn","menuTrigger","menuPopover","targetRef","triggerRef","containerRef","menuPopoverRef","usePositioning","open","setOpen","useMenuOpenState","defaultOpen","onOpenChange","checkedValues","onCheckedValueChange","useMenuSelectableState","components","setCheckedValues","useControllableState","state","defaultState","initialState","useEventCallback","e","name","checkedItems","_props_onCheckedValueChange","call","currentValue","targetDocument","useFluent","parentSetOpen","useMenuContext_unstable","context","data","_state_onOpenChange","shouldHandleCloseRef","useRef","setOpenTimeout","enteringTriggerRef","setOpenState","trySetOpen","event","CustomEvent","type","MENU_ENTER_EVENT","detail","nativeEvent","current","bubble","clearTimeout","Event","persist","_state_triggerRef_current","contains","setTimeout","useOnClickOutside","elementContains","disabled","element","refs","filter","Boolean","callback","useOnScrollOutside","useOnMenuMouseEnter","useEffect","findFirstFocusable","useFocusFinders","focusFirst","useCallback","firstFocusable","focus"],"mappings":"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"}
|
|
@@ -19,6 +19,6 @@ const MenuDivider = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
|
|
|
19
19
|
useCustomStyles(state);
|
|
20
20
|
return (0, _renderMenuDivider.renderMenuDivider_unstable)(state);
|
|
21
21
|
});
|
|
22
|
-
MenuDivider.displayName =
|
|
22
|
+
MenuDivider.displayName = 'MenuDivider'; //# sourceMappingURL=MenuDivider.js.map
|
|
23
23
|
|
|
24
24
|
//# sourceMappingURL=MenuDivider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuDivider/MenuDivider.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuDivider/MenuDivider.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuDivider_unstable } from './useMenuDivider';\nimport { useMenuDividerStyles_unstable } from './useMenuDividerStyles';\nimport { renderMenuDivider_unstable } from './renderMenuDivider';\nimport { useCustomStyleHooks_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Define a styled MenuDivider, using the `useMenuDivider_unstable` hook.\n */\nexport const MenuDivider = /*#__PURE__*/React.forwardRef((props, ref) => {\n const state = useMenuDivider_unstable(props, ref);\n useMenuDividerStyles_unstable(state);\n const {\n useMenuDividerStyles_unstable: useCustomStyles\n } = useCustomStyleHooks_unstable();\n useCustomStyles(state);\n return renderMenuDivider_unstable(state);\n});\nMenuDivider.displayName = 'MenuDivider';\n//# sourceMappingURL=MenuDivider.js.map"],"names":["MenuDivider","React","forwardRef","props","ref","state","useMenuDivider_unstable","useMenuDividerStyles_unstable","useCustomStyles","useCustomStyleHooks_unstable","renderMenuDivider_unstable","displayName"],"mappings":";;;;+BAQaA;;aAAAA;;;6DARU;gCACiB;sCACM;mCACH;qCACE;AAItC,MAAMA,cAAc,WAAW,GAAEC,OAAMC,UAAU,CAAC,CAACC,OAAOC,MAAQ;IACvE,MAAMC,QAAQC,IAAAA,uCAAuB,EAACH,OAAOC;IAC7CG,IAAAA,mDAA6B,EAACF;IAC9B,MAAM,EACJE,+BAA+BC,gBAAe,EAC/C,GAAGC,IAAAA,iDAA4B;IAChCD,gBAAgBH;IAChB,OAAOK,IAAAA,6CAA0B,EAACL;AACpC;AACAL,YAAYW,WAAW,GAAG,eAC1B,uCAAuC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuDivider/index.js"],"sourcesContent":["export * from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuDivider/index.js"],"sourcesContent":["export * from './MenuDivider.types';\nexport * from './MenuDivider';\nexport * from './renderMenuDivider';\nexport * from './useMenuDivider';\nexport * from './useMenuDividerStyles';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuDivider/renderMenuDivider.js"],"sourcesContent":["import * as React from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuDivider/renderMenuDivider.js"],"sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\n/**\n * Redefine the render function to add slots. Reuse the menudivider structure but add\n * slots to children.\n */\nexport const renderMenuDivider_unstable = state => {\n const {\n slots,\n slotProps\n } = getSlots(state);\n return /*#__PURE__*/React.createElement(slots.root, slotProps.root);\n};\n//# sourceMappingURL=renderMenuDivider.js.map"],"names":["renderMenuDivider_unstable","state","slots","slotProps","getSlots","React","createElement","root"],"mappings":";;;;+BAMaA;;aAAAA;;;6DANU;gCACE;AAKlB,MAAMA,6BAA6BC,CAAAA,QAAS;IACjD,MAAM,EACJC,MAAK,EACLC,UAAS,EACV,GAAGC,IAAAA,wBAAQ,EAACH;IACb,OAAO,WAAW,GAAEI,OAAMC,aAAa,CAACJ,MAAMK,IAAI,EAAEJ,UAAUI,IAAI;AACpE,GACA,6CAA6C"}
|
|
@@ -12,11 +12,11 @@ const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
|
12
12
|
const useMenuDivider_unstable = (props, ref)=>{
|
|
13
13
|
return {
|
|
14
14
|
components: {
|
|
15
|
-
root:
|
|
15
|
+
root: 'div'
|
|
16
16
|
},
|
|
17
|
-
root: (0, _reactUtilities.getNativeElementProps)(
|
|
18
|
-
role:
|
|
19
|
-
|
|
17
|
+
root: (0, _reactUtilities.getNativeElementProps)('div', {
|
|
18
|
+
role: 'presentation',
|
|
19
|
+
'aria-hidden': true,
|
|
20
20
|
...props,
|
|
21
21
|
ref
|
|
22
22
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/MenuDivider/useMenuDivider.js"],"sourcesContent":["import { getNativeElementProps } from
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/MenuDivider/useMenuDivider.js"],"sourcesContent":["import { getNativeElementProps } from '@fluentui/react-utilities';\nimport * as React from 'react';\n/**\n * Given user props, returns state and render function for a MenuDivider.\n */\nexport const useMenuDivider_unstable = (props, ref) => {\n return {\n components: {\n root: 'div'\n },\n root: getNativeElementProps('div', {\n role: 'presentation',\n 'aria-hidden': true,\n ...props,\n ref\n })\n };\n};\n//# sourceMappingURL=useMenuDivider.js.map"],"names":["useMenuDivider_unstable","props","ref","components","root","getNativeElementProps","role"],"mappings":";;;;+BAKaA;;aAAAA;;;gCALyB;6DACf;AAIhB,MAAMA,0BAA0B,CAACC,OAAOC,MAAQ;IACrD,OAAO;QACLC,YAAY;YACVC,MAAM;QACR;QACAA,MAAMC,IAAAA,qCAAqB,EAAC,OAAO;YACjCC,MAAM;YACN,eAAe,IAAI;YACnB,GAAGL,KAAK;YACRC;QACF;IACF;AACF,GACA,0CAA0C"}
|