@fluentui/react-menu 9.12.18 → 9.12.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. package/CHANGELOG.json +163 -1
  2. package/CHANGELOG.md +42 -2
  3. package/lib/components/Menu/useMenu.js +6 -8
  4. package/lib/components/Menu/useMenu.js.map +1 -1
  5. package/lib/components/MenuItem/useCharacterSearch.js +3 -4
  6. package/lib/components/MenuItem/useCharacterSearch.js.map +1 -1
  7. package/lib/components/MenuItem/useMenuItem.js +6 -6
  8. package/lib/components/MenuItem/useMenuItem.js.map +1 -1
  9. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +3 -3
  10. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  11. package/lib/components/MenuItemRadio/useMenuItemRadio.js +3 -3
  12. package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  13. package/lib/components/MenuList/useMenuList.js +3 -5
  14. package/lib/components/MenuList/useMenuList.js.map +1 -1
  15. package/lib/components/MenuPopover/useMenuPopover.js +2 -4
  16. package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
  17. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +4 -6
  18. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  19. package/lib/components/MenuTrigger/useMenuTrigger.js +11 -13
  20. package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  21. package/lib/contexts/menuGroupContext.js +4 -2
  22. package/lib/contexts/menuGroupContext.js.map +1 -1
  23. package/lib/contexts/menuTriggerContext.js +4 -2
  24. package/lib/contexts/menuTriggerContext.js.map +1 -1
  25. package/lib-commonjs/components/Menu/useMenu.js +6 -8
  26. package/lib-commonjs/components/Menu/useMenu.js.map +1 -1
  27. package/lib-commonjs/components/MenuItem/useCharacterSearch.js +3 -4
  28. package/lib-commonjs/components/MenuItem/useCharacterSearch.js.map +1 -1
  29. package/lib-commonjs/components/MenuItem/useMenuItem.js +6 -6
  30. package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
  31. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +3 -3
  32. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  33. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +3 -3
  34. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  35. package/lib-commonjs/components/MenuList/useMenuList.js +3 -5
  36. package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -1
  37. package/lib-commonjs/components/MenuPopover/useMenuPopover.js +2 -4
  38. package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -1
  39. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +4 -6
  40. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  41. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +11 -13
  42. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  43. package/lib-commonjs/contexts/menuGroupContext.js +4 -2
  44. package/lib-commonjs/contexts/menuGroupContext.js.map +1 -1
  45. package/lib-commonjs/contexts/menuTriggerContext.js +4 -2
  46. package/lib-commonjs/contexts/menuTriggerContext.js.map +1 -1
  47. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuItem.js"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback, useMergedRefs, getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useCharacterSearch } from './useCharacterSearch';\nimport { useMenuTriggerContext_unstable } from '../../contexts/menuTriggerContext';\nimport { ChevronRightFilled, ChevronRightRegular, ChevronLeftFilled, ChevronLeftRegular, bundleIcon } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\nimport { Enter, Space } from '@fluentui/keyboard-keys';\nconst ChevronRightIcon = bundleIcon(ChevronRightFilled, ChevronRightRegular);\nconst ChevronLeftIcon = bundleIcon(ChevronLeftFilled, ChevronLeftRegular);\n/**\n * Returns the props and state required to render the component\n */ export const useMenuItem_unstable = (props, ref)=>{\n const isSubmenuTrigger = useMenuTriggerContext_unstable();\n const persistOnClickContext = useMenuContext_unstable((context)=>context.persistOnItemClick);\n const { as = 'div', disabled = false, hasSubmenu = isSubmenuTrigger, persistOnClick = persistOnClickContext } = props;\n const hasIcons = useMenuListContext_unstable((context)=>context.hasIcons);\n const hasCheckmarks = useMenuListContext_unstable((context)=>context.hasCheckmarks);\n const setOpen = useMenuContext_unstable((context)=>context.setOpen);\n const { dir } = useFluent();\n const innerRef = React.useRef(null);\n const dismissedWithKeyboardRef = React.useRef(false);\n const state = {\n hasSubmenu,\n disabled,\n persistOnClick,\n components: {\n root: 'div',\n icon: 'span',\n checkmark: 'span',\n submenuIndicator: 'span',\n content: 'span',\n secondaryContent: 'span'\n },\n root: slot.always(getNativeElementProps(as, useARIAButtonProps(as, {\n role: 'menuitem',\n ...props,\n disabled: false,\n disabledFocusable: disabled,\n ref: useMergedRefs(ref, innerRef),\n onKeyDown: useEventCallback((event)=>{\n var _props_onKeyDown, _props;\n (_props_onKeyDown = (_props = props).onKeyDown) === null || _props_onKeyDown === void 0 ? void 0 : _props_onKeyDown.call(_props, event);\n if (!event.isDefaultPrevented() && (event.key === Space || event.key === Enter)) {\n dismissedWithKeyboardRef.current = true;\n }\n }),\n onMouseEnter: useEventCallback((event)=>{\n var _innerRef_current, _props_onMouseEnter, _props;\n (_innerRef_current = innerRef.current) === null || _innerRef_current === void 0 ? void 0 : _innerRef_current.focus();\n (_props_onMouseEnter = (_props = props).onMouseEnter) === null || _props_onMouseEnter === void 0 ? void 0 : _props_onMouseEnter.call(_props, event);\n }),\n onClick: useEventCallback((event)=>{\n var _props_onClick, _props;\n if (!hasSubmenu && !persistOnClick) {\n setOpen(event, {\n open: false,\n keyboard: dismissedWithKeyboardRef.current,\n bubble: true,\n type: 'menuItemClick',\n event\n });\n dismissedWithKeyboardRef.current = false;\n }\n (_props_onClick = (_props = props).onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(_props, event);\n })\n })), {\n elementType: 'div'\n }),\n icon: slot.optional(props.icon, {\n renderByDefault: hasIcons,\n elementType: 'span'\n }),\n checkmark: slot.optional(props.checkmark, {\n renderByDefault: hasCheckmarks,\n elementType: 'span'\n }),\n submenuIndicator: slot.optional(props.submenuIndicator, {\n renderByDefault: hasSubmenu,\n defaultProps: {\n children: dir === 'ltr' ? /*#__PURE__*/ React.createElement(ChevronRightIcon, null) : /*#__PURE__*/ React.createElement(ChevronLeftIcon, null)\n },\n elementType: 'span'\n }),\n content: slot.optional(props.content, {\n renderByDefault: !!props.children,\n defaultProps: {\n children: props.children\n },\n elementType: 'span'\n }),\n secondaryContent: slot.optional(props.secondaryContent, {\n elementType: 'span'\n })\n };\n useCharacterSearch(state, innerRef);\n return state;\n};\n"],"names":["useMenuItem_unstable","ChevronRightIcon","bundleIcon","ChevronRightFilled","ChevronRightRegular","ChevronLeftIcon","ChevronLeftFilled","ChevronLeftRegular","props","ref","isSubmenuTrigger","useMenuTriggerContext_unstable","persistOnClickContext","useMenuContext_unstable","context","persistOnItemClick","as","disabled","hasSubmenu","persistOnClick","hasIcons","useMenuListContext_unstable","hasCheckmarks","setOpen","dir","useFluent","innerRef","React","useRef","dismissedWithKeyboardRef","state","components","root","icon","checkmark","submenuIndicator","content","secondaryContent","slot","always","getNativeElementProps","useARIAButtonProps","role","disabledFocusable","useMergedRefs","onKeyDown","useEventCallback","event","_props_onKeyDown","_props","call","isDefaultPrevented","key","Space","Enter","current","onMouseEnter","_innerRef_current","_props_onMouseEnter","focus","onClick","_props_onClick","open","keyboard","bubble","type","elementType","optional","renderByDefault","defaultProps","children","createElement","useCharacterSearch"],"mappings":"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"}
1
+ {"version":3,"sources":["useMenuItem.js"],"sourcesContent":["import * as React from 'react';\nimport { useEventCallback, useMergedRefs, getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useCharacterSearch } from './useCharacterSearch';\nimport { useMenuTriggerContext_unstable } from '../../contexts/menuTriggerContext';\nimport { ChevronRightFilled, ChevronRightRegular, ChevronLeftFilled, ChevronLeftRegular, bundleIcon } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\nimport { Enter, Space } from '@fluentui/keyboard-keys';\nconst ChevronRightIcon = bundleIcon(ChevronRightFilled, ChevronRightRegular);\nconst ChevronLeftIcon = bundleIcon(ChevronLeftFilled, ChevronLeftRegular);\n/**\n * Returns the props and state required to render the component\n */ export const useMenuItem_unstable = (props, ref)=>{\n const isSubmenuTrigger = useMenuTriggerContext_unstable();\n const persistOnClickContext = useMenuContext_unstable((context)=>context.persistOnItemClick);\n const { as = 'div', disabled = false, hasSubmenu = isSubmenuTrigger, persistOnClick = persistOnClickContext } = props;\n const hasIcons = useMenuListContext_unstable((context)=>context.hasIcons);\n const hasCheckmarks = useMenuListContext_unstable((context)=>context.hasCheckmarks);\n const setOpen = useMenuContext_unstable((context)=>context.setOpen);\n const { dir } = useFluent();\n const innerRef = React.useRef(null);\n const dismissedWithKeyboardRef = React.useRef(false);\n const state = {\n hasSubmenu,\n disabled,\n persistOnClick,\n components: {\n root: 'div',\n icon: 'span',\n checkmark: 'span',\n submenuIndicator: 'span',\n content: 'span',\n secondaryContent: 'span'\n },\n root: slot.always(getNativeElementProps(as, useARIAButtonProps(as, {\n role: 'menuitem',\n ...props,\n disabled: false,\n disabledFocusable: disabled,\n ref: useMergedRefs(ref, innerRef),\n onKeyDown: useEventCallback((event)=>{\n var _props_onKeyDown;\n (_props_onKeyDown = props.onKeyDown) === null || _props_onKeyDown === void 0 ? void 0 : _props_onKeyDown.call(props, event);\n if (!event.isDefaultPrevented() && (event.key === Space || event.key === Enter)) {\n dismissedWithKeyboardRef.current = true;\n }\n }),\n onMouseEnter: useEventCallback((event)=>{\n var _innerRef_current, _props_onMouseEnter;\n (_innerRef_current = innerRef.current) === null || _innerRef_current === void 0 ? void 0 : _innerRef_current.focus();\n (_props_onMouseEnter = props.onMouseEnter) === null || _props_onMouseEnter === void 0 ? void 0 : _props_onMouseEnter.call(props, event);\n }),\n onClick: useEventCallback((event)=>{\n var _props_onClick;\n if (!hasSubmenu && !persistOnClick) {\n setOpen(event, {\n open: false,\n keyboard: dismissedWithKeyboardRef.current,\n bubble: true,\n type: 'menuItemClick',\n event\n });\n dismissedWithKeyboardRef.current = false;\n }\n (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, event);\n })\n })), {\n elementType: 'div'\n }),\n icon: slot.optional(props.icon, {\n renderByDefault: hasIcons,\n elementType: 'span'\n }),\n checkmark: slot.optional(props.checkmark, {\n renderByDefault: hasCheckmarks,\n elementType: 'span'\n }),\n submenuIndicator: slot.optional(props.submenuIndicator, {\n renderByDefault: hasSubmenu,\n defaultProps: {\n children: dir === 'ltr' ? /*#__PURE__*/ React.createElement(ChevronRightIcon, null) : /*#__PURE__*/ React.createElement(ChevronLeftIcon, null)\n },\n elementType: 'span'\n }),\n content: slot.optional(props.content, {\n renderByDefault: !!props.children,\n defaultProps: {\n children: props.children\n },\n elementType: 'span'\n }),\n secondaryContent: slot.optional(props.secondaryContent, {\n elementType: 'span'\n })\n };\n useCharacterSearch(state, innerRef);\n return state;\n};\n"],"names":["useMenuItem_unstable","ChevronRightIcon","bundleIcon","ChevronRightFilled","ChevronRightRegular","ChevronLeftIcon","ChevronLeftFilled","ChevronLeftRegular","props","ref","isSubmenuTrigger","useMenuTriggerContext_unstable","persistOnClickContext","useMenuContext_unstable","context","persistOnItemClick","as","disabled","hasSubmenu","persistOnClick","hasIcons","useMenuListContext_unstable","hasCheckmarks","setOpen","dir","useFluent","innerRef","React","useRef","dismissedWithKeyboardRef","state","components","root","icon","checkmark","submenuIndicator","content","secondaryContent","slot","always","getNativeElementProps","useARIAButtonProps","role","disabledFocusable","useMergedRefs","onKeyDown","useEventCallback","event","_props_onKeyDown","call","isDefaultPrevented","key","Space","Enter","current","onMouseEnter","_innerRef_current","_props_onMouseEnter","focus","onClick","_props_onClick","open","keyboard","bubble","type","elementType","optional","renderByDefault","defaultProps","children","createElement","useCharacterSearch"],"mappings":"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"}
@@ -36,9 +36,9 @@ const useMenuItemCheckbox_unstable = (props, ref)=>{
36
36
  elementType: 'span'
37
37
  }),
38
38
  onClick: (e)=>{
39
- var _toggleCheckbox, _props_onClick, _props;
40
- (_toggleCheckbox = toggleCheckbox) === null || _toggleCheckbox === void 0 ? void 0 : _toggleCheckbox(e, name, value, checked);
41
- (_props_onClick = (_props = props).onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(_props, e);
39
+ var _props_onClick;
40
+ toggleCheckbox === null || toggleCheckbox === void 0 ? void 0 : toggleCheckbox(e, name, value, checked);
41
+ (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, e);
42
42
  }
43
43
  }, ref),
44
44
  name,
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuItemCheckbox.js"],"sourcesContent":["import * as React from 'react';\nimport { slot } from '@fluentui/react-utilities';\nimport { Checkmark16Filled } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuItem_unstable } from '../MenuItem/useMenuItem';\n/** Returns the props and state required to render the component */ export const useMenuItemCheckbox_unstable = (props, ref)=>{\n const toggleCheckbox = useMenuListContext_unstable((context)=>context.toggleCheckbox);\n const { name, value } = props;\n const checked = useMenuListContext_unstable((context)=>{\n var _context_checkedValues;\n const checkedItems = ((_context_checkedValues = context.checkedValues) === null || _context_checkedValues === void 0 ? void 0 : _context_checkedValues[name]) || [];\n return checkedItems.indexOf(value) !== -1;\n });\n const state = {\n ...useMenuItem_unstable({\n role: 'menuitemcheckbox',\n persistOnClick: true,\n ...props,\n 'aria-checked': checked,\n checkmark: slot.optional(props.checkmark, {\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(Checkmark16Filled, null)\n },\n renderByDefault: true,\n elementType: 'span'\n }),\n onClick: (e)=>{\n var _toggleCheckbox, _props_onClick, _props;\n (_toggleCheckbox = toggleCheckbox) === null || _toggleCheckbox === void 0 ? void 0 : _toggleCheckbox(e, name, value, checked);\n (_props_onClick = (_props = props).onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(_props, e);\n }\n }, ref),\n name,\n value,\n checked\n };\n return state;\n};\n"],"names":["useMenuItemCheckbox_unstable","props","ref","toggleCheckbox","useMenuListContext_unstable","context","name","value","checked","_context_checkedValues","checkedItems","checkedValues","indexOf","state","useMenuItem_unstable","role","persistOnClick","checkmark","slot","optional","defaultProps","children","React","createElement","Checkmark16Filled","renderByDefault","elementType","onClick","e","_toggleCheckbox","_props_onClick","_props","call"],"mappings":";;;;+BAKiFA;;;eAAAA;;;;iEAL1D;gCACF;4BACa;iCACU;6BACP;AACsC,MAAMA,+BAA+B,CAACC,OAAOC;IACpH,MAAMC,iBAAiBC,IAAAA,4CAA2B,EAAC,CAACC,UAAUA,QAAQF,cAAc;IACpF,MAAM,EAAEG,IAAI,EAAEC,KAAK,EAAE,GAAGN;IACxB,MAAMO,UAAUJ,IAAAA,4CAA2B,EAAC,CAACC;QACzC,IAAII;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,yBAAyBJ,QAAQM,aAAa,AAAD,MAAO,QAAQF,2BAA2B,KAAK,IAAI,KAAK,IAAIA,sBAAsB,CAACH,KAAK,AAAD,KAAM,EAAE;QACnK,OAAOI,aAAaE,OAAO,CAACL,WAAW,CAAC;IAC5C;IACA,MAAMM,QAAQ;QACV,GAAGC,IAAAA,iCAAoB,EAAC;YACpBC,MAAM;YACNC,gBAAgB;YAChB,GAAGf,KAAK;YACR,gBAAgBO;YAChBS,WAAWC,oBAAI,CAACC,QAAQ,CAAClB,MAAMgB,SAAS,EAAE;gBACtCG,cAAc;oBACVC,UAAU,WAAW,GAAGC,OAAMC,aAAa,CAACC,6BAAiB,EAAE;gBACnE;gBACAC,iBAAiB;gBACjBC,aAAa;YACjB;YACAC,SAAS,CAACC;gBACN,IAAIC,iBAAiBC,gBAAgBC;gBACpCF,CAAAA,kBAAkB1B,cAAa,MAAO,QAAQ0B,oBAAoB,KAAK,IAAI,KAAK,IAAIA,gBAAgBD,GAAGtB,MAAMC,OAAOC;gBACpHsB,CAAAA,iBAAiB,AAACC,CAAAA,SAAS9B,KAAI,EAAG0B,OAAO,AAAD,MAAO,QAAQG,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeE,IAAI,CAACD,QAAQH;YAC7H;QACJ,GAAG1B,IAAI;QACPI;QACAC;QACAC;IACJ;IACA,OAAOK;AACX"}
1
+ {"version":3,"sources":["useMenuItemCheckbox.js"],"sourcesContent":["import * as React from 'react';\nimport { slot } from '@fluentui/react-utilities';\nimport { Checkmark16Filled } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuItem_unstable } from '../MenuItem/useMenuItem';\n/** Returns the props and state required to render the component */ export const useMenuItemCheckbox_unstable = (props, ref)=>{\n const toggleCheckbox = useMenuListContext_unstable((context)=>context.toggleCheckbox);\n const { name, value } = props;\n const checked = useMenuListContext_unstable((context)=>{\n var _context_checkedValues;\n const checkedItems = ((_context_checkedValues = context.checkedValues) === null || _context_checkedValues === void 0 ? void 0 : _context_checkedValues[name]) || [];\n return checkedItems.indexOf(value) !== -1;\n });\n const state = {\n ...useMenuItem_unstable({\n role: 'menuitemcheckbox',\n persistOnClick: true,\n ...props,\n 'aria-checked': checked,\n checkmark: slot.optional(props.checkmark, {\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(Checkmark16Filled, null)\n },\n renderByDefault: true,\n elementType: 'span'\n }),\n onClick: (e)=>{\n var _props_onClick;\n toggleCheckbox === null || toggleCheckbox === void 0 ? void 0 : toggleCheckbox(e, name, value, checked);\n (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, e);\n }\n }, ref),\n name,\n value,\n checked\n };\n return state;\n};\n"],"names":["useMenuItemCheckbox_unstable","props","ref","toggleCheckbox","useMenuListContext_unstable","context","name","value","checked","_context_checkedValues","checkedItems","checkedValues","indexOf","state","useMenuItem_unstable","role","persistOnClick","checkmark","slot","optional","defaultProps","children","React","createElement","Checkmark16Filled","renderByDefault","elementType","onClick","e","_props_onClick","call"],"mappings":";;;;+BAKiFA;;;eAAAA;;;;iEAL1D;gCACF;4BACa;iCACU;6BACP;AACsC,MAAMA,+BAA+B,CAACC,OAAOC;IACpH,MAAMC,iBAAiBC,IAAAA,4CAA2B,EAAC,CAACC,UAAUA,QAAQF,cAAc;IACpF,MAAM,EAAEG,IAAI,EAAEC,KAAK,EAAE,GAAGN;IACxB,MAAMO,UAAUJ,IAAAA,4CAA2B,EAAC,CAACC;QACzC,IAAII;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,yBAAyBJ,QAAQM,aAAa,AAAD,MAAO,QAAQF,2BAA2B,KAAK,IAAI,KAAK,IAAIA,sBAAsB,CAACH,KAAK,AAAD,KAAM,EAAE;QACnK,OAAOI,aAAaE,OAAO,CAACL,WAAW,CAAC;IAC5C;IACA,MAAMM,QAAQ;QACV,GAAGC,IAAAA,iCAAoB,EAAC;YACpBC,MAAM;YACNC,gBAAgB;YAChB,GAAGf,KAAK;YACR,gBAAgBO;YAChBS,WAAWC,oBAAI,CAACC,QAAQ,CAAClB,MAAMgB,SAAS,EAAE;gBACtCG,cAAc;oBACVC,UAAU,WAAW,GAAGC,OAAMC,aAAa,CAACC,6BAAiB,EAAE;gBACnE;gBACAC,iBAAiB;gBACjBC,aAAa;YACjB;YACAC,SAAS,CAACC;gBACN,IAAIC;gBACJ1B,mBAAmB,QAAQA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeyB,GAAGtB,MAAMC,OAAOC;gBAC9FqB,CAAAA,iBAAiB5B,MAAM0B,OAAO,AAAD,MAAO,QAAQE,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeC,IAAI,CAAC7B,OAAO2B;YACjH;QACJ,GAAG1B,IAAI;QACPI;QACAC;QACAC;IACJ;IACA,OAAOK;AACX"}
@@ -35,9 +35,9 @@ const useMenuItemRadio_unstable = (props, ref)=>{
35
35
  elementType: 'span'
36
36
  }),
37
37
  onClick: (e)=>{
38
- var _selectRadio, _props_onClick, _props;
39
- (_selectRadio = selectRadio) === null || _selectRadio === void 0 ? void 0 : _selectRadio(e, name, value, checked);
40
- (_props_onClick = (_props = props).onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(_props, e);
38
+ var _props_onClick;
39
+ selectRadio === null || selectRadio === void 0 ? void 0 : selectRadio(e, name, value, checked);
40
+ (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, e);
41
41
  }
42
42
  }, ref),
43
43
  checked,
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuItemRadio.js"],"sourcesContent":["import * as React from 'react';\nimport { slot } from '@fluentui/react-utilities';\nimport { Checkmark16Filled } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuItem_unstable } from '../MenuItem/useMenuItem';\n/**\n * Given user props, returns state and render function for a MenuItemRadio.\n */ export const useMenuItemRadio_unstable = (props, ref)=>{\n const { name, value } = props;\n const checked = useMenuListContext_unstable((context)=>{\n var _context_checkedValues;\n const checkedItems = ((_context_checkedValues = context.checkedValues) === null || _context_checkedValues === void 0 ? void 0 : _context_checkedValues[name]) || [];\n return checkedItems.indexOf(value) !== -1;\n });\n const selectRadio = useMenuListContext_unstable((context)=>context.selectRadio);\n return {\n ...useMenuItem_unstable({\n ...props,\n role: 'menuitemradio',\n 'aria-checked': checked,\n checkmark: slot.optional(props.checkmark, {\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(Checkmark16Filled, null)\n },\n renderByDefault: true,\n elementType: 'span'\n }),\n onClick: (e)=>{\n var _selectRadio, _props_onClick, _props;\n (_selectRadio = selectRadio) === null || _selectRadio === void 0 ? void 0 : _selectRadio(e, name, value, checked);\n (_props_onClick = (_props = props).onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(_props, e);\n }\n }, ref),\n checked,\n name,\n value\n };\n};\n"],"names":["useMenuItemRadio_unstable","props","ref","name","value","checked","useMenuListContext_unstable","context","_context_checkedValues","checkedItems","checkedValues","indexOf","selectRadio","useMenuItem_unstable","role","checkmark","slot","optional","defaultProps","children","React","createElement","Checkmark16Filled","renderByDefault","elementType","onClick","e","_selectRadio","_props_onClick","_props","call"],"mappings":";;;;+BAOiBA;;;eAAAA;;;;iEAPM;gCACF;4BACa;iCACU;6BACP;AAG1B,MAAMA,4BAA4B,CAACC,OAAOC;IACjD,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGH;IACxB,MAAMI,UAAUC,IAAAA,4CAA2B,EAAC,CAACC;QACzC,IAAIC;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,yBAAyBD,QAAQG,aAAa,AAAD,MAAO,QAAQF,2BAA2B,KAAK,IAAI,KAAK,IAAIA,sBAAsB,CAACL,KAAK,AAAD,KAAM,EAAE;QACnK,OAAOM,aAAaE,OAAO,CAACP,WAAW,CAAC;IAC5C;IACA,MAAMQ,cAAcN,IAAAA,4CAA2B,EAAC,CAACC,UAAUA,QAAQK,WAAW;IAC9E,OAAO;QACH,GAAGC,IAAAA,iCAAoB,EAAC;YACpB,GAAGZ,KAAK;YACRa,MAAM;YACN,gBAAgBT;YAChBU,WAAWC,oBAAI,CAACC,QAAQ,CAAChB,MAAMc,SAAS,EAAE;gBACtCG,cAAc;oBACVC,UAAU,WAAW,GAAGC,OAAMC,aAAa,CAACC,6BAAiB,EAAE;gBACnE;gBACAC,iBAAiB;gBACjBC,aAAa;YACjB;YACAC,SAAS,CAACC;gBACN,IAAIC,cAAcC,gBAAgBC;gBACjCF,CAAAA,eAAef,WAAU,MAAO,QAAQe,iBAAiB,KAAK,IAAI,KAAK,IAAIA,aAAaD,GAAGvB,MAAMC,OAAOC;gBACxGuB,CAAAA,iBAAiB,AAACC,CAAAA,SAAS5B,KAAI,EAAGwB,OAAO,AAAD,MAAO,QAAQG,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeE,IAAI,CAACD,QAAQH;YAC7H;QACJ,GAAGxB,IAAI;QACPG;QACAF;QACAC;IACJ;AACJ"}
1
+ {"version":3,"sources":["useMenuItemRadio.js"],"sourcesContent":["import * as React from 'react';\nimport { slot } from '@fluentui/react-utilities';\nimport { Checkmark16Filled } from '@fluentui/react-icons';\nimport { useMenuListContext_unstable } from '../../contexts/menuListContext';\nimport { useMenuItem_unstable } from '../MenuItem/useMenuItem';\n/**\n * Given user props, returns state and render function for a MenuItemRadio.\n */ export const useMenuItemRadio_unstable = (props, ref)=>{\n const { name, value } = props;\n const checked = useMenuListContext_unstable((context)=>{\n var _context_checkedValues;\n const checkedItems = ((_context_checkedValues = context.checkedValues) === null || _context_checkedValues === void 0 ? void 0 : _context_checkedValues[name]) || [];\n return checkedItems.indexOf(value) !== -1;\n });\n const selectRadio = useMenuListContext_unstable((context)=>context.selectRadio);\n return {\n ...useMenuItem_unstable({\n ...props,\n role: 'menuitemradio',\n 'aria-checked': checked,\n checkmark: slot.optional(props.checkmark, {\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(Checkmark16Filled, null)\n },\n renderByDefault: true,\n elementType: 'span'\n }),\n onClick: (e)=>{\n var _props_onClick;\n selectRadio === null || selectRadio === void 0 ? void 0 : selectRadio(e, name, value, checked);\n (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, e);\n }\n }, ref),\n checked,\n name,\n value\n };\n};\n"],"names":["useMenuItemRadio_unstable","props","ref","name","value","checked","useMenuListContext_unstable","context","_context_checkedValues","checkedItems","checkedValues","indexOf","selectRadio","useMenuItem_unstable","role","checkmark","slot","optional","defaultProps","children","React","createElement","Checkmark16Filled","renderByDefault","elementType","onClick","e","_props_onClick","call"],"mappings":";;;;+BAOiBA;;;eAAAA;;;;iEAPM;gCACF;4BACa;iCACU;6BACP;AAG1B,MAAMA,4BAA4B,CAACC,OAAOC;IACjD,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGH;IACxB,MAAMI,UAAUC,IAAAA,4CAA2B,EAAC,CAACC;QACzC,IAAIC;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,yBAAyBD,QAAQG,aAAa,AAAD,MAAO,QAAQF,2BAA2B,KAAK,IAAI,KAAK,IAAIA,sBAAsB,CAACL,KAAK,AAAD,KAAM,EAAE;QACnK,OAAOM,aAAaE,OAAO,CAACP,WAAW,CAAC;IAC5C;IACA,MAAMQ,cAAcN,IAAAA,4CAA2B,EAAC,CAACC,UAAUA,QAAQK,WAAW;IAC9E,OAAO;QACH,GAAGC,IAAAA,iCAAoB,EAAC;YACpB,GAAGZ,KAAK;YACRa,MAAM;YACN,gBAAgBT;YAChBU,WAAWC,oBAAI,CAACC,QAAQ,CAAChB,MAAMc,SAAS,EAAE;gBACtCG,cAAc;oBACVC,UAAU,WAAW,GAAGC,OAAMC,aAAa,CAACC,6BAAiB,EAAE;gBACnE;gBACAC,iBAAiB;gBACjBC,aAAa;YACjB;YACAC,SAAS,CAACC;gBACN,IAAIC;gBACJf,gBAAgB,QAAQA,gBAAgB,KAAK,IAAI,KAAK,IAAIA,YAAYc,GAAGvB,MAAMC,OAAOC;gBACrFsB,CAAAA,iBAAiB1B,MAAMwB,OAAO,AAAD,MAAO,QAAQE,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeC,IAAI,CAAC3B,OAAOyB;YACjH;QACJ,GAAGxB,IAAI;QACPG;QACAF;QACAC;IACJ;AACJ"}
@@ -80,8 +80,7 @@ const useMenuList_unstable = (props, ref)=>{
80
80
  var _props_onCheckedValueChange;
81
81
  const handleCheckedValueChange = (_props_onCheckedValueChange = props.onCheckedValueChange) !== null && _props_onCheckedValueChange !== void 0 ? _props_onCheckedValueChange : hasMenuContext ? menuContext.onCheckedValueChange : undefined;
82
82
  const toggleCheckbox = (0, _reactutilities.useEventCallback)((e, name, value, checked)=>{
83
- var _checkedValues, _handleCheckedValueChange;
84
- const checkedItems = ((_checkedValues = checkedValues) === null || _checkedValues === void 0 ? void 0 : _checkedValues[name]) || [];
83
+ const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];
85
84
  const newCheckedItems = [
86
85
  ...checkedItems
87
86
  ];
@@ -90,7 +89,7 @@ const useMenuList_unstable = (props, ref)=>{
90
89
  } else {
91
90
  newCheckedItems.push(value);
92
91
  }
93
- (_handleCheckedValueChange = handleCheckedValueChange) === null || _handleCheckedValueChange === void 0 ? void 0 : _handleCheckedValueChange(e, {
92
+ handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
94
93
  name,
95
94
  checkedItems: newCheckedItems
96
95
  });
@@ -100,7 +99,6 @@ const useMenuList_unstable = (props, ref)=>{
100
99
  }));
101
100
  });
102
101
  const selectRadio = (0, _reactutilities.useEventCallback)((e, name, value)=>{
103
- var _handleCheckedValueChange;
104
102
  const newCheckedItems = [
105
103
  value
106
104
  ];
@@ -108,7 +106,7 @@ const useMenuList_unstable = (props, ref)=>{
108
106
  ...s,
109
107
  [name]: newCheckedItems
110
108
  }));
111
- (_handleCheckedValueChange = handleCheckedValueChange) === null || _handleCheckedValueChange === void 0 ? void 0 : _handleCheckedValueChange(e, {
109
+ handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {
112
110
  name,
113
111
  checkedItems: newCheckedItems
114
112
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuList.js"],"sourcesContent":["import * as React from 'react';\nimport { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\n/**\n * Returns the props and state required to render the component\n */ export const useMenuList_unstable = (props, ref)=>{\n const { findAllFocusable } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n ignoreDefaultKeydown: {\n Tab: hasMenuContext\n }\n });\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n const innerRef = React.useRef(null);\n const setFocusByFirstCharacter = React.useCallback((e, itemEl)=>{\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = [\n 'menuitem',\n 'menuitemcheckbox',\n 'menuitemradio'\n ];\n if (!innerRef.current) {\n return;\n }\n const menuItems = findAllFocusable(innerRef.current, (el)=>el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n const firstChars = menuItems.map((menuItem)=>{\n var _menuItem_textContent;\n return (_menuItem_textContent = menuItem.textContent) === null || _menuItem_textContent === void 0 ? void 0 : _menuItem_textContent.charAt(0).toLowerCase();\n });\n const char = e.key.toLowerCase();\n const getIndexFirstChars = (start, firstChar)=>{\n for(let i = start; i < firstChars.length; i++){\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n }, [\n findAllFocusable\n ]);\n var _props_checkedValues;\n const [checkedValues, setCheckedValues] = useControllableState({\n state: (_props_checkedValues = props.checkedValues) !== null && _props_checkedValues !== void 0 ? _props_checkedValues : hasMenuContext ? menuContext.checkedValues : undefined,\n defaultState: props.defaultCheckedValues,\n initialState: {}\n });\n var _props_onCheckedValueChange;\n const handleCheckedValueChange = (_props_onCheckedValueChange = props.onCheckedValueChange) !== null && _props_onCheckedValueChange !== void 0 ? _props_onCheckedValueChange : hasMenuContext ? menuContext.onCheckedValueChange : undefined;\n const toggleCheckbox = useEventCallback((e, name, value, checked)=>{\n var _checkedValues, _handleCheckedValueChange;\n const checkedItems = ((_checkedValues = checkedValues) === null || _checkedValues === void 0 ? void 0 : _checkedValues[name]) || [];\n const newCheckedItems = [\n ...checkedItems\n ];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n (_handleCheckedValueChange = handleCheckedValueChange) === null || _handleCheckedValueChange === void 0 ? void 0 : _handleCheckedValueChange(e, {\n name,\n checkedItems: newCheckedItems\n });\n setCheckedValues((s)=>({\n ...s,\n [name]: newCheckedItems\n }));\n });\n const selectRadio = useEventCallback((e, name, value)=>{\n var _handleCheckedValueChange;\n const newCheckedItems = [\n value\n ];\n setCheckedValues((s)=>({\n ...s,\n [name]: newCheckedItems\n }));\n (_handleCheckedValueChange = handleCheckedValueChange) === null || _handleCheckedValueChange === void 0 ? void 0 : _handleCheckedValueChange(e, {\n name,\n checkedItems: newCheckedItems\n });\n });\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props\n }), {\n elementType: 'div'\n }),\n hasIcons: menuContext.hasIcons || false,\n hasCheckmarks: menuContext.hasCheckmarks || false,\n checkedValues,\n hasMenuContext,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox\n };\n};\n/**\n * Adds some sugar to fetching multiple context selector values\n */ const useMenuContextSelectors = ()=>{\n const checkedValues = useMenuContext_unstable((context)=>context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable((context)=>context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable((context)=>context.triggerId);\n const hasIcons = useMenuContext_unstable((context)=>context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable((context)=>context.hasCheckmarks);\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks\n };\n};\n/**\n * Helper function to detect if props and MenuContext values are both used\n */ const usingPropsAndMenuContext = (props, contextValue, hasMenuContext)=>{\n let isUsingPropsAndContext = false;\n for(const val in contextValue){\n if (props[val]) {\n isUsingPropsAndContext = true;\n }\n }\n return hasMenuContext && isUsingPropsAndContext;\n};\n"],"names":["useMenuList_unstable","props","ref","findAllFocusable","useFocusFinders","menuContext","useMenuContextSelectors","hasMenuContext","useHasParentContext","MenuContext","focusAttributes","useArrowNavigationGroup","circular","ignoreDefaultKeydown","Tab","usingPropsAndMenuContext","console","warn","innerRef","React","useRef","setFocusByFirstCharacter","useCallback","e","itemEl","acceptedRoles","current","menuItems","el","hasAttribute","indexOf","getAttribute","startIndex","length","firstChars","map","menuItem","_menuItem_textContent","textContent","charAt","toLowerCase","char","key","getIndexFirstChars","start","firstChar","i","index","focus","_props_checkedValues","checkedValues","setCheckedValues","useControllableState","state","undefined","defaultState","defaultCheckedValues","initialState","_props_onCheckedValueChange","handleCheckedValueChange","onCheckedValueChange","toggleCheckbox","useEventCallback","name","value","checked","_checkedValues","_handleCheckedValueChange","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","root","slot","always","getNativeElementProps","useMergedRefs","role","triggerId","elementType","hasIcons","hasCheckmarks","useMenuContext_unstable","context","contextValue","isUsingPropsAndContext","val"],"mappings":"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"}
1
+ {"version":3,"sources":["useMenuList.js"],"sourcesContent":["import * as React from 'react';\nimport { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { MenuContext } from '../../contexts/menuContext';\n/**\n * Returns the props and state required to render the component\n */ export const useMenuList_unstable = (props, ref)=>{\n const { findAllFocusable } = useFocusFinders();\n const menuContext = useMenuContextSelectors();\n const hasMenuContext = useHasParentContext(MenuContext);\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n ignoreDefaultKeydown: {\n Tab: hasMenuContext\n }\n });\n if (usingPropsAndMenuContext(props, menuContext, hasMenuContext)) {\n // TODO throw warnings in development safely\n // eslint-disable-next-line no-console\n console.warn('You are using both MenuList and Menu props, we recommend you to use Menu props when available');\n }\n const innerRef = React.useRef(null);\n const setFocusByFirstCharacter = React.useCallback((e, itemEl)=>{\n // TODO use some kind of children registration to reduce dependency on DOM roles\n const acceptedRoles = [\n 'menuitem',\n 'menuitemcheckbox',\n 'menuitemradio'\n ];\n if (!innerRef.current) {\n return;\n }\n const menuItems = findAllFocusable(innerRef.current, (el)=>el.hasAttribute('role') && acceptedRoles.indexOf(el.getAttribute('role')) !== -1);\n let startIndex = menuItems.indexOf(itemEl) + 1;\n if (startIndex === menuItems.length) {\n startIndex = 0;\n }\n const firstChars = menuItems.map((menuItem)=>{\n var _menuItem_textContent;\n return (_menuItem_textContent = menuItem.textContent) === null || _menuItem_textContent === void 0 ? void 0 : _menuItem_textContent.charAt(0).toLowerCase();\n });\n const char = e.key.toLowerCase();\n const getIndexFirstChars = (start, firstChar)=>{\n for(let i = start; i < firstChars.length; i++){\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n };\n // Check remaining slots in the menu\n let index = getIndexFirstChars(startIndex, char);\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = getIndexFirstChars(0, char);\n }\n // If match was found...\n if (index > -1) {\n menuItems[index].focus();\n }\n }, [\n findAllFocusable\n ]);\n var _props_checkedValues;\n const [checkedValues, setCheckedValues] = useControllableState({\n state: (_props_checkedValues = props.checkedValues) !== null && _props_checkedValues !== void 0 ? _props_checkedValues : hasMenuContext ? menuContext.checkedValues : undefined,\n defaultState: props.defaultCheckedValues,\n initialState: {}\n });\n var _props_onCheckedValueChange;\n const handleCheckedValueChange = (_props_onCheckedValueChange = props.onCheckedValueChange) !== null && _props_onCheckedValueChange !== void 0 ? _props_onCheckedValueChange : hasMenuContext ? menuContext.onCheckedValueChange : undefined;\n const toggleCheckbox = useEventCallback((e, name, value, checked)=>{\n const checkedItems = (checkedValues === null || checkedValues === void 0 ? void 0 : checkedValues[name]) || [];\n const newCheckedItems = [\n ...checkedItems\n ];\n if (checked) {\n newCheckedItems.splice(newCheckedItems.indexOf(value), 1);\n } else {\n newCheckedItems.push(value);\n }\n handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {\n name,\n checkedItems: newCheckedItems\n });\n setCheckedValues((s)=>({\n ...s,\n [name]: newCheckedItems\n }));\n });\n const selectRadio = useEventCallback((e, name, value)=>{\n const newCheckedItems = [\n value\n ];\n setCheckedValues((s)=>({\n ...s,\n [name]: newCheckedItems\n }));\n handleCheckedValueChange === null || handleCheckedValueChange === void 0 ? void 0 : handleCheckedValueChange(e, {\n name,\n checkedItems: newCheckedItems\n });\n });\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props\n }), {\n elementType: 'div'\n }),\n hasIcons: menuContext.hasIcons || false,\n hasCheckmarks: menuContext.hasCheckmarks || false,\n checkedValues,\n hasMenuContext,\n setFocusByFirstCharacter,\n selectRadio,\n toggleCheckbox\n };\n};\n/**\n * Adds some sugar to fetching multiple context selector values\n */ const useMenuContextSelectors = ()=>{\n const checkedValues = useMenuContext_unstable((context)=>context.checkedValues);\n const onCheckedValueChange = useMenuContext_unstable((context)=>context.onCheckedValueChange);\n const triggerId = useMenuContext_unstable((context)=>context.triggerId);\n const hasIcons = useMenuContext_unstable((context)=>context.hasIcons);\n const hasCheckmarks = useMenuContext_unstable((context)=>context.hasCheckmarks);\n return {\n checkedValues,\n onCheckedValueChange,\n triggerId,\n hasIcons,\n hasCheckmarks\n };\n};\n/**\n * Helper function to detect if props and MenuContext values are both used\n */ const usingPropsAndMenuContext = (props, contextValue, hasMenuContext)=>{\n let isUsingPropsAndContext = false;\n for(const val in contextValue){\n if (props[val]) {\n isUsingPropsAndContext = true;\n }\n }\n return hasMenuContext && isUsingPropsAndContext;\n};\n"],"names":["useMenuList_unstable","props","ref","findAllFocusable","useFocusFinders","menuContext","useMenuContextSelectors","hasMenuContext","useHasParentContext","MenuContext","focusAttributes","useArrowNavigationGroup","circular","ignoreDefaultKeydown","Tab","usingPropsAndMenuContext","console","warn","innerRef","React","useRef","setFocusByFirstCharacter","useCallback","e","itemEl","acceptedRoles","current","menuItems","el","hasAttribute","indexOf","getAttribute","startIndex","length","firstChars","map","menuItem","_menuItem_textContent","textContent","charAt","toLowerCase","char","key","getIndexFirstChars","start","firstChar","i","index","focus","_props_checkedValues","checkedValues","setCheckedValues","useControllableState","state","undefined","defaultState","defaultCheckedValues","initialState","_props_onCheckedValueChange","handleCheckedValueChange","onCheckedValueChange","toggleCheckbox","useEventCallback","name","value","checked","checkedItems","newCheckedItems","splice","push","s","selectRadio","components","root","slot","always","getNativeElementProps","useMergedRefs","role","triggerId","elementType","hasIcons","hasCheckmarks","useMenuContext_unstable","context","contextValue","isUsingPropsAndContext","val"],"mappings":"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"}
@@ -66,7 +66,6 @@ const useMenuPopover_unstable = (props, ref)=>{
66
66
  });
67
67
  const { onMouseEnter: onMouseEnterOriginal, onKeyDown: onKeyDownOriginal } = rootProps;
68
68
  rootProps.onMouseEnter = (0, _reactutilities.useEventCallback)((event)=>{
69
- var _onMouseEnterOriginal;
70
69
  if (openOnHover) {
71
70
  setOpen(event, {
72
71
  open: true,
@@ -75,10 +74,9 @@ const useMenuPopover_unstable = (props, ref)=>{
75
74
  event
76
75
  });
77
76
  }
78
- (_onMouseEnterOriginal = onMouseEnterOriginal) === null || _onMouseEnterOriginal === void 0 ? void 0 : _onMouseEnterOriginal(event);
77
+ onMouseEnterOriginal === null || onMouseEnterOriginal === void 0 ? void 0 : onMouseEnterOriginal(event);
79
78
  });
80
79
  rootProps.onKeyDown = (0, _reactutilities.useEventCallback)((event)=>{
81
- var _onKeyDownOriginal;
82
80
  const key = event.key;
83
81
  if (key === _keyboardkeys.Escape || isSubmenu && key === CloseArrowKey) {
84
82
  var _popoverRef_current;
@@ -106,7 +104,7 @@ const useMenuPopover_unstable = (props, ref)=>{
106
104
  (_triggerRef_current = triggerRef.current) === null || _triggerRef_current === void 0 ? void 0 : _triggerRef_current.focus();
107
105
  }
108
106
  }
109
- (_onKeyDownOriginal = onKeyDownOriginal) === null || _onKeyDownOriginal === void 0 ? void 0 : _onKeyDownOriginal(event);
107
+ onKeyDownOriginal === null || onKeyDownOriginal === void 0 ? void 0 : onKeyDownOriginal(event);
110
108
  });
111
109
  return {
112
110
  inline,
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuPopover.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';\nimport { getNativeElementProps, useEventCallback, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { dispatchMenuEnterEvent } from '../../utils/index';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport { useRestoreFocusSource } from '@fluentui/react-tabster';\n/**\n * Create the state required to render MenuPopover.\n *\n * The returned state can be modified with hooks such as useMenuPopoverStyles_unstable,\n * before being passed to renderMenuPopover_unstable.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */ export const useMenuPopover_unstable = (props, ref)=>{\n const popoverRef = useMenuContext_unstable((context)=>context.menuPopoverRef);\n const setOpen = useMenuContext_unstable((context)=>context.setOpen);\n const open = useMenuContext_unstable((context)=>context.open);\n const openOnHover = useMenuContext_unstable((context)=>context.openOnHover);\n const triggerRef = useMenuContext_unstable((context)=>context.triggerRef);\n const isSubmenu = useIsSubmenu();\n const canDispatchCustomEventRef = React.useRef(true);\n const throttleDispatchTimerRef = React.useRef(0);\n const restoreFocusSourceAttributes = useRestoreFocusSource();\n const { dir } = useFluent();\n const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;\n // use DOM listener since react events propagate up the react tree\n // no need to do `contains` logic as menus are all positioned in different portals\n const mouseOverListenerCallbackRef = React.useCallback((node)=>{\n if (node) {\n // Dispatches the custom menu mouse enter event with throttling\n // Needs to trigger on mouseover to support keyboard + mouse together\n // i.e. keyboard opens submenus while cursor is still on the parent\n node.addEventListener('mouseover', (e)=>{\n if (canDispatchCustomEventRef.current) {\n canDispatchCustomEventRef.current = false;\n dispatchMenuEnterEvent(popoverRef.current, e);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore #16889 Node setTimeout type leaking\n throttleDispatchTimerRef.current = setTimeout(()=>canDispatchCustomEventRef.current = true, 250);\n }\n });\n }\n }, [\n popoverRef,\n throttleDispatchTimerRef\n ]);\n React.useEffect(()=>{\n ()=>clearTimeout(throttleDispatchTimerRef.current);\n }, []);\n var _useMenuContext_unstable;\n const inline = (_useMenuContext_unstable = useMenuContext_unstable((context)=>context.inline)) !== null && _useMenuContext_unstable !== void 0 ? _useMenuContext_unstable : false;\n const mountNode = useMenuContext_unstable((context)=>context.mountNode);\n const rootProps = slot.always(getNativeElementProps('div', {\n role: 'presentation',\n ...restoreFocusSourceAttributes,\n ...props,\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef)\n }), {\n elementType: 'div'\n });\n const { onMouseEnter: onMouseEnterOriginal, onKeyDown: onKeyDownOriginal } = rootProps;\n rootProps.onMouseEnter = useEventCallback((event)=>{\n var _onMouseEnterOriginal;\n if (openOnHover) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuPopoverMouseEnter',\n event\n });\n }\n (_onMouseEnterOriginal = onMouseEnterOriginal) === null || _onMouseEnterOriginal === void 0 ? void 0 : _onMouseEnterOriginal(event);\n });\n rootProps.onKeyDown = useEventCallback((event)=>{\n var _onKeyDownOriginal;\n const key = event.key;\n if (key === Escape || isSubmenu && key === CloseArrowKey) {\n var _popoverRef_current;\n if (open && ((_popoverRef_current = popoverRef.current) === null || _popoverRef_current === void 0 ? void 0 : _popoverRef_current.contains(event.target))) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuPopoverKeyDown',\n event\n });\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover and Tooltip\n event.stopPropagation();\n }\n }\n if (key === Tab) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuPopoverKeyDown',\n event\n });\n if (!isSubmenu) {\n var _triggerRef_current;\n (_triggerRef_current = triggerRef.current) === null || _triggerRef_current === void 0 ? void 0 : _triggerRef_current.focus();\n }\n }\n (_onKeyDownOriginal = onKeyDownOriginal) === null || _onKeyDownOriginal === void 0 ? void 0 : _onKeyDownOriginal(event);\n });\n return {\n inline,\n mountNode,\n components: {\n root: 'div'\n },\n root: rootProps\n };\n};\n"],"names":["useMenuPopover_unstable","props","ref","popoverRef","useMenuContext_unstable","context","menuPopoverRef","setOpen","open","openOnHover","triggerRef","isSubmenu","useIsSubmenu","canDispatchCustomEventRef","React","useRef","throttleDispatchTimerRef","restoreFocusSourceAttributes","useRestoreFocusSource","dir","useFluent","CloseArrowKey","ArrowLeft","ArrowRight","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","dispatchMenuEnterEvent","setTimeout","useEffect","clearTimeout","_useMenuContext_unstable","inline","mountNode","rootProps","slot","always","getNativeElementProps","role","useMergedRefs","elementType","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","useEventCallback","event","_onMouseEnterOriginal","keyboard","type","_onKeyDownOriginal","key","Escape","_popoverRef_current","contains","target","stopPropagation","Tab","_triggerRef_current","focus","components","root"],"mappings":"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"}
1
+ {"version":3,"sources":["useMenuPopover.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowLeft, Tab, ArrowRight, Escape } from '@fluentui/keyboard-keys';\nimport { getNativeElementProps, useEventCallback, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { dispatchMenuEnterEvent } from '../../utils/index';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport { useRestoreFocusSource } from '@fluentui/react-tabster';\n/**\n * Create the state required to render MenuPopover.\n *\n * The returned state can be modified with hooks such as useMenuPopoverStyles_unstable,\n * before being passed to renderMenuPopover_unstable.\n *\n * @param props - props from this instance of MenuPopover\n * @param ref - reference to root HTMLElement of MenuPopover\n */ export const useMenuPopover_unstable = (props, ref)=>{\n const popoverRef = useMenuContext_unstable((context)=>context.menuPopoverRef);\n const setOpen = useMenuContext_unstable((context)=>context.setOpen);\n const open = useMenuContext_unstable((context)=>context.open);\n const openOnHover = useMenuContext_unstable((context)=>context.openOnHover);\n const triggerRef = useMenuContext_unstable((context)=>context.triggerRef);\n const isSubmenu = useIsSubmenu();\n const canDispatchCustomEventRef = React.useRef(true);\n const throttleDispatchTimerRef = React.useRef(0);\n const restoreFocusSourceAttributes = useRestoreFocusSource();\n const { dir } = useFluent();\n const CloseArrowKey = dir === 'ltr' ? ArrowLeft : ArrowRight;\n // use DOM listener since react events propagate up the react tree\n // no need to do `contains` logic as menus are all positioned in different portals\n const mouseOverListenerCallbackRef = React.useCallback((node)=>{\n if (node) {\n // Dispatches the custom menu mouse enter event with throttling\n // Needs to trigger on mouseover to support keyboard + mouse together\n // i.e. keyboard opens submenus while cursor is still on the parent\n node.addEventListener('mouseover', (e)=>{\n if (canDispatchCustomEventRef.current) {\n canDispatchCustomEventRef.current = false;\n dispatchMenuEnterEvent(popoverRef.current, e);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore #16889 Node setTimeout type leaking\n throttleDispatchTimerRef.current = setTimeout(()=>canDispatchCustomEventRef.current = true, 250);\n }\n });\n }\n }, [\n popoverRef,\n throttleDispatchTimerRef\n ]);\n React.useEffect(()=>{\n ()=>clearTimeout(throttleDispatchTimerRef.current);\n }, []);\n var _useMenuContext_unstable;\n const inline = (_useMenuContext_unstable = useMenuContext_unstable((context)=>context.inline)) !== null && _useMenuContext_unstable !== void 0 ? _useMenuContext_unstable : false;\n const mountNode = useMenuContext_unstable((context)=>context.mountNode);\n const rootProps = slot.always(getNativeElementProps('div', {\n role: 'presentation',\n ...restoreFocusSourceAttributes,\n ...props,\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef)\n }), {\n elementType: 'div'\n });\n const { onMouseEnter: onMouseEnterOriginal, onKeyDown: onKeyDownOriginal } = rootProps;\n rootProps.onMouseEnter = useEventCallback((event)=>{\n if (openOnHover) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuPopoverMouseEnter',\n event\n });\n }\n onMouseEnterOriginal === null || onMouseEnterOriginal === void 0 ? void 0 : onMouseEnterOriginal(event);\n });\n rootProps.onKeyDown = useEventCallback((event)=>{\n const key = event.key;\n if (key === Escape || isSubmenu && key === CloseArrowKey) {\n var _popoverRef_current;\n if (open && ((_popoverRef_current = popoverRef.current) === null || _popoverRef_current === void 0 ? void 0 : _popoverRef_current.contains(event.target))) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuPopoverKeyDown',\n event\n });\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover and Tooltip\n event.stopPropagation();\n }\n }\n if (key === Tab) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuPopoverKeyDown',\n event\n });\n if (!isSubmenu) {\n var _triggerRef_current;\n (_triggerRef_current = triggerRef.current) === null || _triggerRef_current === void 0 ? void 0 : _triggerRef_current.focus();\n }\n }\n onKeyDownOriginal === null || onKeyDownOriginal === void 0 ? void 0 : onKeyDownOriginal(event);\n });\n return {\n inline,\n mountNode,\n components: {\n root: 'div'\n },\n root: rootProps\n };\n};\n"],"names":["useMenuPopover_unstable","props","ref","popoverRef","useMenuContext_unstable","context","menuPopoverRef","setOpen","open","openOnHover","triggerRef","isSubmenu","useIsSubmenu","canDispatchCustomEventRef","React","useRef","throttleDispatchTimerRef","restoreFocusSourceAttributes","useRestoreFocusSource","dir","useFluent","CloseArrowKey","ArrowLeft","ArrowRight","mouseOverListenerCallbackRef","useCallback","node","addEventListener","e","current","dispatchMenuEnterEvent","setTimeout","useEffect","clearTimeout","_useMenuContext_unstable","inline","mountNode","rootProps","slot","always","getNativeElementProps","role","useMergedRefs","elementType","onMouseEnter","onMouseEnterOriginal","onKeyDown","onKeyDownOriginal","useEventCallback","event","keyboard","type","key","Escape","_popoverRef_current","contains","target","stopPropagation","Tab","_triggerRef_current","focus","components","root"],"mappings":"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"}
@@ -21,8 +21,8 @@ const useMenuSplitGroup_unstable = (props, ref)=>{
21
21
  const prevArrowKey = (0, _reactutilities.getRTLSafeKey)(_keyboardkeys.ArrowLeft, dir);
22
22
  const { findNextFocusable, findPrevFocusable } = (0, _reacttabster.useFocusFinders)();
23
23
  const onKeyDown = _react.useCallback((e)=>{
24
- var _targetDocument, _innerRef_current;
25
- const activeElement = (_targetDocument = targetDocument) === null || _targetDocument === void 0 ? void 0 : _targetDocument.activeElement;
24
+ var _innerRef_current;
25
+ const activeElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement;
26
26
  if (!activeElement) {
27
27
  return;
28
28
  }
@@ -30,18 +30,16 @@ const useMenuSplitGroup_unstable = (props, ref)=>{
30
30
  return;
31
31
  }
32
32
  if (e.key === nextArrowKey) {
33
- var _next;
34
33
  const next = findNextFocusable(activeElement, {
35
34
  container: innerRef.current
36
35
  });
37
- (_next = next) === null || _next === void 0 ? void 0 : _next.focus();
36
+ next === null || next === void 0 ? void 0 : next.focus();
38
37
  }
39
38
  if (e.key === prevArrowKey) {
40
- var _prev;
41
39
  const prev = findPrevFocusable(activeElement, {
42
40
  container: innerRef.current
43
41
  });
44
- (_prev = prev) === null || _prev === void 0 ? void 0 : _prev.focus();
42
+ prev === null || prev === void 0 ? void 0 : prev.focus();
45
43
  }
46
44
  }, [
47
45
  findNextFocusable,
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuSplitGroup.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, getRTLSafeKey, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowRight, ArrowLeft } from '@fluentui/keyboard-keys';\n/**\n * Create the state required to render MenuSplitGroup.\n *\n * The returned state can be modified with hooks such as useMenuSplitGroupStyles_unstable,\n * before being passed to renderMenuSplitGroup_unstable.\n *\n * @param props - props from this instance of MenuSplitGroup\n * @param ref - reference to root HTMLElement of MenuSplitGroup\n */ export const useMenuSplitGroup_unstable = (props, ref)=>{\n const innerRef = React.useRef();\n const { dir, targetDocument } = useFluent();\n const nextArrowKey = getRTLSafeKey(ArrowRight, dir);\n const prevArrowKey = getRTLSafeKey(ArrowLeft, dir);\n const { findNextFocusable, findPrevFocusable } = useFocusFinders();\n const onKeyDown = React.useCallback((e)=>{\n var _targetDocument, _innerRef_current;\n const activeElement = (_targetDocument = targetDocument) === null || _targetDocument === void 0 ? void 0 : _targetDocument.activeElement;\n if (!activeElement) {\n return;\n }\n if (!((_innerRef_current = innerRef.current) === null || _innerRef_current === void 0 ? void 0 : _innerRef_current.contains(activeElement))) {\n return;\n }\n if (e.key === nextArrowKey) {\n var _next;\n const next = findNextFocusable(activeElement, {\n container: innerRef.current\n });\n (_next = next) === null || _next === void 0 ? void 0 : _next.focus();\n }\n if (e.key === prevArrowKey) {\n var _prev;\n const prev = findPrevFocusable(activeElement, {\n container: innerRef.current\n });\n (_prev = prev) === null || _prev === void 0 ? void 0 : _prev.focus();\n }\n }, [\n findNextFocusable,\n findPrevFocusable,\n targetDocument,\n nextArrowKey,\n prevArrowKey\n ]);\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getNativeElementProps('div', {\n role: 'group',\n ref: useMergedRefs(ref, innerRef),\n onKeyDown,\n ...props\n }), {\n elementType: 'div'\n })\n };\n};\n"],"names":["useMenuSplitGroup_unstable","props","ref","innerRef","React","useRef","dir","targetDocument","useFluent","nextArrowKey","getRTLSafeKey","ArrowRight","prevArrowKey","ArrowLeft","findNextFocusable","findPrevFocusable","useFocusFinders","onKeyDown","useCallback","e","_targetDocument","_innerRef_current","activeElement","current","contains","key","_next","next","container","focus","_prev","prev","components","root","slot","always","getNativeElementProps","role","useMergedRefs","elementType"],"mappings":";;;;+BAaiBA;;;eAAAA;;;;iEAbM;gCACmD;8BAC1C;qCACgB;8BACV;AAS3B,MAAMA,6BAA6B,CAACC,OAAOC;IAClD,MAAMC,WAAWC,OAAMC,MAAM;IAC7B,MAAM,EAAEC,GAAG,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAS;IACzC,MAAMC,eAAeC,IAAAA,6BAAa,EAACC,wBAAU,EAAEL;IAC/C,MAAMM,eAAeF,IAAAA,6BAAa,EAACG,uBAAS,EAAEP;IAC9C,MAAM,EAAEQ,iBAAiB,EAAEC,iBAAiB,EAAE,GAAGC,IAAAA,6BAAe;IAChE,MAAMC,YAAYb,OAAMc,WAAW,CAAC,CAACC;QACjC,IAAIC,iBAAiBC;QACrB,MAAMC,gBAAgB,AAACF,CAAAA,kBAAkBb,cAAa,MAAO,QAAQa,oBAAoB,KAAK,IAAI,KAAK,IAAIA,gBAAgBE,aAAa;QACxI,IAAI,CAACA,eAAe;YAChB;QACJ;QACA,IAAI,CAAE,CAAA,AAACD,CAAAA,oBAAoBlB,SAASoB,OAAO,AAAD,MAAO,QAAQF,sBAAsB,KAAK,IAAI,KAAK,IAAIA,kBAAkBG,QAAQ,CAACF,cAAa,GAAI;YACzI;QACJ;QACA,IAAIH,EAAEM,GAAG,KAAKhB,cAAc;YACxB,IAAIiB;YACJ,MAAMC,OAAOb,kBAAkBQ,eAAe;gBAC1CM,WAAWzB,SAASoB,OAAO;YAC/B;YACCG,CAAAA,QAAQC,IAAG,MAAO,QAAQD,UAAU,KAAK,IAAI,KAAK,IAAIA,MAAMG,KAAK;QACtE;QACA,IAAIV,EAAEM,GAAG,KAAKb,cAAc;YACxB,IAAIkB;YACJ,MAAMC,OAAOhB,kBAAkBO,eAAe;gBAC1CM,WAAWzB,SAASoB,OAAO;YAC/B;YACCO,CAAAA,QAAQC,IAAG,MAAO,QAAQD,UAAU,KAAK,IAAI,KAAK,IAAIA,MAAMD,KAAK;QACtE;IACJ,GAAG;QACCf;QACAC;QACAR;QACAE;QACAG;KACH;IACD,OAAO;QACHoB,YAAY;YACRC,MAAM;QACV;QACAA,MAAMC,oBAAI,CAACC,MAAM,CAACC,IAAAA,qCAAqB,EAAC,OAAO;YAC3CC,MAAM;YACNnC,KAAKoC,IAAAA,6BAAa,EAACpC,KAAKC;YACxBc;YACA,GAAGhB,KAAK;QACZ,IAAI;YACAsC,aAAa;QACjB;IACJ;AACJ"}
1
+ {"version":3,"sources":["useMenuSplitGroup.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, getRTLSafeKey, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowRight, ArrowLeft } from '@fluentui/keyboard-keys';\n/**\n * Create the state required to render MenuSplitGroup.\n *\n * The returned state can be modified with hooks such as useMenuSplitGroupStyles_unstable,\n * before being passed to renderMenuSplitGroup_unstable.\n *\n * @param props - props from this instance of MenuSplitGroup\n * @param ref - reference to root HTMLElement of MenuSplitGroup\n */ export const useMenuSplitGroup_unstable = (props, ref)=>{\n const innerRef = React.useRef();\n const { dir, targetDocument } = useFluent();\n const nextArrowKey = getRTLSafeKey(ArrowRight, dir);\n const prevArrowKey = getRTLSafeKey(ArrowLeft, dir);\n const { findNextFocusable, findPrevFocusable } = useFocusFinders();\n const onKeyDown = React.useCallback((e)=>{\n var _innerRef_current;\n const activeElement = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.activeElement;\n if (!activeElement) {\n return;\n }\n if (!((_innerRef_current = innerRef.current) === null || _innerRef_current === void 0 ? void 0 : _innerRef_current.contains(activeElement))) {\n return;\n }\n if (e.key === nextArrowKey) {\n const next = findNextFocusable(activeElement, {\n container: innerRef.current\n });\n next === null || next === void 0 ? void 0 : next.focus();\n }\n if (e.key === prevArrowKey) {\n const prev = findPrevFocusable(activeElement, {\n container: innerRef.current\n });\n prev === null || prev === void 0 ? void 0 : prev.focus();\n }\n }, [\n findNextFocusable,\n findPrevFocusable,\n targetDocument,\n nextArrowKey,\n prevArrowKey\n ]);\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getNativeElementProps('div', {\n role: 'group',\n ref: useMergedRefs(ref, innerRef),\n onKeyDown,\n ...props\n }), {\n elementType: 'div'\n })\n };\n};\n"],"names":["useMenuSplitGroup_unstable","props","ref","innerRef","React","useRef","dir","targetDocument","useFluent","nextArrowKey","getRTLSafeKey","ArrowRight","prevArrowKey","ArrowLeft","findNextFocusable","findPrevFocusable","useFocusFinders","onKeyDown","useCallback","e","_innerRef_current","activeElement","current","contains","key","next","container","focus","prev","components","root","slot","always","getNativeElementProps","role","useMergedRefs","elementType"],"mappings":";;;;+BAaiBA;;;eAAAA;;;;iEAbM;gCACmD;8BAC1C;qCACgB;8BACV;AAS3B,MAAMA,6BAA6B,CAACC,OAAOC;IAClD,MAAMC,WAAWC,OAAMC,MAAM;IAC7B,MAAM,EAAEC,GAAG,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAS;IACzC,MAAMC,eAAeC,IAAAA,6BAAa,EAACC,wBAAU,EAAEL;IAC/C,MAAMM,eAAeF,IAAAA,6BAAa,EAACG,uBAAS,EAAEP;IAC9C,MAAM,EAAEQ,iBAAiB,EAAEC,iBAAiB,EAAE,GAAGC,IAAAA,6BAAe;IAChE,MAAMC,YAAYb,OAAMc,WAAW,CAAC,CAACC;QACjC,IAAIC;QACJ,MAAMC,gBAAgBd,mBAAmB,QAAQA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAec,aAAa;QAClH,IAAI,CAACA,eAAe;YAChB;QACJ;QACA,IAAI,CAAE,CAAA,AAACD,CAAAA,oBAAoBjB,SAASmB,OAAO,AAAD,MAAO,QAAQF,sBAAsB,KAAK,IAAI,KAAK,IAAIA,kBAAkBG,QAAQ,CAACF,cAAa,GAAI;YACzI;QACJ;QACA,IAAIF,EAAEK,GAAG,KAAKf,cAAc;YACxB,MAAMgB,OAAOX,kBAAkBO,eAAe;gBAC1CK,WAAWvB,SAASmB,OAAO;YAC/B;YACAG,SAAS,QAAQA,SAAS,KAAK,IAAI,KAAK,IAAIA,KAAKE,KAAK;QAC1D;QACA,IAAIR,EAAEK,GAAG,KAAKZ,cAAc;YACxB,MAAMgB,OAAOb,kBAAkBM,eAAe;gBAC1CK,WAAWvB,SAASmB,OAAO;YAC/B;YACAM,SAAS,QAAQA,SAAS,KAAK,IAAI,KAAK,IAAIA,KAAKD,KAAK;QAC1D;IACJ,GAAG;QACCb;QACAC;QACAR;QACAE;QACAG;KACH;IACD,OAAO;QACHiB,YAAY;YACRC,MAAM;QACV;QACAA,MAAMC,oBAAI,CAACC,MAAM,CAACC,IAAAA,qCAAqB,EAAC,OAAO;YAC3CC,MAAM;YACNhC,KAAKiC,IAAAA,6BAAa,EAACjC,KAAKC;YACxBc;YACA,GAAGhB,KAAK;QACZ,IAAI;YACAmC,aAAa;QACjB;IACJ;AACJ"}
@@ -18,7 +18,6 @@ const _keyboardkeys = require("@fluentui/keyboard-keys");
18
18
  const _reactutilities = require("@fluentui/react-utilities");
19
19
  const _reactaria = require("@fluentui/react-aria");
20
20
  const useMenuTrigger_unstable = (props)=>{
21
- var _child, _child1, _child2, _child3, _child4, _child5, _child6, _child7, _child8, _child9;
22
21
  const { children, disableButtonEnhancement = false } = props;
23
22
  const triggerRef = (0, _menuContext.useMenuContext_unstable)((context)=>context.triggerRef);
24
23
  const menuPopoverRef = (0, _menuContext.useMenuContext_unstable)((context)=>context.menuPopoverRef);
@@ -31,9 +30,8 @@ const useMenuTrigger_unstable = (props)=>{
31
30
  const isSubmenu = (0, _useIsSubmenu.useIsSubmenu)();
32
31
  const { findFirstFocusable } = (0, _reacttabster.useFocusFinders)();
33
32
  const focusFirst = _react.useCallback(()=>{
34
- var _firstFocusable;
35
33
  const firstFocusable = findFirstFocusable(menuPopoverRef.current);
36
- (_firstFocusable = firstFocusable) === null || _firstFocusable === void 0 ? void 0 : _firstFocusable.focus();
34
+ firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();
37
35
  }, [
38
36
  findFirstFocusable,
39
37
  menuPopoverRef
@@ -142,22 +140,22 @@ const useMenuTrigger_unstable = (props)=>{
142
140
  };
143
141
  const contextMenuProps = {
144
142
  id: triggerId,
145
- ...(_child = child) === null || _child === void 0 ? void 0 : _child.props,
146
- ref: (0, _reactutilities.useMergedRefs)(triggerRef, (_child1 = child) === null || _child1 === void 0 ? void 0 : _child1.ref),
147
- onMouseEnter: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)((_child2 = child) === null || _child2 === void 0 ? void 0 : _child2.props.onMouseEnter, onMouseEnter)),
148
- onMouseLeave: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)((_child3 = child) === null || _child3 === void 0 ? void 0 : _child3.props.onMouseLeave, onMouseLeave)),
149
- onContextMenu: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)((_child4 = child) === null || _child4 === void 0 ? void 0 : _child4.props.onContextMenu, onContextMenu)),
150
- onMouseMove: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)((_child5 = child) === null || _child5 === void 0 ? void 0 : _child5.props.onMouseMove, onMouseMove))
143
+ ...child === null || child === void 0 ? void 0 : child.props,
144
+ ref: (0, _reactutilities.useMergedRefs)(triggerRef, child === null || child === void 0 ? void 0 : child.ref),
145
+ ...restoreFocusTargetAttribute,
146
+ onMouseEnter: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onMouseEnter, onMouseEnter)),
147
+ onMouseLeave: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onMouseLeave, onMouseLeave)),
148
+ onContextMenu: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onContextMenu, onContextMenu)),
149
+ onMouseMove: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onMouseMove, onMouseMove))
151
150
  };
152
151
  const triggerChildProps = {
153
152
  'aria-haspopup': 'menu',
154
153
  'aria-expanded': !open && !isSubmenu ? undefined : open,
155
- ...restoreFocusTargetAttribute,
156
154
  ...contextMenuProps,
157
- onClick: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)((_child6 = child) === null || _child6 === void 0 ? void 0 : _child6.props.onClick, onClick)),
158
- onKeyDown: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)((_child7 = child) === null || _child7 === void 0 ? void 0 : _child7.props.onKeyDown, onKeyDown))
155
+ onClick: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onClick, onClick)),
156
+ onKeyDown: (0, _reactutilities.useEventCallback)((0, _reactutilities.mergeCallbacks)(child === null || child === void 0 ? void 0 : child.props.onKeyDown, onKeyDown))
159
157
  };
160
- const ariaButtonTriggerChildProps = (0, _reactaria.useARIAButtonProps)(((_child8 = child) === null || _child8 === void 0 ? void 0 : _child8.type) === 'button' || ((_child9 = child) === null || _child9 === void 0 ? void 0 : _child9.type) === 'a' ? child.type : 'div', triggerChildProps);
158
+ const ariaButtonTriggerChildProps = (0, _reactaria.useARIAButtonProps)((child === null || child === void 0 ? void 0 : child.type) === 'button' || (child === null || child === void 0 ? void 0 : child.type) === 'a' ? child.type : 'div', triggerChildProps);
161
159
  return {
162
160
  isSubmenu,
163
161
  children: (0, _reactutilities.applyTriggerPropsToChildren)(children, openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps)
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuTrigger.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport { useFocusFinders, useRestoreFocusTarget } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowRight, ArrowLeft, Escape, ArrowDown } from '@fluentui/keyboard-keys';\nimport { applyTriggerPropsToChildren, getTriggerChild, isHTMLElement, mergeCallbacks, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\n/**\n * Create the state required to render MenuTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup menu\n *\n * @param props - props from this instance of MenuTrigger\n */ export const useMenuTrigger_unstable = (props)=>{\n var _child, _child1, _child2, _child3, _child4, _child5, _child6, _child7, _child8, _child9;\n const { children, disableButtonEnhancement = false } = props;\n const triggerRef = useMenuContext_unstable((context)=>context.triggerRef);\n const menuPopoverRef = useMenuContext_unstable((context)=>context.menuPopoverRef);\n const setOpen = useMenuContext_unstable((context)=>context.setOpen);\n const open = useMenuContext_unstable((context)=>context.open);\n const triggerId = useMenuContext_unstable((context)=>context.triggerId);\n const openOnHover = useMenuContext_unstable((context)=>context.openOnHover);\n const openOnContext = useMenuContext_unstable((context)=>context.openOnContext);\n const restoreFocusTargetAttribute = useRestoreFocusTarget();\n const isSubmenu = useIsSubmenu();\n const { findFirstFocusable } = useFocusFinders();\n const focusFirst = React.useCallback(()=>{\n var _firstFocusable;\n const firstFocusable = findFirstFocusable(menuPopoverRef.current);\n (_firstFocusable = firstFocusable) === null || _firstFocusable === void 0 ? void 0 : _firstFocusable.focus();\n }, [\n findFirstFocusable,\n menuPopoverRef\n ]);\n const openedWithKeyboardRef = React.useRef(false);\n const hasMouseMoved = React.useRef(false);\n const { dir } = useFluent();\n const OpenArrowKey = dir === 'ltr' ? ArrowRight : ArrowLeft;\n const child = getTriggerChild(children);\n const onContextMenu = (event)=>{\n if (isTargetDisabled(event) || event.isDefaultPrevented()) {\n return;\n }\n if (openOnContext) {\n event.preventDefault();\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerContextMenu',\n event\n });\n }\n };\n const onClick = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n if (!openOnContext) {\n setOpen(event, {\n open: !open,\n keyboard: openedWithKeyboardRef.current,\n type: 'menuTriggerClick',\n event\n });\n openedWithKeyboardRef.current = false;\n }\n };\n const onKeyDown = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n const key = event.key;\n if (!openOnContext && (isSubmenu && key === OpenArrowKey || !isSubmenu && key === ArrowDown)) {\n setOpen(event, {\n open: true,\n keyboard: true,\n type: 'menuTriggerKeyDown',\n event\n });\n }\n if (key === Escape && !isSubmenu) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuTriggerKeyDown',\n event\n });\n }\n // if menu is already open, can't rely on effects to focus\n if (open && key === OpenArrowKey && isSubmenu) {\n focusFirst();\n }\n };\n const onMouseEnter = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && hasMouseMoved.current) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerMouseEnter',\n event\n });\n }\n };\n // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience\n // First time open the mouse using mousemove and then continue with mouseenter\n // Only use once to determine that the user is using the mouse since it is an expensive event to handle\n const onMouseMove = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && !hasMouseMoved.current) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerMouseMove',\n event\n });\n hasMouseMoved.current = true;\n }\n };\n const onMouseLeave = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover) {\n setOpen(event, {\n open: false,\n keyboard: false,\n type: 'menuTriggerMouseLeave',\n event\n });\n }\n };\n const contextMenuProps = {\n id: triggerId,\n ...(_child = child) === null || _child === void 0 ? void 0 : _child.props,\n ref: useMergedRefs(triggerRef, (_child1 = child) === null || _child1 === void 0 ? void 0 : _child1.ref),\n onMouseEnter: useEventCallback(mergeCallbacks((_child2 = child) === null || _child2 === void 0 ? void 0 : _child2.props.onMouseEnter, onMouseEnter)),\n onMouseLeave: useEventCallback(mergeCallbacks((_child3 = child) === null || _child3 === void 0 ? void 0 : _child3.props.onMouseLeave, onMouseLeave)),\n onContextMenu: useEventCallback(mergeCallbacks((_child4 = child) === null || _child4 === void 0 ? void 0 : _child4.props.onContextMenu, onContextMenu)),\n onMouseMove: useEventCallback(mergeCallbacks((_child5 = child) === null || _child5 === void 0 ? void 0 : _child5.props.onMouseMove, onMouseMove))\n };\n const triggerChildProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': !open && !isSubmenu ? undefined : open,\n ...restoreFocusTargetAttribute,\n ...contextMenuProps,\n onClick: useEventCallback(mergeCallbacks((_child6 = child) === null || _child6 === void 0 ? void 0 : _child6.props.onClick, onClick)),\n onKeyDown: useEventCallback(mergeCallbacks((_child7 = child) === null || _child7 === void 0 ? void 0 : _child7.props.onKeyDown, onKeyDown))\n };\n const ariaButtonTriggerChildProps = useARIAButtonProps(((_child8 = child) === null || _child8 === void 0 ? void 0 : _child8.type) === 'button' || ((_child9 = child) === null || _child9 === void 0 ? void 0 : _child9.type) === 'a' ? child.type : 'div', triggerChildProps);\n return {\n isSubmenu,\n children: applyTriggerPropsToChildren(children, openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps)\n };\n};\nconst isTargetDisabled = (event)=>{\n const isDisabled = (el)=>el.hasAttribute('disabled') || el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true';\n if (isHTMLElement(event.target) && isDisabled(event.target)) {\n return true;\n }\n return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);\n};\n"],"names":["useMenuTrigger_unstable","props","_child","_child1","_child2","_child3","_child4","_child5","_child6","_child7","_child8","_child9","children","disableButtonEnhancement","triggerRef","useMenuContext_unstable","context","menuPopoverRef","setOpen","open","triggerId","openOnHover","openOnContext","restoreFocusTargetAttribute","useRestoreFocusTarget","isSubmenu","useIsSubmenu","findFirstFocusable","useFocusFinders","focusFirst","React","useCallback","_firstFocusable","firstFocusable","current","focus","openedWithKeyboardRef","useRef","hasMouseMoved","dir","useFluent","OpenArrowKey","ArrowRight","ArrowLeft","child","getTriggerChild","onContextMenu","event","isTargetDisabled","isDefaultPrevented","preventDefault","keyboard","type","onClick","onKeyDown","key","ArrowDown","Escape","onMouseEnter","onMouseMove","onMouseLeave","contextMenuProps","id","ref","useMergedRefs","useEventCallback","mergeCallbacks","triggerChildProps","undefined","ariaButtonTriggerChildProps","useARIAButtonProps","applyTriggerPropsToChildren","isDisabled","el","hasAttribute","getAttribute","isHTMLElement","target","currentTarget"],"mappings":"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"}
1
+ {"version":3,"sources":["useMenuTrigger.js"],"sourcesContent":["import * as React from 'react';\nimport { useMenuContext_unstable } from '../../contexts/menuContext';\nimport { useIsSubmenu } from '../../utils/useIsSubmenu';\nimport { useFocusFinders, useRestoreFocusTarget } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowRight, ArrowLeft, Escape, ArrowDown } from '@fluentui/keyboard-keys';\nimport { applyTriggerPropsToChildren, getTriggerChild, isHTMLElement, mergeCallbacks, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\n/**\n * Create the state required to render MenuTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup menu\n *\n * @param props - props from this instance of MenuTrigger\n */ export const useMenuTrigger_unstable = (props)=>{\n const { children, disableButtonEnhancement = false } = props;\n const triggerRef = useMenuContext_unstable((context)=>context.triggerRef);\n const menuPopoverRef = useMenuContext_unstable((context)=>context.menuPopoverRef);\n const setOpen = useMenuContext_unstable((context)=>context.setOpen);\n const open = useMenuContext_unstable((context)=>context.open);\n const triggerId = useMenuContext_unstable((context)=>context.triggerId);\n const openOnHover = useMenuContext_unstable((context)=>context.openOnHover);\n const openOnContext = useMenuContext_unstable((context)=>context.openOnContext);\n const restoreFocusTargetAttribute = useRestoreFocusTarget();\n const isSubmenu = useIsSubmenu();\n const { findFirstFocusable } = useFocusFinders();\n const focusFirst = React.useCallback(()=>{\n const firstFocusable = findFirstFocusable(menuPopoverRef.current);\n firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();\n }, [\n findFirstFocusable,\n menuPopoverRef\n ]);\n const openedWithKeyboardRef = React.useRef(false);\n const hasMouseMoved = React.useRef(false);\n const { dir } = useFluent();\n const OpenArrowKey = dir === 'ltr' ? ArrowRight : ArrowLeft;\n const child = getTriggerChild(children);\n const onContextMenu = (event)=>{\n if (isTargetDisabled(event) || event.isDefaultPrevented()) {\n return;\n }\n if (openOnContext) {\n event.preventDefault();\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerContextMenu',\n event\n });\n }\n };\n const onClick = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n if (!openOnContext) {\n setOpen(event, {\n open: !open,\n keyboard: openedWithKeyboardRef.current,\n type: 'menuTriggerClick',\n event\n });\n openedWithKeyboardRef.current = false;\n }\n };\n const onKeyDown = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n const key = event.key;\n if (!openOnContext && (isSubmenu && key === OpenArrowKey || !isSubmenu && key === ArrowDown)) {\n setOpen(event, {\n open: true,\n keyboard: true,\n type: 'menuTriggerKeyDown',\n event\n });\n }\n if (key === Escape && !isSubmenu) {\n setOpen(event, {\n open: false,\n keyboard: true,\n type: 'menuTriggerKeyDown',\n event\n });\n }\n // if menu is already open, can't rely on effects to focus\n if (open && key === OpenArrowKey && isSubmenu) {\n focusFirst();\n }\n };\n const onMouseEnter = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && hasMouseMoved.current) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerMouseEnter',\n event\n });\n }\n };\n // Opening a menu when a mouse hasn't moved and just entering the trigger is a bad a11y experience\n // First time open the mouse using mousemove and then continue with mouseenter\n // Only use once to determine that the user is using the mouse since it is an expensive event to handle\n const onMouseMove = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover && !hasMouseMoved.current) {\n setOpen(event, {\n open: true,\n keyboard: false,\n type: 'menuTriggerMouseMove',\n event\n });\n hasMouseMoved.current = true;\n }\n };\n const onMouseLeave = (event)=>{\n if (isTargetDisabled(event)) {\n return;\n }\n if (openOnHover) {\n setOpen(event, {\n open: false,\n keyboard: false,\n type: 'menuTriggerMouseLeave',\n event\n });\n }\n };\n const contextMenuProps = {\n id: triggerId,\n ...child === null || child === void 0 ? void 0 : child.props,\n ref: useMergedRefs(triggerRef, child === null || child === void 0 ? void 0 : child.ref),\n ...restoreFocusTargetAttribute,\n onMouseEnter: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseEnter, onMouseEnter)),\n onMouseLeave: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseLeave, onMouseLeave)),\n onContextMenu: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onContextMenu, onContextMenu)),\n onMouseMove: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onMouseMove, onMouseMove))\n };\n const triggerChildProps = {\n 'aria-haspopup': 'menu',\n 'aria-expanded': !open && !isSubmenu ? undefined : open,\n ...contextMenuProps,\n onClick: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onClick, onClick)),\n onKeyDown: useEventCallback(mergeCallbacks(child === null || child === void 0 ? void 0 : child.props.onKeyDown, onKeyDown))\n };\n const ariaButtonTriggerChildProps = useARIAButtonProps((child === null || child === void 0 ? void 0 : child.type) === 'button' || (child === null || child === void 0 ? void 0 : child.type) === 'a' ? child.type : 'div', triggerChildProps);\n return {\n isSubmenu,\n children: applyTriggerPropsToChildren(children, openOnContext ? contextMenuProps : disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps)\n };\n};\nconst isTargetDisabled = (event)=>{\n const isDisabled = (el)=>el.hasAttribute('disabled') || el.hasAttribute('aria-disabled') && el.getAttribute('aria-disabled') === 'true';\n if (isHTMLElement(event.target) && isDisabled(event.target)) {\n return true;\n }\n return isHTMLElement(event.currentTarget) && isDisabled(event.currentTarget);\n};\n"],"names":["useMenuTrigger_unstable","props","children","disableButtonEnhancement","triggerRef","useMenuContext_unstable","context","menuPopoverRef","setOpen","open","triggerId","openOnHover","openOnContext","restoreFocusTargetAttribute","useRestoreFocusTarget","isSubmenu","useIsSubmenu","findFirstFocusable","useFocusFinders","focusFirst","React","useCallback","firstFocusable","current","focus","openedWithKeyboardRef","useRef","hasMouseMoved","dir","useFluent","OpenArrowKey","ArrowRight","ArrowLeft","child","getTriggerChild","onContextMenu","event","isTargetDisabled","isDefaultPrevented","preventDefault","keyboard","type","onClick","onKeyDown","key","ArrowDown","Escape","onMouseEnter","onMouseMove","onMouseLeave","contextMenuProps","id","ref","useMergedRefs","useEventCallback","mergeCallbacks","triggerChildProps","undefined","ariaButtonTriggerChildProps","useARIAButtonProps","applyTriggerPropsToChildren","isDisabled","el","hasAttribute","getAttribute","isHTMLElement","target","currentTarget"],"mappings":"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"}
@@ -23,5 +23,7 @@ const menuGroupContextDefaultValue = {
23
23
  headerId: ''
24
24
  };
25
25
  const MenuGroupContextProvider = MenuGroupContext.Provider;
26
- var _React_useContext;
27
- const useMenuGroupContext_unstable = ()=>(_React_useContext = _react.useContext(MenuGroupContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuGroupContextDefaultValue;
26
+ const useMenuGroupContext_unstable = ()=>{
27
+ var _React_useContext;
28
+ return (_React_useContext = _react.useContext(MenuGroupContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuGroupContextDefaultValue;
29
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["menuGroupContext.js"],"sourcesContent":["import * as React from 'react';\nconst MenuGroupContext = React.createContext(undefined);\nconst menuGroupContextDefaultValue = {\n headerId: ''\n};\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\nvar _React_useContext;\nexport const useMenuGroupContext_unstable = ()=>(_React_useContext = React.useContext(MenuGroupContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuGroupContextDefaultValue;\n"],"names":["MenuGroupContextProvider","useMenuGroupContext_unstable","MenuGroupContext","React","createContext","undefined","menuGroupContextDefaultValue","headerId","Provider","_React_useContext","useContext"],"mappings":";;;;;;;;;;;IAKaA,wBAAwB;eAAxBA;;IAEAC,4BAA4B;eAA5BA;;;;iEAPU;AACvB,MAAMC,iCAAmBC,OAAMC,aAAa,CAACC;AAC7C,MAAMC,+BAA+B;IACjCC,UAAU;AACd;AACO,MAAMP,2BAA2BE,iBAAiBM,QAAQ;AACjE,IAAIC;AACG,MAAMR,+BAA+B,IAAI,AAACQ,CAAAA,oBAAoBN,OAAMO,UAAU,CAACR,iBAAgB,MAAO,QAAQO,sBAAsB,KAAK,IAAIA,oBAAoBH"}
1
+ {"version":3,"sources":["menuGroupContext.js"],"sourcesContent":["import * as React from 'react';\nconst MenuGroupContext = React.createContext(undefined);\nconst menuGroupContextDefaultValue = {\n headerId: ''\n};\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\nexport const useMenuGroupContext_unstable = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(MenuGroupContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuGroupContextDefaultValue;\n};\n"],"names":["MenuGroupContextProvider","useMenuGroupContext_unstable","MenuGroupContext","React","createContext","undefined","menuGroupContextDefaultValue","headerId","Provider","_React_useContext","useContext"],"mappings":";;;;;;;;;;;IAKaA,wBAAwB;eAAxBA;;IACAC,4BAA4B;eAA5BA;;;;iEANU;AACvB,MAAMC,iCAAmBC,OAAMC,aAAa,CAACC;AAC7C,MAAMC,+BAA+B;IACjCC,UAAU;AACd;AACO,MAAMP,2BAA2BE,iBAAiBM,QAAQ;AAC1D,MAAMP,+BAA+B;IACxC,IAAIQ;IACJ,OAAO,AAACA,CAAAA,oBAAoBN,OAAMO,UAAU,CAACR,iBAAgB,MAAO,QAAQO,sBAAsB,KAAK,IAAIA,oBAAoBH;AACnI"}
@@ -23,5 +23,7 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
23
23
  */ const MenuTriggerContext = /*#__PURE__*/ _react.createContext(undefined);
24
24
  const menuTriggerContextDefaultValue = false;
25
25
  const MenuTriggerContextProvider = MenuTriggerContext.Provider;
26
- var _React_useContext;
27
- const useMenuTriggerContext_unstable = ()=>(_React_useContext = _react.useContext(MenuTriggerContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuTriggerContextDefaultValue;
26
+ const useMenuTriggerContext_unstable = ()=>{
27
+ var _React_useContext;
28
+ return (_React_useContext = _react.useContext(MenuTriggerContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuTriggerContextDefaultValue;
29
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["menuTriggerContext.js"],"sourcesContent":["import * as React from 'react';\n/**\n * Context used communicate with a child menu item that it is a trigger for a submenu\n */ const MenuTriggerContext = React.createContext(undefined);\nconst menuTriggerContextDefaultValue = false;\nexport const MenuTriggerContextProvider = MenuTriggerContext.Provider;\nvar _React_useContext;\nexport const useMenuTriggerContext_unstable = ()=>(_React_useContext = React.useContext(MenuTriggerContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuTriggerContextDefaultValue;\n"],"names":["MenuTriggerContextProvider","useMenuTriggerContext_unstable","MenuTriggerContext","React","createContext","undefined","menuTriggerContextDefaultValue","Provider","_React_useContext","useContext"],"mappings":";;;;;;;;;;;IAKaA,0BAA0B;eAA1BA;;IAEAC,8BAA8B;eAA9BA;;;;iEAPU;AACvB;;CAEC,GAAG,MAAMC,mCAAqBC,OAAMC,aAAa,CAACC;AACnD,MAAMC,iCAAiC;AAChC,MAAMN,6BAA6BE,mBAAmBK,QAAQ;AACrE,IAAIC;AACG,MAAMP,iCAAiC,IAAI,AAACO,CAAAA,oBAAoBL,OAAMM,UAAU,CAACP,mBAAkB,MAAO,QAAQM,sBAAsB,KAAK,IAAIA,oBAAoBF"}
1
+ {"version":3,"sources":["menuTriggerContext.js"],"sourcesContent":["import * as React from 'react';\n/**\n * Context used communicate with a child menu item that it is a trigger for a submenu\n */ const MenuTriggerContext = React.createContext(undefined);\nconst menuTriggerContextDefaultValue = false;\nexport const MenuTriggerContextProvider = MenuTriggerContext.Provider;\nexport const useMenuTriggerContext_unstable = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(MenuTriggerContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuTriggerContextDefaultValue;\n};\n"],"names":["MenuTriggerContextProvider","useMenuTriggerContext_unstable","MenuTriggerContext","React","createContext","undefined","menuTriggerContextDefaultValue","Provider","_React_useContext","useContext"],"mappings":";;;;;;;;;;;IAKaA,0BAA0B;eAA1BA;;IACAC,8BAA8B;eAA9BA;;;;iEANU;AACvB;;CAEC,GAAG,MAAMC,mCAAqBC,OAAMC,aAAa,CAACC;AACnD,MAAMC,iCAAiC;AAChC,MAAMN,6BAA6BE,mBAAmBK,QAAQ;AAC9D,MAAMN,iCAAiC;IAC1C,IAAIO;IACJ,OAAO,AAACA,CAAAA,oBAAoBL,OAAMM,UAAU,CAACP,mBAAkB,MAAO,QAAQM,sBAAsB,KAAK,IAAIA,oBAAoBF;AACrI"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-menu",
3
- "version": "9.12.18",
3
+ "version": "9.12.20",
4
4
  "description": "Fluent UI menu component",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -36,17 +36,17 @@
36
36
  "@fluentui/scripts-tasks": "*"
37
37
  },
38
38
  "dependencies": {
39
- "@fluentui/keyboard-keys": "^9.0.4",
40
- "@fluentui/react-aria": "^9.3.36",
41
- "@fluentui/react-context-selector": "^9.1.34",
42
- "@fluentui/react-icons": "^2.0.207",
43
- "@fluentui/react-portal": "^9.3.16",
44
- "@fluentui/react-positioning": "^9.9.13",
45
- "@fluentui/react-shared-contexts": "^9.8.1",
46
- "@fluentui/react-tabster": "^9.12.11",
47
- "@fluentui/react-theme": "^9.1.12",
48
- "@fluentui/react-utilities": "^9.13.3",
49
- "@fluentui/react-jsx-runtime": "^9.0.10",
39
+ "@fluentui/keyboard-keys": "^9.0.6",
40
+ "@fluentui/react-aria": "^9.3.38",
41
+ "@fluentui/react-context-selector": "^9.1.36",
42
+ "@fluentui/react-icons": "^2.0.217",
43
+ "@fluentui/react-portal": "^9.3.18",
44
+ "@fluentui/react-positioning": "^9.9.15",
45
+ "@fluentui/react-shared-contexts": "^9.9.1",
46
+ "@fluentui/react-tabster": "^9.13.1",
47
+ "@fluentui/react-theme": "^9.1.14",
48
+ "@fluentui/react-utilities": "^9.13.5",
49
+ "@fluentui/react-jsx-runtime": "^9.0.12",
50
50
  "@griffel/react": "^1.5.14",
51
51
  "@swc/helpers": "^0.5.1"
52
52
  },