@fluentui/react-menu 9.14.26 → 9.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +27 -2
  2. package/dist/index.d.ts +16 -4
  3. package/lib/components/MenuItem/MenuItem.types.js.map +1 -1
  4. package/lib/components/MenuItem/renderMenuItem.js +6 -1
  5. package/lib/components/MenuItem/renderMenuItem.js.map +1 -1
  6. package/lib/components/MenuItem/useMenuItem.js +48 -8
  7. package/lib/components/MenuItem/useMenuItem.js.map +1 -1
  8. package/lib/components/MenuItem/useMenuItemStyles.styles.js +29 -7
  9. package/lib/components/MenuItem/useMenuItemStyles.styles.js.map +1 -1
  10. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js +6 -1
  11. package/lib/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  12. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.js +5 -1
  13. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.js.map +1 -1
  14. package/lib/components/MenuItemRadio/renderMenuItemRadio.js +6 -1
  15. package/lib/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  16. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.styles.js +5 -1
  17. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.styles.js.map +1 -1
  18. package/lib/components/MenuItemSwitch/MenuItemSwitch.types.js.map +1 -1
  19. package/lib/components/MenuItemSwitch/renderMenuItemSwitch.js +6 -1
  20. package/lib/components/MenuItemSwitch/renderMenuItemSwitch.js.map +1 -1
  21. package/lib/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.js +17 -3
  22. package/lib/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.js.map +1 -1
  23. package/lib/components/MenuSplitGroup/MenuSplitGroup.js +2 -1
  24. package/lib/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  25. package/lib/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
  26. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js +7 -2
  27. package/lib/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  28. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js +31 -1
  29. package/lib/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  30. package/lib/components/MenuSplitGroup/useMenuSplitGroupContextValues.js +13 -0
  31. package/lib/components/MenuSplitGroup/useMenuSplitGroupContextValues.js.map +1 -0
  32. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js +10 -2
  33. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js.map +1 -1
  34. package/lib/contexts/menuSplitGroupContext.js +16 -0
  35. package/lib/contexts/menuSplitGroupContext.js.map +1 -0
  36. package/lib-commonjs/components/MenuItem/MenuItem.types.js.map +1 -1
  37. package/lib-commonjs/components/MenuItem/renderMenuItem.js +6 -1
  38. package/lib-commonjs/components/MenuItem/renderMenuItem.js.map +1 -1
  39. package/lib-commonjs/components/MenuItem/useMenuItem.js +47 -7
  40. package/lib-commonjs/components/MenuItem/useMenuItem.js.map +1 -1
  41. package/lib-commonjs/components/MenuItem/useMenuItemStyles.styles.js +61 -29
  42. package/lib-commonjs/components/MenuItem/useMenuItemStyles.styles.js.map +1 -1
  43. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js +6 -1
  44. package/lib-commonjs/components/MenuItemCheckbox/renderMenuItemCheckbox.js.map +1 -1
  45. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.js +5 -1
  46. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.js.map +1 -1
  47. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js +6 -1
  48. package/lib-commonjs/components/MenuItemRadio/renderMenuItemRadio.js.map +1 -1
  49. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.styles.js +5 -1
  50. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.styles.js.map +1 -1
  51. package/lib-commonjs/components/MenuItemSwitch/MenuItemSwitch.types.js.map +1 -1
  52. package/lib-commonjs/components/MenuItemSwitch/renderMenuItemSwitch.js +6 -1
  53. package/lib-commonjs/components/MenuItemSwitch/renderMenuItemSwitch.js.map +1 -1
  54. package/lib-commonjs/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.js +18 -3
  55. package/lib-commonjs/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.js.map +1 -1
  56. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js +2 -1
  57. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.js.map +1 -1
  58. package/lib-commonjs/components/MenuSplitGroup/MenuSplitGroup.types.js.map +1 -1
  59. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js +7 -2
  60. package/lib-commonjs/components/MenuSplitGroup/renderMenuSplitGroup.js.map +1 -1
  61. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js +31 -1
  62. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroup.js.map +1 -1
  63. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupContextValues.js +24 -0
  64. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupContextValues.js.map +1 -0
  65. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js +17 -2
  66. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.js.map +1 -1
  67. package/lib-commonjs/contexts/menuSplitGroupContext.js +41 -0
  68. package/lib-commonjs/contexts/menuSplitGroupContext.js.map +1 -0
  69. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/MenuSplitGroup/useMenuSplitGroup.ts"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, getRTLSafeKey, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport type { MenuSplitGroupProps, MenuSplitGroupState } from './MenuSplitGroup.types';\nimport { ArrowRight, ArrowLeft } from '@fluentui/keyboard-keys';\n\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 */\nexport const useMenuSplitGroup_unstable = (\n props: MenuSplitGroupProps,\n ref: React.Ref<HTMLElement>,\n): MenuSplitGroupState => {\n const innerRef = React.useRef<HTMLElement>();\n const { dir, targetDocument } = useFluent();\n\n const nextArrowKey = getRTLSafeKey(ArrowRight, dir);\n const prevArrowKey = getRTLSafeKey(ArrowLeft, dir);\n\n const { findNextFocusable, findPrevFocusable } = useFocusFinders();\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n const activeElement = targetDocument?.activeElement;\n if (!activeElement) {\n return;\n }\n\n if (!innerRef.current?.contains(activeElement)) {\n return;\n }\n\n if (e.key === nextArrowKey) {\n const next = findNextFocusable(activeElement as HTMLElement, { container: innerRef.current });\n next?.focus();\n }\n\n if (e.key === prevArrowKey) {\n const prev = findPrevFocusable(activeElement as HTMLElement, { container: innerRef.current });\n prev?.focus();\n }\n },\n [findNextFocusable, findPrevFocusable, targetDocument, nextArrowKey, prevArrowKey],\n );\n\n return {\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n role: 'group',\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, innerRef) as React.Ref<HTMLDivElement>,\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","activeElement","current","contains","key","next","container","focus","prev","components","root","slot","always","getIntrinsicElementProps","role","useMergedRefs","elementType"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAgBaA;;;eAAAA;;;;iEAhBU;gCACsD;8BAC7C;qCACgB;8BAEV;AAW/B,MAAMA,6BAA6B,CACxCC,OACAC;IAEA,MAAMC,WAAWC,OAAMC,MAAM;IAC7B,MAAM,EAAEC,GAAG,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAAA;IAEhC,MAAMC,eAAeC,IAAAA,6BAAAA,EAAcC,wBAAAA,EAAYL;IAC/C,MAAMM,eAAeF,IAAAA,6BAAAA,EAAcG,uBAAAA,EAAWP;IAE9C,MAAM,EAAEQ,iBAAiB,EAAEC,iBAAiB,EAAE,GAAGC,IAAAA,6BAAAA;IAEjD,MAAMC,YAAYb,OAAMc,WAAW,CACjC,CAACC;YAMMhB;QALL,MAAMiB,gBAAgBb,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBa,aAAa;QACnD,IAAI,CAACA,eAAe;YAClB;QACF;QAEA,IAAI,CAAA,CAAA,AAACjB,CAAAA,oBAAAA,SAASkB,OAAO,AAAPA,MAAO,QAAhBlB,sBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,kBAAkBmB,QAAQ,CAACF,cAAAA,GAAgB;YAC9C;QACF;QAEA,IAAID,EAAEI,GAAG,KAAKd,cAAc;YAC1B,MAAMe,OAAOV,kBAAkBM,eAA8B;gBAAEK,WAAWtB,SAASkB,OAAO;YAAC;YAC3FG,SAAAA,QAAAA,SAAAA,KAAAA,IAAAA,KAAAA,IAAAA,KAAME,KAAK;QACb;QAEA,IAAIP,EAAEI,GAAG,KAAKX,cAAc;YAC1B,MAAMe,OAAOZ,kBAAkBK,eAA8B;gBAAEK,WAAWtB,SAASkB,OAAO;YAAC;YAC3FM,SAAAA,QAAAA,SAAAA,KAAAA,IAAAA,KAAAA,IAAAA,KAAMD,KAAK;QACb;IACF,GACA;QAACZ;QAAmBC;QAAmBR;QAAgBE;QAAcG;KAAa;IAGpF,OAAO;QACLgB,YAAY;YACVC,MAAM;QACR;QACAA,MAAMC,oBAAAA,CAAKC,MAAM,CACfC,IAAAA,wCAAAA,EAAyB,OAAO;YAC9BC,MAAM;YACN,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5F/B,KAAKgC,IAAAA,6BAAAA,EAAchC,KAAKC;YACxBc;YACA,GAAGhB,KAAK;QACV,IACA;YAAEkC,aAAa;QAAM;IAEzB;AACF"}
1
+ {"version":3,"sources":["../src/components/MenuSplitGroup/useMenuSplitGroup.ts"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, getRTLSafeKey, useMergedRefs, slot } from '@fluentui/react-utilities';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport type { MenuSplitGroupProps, MenuSplitGroupState } from './MenuSplitGroup.types';\nimport { ArrowRight, ArrowLeft } from '@fluentui/keyboard-keys';\nimport { menuSplitGroupMultilineAttr } from './useMenuSplitGroupStyles.styles';\n\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 */\nexport const useMenuSplitGroup_unstable = (\n props: MenuSplitGroupProps,\n ref: React.Ref<HTMLElement>,\n): MenuSplitGroupState => {\n const innerRef = React.useRef<HTMLDivElement>();\n const { dir, targetDocument } = useFluent();\n\n const nextArrowKey = getRTLSafeKey(ArrowRight, dir);\n const prevArrowKey = getRTLSafeKey(ArrowLeft, dir);\n\n const { findNextFocusable, findPrevFocusable } = useFocusFinders();\n const { multilineRef, setMultiline } = useHandleMultilineMenuItem();\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n const activeElement = targetDocument?.activeElement;\n if (!activeElement) {\n return;\n }\n\n if (!innerRef.current?.contains(activeElement)) {\n return;\n }\n\n if (e.key === nextArrowKey) {\n const next = findNextFocusable(activeElement as HTMLElement, { container: innerRef.current });\n next?.focus();\n }\n\n if (e.key === prevArrowKey) {\n const prev = findPrevFocusable(activeElement as HTMLElement, { container: innerRef.current });\n prev?.focus();\n }\n },\n [findNextFocusable, findPrevFocusable, targetDocument, nextArrowKey, prevArrowKey],\n );\n\n return {\n components: {\n root: 'div',\n },\n setMultiline,\n root: slot.always(\n getIntrinsicElementProps('div', {\n role: 'group',\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, innerRef, multilineRef) as React.Ref<HTMLDivElement>,\n onKeyDown,\n ...props,\n }),\n { elementType: 'div' },\n ),\n };\n};\n\n/**\n * Creates a callback that lets a multiline menu item child set an attribute on this component\n * Children can mount before parents so we need to store the value and apply it when the parent is mounted\n */\nconst useHandleMultilineMenuItem = () => {\n const [handle] = React.useState(() => {\n let isMultiline = false;\n let multilineNode: HTMLElement | null = null;\n\n function applyAttr() {\n multilineNode?.toggleAttribute(menuSplitGroupMultilineAttr, isMultiline);\n }\n\n return {\n multilineRef: (node: HTMLDivElement | null) => {\n if (node) {\n multilineNode = node;\n applyAttr();\n } else {\n multilineNode = null;\n }\n },\n setMultiline: (value: boolean) => {\n isMultiline = value;\n applyAttr();\n },\n };\n });\n\n return handle;\n};\n"],"names":["useMenuSplitGroup_unstable","props","ref","innerRef","React","useRef","dir","targetDocument","useFluent","nextArrowKey","getRTLSafeKey","ArrowRight","prevArrowKey","ArrowLeft","findNextFocusable","findPrevFocusable","useFocusFinders","multilineRef","setMultiline","useHandleMultilineMenuItem","onKeyDown","useCallback","e","activeElement","current","contains","key","next","container","focus","prev","components","root","slot","always","getIntrinsicElementProps","role","useMergedRefs","elementType","handle","useState","isMultiline","multilineNode","applyAttr","toggleAttribute","menuSplitGroupMultilineAttr","node","value"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAiBaA;;;eAAAA;;;;iEAjBU;gCACsD;8BAC7C;qCACgB;8BAEV;+CACM;AAWrC,MAAMA,6BAA6B,CACxCC,OACAC;IAEA,MAAMC,WAAWC,OAAMC,MAAM;IAC7B,MAAM,EAAEC,GAAG,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAAA;IAEhC,MAAMC,eAAeC,IAAAA,6BAAAA,EAAcC,wBAAAA,EAAYL;IAC/C,MAAMM,eAAeF,IAAAA,6BAAAA,EAAcG,uBAAAA,EAAWP;IAE9C,MAAM,EAAEQ,iBAAiB,EAAEC,iBAAiB,EAAE,GAAGC,IAAAA,6BAAAA;IACjD,MAAM,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAGC;IAEvC,MAAMC,YAAYhB,OAAMiB,WAAW,CACjC,CAACC;YAMMnB;QALL,MAAMoB,gBAAgBhB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBgB,aAAa;QACnD,IAAI,CAACA,eAAe;YAClB;QACF;QAEA,IAAI,CAAA,CAAA,AAACpB,CAAAA,oBAAAA,SAASqB,OAAO,AAAPA,MAAO,QAAhBrB,sBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,kBAAkBsB,QAAQ,CAACF,cAAAA,GAAgB;YAC9C;QACF;QAEA,IAAID,EAAEI,GAAG,KAAKjB,cAAc;YAC1B,MAAMkB,OAAOb,kBAAkBS,eAA8B;gBAAEK,WAAWzB,SAASqB,OAAO;YAAC;YAC3FG,SAAAA,QAAAA,SAAAA,KAAAA,IAAAA,KAAAA,IAAAA,KAAME,KAAK;QACb;QAEA,IAAIP,EAAEI,GAAG,KAAKd,cAAc;YAC1B,MAAMkB,OAAOf,kBAAkBQ,eAA8B;gBAAEK,WAAWzB,SAASqB,OAAO;YAAC;YAC3FM,SAAAA,QAAAA,SAAAA,KAAAA,IAAAA,KAAAA,IAAAA,KAAMD,KAAK;QACb;IACF,GACA;QAACf;QAAmBC;QAAmBR;QAAgBE;QAAcG;KAAa;IAGpF,OAAO;QACLmB,YAAY;YACVC,MAAM;QACR;QACAd;QACAc,MAAMC,oBAAAA,CAAKC,MAAM,CACfC,IAAAA,wCAAAA,EAAyB,OAAO;YAC9BC,MAAM;YACN,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5FlC,KAAKmC,IAAAA,6BAAAA,EAAcnC,KAAKC,UAAUc;YAClCG;YACA,GAAGnB,KAAK;QACV,IACA;YAAEqC,aAAa;QAAM;IAEzB;AACF;AAEA;;;CAGC,GACD,MAAMnB,6BAA6B;IACjC,MAAM,CAACoB,OAAO,GAAGnC,OAAMoC,QAAQ,CAAC;QAC9B,IAAIC,cAAc;QAClB,IAAIC,gBAAoC;QAExC,SAASC;YACPD,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAeE,eAAe,CAACC,0DAAAA,EAA6BJ;QAC9D;QAEA,OAAO;YACLxB,cAAc,CAAC6B;gBACb,IAAIA,MAAM;oBACRJ,gBAAgBI;oBAChBH;gBACF,OAAO;oBACLD,gBAAgB;gBAClB;YACF;YACAxB,cAAc,CAAC6B;gBACbN,cAAcM;gBACdJ;YACF;QACF;IACF;IAEA,OAAOJ;AACT"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useMenuSplitGroupContextValues", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return useMenuSplitGroupContextValues;
9
+ }
10
+ });
11
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
+ const useMenuSplitGroupContextValues = (state)=>{
14
+ 'use no memo';
15
+ return _react.useMemo(()=>{
16
+ return {
17
+ menuSplitGroup: {
18
+ setMultiline: state.setMultiline
19
+ }
20
+ };
21
+ }, [
22
+ state.setMultiline
23
+ ]);
24
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MenuSplitGroup/useMenuSplitGroupContextValues.ts"],"sourcesContent":["import * as React from 'react';\nimport { MenuSplitGroupContextValues, MenuSplitGroupState } from './MenuSplitGroup.types';\n\nexport const useMenuSplitGroupContextValues = (state: MenuSplitGroupState): MenuSplitGroupContextValues => {\n 'use no memo';\n\n return React.useMemo(() => {\n return {\n menuSplitGroup: {\n setMultiline: state.setMultiline,\n },\n };\n }, [state.setMultiline]);\n};\n"],"names":["useMenuSplitGroupContextValues","state","React","useMemo","menuSplitGroup","setMultiline"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAGaA;;;eAAAA;;;;iEAHU;AAGhB,MAAMA,iCAAiC,CAACC;IAC7C;IAEA,OAAOC,OAAMC,OAAO,CAAC;QACnB,OAAO;YACLC,gBAAgB;gBACdC,cAAcJ,MAAMI,YAAY;YAClC;QACF;IACF,GAAG;QAACJ,MAAMI,YAAY;KAAC;AACzB"}
@@ -12,20 +12,29 @@ _export(exports, {
12
12
  menuSplitGroupClassNames: function() {
13
13
  return menuSplitGroupClassNames;
14
14
  },
15
+ menuSplitGroupMultilineAttr: function() {
16
+ return menuSplitGroupMultilineAttr;
17
+ },
15
18
  useMenuSplitGroupStyles_unstable: function() {
16
19
  return useMenuSplitGroupStyles_unstable;
17
20
  }
18
21
  });
19
22
  const _react = require("@griffel/react");
23
+ const menuSplitGroupMultilineAttr = 'data-multiline';
20
24
  const menuSplitGroupClassNames = {
21
25
  root: 'fui-MenuSplitGroup'
22
26
  };
23
27
  /**
24
28
  * Styles for the root slot
29
+ * TODO - remove the use of nested combinators to style child menu items
25
30
  */ const useStyles = /*#__PURE__*/ (0, _react.__styles)({
26
31
  root: {
32
+ Bhlrgs3: "f1v24km9",
27
33
  mc9l5x: "f22iagw",
28
- oe75ve: "f1mvlx34",
34
+ rue6gn: 0,
35
+ oe75ve: 0,
36
+ Bbblmiw: 0,
37
+ Bn2ps6a: "fa49so4",
29
38
  Bu15iap: [
30
39
  "fsdyxoe",
31
40
  "fuk6rhi"
@@ -45,8 +54,14 @@ const menuSplitGroupClassNames = {
45
54
  }
46
55
  }, {
47
56
  d: [
57
+ ".f1v24km9[data-multiline]>.fui-MenuItem:nth-of-type(2){align-self:center;}",
48
58
  ".f22iagw{display:flex;}",
49
- ".f1mvlx34>.fui-MenuItem:nth-of-type(1){flex-grow:1;}",
59
+ [
60
+ ".fa49so4>.fui-MenuItem:nth-of-type(1){flex:1;}",
61
+ {
62
+ p: -1
63
+ }
64
+ ],
50
65
  ".fsdyxoe>.fui-MenuItem:nth-of-type(2){border-top-left-radius:0;}",
51
66
  ".fuk6rhi>.fui-MenuItem:nth-of-type(2){border-top-right-radius:0;}",
52
67
  ".fn8z6db>.fui-MenuItem:nth-of-type(2){border-bottom-left-radius:0;}",
@@ -1 +1 @@
1
- {"version":3,"sources":["useMenuSplitGroupStyles.styles.js"],"sourcesContent":["import { makeStyles, 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 */ const useStyles = makeStyles({\n root: {\n display: 'flex',\n [`& > .${menuItemClassNames.root}:nth-of-type(1)`]: {\n flexGrow: 1\n },\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n paddingLeft: 0,\n '::before': {\n content: '\"\"',\n width: tokens.strokeWidthThin,\n height: '20px',\n backgroundColor: tokens.colorNeutralStroke1\n }\n }\n }\n});\n/**\n * Apply styling to the MenuSplitGroup slots based on the state\n */ export const useMenuSplitGroupStyles_unstable = (state)=>{\n 'use no memo';\n const styles = useStyles();\n state.root.className = mergeClasses(menuSplitGroupClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"names":["menuSplitGroupClassNames","useMenuSplitGroupStyles_unstable","root","useStyles","__styles","mc9l5x","oe75ve","Bu15iap","B71tm0z","Gjs4sj","foni4y","Ie9k5m","f30fub","Jberyy","d","state","styles","className","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAGaA,wBAAwB;eAAxBA;;IA0BIC,gCAAgC;eAAhCA;;;uBA7BwB;AAGlC,MAAMD,2BAA2B;IACpCE,MAAM;AACV;AACA;;CAEA,GAAI,MAAMC,YAAS,WAAA,GAAGC,IAAAA,eAAA,EAAA;IAAAF,MAAA;QAAAG,QAAA;QAAAC,QAAA;QAAAC,SAAA;YAAA;YAAA;SAAA;QAAAC,SAAA;YAAA;YAAA;SAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,QAAA;IAAA;AAAA,GAAA;IAAAC,GAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA;AAqBX,MAAMb,mCAAoCc,CAAAA;IACjD;IACA,MAAMC,SAASb;IACfY,MAAMb,IAAI,CAACe,SAAS,GAAGC,IAAAA,mBAAY,EAAClB,yBAAyBE,IAAI,EAAEc,OAAOd,IAAI,EAAEa,MAAMb,IAAI,CAACe,SAAS;IACpG,OAAOF;AACX"}
1
+ {"version":3,"sources":["useMenuSplitGroupStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { menuItemClassNames } from '../MenuItem/useMenuItemStyles.styles';\nexport const menuSplitGroupMultilineAttr = 'data-multiline';\nexport const menuSplitGroupClassNames = {\n root: 'fui-MenuSplitGroup'\n};\n/**\n * Styles for the root slot\n * TODO - remove the use of nested combinators to style child menu items\n */ const useStyles = makeStyles({\n root: {\n [`[${menuSplitGroupMultilineAttr}]`]: {\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n alignSelf: 'center'\n }\n },\n display: 'flex',\n [`& > .${menuItemClassNames.root}:nth-of-type(1)`]: {\n flex: 1\n },\n [`& > .${menuItemClassNames.root}:nth-of-type(2)`]: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n paddingLeft: 0,\n '::before': {\n content: '\"\"',\n width: tokens.strokeWidthThin,\n height: '20px',\n backgroundColor: tokens.colorNeutralStroke1\n }\n }\n }\n});\n/**\n * Apply styling to the MenuSplitGroup slots based on the state\n */ export const useMenuSplitGroupStyles_unstable = (state)=>{\n 'use no memo';\n const styles = useStyles();\n state.root.className = mergeClasses(menuSplitGroupClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"names":["menuSplitGroupClassNames","menuSplitGroupMultilineAttr","useMenuSplitGroupStyles_unstable","root","useStyles","__styles","Bhlrgs3","mc9l5x","rue6gn","oe75ve","Bbblmiw","Bn2ps6a","Bu15iap","B71tm0z","Gjs4sj","foni4y","Ie9k5m","f30fub","Jberyy","d","p","state","styles","className","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAIaA,wBAAwB;eAAxBA;;IADAC,2BAA2B;eAA3BA;;IAiCIC,gCAAgC;eAAhCA;;;uBApCwB;AAGlC,MAAMD,8BAA8B;AACpC,MAAMD,2BAA2B;IACpCG,MAAM;AACV;AACA;;;CAGA,GAAI,MAAMC,YAAS,WAAA,GAAGC,IAAAA,eAAA,EAAA;IAAAF,MAAA;QAAAG,SAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;YAAA;YAAA;SAAA;QAAAC,SAAA;YAAA;YAAA;SAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,QAAA;IAAA;AAAA,GAAA;IAAAC,GAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,GAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;KAAA;AAAA;AA0BX,MAAMlB,mCAAoCmB,CAAAA;IACjD;IACA,MAAMC,SAASlB;IACfiB,MAAMlB,IAAI,CAACoB,SAAS,GAAGC,IAAAA,mBAAY,EAACxB,yBAAyBG,IAAI,EAAEmB,OAAOnB,IAAI,EAAEkB,MAAMlB,IAAI,CAACoB,SAAS;IACpG,OAAOF;AACX"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ MenuSplitGroupContextProvider: function() {
13
+ return MenuSplitGroupContextProvider;
14
+ },
15
+ menuSplitGroupContextDefaultValue: function() {
16
+ return menuSplitGroupContextDefaultValue;
17
+ },
18
+ useIsInMenuSplitGroup: function() {
19
+ return useIsInMenuSplitGroup;
20
+ },
21
+ useMenuSplitGroupContext_unstable: function() {
22
+ return useMenuSplitGroupContext_unstable;
23
+ }
24
+ });
25
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
26
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
27
+ /**
28
+ * Context used communicate with a child menu item that it is a trigger for a submenu
29
+ */ const MenuSplitGroupContext = /*#__PURE__*/ _react.createContext(undefined);
30
+ const menuSplitGroupContextDefaultValue = {
31
+ setMultiline: ()=>null
32
+ };
33
+ const MenuSplitGroupContextProvider = MenuSplitGroupContext.Provider;
34
+ const useMenuSplitGroupContext_unstable = ()=>{
35
+ var _React_useContext;
36
+ return (_React_useContext = _react.useContext(MenuSplitGroupContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuSplitGroupContextDefaultValue;
37
+ };
38
+ const useIsInMenuSplitGroup = ()=>{
39
+ const context = useMenuSplitGroupContext_unstable();
40
+ return context !== menuSplitGroupContextDefaultValue;
41
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/contexts/menuSplitGroupContext.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type MenuSplitGroupContextValue = {\n setMultiline: (multiline: boolean) => void;\n};\n\n/**\n * Context used communicate with a child menu item that it is a trigger for a submenu\n */\nconst MenuSplitGroupContext = React.createContext<MenuSplitGroupContextValue | undefined>(\n undefined,\n) as React.Context<MenuSplitGroupContextValue>;\n\nexport const menuSplitGroupContextDefaultValue = {\n setMultiline: () => null,\n};\n\nexport const MenuSplitGroupContextProvider = MenuSplitGroupContext.Provider;\nexport const useMenuSplitGroupContext_unstable = () =>\n React.useContext(MenuSplitGroupContext) ?? menuSplitGroupContextDefaultValue;\n\nexport const useIsInMenuSplitGroup = () => {\n const context = useMenuSplitGroupContext_unstable();\n return context !== menuSplitGroupContextDefaultValue;\n};\n"],"names":["MenuSplitGroupContextProvider","menuSplitGroupContextDefaultValue","useIsInMenuSplitGroup","useMenuSplitGroupContext_unstable","MenuSplitGroupContext","React","createContext","undefined","setMultiline","Provider","useContext","context"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAiBaA,6BAAAA;eAAAA;;IAJAC,iCAAAA;eAAAA;;IAQAC,qBAAAA;eAAAA;;IAHAC,iCAAAA;eAAAA;;;;iEAlBU;AAMvB;;CAEC,GACD,MAAMC,sCAAwBC,OAAMC,aAAa,CAC/CC;AAGK,MAAMN,oCAAoC;IAC/CO,cAAc,IAAM;AACtB;AAEO,MAAMR,gCAAgCI,sBAAsBK,QAAQ;AACpE,MAAMN,oCAAoC;QAC/CE;WAAAA,CAAAA,oBAAAA,OAAMK,UAAU,CAACN,sBAAAA,MAAAA,QAAjBC,sBAAAA,KAAAA,IAAAA,oBAA2CJ;AAAgC;AAEtE,MAAMC,wBAAwB;IACnC,MAAMS,UAAUR;IAChB,OAAOQ,YAAYV;AACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-menu",
3
- "version": "9.14.26",
3
+ "version": "9.16.0",
4
4
  "description": "Fluent UI menu component",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -21,13 +21,13 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@fluentui/keyboard-keys": "^9.0.8",
24
- "@fluentui/react-aria": "^9.13.14",
24
+ "@fluentui/react-aria": "^9.14.0",
25
25
  "@fluentui/react-context-selector": "^9.1.72",
26
26
  "@fluentui/react-icons": "^2.0.245",
27
- "@fluentui/react-portal": "^9.4.42",
28
- "@fluentui/react-positioning": "^9.16.2",
27
+ "@fluentui/react-portal": "^9.5.0",
28
+ "@fluentui/react-positioning": "^9.16.3",
29
29
  "@fluentui/react-shared-contexts": "^9.21.2",
30
- "@fluentui/react-tabster": "^9.23.3",
30
+ "@fluentui/react-tabster": "^9.24.0",
31
31
  "@fluentui/react-theme": "^9.1.24",
32
32
  "@fluentui/react-utilities": "^9.18.20",
33
33
  "@fluentui/react-jsx-runtime": "^9.0.50",