@fluentui-react-native/menu 0.15.1 → 0.15.4

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 (52) hide show
  1. package/CHANGELOG.json +46 -1
  2. package/CHANGELOG.md +26 -2
  3. package/lib/Menu/Menu.types.d.ts +4 -0
  4. package/lib/Menu/Menu.types.d.ts.map +1 -1
  5. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +5 -17
  6. package/lib/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
  7. package/lib/MenuPopover/MenuPopover.d.ts +2 -1
  8. package/lib/MenuPopover/MenuPopover.d.ts.map +1 -1
  9. package/lib/MenuPopover/MenuPopover.js +19 -5
  10. package/lib/MenuPopover/MenuPopover.js.map +1 -1
  11. package/lib/MenuPopover/MenuPopover.types.d.ts +2 -1
  12. package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  13. package/lib/MenuPopover/MenuPopoverTokens.d.ts +3 -0
  14. package/lib/MenuPopover/MenuPopoverTokens.d.ts.map +1 -0
  15. package/lib/MenuPopover/MenuPopoverTokens.js +4 -0
  16. package/lib/MenuPopover/MenuPopoverTokens.js.map +1 -0
  17. package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  18. package/lib/MenuTrigger/useMenuTrigger.js +6 -6
  19. package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
  20. package/lib/consts.d.ts +1 -1
  21. package/lib/consts.d.ts.map +1 -1
  22. package/lib/consts.js +1 -1
  23. package/lib/consts.js.map +1 -1
  24. package/lib-commonjs/Menu/Menu.types.d.ts +4 -0
  25. package/lib-commonjs/Menu/Menu.types.d.ts.map +1 -1
  26. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts +5 -17
  27. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.types.d.ts.map +1 -1
  28. package/lib-commonjs/MenuPopover/MenuPopover.d.ts +2 -1
  29. package/lib-commonjs/MenuPopover/MenuPopover.d.ts.map +1 -1
  30. package/lib-commonjs/MenuPopover/MenuPopover.js +18 -4
  31. package/lib-commonjs/MenuPopover/MenuPopover.js.map +1 -1
  32. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts +2 -1
  33. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  34. package/lib-commonjs/MenuPopover/MenuPopoverTokens.d.ts +3 -0
  35. package/lib-commonjs/MenuPopover/MenuPopoverTokens.d.ts.map +1 -0
  36. package/lib-commonjs/MenuPopover/MenuPopoverTokens.js +7 -0
  37. package/lib-commonjs/MenuPopover/MenuPopoverTokens.js.map +1 -0
  38. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  39. package/lib-commonjs/MenuTrigger/useMenuTrigger.js +5 -5
  40. package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
  41. package/lib-commonjs/consts.d.ts +1 -1
  42. package/lib-commonjs/consts.d.ts.map +1 -1
  43. package/lib-commonjs/consts.js +2 -2
  44. package/lib-commonjs/consts.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/Menu/Menu.types.ts +5 -0
  47. package/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +6 -20
  48. package/src/MenuPopover/MenuPopover.tsx +28 -15
  49. package/src/MenuPopover/MenuPopover.types.ts +5 -1
  50. package/src/MenuPopover/MenuPopoverTokens.ts +7 -0
  51. package/src/MenuTrigger/useMenuTrigger.ts +15 -6
  52. package/src/consts.ts +1 -1
package/CHANGELOG.json CHANGED
@@ -2,7 +2,52 @@
2
2
  "name": "@fluentui-react-native/menu",
3
3
  "entries": [
4
4
  {
5
- "date": "Fri, 17 Jun 2022 00:26:55 GMT",
5
+ "date": "Tue, 21 Jun 2022 21:43:33 GMT",
6
+ "tag": "@fluentui-react-native/menu_v0.15.4",
7
+ "version": "0.15.4",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "ruaraki@microsoft.com",
12
+ "package": "@fluentui-react-native/menu",
13
+ "commit": "c606f6deb5e1be500fc4183e6537dbf523c84194",
14
+ "comment": "Some refactoring"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Tue, 21 Jun 2022 18:57:19 GMT",
21
+ "tag": "@fluentui-react-native/menu_v0.15.3",
22
+ "version": "0.15.3",
23
+ "comments": {
24
+ "patch": [
25
+ {
26
+ "author": "ruaraki@microsoft.com",
27
+ "package": "@fluentui-react-native/menu",
28
+ "commit": "842bfbf392c70c12da4774d2c4295d442fe8fd02",
29
+ "comment": "Add tokens to MenuPopover"
30
+ }
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "date": "Fri, 17 Jun 2022 20:00:18 GMT",
36
+ "tag": "@fluentui-react-native/menu_v0.15.2",
37
+ "version": "0.15.2",
38
+ "comments": {
39
+ "patch": [
40
+ {
41
+ "author": "ruaraki@microsoft.com",
42
+ "package": "@fluentui-react-native/menu",
43
+ "commit": "0521256cec60beb1ed3418be7aa593b6ec6eef85",
44
+ "comment": "Add hoverDelay prop"
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ "date": "Fri, 17 Jun 2022 00:27:10 GMT",
6
51
  "tag": "@fluentui-react-native/menu_v0.15.1",
7
52
  "version": "0.15.1",
8
53
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,36 @@
1
1
  # Change Log - @fluentui-react-native/menu
2
2
 
3
- This log was last generated on Fri, 17 Jun 2022 00:26:55 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 21 Jun 2022 21:43:33 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.15.4
8
+
9
+ Tue, 21 Jun 2022 21:43:33 GMT
10
+
11
+ ### Patches
12
+
13
+ - Some refactoring (ruaraki@microsoft.com)
14
+
15
+ ## 0.15.3
16
+
17
+ Tue, 21 Jun 2022 18:57:19 GMT
18
+
19
+ ### Patches
20
+
21
+ - Add tokens to MenuPopover (ruaraki@microsoft.com)
22
+
23
+ ## 0.15.2
24
+
25
+ Fri, 17 Jun 2022 20:00:18 GMT
26
+
27
+ ### Patches
28
+
29
+ - Add hoverDelay prop (ruaraki@microsoft.com)
30
+
7
31
  ## 0.15.1
8
32
 
9
- Fri, 17 Jun 2022 00:26:55 GMT
33
+ Fri, 17 Jun 2022 00:27:10 GMT
10
34
 
11
35
  ### Patches
12
36
 
@@ -8,6 +8,10 @@ export interface MenuProps extends MenuListProps {
8
8
  * Whether the popup is open on mount
9
9
  */
10
10
  defaultOpen?: boolean;
11
+ /**
12
+ * How much delay to have between hover in and showing the menu, in ms.
13
+ */
14
+ hoverDelay?: number;
11
15
  /**
12
16
  * Whether the popup is open
13
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.types.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAK9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1E,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"Menu.types.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAK9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1E,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9C"}
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
- import { ColorValue, ViewProps } from 'react-native';
2
+ import { ColorValue } from 'react-native';
3
3
  import { XmlProps } from 'react-native-svg';
4
4
  import type { IViewProps } from '@fluentui-react-native/adapters';
5
5
  import { TextProps } from '@fluentui-react-native/experimental-text';
6
- import { IFocusable, IPressableHooks, IWithPressableOptions } from '@fluentui-react-native/interactive-hooks';
7
- import { FontTokens, IBorderTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
6
+ import { IPressableHooks } from '@fluentui-react-native/interactive-hooks';
7
+ import { MenuItemProps, MenuItemTokens } from '../MenuItem/MenuItem.types';
8
8
  export declare const menuItemCheckboxName = "MenuItemCheckbox";
9
- export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorderTokens, IColorTokens {
9
+ export interface MenuItemCheckboxTokens extends Omit<MenuItemTokens, 'submenuIndicatorPadding' | 'submenuIndicatorSize' | 'disabled' | 'focused' | 'hovered' | 'pressed'> {
10
10
  /**
11
11
  * Color of the checkmark icon
12
12
  */
@@ -15,18 +15,10 @@ export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorde
15
15
  * Amount of space in pixels around the checkmark icon
16
16
  */
17
17
  checkmarkPadding?: number;
18
- /**
19
- * Height and width in pixels of the checkmark icon
20
- */
21
- checkmarkSize?: number;
22
18
  /**
23
19
  * Visibility of the checkmark icon from 0 to 1
24
20
  */
25
21
  checkmarkVisibility?: number;
26
- /**
27
- * Space between parts of the item control in pixels
28
- */
29
- gap?: number;
30
22
  /**
31
23
  * States of the item control
32
24
  */
@@ -36,11 +28,7 @@ export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorde
36
28
  hovered?: MenuItemCheckboxTokens;
37
29
  pressed?: MenuItemCheckboxTokens;
38
30
  }
39
- export interface MenuItemCheckboxProps extends Omit<IWithPressableOptions<ViewProps>, 'onPress'> {
40
- /**
41
- * A RefObject to access the IButton interface. Use this to access the public methods and properties of the component.
42
- */
43
- componentRef?: React.RefObject<IFocusable>;
31
+ export interface MenuItemCheckboxProps extends MenuItemProps {
44
32
  /**
45
33
  * Identifier for the control
46
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.types.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,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,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEtG,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,MAAM,WAAW,sBAAuB,SAAQ,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY;IACnG;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC9F;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;CAAG;AAE3H,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,yBAAyB,CAAC;CACtC"}
1
+ {"version":3,"file":"MenuItemCheckbox.types.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,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,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE3E,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,yBAAyB,GAAG,sBAAsB,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACjI;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;CAAG;AAE3H,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,yBAAyB,CAAC;CACtC"}
@@ -1,3 +1,4 @@
1
- export declare const MenuPopover: import("@fluentui-react-native/framework").ComposableFunction<import("@fluentui-react-native/callout").ICalloutProps>;
1
+ import { MenuPopoverTokens } from './MenuPopover.types';
2
+ export declare const MenuPopover: import("@fluentui-react-native/use-tokens").CustomizableComponent<import("@fluentui-react-native/callout").ICalloutProps, MenuPopoverTokens, import("@fluentui-react-native/framework").Theme>;
2
3
  export default MenuPopover;
3
4
  //# sourceMappingURL=MenuPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,uHAatB,CAAC;AAGH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAqC,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK3F,eAAO,MAAM,WAAW,gMAyBvB,CAAC;AAGF,eAAe,WAAW,CAAC"}
@@ -1,19 +1,33 @@
1
1
  import { __assign } from "tslib";
2
2
  import React from 'react';
3
- import { mergeProps, stagedComponent, useFluentTheme } from '@fluentui-react-native/framework';
3
+ import { compressible, mergeProps, patchTokens, useFluentTheme } from '@fluentui-react-native/framework';
4
4
  import { Callout } from '@fluentui-react-native/callout';
5
5
  import { menuPopoverName } from './MenuPopover.types';
6
6
  import { useMenuPopover } from './useMenuPopover';
7
+ import { useMenuPopoverTokens } from './MenuPopoverTokens';
7
8
  import { View } from 'react-native';
8
- export var MenuPopover = stagedComponent(function (props) {
9
+ export var MenuPopover = compressible(function (props, useTokens) {
10
+ var _a;
11
+ var directionalHint = props.directionalHint, gapSpace = props.gapSpace, maxHeight = props.maxHeight, maxWidth = props.maxWidth, minPadding = props.minPadding, borderWidth = props.borderWidth, borderColor = props.borderColor, backgroundColor = props.backgroundColor;
9
12
  var state = useMenuPopover(props);
10
13
  var theme = useFluentTheme();
14
+ var _b = useTokens(theme), tokens = _b[0], cache = _b[1];
15
+ _a = patchTokens(tokens, cache, {
16
+ directionalHint: directionalHint,
17
+ gapSpace: gapSpace,
18
+ maxHeight: maxHeight,
19
+ maxWidth: maxWidth,
20
+ minPadding: minPadding,
21
+ borderWidth: borderWidth,
22
+ borderColor: borderColor,
23
+ backgroundColor: backgroundColor,
24
+ }), tokens = _a[0], cache = _a[1];
11
25
  return function (final, children) {
12
- var mergedProps = mergeProps(state.props, final);
26
+ var mergedProps = mergeProps(tokens, state.props, final);
13
27
  var content = React.createElement(View, state.innerView, children);
14
- return (React.createElement(Callout, __assign({ borderWidth: 1, borderColor: theme.colors.neutralStrokeAccessible }, mergedProps), content));
28
+ return React.createElement(Callout, __assign({}, mergedProps), content);
15
29
  };
16
- });
30
+ }, useMenuPopoverTokens);
17
31
  MenuPopover.displayName = menuPopoverName;
18
32
  export default MenuPopover;
19
33
  //# sourceMappingURL=MenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,IAAM,WAAW,GAAG,eAAe,CAAC,UAAC,KAAuB;IACjE,IAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAE/B,OAAO,UAAC,KAAuB,EAAE,QAAyB;QACxD,IAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,IAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrE,OAAO,CACL,oBAAC,OAAO,aAAC,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,uBAAuB,IAAM,WAAW,GACxF,OAAO,CACA,CACX,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAa,MAAM,kCAAkC,CAAC;AACpH,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,eAAe,EAAuC,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,IAAM,WAAW,GAAG,YAAY,CACrC,UAAC,KAAuB,EAAE,SAAuC;;IACvD,IAAA,eAAe,GAA2F,KAAK,gBAAhG,EAAE,QAAQ,GAAiF,KAAK,SAAtF,EAAE,SAAS,GAAsE,KAAK,UAA3E,EAAE,QAAQ,GAA4D,KAAK,SAAjE,EAAE,UAAU,GAAgD,KAAK,WAArD,EAAE,WAAW,GAAmC,KAAK,YAAxC,EAAE,WAAW,GAAsB,KAAK,YAA3B,EAAE,eAAe,GAAK,KAAK,gBAAV,CAAW;IACxH,IAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC3B,IAAA,KAAkB,SAAS,CAAC,KAAK,CAAC,EAAjC,MAAM,QAAA,EAAE,KAAK,QAAoB,CAAC;IAEvC,KAAkB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE;QAC3C,eAAe,iBAAA;QACf,QAAQ,UAAA;QACR,SAAS,WAAA;QACT,QAAQ,UAAA;QACR,UAAU,YAAA;QACV,WAAW,aAAA;QACX,WAAW,aAAA;QACX,eAAe,iBAAA;KAChB,CAAC,EATD,MAAM,QAAA,EAAE,KAAK,QAAA,CASX;IAEH,OAAO,UAAC,KAAuB,EAAE,QAAyB;QACxD,IAAM,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrE,OAAO,oBAAC,OAAO,eAAK,WAAW,GAAG,OAAO,CAAW,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC,EACD,oBAAoB,CACrB,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAe,WAAW,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { IViewProps } from '@fluentui-react-native/adapters';
2
- import { ICalloutProps } from '@fluentui-react-native/callout';
2
+ import { ICalloutProps, ICalloutTokens } from '@fluentui-react-native/callout';
3
3
  export declare const menuPopoverName = "MenuPopover";
4
+ export declare type MenuPopoverTokens = Omit<ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'>;
4
5
  export declare type MenuPopoverProps = ICalloutProps;
5
6
  export interface MenuPopoverState {
6
7
  props: ICalloutProps;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,oBAAY,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB"}
1
+ {"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAE/E,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAI7C,oBAAY,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,CAAC,CAAC;AAEtG,oBAAY,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB"}
@@ -0,0 +1,3 @@
1
+ import { MenuPopoverTokens } from './MenuPopover.types';
2
+ export declare const useMenuPopoverTokens: import("@fluentui-react-native/framework").UseTokens<MenuPopoverTokens>;
3
+ //# sourceMappingURL=MenuPopoverTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuPopoverTokens.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,eAAO,MAAM,oBAAoB,yEAGhC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { buildUseTokens } from '@fluentui-react-native/framework';
2
+ import { menuPopoverName } from './MenuPopover.types';
3
+ export var useMenuPopoverTokens = buildUseTokens(function (t) { return ({ borderWidth: 1, borderColor: t.colors.neutralStrokeAccessible }); }, menuPopoverName);
4
+ //# sourceMappingURL=MenuPopoverTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuPopoverTokens.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAS,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAqB,MAAM,qBAAqB,CAAC;AAEzE,MAAM,CAAC,IAAM,oBAAoB,GAAG,cAAc,CAChD,UAAC,CAAQ,IAAK,OAAA,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC,EAAnE,CAAmE,EACjF,eAAe,CAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,eAAO,MAAM,cAAc,QAAO,gBAqEjC,CAAC"}
1
+ {"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,eAAO,MAAM,cAAc,QAAO,gBA8EjC,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { useMenuContext } from '../context/menuContext';
2
2
  import { Platform } from 'react-native';
3
3
  import React from 'react';
4
- import { delayHover, isCloseOnHoverOutEnabled } from '../consts';
4
+ import { hoverDelayDefault, isCloseOnHoverOutEnabled } from '../consts';
5
5
  var accessibilityActions = Platform.OS === 'win32' ? [{ name: 'Expand' }, { name: 'Collapse' }] : [];
6
6
  var expandedState = { expanded: true };
7
7
  var collapsedState = { expanded: false };
8
8
  export var useMenuTrigger = function () {
9
9
  var context = useMenuContext();
10
- var open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
10
+ var _a = context.hoverDelay, hoverDelay = _a === void 0 ? hoverDelayDefault : _a, open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
11
11
  var accessibilityState = open ? expandedState : collapsedState;
12
12
  var onAccessibilityAction = React.useCallback(function (e) {
13
13
  if (Platform.OS === 'win32') {
@@ -28,18 +28,18 @@ export var useMenuTrigger = function () {
28
28
  e.persist();
29
29
  setTimeout(function () {
30
30
  setOpen(e, true /* isOpen */);
31
- }, delayHover);
31
+ }, hoverDelay);
32
32
  }
33
- }, [openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
33
+ }, [hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
34
34
  var onHoverOut = React.useCallback(function (e) {
35
35
  if (openOnHover) {
36
36
  e.persist();
37
37
  var timer = setTimeout(function () {
38
38
  setOpen(e, false /* isOpen */);
39
- }, delayHover);
39
+ }, hoverDelay);
40
40
  setTriggerHoverOutTimer(timer);
41
41
  }
42
- }, [openOnHover, setOpen, setTriggerHoverOutTimer]);
42
+ }, [hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
43
43
  var onClick = React.useCallback(function (e) {
44
44
  setOpen(e, !open);
45
45
  }, [open, setOpen]);
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAqD,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAEjE,IAAM,oBAAoB,GACxB,QAAQ,CAAC,EAAE,KAAM,OAAe,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAmC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAqC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3I,IAAM,aAAa,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzC,IAAM,cAAc,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAE3C,MAAM,CAAC,IAAM,cAAc,GAAG;IAC5B,IAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACzB,IAAA,IAAI,GAA4G,OAAO,KAAnH,EAAE,WAAW,GAA+F,OAAO,YAAtG,EAAE,oBAAoB,GAAyE,OAAO,qBAAhF,EAAE,OAAO,GAAgE,OAAO,QAAvE,EAAE,uBAAuB,GAAuC,OAAO,wBAA9C,EAAE,oBAAoB,GAAiB,OAAO,qBAAxB,EAAE,UAAU,GAAK,OAAO,WAAZ,CAAa;IAEhI,IAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;IAEjE,IAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,UAAC,CAA2B;QAC1B,IAAI,QAAQ,CAAC,EAAE,KAAM,OAAe,EAAE;YACpC,QAAQ,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE;gBAChC,KAAK,QAAQ;oBACX,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9B,MAAM;gBAER,KAAK,UAAU;oBACb,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC/B,MAAM;aACT;SACF;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,UAAC,CAAmB;QAClB,IAAI,WAAW,EAAE;YACf,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACnC,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACnC,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC;gBACT,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC,EAAE,UAAU,CAAC,CAAC;SAChB;IACH,CAAC,EACD,CAAC,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CACnE,CAAC;IAEF,IAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAClC,UAAC,CAAmB;QAClB,IAAI,WAAW,EAAE;YACf,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,IAAM,KAAK,GAAG,UAAU,CAAC;gBACvB,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC,EAAE,UAAU,CAAC,CAAC;YACf,uBAAuB,CAAC,KAAK,CAAC,CAAC;SAChC;IACH,CAAC,EACD,CAAC,WAAW,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAChD,CAAC;IAEF,IAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAC/B,UAAC,CAAmB;QAClB,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EACD,CAAC,IAAI,EAAE,OAAO,CAAC,CAChB,CAAC;IAEF,OAAO;QACL,KAAK,EAAE;YACL,OAAO,SAAA;YACP,SAAS,WAAA;YACT,UAAU,EAAE,wBAAwB,IAAI,UAAU;YAClD,YAAY,EAAE,UAAU;YACxB,kBAAkB,oBAAA;YAClB,oBAAoB,sBAAA;YACpB,qBAAqB,uBAAA;SACtB;QACD,UAAU,EAAE,OAAO,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"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"}
package/lib/consts.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const delayHover: number;
1
+ export declare const hoverDelayDefault: number;
2
2
  export declare const isCloseOnHoverOutEnabled: boolean;
3
3
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,QAGrB,CAAC;AAEH,eAAO,MAAM,wBAAwB,SAAmC,CAAC"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAG5B,CAAC;AAEH,eAAO,MAAM,wBAAwB,SAAmC,CAAC"}
package/lib/consts.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Platform } from 'react-native';
2
- export var delayHover = Platform.select({
2
+ export var hoverDelayDefault = Platform.select({
3
3
  macos: 100,
4
4
  default: 500, // win32
5
5
  });
package/lib/consts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG,EAAE,QAAQ;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,wBAAwB,GAAG,QAAQ,CAAC,EAAE,KAAM,OAAe,CAAC"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,IAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG,EAAE,QAAQ;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAM,wBAAwB,GAAG,QAAQ,CAAC,EAAE,KAAM,OAAe,CAAC"}
@@ -8,6 +8,10 @@ export interface MenuProps extends MenuListProps {
8
8
  * Whether the popup is open on mount
9
9
  */
10
10
  defaultOpen?: boolean;
11
+ /**
12
+ * How much delay to have between hover in and showing the menu, in ms.
13
+ */
14
+ hoverDelay?: number;
11
15
  /**
12
16
  * Whether the popup is open
13
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.types.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAK9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1E,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"Menu.types.d.ts","sourceRoot":"","sources":["../../src/Menu/Menu.types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,eAAO,MAAM,QAAQ,SAAS,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAK9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1E,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;CAC9C"}
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
- import { ColorValue, ViewProps } from 'react-native';
2
+ import { ColorValue } from 'react-native';
3
3
  import { XmlProps } from 'react-native-svg';
4
4
  import type { IViewProps } from '@fluentui-react-native/adapters';
5
5
  import { TextProps } from '@fluentui-react-native/experimental-text';
6
- import { IFocusable, IPressableHooks, IWithPressableOptions } from '@fluentui-react-native/interactive-hooks';
7
- import { FontTokens, IBorderTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
6
+ import { IPressableHooks } from '@fluentui-react-native/interactive-hooks';
7
+ import { MenuItemProps, MenuItemTokens } from '../MenuItem/MenuItem.types';
8
8
  export declare const menuItemCheckboxName = "MenuItemCheckbox";
9
- export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorderTokens, IColorTokens {
9
+ export interface MenuItemCheckboxTokens extends Omit<MenuItemTokens, 'submenuIndicatorPadding' | 'submenuIndicatorSize' | 'disabled' | 'focused' | 'hovered' | 'pressed'> {
10
10
  /**
11
11
  * Color of the checkmark icon
12
12
  */
@@ -15,18 +15,10 @@ export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorde
15
15
  * Amount of space in pixels around the checkmark icon
16
16
  */
17
17
  checkmarkPadding?: number;
18
- /**
19
- * Height and width in pixels of the checkmark icon
20
- */
21
- checkmarkSize?: number;
22
18
  /**
23
19
  * Visibility of the checkmark icon from 0 to 1
24
20
  */
25
21
  checkmarkVisibility?: number;
26
- /**
27
- * Space between parts of the item control in pixels
28
- */
29
- gap?: number;
30
22
  /**
31
23
  * States of the item control
32
24
  */
@@ -36,11 +28,7 @@ export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorde
36
28
  hovered?: MenuItemCheckboxTokens;
37
29
  pressed?: MenuItemCheckboxTokens;
38
30
  }
39
- export interface MenuItemCheckboxProps extends Omit<IWithPressableOptions<ViewProps>, 'onPress'> {
40
- /**
41
- * A RefObject to access the IButton interface. Use this to access the public methods and properties of the component.
42
- */
43
- componentRef?: React.RefObject<IFocusable>;
31
+ export interface MenuItemCheckboxProps extends MenuItemProps {
44
32
  /**
45
33
  * Identifier for the control
46
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.types.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,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,eAAe,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEtG,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,MAAM,WAAW,sBAAuB,SAAQ,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY;IACnG;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC9F;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;CAAG;AAE3H,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,yBAAyB,CAAC;CACtC"}
1
+ {"version":3,"file":"MenuItemCheckbox.types.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,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,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE3E,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,yBAAyB,GAAG,sBAAsB,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACjI;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;CAAG;AAE3H,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,yBAAyB,CAAC;CACtC"}
@@ -1,3 +1,4 @@
1
- export declare const MenuPopover: import("@fluentui-react-native/framework").ComposableFunction<import("@fluentui-react-native/callout").ICalloutProps>;
1
+ import { MenuPopoverTokens } from './MenuPopover.types';
2
+ export declare const MenuPopover: import("@fluentui-react-native/use-tokens").CustomizableComponent<import("@fluentui-react-native/callout").ICalloutProps, MenuPopoverTokens, import("@fluentui-react-native/framework").Theme>;
2
3
  export default MenuPopover;
3
4
  //# sourceMappingURL=MenuPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,uHAatB,CAAC;AAGH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAqC,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK3F,eAAO,MAAM,WAAW,gMAyBvB,CAAC;AAGF,eAAe,WAAW,CAAC"}
@@ -7,16 +7,30 @@ var framework_1 = require("@fluentui-react-native/framework");
7
7
  var callout_1 = require("@fluentui-react-native/callout");
8
8
  var MenuPopover_types_1 = require("./MenuPopover.types");
9
9
  var useMenuPopover_1 = require("./useMenuPopover");
10
+ var MenuPopoverTokens_1 = require("./MenuPopoverTokens");
10
11
  var react_native_1 = require("react-native");
11
- exports.MenuPopover = (0, framework_1.stagedComponent)(function (props) {
12
+ exports.MenuPopover = (0, framework_1.compressible)(function (props, useTokens) {
13
+ var _a;
14
+ var directionalHint = props.directionalHint, gapSpace = props.gapSpace, maxHeight = props.maxHeight, maxWidth = props.maxWidth, minPadding = props.minPadding, borderWidth = props.borderWidth, borderColor = props.borderColor, backgroundColor = props.backgroundColor;
12
15
  var state = (0, useMenuPopover_1.useMenuPopover)(props);
13
16
  var theme = (0, framework_1.useFluentTheme)();
17
+ var _b = useTokens(theme), tokens = _b[0], cache = _b[1];
18
+ _a = (0, framework_1.patchTokens)(tokens, cache, {
19
+ directionalHint: directionalHint,
20
+ gapSpace: gapSpace,
21
+ maxHeight: maxHeight,
22
+ maxWidth: maxWidth,
23
+ minPadding: minPadding,
24
+ borderWidth: borderWidth,
25
+ borderColor: borderColor,
26
+ backgroundColor: backgroundColor,
27
+ }), tokens = _a[0], cache = _a[1];
14
28
  return function (final, children) {
15
- var mergedProps = (0, framework_1.mergeProps)(state.props, final);
29
+ var mergedProps = (0, framework_1.mergeProps)(tokens, state.props, final);
16
30
  var content = react_1.default.createElement(react_native_1.View, state.innerView, children);
17
- return (react_1.default.createElement(callout_1.Callout, (0, tslib_1.__assign)({ borderWidth: 1, borderColor: theme.colors.neutralStrokeAccessible }, mergedProps), content));
31
+ return react_1.default.createElement(callout_1.Callout, (0, tslib_1.__assign)({}, mergedProps), content);
18
32
  };
19
- });
33
+ }, MenuPopoverTokens_1.useMenuPopoverTokens);
20
34
  exports.MenuPopover.displayName = MenuPopover_types_1.menuPopoverName;
21
35
  exports.default = exports.MenuPopover;
22
36
  //# sourceMappingURL=MenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.tsx"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAC1B,8DAA+F;AAC/F,0DAAyD;AACzD,yDAAwE;AACxE,mDAAkD;AAClD,6CAAoC;AAEvB,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,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,IAAM,OAAO,GAAG,eAAK,CAAC,aAAa,CAAC,mBAAI,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrE,OAAO,CACL,8BAAC,iBAAO,0BAAC,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,uBAAuB,IAAM,WAAW,GACxF,OAAO,CACA,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,8DAAoH;AACpH,0DAAyD;AACzD,yDAA2F;AAC3F,mDAAkD;AAClD,yDAA2D;AAC3D,6CAAoC;AAEvB,QAAA,WAAW,GAAG,IAAA,wBAAY,EACrC,UAAC,KAAuB,EAAE,SAAuC;;IACvD,IAAA,eAAe,GAA2F,KAAK,gBAAhG,EAAE,QAAQ,GAAiF,KAAK,SAAtF,EAAE,SAAS,GAAsE,KAAK,UAA3E,EAAE,QAAQ,GAA4D,KAAK,SAAjE,EAAE,UAAU,GAAgD,KAAK,WAArD,EAAE,WAAW,GAAmC,KAAK,YAAxC,EAAE,WAAW,GAAsB,KAAK,YAA3B,EAAE,eAAe,GAAK,KAAK,gBAAV,CAAW;IACxH,IAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,IAAA,0BAAc,GAAE,CAAC;IAC3B,IAAA,KAAkB,SAAS,CAAC,KAAK,CAAC,EAAjC,MAAM,QAAA,EAAE,KAAK,QAAoB,CAAC;IAEvC,KAAkB,IAAA,uBAAW,EAAC,MAAM,EAAE,KAAK,EAAE;QAC3C,eAAe,iBAAA;QACf,QAAQ,UAAA;QACR,SAAS,WAAA;QACT,QAAQ,UAAA;QACR,UAAU,YAAA;QACV,WAAW,aAAA;QACX,WAAW,aAAA;QACX,eAAe,iBAAA;KAChB,CAAC,EATD,MAAM,QAAA,EAAE,KAAK,QAAA,CASX;IAEH,OAAO,UAAC,KAAuB,EAAE,QAAyB;QACxD,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAM,OAAO,GAAG,eAAK,CAAC,aAAa,CAAC,mBAAI,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrE,OAAO,8BAAC,iBAAO,4BAAK,WAAW,GAAG,OAAO,CAAW,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC,EACD,wCAAoB,CACrB,CAAC;AACF,mBAAW,CAAC,WAAW,GAAG,mCAAe,CAAC;AAE1C,kBAAe,mBAAW,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { IViewProps } from '@fluentui-react-native/adapters';
2
- import { ICalloutProps } from '@fluentui-react-native/callout';
2
+ import { ICalloutProps, ICalloutTokens } from '@fluentui-react-native/callout';
3
3
  export declare const menuPopoverName = "MenuPopover";
4
+ export declare type MenuPopoverTokens = Omit<ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'>;
4
5
  export declare type MenuPopoverProps = ICalloutProps;
5
6
  export interface MenuPopoverState {
6
7
  props: ICalloutProps;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,oBAAY,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB"}
1
+ {"version":3,"file":"MenuPopover.types.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopover.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAE/E,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAI7C,oBAAY,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,CAAC,CAAC;AAEtG,oBAAY,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;CACvB"}
@@ -0,0 +1,3 @@
1
+ import { MenuPopoverTokens } from './MenuPopover.types';
2
+ export declare const useMenuPopoverTokens: import("@fluentui-react-native/framework").UseTokens<MenuPopoverTokens>;
3
+ //# sourceMappingURL=MenuPopoverTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuPopoverTokens.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,eAAO,MAAM,oBAAoB,yEAGhC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMenuPopoverTokens = void 0;
4
+ var framework_1 = require("@fluentui-react-native/framework");
5
+ var MenuPopover_types_1 = require("./MenuPopover.types");
6
+ exports.useMenuPopoverTokens = (0, framework_1.buildUseTokens)(function (t) { return ({ borderWidth: 1, borderColor: t.colors.neutralStrokeAccessible }); }, MenuPopover_types_1.menuPopoverName);
7
+ //# sourceMappingURL=MenuPopoverTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuPopoverTokens.js","sourceRoot":"","sources":["../../src/MenuPopover/MenuPopoverTokens.ts"],"names":[],"mappings":";;;AAAA,8DAAyE;AACzE,yDAAyE;AAE5D,QAAA,oBAAoB,GAAG,IAAA,0BAAc,EAChD,UAAC,CAAQ,IAAK,OAAA,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC,EAAnE,CAAmE,EACjF,mCAAe,CAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,eAAO,MAAM,cAAc,QAAO,gBAqEjC,CAAC"}
1
+ {"version":3,"file":"useMenuTrigger.d.ts","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,eAAO,MAAM,cAAc,QAAO,gBA8EjC,CAAC"}
@@ -11,7 +11,7 @@ var expandedState = { expanded: true };
11
11
  var collapsedState = { expanded: false };
12
12
  var useMenuTrigger = function () {
13
13
  var context = (0, menuContext_1.useMenuContext)();
14
- var open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
14
+ var _a = context.hoverDelay, hoverDelay = _a === void 0 ? consts_1.hoverDelayDefault : _a, open = context.open, openOnHover = context.openOnHover, popoverHoverOutTimer = context.popoverHoverOutTimer, setOpen = context.setOpen, setTriggerHoverOutTimer = context.setTriggerHoverOutTimer, triggerHoverOutTimer = context.triggerHoverOutTimer, triggerRef = context.triggerRef;
15
15
  var accessibilityState = open ? expandedState : collapsedState;
16
16
  var onAccessibilityAction = react_1.default.useCallback(function (e) {
17
17
  if (react_native_1.Platform.OS === 'win32') {
@@ -32,18 +32,18 @@ var useMenuTrigger = function () {
32
32
  e.persist();
33
33
  setTimeout(function () {
34
34
  setOpen(e, true /* isOpen */);
35
- }, consts_1.delayHover);
35
+ }, hoverDelay);
36
36
  }
37
- }, [openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
37
+ }, [hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer]);
38
38
  var onHoverOut = react_1.default.useCallback(function (e) {
39
39
  if (openOnHover) {
40
40
  e.persist();
41
41
  var timer = setTimeout(function () {
42
42
  setOpen(e, false /* isOpen */);
43
- }, consts_1.delayHover);
43
+ }, hoverDelay);
44
44
  setTriggerHoverOutTimer(timer);
45
45
  }
46
- }, [openOnHover, setOpen, setTriggerHoverOutTimer]);
46
+ }, [hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer]);
47
47
  var onClick = react_1.default.useCallback(function (e) {
48
48
  setOpen(e, !open);
49
49
  }, [open, setOpen]);
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export declare const delayHover: number;
1
+ export declare const hoverDelayDefault: number;
2
2
  export declare const isCloseOnHoverOutEnabled: boolean;
3
3
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,QAGrB,CAAC;AAEH,eAAO,MAAM,wBAAwB,SAAmC,CAAC"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAG5B,CAAC;AAEH,eAAO,MAAM,wBAAwB,SAAmC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCloseOnHoverOutEnabled = exports.delayHover = void 0;
3
+ exports.isCloseOnHoverOutEnabled = exports.hoverDelayDefault = void 0;
4
4
  var react_native_1 = require("react-native");
5
- exports.delayHover = react_native_1.Platform.select({
5
+ exports.hoverDelayDefault = react_native_1.Platform.select({
6
6
  macos: 100,
7
7
  default: 500, // win32
8
8
  });
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAE3B,QAAA,UAAU,GAAG,uBAAQ,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG,EAAE,QAAQ;CACvB,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,uBAAQ,CAAC,EAAE,KAAM,OAAe,CAAC"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAE3B,QAAA,iBAAiB,GAAG,uBAAQ,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG,EAAE,QAAQ;CACvB,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,uBAAQ,CAAC,EAAE,KAAM,OAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui-react-native/menu",
3
- "version": "0.15.1",
3
+ "version": "0.15.4",
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",
@@ -10,6 +10,11 @@ export interface MenuProps extends MenuListProps {
10
10
  */
11
11
  defaultOpen?: boolean;
12
12
 
13
+ /**
14
+ * How much delay to have between hover in and showing the menu, in ms.
15
+ */
16
+ hoverDelay?: number;
17
+
13
18
  /**
14
19
  * Whether the popup is open
15
20
  */
@@ -1,14 +1,15 @@
1
1
  import * as React from 'react';
2
- import { ColorValue, ViewProps } from 'react-native';
2
+ import { ColorValue } from 'react-native';
3
3
  import { XmlProps } from 'react-native-svg';
4
4
  import type { IViewProps } from '@fluentui-react-native/adapters';
5
5
  import { TextProps } from '@fluentui-react-native/experimental-text';
6
- import { IFocusable, IPressableHooks, IWithPressableOptions } from '@fluentui-react-native/interactive-hooks';
7
- import { FontTokens, IBorderTokens, IColorTokens, LayoutTokens } from '@fluentui-react-native/tokens';
6
+ import { IPressableHooks } from '@fluentui-react-native/interactive-hooks';
7
+ import { MenuItemProps, MenuItemTokens } from '../MenuItem/MenuItem.types';
8
8
 
9
9
  export const menuItemCheckboxName = 'MenuItemCheckbox';
10
10
 
11
- export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorderTokens, IColorTokens {
11
+ export interface MenuItemCheckboxTokens
12
+ extends Omit<MenuItemTokens, 'submenuIndicatorPadding' | 'submenuIndicatorSize' | 'disabled' | 'focused' | 'hovered' | 'pressed'> {
12
13
  /**
13
14
  * Color of the checkmark icon
14
15
  */
@@ -19,21 +20,11 @@ export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorde
19
20
  */
20
21
  checkmarkPadding?: number;
21
22
 
22
- /**
23
- * Height and width in pixels of the checkmark icon
24
- */
25
- checkmarkSize?: number;
26
-
27
23
  /**
28
24
  * Visibility of the checkmark icon from 0 to 1
29
25
  */
30
26
  checkmarkVisibility?: number;
31
27
 
32
- /**
33
- * Space between parts of the item control in pixels
34
- */
35
- gap?: number;
36
-
37
28
  /**
38
29
  * States of the item control
39
30
  */
@@ -44,12 +35,7 @@ export interface MenuItemCheckboxTokens extends LayoutTokens, FontTokens, IBorde
44
35
  pressed?: MenuItemCheckboxTokens;
45
36
  }
46
37
 
47
- export interface MenuItemCheckboxProps extends Omit<IWithPressableOptions<ViewProps>, 'onPress'> {
48
- /**
49
- * A RefObject to access the IButton interface. Use this to access the public methods and properties of the component.
50
- */
51
- componentRef?: React.RefObject<IFocusable>;
52
-
38
+ export interface MenuItemCheckboxProps extends MenuItemProps {
53
39
  /**
54
40
  * Identifier for the control
55
41
  */
@@ -1,24 +1,37 @@
1
1
  import React from 'react';
2
- import { mergeProps, stagedComponent, useFluentTheme } from '@fluentui-react-native/framework';
2
+ import { compressible, mergeProps, patchTokens, useFluentTheme, UseTokens } from '@fluentui-react-native/framework';
3
3
  import { Callout } from '@fluentui-react-native/callout';
4
- import { menuPopoverName, MenuPopoverProps } from './MenuPopover.types';
4
+ import { menuPopoverName, MenuPopoverProps, MenuPopoverTokens } from './MenuPopover.types';
5
5
  import { useMenuPopover } from './useMenuPopover';
6
+ import { useMenuPopoverTokens } from './MenuPopoverTokens';
6
7
  import { View } from 'react-native';
7
8
 
8
- export const MenuPopover = stagedComponent((props: MenuPopoverProps) => {
9
- const state = useMenuPopover(props);
10
- const theme = useFluentTheme();
9
+ export const MenuPopover = compressible<MenuPopoverProps, MenuPopoverTokens>(
10
+ (props: MenuPopoverProps, useTokens: UseTokens<MenuPopoverTokens>) => {
11
+ const { directionalHint, gapSpace, maxHeight, maxWidth, minPadding, borderWidth, borderColor, backgroundColor } = props;
12
+ const state = useMenuPopover(props);
13
+ const theme = useFluentTheme();
14
+ let [tokens, cache] = useTokens(theme);
11
15
 
12
- return (final: MenuPopoverProps, children: React.ReactNode) => {
13
- const mergedProps = mergeProps(state.props, final);
14
- const content = React.createElement(View, state.innerView, children);
15
- return (
16
- <Callout borderWidth={1} borderColor={theme.colors.neutralStrokeAccessible} {...mergedProps}>
17
- {content}
18
- </Callout>
19
- );
20
- };
21
- });
16
+ [tokens, cache] = patchTokens(tokens, cache, {
17
+ directionalHint,
18
+ gapSpace,
19
+ maxHeight,
20
+ maxWidth,
21
+ minPadding,
22
+ borderWidth,
23
+ borderColor,
24
+ backgroundColor,
25
+ });
26
+
27
+ return (final: MenuPopoverProps, children: React.ReactNode) => {
28
+ const mergedProps = mergeProps(tokens, state.props, final);
29
+ const content = React.createElement(View, state.innerView, children);
30
+ return <Callout {...mergedProps}>{content}</Callout>;
31
+ };
32
+ },
33
+ useMenuPopoverTokens,
34
+ );
22
35
  MenuPopover.displayName = menuPopoverName;
23
36
 
24
37
  export default MenuPopover;
@@ -1,8 +1,12 @@
1
1
  import { IViewProps } from '@fluentui-react-native/adapters';
2
- import { ICalloutProps } from '@fluentui-react-native/callout';
2
+ import { ICalloutProps, ICalloutTokens } from '@fluentui-react-native/callout';
3
3
 
4
4
  export const menuPopoverName = 'MenuPopover';
5
5
 
6
+ // Support for anchorRect and beakWidth will come at a later time.
7
+ // Omitting dismissBehaviors as it doesn't seem to make sense as a token
8
+ export type MenuPopoverTokens = Omit<ICalloutTokens, 'anchorRect' | 'beakWidth' | 'dismissBehaviors'>;
9
+
6
10
  export type MenuPopoverProps = ICalloutProps;
7
11
 
8
12
  export interface MenuPopoverState {
@@ -0,0 +1,7 @@
1
+ import { buildUseTokens, Theme } from '@fluentui-react-native/framework';
2
+ import { menuPopoverName, MenuPopoverTokens } from './MenuPopover.types';
3
+
4
+ export const useMenuPopoverTokens = buildUseTokens<MenuPopoverTokens>(
5
+ (t: Theme) => ({ borderWidth: 1, borderColor: t.colors.neutralStrokeAccessible }),
6
+ menuPopoverName,
7
+ );
@@ -3,7 +3,7 @@ import { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
3
3
  import { MenuTriggerState } from './MenuTrigger.types';
4
4
  import { AccessibilityActionEvent, AccessibilityActionName, Platform } from 'react-native';
5
5
  import React from 'react';
6
- import { delayHover, isCloseOnHoverOutEnabled } from '../consts';
6
+ import { hoverDelayDefault, isCloseOnHoverOutEnabled } from '../consts';
7
7
 
8
8
  const accessibilityActions =
9
9
  Platform.OS === ('win32' as any) ? [{ name: 'Expand' as AccessibilityActionName }, { name: 'Collapse' as AccessibilityActionName }] : [];
@@ -12,7 +12,16 @@ const collapsedState = { expanded: false };
12
12
 
13
13
  export const useMenuTrigger = (): MenuTriggerState => {
14
14
  const context = useMenuContext();
15
- const { open, openOnHover, popoverHoverOutTimer, setOpen, setTriggerHoverOutTimer, triggerHoverOutTimer, triggerRef } = context;
15
+ const {
16
+ hoverDelay = hoverDelayDefault,
17
+ open,
18
+ openOnHover,
19
+ popoverHoverOutTimer,
20
+ setOpen,
21
+ setTriggerHoverOutTimer,
22
+ triggerHoverOutTimer,
23
+ triggerRef,
24
+ } = context;
16
25
 
17
26
  const accessibilityState = open ? expandedState : collapsedState;
18
27
 
@@ -41,10 +50,10 @@ export const useMenuTrigger = (): MenuTriggerState => {
41
50
  e.persist();
42
51
  setTimeout(() => {
43
52
  setOpen(e, true /* isOpen */);
44
- }, delayHover);
53
+ }, hoverDelay);
45
54
  }
46
55
  },
47
- [openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer],
56
+ [hoverDelay, openOnHover, setOpen, triggerHoverOutTimer, popoverHoverOutTimer],
48
57
  );
49
58
 
50
59
  const onHoverOut = React.useCallback(
@@ -53,11 +62,11 @@ export const useMenuTrigger = (): MenuTriggerState => {
53
62
  e.persist();
54
63
  const timer = setTimeout(() => {
55
64
  setOpen(e, false /* isOpen */);
56
- }, delayHover);
65
+ }, hoverDelay);
57
66
  setTriggerHoverOutTimer(timer);
58
67
  }
59
68
  },
60
- [openOnHover, setOpen, setTriggerHoverOutTimer],
69
+ [hoverDelay, openOnHover, setOpen, setTriggerHoverOutTimer],
61
70
  );
62
71
 
63
72
  const onClick = React.useCallback(
package/src/consts.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Platform } from 'react-native';
2
2
 
3
- export const delayHover = Platform.select({
3
+ export const hoverDelayDefault = Platform.select({
4
4
  macos: 100,
5
5
  default: 500, // win32
6
6
  });