@tamagui/create-menu 2.0.0-rc.8 → 2.0.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 (148) hide show
  1. package/dist/cjs/MenuPredefined.cjs +159 -157
  2. package/dist/cjs/MenuPredefined.native.js +159 -157
  3. package/dist/cjs/MenuPredefined.native.js.map +1 -1
  4. package/dist/cjs/createBaseMenu.cjs +1150 -941
  5. package/dist/cjs/createBaseMenu.native.js +1280 -1108
  6. package/dist/cjs/createBaseMenu.native.js.map +1 -1
  7. package/dist/cjs/createNativeMenu/createNativeMenu.cjs +318 -159
  8. package/dist/cjs/createNativeMenu/createNativeMenu.native.js +430 -267
  9. package/dist/cjs/createNativeMenu/createNativeMenu.native.js.map +1 -1
  10. package/dist/cjs/createNativeMenu/createNativeMenuTypes.cjs +7 -5
  11. package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js +7 -5
  12. package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js.map +1 -1
  13. package/dist/cjs/createNativeMenu/utils.cjs +85 -42
  14. package/dist/cjs/createNativeMenu/utils.native.js +83 -58
  15. package/dist/cjs/createNativeMenu/utils.native.js.map +1 -1
  16. package/dist/cjs/createNativeMenu/withNativeMenu.cjs +27 -17
  17. package/dist/cjs/createNativeMenu/withNativeMenu.native.js +22 -14
  18. package/dist/cjs/createNativeMenu/withNativeMenu.native.js.map +1 -1
  19. package/dist/cjs/index.cjs +15 -12
  20. package/dist/cjs/index.native.js +15 -12
  21. package/dist/cjs/index.native.js.map +1 -1
  22. package/dist/esm/MenuPredefined.mjs +144 -144
  23. package/dist/esm/MenuPredefined.mjs.map +1 -1
  24. package/dist/esm/MenuPredefined.native.js +144 -144
  25. package/dist/esm/MenuPredefined.native.js.map +1 -1
  26. package/dist/esm/createBaseMenu.mjs +1110 -903
  27. package/dist/esm/createBaseMenu.mjs.map +1 -1
  28. package/dist/esm/createBaseMenu.native.js +1240 -1070
  29. package/dist/esm/createBaseMenu.native.js.map +1 -1
  30. package/dist/esm/createNativeMenu/createNativeMenu.mjs +291 -134
  31. package/dist/esm/createNativeMenu/createNativeMenu.mjs.map +1 -1
  32. package/dist/esm/createNativeMenu/createNativeMenu.native.js +377 -216
  33. package/dist/esm/createNativeMenu/createNativeMenu.native.js.map +1 -1
  34. package/dist/esm/createNativeMenu/utils.mjs +58 -17
  35. package/dist/esm/createNativeMenu/utils.mjs.map +1 -1
  36. package/dist/esm/createNativeMenu/utils.native.js +57 -34
  37. package/dist/esm/createNativeMenu/utils.native.js.map +1 -1
  38. package/dist/esm/createNativeMenu/withNativeMenu.mjs +13 -5
  39. package/dist/esm/createNativeMenu/withNativeMenu.mjs.map +1 -1
  40. package/dist/esm/createNativeMenu/withNativeMenu.native.js +8 -2
  41. package/dist/esm/createNativeMenu/withNativeMenu.native.js.map +1 -1
  42. package/dist/esm/index.js +5 -6
  43. package/dist/esm/index.js.map +1 -6
  44. package/dist/esm/index.mjs +2 -1
  45. package/dist/esm/index.mjs.map +1 -1
  46. package/dist/esm/index.native.js +2 -1
  47. package/dist/esm/index.native.js.map +1 -1
  48. package/dist/jsx/MenuPredefined.mjs +144 -144
  49. package/dist/jsx/MenuPredefined.mjs.map +1 -1
  50. package/dist/jsx/MenuPredefined.native.js +159 -157
  51. package/dist/jsx/MenuPredefined.native.js.map +1 -1
  52. package/dist/jsx/createBaseMenu.mjs +1110 -903
  53. package/dist/jsx/createBaseMenu.mjs.map +1 -1
  54. package/dist/jsx/createBaseMenu.native.js +1280 -1108
  55. package/dist/jsx/createBaseMenu.native.js.map +1 -1
  56. package/dist/jsx/createNativeMenu/createNativeMenu.mjs +291 -134
  57. package/dist/jsx/createNativeMenu/createNativeMenu.mjs.map +1 -1
  58. package/dist/jsx/createNativeMenu/createNativeMenu.native.js +430 -267
  59. package/dist/jsx/createNativeMenu/createNativeMenu.native.js.map +1 -1
  60. package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js +7 -5
  61. package/dist/jsx/createNativeMenu/utils.mjs +58 -17
  62. package/dist/jsx/createNativeMenu/utils.mjs.map +1 -1
  63. package/dist/jsx/createNativeMenu/utils.native.js +83 -58
  64. package/dist/jsx/createNativeMenu/utils.native.js.map +1 -1
  65. package/dist/jsx/createNativeMenu/withNativeMenu.mjs +13 -5
  66. package/dist/jsx/createNativeMenu/withNativeMenu.mjs.map +1 -1
  67. package/dist/jsx/createNativeMenu/withNativeMenu.native.js +22 -14
  68. package/dist/jsx/createNativeMenu/withNativeMenu.native.js.map +1 -1
  69. package/dist/jsx/index.js +5 -6
  70. package/dist/jsx/index.js.map +1 -6
  71. package/dist/jsx/index.mjs +2 -1
  72. package/dist/jsx/index.mjs.map +1 -1
  73. package/dist/jsx/index.native.js +15 -12
  74. package/dist/jsx/index.native.js.map +1 -1
  75. package/package.json +26 -29
  76. package/src/createBaseMenu.tsx +367 -266
  77. package/src/createNativeMenu/createNativeMenu.tsx +448 -220
  78. package/src/createNativeMenu/createNativeMenuTypes.ts +20 -20
  79. package/src/createNativeMenu/withNativeMenu.tsx +5 -3
  80. package/src/index.tsx +3 -5
  81. package/types/createBaseMenu.d.ts +117 -31
  82. package/types/createBaseMenu.d.ts.map +1 -1
  83. package/types/createNativeMenu/createNativeMenu.d.ts +21 -21
  84. package/types/createNativeMenu/createNativeMenu.d.ts.map +1 -1
  85. package/types/createNativeMenu/createNativeMenuTypes.d.ts +20 -20
  86. package/types/createNativeMenu/createNativeMenuTypes.d.ts.map +1 -1
  87. package/types/createNativeMenu/withNativeMenu.d.ts +3 -3
  88. package/types/createNativeMenu/withNativeMenu.d.ts.map +1 -1
  89. package/types/index.d.ts +3 -2
  90. package/types/index.d.ts.map +1 -1
  91. package/dist/cjs/MenuPredefined.js +0 -168
  92. package/dist/cjs/MenuPredefined.js.map +0 -6
  93. package/dist/cjs/createBaseMenu.js +0 -843
  94. package/dist/cjs/createBaseMenu.js.map +0 -6
  95. package/dist/cjs/createNativeMenu/createNativeMenu.js +0 -177
  96. package/dist/cjs/createNativeMenu/createNativeMenu.js.map +0 -6
  97. package/dist/cjs/createNativeMenu/createNativeMenuTypes.js +0 -14
  98. package/dist/cjs/createNativeMenu/createNativeMenuTypes.js.map +0 -6
  99. package/dist/cjs/createNativeMenu/index.cjs +0 -19
  100. package/dist/cjs/createNativeMenu/index.js +0 -16
  101. package/dist/cjs/createNativeMenu/index.js.map +0 -6
  102. package/dist/cjs/createNativeMenu/index.native.js +0 -22
  103. package/dist/cjs/createNativeMenu/index.native.js.map +0 -1
  104. package/dist/cjs/createNativeMenu/utils.js +0 -66
  105. package/dist/cjs/createNativeMenu/utils.js.map +0 -6
  106. package/dist/cjs/createNativeMenu/withNativeMenu.js +0 -30
  107. package/dist/cjs/createNativeMenu/withNativeMenu.js.map +0 -6
  108. package/dist/cjs/index.js +0 -23
  109. package/dist/cjs/index.js.map +0 -6
  110. package/dist/esm/MenuPredefined.js +0 -154
  111. package/dist/esm/MenuPredefined.js.map +0 -6
  112. package/dist/esm/createBaseMenu.js +0 -849
  113. package/dist/esm/createBaseMenu.js.map +0 -6
  114. package/dist/esm/createNativeMenu/createNativeMenu.js +0 -156
  115. package/dist/esm/createNativeMenu/createNativeMenu.js.map +0 -6
  116. package/dist/esm/createNativeMenu/createNativeMenuTypes.js +0 -1
  117. package/dist/esm/createNativeMenu/createNativeMenuTypes.js.map +0 -6
  118. package/dist/esm/createNativeMenu/index.js +0 -3
  119. package/dist/esm/createNativeMenu/index.js.map +0 -6
  120. package/dist/esm/createNativeMenu/index.mjs +0 -3
  121. package/dist/esm/createNativeMenu/index.mjs.map +0 -1
  122. package/dist/esm/createNativeMenu/index.native.js +0 -3
  123. package/dist/esm/createNativeMenu/index.native.js.map +0 -1
  124. package/dist/esm/createNativeMenu/utils.js +0 -47
  125. package/dist/esm/createNativeMenu/utils.js.map +0 -6
  126. package/dist/esm/createNativeMenu/withNativeMenu.js +0 -15
  127. package/dist/esm/createNativeMenu/withNativeMenu.js.map +0 -6
  128. package/dist/jsx/MenuPredefined.js +0 -154
  129. package/dist/jsx/MenuPredefined.js.map +0 -6
  130. package/dist/jsx/createBaseMenu.js +0 -849
  131. package/dist/jsx/createBaseMenu.js.map +0 -6
  132. package/dist/jsx/createNativeMenu/createNativeMenu.js +0 -156
  133. package/dist/jsx/createNativeMenu/createNativeMenu.js.map +0 -6
  134. package/dist/jsx/createNativeMenu/createNativeMenuTypes.js +0 -1
  135. package/dist/jsx/createNativeMenu/createNativeMenuTypes.js.map +0 -6
  136. package/dist/jsx/createNativeMenu/index.js +0 -3
  137. package/dist/jsx/createNativeMenu/index.js.map +0 -6
  138. package/dist/jsx/createNativeMenu/index.mjs +0 -3
  139. package/dist/jsx/createNativeMenu/index.mjs.map +0 -1
  140. package/dist/jsx/createNativeMenu/index.native.js +0 -22
  141. package/dist/jsx/createNativeMenu/index.native.js.map +0 -1
  142. package/dist/jsx/createNativeMenu/utils.js +0 -47
  143. package/dist/jsx/createNativeMenu/utils.js.map +0 -6
  144. package/dist/jsx/createNativeMenu/withNativeMenu.js +0 -15
  145. package/dist/jsx/createNativeMenu/withNativeMenu.js.map +0 -6
  146. package/src/createNativeMenu/index.tsx +0 -7
  147. package/types/createNativeMenu/index.d.ts +0 -4
  148. package/types/createNativeMenu/index.d.ts.map +0 -1
@@ -1,138 +1,254 @@
1
- import { getZeego } from "@tamagui/native";
1
+ import { getZeego, NativeMenuContext, unstable_claimExternalPressOwnership, unstable_releaseExternalPressOwnership } from "@tamagui/native";
2
2
  import { isWeb, withStaticProperties, isIos } from "@tamagui/web";
3
3
  import React from "react";
4
4
  import { Fragment, jsx } from "react/jsx-runtime";
5
- const createNativeMenu = MenuType => {
6
- if (isWeb) return {
7
- Menu: withStaticProperties({}, {
8
- Trigger: {},
9
- Content: {},
10
- Item: {},
11
- ItemTitle: {},
12
- ItemSubtitle: {},
13
- SubTrigger: {},
14
- Group: {},
15
- ItemIcon: {},
16
- Separator: {},
17
- CheckboxItem: {},
18
- ItemIndicator: {},
19
- ItemImage: {},
20
- Label: {},
21
- Arrow: {},
22
- Sub: {},
23
- SubContent: {},
24
- Preview: {},
25
- Portal: {},
26
- RadioGroup: {},
27
- RadioItem: {},
28
- Auxiliary: {}
29
- })
5
+ const MAPPED_TYPES = ["SubContent", "SubTrigger", "Content", "Sub", "Group", "CheckboxItem"];
6
+ const CONTAINER_TYPES = ["SubContent", "Content", "Sub", "Group"];
7
+ function getComponentType(displayName) {
8
+ for (const type of MAPPED_TYPES) {
9
+ if (displayName === type || displayName.includes(`(${type})`)) {
10
+ return type;
11
+ }
12
+ }
13
+ return null;
14
+ }
15
+ function isItemLike(props, displayName) {
16
+ if (getComponentType(displayName)) return false;
17
+ return "onSelect" in props || "textValue" in props;
18
+ }
19
+ function isPortalLike(displayName) {
20
+ return displayName === "Portal" || displayName.includes("Portal");
21
+ }
22
+ function isTriggerLike(displayName) {
23
+ return displayName === "Trigger" || displayName.includes("(Trigger)");
24
+ }
25
+ function composeHandlers(first, second) {
26
+ return (...args) => {
27
+ first?.(...args);
28
+ second?.(...args);
30
29
  };
31
- const zeego = getZeego();
32
- if (!zeego.isEnabled) return console.warn("Warning: Must call import '@tamagui/native/setup-zeego' at your app entry point to use native menus"), {
33
- Menu: {}
30
+ }
31
+ function getTriggerDebugName(menuType, props) {
32
+ const childProps = React.isValidElement(props.children) && props.children.props ? props.children.props : null;
33
+ const prefix = menuType === "ContextMenu" ? "ContextMenuTrigger" : "MenuTrigger";
34
+ const detail = childProps?.testID ?? childProps?.accessibilityLabel ?? (typeof props.textValue === "string" ? props.textValue : null);
35
+ return [prefix, detail].filter(Boolean).join(":") || prefix;
36
+ }
37
+ const emptyStub = () => null;
38
+ function createWebStubs() {
39
+ return {
40
+ Menu: withStaticProperties(emptyStub, {
41
+ Trigger: emptyStub,
42
+ Content: emptyStub,
43
+ Item: emptyStub,
44
+ ItemTitle: emptyStub,
45
+ ItemSubtitle: emptyStub,
46
+ SubTrigger: emptyStub,
47
+ Group: emptyStub,
48
+ ItemIcon: emptyStub,
49
+ Separator: emptyStub,
50
+ CheckboxItem: emptyStub,
51
+ ItemIndicator: emptyStub,
52
+ ItemImage: emptyStub,
53
+ Label: emptyStub,
54
+ Arrow: emptyStub,
55
+ Sub: emptyStub,
56
+ SubContent: emptyStub,
57
+ Preview: emptyStub,
58
+ Portal: emptyStub,
59
+ RadioGroup: emptyStub,
60
+ RadioItem: emptyStub,
61
+ Auxiliary: emptyStub
62
+ })
34
63
  };
35
- const {
36
- DropdownMenu: ZeegoDropdownMenu,
37
- ContextMenu: ZeegoContextMenu
38
- } = zeego.state,
39
- isContextMenu = MenuType === "ContextMenu",
40
- ZeegoMenu = isContextMenu ? ZeegoContextMenu : ZeegoDropdownMenu,
41
- COMPONENT_MAP = {
42
- SubContent: ZeegoMenu.SubContent,
43
- Content: ZeegoMenu.Content,
44
- Sub: ZeegoMenu.Sub,
45
- Group: ZeegoMenu.Group,
46
- SubTrigger: ZeegoMenu.SubTrigger
47
- },
48
- CONTAINER_TYPES = ["SubContent", "Content", "Sub", "Group"],
49
- getComponentType = displayName => {
50
- for (const type of ["SubContent", "SubTrigger", "Content", "Sub", "Group", "CheckboxItem"]) if (displayName === type || displayName.includes(`(${type})`)) return type;
64
+ }
65
+ const createNativeMenu = MenuType => {
66
+ if (isWeb) {
67
+ return createWebStubs();
68
+ }
69
+ const isContextMenu = MenuType === "ContextMenu";
70
+ const isAndroid = !isIos && !isWeb;
71
+ let resolved = null;
72
+ let warned = false;
73
+ function resolve() {
74
+ if (resolved) return resolved;
75
+ const zeego = getZeego();
76
+ if (!zeego.isEnabled) {
77
+ if (!warned) {
78
+ warned = true;
79
+ console.warn(`Warning: Must call import '@tamagui/native/setup-zeego' at your app entry point to use native menus`);
80
+ }
51
81
  return null;
52
- },
53
- isItemLike = (props, displayName) => getComponentType(displayName) ? !1 : "onSelect" in props || "textValue" in props,
54
- isPortal = displayName => displayName === "Portal" || displayName.includes("Portal"),
55
- transformForZeego = (children, shouldReverseOnIos = !1) => {
56
- const result = [];
57
- return React.Children.forEach(children, child => {
58
- if (!React.isValidElement(child)) {
59
- result.push(child);
60
- return;
61
- }
62
- const displayName = child.type?.displayName || "",
63
- props = child.props;
64
- if (isPortal(displayName)) {
65
- const portalChildren = transformForZeego(props.children, !1);
66
- React.Children.forEach(portalChildren, c => result.push(c));
67
- return;
68
- }
69
- const componentType = getComponentType(displayName);
70
- if (componentType === "CheckboxItem") {
71
- const {
72
- checked,
73
- onCheckedChange,
74
- value,
75
- onValueChange,
76
- children: children2,
77
- ...rest
78
- } = props,
79
- finalValue = value ?? (checked ? "on" : "off"),
80
- finalOnValueChange = onValueChange ?? (onCheckedChange && (v => onCheckedChange(v === "on"))),
81
- cleanChildren = React.Children.map(children2, child2 => React.isValidElement(child2) && (child2.type?.displayName || "").includes("ItemIndicator") ? null : child2);
82
- result.push(React.createElement(ZeegoMenu.CheckboxItem, {
83
- ...rest,
84
- key: child.key,
85
- value: finalValue,
86
- onValueChange: finalOnValueChange
87
- }, cleanChildren));
88
- return;
89
- }
90
- if (componentType) {
91
- const {
92
- children: childChildren,
93
- ...restProps
94
- } = props,
95
- isContainer = CONTAINER_TYPES.includes(componentType),
96
- shouldReverseChildren = componentType === "Content" || componentType === "SubContent";
97
- result.push(React.createElement(COMPONENT_MAP[componentType], {
98
- ...restProps,
99
- key: child.key
100
- }, isContainer ? transformForZeego(childChildren, shouldReverseChildren) : childChildren));
101
- return;
102
- }
103
- if (isItemLike(props, displayName)) {
104
- const {
105
- children: itemChildren,
106
- ...itemProps
107
- } = props;
108
- result.push(React.createElement(ZeegoMenu.Item, {
109
- ...itemProps,
110
- key: child.key
111
- }, itemChildren));
112
- return;
113
- }
82
+ }
83
+ const menu = isContextMenu ? zeego.state.ContextMenu : zeego.state.DropdownMenu;
84
+ resolved = {
85
+ menu,
86
+ componentMap: {
87
+ SubContent: menu.SubContent,
88
+ Content: menu.Content,
89
+ Sub: menu.Sub,
90
+ Group: menu.Group,
91
+ SubTrigger: menu.SubTrigger
92
+ }
93
+ };
94
+ return resolved;
95
+ }
96
+ function transformChildren(menu, map, children, shouldReverseOnIos = false, triggerBoundaryHandlers, radioContext) {
97
+ const result = [];
98
+ React.Children.forEach(children, child => {
99
+ if (!React.isValidElement(child)) {
114
100
  result.push(child);
115
- }), isIos && shouldReverseOnIos && !isContextMenu && result.reverse(), result;
116
- },
117
- Trigger = ZeegoMenu.Trigger,
118
- Content = ZeegoMenu.Content,
119
- Item = ZeegoMenu.Item,
120
- ItemTitle = ZeegoMenu.ItemTitle,
121
- ItemSubtitle = ZeegoMenu.ItemSubtitle,
122
- ItemIcon = ZeegoMenu.ItemIcon,
123
- ItemImage = ZeegoMenu.ItemImage,
124
- ItemIndicator = ZeegoMenu.ItemIndicator,
125
- Group = ZeegoMenu.Group,
126
- Label = ZeegoMenu.Label,
127
- Separator = ZeegoMenu.Separator,
128
- Sub = ZeegoMenu.Sub,
129
- SubTrigger = ZeegoMenu.SubTrigger,
130
- SubContent = ZeegoMenu.SubContent,
131
- Portal = ({
132
- children
133
- }) => /* @__PURE__ */jsx(Fragment, {
134
- children
101
+ return;
102
+ }
103
+ const displayName = child.type?.displayName || "";
104
+ const props = child.props;
105
+ if (isPortalLike(displayName)) {
106
+ const inner = transformChildren(menu, map, props.children, false, triggerBoundaryHandlers, radioContext);
107
+ React.Children.forEach(inner, c => result.push(c));
108
+ return;
109
+ }
110
+ if (displayName.includes("ScrollView")) {
111
+ const inner = transformChildren(menu, map, props.children, false, triggerBoundaryHandlers, radioContext);
112
+ React.Children.forEach(inner, c => result.push(c));
113
+ return;
114
+ }
115
+ if (isTriggerLike(displayName)) {
116
+ const debugName = getTriggerDebugName(MenuType, props);
117
+ const claim = () => triggerBoundaryHandlers?.claim(debugName);
118
+ const release = () => triggerBoundaryHandlers?.release(debugName);
119
+ result.push(React.cloneElement(child, {
120
+ onTouchStart: composeHandlers(claim, props.onTouchStart),
121
+ onTouchEnd: composeHandlers(props.onTouchEnd, release),
122
+ onTouchCancel: composeHandlers(props.onTouchCancel, release),
123
+ onResponderGrant: composeHandlers(claim, props.onResponderGrant),
124
+ onResponderRelease: composeHandlers(props.onResponderRelease, release),
125
+ onResponderTerminate: composeHandlers(props.onResponderTerminate, release),
126
+ onPressIn: composeHandlers(claim, props.onPressIn),
127
+ onPressOut: composeHandlers(props.onPressOut, release)
128
+ }));
129
+ return;
130
+ }
131
+ if (displayName.includes("RadioGroup")) {
132
+ const {
133
+ value: rgValue,
134
+ onValueChange: rgOnValueChange,
135
+ children: rgChildren,
136
+ ...rest
137
+ } = props;
138
+ result.push(React.createElement(menu.Group, {
139
+ ...rest,
140
+ key: child.key
141
+ }, transformChildren(menu, map, rgChildren, false, triggerBoundaryHandlers, {
142
+ value: rgValue,
143
+ onValueChange: rgOnValueChange
144
+ })));
145
+ return;
146
+ }
147
+ if (displayName.includes("RadioItem") && radioContext) {
148
+ const {
149
+ value: itemValue,
150
+ children: rChildren,
151
+ ...rest
152
+ } = props;
153
+ const cleanChildren = React.Children.map(rChildren, c => {
154
+ if (!React.isValidElement(c)) return c;
155
+ const dn = c.type?.displayName || "";
156
+ if (dn.includes("ItemIndicator")) return null;
157
+ return c;
158
+ });
159
+ result.push(React.createElement(menu.CheckboxItem, {
160
+ ...rest,
161
+ key: child.key,
162
+ value: itemValue === radioContext.value ? "on" : "off",
163
+ onValueChange: () => radioContext.onValueChange?.(itemValue)
164
+ }, cleanChildren));
165
+ return;
166
+ }
167
+ const componentType = getComponentType(displayName);
168
+ if (componentType === "CheckboxItem") {
169
+ const {
170
+ checked,
171
+ onCheckedChange,
172
+ value,
173
+ onValueChange,
174
+ children: cbChildren,
175
+ ...rest
176
+ } = props;
177
+ const finalValue = value ?? (checked ? "on" : "off");
178
+ const finalOnValueChange = onValueChange ?? (onCheckedChange && (v => onCheckedChange(v === "on")));
179
+ const cleanChildren = React.Children.map(cbChildren, c => {
180
+ if (!React.isValidElement(c)) return c;
181
+ const dn = c.type?.displayName || "";
182
+ if (dn.includes("ItemIndicator")) return null;
183
+ return c;
184
+ });
185
+ result.push(React.createElement(menu.CheckboxItem, {
186
+ ...rest,
187
+ key: child.key,
188
+ value: finalValue,
189
+ onValueChange: finalOnValueChange
190
+ }, cleanChildren));
191
+ return;
192
+ }
193
+ if (componentType) {
194
+ const {
195
+ children: childChildren,
196
+ ...restProps
197
+ } = props;
198
+ const isContainer = CONTAINER_TYPES.includes(componentType);
199
+ const shouldReverse = componentType === "Content" || componentType === "SubContent";
200
+ result.push(React.createElement(map[componentType], {
201
+ ...restProps,
202
+ key: child.key
203
+ }, isContainer ? transformChildren(menu, map, childChildren, shouldReverse, triggerBoundaryHandlers, radioContext) : childChildren));
204
+ return;
205
+ }
206
+ if (isItemLike(props, displayName)) {
207
+ const {
208
+ children: itemChildren,
209
+ ...itemProps
210
+ } = props;
211
+ result.push(React.createElement(menu.Item, {
212
+ ...itemProps,
213
+ key: child.key
214
+ }, itemChildren));
215
+ return;
216
+ }
217
+ result.push(child);
135
218
  });
219
+ if (isIos && shouldReverseOnIos && !isContextMenu) {
220
+ result.reverse();
221
+ }
222
+ return result;
223
+ }
224
+ function lazyZeego(name, displayName) {
225
+ const Comp = props => {
226
+ const z = resolve();
227
+ if (!z) return null;
228
+ return React.createElement(z.menu[name], props);
229
+ };
230
+ Comp.displayName = displayName || name;
231
+ return Comp;
232
+ }
233
+ const Trigger = lazyZeego("Trigger");
234
+ const Content = lazyZeego("Content");
235
+ const Item = lazyZeego("Item");
236
+ const ItemTitle = lazyZeego("ItemTitle");
237
+ const ItemSubtitle = lazyZeego("ItemSubtitle");
238
+ const ItemIcon = lazyZeego("ItemIcon");
239
+ const ItemImage = lazyZeego("ItemImage");
240
+ const ItemIndicator = lazyZeego("ItemIndicator");
241
+ const Group = lazyZeego("Group");
242
+ const Label = lazyZeego("Label");
243
+ const Separator = lazyZeego("Separator");
244
+ const Sub = lazyZeego("Sub");
245
+ const SubTrigger = lazyZeego("SubTrigger");
246
+ const SubContent = lazyZeego("SubContent");
247
+ const Portal = ({
248
+ children
249
+ }) => /* @__PURE__ */jsx(Fragment, {
250
+ children
251
+ });
136
252
  Portal.displayName = "Portal";
137
253
  const Arrow = () => null;
138
254
  Arrow.displayName = "Arrow";
@@ -148,26 +264,67 @@ const createNativeMenu = MenuType => {
148
264
  children
149
265
  });
150
266
  RadioItem.displayName = `${MenuType}RadioItem`;
151
- const CheckboxItem = props => null;
267
+ const CheckboxItem = () => null;
152
268
  CheckboxItem.displayName = "CheckboxItem";
153
- const Preview = isContextMenu ? ZeegoContextMenu.Preview : () => null;
269
+ const Preview = isContextMenu ? lazyZeego("Preview", `${MenuType}Preview`) : () => null;
154
270
  Preview.displayName = `${MenuType}Preview`;
155
- const Auxiliary = isContextMenu ? ZeegoContextMenu.Auxiliary : () => null;
271
+ const Auxiliary = isContextMenu ? lazyZeego("Auxiliary", `${MenuType}Auxiliary`) : () => null;
156
272
  Auxiliary.displayName = `${MenuType}Auxiliary`;
157
273
  const Menu = ({
158
274
  children,
159
275
  onOpenChange,
160
276
  onOpenWillChange
161
277
  }) => {
278
+ const triggerOwnerRef = React.useRef(null);
279
+ const claimTriggerBoundary = React.useCallback(debugName => {
280
+ if (triggerOwnerRef.current) {
281
+ unstable_releaseExternalPressOwnership(triggerOwnerRef.current, debugName);
282
+ }
283
+ triggerOwnerRef.current = unstable_claimExternalPressOwnership(debugName);
284
+ }, []);
285
+ const releaseTriggerBoundary = React.useCallback(debugName => {
286
+ if (!triggerOwnerRef.current) return;
287
+ unstable_releaseExternalPressOwnership(triggerOwnerRef.current, debugName);
288
+ triggerOwnerRef.current = null;
289
+ }, []);
290
+ React.useEffect(() => releaseTriggerBoundary, [releaseTriggerBoundary]);
291
+ const z = resolve();
292
+ if (!z) return null;
293
+ const handleOpenChange = React.useCallback(isOpen => {
294
+ if (!isOpen) {
295
+ releaseTriggerBoundary();
296
+ }
297
+ onOpenChange?.(isOpen);
298
+ }, [onOpenChange, releaseTriggerBoundary]);
299
+ const handleOpenWillChange = React.useCallback(willOpen => {
300
+ if (!willOpen) {
301
+ releaseTriggerBoundary();
302
+ }
303
+ onOpenWillChange?.(willOpen);
304
+ }, [onOpenWillChange, releaseTriggerBoundary]);
162
305
  const rootProps = {
163
- onOpenChange
306
+ onOpenChange: handleOpenChange
164
307
  };
165
- return isContextMenu && onOpenWillChange && (rootProps.onOpenWillChange = onOpenWillChange), /* @__PURE__ */jsx(ZeegoMenu.Root, {
308
+ if (isContextMenu && onOpenWillChange) {
309
+ rootProps.onOpenWillChange = handleOpenWillChange;
310
+ }
311
+ const content = /* @__PURE__ */jsx(z.menu.Root, {
166
312
  ...rootProps,
167
- children: transformForZeego(children)
313
+ children: transformChildren(z.menu, z.componentMap, children, false, {
314
+ claim: claimTriggerBoundary,
315
+ release: releaseTriggerBoundary
316
+ })
168
317
  });
318
+ if (isAndroid) {
319
+ return /* @__PURE__ */jsx(NativeMenuContext.Provider, {
320
+ value: true,
321
+ children: content
322
+ });
323
+ }
324
+ return content;
169
325
  };
170
- return Menu.displayName = MenuType, {
326
+ Menu.displayName = MenuType;
327
+ return {
171
328
  Menu: withStaticProperties(Menu, {
172
329
  Trigger,
173
330
  Content,
@@ -1 +1 @@
1
- {"version":3,"names":["getZeego","isWeb","withStaticProperties","isIos","React","Fragment","jsx","createNativeMenu","MenuType","Menu","Trigger","Content","Item","ItemTitle","ItemSubtitle","SubTrigger","Group","ItemIcon","Separator","CheckboxItem","ItemIndicator","ItemImage","Label","Arrow","Sub","SubContent","Preview","Portal","RadioGroup","RadioItem","Auxiliary","zeego","isEnabled","console","warn","DropdownMenu","ZeegoDropdownMenu","ContextMenu","ZeegoContextMenu","state","isContextMenu","ZeegoMenu","COMPONENT_MAP","CONTAINER_TYPES","getComponentType","displayName","type","includes","isItemLike","props","isPortal","transformForZeego","children","shouldReverseOnIos","result","Children","forEach","child","isValidElement","push","portalChildren","c","componentType","checked","onCheckedChange","value","onValueChange","children2","rest","finalValue","finalOnValueChange","v","cleanChildren","map","child2","createElement","key","childChildren","restProps","isContainer","shouldReverseChildren","itemChildren","itemProps","reverse","onOpenChange","onOpenWillChange","rootProps","Root"],"sources":["../../../src/createNativeMenu/createNativeMenu.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getZeego","NativeMenuContext","unstable_claimExternalPressOwnership","unstable_releaseExternalPressOwnership","isWeb","withStaticProperties","isIos","React","Fragment","jsx","MAPPED_TYPES","CONTAINER_TYPES","getComponentType","displayName","type","includes","isItemLike","props","isPortalLike","isTriggerLike","composeHandlers","first","second","args","getTriggerDebugName","menuType","childProps","isValidElement","children","prefix","detail","testID","accessibilityLabel","textValue","filter","Boolean","join","emptyStub","createWebStubs","Menu","Trigger","Content","Item","ItemTitle","ItemSubtitle","SubTrigger","Group","ItemIcon","Separator","CheckboxItem","ItemIndicator","ItemImage","Label","Arrow","Sub","SubContent","Preview","Portal","RadioGroup","RadioItem","Auxiliary","createNativeMenu","MenuType","isContextMenu","isAndroid","resolved","warned","resolve","zeego","isEnabled","console","warn","menu","state","ContextMenu","DropdownMenu","componentMap","transformChildren","map","shouldReverseOnIos","triggerBoundaryHandlers","radioContext","result","Children","forEach","child","push","inner","c","debugName","claim","release","cloneElement","onTouchStart","onTouchEnd","onTouchCancel","onResponderGrant","onResponderRelease","onResponderTerminate","onPressIn","onPressOut","value","rgValue","onValueChange","rgOnValueChange","rgChildren","rest","createElement","key","itemValue","rChildren","cleanChildren","dn","componentType","checked","onCheckedChange","cbChildren","finalValue","finalOnValueChange","v","childChildren","restProps","isContainer","shouldReverse","itemChildren","itemProps","reverse","lazyZeego","name","Comp","z","onOpenChange","onOpenWillChange","triggerOwnerRef","useRef","claimTriggerBoundary","useCallback","current","releaseTriggerBoundary","useEffect","handleOpenChange","isOpen","handleOpenWillChange","willOpen","rootProps","content","Root","Provider"],"sources":["../../../src/createNativeMenu/createNativeMenu.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}