@fluentui/react-menu 9.12.2 → 9.12.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. package/CHANGELOG.json +133 -1
  2. package/CHANGELOG.md +37 -2
  3. package/lib/components/MenuDivider/renderMenuDivider.js +3 -3
  4. package/lib/components/MenuDivider/renderMenuDivider.js.map +1 -1
  5. package/lib/components/MenuDivider/useMenuDivider.js +4 -2
  6. package/lib/components/MenuDivider/useMenuDivider.js.map +1 -1
  7. package/lib/components/MenuGroup/renderMenuGroup.js +3 -3
  8. package/lib/components/MenuGroup/renderMenuGroup.js.map +1 -1
  9. package/lib/components/MenuGroup/useMenuGroup.js +4 -2
  10. package/lib/components/MenuGroup/useMenuGroup.js.map +1 -1
  11. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js +3 -3
  12. package/lib/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
  13. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js +4 -2
  14. package/lib/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  15. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.js +1 -1
  16. package/lib/components/MenuItem/renderMenuItem.js +3 -3
  17. package/lib/components/MenuItem/renderMenuItem.js.map +1 -1
  18. package/lib/components/MenuItem/useMenuItem.js +22 -14
  19. package/lib/components/MenuItem/useMenuItem.js.map +1 -1
  20. package/lib/components/MenuItem/useMenuItemStyles.styles.js +1 -1
  21. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +3 -3
  22. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  23. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js +4 -3
  24. package/lib/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  25. package/lib/components/MenuItemLink/renderMenuItemLink.js +3 -3
  26. package/lib/components/MenuItemLink/renderMenuItemLink.js.map +1 -1
  27. package/lib/components/MenuItemLink/useMenuItemLink.js +4 -2
  28. package/lib/components/MenuItemLink/useMenuItemLink.js.map +1 -1
  29. package/lib/components/MenuItemRadio/renderMenuItemRadio.js +3 -3
  30. package/lib/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  31. package/lib/components/MenuItemRadio/useMenuItemRadio.js +4 -3
  32. package/lib/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  33. package/lib/components/MenuList/renderMenuList.js +3 -3
  34. package/lib/components/MenuList/renderMenuList.js.map +1 -1
  35. package/lib/components/MenuList/useMenuList.js +4 -2
  36. package/lib/components/MenuList/useMenuList.js.map +1 -1
  37. package/lib/components/MenuList/useMenuListStyles.styles.js +1 -1
  38. package/lib/components/MenuPopover/renderMenuPopover.js +4 -4
  39. package/lib/components/MenuPopover/renderMenuPopover.js.map +1 -1
  40. package/lib/components/MenuPopover/useMenuPopover.js +4 -2
  41. package/lib/components/MenuPopover/useMenuPopover.js.map +1 -1
  42. package/lib/components/MenuPopover/useMenuPopoverStyles.styles.js +5 -5
  43. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +3 -3
  44. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  45. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +4 -2
  46. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  47. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js +1 -1
  48. package/lib/components/MenuTrigger/useMenuTrigger.js +1 -1
  49. package/lib/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  50. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js +2 -2
  51. package/lib-commonjs/components/MenuDivider/renderMenuDivider.js.map +1 -1
  52. package/lib-commonjs/components/MenuDivider/useMenuDivider.js +3 -1
  53. package/lib-commonjs/components/MenuDivider/useMenuDivider.js.map +1 -1
  54. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js +2 -2
  55. package/lib-commonjs/components/MenuGroup/renderMenuGroup.js.map +1 -1
  56. package/lib-commonjs/components/MenuGroup/useMenuGroup.js +3 -1
  57. package/lib-commonjs/components/MenuGroup/useMenuGroup.js.map +1 -1
  58. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js +2 -2
  59. package/lib-commonjs/components/MenuGroupHeader/renderMenuGroupHeader.js.map +1 -1
  60. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js +3 -1
  61. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeader.js.map +1 -1
  62. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.js +2 -2
  63. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.js.map +1 -1
  64. package/lib-commonjs/components/MenuItem/renderMenuItem.js +2 -2
  65. package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -1
  66. package/lib-commonjs/components/MenuItem/useMenuItem.js +21 -13
  67. package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
  68. package/lib-commonjs/components/MenuItem/useMenuItemStyles.styles.js +6 -6
  69. package/lib-commonjs/components/MenuItem/useMenuItemStyles.styles.js.map +1 -1
  70. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js +2 -2
  71. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  72. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js +3 -2
  73. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  74. package/lib-commonjs/components/MenuItemLink/renderMenuItemLink.js +2 -2
  75. package/lib-commonjs/components/MenuItemLink/renderMenuItemLink.js.map +1 -1
  76. package/lib-commonjs/components/MenuItemLink/useMenuItemLink.js +3 -1
  77. package/lib-commonjs/components/MenuItemLink/useMenuItemLink.js.map +1 -1
  78. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js +2 -2
  79. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  80. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js +3 -2
  81. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadio.js.map +1 -1
  82. package/lib-commonjs/components/MenuList/renderMenuList.js +2 -2
  83. package/lib-commonjs/components/MenuList/renderMenuList.js.map +1 -1
  84. package/lib-commonjs/components/MenuList/useMenuList.js +3 -1
  85. package/lib-commonjs/components/MenuList/useMenuList.js.map +1 -1
  86. package/lib-commonjs/components/MenuList/useMenuListStyles.styles.js +3 -3
  87. package/lib-commonjs/components/MenuList/useMenuListStyles.styles.js.map +1 -1
  88. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js +3 -3
  89. package/lib-commonjs/components/MenuPopover/renderMenuPopover.js.map +1 -1
  90. package/lib-commonjs/components/MenuPopover/useMenuPopover.js +3 -1
  91. package/lib-commonjs/components/MenuPopover/useMenuPopover.js.map +1 -1
  92. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.styles.js +8 -10
  93. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.styles.js.map +1 -1
  94. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js +2 -2
  95. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  96. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +3 -1
  97. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  98. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js +1 -1
  99. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js.map +1 -1
  100. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js +1 -1
  101. package/lib-commonjs/components/MenuTrigger/useMenuTrigger.js.map +1 -1
  102. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuItemRadio.js"],"sourcesContent":["import * as React from 'react';\nimport { resolveShorthand } 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: resolveShorthand(props.checkmark, {\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(Checkmark16Filled, null)\n },\n required: true\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","resolveShorthand","defaultProps","children","React","createElement","Checkmark16Filled","required","onClick","e","_props_onClick","call"],"mappings":";;;;+BAOiBA;;aAAAA;;;6DAPM;gCACU;4BACC;iCACU;6BACP;AAG1B,MAAMA,4BAA4B,CAACC,OAAOC,MAAM;IACvD,MAAM,EAAEC,KAAI,EAAGC,MAAK,EAAG,GAAGH;IAC1B,MAAMI,UAAUC,IAAAA,4CAA2B,EAAC,CAACC,UAAU;QACnD,IAAIC;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,yBAAyBD,QAAQG,aAAa,AAAD,MAAO,IAAI,IAAIF,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,IAAAA,gCAAgB,EAACf,MAAMc,SAAS,EAAE;gBACzCE,cAAc;oBACVC,UAAU,WAAW,GAAGC,OAAMC,aAAa,CAACC,6BAAiB,EAAE,IAAI;gBACvE;gBACAC,UAAU,IAAI;YAClB;YACAC,SAAS,CAACC,IAAI;gBACV,IAAIC;gBACJb,gBAAgB,IAAI,IAAIA,gBAAgB,KAAK,IAAI,KAAK,IAAIA,YAAYY,GAAGrB,MAAMC,OAAOC,QAAQ;gBAC7FoB,CAAAA,iBAAiBxB,MAAMsB,OAAO,AAAD,MAAO,IAAI,IAAIE,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeC,IAAI,CAACzB,OAAOuB,EAAE;YACnH;QACJ,GAAGtB,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;;aAAAA;;;6DAPM;gCACF;4BACa;iCACU;6BACP;AAG1B,MAAMA,4BAA4B,CAACC,OAAOC,MAAM;IACvD,MAAM,EAAEC,KAAI,EAAGC,MAAK,EAAG,GAAGH;IAC1B,MAAMI,UAAUC,IAAAA,4CAA2B,EAAC,CAACC,UAAU;QACnD,IAAIC;QACJ,MAAMC,eAAe,AAAC,CAAA,AAACD,CAAAA,yBAAyBD,QAAQG,aAAa,AAAD,MAAO,IAAI,IAAIF,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,IAAI;gBACvE;gBACAC,iBAAiB,IAAI;gBACrBC,aAAa;YACjB;YACAC,SAAS,CAACC,IAAI;gBACV,IAAIC;gBACJf,gBAAgB,IAAI,IAAIA,gBAAgB,KAAK,IAAI,KAAK,IAAIA,YAAYc,GAAGvB,MAAMC,OAAOC,QAAQ;gBAC7FsB,CAAAA,iBAAiB1B,MAAMwB,OAAO,AAAD,MAAO,IAAI,IAAIE,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAeC,IAAI,CAAC3B,OAAOyB,EAAE;YACnH;QACJ,GAAGxB,IAAI;QACPG;QACAF;QACAC;IACJ;AACJ"}
@@ -10,8 +10,8 @@ const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
10
10
  const _reactUtilities = require("@fluentui/react-utilities");
11
11
  const _menuListContext = require("../../contexts/menuListContext");
12
12
  const renderMenuList_unstable = (state, contextValues)=>{
13
- const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
13
+ (0, _reactUtilities.assertSlots)(state);
14
14
  return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_menuListContext.MenuListProvider, {
15
15
  value: contextValues.menuList
16
- }, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root));
16
+ }, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null));
17
17
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["renderMenuList.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { MenuListProvider } from '../../contexts/menuListContext';\n/**\n * Function that renders the final JSX of the component\n */ export const renderMenuList_unstable = (state, contextValues)=>{\n const { slots , slotProps } = getSlotsNext(state);\n return /*#__PURE__*/ createElement(MenuListProvider, {\n value: contextValues.menuList\n }, /*#__PURE__*/ createElement(slots.root, slotProps.root));\n};\n"],"names":["renderMenuList_unstable","state","contextValues","slots","slotProps","getSlotsNext","createElement","MenuListProvider","value","menuList","root"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACtD;iCACI;AAGtB,MAAMA,0BAA0B,CAACC,OAAOC,gBAAgB;IAC/D,MAAM,EAAEC,MAAK,EAAGC,UAAS,EAAG,GAAGC,IAAAA,4BAAY,EAACJ;IAC5C,OAAO,WAAW,GAAGK,IAAAA,8BAAa,EAACC,iCAAgB,EAAE;QACjDC,OAAON,cAAcO,QAAQ;IACjC,GAAG,WAAW,GAAGH,IAAAA,8BAAa,EAACH,MAAMO,IAAI,EAAEN,UAAUM,IAAI;AAC7D"}
1
+ {"version":3,"sources":["renderMenuList.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { MenuListProvider } from '../../contexts/menuListContext';\n/**\n * Function that renders the final JSX of the component\n */ export const renderMenuList_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(MenuListProvider, {\n value: contextValues.menuList\n }, /*#__PURE__*/ createElement(state.root, null));\n};\n"],"names":["renderMenuList_unstable","state","contextValues","assertSlots","createElement","MenuListProvider","value","menuList","root"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACvD;iCACK;AAGtB,MAAMA,0BAA0B,CAACC,OAAOC,gBAAgB;IAC/DC,IAAAA,2BAAW,EAACF;IACZ,OAAO,WAAW,GAAGG,IAAAA,8BAAa,EAACC,iCAAgB,EAAE;QACjDC,OAAOJ,cAAcK,QAAQ;IACjC,GAAG,WAAW,GAAGH,IAAAA,8BAAa,EAACH,MAAMO,IAAI,EAAE,IAAI;AACnD"}
@@ -113,12 +113,14 @@ const useMenuList_unstable = (props, ref)=>{
113
113
  components: {
114
114
  root: 'div'
115
115
  },
116
- root: (0, _reactUtilities.getNativeElementProps)('div', {
116
+ root: _reactUtilities.slot.always((0, _reactUtilities.getNativeElementProps)('div', {
117
117
  ref: (0, _reactUtilities.useMergedRefs)(ref, innerRef),
118
118
  role: 'menu',
119
119
  'aria-labelledby': menuContext.triggerId,
120
120
  ...focusAttributes,
121
121
  ...props
122
+ }), {
123
+ elementType: 'div'
122
124
  }),
123
125
  hasIcons: menuContext.hasIcons || false,
124
126
  hasCheckmarks: menuContext.hasCheckmarks || false,
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuList.js"],"sourcesContent":["import * as React from 'react';\nimport { useMergedRefs, useEventCallback, useControllableState, getNativeElementProps } 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: getNativeElementProps('div', {\n ref: useMergedRefs(ref, innerRef),\n role: 'menu',\n 'aria-labelledby': menuContext.triggerId,\n ...focusAttributes,\n ...props\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","getNativeElementProps","useMergedRefs","role","triggerId","hasIcons","hasCheckmarks","useMenuContext_unstable","context","contextValue","isUsingPropsAndContext","val"],"mappings":";;;;+BAQiBA;;aAAAA;;;6DARM;gCACsE;8BACpC;sCACrB;6BACI;AAI7B,MAAMA,uBAAuB,CAACC,OAAOC,MAAM;IAClD,MAAM,EAAEC,iBAAgB,EAAG,GAAGC,IAAAA,6BAAe;IAC7C,MAAMC,cAAcC;IACpB,MAAMC,iBAAiBC,IAAAA,yCAAmB,EAACC,wBAAW;IACtD,MAAMC,kBAAkBC,IAAAA,qCAAuB,EAAC;QAC5CC,UAAU,IAAI;QACdC,sBAAsB;YAClBC,KAAKP;QACT;IACJ;IACA,IAAIQ,yBAAyBd,OAAOI,aAAaE,iBAAiB;QAC9D,4CAA4C;QAC5C,sCAAsC;QACtCS,QAAQC,IAAI,CAAC;IACjB,CAAC;IACD,MAAMC,WAAWC,OAAMC,MAAM,CAAC,IAAI;IAClC,MAAMC,2BAA2BF,OAAMG,WAAW,CAAC,CAACC,GAAGC,SAAS;QAC5D,gFAAgF;QAChF,MAAMC,gBAAgB;YAClB;YACA;YACA;SACH;QACD,IAAI,CAACP,SAASQ,OAAO,EAAE;YACnB;QACJ,CAAC;QACD,MAAMC,YAAYxB,iBAAiBe,SAASQ,OAAO,EAAE,CAACE,KAAKA,GAAGC,YAAY,CAAC,WAAWJ,cAAcK,OAAO,CAACF,GAAGG,YAAY,CAAC,aAAa,CAAC;QAC1I,IAAIC,aAAaL,UAAUG,OAAO,CAACN,UAAU;QAC7C,IAAIQ,eAAeL,UAAUM,MAAM,EAAE;YACjCD,aAAa;QACjB,CAAC;QACD,MAAME,aAAaP,UAAUQ,GAAG,CAAC,CAACC,WAAW;YACzC,IAAIC;YACJ,OAAO,AAACA,CAAAA,wBAAwBD,SAASE,WAAW,AAAD,MAAO,IAAI,IAAID,0BAA0B,KAAK,IAAI,KAAK,IAAIA,sBAAsBE,MAAM,CAAC,GAAGC,WAAW,EAAE;QAC/J;QACA,MAAMC,OAAOlB,EAAEmB,GAAG,CAACF,WAAW;QAC9B,MAAMG,qBAAqB,CAACC,OAAOC,YAAY;YAC3C,IAAI,IAAIC,IAAIF,OAAOE,IAAIZ,WAAWD,MAAM,EAAEa,IAAI;gBAC1C,IAAIL,SAASP,UAAU,CAACY,EAAE,EAAE;oBACxB,OAAOA;gBACX,CAAC;YACL;YACA,OAAO,CAAC;QACZ;QACA,oCAAoC;QACpC,IAAIC,QAAQJ,mBAAmBX,YAAYS;QAC3C,wDAAwD;QACxD,IAAIM,UAAU,CAAC,GAAG;YACdA,QAAQJ,mBAAmB,GAAGF;QAClC,CAAC;QACD,wBAAwB;QACxB,IAAIM,QAAQ,CAAC,GAAG;YACZpB,SAAS,CAACoB,MAAM,CAACC,KAAK;QAC1B,CAAC;IACL,GAAG;QACC7C;KACH;IACD,IAAI8C;IACJ,MAAM,CAACC,eAAeC,iBAAiB,GAAGC,IAAAA,oCAAoB,EAAC;QAC3DC,OAAO,AAACJ,CAAAA,uBAAuBhD,MAAMiD,aAAa,AAAD,MAAO,IAAI,IAAID,yBAAyB,KAAK,IAAIA,uBAAuB1C,iBAAiBF,YAAY6C,aAAa,GAAGI,SAAS;QAC/KC,cAActD,MAAMuD,oBAAoB;QACxCC,cAAc,CAAC;IACnB;IACA,IAAIC;IACJ,MAAMC,2BAA2B,AAACD,CAAAA,8BAA8BzD,MAAM2D,oBAAoB,AAAD,MAAO,IAAI,IAAIF,gCAAgC,KAAK,IAAIA,8BAA8BnD,iBAAiBF,YAAYuD,oBAAoB,GAAGN,SAAS;IAC5O,MAAMO,iBAAiBC,IAAAA,gCAAgB,EAAC,CAACvC,GAAGwC,MAAMC,OAAOC,UAAU;QAC/D,MAAMC,eAAe,AAAChB,CAAAA,kBAAkB,IAAI,IAAIA,kBAAkB,KAAK,IAAI,KAAK,IAAIA,aAAa,CAACa,KAAK,AAAD,KAAM,EAAE;QAC9G,MAAMI,kBAAkB;eACjBD;SACN;QACD,IAAID,SAAS;YACTE,gBAAgBC,MAAM,CAACD,gBAAgBrC,OAAO,CAACkC,QAAQ;QAC3D,OAAO;YACHG,gBAAgBE,IAAI,CAACL;QACzB,CAAC;QACDL,6BAA6B,IAAI,IAAIA,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyBpC,GAAG;YAC5GwC;YACAG,cAAcC;QAClB,EAAE;QACFhB,iBAAiB,CAACmB,IAAK,CAAA;gBACf,GAAGA,CAAC;gBACJ,CAACP,KAAK,EAAEI;YACZ,CAAA;IACR;IACA,MAAMI,cAAcT,IAAAA,gCAAgB,EAAC,CAACvC,GAAGwC,MAAMC,QAAQ;QACnD,MAAMG,kBAAkB;YACpBH;SACH;QACDb,iBAAiB,CAACmB,IAAK,CAAA;gBACf,GAAGA,CAAC;gBACJ,CAACP,KAAK,EAAEI;YACZ,CAAA;QACJR,6BAA6B,IAAI,IAAIA,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyBpC,GAAG;YAC5GwC;YACAG,cAAcC;QAClB,EAAE;IACN;IACA,OAAO;QACHK,YAAY;YACRC,MAAM;QACV;QACAA,MAAMC,IAAAA,qCAAqB,EAAC,OAAO;YAC/BxE,KAAKyE,IAAAA,6BAAa,EAACzE,KAAKgB;YACxB0D,MAAM;YACN,mBAAmBvE,YAAYwE,SAAS;YACxC,GAAGnE,eAAe;YAClB,GAAGT,KAAK;QACZ;QACA6E,UAAUzE,YAAYyE,QAAQ,IAAI,KAAK;QACvCC,eAAe1E,YAAY0E,aAAa,IAAI,KAAK;QACjD7B;QACA3C;QACAc;QACAkD;QACAV;IACJ;AACJ;AACA;;CAEC,GAAG,MAAMvD,0BAA0B,IAAI;IACpC,MAAM4C,gBAAgB8B,IAAAA,oCAAuB,EAAC,CAACC,UAAUA,QAAQ/B,aAAa;IAC9E,MAAMU,uBAAuBoB,IAAAA,oCAAuB,EAAC,CAACC,UAAUA,QAAQrB,oBAAoB;IAC5F,MAAMiB,YAAYG,IAAAA,oCAAuB,EAAC,CAACC,UAAUA,QAAQJ,SAAS;IACtE,MAAMC,WAAWE,IAAAA,oCAAuB,EAAC,CAACC,UAAUA,QAAQH,QAAQ;IACpE,MAAMC,gBAAgBC,IAAAA,oCAAuB,EAAC,CAACC,UAAUA,QAAQF,aAAa;IAC9E,OAAO;QACH7B;QACAU;QACAiB;QACAC;QACAC;IACJ;AACJ;AACA;;CAEC,GAAG,MAAMhE,2BAA2B,CAACd,OAAOiF,cAAc3E,iBAAiB;IACxE,IAAI4E,yBAAyB,KAAK;IAClC,IAAI,MAAMC,OAAOF,aAAa;QAC1B,IAAIjF,KAAK,CAACmF,IAAI,EAAE;YACZD,yBAAyB,IAAI;QACjC,CAAC;IACL;IACA,OAAO5E,kBAAkB4E;AAC7B"}
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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"}
@@ -28,9 +28,9 @@ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
28
28
  }
29
29
  }, {
30
30
  d: [
31
- ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}",
32
- ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}",
33
- ".f16mnhsx{-webkit-column-gap:2px;column-gap:2px;}",
31
+ ".f22iagw{display:flex;}",
32
+ ".f1vx9l62{flex-direction:column;}",
33
+ ".f16mnhsx{column-gap:2px;}",
34
34
  ".fbi42co{row-gap:2px;}",
35
35
  ".f1l02sjl{height:100%;}"
36
36
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuListStyles.styles.js"],"sourcesContent":["import { mergeClasses, __styles, shorthands } from '@griffel/react';\nexport const menuListClassNames = {\n root: 'fui-MenuList'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1vx9l62\",\n i8kkvl: \"f16mnhsx\",\n Belr9w4: \"fbi42co\"\n },\n hasMenuContext: {\n Bqenvij: \"f1l02sjl\"\n }\n}, {\n d: [\".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}\", \".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}\", \".f16mnhsx{-webkit-column-gap:2px;column-gap:2px;}\", \".fbi42co{row-gap:2px;}\", \".f1l02sjl{height:100%;}\"]\n});\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuListStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuListClassNames.root, styles.root, state.hasMenuContext && styles.hasMenuContext, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMenuListStyles.styles.js.map"],"names":["menuListClassNames","useMenuListStyles_unstable","root","useStyles","__styles","mc9l5x","Beiy3e4","i8kkvl","Belr9w4","hasMenuContext","Bqenvij","d","state","styles","className","mergeClasses"],"mappings":";;;;;;;;;;;IACaA,kBAAkB,MAAlBA;IAmBAC,0BAA0B,MAA1BA;;uBApBsC;AAC5C,MAAMD,qBAAqB;IAChCE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,SAAS;IACX;IACAC,gBAAgB;QACdC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAwF;QAA6F;QAAqD;QAA0B;KAA0B;AACpS;AAIO,MAAMV,6BAA6BW,CAAAA,QAAS;IACjD,MAAMC,SAASV;IACfS,MAAMV,IAAI,CAACY,SAAS,GAAGC,IAAAA,mBAAY,EAACf,mBAAmBE,IAAI,EAAEW,OAAOX,IAAI,EAAEU,MAAMH,cAAc,IAAII,OAAOJ,cAAc,EAAEG,MAAMV,IAAI,CAACY,SAAS;IAC7I,OAAOF;AACT,GACA,oDAAoD"}
1
+ {"version":3,"sources":["useMenuListStyles.styles.js"],"sourcesContent":["import { mergeClasses, __styles, shorthands } from '@griffel/react';\nexport const menuListClassNames = {\n root: 'fui-MenuList'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1vx9l62\",\n i8kkvl: \"f16mnhsx\",\n Belr9w4: \"fbi42co\"\n },\n hasMenuContext: {\n Bqenvij: \"f1l02sjl\"\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f1vx9l62{flex-direction:column;}\", \".f16mnhsx{column-gap:2px;}\", \".fbi42co{row-gap:2px;}\", \".f1l02sjl{height:100%;}\"]\n});\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuListStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuListClassNames.root, styles.root, state.hasMenuContext && styles.hasMenuContext, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMenuListStyles.styles.js.map"],"names":["menuListClassNames","useMenuListStyles_unstable","root","useStyles","__styles","mc9l5x","Beiy3e4","i8kkvl","Belr9w4","hasMenuContext","Bqenvij","d","state","styles","className","mergeClasses"],"mappings":";;;;;;;;;;;IACaA,kBAAkB,MAAlBA;IAmBAC,0BAA0B,MAA1BA;;uBApBsC;AAC5C,MAAMD,qBAAqB;IAChCE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,SAAS;IACX;IACAC,gBAAgB;QACdC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAA2B;QAAqC;QAA8B;QAA0B;KAA0B;AACxJ;AAIO,MAAMV,6BAA6BW,CAAAA,QAAS;IACjD,MAAMC,SAASV;IACfS,MAAMV,IAAI,CAACY,SAAS,GAAGC,IAAAA,mBAAY,EAACf,mBAAmBE,IAAI,EAAEW,OAAOX,IAAI,EAAEU,MAAMH,cAAc,IAAII,OAAOJ,cAAc,EAAEG,MAAMV,IAAI,CAACY,SAAS;IAC7I,OAAOF;AACT,GACA,oDAAoD"}
@@ -10,11 +10,11 @@ const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
10
10
  const _reactUtilities = require("@fluentui/react-utilities");
11
11
  const _reactPortal = require("@fluentui/react-portal");
12
12
  const renderMenuPopover_unstable = (state)=>{
13
- const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
13
+ (0, _reactUtilities.assertSlots)(state);
14
14
  if (state.inline) {
15
- return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root);
15
+ return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null);
16
16
  }
17
17
  return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(_reactPortal.Portal, {
18
18
  mountNode: state.mountNode
19
- }, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root));
19
+ }, /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null));
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["renderMenuPopover.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\nimport { Portal } from '@fluentui/react-portal';\n/**\n * Render the final JSX of MenuPopover\n */ export const renderMenuPopover_unstable = (state)=>{\n const { slots , slotProps } = getSlotsNext(state);\n if (state.inline) {\n return /*#__PURE__*/ createElement(slots.root, slotProps.root);\n }\n return /*#__PURE__*/ createElement(Portal, {\n mountNode: state.mountNode\n }, /*#__PURE__*/ createElement(slots.root, slotProps.root));\n};\n"],"names":["renderMenuPopover_unstable","state","slots","slotProps","getSlotsNext","inline","createElement","root","Portal","mountNode"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACtD;6BACN;AAGZ,MAAMA,6BAA6B,CAACC,QAAQ;IACnD,MAAM,EAAEC,MAAK,EAAGC,UAAS,EAAG,GAAGC,IAAAA,4BAAY,EAACH;IAC5C,IAAIA,MAAMI,MAAM,EAAE;QACd,OAAO,WAAW,GAAGC,IAAAA,8BAAa,EAACJ,MAAMK,IAAI,EAAEJ,UAAUI,IAAI;IACjE,CAAC;IACD,OAAO,WAAW,GAAGD,IAAAA,8BAAa,EAACE,mBAAM,EAAE;QACvCC,WAAWR,MAAMQ,SAAS;IAC9B,GAAG,WAAW,GAAGH,IAAAA,8BAAa,EAACJ,MAAMK,IAAI,EAAEJ,UAAUI,IAAI;AAC7D"}
1
+ {"version":3,"sources":["renderMenuPopover.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { Portal } from '@fluentui/react-portal';\n/**\n * Render the final JSX of MenuPopover\n */ export const renderMenuPopover_unstable = (state)=>{\n assertSlots(state);\n if (state.inline) {\n return /*#__PURE__*/ createElement(state.root, null);\n }\n return /*#__PURE__*/ createElement(Portal, {\n mountNode: state.mountNode\n }, /*#__PURE__*/ createElement(state.root, null));\n};\n"],"names":["renderMenuPopover_unstable","state","assertSlots","inline","createElement","root","Portal","mountNode"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAKjCA;;aAAAA;;iCALkE;gCACvD;6BACL;AAGZ,MAAMA,6BAA6B,CAACC,QAAQ;IACnDC,IAAAA,2BAAW,EAACD;IACZ,IAAIA,MAAME,MAAM,EAAE;QACd,OAAO,WAAW,GAAGC,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAE,IAAI;IACvD,CAAC;IACD,OAAO,WAAW,GAAGD,IAAAA,8BAAa,EAACE,mBAAM,EAAE;QACvCC,WAAWN,MAAMM,SAAS;IAC9B,GAAG,WAAW,GAAGH,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAE,IAAI;AACnD"}
@@ -54,11 +54,13 @@ const useMenuPopover_unstable = (props, ref)=>{
54
54
  var _useMenuContext_unstable;
55
55
  const inline = (_useMenuContext_unstable = (0, _menuContext.useMenuContext_unstable)((context)=>context.inline)) !== null && _useMenuContext_unstable !== void 0 ? _useMenuContext_unstable : false;
56
56
  const mountNode = (0, _menuContext.useMenuContext_unstable)((context)=>context.mountNode);
57
- const rootProps = (0, _reactUtilities.getNativeElementProps)('div', {
57
+ const rootProps = _reactUtilities.slot.always((0, _reactUtilities.getNativeElementProps)('div', {
58
58
  role: 'presentation',
59
59
  ...restoreFocusSourceAttributes,
60
60
  ...props,
61
61
  ref: (0, _reactUtilities.useMergedRefs)(ref, popoverRef, mouseOverListenerCallbackRef)
62
+ }), {
63
+ elementType: 'div'
62
64
  });
63
65
  const { onMouseEnter: onMouseEnterOriginal , onKeyDown: onKeyDownOriginal } = rootProps;
64
66
  rootProps.onMouseEnter = (0, _reactUtilities.useEventCallback)((event)=>{
@@ -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 } 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 = getNativeElementProps('div', {\n role: 'presentation',\n ...restoreFocusSourceAttributes,\n ...props,\n ref: useMergedRefs(ref, popoverRef, mouseOverListenerCallbackRef)\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","getNativeElementProps","role","useMergedRefs","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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"}
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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"}
@@ -110,7 +110,7 @@ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
110
110
  ".f19n0e5{color:var(--colorNeutralForeground1);}",
111
111
  ".fkqu4gx{min-width:128px;}",
112
112
  ".f1kaai3v{max-width:300px;}",
113
- ".f1ahpp82{width:-webkit-max-content;width:-moz-max-content;width:max-content;}",
113
+ ".f1ahpp82{width:max-content;}",
114
114
  ".f1hg901r{box-shadow:var(--shadow16);}",
115
115
  ".f10ra9hq{padding-top:4px;}",
116
116
  ".f8wuabp{padding-right:4px;}",
@@ -133,8 +133,8 @@ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
133
133
  ".figsok6{font-weight:var(--fontWeightRegular);}",
134
134
  ".f1i3iumi{line-height:var(--lineHeightBase300);}",
135
135
  ".f18k4bn6{animation-composition:accumulate;}",
136
- ".fo1kyvf{-webkit-animation-duration:var(--durationSlower);animation-duration:var(--durationSlower);}",
137
- ".fetxo7e{-webkit-animation-timing-function:var(--curveDecelerateMid);animation-timing-function:var(--curveDecelerateMid);}",
136
+ ".fo1kyvf{animation-duration:var(--durationSlower);}",
137
+ ".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}",
138
138
  ".fmm77a6{--slide-distance-x:0px;}",
139
139
  ".f12t24nk{--slide-distance-y:10px;}",
140
140
  ".f1babd7[data-popper-placement^=right]{--slide-distance-x:-10px;}",
@@ -143,30 +143,28 @@ const useStyles = /*#__PURE__*/ (0, _react["__styles"])({
143
143
  ".f1gu8pa9[data-popper-placement^=bottom]{--slide-distance-y:-10px;}",
144
144
  ".fhfnl4n[data-popper-placement^=left]{--slide-distance-x:10px;}",
145
145
  ".fk8tkmz[data-popper-placement^=left]{--slide-distance-y:0px;}",
146
- ".f3n0535{-webkit-animation-name:f5j8bii,fld5wjx;animation-name:f5j8bii,fld5wjx;}"
146
+ ".f3n0535{animation-name:f5j8bii,fld5wjx;}"
147
147
  ],
148
148
  k: [
149
- "@-webkit-keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}",
150
149
  "@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}",
151
- "@-webkit-keyframes fld5wjx{from{-webkit-transform:translate(var(--slide-distance-x), var(--slide-distance-y));-moz-transform:translate(var(--slide-distance-x), var(--slide-distance-y));-ms-transform:translate(var(--slide-distance-x), var(--slide-distance-y));transform:translate(var(--slide-distance-x), var(--slide-distance-y));}}",
152
- "@keyframes fld5wjx{from{-webkit-transform:translate(var(--slide-distance-x), var(--slide-distance-y));-moz-transform:translate(var(--slide-distance-x), var(--slide-distance-y));-ms-transform:translate(var(--slide-distance-x), var(--slide-distance-y));transform:translate(var(--slide-distance-x), var(--slide-distance-y));}}"
150
+ "@keyframes fld5wjx{from{transform:translate(var(--slide-distance-x), var(--slide-distance-y));}}"
153
151
  ],
154
152
  m: [
155
153
  [
156
- "@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{-webkit-animation-duration:1ms;animation-duration:1ms;}}",
154
+ "@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}",
157
155
  {
158
156
  m: "(prefers-reduced-motion)"
159
157
  }
160
158
  ],
161
159
  [
162
- "@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{-webkit-animation-name:f5j8bii;animation-name:f5j8bii;}}",
160
+ "@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}",
163
161
  {
164
162
  m: "(prefers-reduced-motion)"
165
163
  }
166
164
  ]
167
165
  ],
168
166
  t: [
169
- "@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{-webkit-animation-name:f5j8bii;animation-name:f5j8bii;}}"
167
+ "@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}"
170
168
  ]
171
169
  });
172
170
  const useMenuPopoverStyles_unstable = (state)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuPopoverStyles.styles.js"],"sourcesContent":["import { shorthands, mergeClasses, __styles } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { createSlideStyles } from '@fluentui/react-positioning';\nexport const menuPopoverClassNames = {\n root: 'fui-MenuPopover'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bbmb7ep: [\"f1aa9q02\", \"f16jpd5f\"],\n Beyfa6y: [\"f16jpd5f\", \"f1aa9q02\"],\n B7oj6ja: [\"f1jar5jt\", \"fyu767a\"],\n Btl43ni: [\"fyu767a\", \"f1jar5jt\"],\n De3pzq: \"fxugw4r\",\n sj55zd: \"f19n0e5\",\n Bf4jedk: \"fkqu4gx\",\n B2u0y6b: \"f1kaai3v\",\n a9b677: \"f1ahpp82\",\n E5pizo: \"f1hg901r\",\n z8tnut: \"f10ra9hq\",\n z189sj: [\"f8wuabp\", \"fycuoez\"],\n Byoj8tv: \"f1y2xyjm\",\n uwmqm3: [\"fycuoez\", \"f8wuabp\"],\n B4j52fo: \"f5ogflp\",\n Bekrc4i: [\"f1hqa2wf\", \"finvdd3\"],\n Bn0qgzm: \"f1f09k3d\",\n ibv6hh: [\"finvdd3\", \"f1hqa2wf\"],\n icvyot: \"fzkkow9\",\n vrafjx: [\"fcdblym\", \"fjik90z\"],\n oivjwe: \"fg706s2\",\n wvpqe5: [\"fjik90z\", \"fcdblym\"],\n g2u3we: \"fghlq4f\",\n h3c5rm: [\"f1gn591s\", \"fjscplz\"],\n B9xav0g: \"fb073pr\",\n zhjwy3: [\"fjscplz\", \"f1gn591s\"],\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\",\n B93otf3: \"f18k4bn6\",\n vin17d: \"fo1kyvf\",\n Ezkn3b: \"fetxo7e\",\n ex8oj8: \"fmm77a6\",\n Bksk4gw: \"f12t24nk\",\n Bc5phfd: \"f1babd7\",\n cbiifc: \"f1jgo889\",\n fyiq5g: \"f1ij1pew\",\n Bqc19t1: \"f1gu8pa9\",\n Eet2gb: \"fhfnl4n\",\n Bhl7k63: \"fk8tkmz\",\n Bv12yb3: \"f3n0535\",\n z0t1cu: \"fi19xcv\",\n Bks05zx: \"f1mzajhk\",\n Bvtglag: \"fjp4h9y\"\n }\n}, {\n d: [\".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}\", \".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}\", \".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", \".f19n0e5{color:var(--colorNeutralForeground1);}\", \".fkqu4gx{min-width:128px;}\", \".f1kaai3v{max-width:300px;}\", \".f1ahpp82{width:-webkit-max-content;width:-moz-max-content;width:max-content;}\", \".f1hg901r{box-shadow:var(--shadow16);}\", \".f10ra9hq{padding-top:4px;}\", \".f8wuabp{padding-right:4px;}\", \".fycuoez{padding-left:4px;}\", \".f1y2xyjm{padding-bottom:4px;}\", \".f5ogflp{border-top-width:1px;}\", \".f1hqa2wf{border-right-width:1px;}\", \".finvdd3{border-left-width:1px;}\", \".f1f09k3d{border-bottom-width:1px;}\", \".fzkkow9{border-top-style:solid;}\", \".fcdblym{border-right-style:solid;}\", \".fjik90z{border-left-style:solid;}\", \".fg706s2{border-bottom-style:solid;}\", \".fghlq4f{border-top-color:var(--colorTransparentStroke);}\", \".f1gn591s{border-right-color:var(--colorTransparentStroke);}\", \".fjscplz{border-left-color:var(--colorTransparentStroke);}\", \".fb073pr{border-bottom-color:var(--colorTransparentStroke);}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fkhj508{font-size:var(--fontSizeBase300);}\", \".figsok6{font-weight:var(--fontWeightRegular);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\", \".f18k4bn6{animation-composition:accumulate;}\", \".fo1kyvf{-webkit-animation-duration:var(--durationSlower);animation-duration:var(--durationSlower);}\", \".fetxo7e{-webkit-animation-timing-function:var(--curveDecelerateMid);animation-timing-function:var(--curveDecelerateMid);}\", \".fmm77a6{--slide-distance-x:0px;}\", \".f12t24nk{--slide-distance-y:10px;}\", \".f1babd7[data-popper-placement^=right]{--slide-distance-x:-10px;}\", \".f1jgo889[data-popper-placement^=right]{--slide-distance-y:0px;}\", \".f1ij1pew[data-popper-placement^=bottom]{--slide-distance-x:0px;}\", \".f1gu8pa9[data-popper-placement^=bottom]{--slide-distance-y:-10px;}\", \".fhfnl4n[data-popper-placement^=left]{--slide-distance-x:10px;}\", \".fk8tkmz[data-popper-placement^=left]{--slide-distance-y:0px;}\", \".f3n0535{-webkit-animation-name:f5j8bii,fld5wjx;animation-name:f5j8bii,fld5wjx;}\"],\n k: [\"@-webkit-keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}\", \"@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}\", \"@-webkit-keyframes fld5wjx{from{-webkit-transform:translate(var(--slide-distance-x), var(--slide-distance-y));-moz-transform:translate(var(--slide-distance-x), var(--slide-distance-y));-ms-transform:translate(var(--slide-distance-x), var(--slide-distance-y));transform:translate(var(--slide-distance-x), var(--slide-distance-y));}}\", \"@keyframes fld5wjx{from{-webkit-transform:translate(var(--slide-distance-x), var(--slide-distance-y));-moz-transform:translate(var(--slide-distance-x), var(--slide-distance-y));-ms-transform:translate(var(--slide-distance-x), var(--slide-distance-y));transform:translate(var(--slide-distance-x), var(--slide-distance-y));}}\"],\n m: [[\"@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{-webkit-animation-duration:1ms;animation-duration:1ms;}}\", {\n m: \"(prefers-reduced-motion)\"\n }], [\"@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{-webkit-animation-name:f5j8bii;animation-name:f5j8bii;}}\", {\n m: \"(prefers-reduced-motion)\"\n }]],\n t: [\"@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{-webkit-animation-name:f5j8bii;animation-name:f5j8bii;}}\"]\n});\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuPopoverStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuPopoverClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMenuPopoverStyles.styles.js.map"],"names":["menuPopoverClassNames","useMenuPopoverStyles_unstable","root","useStyles","__styles","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","De3pzq","sj55zd","Bf4jedk","B2u0y6b","a9b677","E5pizo","z8tnut","z189sj","Byoj8tv","uwmqm3","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","icvyot","vrafjx","oivjwe","wvpqe5","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","B93otf3","vin17d","Ezkn3b","ex8oj8","Bksk4gw","Bc5phfd","cbiifc","fyiq5g","Bqc19t1","Eet2gb","Bhl7k63","Bv12yb3","z0t1cu","Bks05zx","Bvtglag","d","k","m","t","state","styles","className","mergeClasses"],"mappings":";;;;;;;;;;;IAGaA,qBAAqB,MAArBA;IAgEAC,6BAA6B,MAA7BA;;uBAnEsC;AAG5C,MAAMD,wBAAwB;IACnCE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,SAAS;YAAC;YAAY;SAAW;QACjCC,SAAS;YAAC;YAAY;SAAW;QACjCC,SAAS;YAAC;YAAY;SAAU;QAChCC,SAAS;YAAC;YAAW;SAAW;QAChCC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,QAAQ;QACRC,QAAQ;QACRC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,SAAS;QACTC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,SAAS;QACTC,SAAS;YAAC;YAAY;SAAU;QAChCC,SAAS;QACTC,QAAQ;YAAC;YAAW;SAAW;QAC/BC,QAAQ;QACRC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,QAAQ;QACRC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,QAAQ;QACRC,QAAQ;YAAC;YAAY;SAAU;QAC/BC,SAAS;QACTC,QAAQ;YAAC;YAAW;SAAW;QAC/BC,SAAS;QACTC,SAAS;QACTC,SAAS;QACTC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,SAAS;QACTC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAoE;QAAmE;QAAiE;QAA+D;QAA8D;QAAmD;QAA8B;QAA+B;QAAkF;QAA0C;QAA+B;QAAgC;QAA+B;QAAkC;QAAmC;QAAsC;QAAoC;QAAuC;QAAqC;QAAuC;QAAsC;QAAwC;QAA6D;QAAgE;QAA8D;QAAgE;QAAgD;QAA+C;QAAmD;QAAoD;QAAgD;QAAwG;QAA8H;QAAqC;QAAuC;QAAqE;QAAoE;QAAqE;QAAuE;QAAmE;QAAkE;KAAmF;IACnvEC,GAAG;QAAC;QAA8D;QAAsD;QAA+U;KAAsU;IAC7wBC,GAAG;QAAC;YAAC;YAA4H;gBAC/HA,GAAG;YACL;SAAE;QAAE;YAAC;YAA6H;gBAChIA,GAAG;YACL;SAAE;KAAC;IACHC,GAAG;QAAC;KAA6I;AACnJ;AAIO,MAAMpD,gCAAgCqD,CAAAA,QAAS;IACpD,MAAMC,SAASpD;IACfmD,MAAMpD,IAAI,CAACsD,SAAS,GAAGC,IAAAA,mBAAY,EAACzD,sBAAsBE,IAAI,EAAEqD,OAAOrD,IAAI,EAAEoD,MAAMpD,IAAI,CAACsD,SAAS;IACjG,OAAOF;AACT,GACA,uDAAuD"}
1
+ {"version":3,"sources":["useMenuPopoverStyles.styles.js"],"sourcesContent":["import { shorthands, mergeClasses, __styles } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { createSlideStyles } from '@fluentui/react-positioning';\nexport const menuPopoverClassNames = {\n root: 'fui-MenuPopover'\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bbmb7ep: [\"f1aa9q02\", \"f16jpd5f\"],\n Beyfa6y: [\"f16jpd5f\", \"f1aa9q02\"],\n B7oj6ja: [\"f1jar5jt\", \"fyu767a\"],\n Btl43ni: [\"fyu767a\", \"f1jar5jt\"],\n De3pzq: \"fxugw4r\",\n sj55zd: \"f19n0e5\",\n Bf4jedk: \"fkqu4gx\",\n B2u0y6b: \"f1kaai3v\",\n a9b677: \"f1ahpp82\",\n E5pizo: \"f1hg901r\",\n z8tnut: \"f10ra9hq\",\n z189sj: [\"f8wuabp\", \"fycuoez\"],\n Byoj8tv: \"f1y2xyjm\",\n uwmqm3: [\"fycuoez\", \"f8wuabp\"],\n B4j52fo: \"f5ogflp\",\n Bekrc4i: [\"f1hqa2wf\", \"finvdd3\"],\n Bn0qgzm: \"f1f09k3d\",\n ibv6hh: [\"finvdd3\", \"f1hqa2wf\"],\n icvyot: \"fzkkow9\",\n vrafjx: [\"fcdblym\", \"fjik90z\"],\n oivjwe: \"fg706s2\",\n wvpqe5: [\"fjik90z\", \"fcdblym\"],\n g2u3we: \"fghlq4f\",\n h3c5rm: [\"f1gn591s\", \"fjscplz\"],\n B9xav0g: \"fb073pr\",\n zhjwy3: [\"fjscplz\", \"f1gn591s\"],\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\",\n B93otf3: \"f18k4bn6\",\n vin17d: \"fo1kyvf\",\n Ezkn3b: \"fetxo7e\",\n ex8oj8: \"fmm77a6\",\n Bksk4gw: \"f12t24nk\",\n Bc5phfd: \"f1babd7\",\n cbiifc: \"f1jgo889\",\n fyiq5g: \"f1ij1pew\",\n Bqc19t1: \"f1gu8pa9\",\n Eet2gb: \"fhfnl4n\",\n Bhl7k63: \"fk8tkmz\",\n Bv12yb3: \"f3n0535\",\n z0t1cu: \"fi19xcv\",\n Bks05zx: \"f1mzajhk\",\n Bvtglag: \"fjp4h9y\"\n }\n}, {\n d: [\".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}\", \".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}\", \".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", \".f19n0e5{color:var(--colorNeutralForeground1);}\", \".fkqu4gx{min-width:128px;}\", \".f1kaai3v{max-width:300px;}\", \".f1ahpp82{width:max-content;}\", \".f1hg901r{box-shadow:var(--shadow16);}\", \".f10ra9hq{padding-top:4px;}\", \".f8wuabp{padding-right:4px;}\", \".fycuoez{padding-left:4px;}\", \".f1y2xyjm{padding-bottom:4px;}\", \".f5ogflp{border-top-width:1px;}\", \".f1hqa2wf{border-right-width:1px;}\", \".finvdd3{border-left-width:1px;}\", \".f1f09k3d{border-bottom-width:1px;}\", \".fzkkow9{border-top-style:solid;}\", \".fcdblym{border-right-style:solid;}\", \".fjik90z{border-left-style:solid;}\", \".fg706s2{border-bottom-style:solid;}\", \".fghlq4f{border-top-color:var(--colorTransparentStroke);}\", \".f1gn591s{border-right-color:var(--colorTransparentStroke);}\", \".fjscplz{border-left-color:var(--colorTransparentStroke);}\", \".fb073pr{border-bottom-color:var(--colorTransparentStroke);}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fkhj508{font-size:var(--fontSizeBase300);}\", \".figsok6{font-weight:var(--fontWeightRegular);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\", \".f18k4bn6{animation-composition:accumulate;}\", \".fo1kyvf{animation-duration:var(--durationSlower);}\", \".fetxo7e{animation-timing-function:var(--curveDecelerateMid);}\", \".fmm77a6{--slide-distance-x:0px;}\", \".f12t24nk{--slide-distance-y:10px;}\", \".f1babd7[data-popper-placement^=right]{--slide-distance-x:-10px;}\", \".f1jgo889[data-popper-placement^=right]{--slide-distance-y:0px;}\", \".f1ij1pew[data-popper-placement^=bottom]{--slide-distance-x:0px;}\", \".f1gu8pa9[data-popper-placement^=bottom]{--slide-distance-y:-10px;}\", \".fhfnl4n[data-popper-placement^=left]{--slide-distance-x:10px;}\", \".fk8tkmz[data-popper-placement^=left]{--slide-distance-y:0px;}\", \".f3n0535{animation-name:f5j8bii,fld5wjx;}\"],\n k: [\"@keyframes f5j8bii{from{opacity:0;}to{opacity:1;}}\", \"@keyframes fld5wjx{from{transform:translate(var(--slide-distance-x), var(--slide-distance-y));}}\"],\n m: [[\"@media (prefers-reduced-motion){.fi19xcv[data-popper-placement]{animation-duration:1ms;}}\", {\n m: \"(prefers-reduced-motion)\"\n }], [\"@media (prefers-reduced-motion){.f1mzajhk[data-popper-placement]{animation-name:f5j8bii;}}\", {\n m: \"(prefers-reduced-motion)\"\n }]],\n t: [\"@supports not (animation-composition: accumulate){.fjp4h9y[data-popper-placement]{animation-name:f5j8bii;}}\"]\n});\n/**\n * Apply styling to the Menu slots based on the state\n */\nexport const useMenuPopoverStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuPopoverClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMenuPopoverStyles.styles.js.map"],"names":["menuPopoverClassNames","useMenuPopoverStyles_unstable","root","useStyles","__styles","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","De3pzq","sj55zd","Bf4jedk","B2u0y6b","a9b677","E5pizo","z8tnut","z189sj","Byoj8tv","uwmqm3","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","icvyot","vrafjx","oivjwe","wvpqe5","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","B93otf3","vin17d","Ezkn3b","ex8oj8","Bksk4gw","Bc5phfd","cbiifc","fyiq5g","Bqc19t1","Eet2gb","Bhl7k63","Bv12yb3","z0t1cu","Bks05zx","Bvtglag","d","k","m","t","state","styles","className","mergeClasses"],"mappings":";;;;;;;;;;;IAGaA,qBAAqB,MAArBA;IAgEAC,6BAA6B,MAA7BA;;uBAnEsC;AAG5C,MAAMD,wBAAwB;IACnCE,MAAM;AACR;AACA,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,SAAS;YAAC;YAAY;SAAW;QACjCC,SAAS;YAAC;YAAY;SAAW;QACjCC,SAAS;YAAC;YAAY;SAAU;QAChCC,SAAS;YAAC;YAAW;SAAW;QAChCC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,QAAQ;QACRC,QAAQ;QACRC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,SAAS;QACTC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,SAAS;QACTC,SAAS;YAAC;YAAY;SAAU;QAChCC,SAAS;QACTC,QAAQ;YAAC;YAAW;SAAW;QAC/BC,QAAQ;QACRC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,QAAQ;QACRC,QAAQ;YAAC;YAAW;SAAU;QAC9BC,QAAQ;QACRC,QAAQ;YAAC;YAAY;SAAU;QAC/BC,SAAS;QACTC,QAAQ;YAAC;YAAW;SAAW;QAC/BC,SAAS;QACTC,SAAS;QACTC,SAAS;QACTC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,QAAQ;QACRC,SAAS;QACTC,QAAQ;QACRC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,SAAS;QACTC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAoE;QAAmE;QAAiE;QAA+D;QAA8D;QAAmD;QAA8B;QAA+B;QAAiC;QAA0C;QAA+B;QAAgC;QAA+B;QAAkC;QAAmC;QAAsC;QAAoC;QAAuC;QAAqC;QAAuC;QAAsC;QAAwC;QAA6D;QAAgE;QAA8D;QAAgE;QAAgD;QAA+C;QAAmD;QAAoD;QAAgD;QAAuD;QAAkE;QAAqC;QAAuC;QAAqE;QAAoE;QAAqE;QAAuE;QAAmE;QAAkE;KAA4C;IAC9iEC,GAAG;QAAC;QAAsD;KAAmG;IAC7JC,GAAG;QAAC;YAAC;YAA6F;gBAChGA,GAAG;YACL;SAAE;QAAE;YAAC;YAA8F;gBACjGA,GAAG;YACL;SAAE;KAAC;IACHC,GAAG;QAAC;KAA8G;AACpH;AAIO,MAAMpD,gCAAgCqD,CAAAA,QAAS;IACpD,MAAMC,SAASpD;IACfmD,MAAMpD,IAAI,CAACsD,SAAS,GAAGC,IAAAA,mBAAY,EAACzD,sBAAsBE,IAAI,EAAEqD,OAAOrD,IAAI,EAAEoD,MAAMpD,IAAI,CAACsD,SAAS;IACjG,OAAOF;AACT,GACA,uDAAuD"}
@@ -9,6 +9,6 @@ Object.defineProperty(exports, "renderMenuSplitGroup_unstable", {
9
9
  const _reactJsxRuntime = require("@fluentui/react-jsx-runtime");
10
10
  const _reactUtilities = require("@fluentui/react-utilities");
11
11
  const renderMenuSplitGroup_unstable = (state)=>{
12
- const { slots , slotProps } = (0, _reactUtilities.getSlotsNext)(state);
13
- return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(slots.root, slotProps.root);
12
+ (0, _reactUtilities.assertSlots)(state);
13
+ return /*#__PURE__*/ (0, _reactJsxRuntime.createElement)(state.root, null);
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["renderMenuSplitGroup.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { getSlotsNext } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of MenuSplitGroup\n */ export const renderMenuSplitGroup_unstable = (state)=>{\n const { slots , slotProps } = getSlotsNext(state);\n return /*#__PURE__*/ createElement(slots.root, slotProps.root);\n};\n"],"names":["renderMenuSplitGroup_unstable","state","slots","slotProps","getSlotsNext","createElement","root"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAIjCA;;aAAAA;;iCAJkE;gCACtD;AAGlB,MAAMA,gCAAgC,CAACC,QAAQ;IACtD,MAAM,EAAEC,MAAK,EAAGC,UAAS,EAAG,GAAGC,IAAAA,4BAAY,EAACH;IAC5C,OAAO,WAAW,GAAGI,IAAAA,8BAAa,EAACH,MAAMI,IAAI,EAAEH,UAAUG,IAAI;AACjE"}
1
+ {"version":3,"sources":["renderMenuSplitGroup.js"],"sourcesContent":["/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of MenuSplitGroup\n */ export const renderMenuSplitGroup_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(state.root, null);\n};\n"],"names":["renderMenuSplitGroup_unstable","state","assertSlots","createElement","root"],"mappings":"AAAA,wBAAwB,GAAG,uBAAuB;;;;+BAIjCA;;aAAAA;;iCAJkE;gCACvD;AAGjB,MAAMA,gCAAgC,CAACC,QAAQ;IACtDC,IAAAA,2BAAW,EAACD;IACZ,OAAO,WAAW,GAAGE,IAAAA,8BAAa,EAACF,MAAMG,IAAI,EAAE,IAAI;AACvD"}
@@ -50,11 +50,13 @@ const useMenuSplitGroup_unstable = (props, ref)=>{
50
50
  components: {
51
51
  root: 'div'
52
52
  },
53
- root: (0, _reactUtilities.getNativeElementProps)('div', {
53
+ root: _reactUtilities.slot.always((0, _reactUtilities.getNativeElementProps)('div', {
54
54
  role: 'group',
55
55
  ref: (0, _reactUtilities.useMergedRefs)(ref, innerRef),
56
56
  onKeyDown,
57
57
  ...props
58
+ }), {
59
+ elementType: 'div'
58
60
  })
59
61
  };
60
62
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuSplitGroup.js"],"sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, getRTLSafeKey, useMergedRefs } 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: getNativeElementProps('div', {\n role: 'group',\n ref: useMergedRefs(ref, innerRef),\n onKeyDown,\n ...props\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","getNativeElementProps","role","useMergedRefs"],"mappings":";;;;+BAaiBA;;aAAAA;;;6DAbM;gCAC6C;8BACpC;qCACgB;8BACV;AAS3B,MAAMA,6BAA6B,CAACC,OAAOC,MAAM;IACxD,MAAMC,WAAWC,OAAMC,MAAM;IAC7B,MAAM,EAAEC,IAAG,EAAGC,eAAc,EAAG,GAAGC,IAAAA,uCAAS;IAC3C,MAAMC,eAAeC,IAAAA,6BAAa,EAACC,wBAAU,EAAEL;IAC/C,MAAMM,eAAeF,IAAAA,6BAAa,EAACG,uBAAS,EAAEP;IAC9C,MAAM,EAAEQ,kBAAiB,EAAGC,kBAAiB,EAAG,GAAGC,IAAAA,6BAAe;IAClE,MAAMC,YAAYb,OAAMc,WAAW,CAAC,CAACC,IAAI;QACrC,IAAIC;QACJ,MAAMC,gBAAgBd,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAec,aAAa;QAClH,IAAI,CAACA,eAAe;YAChB;QACJ,CAAC;QACD,IAAI,CAAE,CAAA,AAACD,CAAAA,oBAAoBjB,SAASmB,OAAO,AAAD,MAAO,IAAI,IAAIF,sBAAsB,KAAK,IAAI,KAAK,IAAIA,kBAAkBG,QAAQ,CAACF,cAAc,AAAD,GAAI;YACzI;QACJ,CAAC;QACD,IAAIF,EAAEK,GAAG,KAAKf,cAAc;YACxB,MAAMgB,OAAOX,kBAAkBO,eAAe;gBAC1CK,WAAWvB,SAASmB,OAAO;YAC/B;YACAG,SAAS,IAAI,IAAIA,SAAS,KAAK,IAAI,KAAK,IAAIA,KAAKE,KAAK,EAAE;QAC5D,CAAC;QACD,IAAIR,EAAEK,GAAG,KAAKZ,cAAc;YACxB,MAAMgB,OAAOb,kBAAkBM,eAAe;gBAC1CK,WAAWvB,SAASmB,OAAO;YAC/B;YACAM,SAAS,IAAI,IAAIA,SAAS,KAAK,IAAI,KAAK,IAAIA,KAAKD,KAAK,EAAE;QAC5D,CAAC;IACL,GAAG;QACCb;QACAC;QACAR;QACAE;QACAG;KACH;IACD,OAAO;QACHiB,YAAY;YACRC,MAAM;QACV;QACAA,MAAMC,IAAAA,qCAAqB,EAAC,OAAO;YAC/BC,MAAM;YACN9B,KAAK+B,IAAAA,6BAAa,EAAC/B,KAAKC;YACxBc;YACA,GAAGhB,KAAK;QACZ;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;;aAAAA;;;6DAbM;gCACmD;8BAC1C;qCACgB;8BACV;AAS3B,MAAMA,6BAA6B,CAACC,OAAOC,MAAM;IACxD,MAAMC,WAAWC,OAAMC,MAAM;IAC7B,MAAM,EAAEC,IAAG,EAAGC,eAAc,EAAG,GAAGC,IAAAA,uCAAS;IAC3C,MAAMC,eAAeC,IAAAA,6BAAa,EAACC,wBAAU,EAAEL;IAC/C,MAAMM,eAAeF,IAAAA,6BAAa,EAACG,uBAAS,EAAEP;IAC9C,MAAM,EAAEQ,kBAAiB,EAAGC,kBAAiB,EAAG,GAAGC,IAAAA,6BAAe;IAClE,MAAMC,YAAYb,OAAMc,WAAW,CAAC,CAACC,IAAI;QACrC,IAAIC;QACJ,MAAMC,gBAAgBd,mBAAmB,IAAI,IAAIA,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAec,aAAa;QAClH,IAAI,CAACA,eAAe;YAChB;QACJ,CAAC;QACD,IAAI,CAAE,CAAA,AAACD,CAAAA,oBAAoBjB,SAASmB,OAAO,AAAD,MAAO,IAAI,IAAIF,sBAAsB,KAAK,IAAI,KAAK,IAAIA,kBAAkBG,QAAQ,CAACF,cAAc,AAAD,GAAI;YACzI;QACJ,CAAC;QACD,IAAIF,EAAEK,GAAG,KAAKf,cAAc;YACxB,MAAMgB,OAAOX,kBAAkBO,eAAe;gBAC1CK,WAAWvB,SAASmB,OAAO;YAC/B;YACAG,SAAS,IAAI,IAAIA,SAAS,KAAK,IAAI,KAAK,IAAIA,KAAKE,KAAK,EAAE;QAC5D,CAAC;QACD,IAAIR,EAAEK,GAAG,KAAKZ,cAAc;YACxB,MAAMgB,OAAOb,kBAAkBM,eAAe;gBAC1CK,WAAWvB,SAASmB,OAAO;YAC/B;YACAM,SAAS,IAAI,IAAIA,SAAS,KAAK,IAAI,KAAK,IAAIA,KAAKD,KAAK,EAAE;QAC5D,CAAC;IACL,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"}
@@ -45,7 +45,7 @@ const menuSplitGroupClassNames = {
45
45
  }
46
46
  }, {
47
47
  d: [
48
- ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}",
48
+ ".f22iagw{display:flex;}",
49
49
  ".f168awwq>.fui-MenuItem:nth-child(1){width:100%;}",
50
50
  ".f1om2jlk>.fui-MenuItem:nth-child(2){border-top-left-radius:0;}",
51
51
  ".fcyhg04>.fui-MenuItem:nth-child(2){border-top-right-radius:0;}",
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuSplitGroupStyles.styles.js"],"sourcesContent":["import { __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { menuItemClassNames } from '../MenuItem/useMenuItemStyles.styles';\nexport const menuSplitGroupClassNames = {\n root: 'fui-MenuSplitGroup'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n u7v6m2: \"f168awwq\",\n Bo1wru1: [\"f1om2jlk\", \"fcyhg04\"],\n Bhkyaub: [\"fgqgg70\", \"fqo1hry\"],\n J9ixe0: [\"fh1zedf\", \"f1auaj6e\"],\n rj29m3: [\"fokbbcd\", \"f1xlvh9o\"],\n B2knx3v: \"f1mf2v5d\",\n Bl7aesu: \"fi8lk9b\",\n e82tai: \"f1tc32yi\",\n Bnkcs84: \"f1kve8m0\"\n }\n}, {\n d: [\".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}\", \".f168awwq>.fui-MenuItem:nth-child(1){width:100%;}\", \".f1om2jlk>.fui-MenuItem:nth-child(2){border-top-left-radius:0;}\", \".fcyhg04>.fui-MenuItem:nth-child(2){border-top-right-radius:0;}\", \".fgqgg70>.fui-MenuItem:nth-child(2){border-bottom-left-radius:0;}\", \".fqo1hry>.fui-MenuItem:nth-child(2){border-bottom-right-radius:0;}\", \".fh1zedf>.fui-MenuItem:nth-child(2){padding-left:0;}\", \".f1auaj6e>.fui-MenuItem:nth-child(2){padding-right:0;}\", \".fokbbcd>.fui-MenuItem:nth-child(2){margin-left:auto;}\", \".f1xlvh9o>.fui-MenuItem:nth-child(2){margin-right:auto;}\", \".f1mf2v5d>.fui-MenuItem:nth-child(2)::before{content:\\\"\\\";}\", \".fi8lk9b>.fui-MenuItem:nth-child(2)::before{width:var(--strokeWidthThin);}\", \".f1tc32yi>.fui-MenuItem:nth-child(2)::before{height:24px;}\", \".f1kve8m0>.fui-MenuItem:nth-child(2)::before{background-color:var(--colorNeutralStroke1);}\"]\n});\n/**\n * Apply styling to the MenuSplitGroup slots based on the state\n */\nexport const useMenuSplitGroupStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuSplitGroupClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMenuSplitGroupStyles.styles.js.map"],"names":["menuSplitGroupClassNames","useMenuSplitGroupStyles_unstable","root","useStyles","__styles","mc9l5x","u7v6m2","Bo1wru1","Bhkyaub","J9ixe0","rj29m3","B2knx3v","Bl7aesu","e82tai","Bnkcs84","d","state","styles","className","mergeClasses"],"mappings":";;;;;;;;;;;IAGaA,wBAAwB,MAAxBA;IAyBAC,gCAAgC,MAAhCA;;uBA5B0B;AAGhC,MAAMD,2BAA2B;IACtCE,MAAM;AACR;AACA;;CAEC,GACD,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,QAAQ;QACRC,SAAS;YAAC;YAAY;SAAU;QAChCC,SAAS;YAAC;YAAW;SAAU;QAC/BC,QAAQ;YAAC;YAAW;SAAW;QAC/BC,QAAQ;YAAC;YAAW;SAAW;QAC/BC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAAwF;QAAqD;QAAmE;QAAmE;QAAqE;QAAsE;QAAwD;QAA0D;QAA0D;QAA4D;QAA+D;QAA8E;QAA8D;KAA6F;AACp7B;AAIO,MAAMd,mCAAmCe,CAAAA,QAAS;IACvD,MAAMC,SAASd;IACfa,MAAMd,IAAI,CAACgB,SAAS,GAAGC,IAAAA,mBAAY,EAACnB,yBAAyBE,IAAI,EAAEe,OAAOf,IAAI,EAAEc,MAAMd,IAAI,CAACgB,SAAS;IACpG,OAAOF;AACT,GACA,0DAA0D"}
1
+ {"version":3,"sources":["useMenuSplitGroupStyles.styles.js"],"sourcesContent":["import { __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { menuItemClassNames } from '../MenuItem/useMenuItemStyles.styles';\nexport const menuSplitGroupClassNames = {\n root: 'fui-MenuSplitGroup'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n u7v6m2: \"f168awwq\",\n Bo1wru1: [\"f1om2jlk\", \"fcyhg04\"],\n Bhkyaub: [\"fgqgg70\", \"fqo1hry\"],\n J9ixe0: [\"fh1zedf\", \"f1auaj6e\"],\n rj29m3: [\"fokbbcd\", \"f1xlvh9o\"],\n B2knx3v: \"f1mf2v5d\",\n Bl7aesu: \"fi8lk9b\",\n e82tai: \"f1tc32yi\",\n Bnkcs84: \"f1kve8m0\"\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f168awwq>.fui-MenuItem:nth-child(1){width:100%;}\", \".f1om2jlk>.fui-MenuItem:nth-child(2){border-top-left-radius:0;}\", \".fcyhg04>.fui-MenuItem:nth-child(2){border-top-right-radius:0;}\", \".fgqgg70>.fui-MenuItem:nth-child(2){border-bottom-left-radius:0;}\", \".fqo1hry>.fui-MenuItem:nth-child(2){border-bottom-right-radius:0;}\", \".fh1zedf>.fui-MenuItem:nth-child(2){padding-left:0;}\", \".f1auaj6e>.fui-MenuItem:nth-child(2){padding-right:0;}\", \".fokbbcd>.fui-MenuItem:nth-child(2){margin-left:auto;}\", \".f1xlvh9o>.fui-MenuItem:nth-child(2){margin-right:auto;}\", \".f1mf2v5d>.fui-MenuItem:nth-child(2)::before{content:\\\"\\\";}\", \".fi8lk9b>.fui-MenuItem:nth-child(2)::before{width:var(--strokeWidthThin);}\", \".f1tc32yi>.fui-MenuItem:nth-child(2)::before{height:24px;}\", \".f1kve8m0>.fui-MenuItem:nth-child(2)::before{background-color:var(--colorNeutralStroke1);}\"]\n});\n/**\n * Apply styling to the MenuSplitGroup slots based on the state\n */\nexport const useMenuSplitGroupStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(menuSplitGroupClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMenuSplitGroupStyles.styles.js.map"],"names":["menuSplitGroupClassNames","useMenuSplitGroupStyles_unstable","root","useStyles","__styles","mc9l5x","u7v6m2","Bo1wru1","Bhkyaub","J9ixe0","rj29m3","B2knx3v","Bl7aesu","e82tai","Bnkcs84","d","state","styles","className","mergeClasses"],"mappings":";;;;;;;;;;;IAGaA,wBAAwB,MAAxBA;IAyBAC,gCAAgC,MAAhCA;;uBA5B0B;AAGhC,MAAMD,2BAA2B;IACtCE,MAAM;AACR;AACA;;CAEC,GACD,MAAMC,YAAY,WAAW,GAAEC,IAAAA,kBAAQ,EAAC;IACtCF,MAAM;QACJG,QAAQ;QACRC,QAAQ;QACRC,SAAS;YAAC;YAAY;SAAU;QAChCC,SAAS;YAAC;YAAW;SAAU;QAC/BC,QAAQ;YAAC;YAAW;SAAW;QAC/BC,QAAQ;YAAC;YAAW;SAAW;QAC/BC,SAAS;QACTC,SAAS;QACTC,QAAQ;QACRC,SAAS;IACX;AACF,GAAG;IACDC,GAAG;QAAC;QAA2B;QAAqD;QAAmE;QAAmE;QAAqE;QAAsE;QAAwD;QAA0D;QAA0D;QAA4D;QAA+D;QAA8E;QAA8D;KAA6F;AACv3B;AAIO,MAAMd,mCAAmCe,CAAAA,QAAS;IACvD,MAAMC,SAASd;IACfa,MAAMd,IAAI,CAACgB,SAAS,GAAGC,IAAAA,mBAAY,EAACnB,yBAAyBE,IAAI,EAAEe,OAAOf,IAAI,EAAEc,MAAMd,IAAI,CAACgB,SAAS;IACpG,OAAOF;AACT,GACA,0DAA0D"}
@@ -40,7 +40,7 @@ const useMenuTrigger_unstable = (props)=>{
40
40
  const OpenArrowKey = dir === 'ltr' ? _keyboardKeys.ArrowRight : _keyboardKeys.ArrowLeft;
41
41
  const child = (0, _reactUtilities.getTriggerChild)(children);
42
42
  const onContextMenu = (event)=>{
43
- if (isTargetDisabled(event)) {
43
+ if (isTargetDisabled(event) || event.isDefaultPrevented()) {
44
44
  return;
45
45
  }
46
46
  if (openOnContext) {
@@ -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 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)) {\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 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 ...restoreFocusTargetAttribute,\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","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 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 ...restoreFocusTargetAttribute,\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-menu",
3
- "version": "9.12.2",
3
+ "version": "9.12.4",
4
4
  "description": "Fluent UI menu component",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -37,17 +37,17 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@fluentui/keyboard-keys": "^9.0.3",
40
- "@fluentui/react-aria": "^9.3.27",
41
- "@fluentui/react-context-selector": "^9.1.26",
40
+ "@fluentui/react-aria": "^9.3.29",
41
+ "@fluentui/react-context-selector": "^9.1.27",
42
42
  "@fluentui/react-icons": "^2.0.207",
43
- "@fluentui/react-portal": "^9.3.4",
44
- "@fluentui/react-positioning": "^9.9.1",
45
- "@fluentui/react-shared-contexts": "^9.7.0",
46
- "@fluentui/react-tabster": "^9.11.1",
47
- "@fluentui/react-theme": "^9.1.9",
48
- "@fluentui/react-utilities": "^9.10.1",
49
- "@fluentui/react-jsx-runtime": "9.0.0-alpha.12",
50
- "@griffel/react": "^1.5.7",
43
+ "@fluentui/react-portal": "^9.3.6",
44
+ "@fluentui/react-positioning": "^9.9.3",
45
+ "@fluentui/react-shared-contexts": "^9.7.2",
46
+ "@fluentui/react-tabster": "^9.12.1",
47
+ "@fluentui/react-theme": "^9.1.11",
48
+ "@fluentui/react-utilities": "^9.11.0",
49
+ "@fluentui/react-jsx-runtime": "9.0.0-alpha.14",
50
+ "@griffel/react": "^1.5.14",
51
51
  "@swc/helpers": "^0.4.14"
52
52
  },
53
53
  "peerDependencies": {