@fluentui-react-native/menu 0.9.3 → 0.10.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 (88) hide show
  1. package/CHANGELOG.json +72 -1
  2. package/CHANGELOG.md +22 -2
  3. package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts +4 -2
  4. package/lib/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -1
  5. package/lib/MenuItemCheckbox/MenuItemCheckbox.js +11 -8
  6. package/lib/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  7. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts +10 -0
  8. package/lib/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
  9. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js +28 -14
  10. package/lib/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  11. package/lib/MenuItemRadio/MenuItemRadio.d.ts +4 -0
  12. package/lib/MenuItemRadio/MenuItemRadio.d.ts.map +1 -0
  13. package/lib/MenuItemRadio/MenuItemRadio.js +12 -0
  14. package/lib/MenuItemRadio/MenuItemRadio.js.map +1 -0
  15. package/lib/MenuItemRadio/useMenuItemRadio.d.ts +3 -0
  16. package/lib/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -0
  17. package/lib/MenuItemRadio/useMenuItemRadio.js +15 -0
  18. package/lib/MenuItemRadio/useMenuItemRadio.js.map +1 -0
  19. package/lib/MenuList/MenuList.types.d.ts +1 -0
  20. package/lib/MenuList/MenuList.types.d.ts.map +1 -1
  21. package/lib/MenuList/useMenuList.d.ts.map +1 -1
  22. package/lib/MenuList/useMenuList.js +13 -3
  23. package/lib/MenuList/useMenuList.js.map +1 -1
  24. package/lib/MenuPopover/MenuPopover.d.ts.map +1 -1
  25. package/lib/MenuPopover/MenuPopover.js +1 -1
  26. package/lib/MenuPopover/MenuPopover.js.map +1 -1
  27. package/lib/MenuPopover/MenuPopover.types.d.ts +2 -0
  28. package/lib/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  29. package/lib/MenuPopover/useMenuPopover.d.ts.map +1 -1
  30. package/lib/MenuPopover/useMenuPopover.js +6 -1
  31. package/lib/MenuPopover/useMenuPopover.js.map +1 -1
  32. package/lib/MenuTrigger/useMenuTrigger.d.ts +3 -0
  33. package/lib/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  34. package/lib/MenuTrigger/useMenuTrigger.js +11 -1
  35. package/lib/MenuTrigger/useMenuTrigger.js.map +1 -1
  36. package/lib/index.d.ts +1 -0
  37. package/lib/index.d.ts.map +1 -1
  38. package/lib/index.js +1 -0
  39. package/lib/index.js.map +1 -1
  40. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.d.ts +4 -2
  41. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.d.ts.map +1 -1
  42. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js +12 -8
  43. package/lib-commonjs/MenuItemCheckbox/MenuItemCheckbox.js.map +1 -1
  44. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts +10 -0
  45. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.d.ts.map +1 -1
  46. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js +31 -16
  47. package/lib-commonjs/MenuItemCheckbox/useMenuItemCheckbox.js.map +1 -1
  48. package/lib-commonjs/MenuItemRadio/MenuItemRadio.d.ts +4 -0
  49. package/lib-commonjs/MenuItemRadio/MenuItemRadio.d.ts.map +1 -0
  50. package/lib-commonjs/MenuItemRadio/MenuItemRadio.js +15 -0
  51. package/lib-commonjs/MenuItemRadio/MenuItemRadio.js.map +1 -0
  52. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.d.ts +3 -0
  53. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.d.ts.map +1 -0
  54. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js +20 -0
  55. package/lib-commonjs/MenuItemRadio/useMenuItemRadio.js.map +1 -0
  56. package/lib-commonjs/MenuList/MenuList.types.d.ts +1 -0
  57. package/lib-commonjs/MenuList/MenuList.types.d.ts.map +1 -1
  58. package/lib-commonjs/MenuList/useMenuList.d.ts.map +1 -1
  59. package/lib-commonjs/MenuList/useMenuList.js +13 -3
  60. package/lib-commonjs/MenuList/useMenuList.js.map +1 -1
  61. package/lib-commonjs/MenuPopover/MenuPopover.d.ts.map +1 -1
  62. package/lib-commonjs/MenuPopover/MenuPopover.js +1 -1
  63. package/lib-commonjs/MenuPopover/MenuPopover.js.map +1 -1
  64. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts +2 -0
  65. package/lib-commonjs/MenuPopover/MenuPopover.types.d.ts.map +1 -1
  66. package/lib-commonjs/MenuPopover/useMenuPopover.d.ts.map +1 -1
  67. package/lib-commonjs/MenuPopover/useMenuPopover.js +6 -1
  68. package/lib-commonjs/MenuPopover/useMenuPopover.js.map +1 -1
  69. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts +3 -0
  70. package/lib-commonjs/MenuTrigger/useMenuTrigger.d.ts.map +1 -1
  71. package/lib-commonjs/MenuTrigger/useMenuTrigger.js +11 -1
  72. package/lib-commonjs/MenuTrigger/useMenuTrigger.js.map +1 -1
  73. package/lib-commonjs/index.d.ts +1 -0
  74. package/lib-commonjs/index.d.ts.map +1 -1
  75. package/lib-commonjs/index.js +3 -1
  76. package/lib-commonjs/index.js.map +1 -1
  77. package/package.json +7 -7
  78. package/src/MenuItemCheckbox/MenuItemCheckbox.tsx +29 -16
  79. package/src/MenuItemCheckbox/useMenuItemCheckbox.ts +39 -20
  80. package/src/MenuItemRadio/MenuItemRadio.tsx +16 -0
  81. package/src/MenuItemRadio/useMenuItemRadio.ts +21 -0
  82. package/src/MenuList/MenuList.types.ts +1 -0
  83. package/src/MenuList/useMenuList.ts +22 -3
  84. package/src/MenuPopover/MenuPopover.tsx +2 -0
  85. package/src/MenuPopover/MenuPopover.types.ts +2 -0
  86. package/src/MenuPopover/useMenuPopover.ts +7 -1
  87. package/src/MenuTrigger/useMenuTrigger.ts +13 -1
  88. package/src/index.ts +1 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MenuItemCheckbox = void 0;
3
+ exports.menuItemFinalRender = exports.MenuItemCheckbox = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  /** @jsx withSlots */
6
6
  var react_native_1 = require("react-native");
@@ -17,12 +17,16 @@ exports.MenuItemCheckbox = (0, framework_1.compose)((0, tslib_1.__assign)((0, ts
17
17
  }, useRender: function (userProps, useSlots) {
18
18
  var menuItem = (0, useMenuItemCheckbox_1.useMenuItemCheckbox)(userProps);
19
19
  var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
20
- return function (final) {
21
- var mergedProps = (0, framework_1.mergeProps)(menuItem.props, final);
22
- var chevronXml = "\n <svg>\n <path fill='currentColor' d='M9.85355 3.14645C10.0488 3.34171 10.0488 3.65829 9.85355 3.85355L5.35355 8.35355C5.15829 8.54882 4.84171 8.54882 4.64645 8.35355L2.64645 6.35355C2.45118 6.15829 2.45118 5.84171 2.64645 5.64645C2.84171 5.45118 3.15829 5.45118 3.35355 5.64645L5 7.29289L9.14645 3.14645C9.34171 2.95118 9.65829 2.95118 9.85355 3.14645Z' />\n </svg>";
23
- return ((0, framework_1.withSlots)(Slots.root, (0, tslib_1.__assign)({}, mergedProps),
24
- (0, framework_1.withSlots)(Slots.checkmark, { xml: chevronXml }),
25
- mergedProps.content && (0, framework_1.withSlots)(Slots.content, null, mergedProps.content)));
26
- };
20
+ return (0, exports.menuItemFinalRender)(menuItem, Slots);
27
21
  } }));
22
+ var menuItemFinalRender = function (menuItem, Slots) {
23
+ return function (final) {
24
+ var mergedProps = (0, framework_1.mergeProps)(menuItem.props, final);
25
+ var checkmarkXml = "\n <svg>\n <path fill='currentColor' d='M9.85355 3.14645C10.0488 3.34171 10.0488 3.65829 9.85355 3.85355L5.35355 8.35355C5.15829 8.54882 4.84171 8.54882 4.64645 8.35355L2.64645 6.35355C2.45118 6.15829 2.45118 5.84171 2.64645 5.64645C2.84171 5.45118 3.15829 5.45118 3.35355 5.64645L5 7.29289L9.14645 3.14645C9.34171 2.95118 9.65829 2.95118 9.85355 3.14645Z' />\n </svg>";
26
+ return ((0, framework_1.withSlots)(Slots.root, (0, tslib_1.__assign)({}, mergedProps),
27
+ (0, framework_1.withSlots)(Slots.checkmark, { xml: checkmarkXml }),
28
+ mergedProps.content && (0, framework_1.withSlots)(Slots.content, null, mergedProps.content)));
29
+ };
30
+ };
31
+ exports.menuItemFinalRender = menuItemFinalRender;
28
32
  //# sourceMappingURL=MenuItemCheckbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAoC;AACpC,qDAA0C;AAC1C,8DAA4F;AAC5F,8EAAgE;AAChE,mEAA6G;AAC7G,6DAA4D;AAC5D,uEAA6D;AAEhD,QAAA,gBAAgB,GAAG,IAAA,mBAAO,gDACrC,WAAW,EAAE,6CAAoB,IAC9B,0CAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,yBAAM;QACjB,OAAO,EAAE,wBAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,IAAA,yCAAmB,EAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,UAAC,KAA4B;YAClC,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtD,IAAM,UAAU,GAAG,mYAGZ,CAAC;YAER,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;gBACzB,2BAAC,KAAK,CAAC,SAAS,IAAC,GAAG,EAAE,UAAU,GAAI;gBACnC,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CACjE,CACd,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,IACD,CAAC"}
1
+ {"version":3,"file":"MenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/MenuItemCheckbox.tsx"],"names":[],"mappings":";;;;AAAA,qBAAqB;AACrB,6CAAoC;AACpC,qDAA0C;AAC1C,8DAAmG;AACnG,8EAAgE;AAChE,mEAMkC;AAClC,6DAA4D;AAC5D,uEAA6D;AAEhD,QAAA,gBAAgB,GAAG,IAAA,mBAAO,gDACrC,WAAW,EAAE,6CAAoB,IAC9B,0CAAe,KAClB,KAAK,EAAE;QACL,IAAI,EAAE,mBAAI;QACV,SAAS,EAAE,yBAAM;QACjB,OAAO,EAAE,wBAAI;KACd,EACD,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,IAAA,yCAAmB,EAAC,SAAS,CAAC,CAAC;QAChD,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,IAAA,2BAAmB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,IACD,CAAC;AAEI,IAAM,mBAAmB,GAAG,UACjC,QAA+B,EAC/B,KAAuC;IAEvC,OAAO,UAAC,KAA4B;QAClC,IAAM,WAAW,GAAG,IAAA,sBAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,IAAM,YAAY,GAAG,6XAGd,CAAC;QAER,OAAO,CACL,2BAAC,KAAK,CAAC,IAAI,4BAAK,WAAW;YACzB,2BAAC,KAAK,CAAC,SAAS,IAAC,GAAG,EAAE,YAAY,GAAI;YACrC,WAAW,CAAC,OAAO,IAAI,2BAAC,KAAK,CAAC,OAAO,QAAE,WAAW,CAAC,OAAO,CAAiB,CACjE,CACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
@@ -1,3 +1,13 @@
1
1
  import { MenuItemCheckboxProps, MenuItemCheckboxState } from './MenuItemCheckbox.types';
2
+ import { InteractionEvent } from '@fluentui-react-native/interactive-hooks';
2
3
  export declare const useMenuItemCheckbox: (props: MenuItemCheckboxProps) => MenuItemCheckboxState;
4
+ /**
5
+ * Create interactivity and accessibility props to be passed into the inner render.
6
+ * This logic is shared between Checkbox and Radio versions of MenuItem.
7
+ *
8
+ * @param props Props passed into the outer compoennt
9
+ * @param toggleCallback Function to be called when item is toggled
10
+ * @returns Props and additional state needed to render the component
11
+ */
12
+ export declare const useMenuCheckboxInteraction: (props: MenuItemCheckboxProps, toggleCallback: (e: InteractionEvent) => void) => MenuItemCheckboxState;
3
13
  //# sourceMappingURL=useMenuItemCheckbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAaxF,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAgElE,CAAC"}
1
+ {"version":3,"file":"useMenuItemCheckbox.d.ts","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EACL,gBAAgB,EAKjB,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,mBAAmB,UAAW,qBAAqB,KAAG,qBAclE,CAAC;AAUF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,UAC9B,qBAAqB,sBACR,gBAAgB,KAAK,IAAI,KAC5C,qBAwDF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useMenuItemCheckbox = void 0;
3
+ exports.useMenuCheckboxInteraction = exports.useMenuItemCheckbox = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var React = (0, tslib_1.__importStar)(require("react"));
6
6
  var framework_1 = require("@fluentui-react-native/framework");
@@ -9,40 +9,55 @@ var menuListContext_1 = require("../context/menuListContext");
9
9
  var defaultAccessibilityActions = [{ name: 'Toggle' }];
10
10
  var useMenuItemCheckbox = function (props) {
11
11
  var _a;
12
- // attach the pressable state handlers
13
- var defaultComponentRef = React.useRef(null);
14
- var accessibilityActions = props.accessibilityActions, accessibilityState = props.accessibilityState, _b = props.componentRef, componentRef = _b === void 0 ? defaultComponentRef : _b, disabled = props.disabled, name = props.name, onAccessibilityAction = props.onAccessibilityAction, rest = (0, tslib_1.__rest)(props, ["accessibilityActions", "accessibilityState", "componentRef", "disabled", "name", "onAccessibilityAction"]);
12
+ var name = props.name;
15
13
  var context = (0, menuListContext_1.useMenuListContext)();
16
14
  var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
17
15
  var onCheckedChange = context.onCheckedChange;
18
16
  var toggleChecked = React.useCallback(function (e) {
19
17
  onCheckedChange(e, name, !checked);
20
18
  }, [checked, name, onCheckedChange]);
19
+ return (0, exports.useMenuCheckboxInteraction)(props, toggleChecked);
20
+ };
21
+ exports.useMenuItemCheckbox = useMenuItemCheckbox;
22
+ var getAccessibilityState = (0, framework_1.memoize)(getAccessibilityStateWorker);
23
+ function getAccessibilityStateWorker(disabled, checked, accessibilityState) {
24
+ if (accessibilityState) {
25
+ return (0, tslib_1.__assign)({ disabled: disabled, checked: checked }, accessibilityState);
26
+ }
27
+ return { disabled: disabled, checked: checked };
28
+ }
29
+ /**
30
+ * Create interactivity and accessibility props to be passed into the inner render.
31
+ * This logic is shared between Checkbox and Radio versions of MenuItem.
32
+ *
33
+ * @param props Props passed into the outer compoennt
34
+ * @param toggleCallback Function to be called when item is toggled
35
+ * @returns Props and additional state needed to render the component
36
+ */
37
+ var useMenuCheckboxInteraction = function (props, toggleCallback) {
38
+ var _a;
39
+ var defaultComponentRef = React.useRef(null);
40
+ var accessibilityActions = props.accessibilityActions, accessibilityState = props.accessibilityState, _b = props.componentRef, componentRef = _b === void 0 ? defaultComponentRef : _b, disabled = props.disabled, name = props.name, onAccessibilityAction = props.onAccessibilityAction, rest = (0, tslib_1.__rest)(props, ["accessibilityActions", "accessibilityState", "componentRef", "disabled", "name", "onAccessibilityAction"]);
41
+ var context = (0, menuListContext_1.useMenuListContext)();
42
+ var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
21
43
  // Ensure focus is placed on checkbox after click
22
- var toggleCheckedWithFocus = (0, interactive_hooks_1.useOnPressWithFocus)(componentRef, toggleChecked);
44
+ var toggleCheckedWithFocus = (0, interactive_hooks_1.useOnPressWithFocus)(componentRef, toggleCallback);
23
45
  var pressable = (0, interactive_hooks_1.useAsPressable)((0, tslib_1.__assign)({ onPress: toggleCheckedWithFocus }, rest));
24
46
  var buttonRef = (0, interactive_hooks_1.useViewCommandFocus)(componentRef);
25
- var onKeyProps = (0, interactive_hooks_1.useKeyProps)(toggleChecked, ' ');
47
+ var onKeyProps = (0, interactive_hooks_1.useKeyProps)(toggleCallback, ' ');
26
48
  var accessibilityActionsProp = accessibilityActions
27
49
  ? (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], defaultAccessibilityActions, true), accessibilityActions, true) : defaultAccessibilityActions;
28
50
  var onAccessibilityActionProp = React.useCallback(function (event) {
29
51
  if (event.nativeEvent.actionName === 'Toggle') {
30
- toggleChecked(event);
52
+ toggleCallback(event);
31
53
  }
32
54
  onAccessibilityAction && onAccessibilityAction(event);
33
- }, [toggleChecked, onAccessibilityAction]);
55
+ }, [toggleCallback, onAccessibilityAction]);
34
56
  var state = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.state), { disabled: !!props.disabled, checked: checked });
35
57
  return {
36
58
  props: (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, pressable.props), { accessible: true, accessibilityActions: accessibilityActionsProp, accessibilityLabel: props.accessibilityLabel, accessibilityRole: 'menuitem', accessibilityState: getAccessibilityState(disabled, state.checked, accessibilityState), enableFocusRing: true, focusable: !disabled, onAccessibilityAction: onAccessibilityActionProp, ref: buttonRef }), onKeyProps),
37
59
  state: state,
38
60
  };
39
61
  };
40
- exports.useMenuItemCheckbox = useMenuItemCheckbox;
41
- var getAccessibilityState = (0, framework_1.memoize)(getAccessibilityStateWorker);
42
- function getAccessibilityStateWorker(disabled, checked, accessibilityState) {
43
- if (accessibilityState) {
44
- return (0, tslib_1.__assign)({ disabled: disabled, checked: checked }, accessibilityState);
45
- }
46
- return { disabled: disabled, checked: checked };
47
- }
62
+ exports.useMenuCheckboxInteraction = useMenuCheckboxInteraction;
48
63
  //# sourceMappingURL=useMenuItemCheckbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAG/B,8DAA2D;AAC3D,8EAMkD;AAClD,8DAAgE;AAEhE,IAAM,2BAA2B,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAElD,IAAM,mBAAmB,GAAG,UAAC,KAA4B;;IAC9D,sCAAsC;IACtC,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAA,oBAAoB,GAOlB,KAAK,qBAPa,EACpB,kBAAkB,GAMhB,KAAK,mBANW,EAClB,KAKE,KAAK,aAL2B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAClC,QAAQ,GAIN,KAAK,SAJC,EACR,IAAI,GAGF,KAAK,KAHH,EACJ,qBAAqB,GAEnB,KAAK,sBAFc,EAClB,IAAI,uBACL,KAAK,EARH,2GAQL,CADQ,CACC;IACV,IAAM,OAAO,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAEhD,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,CACjC,CAAC;IACF,iDAAiD;IACjD,IAAM,sBAAsB,GAAG,IAAA,uCAAmB,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAEhF,IAAM,SAAS,GAAG,IAAA,kCAAc,0BAAG,OAAO,EAAE,sBAAsB,IAAK,IAAI,EAAG,CAAC;IAC/E,IAAM,SAAS,GAAG,IAAA,uCAAmB,EAAC,YAAY,CAAC,CAAC;IAEpD,IAAM,UAAU,GAAG,IAAA,+BAAW,EAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACnD,IAAM,wBAAwB,GAAG,oBAAoB;QACnD,CAAC,2DAAK,2BAA2B,SAAK,oBAAoB,QAC1D,CAAC,CAAC,2BAA2B,CAAC;IAChC,IAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CACjD,UAAC,KAA+B;QAC9B,IAAI,KAAK,CAAC,WAAW,CAAC,UAAU,KAAK,QAAQ,EAAE;YAC7C,aAAa,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,qBAAqB,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,EACD,CAAC,aAAa,EAAE,qBAAqB,CAAC,CACvC,CAAC;IAEF,IAAM,KAAK,mDACN,SAAS,CAAC,KAAK,KAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAC1B,OAAO,EAAE,OAAO,GACjB,CAAC;IAEF,OAAO;QACL,KAAK,wEACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,oBAAoB,EAAE,wBAAwB,EAC9C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,iBAAiB,EAAE,UAAU,EAC7B,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,EACtF,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,qBAAqB,EAAE,yBAAyB,EAChD,GAAG,EAAE,SAAS,KACX,UAAU,CACd;QACD,KAAK,EAAE,KAAK;KACb,CAAC;AACJ,CAAC,CAAC;AAhEW,QAAA,mBAAmB,uBAgE9B;AAEF,IAAM,qBAAqB,GAAG,IAAA,mBAAO,EAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,OAAgB,EAAE,kBAAuC;IAC/G,IAAI,kBAAkB,EAAE;QACtB,+BAAS,QAAQ,UAAA,EAAE,OAAO,SAAA,IAAK,kBAAkB,EAAG;KACrD;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"useMenuItemCheckbox.js","sourceRoot":"","sources":["../../src/MenuItemCheckbox/useMenuItemCheckbox.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAG/B,8DAA2D;AAC3D,8EAMkD;AAClD,8DAAgE;AAEhE,IAAM,2BAA2B,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAElD,IAAM,mBAAmB,GAAG,UAAC,KAA4B;;IACtD,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IACvB,IAAM,OAAO,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAEhD,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,CACjC,CAAC;IAEF,OAAO,IAAA,kCAA0B,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAEF,IAAM,qBAAqB,GAAG,IAAA,mBAAO,EAAC,2BAA2B,CAAC,CAAC;AACnE,SAAS,2BAA2B,CAAC,QAAiB,EAAE,OAAgB,EAAE,kBAAuC;IAC/G,IAAI,kBAAkB,EAAE;QACtB,+BAAS,QAAQ,UAAA,EAAE,OAAO,SAAA,IAAK,kBAAkB,EAAG;KACrD;IACD,OAAO,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACI,IAAM,0BAA0B,GAAG,UACxC,KAA4B,EAC5B,cAA6C;;IAE7C,IAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAA,oBAAoB,GAOlB,KAAK,qBAPa,EACpB,kBAAkB,GAMhB,KAAK,mBANW,EAClB,KAKE,KAAK,aAL2B,EAAlC,YAAY,mBAAG,mBAAmB,KAAA,EAClC,QAAQ,GAIN,KAAK,SAJC,EACR,IAAI,GAGF,KAAK,KAHH,EACJ,qBAAqB,GAEnB,KAAK,sBAFc,EAClB,IAAI,uBACL,KAAK,EARH,2GAQL,CADQ,CACC;IACV,IAAM,OAAO,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IAExC,iDAAiD;IACjD,IAAM,sBAAsB,GAAG,IAAA,uCAAmB,EAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAEjF,IAAM,SAAS,GAAG,IAAA,kCAAc,0BAAG,OAAO,EAAE,sBAAsB,IAAK,IAAI,EAAG,CAAC;IAC/E,IAAM,SAAS,GAAG,IAAA,uCAAmB,EAAC,YAAY,CAAC,CAAC;IAEpD,IAAM,UAAU,GAAG,IAAA,+BAAW,EAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACpD,IAAM,wBAAwB,GAAG,oBAAoB;QACnD,CAAC,2DAAK,2BAA2B,SAAK,oBAAoB,QAC1D,CAAC,CAAC,2BAA2B,CAAC;IAChC,IAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CACjD,UAAC,KAA+B;QAC9B,IAAI,KAAK,CAAC,WAAW,CAAC,UAAU,KAAK,QAAQ,EAAE;YAC7C,cAAc,CAAC,KAAK,CAAC,CAAC;SACvB;QACD,qBAAqB,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,EACD,CAAC,cAAc,EAAE,qBAAqB,CAAC,CACxC,CAAC;IAEF,IAAM,KAAK,mDACN,SAAS,CAAC,KAAK,KAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAC1B,OAAO,EAAE,OAAO,GACjB,CAAC;IAEF,OAAO;QACL,KAAK,wEACA,SAAS,CAAC,KAAK,KAClB,UAAU,EAAE,IAAI,EAChB,oBAAoB,EAAE,wBAAwB,EAC9C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,iBAAiB,EAAE,UAAU,EAC7B,kBAAkB,EAAE,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,EACtF,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,CAAC,QAAQ,EACpB,qBAAqB,EAAE,yBAAyB,EAChD,GAAG,EAAE,SAAS,KACX,UAAU,CACd;QACD,KAAK,EAAE,KAAK;KACb,CAAC;AACJ,CAAC,CAAC;AA3DW,QAAA,0BAA0B,8BA2DrC"}
@@ -0,0 +1,4 @@
1
+ import { MenuItemCheckboxProps } from '../MenuItemCheckbox/MenuItemCheckbox.types';
2
+ export declare const menuItemRadioName = "MenuItemRadio";
3
+ export declare const MenuItemRadio: import("@fluentui-react-native/composition").ComposeFactoryComponent<MenuItemCheckboxProps, import("../MenuItemCheckbox/MenuItemCheckbox.types").MenuItemCheckboxSlotProps, import("../MenuItemCheckbox/MenuItemCheckbox.types").MenuItemCheckboxTokens, import("@fluentui-react-native/framework").Theme, object>;
4
+ //# sourceMappingURL=MenuItemRadio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuItemRadio.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadio/MenuItemRadio.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAwB,MAAM,4CAA4C,CAAC;AAEzG,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,aAAa,oTAQxB,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MenuItemRadio = exports.menuItemRadioName = void 0;
4
+ var useMenuItemRadio_1 = require("./useMenuItemRadio");
5
+ var MenuItemCheckbox_1 = require("../MenuItemCheckbox/MenuItemCheckbox");
6
+ exports.menuItemRadioName = 'MenuItemRadio';
7
+ exports.MenuItemRadio = MenuItemCheckbox_1.MenuItemCheckbox.compose({
8
+ displayName: exports.menuItemRadioName,
9
+ useRender: function (userProps, useSlots) {
10
+ var menuItem = (0, useMenuItemRadio_1.useMenuItemRadio)(userProps);
11
+ var Slots = useSlots(userProps, function (layer) { return menuItem.state[layer]; });
12
+ return (0, MenuItemCheckbox_1.menuItemFinalRender)(menuItem, Slots);
13
+ },
14
+ });
15
+ //# sourceMappingURL=MenuItemRadio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuItemRadio.js","sourceRoot":"","sources":["../../src/MenuItemRadio/MenuItemRadio.tsx"],"names":[],"mappings":";;;AACA,uDAAsD;AACtD,yEAA6F;AAGhF,QAAA,iBAAiB,GAAG,eAAe,CAAC;AAEpC,QAAA,aAAa,GAAG,mCAAgB,CAAC,OAAO,CAAC;IACpD,WAAW,EAAE,yBAAiB;IAC9B,SAAS,EAAE,UAAC,SAAgC,EAAE,QAAwC;QACpF,IAAM,QAAQ,GAAG,IAAA,mCAAgB,EAAC,SAAS,CAAC,CAAC;QAC7C,IAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAC,KAAK,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QAE7E,OAAO,IAAA,sCAAmB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MenuItemCheckboxProps, MenuItemCheckboxState } from '../MenuItemCheckbox/MenuItemCheckbox.types';
2
+ export declare const useMenuItemRadio: (props: MenuItemCheckboxProps) => MenuItemCheckboxState;
3
+ //# sourceMappingURL=useMenuItemRadio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenuItemRadio.d.ts","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAG1G,eAAO,MAAM,gBAAgB,UAAW,qBAAqB,KAAG,qBAc/D,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMenuItemRadio = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var React = (0, tslib_1.__importStar)(require("react"));
6
+ var menuListContext_1 = require("../context/menuListContext");
7
+ var useMenuItemCheckbox_1 = require("../MenuItemCheckbox/useMenuItemCheckbox");
8
+ var useMenuItemRadio = function (props) {
9
+ var _a;
10
+ var name = props.name;
11
+ var context = (0, menuListContext_1.useMenuListContext)();
12
+ var checked = (_a = context.checked) === null || _a === void 0 ? void 0 : _a[name];
13
+ var selectRadio = context.selectRadio;
14
+ var toggleChecked = React.useCallback(function (e) {
15
+ selectRadio(e, name, !checked);
16
+ }, [checked, name, selectRadio]);
17
+ return (0, useMenuItemCheckbox_1.useMenuCheckboxInteraction)(props, toggleChecked);
18
+ };
19
+ exports.useMenuItemRadio = useMenuItemRadio;
20
+ //# sourceMappingURL=useMenuItemRadio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenuItemRadio.js","sourceRoot":"","sources":["../../src/MenuItemRadio/useMenuItemRadio.ts"],"names":[],"mappings":";;;;AAAA,wDAA+B;AAE/B,8DAAgE;AAEhE,+EAAqF;AAE9E,IAAM,gBAAgB,GAAG,UAAC,KAA4B;;IACnD,IAAA,IAAI,GAAK,KAAK,KAAV,CAAW;IACvB,IAAM,OAAO,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACrC,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IACxC,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,CAAmB;QAClB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAC7B,CAAC;IAEF,OAAO,IAAA,gDAA0B,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
@@ -14,6 +14,7 @@ export interface MenuListProps extends Omit<IViewProps, 'onPress'> {
14
14
  }
15
15
  export interface MenuListState extends MenuListProps {
16
16
  isCheckedControlled: boolean;
17
+ selectRadio?: (e: InteractionEvent, name: string, isChecked: boolean) => void;
17
18
  }
18
19
  export interface MenuListSlotProps {
19
20
  root: React.PropsWithRef<IViewProps> & {
@@ -1 +1 @@
1
- {"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAErF,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,sBAAsB;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACnF;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AACD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;CAC9B"}
1
+ {"version":3,"file":"MenuList.types.d.ts","sourceRoot":"","sources":["../../src/MenuList/MenuList.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAErF,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,MAAM,WAAW,cAAe,SAAQ,YAAY,EAAE,sBAAsB;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACnF;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AACD,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":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEhE,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aAcnD,CAAC"}
1
+ {"version":3,"file":"useMenuList.d.ts","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEhE,eAAO,MAAM,WAAW,WAAY,aAAa,KAAG,aAenD,CAAC"}
@@ -9,8 +9,8 @@ var useMenuList = function (_props) {
9
9
  // MenuList v2 needs to be able to be standalone, but this is not in scope for v1
10
10
  // Assuming that checked information will come from parent Menu
11
11
  var isCheckedControlled = typeof context.checked !== 'undefined';
12
- var _a = useMenuCheckedState(isCheckedControlled, context), checked = _a[0], onCheckedChange = _a[1];
13
- return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, context), { isCheckedControlled: isCheckedControlled, checked: checked, onCheckedChange: onCheckedChange });
12
+ var _a = useMenuCheckedState(isCheckedControlled, context), checked = _a[0], onCheckedChange = _a[1], selectRadio = _a[2];
13
+ return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, context), { isCheckedControlled: isCheckedControlled, checked: checked, onCheckedChange: onCheckedChange, selectRadio: selectRadio });
14
14
  };
15
15
  exports.useMenuList = useMenuList;
16
16
  var useMenuCheckedState = function (isControlled, props) {
@@ -30,6 +30,16 @@ var useMenuCheckedState = function (isControlled, props) {
30
30
  onCheckedChange(e, name, isChecked);
31
31
  }
32
32
  }, [isControlled, state, onCheckedChange, setCheckedInternal]);
33
- return [state, setChecked];
33
+ var selectRadio = react_1.default.useCallback(function (e, name, isChecked) {
34
+ var _a;
35
+ if (!isControlled) {
36
+ var updatedChecked = (_a = {}, _a[name] = true, _a);
37
+ setCheckedInternal(updatedChecked);
38
+ }
39
+ if (onCheckedChange) {
40
+ onCheckedChange(e, name, isChecked);
41
+ }
42
+ }, [isControlled, onCheckedChange, setCheckedInternal]);
43
+ return [state, setChecked, selectRadio];
34
44
  };
35
45
  //# sourceMappingURL=useMenuList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":";;;;AACA,6DAA0B;AAC1B,sDAAwD;AAGjD,IAAM,WAAW,GAAG,UAAC,MAAqB;IAC/C,IAAM,OAAO,GAAG,IAAA,4BAAc,GAAE,CAAC;IAEjC,iFAAiF;IACjF,+DAA+D;IAC/D,IAAM,mBAAmB,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC;IAC7D,IAAA,KAA6B,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAA7E,OAAO,QAAA,EAAE,eAAe,QAAqD,CAAC;IAErF,uDACK,OAAO,KACV,mBAAmB,qBAAA,EACnB,OAAO,SAAA,EACP,eAAe,iBAAA,IACf;AACJ,CAAC,CAAC;AAdW,QAAA,WAAW,eActB;AAEF,IAAM,mBAAmB,GAAG,UAC1B,YAAqB,EACrB,KAAoB;;IAEZ,IAAA,cAAc,GAA+B,KAAK,eAApC,EAAE,eAAe,GAAc,KAAK,gBAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IAC3D,IAAM,YAAY,GAAG,MAAA,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,OAAO,mCAAI,EAAE,CAAC;IAC/C,IAAA,KAAwC,eAAK,CAAC,QAAQ,CAA0B,YAAY,CAAC,EAA5F,eAAe,QAAA,EAAE,kBAAkB,QAAyD,CAAC;IAEpG,IAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;IAEvD,IAAM,UAAU,GAAG,eAAK,CAAC,WAAW,CAClC,UAAC,CAAmB,EAAE,IAAY,EAAE,SAAkB;QACpD,IAAI,CAAC,YAAY,EAAE;YACjB,IAAM,UAAU,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YAC7B,IAAM,cAAc,6BAAQ,UAAU,CAAE,CAAC;YACzC,kBAAkB,CAAC,cAAc,CAAC,CAAC;SACpC;QAED,IAAI,eAAe,EAAE;YACnB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SACrC;IACH,CAAC,EACD,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAC3D,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"useMenuList.js","sourceRoot":"","sources":["../../src/MenuList/useMenuList.ts"],"names":[],"mappings":";;;;AACA,6DAA0B;AAC1B,sDAAwD;AAGjD,IAAM,WAAW,GAAG,UAAC,MAAqB;IAC/C,IAAM,OAAO,GAAG,IAAA,4BAAc,GAAE,CAAC;IAEjC,iFAAiF;IACjF,+DAA+D;IAC/D,IAAM,mBAAmB,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC;IAC7D,IAAA,KAA0C,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAA1F,OAAO,QAAA,EAAE,eAAe,QAAA,EAAE,WAAW,QAAqD,CAAC;IAElG,uDACK,OAAO,KACV,mBAAmB,qBAAA,EACnB,OAAO,SAAA,EACP,eAAe,iBAAA,EACf,WAAW,aAAA,IACX;AACJ,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB;AAEF,IAAM,mBAAmB,GAAG,UAC1B,YAAqB,EACrB,KAAoB;;IAMZ,IAAA,cAAc,GAA+B,KAAK,eAApC,EAAE,eAAe,GAAc,KAAK,gBAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IAC3D,IAAM,YAAY,GAAG,MAAA,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,OAAO,mCAAI,EAAE,CAAC;IAC/C,IAAA,KAAwC,eAAK,CAAC,QAAQ,CAA0B,YAAY,CAAC,EAA5F,eAAe,QAAA,EAAE,kBAAkB,QAAyD,CAAC;IAEpG,IAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;IAEvD,IAAM,UAAU,GAAG,eAAK,CAAC,WAAW,CAClC,UAAC,CAAmB,EAAE,IAAY,EAAE,SAAkB;QACpD,IAAI,CAAC,YAAY,EAAE;YACjB,IAAM,UAAU,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YAC7B,IAAM,cAAc,6BAAQ,UAAU,CAAE,CAAC;YACzC,kBAAkB,CAAC,cAAc,CAAC,CAAC;SACpC;QAED,IAAI,eAAe,EAAE;YACnB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SACrC;IACH,CAAC,EACD,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAC3D,CAAC;IAEF,IAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CACnC,UAAC,CAAmB,EAAE,IAAY,EAAE,SAAkB;;QACpD,IAAI,CAAC,YAAY,EAAE;YACjB,IAAM,cAAc,aAAK,GAAC,IAAI,IAAG,IAAI,KAAE,CAAC;YACxC,kBAAkB,CAAC,cAAc,CAAC,CAAC;SACpC;QAED,IAAI,eAAe,EAAE;YACnB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SACrC;IACH,CAAC,EACD,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAC,CACpD,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC1C,CAAC,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,iFAiBtB,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,iFAmBtB,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 }, 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));
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,IAEvC,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,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"}
@@ -6,7 +6,9 @@ export interface MenuPopoverProps extends Omit<IViewProps, 'onPress'> {
6
6
  }
7
7
  export interface MenuPopoverState {
8
8
  dismissBehaviors: DismissBehaviors[];
9
+ doNotTakePointerCapture: boolean;
9
10
  onDismiss: () => void;
11
+ setInitialFocus: boolean;
10
12
  triggerRef: React.RefObject<React.Component>;
11
13
  }
12
14
  //# sourceMappingURL=MenuPopover.types.d.ts.map
@@ -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,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,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,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 +1 @@
1
- {"version":3,"file":"useMenuPopover.d.ts","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,eAAO,MAAM,cAAc,WAAY,gBAAgB,KAAG,gBAWzD,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,gBAgBzD,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useMenuPopover = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
+ var react_native_1 = require("react-native");
6
7
  var menuContext_1 = require("../context/menuContext");
7
8
  var useMenuPopover = function (_props) {
8
9
  var context = (0, menuContext_1.useMenuContext)();
@@ -12,7 +13,11 @@ var useMenuPopover = function (_props) {
12
13
  var dismissBehaviors = context.isControlled
13
14
  ? ['preventDismissOnKeyDown', 'preventDismissOnClickOutside']
14
15
  : undefined;
15
- return { triggerRef: triggerRef, onDismiss: onDismiss, dismissBehaviors: dismissBehaviors };
16
+ // Initial focus behavior differs per platform, Windows platforms move focus
17
+ // automatically onto first element of Callout
18
+ var setInitialFocus = react_native_1.Platform.OS === 'win32' || react_native_1.Platform.OS === 'windows';
19
+ var doNotTakePointerCapture = context.openOnHover;
20
+ return { triggerRef: triggerRef, onDismiss: onDismiss, dismissBehaviors: dismissBehaviors, doNotTakePointerCapture: doNotTakePointerCapture, setInitialFocus: setInitialFocus };
16
21
  };
17
22
  exports.useMenuPopover = useMenuPopover;
18
23
  //# sourceMappingURL=useMenuPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuPopover.js","sourceRoot":"","sources":["../../src/MenuPopover/useMenuPopover.ts"],"names":[],"mappings":";;;;AAAA,6DAA0B;AAE1B,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,OAAO,EAAE,UAAU,YAAA,EAAE,SAAS,WAAA,EAAE,gBAAgB,kBAAA,EAAE,CAAC;AACrD,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB"}
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"}
@@ -4,6 +4,9 @@ import { MenuTriggerProps } from './MenuTrigger.types';
4
4
  export declare const useMenuTrigger: (_props: MenuTriggerProps) => {
5
5
  onClick: (e: InteractionEvent) => void;
6
6
  onHoverIn: (e: InteractionEvent) => void;
7
+ onHoverOut: (e: InteractionEvent) => void;
7
8
  componentRef: import("react").RefObject<import("react").Component<{}, {}, any>>;
9
+ delayHoverIn: number;
10
+ delayHoverOut: number;
8
11
  };
9
12
  //# 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;AAEvD,eAAO,MAAM,cAAc,WAAY,gBAAgB;iBAcjC,gBAAgB;mBANd,gBAAgB;;CAWvC,CAAC"}
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"}
@@ -2,21 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useMenuTrigger = void 0;
4
4
  var menuContext_1 = require("../context/menuContext");
5
+ var react_native_1 = require("react-native");
5
6
  var useMenuTrigger = function (_props) {
6
7
  var context = (0, menuContext_1.useMenuContext)();
7
8
  var setOpen = context.setOpen;
8
9
  var open = context.open;
9
10
  var openOnHover = context.openOnHover;
10
11
  var triggerRef = context.triggerRef;
12
+ var delayHover = react_native_1.Platform.select({
13
+ macos: 100,
14
+ default: 500, // win32
15
+ });
11
16
  var onHoverIn = function (e) {
12
17
  if (openOnHover) {
13
18
  setOpen(e, true /* isOpen */);
14
19
  }
15
20
  };
21
+ var onHoverOut = function (e) {
22
+ if (openOnHover) {
23
+ setOpen(e, false /* isOpen */);
24
+ }
25
+ };
16
26
  var onClick = function (e) {
17
27
  setOpen(e, !open);
18
28
  };
19
- return { onClick: onClick, onHoverIn: onHoverIn, componentRef: triggerRef };
29
+ return { onClick: onClick, onHoverIn: onHoverIn, onHoverOut: onHoverOut, componentRef: triggerRef, delayHoverIn: delayHover, delayHoverOut: delayHover };
20
30
  };
21
31
  exports.useMenuTrigger = useMenuTrigger;
22
32
  //# sourceMappingURL=useMenuTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuTrigger.js","sourceRoot":"","sources":["../../src/MenuTrigger/useMenuTrigger.ts"],"names":[],"mappings":";;;AAAA,sDAAwD;AAIjD,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,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,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,YAAY,EAAE,UAAU,EAAE,CAAC;AAC1D,CAAC,CAAC;AAnBW,QAAA,cAAc,kBAmBzB"}
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"}
@@ -3,6 +3,7 @@ export { MenuTrigger } from './MenuTrigger/MenuTrigger';
3
3
  export { MenuPopover } from './MenuPopover/MenuPopover';
4
4
  export { MenuItem } from './MenuItem/MenuItem';
5
5
  export { MenuItemCheckbox } from './MenuItemCheckbox/MenuItemCheckbox';
6
+ export { MenuItemRadio } from './MenuItemRadio/MenuItemRadio';
6
7
  export { MenuList } from './MenuList/MenuList';
7
8
  export { MenuDivider } from './MenuDivider/MenuDivider';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MenuDivider = exports.MenuList = exports.MenuItemCheckbox = exports.MenuItem = exports.MenuPopover = exports.MenuTrigger = exports.Menu = void 0;
3
+ exports.MenuDivider = exports.MenuList = exports.MenuItemRadio = exports.MenuItemCheckbox = exports.MenuItem = exports.MenuPopover = exports.MenuTrigger = exports.Menu = void 0;
4
4
  var Menu_1 = require("./Menu/Menu");
5
5
  Object.defineProperty(exports, "Menu", { enumerable: true, get: function () { return Menu_1.Menu; } });
6
6
  var MenuTrigger_1 = require("./MenuTrigger/MenuTrigger");
@@ -11,6 +11,8 @@ var MenuItem_1 = require("./MenuItem/MenuItem");
11
11
  Object.defineProperty(exports, "MenuItem", { enumerable: true, get: function () { return MenuItem_1.MenuItem; } });
12
12
  var MenuItemCheckbox_1 = require("./MenuItemCheckbox/MenuItemCheckbox");
13
13
  Object.defineProperty(exports, "MenuItemCheckbox", { enumerable: true, get: function () { return MenuItemCheckbox_1.MenuItemCheckbox; } });
14
+ var MenuItemRadio_1 = require("./MenuItemRadio/MenuItemRadio");
15
+ Object.defineProperty(exports, "MenuItemRadio", { enumerable: true, get: function () { return MenuItemRadio_1.MenuItemRadio; } });
14
16
  var MenuList_1 = require("./MenuList/MenuList");
15
17
  Object.defineProperty(exports, "MenuList", { enumerable: true, get: function () { return MenuList_1.MenuList; } });
16
18
  var MenuDivider_1 = require("./MenuDivider/MenuDivider");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oCAAmC;AAA1B,4FAAA,IAAI,OAAA;AACb,yDAAwD;AAA/C,0GAAA,WAAW,OAAA;AACpB,yDAAwD;AAA/C,0GAAA,WAAW,OAAA;AACpB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,wEAAuE;AAA9D,oHAAA,gBAAgB,OAAA;AACzB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,yDAAwD;AAA/C,0GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oCAAmC;AAA1B,4FAAA,IAAI,OAAA;AACb,yDAAwD;AAA/C,0GAAA,WAAW,OAAA;AACpB,yDAAwD;AAA/C,0GAAA,WAAW,OAAA;AACpB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,wEAAuE;AAA9D,oHAAA,gBAAgB,OAAA;AACzB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,yDAAwD;AAA/C,0GAAA,WAAW,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui-react-native/menu",
3
- "version": "0.9.3",
3
+ "version": "0.10.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,12 +23,12 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@fluentui-react-native/adapters": ">=0.8.5 <1.0.0",
26
- "@fluentui-react-native/callout": ">=0.20.2 <1.0.0",
27
- "@fluentui-react-native/experimental-text": ">=0.7.28 <1.0.0",
28
- "@fluentui-react-native/framework": "0.7.28",
29
- "@fluentui-react-native/interactive-hooks": ">=0.15.8 <1.0.0",
30
- "@fluentui-react-native/theme-tokens": ">=0.16.3 <1.0.0",
31
- "@fluentui-react-native/tokens": ">=0.12.2 <1.0.0",
26
+ "@fluentui-react-native/callout": ">=0.20.3 <1.0.0",
27
+ "@fluentui-react-native/experimental-text": ">=0.9.0 <1.0.0",
28
+ "@fluentui-react-native/framework": "0.7.30",
29
+ "@fluentui-react-native/interactive-hooks": ">=0.15.10 <1.0.0",
30
+ "@fluentui-react-native/theme-tokens": ">=0.18.0 <1.0.0",
31
+ "@fluentui-react-native/tokens": ">=0.14.0 <1.0.0",
32
32
  "@fluentui-react-native/use-styling": ">=0.8.3 <1.0.0",
33
33
  "react-native-svg": "^12.3.0",
34
34
  "tslib": "^2.3.1"
@@ -1,9 +1,15 @@
1
1
  /** @jsx withSlots */
2
2
  import { View } from 'react-native';
3
3
  import { SvgXml } from 'react-native-svg';
4
- import { compose, mergeProps, UseSlots, withSlots } from '@fluentui-react-native/framework';
4
+ import { compose, mergeProps, Slots, UseSlots, withSlots } from '@fluentui-react-native/framework';
5
5
  import { Text } from '@fluentui-react-native/experimental-text';
6
- import { menuItemCheckboxName, MenuItemCheckboxProps, MenuItemCheckboxType } from './MenuItemCheckbox.types';
6
+ import {
7
+ menuItemCheckboxName,
8
+ MenuItemCheckboxProps,
9
+ MenuItemCheckboxSlotProps,
10
+ MenuItemCheckboxState,
11
+ MenuItemCheckboxType,
12
+ } from './MenuItemCheckbox.types';
7
13
  import { useMenuItemCheckbox } from './useMenuItemCheckbox';
8
14
  import { stylingSettings } from './MenuItemCheckbox.styling';
9
15
 
@@ -19,19 +25,26 @@ export const MenuItemCheckbox = compose<MenuItemCheckboxType>({
19
25
  const menuItem = useMenuItemCheckbox(userProps);
20
26
  const Slots = useSlots(userProps, (layer): boolean => menuItem.state[layer]);
21
27
 
22
- return (final: MenuItemCheckboxProps) => {
23
- const mergedProps = mergeProps(menuItem.props, final);
24
- const chevronXml = `
25
- <svg>
26
- <path fill='currentColor' d='M9.85355 3.14645C10.0488 3.34171 10.0488 3.65829 9.85355 3.85355L5.35355 8.35355C5.15829 8.54882 4.84171 8.54882 4.64645 8.35355L2.64645 6.35355C2.45118 6.15829 2.45118 5.84171 2.64645 5.64645C2.84171 5.45118 3.15829 5.45118 3.35355 5.64645L5 7.29289L9.14645 3.14645C9.34171 2.95118 9.65829 2.95118 9.85355 3.14645Z' />
27
- </svg>`;
28
-
29
- return (
30
- <Slots.root {...mergedProps}>
31
- <Slots.checkmark xml={chevronXml} />
32
- {mergedProps.content && <Slots.content>{mergedProps.content}</Slots.content>}
33
- </Slots.root>
34
- );
35
- };
28
+ return menuItemFinalRender(menuItem, Slots);
36
29
  },
37
30
  });
31
+
32
+ export const menuItemFinalRender = (
33
+ menuItem: MenuItemCheckboxState,
34
+ Slots: Slots<MenuItemCheckboxSlotProps>,
35
+ ): React.FunctionComponent<MenuItemCheckboxProps> => {
36
+ return (final: MenuItemCheckboxProps) => {
37
+ const mergedProps = mergeProps(menuItem.props, final);
38
+ const checkmarkXml = `
39
+ <svg>
40
+ <path fill='currentColor' d='M9.85355 3.14645C10.0488 3.34171 10.0488 3.65829 9.85355 3.85355L5.35355 8.35355C5.15829 8.54882 4.84171 8.54882 4.64645 8.35355L2.64645 6.35355C2.45118 6.15829 2.45118 5.84171 2.64645 5.64645C2.84171 5.45118 3.15829 5.45118 3.35355 5.64645L5 7.29289L9.14645 3.14645C9.34171 2.95118 9.65829 2.95118 9.85355 3.14645Z' />
41
+ </svg>`;
42
+
43
+ return (
44
+ <Slots.root {...mergedProps}>
45
+ <Slots.checkmark xml={checkmarkXml} />
46
+ {mergedProps.content && <Slots.content>{mergedProps.content}</Slots.content>}
47
+ </Slots.root>
48
+ );
49
+ };
50
+ };