@fluentui-react-native/menu 0.10.0 → 0.11.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 (101) hide show
  1. package/CHANGELOG.json +28 -1
  2. package/CHANGELOG.md +12 -2
  3. package/lib/Menu/useMenu.d.ts.map +1 -1
  4. package/lib/Menu/useMenu.js +5 -1
  5. package/lib/Menu/useMenu.js.map +1 -1
  6. package/lib/MenuItem/MenuItem.d.ts.map +1 -1
  7. package/lib/MenuItem/MenuItem.js +4 -2
  8. package/lib/MenuItem/MenuItem.js.map +1 -1
  9. package/lib/MenuItem/MenuItem.styling.d.ts.map +1 -1
  10. package/lib/MenuItem/MenuItem.styling.js +6 -0
  11. package/lib/MenuItem/MenuItem.styling.js.map +1 -1
  12. package/lib/MenuItem/MenuItem.types.d.ts +2 -0
  13. package/lib/MenuItem/MenuItem.types.d.ts.map +1 -1
  14. package/lib/MenuItem/MenuItemTokens.d.ts.map +1 -1
  15. package/lib/MenuItem/MenuItemTokens.js +2 -0
  16. package/lib/MenuItem/MenuItemTokens.js.map +1 -1
  17. package/lib/MenuItem/MenuItemTokens.win32.d.ts.map +1 -1
  18. package/lib/MenuItem/MenuItemTokens.win32.js +2 -0
  19. package/lib/MenuItem/MenuItemTokens.win32.js.map +1 -1
  20. package/lib/MenuItem/useMenuItem.d.ts.map +1 -1
  21. package/lib/MenuItem/useMenuItem.js +3 -1
  22. package/lib/MenuItem/useMenuItem.js.map +1 -1
  23. package/lib/MenuPopover/MenuPopover.d.ts.map +1 -1
  24. package/lib/MenuPopover/MenuPopover.js +1 -1
  25. package/lib/MenuPopover/MenuPopover.js.map +1 -1
  26. package/lib/MenuPopover/MenuPopover.types.d.ts +2 -1
  27. package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  28. package/lib/MenuPopover/useMenuPopover.d.ts.map +1 -1
  29. package/lib/MenuPopover/useMenuPopover.js +12 -2
  30. package/lib/MenuPopover/useMenuPopover.js.map +1 -1
  31. package/lib/MenuTrigger/MenuTrigger.d.ts.map +1 -1
  32. package/lib/MenuTrigger/MenuTrigger.js +4 -3
  33. package/lib/MenuTrigger/MenuTrigger.js.map +1 -1
  34. package/lib/MenuTrigger/MenuTrigger.types.d.ts +11 -2
  35. package/lib/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
  36. package/lib/MenuTrigger/MenuTrigger.types.js.map +1 -1
  37. package/lib/MenuTrigger/useMenuTrigger.d.ts +2 -11
  38. package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  39. package/lib/MenuTrigger/useMenuTrigger.js +4 -1
  40. package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
  41. package/lib/context/menuTriggerContext.d.ts +9 -0
  42. package/lib/context/menuTriggerContext.d.ts.map +1 -0
  43. package/lib/context/menuTriggerContext.js +9 -0
  44. package/lib/context/menuTriggerContext.js.map +1 -0
  45. package/lib-commonjs/Menu/useMenu.d.ts.map +1 -1
  46. package/lib-commonjs/Menu/useMenu.js +5 -1
  47. package/lib-commonjs/Menu/useMenu.js.map +1 -1
  48. package/lib-commonjs/MenuItem/MenuItem.d.ts.map +1 -1
  49. package/lib-commonjs/MenuItem/MenuItem.js +3 -1
  50. package/lib-commonjs/MenuItem/MenuItem.js.map +1 -1
  51. package/lib-commonjs/MenuItem/MenuItem.styling.d.ts.map +1 -1
  52. package/lib-commonjs/MenuItem/MenuItem.styling.js +6 -0
  53. package/lib-commonjs/MenuItem/MenuItem.styling.js.map +1 -1
  54. package/lib-commonjs/MenuItem/MenuItem.types.d.ts +2 -0
  55. package/lib-commonjs/MenuItem/MenuItem.types.d.ts.map +1 -1
  56. package/lib-commonjs/MenuItem/MenuItemTokens.d.ts.map +1 -1
  57. package/lib-commonjs/MenuItem/MenuItemTokens.js +2 -0
  58. package/lib-commonjs/MenuItem/MenuItemTokens.js.map +1 -1
  59. package/lib-commonjs/MenuItem/MenuItemTokens.win32.d.ts.map +1 -1
  60. package/lib-commonjs/MenuItem/MenuItemTokens.win32.js +2 -0
  61. package/lib-commonjs/MenuItem/MenuItemTokens.win32.js.map +1 -1
  62. package/lib-commonjs/MenuItem/useMenuItem.d.ts.map +1 -1
  63. package/lib-commonjs/MenuItem/useMenuItem.js +3 -1
  64. package/lib-commonjs/MenuItem/useMenuItem.js.map +1 -1
  65. package/lib-commonjs/MenuPopover/MenuPopover.d.ts.map +1 -1
  66. package/lib-commonjs/MenuPopover/MenuPopover.js +1 -1
  67. package/lib-commonjs/MenuPopover/MenuPopover.js.map +1 -1
  68. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts +2 -1
  69. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  70. package/lib-commonjs/MenuPopover/useMenuPopover.d.ts.map +1 -1
  71. package/lib-commonjs/MenuPopover/useMenuPopover.js +11 -1
  72. package/lib-commonjs/MenuPopover/useMenuPopover.js.map +1 -1
  73. package/lib-commonjs/MenuTrigger/MenuTrigger.d.ts.map +1 -1
  74. package/lib-commonjs/MenuTrigger/MenuTrigger.js +4 -3
  75. package/lib-commonjs/MenuTrigger/MenuTrigger.js.map +1 -1
  76. package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts +11 -2
  77. package/lib-commonjs/MenuTrigger/MenuTrigger.types.d.ts.map +1 -1
  78. package/lib-commonjs/MenuTrigger/MenuTrigger.types.js.map +1 -1
  79. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts +2 -11
  80. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  81. package/lib-commonjs/MenuTrigger/useMenuTrigger.js +4 -1
  82. package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
  83. package/lib-commonjs/context/menuTriggerContext.d.ts +9 -0
  84. package/lib-commonjs/context/menuTriggerContext.d.ts.map +1 -0
  85. package/lib-commonjs/context/menuTriggerContext.js +14 -0
  86. package/lib-commonjs/context/menuTriggerContext.js.map +1 -0
  87. package/package.json +3 -3
  88. package/src/Menu/useMenu.ts +6 -0
  89. package/src/MenuItem/MenuItem.styling.ts +7 -0
  90. package/src/MenuItem/MenuItem.tsx +10 -5
  91. package/src/MenuItem/MenuItem.types.ts +2 -0
  92. package/src/MenuItem/MenuItemTokens.ts +2 -0
  93. package/src/MenuItem/MenuItemTokens.win32.ts +2 -0
  94. package/src/MenuItem/useMenuItem.ts +3 -1
  95. package/src/MenuPopover/MenuPopover.tsx +1 -0
  96. package/src/MenuPopover/MenuPopover.types.ts +2 -1
  97. package/src/MenuPopover/useMenuPopover.ts +16 -3
  98. package/src/MenuTrigger/MenuTrigger.tsx +4 -3
  99. package/src/MenuTrigger/MenuTrigger.types.ts +14 -3
  100. package/src/MenuTrigger/useMenuTrigger.ts +6 -3
  101. package/src/context/menuTriggerContext.ts +10 -0
@@ -8,6 +8,8 @@ import { FontTokens, IBorderTokens, IColorTokens, LayoutTokens } from '@fluentui
8
8
  export declare const menuItemName = "MenuItem";
9
9
  export interface MenuItemTokens extends LayoutTokens, FontTokens, IBorderTokens, IColorTokens {
10
10
  checkmarkSize?: number;
11
+ submenuIndicatorPadding?: number;
12
+ submenuIndicatorSize?: number;
11
13
  gap?: number;
12
14
  disabled?: MenuItemTokens;
13
15
  focused?: MenuItemTokens;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.types.d.ts","sourceRoot":"","sources":["../../src/MenuItem/MenuItem.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAChI,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEtG,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtF,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe,CAAC,aAAa,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;CAC9B"}
1
+ {"version":3,"file":"MenuItem.types.d.ts","sourceRoot":"","sources":["../../src/MenuItem/MenuItem.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAChI,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEtG,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtF,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe,CAAC,aAAa,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemTokens.d.ts","sourceRoot":"","sources":["../../src/MenuItem/MenuItemTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CAyBrE,CAAC"}
1
+ {"version":3,"file":"MenuItemTokens.d.ts","sourceRoot":"","sources":["../../src/MenuItem/MenuItemTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CA2BrE,CAAC"}
@@ -6,6 +6,8 @@ var defaultMenuItemTokens = function (t) { return ({
6
6
  backgroundColor: t.colors.neutralBackground1,
7
7
  borderRadius: theme_tokens_1.globalTokens.corner.radius.medium,
8
8
  checkmarkSize: 16,
9
+ submenuIndicatorPadding: theme_tokens_1.globalTokens.spacing.none,
10
+ submenuIndicatorSize: 16,
9
11
  color: t.colors.neutralForeground2,
10
12
  fontFamily: t.typography.families.primary,
11
13
  fontSize: theme_tokens_1.globalTokens.font.size[300],
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemTokens.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItemTokens.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAI5D,IAAM,qBAAqB,GAAyC,UAAC,CAAQ,IAAqB,OAAA,CAAC;IACxG,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,YAAY,EAAE,2BAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;IAC/C,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE;IAC5B,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,2BAAY,CAAC,OAAO,CAAC,MAAM;IACpC,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;KACxC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;CACF,CAAC,EAzBuG,CAyBvG,CAAC;AAzBU,QAAA,qBAAqB,yBAyB/B"}
1
+ {"version":3,"file":"MenuItemTokens.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItemTokens.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAI5D,IAAM,qBAAqB,GAAyC,UAAC,CAAQ,IAAqB,OAAA,CAAC;IACxG,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,YAAY,EAAE,2BAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;IAC/C,aAAa,EAAE,EAAE;IACjB,uBAAuB,EAAE,2BAAY,CAAC,OAAO,CAAC,IAAI;IAClD,oBAAoB,EAAE,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE;IAC5B,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,2BAAY,CAAC,OAAO,CAAC,MAAM;IACpC,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;KACxC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;CACF,CAAC,EA3BuG,CA2BvG,CAAC;AA3BU,QAAA,qBAAqB,yBA2B/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemTokens.win32.d.ts","sourceRoot":"","sources":["../../src/MenuItem/MenuItemTokens.win32.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CA0BrE,CAAC"}
1
+ {"version":3,"file":"MenuItemTokens.win32.d.ts","sourceRoot":"","sources":["../../src/MenuItem/MenuItemTokens.win32.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CA4BrE,CAAC"}
@@ -6,6 +6,8 @@ var defaultMenuItemTokens = function (t) { return ({
6
6
  backgroundColor: t.colors.neutralBackground1,
7
7
  borderRadius: theme_tokens_1.globalTokens.corner.radius.none,
8
8
  checkmarkSize: 16,
9
+ submenuIndicatorPadding: theme_tokens_1.globalTokens.spacing.xxs,
10
+ submenuIndicatorSize: 16,
9
11
  color: t.colors.neutralForeground1,
10
12
  fontFamily: t.typography.families.primary,
11
13
  fontSize: theme_tokens_1.globalTokens.font.size[200],
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemTokens.win32.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItemTokens.win32.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAI5D,IAAM,qBAAqB,GAAyC,UAAC,CAAQ,IAAqB,OAAA,CAAC;IACxG,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,YAAY,EAAE,2BAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;IAC7C,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE;IAC5B,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE;IAChC,iBAAiB,EAAE,2BAAY,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;KACxC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;CACF,CAAC,EA1BuG,CA0BvG,CAAC;AA1BU,QAAA,qBAAqB,yBA0B/B"}
1
+ {"version":3,"file":"MenuItemTokens.win32.js","sourceRoot":"","sources":["../../src/MenuItem/MenuItemTokens.win32.ts"],"names":[],"mappings":";;;AACA,oEAAmE;AAI5D,IAAM,qBAAqB,GAAyC,UAAC,CAAQ,IAAqB,OAAA,CAAC;IACxG,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAC5C,YAAY,EAAE,2BAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;IAC7C,aAAa,EAAE,EAAE;IACjB,uBAAuB,EAAE,2BAAY,CAAC,OAAO,CAAC,GAAG;IACjD,oBAAoB,EAAE,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;IAClC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IACzC,QAAQ,EAAE,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,UAAU,EAAE,2BAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0B;IAC/D,GAAG,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE;IAC5B,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,2BAAY,CAAC,OAAO,CAAC,EAAE;IAChC,iBAAiB,EAAE,2BAAY,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;QACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB;KACxC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB;QAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,yBAAyB;KAC1C;CACF,CAAC,EA5BuG,CA4BvG,CAAC;AA5BU,QAAA,qBAAqB,yBA4B/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMhE,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,aA0BlD,CAAC"}
1
+ {"version":3,"file":"useMenuItem.d.ts","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOhE,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,aA2BlD,CAAC"}
@@ -7,13 +7,15 @@ var framework_1 = require("@fluentui-react-native/framework");
7
7
  var interactive_hooks_1 = require("@fluentui-react-native/interactive-hooks");
8
8
  var menuContext_1 = require("../context/menuContext");
9
9
  var menuListContext_1 = require("../context/menuListContext");
10
+ var menuTriggerContext_1 = require("../context/menuTriggerContext");
10
11
  var useMenuItem = function (props) {
11
12
  // attach the pressable state handlers
12
13
  var defaultComponentRef = React.useRef(null);
13
14
  var onClick = props.onClick, accessibilityState = props.accessibilityState, _a = props.componentRef, componentRef = _a === void 0 ? defaultComponentRef : _a, disabled = props.disabled, rest = (0, tslib_1.__rest)(props, ["onClick", "accessibilityState", "componentRef", "disabled"]);
14
15
  var pressable = (0, interactive_hooks_1.useAsPressable)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, rest), { disabled: disabled, onPress: onClick }));
15
16
  var onKeyProps = (0, interactive_hooks_1.useKeyProps)(onClick, ' ', 'Enter');
16
- var hasSubmenu = (0, menuContext_1.useMenuContext)().isSubmenu;
17
+ var isTrigger = (0, menuTriggerContext_1.useMenuTriggerContext)();
18
+ var hasSubmenu = (0, menuContext_1.useMenuContext)().isSubmenu && isTrigger;
17
19
  var hasCheckmarks = (0, menuListContext_1.useMenuListContext)().hasCheckmarks;
18
20
  return {
19
21
  props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityRole: 'menuitem', onAccessibilityTap: props.onAccessibilityTap || props.onClick, accessibilityLabel: props.accessibilityLabel, accessibilityState: getAccessibilityState(disabled, accessibilityState), enableFocusRing: true, focusable: !disabled, ref: componentRef }), onKeyProps),
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAG/B,8DAA2D;AAC3D,8EAAuF;AACvF,sDAAwD;AACxD,8DAAgE;AAEzD,IAAM,WAAW,GAAG,UAAC,KAAoB;IAC9C,sCAAsC;IACtC,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,IAAA,OAAO,GAAgF,KAAK,QAArF,EAAE,kBAAkB,GAA4D,KAAK,mBAAjE,EAAE,KAA0D,KAAK,aAA7B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAAE,QAAQ,GAAc,KAAK,SAAnB,EAAK,IAAI,uBAAK,KAAK,EAA9F,6DAAsF,CAAF,CAAW;IACrG,IAAM,SAAS,GAAG,IAAA,kCAAc,kDAAM,IAAI,KAAE,QAAQ,UAAA,EAAE,OAAO,EAAE,OAAO,IAAG,CAAC;IAC1E,IAAM,UAAU,GAAG,IAAA,+BAAW,EAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,IAAM,UAAU,GAAG,IAAA,4BAAc,GAAE,CAAC,SAAS,CAAC;IAC9C,IAAM,aAAa,GAAG,IAAA,oCAAkB,GAAE,CAAC,aAAa,CAAC;IAEzD,OAAO;QACL,KAAK,wEACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,UAAU,EAC7B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EACvE,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,GAAG,EAAE,YAAY,KACd,UAAU,CACd;QACD,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,UAAU,YAAA;QACV,aAAa,eAAA;KACd,CAAC;AACJ,CAAC,CAAC;AA1BW,QAAA,WAAW,eA0BtB;AAEF,IAAM,qBAAqB,GAAG,IAAA,mBAAO,EAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,kBAAuC;IAC7F,IAAI,kBAAkB,EAAE;QACtB,+BAAS,QAAQ,UAAA,IAAK,kBAAkB,EAAG;KAC5C;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"useMenuItem.js","sourceRoot":"","sources":["../../src/MenuItem/useMenuItem.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAG/B,8DAA2D;AAC3D,8EAAuF;AACvF,sDAAwD;AACxD,8DAAgE;AAChE,oEAAsE;AAE/D,IAAM,WAAW,GAAG,UAAC,KAAoB;IAC9C,sCAAsC;IACtC,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,IAAA,OAAO,GAAgF,KAAK,QAArF,EAAE,kBAAkB,GAA4D,KAAK,mBAAjE,EAAE,KAA0D,KAAK,aAA7B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAAE,QAAQ,GAAc,KAAK,SAAnB,EAAK,IAAI,uBAAK,KAAK,EAA9F,6DAAsF,CAAF,CAAW;IACrG,IAAM,SAAS,GAAG,IAAA,kCAAc,kDAAM,IAAI,KAAE,QAAQ,UAAA,EAAE,OAAO,EAAE,OAAO,IAAG,CAAC;IAC1E,IAAM,UAAU,GAAG,IAAA,+BAAW,EAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,IAAM,SAAS,GAAG,IAAA,0CAAqB,GAAE,CAAC;IAC1C,IAAM,UAAU,GAAG,IAAA,4BAAc,GAAE,CAAC,SAAS,IAAI,SAAS,CAAC;IAC3D,IAAM,aAAa,GAAG,IAAA,oCAAkB,GAAE,CAAC,aAAa,CAAC;IAEzD,OAAO;QACL,KAAK,wEACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,iBAAiB,EAAE,UAAU,EAC7B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAC7D,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EACvE,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,GAAG,EAAE,YAAY,KACd,UAAU,CACd;QACD,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,UAAU,YAAA;QACV,aAAa,eAAA;KACd,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,WAAW,eA2BtB;AAEF,IAAM,qBAAqB,GAAG,IAAA,mBAAO,EAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,kBAAuC;IAC7F,IAAI,kBAAkB,EAAE;QACtB,+BAAS,QAAQ,UAAA,IAAK,kBAAkB,EAAG;KAC5C;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,CAAC;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,eAAO,MAAM,WAAW,iFAmBtB,CAAC;AAGH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,eAAO,MAAM,WAAW,iFAoBtB,CAAC;AAGH,eAAe,WAAW,CAAC"}
@@ -11,7 +11,7 @@ exports.MenuPopover = (0, framework_1.stagedComponent)(function (props) {
11
11
  var state = (0, useMenuPopover_1.useMenuPopover)(props);
12
12
  var theme = (0, framework_1.useFluentTheme)();
13
13
  return function (_rest, children) {
14
- return (react_1.default.createElement(callout_1.Callout, { borderWidth: 1, borderColor: theme.colors.neutralStrokeAccessible, target: state.triggerRef, onDismiss: state.onDismiss, dismissBehaviors: state.dismissBehaviors, setInitialFocus: state.setInitialFocus, doNotTakePointerCapture: state.doNotTakePointerCapture }, children));
14
+ return (react_1.default.createElement(callout_1.Callout, { borderWidth: 1, borderColor: theme.colors.neutralStrokeAccessible, target: state.triggerRef, onDismiss: state.onDismiss, dismissBehaviors: state.dismissBehaviors, setInitialFocus: state.setInitialFocus, directionalHint: state.directionalHint, doNotTakePointerCapture: state.doNotTakePointerCapture }, children));
15
15
  };
16
16
  });
17
17
  exports.MenuPopover.displayName = MenuPopover_types_1.menuPopoverName;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAC1B,8DAAmF;AACnF,0DAAyD;AACzD,yDAAwE;AACxE,mDAAkD;AAErC,QAAA,WAAW,GAAG,IAAA,2BAAe,EAAC,UAAC,KAAuB;IACjE,IAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,IAAA,0BAAc,GAAE,CAAC;IAE/B,OAAO,UAAC,KAAuB,EAAE,QAAyB;QACxD,OAAO,CACL,8BAAC,iBAAO,IACN,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,uBAAuB,EACjD,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,IAErD,QAAQ,CACD,CACX,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,mBAAW,CAAC,WAAW,GAAG,mCAAe,CAAC;AAE1C,kBAAe,mBAAW,CAAC"}
1
+ {"version":3,"file":"MenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAC1B,8DAAmF;AACnF,0DAAyD;AACzD,yDAAwE;AACxE,mDAAkD;AAErC,QAAA,WAAW,GAAG,IAAA,2BAAe,EAAC,UAAC,KAAuB;IACjE,IAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,IAAA,0BAAc,GAAE,CAAC;IAE/B,OAAO,UAAC,KAAuB,EAAE,QAAyB;QACxD,OAAO,CACL,8BAAC,iBAAO,IACN,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,uBAAuB,EACjD,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,IAErD,QAAQ,CACD,CACX,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,mBAAW,CAAC,WAAW,GAAG,mCAAe,CAAC;AAE1C,kBAAe,mBAAW,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import type { IViewProps } from '@fluentui-react-native/adapters';
3
- import { DismissBehaviors } from '@fluentui-react-native/callout';
3
+ import { DirectionalHint, DismissBehaviors } from '@fluentui-react-native/callout';
4
4
  export declare const menuPopoverName = "MenuPopover";
5
5
  export interface MenuPopoverProps extends Omit<IViewProps, 'onPress'> {
6
6
  }
7
7
  export interface MenuPopoverState {
8
+ directionalHint?: DirectionalHint;
8
9
  dismissBehaviors: DismissBehaviors[];
9
10
  doNotTakePointerCapture: boolean;
10
11
  onDismiss: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;CAAG;AAExE,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,uBAAuB,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEnF,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;CAAG;AAExE,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,uBAAuB,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,eAAO,MAAM,cAAc,WAAY,gBAAgB,KAAG,gBAgBzD,CAAC"}
1
+ {"version":3,"file":"useMenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,eAAO,MAAM,cAAc,WAAY,gBAAgB,KAAG,gBAiBzD,CAAC"}
@@ -13,11 +13,21 @@ var useMenuPopover = function (_props) {
13
13
  var dismissBehaviors = context.isControlled
14
14
  ? ['preventDismissOnKeyDown', 'preventDismissOnClickOutside']
15
15
  : undefined;
16
+ var directionalHint = getDirectionalHint(context.isSubmenu, react_native_1.I18nManager.isRTL);
16
17
  // Initial focus behavior differs per platform, Windows platforms move focus
17
18
  // automatically onto first element of Callout
18
19
  var setInitialFocus = react_native_1.Platform.OS === 'win32' || react_native_1.Platform.OS === 'windows';
19
20
  var doNotTakePointerCapture = context.openOnHover;
20
- return { triggerRef: triggerRef, onDismiss: onDismiss, dismissBehaviors: dismissBehaviors, doNotTakePointerCapture: doNotTakePointerCapture, setInitialFocus: setInitialFocus };
21
+ return { triggerRef: triggerRef, onDismiss: onDismiss, directionalHint: directionalHint, dismissBehaviors: dismissBehaviors, doNotTakePointerCapture: doNotTakePointerCapture, setInitialFocus: setInitialFocus };
21
22
  };
22
23
  exports.useMenuPopover = useMenuPopover;
24
+ var getDirectionalHint = function (isSubmenu, isRtl) {
25
+ if (!isSubmenu) {
26
+ return undefined;
27
+ }
28
+ if (isRtl) {
29
+ return 'leftTopEdge';
30
+ }
31
+ return 'rightTopEdge';
32
+ };
23
33
  //# sourceMappingURL=useMenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAC1B,6CAAwC;AAExC,sDAAwD;AAGjD,IAAM,cAAc,GAAG,UAAC,MAAwB;IACrD,IAAM,OAAO,GAAG,IAAA,4BAAc,GAAE,CAAC;IACjC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,IAAM,SAAS,GAAG,eAAK,CAAC,WAAW,CAAC,cAAM,OAAA,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAAtC,CAAsC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7F,IAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY;QAC3C,CAAC,CAAE,CAAC,yBAAyB,EAAE,8BAA8B,CAAwB;QACrF,CAAC,CAAC,SAAS,CAAC;IAEd,4EAA4E;IAC5E,8CAA8C;IAC9C,IAAM,eAAe,GAAG,uBAAQ,CAAC,EAAE,KAAM,OAAe,IAAI,uBAAQ,CAAC,EAAE,KAAK,SAAS,CAAC;IACtF,IAAM,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAEpD,OAAO,EAAE,UAAU,YAAA,EAAE,SAAS,WAAA,EAAE,gBAAgB,kBAAA,EAAE,uBAAuB,yBAAA,EAAE,eAAe,iBAAA,EAAE,CAAC;AAC/F,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
1
+ {"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAC1B,6CAAqD;AAErD,sDAAwD;AAGjD,IAAM,cAAc,GAAG,UAAC,MAAwB;IACrD,IAAM,OAAO,GAAG,IAAA,4BAAc,GAAE,CAAC;IACjC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,IAAM,SAAS,GAAG,eAAK,CAAC,WAAW,CAAC,cAAM,OAAA,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAAtC,CAAsC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7F,IAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY;QAC3C,CAAC,CAAE,CAAC,yBAAyB,EAAE,8BAA8B,CAAwB;QACrF,CAAC,CAAC,SAAS,CAAC;IACd,IAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,0BAAW,CAAC,KAAK,CAAC,CAAC;IAEjF,4EAA4E;IAC5E,8CAA8C;IAC9C,IAAM,eAAe,GAAG,uBAAQ,CAAC,EAAE,KAAM,OAAe,IAAI,uBAAQ,CAAC,EAAE,KAAK,SAAS,CAAC;IACtF,IAAM,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAEpD,OAAO,EAAE,UAAU,YAAA,EAAE,SAAS,WAAA,EAAE,eAAe,iBAAA,EAAE,gBAAgB,kBAAA,EAAE,uBAAuB,yBAAA,EAAE,eAAe,iBAAA,EAAE,CAAC;AAChH,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AAEF,IAAM,kBAAkB,GAAG,UAAC,SAAkB,EAAE,KAAc;IAC5D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,KAAK,EAAE;QACT,OAAO,aAAa,CAAC;KACtB;IAED,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,eAAO,MAAM,WAAW,iFAiBtB,CAAC;AAGH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIxE,eAAO,MAAM,WAAW,iFAiBtB,CAAC;AAGH,eAAe,WAAW,CAAC"}
@@ -6,8 +6,9 @@ var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
6
  var framework_1 = require("@fluentui-react-native/framework");
7
7
  var MenuTrigger_types_1 = require("./MenuTrigger.types");
8
8
  var useMenuTrigger_1 = require("./useMenuTrigger");
9
+ var menuTriggerContext_1 = require("../context/menuTriggerContext");
9
10
  exports.MenuTrigger = (0, framework_1.stagedComponent)(function (props) {
10
- var state = (0, useMenuTrigger_1.useMenuTrigger)(props);
11
+ var menuTrigger = (0, useMenuTrigger_1.useMenuTrigger)(props);
11
12
  return function (_rest, children) {
12
13
  var childrenArray = react_1.default.Children.toArray(children);
13
14
  if (__DEV__) {
@@ -16,8 +17,8 @@ exports.MenuTrigger = (0, framework_1.stagedComponent)(function (props) {
16
17
  }
17
18
  }
18
19
  var child = childrenArray[0];
19
- var revised = react_1.default.cloneElement(child, state);
20
- return react_1.default.createElement(react_1.default.Fragment, null, revised);
20
+ var revised = react_1.default.cloneElement(child, menuTrigger.props);
21
+ return react_1.default.createElement(menuTriggerContext_1.MenuTriggerProvider, { value: menuTrigger.hasSubmenu }, revised);
21
22
  };
22
23
  });
23
24
  exports.MenuTrigger.displayName = MenuTrigger_types_1.menuTriggerName;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAC1B,8DAAmE;AACnE,yDAAwE;AACxE,mDAAkD;AAErC,QAAA,WAAW,GAAG,IAAA,2BAAe,EAAC,UAAC,KAAuB;IACjE,IAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,CAAC;IAEpC,OAAO,UAAC,KAAuB,EAAE,QAAyB;QACxD,IAAM,aAAa,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAyB,CAAC;QAE/E,IAAI,OAAO,EAAE;YACX,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;aACzD;SACF;QAED,IAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAM,OAAO,GAAG,eAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEjD,OAAO,8DAAG,OAAO,CAAI,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,mBAAW,CAAC,WAAW,GAAG,mCAAe,CAAC;AAE1C,kBAAe,mBAAW,CAAC"}
1
+ {"version":3,"file":"MenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.tsx"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAC1B,8DAAmE;AACnE,yDAAwE;AACxE,mDAAkD;AAClD,oEAAoE;AAEvD,QAAA,WAAW,GAAG,IAAA,2BAAe,EAAC,UAAC,KAAuB;IACjE,IAAM,WAAW,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,CAAC;IAE1C,OAAO,UAAC,KAAuB,EAAE,QAAyB;QACxD,IAAM,aAAa,GAAG,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAyB,CAAC;QAE/E,IAAI,OAAO,EAAE;YACX,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;aACzD;SACF;QAED,IAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAM,OAAO,GAAG,eAAK,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAE7D,OAAO,8BAAC,wCAAmB,IAAC,KAAK,EAAE,WAAW,CAAC,UAAU,IAAG,OAAO,CAAuB,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,mBAAW,CAAC,WAAW,GAAG,mCAAe,CAAC;AAE1C,kBAAe,mBAAW,CAAC"}
@@ -1,7 +1,16 @@
1
- import type { IViewProps } from '@fluentui-react-native/adapters';
1
+ /// <reference types="react" />
2
+ import { InteractionEvent, IWithPressableOptions } from '@fluentui-react-native/interactive-hooks';
3
+ import { ViewProps } from 'react-native';
2
4
  export declare const menuTriggerName = "MenuTrigger";
3
- export interface MenuTriggerProps extends Omit<IViewProps, 'onPress'> {
5
+ export interface MenuTriggerProps extends Omit<IWithPressableOptions<ViewProps>, 'onPress'> {
6
+ /**
7
+ * A RefObject to refer to the trigger component.
8
+ */
9
+ componentRef?: React.RefObject<React.Component>;
10
+ onClick?: (e: InteractionEvent) => void;
4
11
  }
5
12
  export interface MenuTriggerState {
13
+ props: MenuTriggerProps;
14
+ hasSubmenu: boolean;
6
15
  }
7
16
  //# sourceMappingURL=MenuTrigger.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTrigger.types.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;CAAG;AAExE,MAAM,WAAW,gBAAgB;CAAG"}
1
+ {"version":3,"file":"MenuTrigger.types.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IACzF;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuTrigger.types.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"MenuTrigger.types.js","sourceRoot":"","sources":["../../src/MenuTrigger/MenuTrigger.types.ts"],"names":[],"mappings":";;;AAGa,QAAA,eAAe,GAAG,aAAa,CAAC"}
@@ -1,12 +1,3 @@
1
- /// <reference types="react" />
2
- import { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
3
- import { MenuTriggerProps } from './MenuTrigger.types';
4
- export declare const useMenuTrigger: (_props: MenuTriggerProps) => {
5
- onClick: (e: InteractionEvent) => void;
6
- onHoverIn: (e: InteractionEvent) => void;
7
- onHoverOut: (e: InteractionEvent) => void;
8
- componentRef: import("react").RefObject<import("react").Component<{}, {}, any>>;
9
- delayHoverIn: number;
10
- delayHoverOut: number;
11
- };
1
+ import { MenuTriggerProps, MenuTriggerState } from './MenuTrigger.types';
2
+ export declare const useMenuTrigger: (_props: MenuTriggerProps) => MenuTriggerState;
12
3
  //# sourceMappingURL=useMenuTrigger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,eAAO,MAAM,cAAc,WAAY,gBAAgB;iBAyBjC,gBAAgB;mBAZd,gBAAgB;oBAMf,gBAAgB;;;;CAWxC,CAAC"}
1
+ {"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,eAAO,MAAM,cAAc,WAAY,gBAAgB,KAAG,gBAiCzD,CAAC"}
@@ -26,7 +26,10 @@ var useMenuTrigger = function (_props) {
26
26
  var onClick = function (e) {
27
27
  setOpen(e, !open);
28
28
  };
29
- return { onClick: onClick, onHoverIn: onHoverIn, onHoverOut: onHoverOut, componentRef: triggerRef, delayHoverIn: delayHover, delayHoverOut: delayHover };
29
+ return {
30
+ props: { onClick: onClick, onHoverIn: onHoverIn, onHoverOut: onHoverOut, componentRef: triggerRef, delayHoverIn: delayHover, delayHoverOut: delayHover },
31
+ hasSubmenu: context.isSubmenu,
32
+ };
30
33
  };
31
34
  exports.useMenuTrigger = useMenuTrigger;
32
35
  //# sourceMappingURL=useMenuTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":";;;AAAA,sDAAwD;AAGxD,6CAAwC;AAEjC,IAAM,cAAc,GAAG,UAAC,MAAwB;IACrD,IAAM,OAAO,GAAG,IAAA,4BAAc,GAAE,CAAC;IAEjC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEtC,IAAM,UAAU,GAAG,uBAAQ,CAAC,MAAM,CAAC;QACjC,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG,EAAE,QAAQ;KACvB,CAAC,CAAC;IAEH,IAAM,SAAS,GAAG,UAAC,CAAmB;QACpC,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,UAAC,CAAmB;QACrC,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;SAChC;IACH,CAAC,CAAC;IAEF,IAAM,OAAO,GAAG,UAAC,CAAmB;QAClC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,SAAA,EAAE,SAAS,WAAA,EAAE,UAAU,YAAA,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAC3H,CAAC,CAAC;AA9BW,QAAA,cAAc,kBA8BzB"}
1
+ {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":";;;AAAA,sDAAwD;AAGxD,6CAAwC;AAEjC,IAAM,cAAc,GAAG,UAAC,MAAwB;IACrD,IAAM,OAAO,GAAG,IAAA,4BAAc,GAAE,CAAC;IAEjC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEtC,IAAM,UAAU,GAAG,uBAAQ,CAAC,MAAM,CAAC;QACjC,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG,EAAE,QAAQ;KACvB,CAAC,CAAC;IAEH,IAAM,SAAS,GAAG,UAAC,CAAmB;QACpC,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,UAAC,CAAmB;QACrC,IAAI,WAAW,EAAE;YACf,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;SAChC;IACH,CAAC,CAAC;IAEF,IAAM,OAAO,GAAG,UAAC,CAAmB;QAClC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,EAAE,OAAO,SAAA,EAAE,SAAS,WAAA,EAAE,UAAU,YAAA,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE;QACxH,UAAU,EAAE,OAAO,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,cAAc,kBAiCzB"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ /**
3
+ * This context keeps track of whether a trigger component is for a submenu.
4
+ * This allows the trigger to show a submenu indicator.
5
+ */
6
+ export declare const MenuTriggerContext: React.Context<boolean>;
7
+ export declare const MenuTriggerProvider: React.Provider<boolean>;
8
+ export declare const useMenuTriggerContext: () => boolean;
9
+ //# sourceMappingURL=menuTriggerContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuTriggerContext.d.ts","sourceRoot":"","sources":["../../src/context/menuTriggerContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;GAGG;AACH,eAAO,MAAM,kBAAkB,wBAAsC,CAAC;AAEtE,eAAO,MAAM,mBAAmB,yBAA8B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,eAA6C,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMenuTriggerContext = exports.MenuTriggerProvider = exports.MenuTriggerContext = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
+ /**
7
+ * This context keeps track of whether a trigger component is for a submenu.
8
+ * This allows the trigger to show a submenu indicator.
9
+ */
10
+ exports.MenuTriggerContext = react_1.default.createContext(false);
11
+ exports.MenuTriggerProvider = exports.MenuTriggerContext.Provider;
12
+ var useMenuTriggerContext = function () { return react_1.default.useContext(exports.MenuTriggerContext); };
13
+ exports.useMenuTriggerContext = useMenuTriggerContext;
14
+ //# sourceMappingURL=menuTriggerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuTriggerContext.js","sourceRoot":"","sources":["../../src/context/menuTriggerContext.ts"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAE1B;;;GAGG;AACU,QAAA,kBAAkB,GAAG,eAAK,CAAC,aAAa,CAAU,KAAK,CAAC,CAAC;AAEzD,QAAA,mBAAmB,GAAG,0BAAkB,CAAC,QAAQ,CAAC;AACxD,IAAM,qBAAqB,GAAG,cAAM,OAAA,eAAK,CAAC,UAAU,CAAC,0BAAkB,CAAC,EAApC,CAAoC,CAAC;AAAnE,QAAA,qBAAqB,yBAA8C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui-react-native/menu",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "A cross-platform Menu component using the Fluent Design System",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -23,10 +23,10 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@fluentui-react-native/adapters": ">=0.8.5 <1.0.0",
26
- "@fluentui-react-native/callout": ">=0.20.3 <1.0.0",
26
+ "@fluentui-react-native/callout": ">=0.20.4 <1.0.0",
27
27
  "@fluentui-react-native/experimental-text": ">=0.9.0 <1.0.0",
28
28
  "@fluentui-react-native/framework": "0.7.30",
29
- "@fluentui-react-native/interactive-hooks": ">=0.15.10 <1.0.0",
29
+ "@fluentui-react-native/interactive-hooks": ">=0.16.0 <1.0.0",
30
30
  "@fluentui-react-native/theme-tokens": ">=0.18.0 <1.0.0",
31
31
  "@fluentui-react-native/tokens": ">=0.14.0 <1.0.0",
32
32
  "@fluentui-react-native/use-styling": ">=0.8.3 <1.0.0",
@@ -10,7 +10,13 @@ export const useMenu = (props: MenuProps): MenuState => {
10
10
  const isControlled = typeof props.open !== 'undefined';
11
11
  const [open, setOpen] = useMenuOpenState(isControlled, props);
12
12
 
13
+ // Default behaviot for submenu is to open on hover
14
+ // the ...props line below will override this behavior for a submenu
15
+ // or apply openOnHover if passed into a root Menu.
16
+ const openOnHover = isSubmenu;
17
+
13
18
  return {
19
+ openOnHover,
14
20
  ...props,
15
21
  open,
16
22
  setOpen,
@@ -47,6 +47,13 @@ export const stylingSettings: UseStylingOptions<MenuItemProps, MenuItemSlotProps
47
47
  (tokens: MenuItemTokens) => {
48
48
  return {
49
49
  color: tokens.color,
50
+ height: 16,
51
+ width: 16,
52
+ viewBox:
53
+ '0 0 ' +
54
+ (tokens.submenuIndicatorSize - tokens.submenuIndicatorPadding * 2) +
55
+ ' ' +
56
+ (tokens.submenuIndicatorSize - tokens.submenuIndicatorPadding * 2),
50
57
  };
51
58
  },
52
59
  ['color'],
@@ -1,5 +1,5 @@
1
1
  /** @jsx withSlots */
2
- import { View } from 'react-native';
2
+ import { I18nManager, View } from 'react-native';
3
3
  import { SvgXml } from 'react-native-svg';
4
4
  import { compose, mergeProps, UseSlots, withSlots } from '@fluentui-react-native/framework';
5
5
  import { Text } from '@fluentui-react-native/experimental-text';
@@ -22,10 +22,15 @@ export const MenuItem = compose<MenuItemType>({
22
22
 
23
23
  return (final: MenuItemProps) => {
24
24
  const mergedProps = mergeProps(menuItem.props, final);
25
- const chevronXml = `
26
- <svg width="12" height="16" viewBox="0 0 11 6">
27
- <path fill='currentColor' d='M0.646447 0.646447C0.841709 0.451184 1.15829 0.451184 1.35355 0.646447L5.5 4.79289L9.64645 0.646447C9.84171 0.451185 10.1583 0.451185 10.3536 0.646447C10.5488 0.841709 10.5488 1.15829 10.3536 1.35355L5.85355 5.85355C5.65829 6.04882 5.34171 6.04882 5.14645 5.85355L0.646447 1.35355C0.451184 1.15829 0.451184 0.841709 0.646447 0.646447Z' />
28
- </svg>`;
25
+ const chevronXml = I18nManager.isRTL
26
+ ? `
27
+ <svg>
28
+ <path fill='currentColor' d='M7.35355 2.14645C7.54882 2.34171 7.54882 2.65829 7.35355 2.85355L4.20711 6L7.35355 9.14645C7.54882 9.34171 7.54882 9.65829 7.35355 9.85355C7.15829 10.0488 6.84171 10.0488 6.64645 9.85355L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645L6.64645 2.14645C6.84171 1.95118 7.15829 1.95118 7.35355 2.14645Z' />
29
+ </svg>`
30
+ : `
31
+ <svg>
32
+ <path fill='currentColor' d='M4.64645 2.14645C4.45118 2.34171 4.45118 2.65829 4.64645 2.85355L7.79289 6L4.64645 9.14645C4.45118 9.34171 4.45118 9.65829 4.64645 9.85355C4.84171 10.0488 5.15829 10.0488 5.35355 9.85355L8.85355 6.35355C9.04882 6.15829 9.04882 5.84171 8.85355 5.64645L5.35355 2.14645C5.15829 1.95118 4.84171 1.95118 4.64645 2.14645Z' />
33
+ </svg>`;
29
34
 
30
35
  return (
31
36
  <Slots.root {...mergedProps}>
@@ -10,6 +10,8 @@ export const menuItemName = 'MenuItem';
10
10
 
11
11
  export interface MenuItemTokens extends LayoutTokens, FontTokens, IBorderTokens, IColorTokens {
12
12
  checkmarkSize?: number;
13
+ submenuIndicatorPadding?: number;
14
+ submenuIndicatorSize?: number;
13
15
  gap?: number;
14
16
 
15
17
  disabled?: MenuItemTokens;
@@ -7,6 +7,8 @@ export const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme> = (t: T
7
7
  backgroundColor: t.colors.neutralBackground1,
8
8
  borderRadius: globalTokens.corner.radius.medium,
9
9
  checkmarkSize: 16,
10
+ submenuIndicatorPadding: globalTokens.spacing.none,
11
+ submenuIndicatorSize: 16,
10
12
  color: t.colors.neutralForeground2,
11
13
  fontFamily: t.typography.families.primary,
12
14
  fontSize: globalTokens.font.size[300],
@@ -7,6 +7,8 @@ export const defaultMenuItemTokens: TokenSettings<MenuItemTokens, Theme> = (t: T
7
7
  backgroundColor: t.colors.neutralBackground1,
8
8
  borderRadius: globalTokens.corner.radius.none,
9
9
  checkmarkSize: 16,
10
+ submenuIndicatorPadding: globalTokens.spacing.xxs,
11
+ submenuIndicatorSize: 16,
10
12
  color: t.colors.neutralForeground1,
11
13
  fontFamily: t.typography.families.primary,
12
14
  fontSize: globalTokens.font.size[200],
@@ -5,6 +5,7 @@ import { memoize } from '@fluentui-react-native/framework';
5
5
  import { useAsPressable, useKeyProps } from '@fluentui-react-native/interactive-hooks';
6
6
  import { useMenuContext } from '../context/menuContext';
7
7
  import { useMenuListContext } from '../context/menuListContext';
8
+ import { useMenuTriggerContext } from '../context/menuTriggerContext';
8
9
 
9
10
  export const useMenuItem = (props: MenuItemProps): MenuItemState => {
10
11
  // attach the pressable state handlers
@@ -12,7 +13,8 @@ export const useMenuItem = (props: MenuItemProps): MenuItemState => {
12
13
  const { onClick, accessibilityState, componentRef = defaultComponentRef, disabled, ...rest } = props;
13
14
  const pressable = useAsPressable({ ...rest, disabled, onPress: onClick });
14
15
  const onKeyProps = useKeyProps(onClick, ' ', 'Enter');
15
- const hasSubmenu = useMenuContext().isSubmenu;
16
+ const isTrigger = useMenuTriggerContext();
17
+ const hasSubmenu = useMenuContext().isSubmenu && isTrigger;
16
18
  const hasCheckmarks = useMenuListContext().hasCheckmarks;
17
19
 
18
20
  return {
@@ -17,6 +17,7 @@ export const MenuPopover = stagedComponent((props: MenuPopoverProps) => {
17
17
  onDismiss={state.onDismiss}
18
18
  dismissBehaviors={state.dismissBehaviors}
19
19
  setInitialFocus={state.setInitialFocus}
20
+ directionalHint={state.directionalHint}
20
21
  doNotTakePointerCapture={state.doNotTakePointerCapture}
21
22
  >
22
23
  {children}
@@ -1,11 +1,12 @@
1
1
  import type { IViewProps } from '@fluentui-react-native/adapters';
2
- import { DismissBehaviors } from '@fluentui-react-native/callout';
2
+ import { DirectionalHint, DismissBehaviors } from '@fluentui-react-native/callout';
3
3
 
4
4
  export const menuPopoverName = 'MenuPopover';
5
5
 
6
6
  export interface MenuPopoverProps extends Omit<IViewProps, 'onPress'> {}
7
7
 
8
8
  export interface MenuPopoverState {
9
+ directionalHint?: DirectionalHint;
9
10
  dismissBehaviors: DismissBehaviors[];
10
11
  doNotTakePointerCapture: boolean;
11
12
  onDismiss: () => void;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { Platform } from 'react-native';
3
- import { DismissBehaviors } from '@fluentui-react-native/callout';
2
+ import { I18nManager, Platform } from 'react-native';
3
+ import { DirectionalHint, DismissBehaviors } from '@fluentui-react-native/callout';
4
4
  import { useMenuContext } from '../context/menuContext';
5
5
  import { MenuPopoverProps, MenuPopoverState } from './MenuPopover.types';
6
6
 
@@ -13,11 +13,24 @@ export const useMenuPopover = (_props: MenuPopoverProps): MenuPopoverState => {
13
13
  const dismissBehaviors = context.isControlled
14
14
  ? (['preventDismissOnKeyDown', 'preventDismissOnClickOutside'] as DismissBehaviors[])
15
15
  : undefined;
16
+ const directionalHint = getDirectionalHint(context.isSubmenu, I18nManager.isRTL);
16
17
 
17
18
  // Initial focus behavior differs per platform, Windows platforms move focus
18
19
  // automatically onto first element of Callout
19
20
  const setInitialFocus = Platform.OS === ('win32' as any) || Platform.OS === 'windows';
20
21
  const doNotTakePointerCapture = context.openOnHover;
21
22
 
22
- return { triggerRef, onDismiss, dismissBehaviors, doNotTakePointerCapture, setInitialFocus };
23
+ return { triggerRef, onDismiss, directionalHint, dismissBehaviors, doNotTakePointerCapture, setInitialFocus };
24
+ };
25
+
26
+ const getDirectionalHint = (isSubmenu: boolean, isRtl: boolean): DirectionalHint | undefined => {
27
+ if (!isSubmenu) {
28
+ return undefined;
29
+ }
30
+
31
+ if (isRtl) {
32
+ return 'leftTopEdge';
33
+ }
34
+
35
+ return 'rightTopEdge';
23
36
  };
@@ -2,9 +2,10 @@ import React from 'react';
2
2
  import { stagedComponent } from '@fluentui-react-native/framework';
3
3
  import { menuTriggerName, MenuTriggerProps } from './MenuTrigger.types';
4
4
  import { useMenuTrigger } from './useMenuTrigger';
5
+ import { MenuTriggerProvider } from '../context/menuTriggerContext';
5
6
 
6
7
  export const MenuTrigger = stagedComponent((props: MenuTriggerProps) => {
7
- const state = useMenuTrigger(props);
8
+ const menuTrigger = useMenuTrigger(props);
8
9
 
9
10
  return (_rest: MenuTriggerProps, children: React.ReactNode) => {
10
11
  const childrenArray = React.Children.toArray(children) as React.ReactElement[];
@@ -16,9 +17,9 @@ export const MenuTrigger = stagedComponent((props: MenuTriggerProps) => {
16
17
  }
17
18
 
18
19
  const child = childrenArray[0];
19
- const revised = React.cloneElement(child, state);
20
+ const revised = React.cloneElement(child, menuTrigger.props);
20
21
 
21
- return <>{revised}</>;
22
+ return <MenuTriggerProvider value={menuTrigger.hasSubmenu}>{revised}</MenuTriggerProvider>;
22
23
  };
23
24
  });
24
25
  MenuTrigger.displayName = menuTriggerName;
@@ -1,7 +1,18 @@
1
- import type { IViewProps } from '@fluentui-react-native/adapters';
1
+ import { InteractionEvent, IWithPressableOptions } from '@fluentui-react-native/interactive-hooks';
2
+ import { ViewProps } from 'react-native';
2
3
 
3
4
  export const menuTriggerName = 'MenuTrigger';
4
5
 
5
- export interface MenuTriggerProps extends Omit<IViewProps, 'onPress'> {}
6
+ export interface MenuTriggerProps extends Omit<IWithPressableOptions<ViewProps>, 'onPress'> {
7
+ /**
8
+ * A RefObject to refer to the trigger component.
9
+ */
10
+ componentRef?: React.RefObject<React.Component>;
6
11
 
7
- export interface MenuTriggerState {}
12
+ onClick?: (e: InteractionEvent) => void;
13
+ }
14
+
15
+ export interface MenuTriggerState {
16
+ props: MenuTriggerProps;
17
+ hasSubmenu: boolean;
18
+ }
@@ -1,9 +1,9 @@
1
1
  import { useMenuContext } from '../context/menuContext';
2
2
  import { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
3
- import { MenuTriggerProps } from './MenuTrigger.types';
3
+ import { MenuTriggerProps, MenuTriggerState } from './MenuTrigger.types';
4
4
  import { Platform } from 'react-native';
5
5
 
6
- export const useMenuTrigger = (_props: MenuTriggerProps) => {
6
+ export const useMenuTrigger = (_props: MenuTriggerProps): MenuTriggerState => {
7
7
  const context = useMenuContext();
8
8
 
9
9
  const setOpen = context.setOpen;
@@ -32,5 +32,8 @@ export const useMenuTrigger = (_props: MenuTriggerProps) => {
32
32
  setOpen(e, !open);
33
33
  };
34
34
 
35
- return { onClick, onHoverIn, onHoverOut, componentRef: triggerRef, delayHoverIn: delayHover, delayHoverOut: delayHover };
35
+ return {
36
+ props: { onClick, onHoverIn, onHoverOut, componentRef: triggerRef, delayHoverIn: delayHover, delayHoverOut: delayHover },
37
+ hasSubmenu: context.isSubmenu,
38
+ };
36
39
  };
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+
3
+ /**
4
+ * This context keeps track of whether a trigger component is for a submenu.
5
+ * This allows the trigger to show a submenu indicator.
6
+ */
7
+ export const MenuTriggerContext = React.createContext<boolean>(false);
8
+
9
+ export const MenuTriggerProvider = MenuTriggerContext.Provider;
10
+ export const useMenuTriggerContext = () => React.useContext(MenuTriggerContext);