@tamagui/create-menu 2.7.7 → 3.0.0-beta.643.1

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 (113) hide show
  1. package/dist/cjs/createBaseMenu.cjs +1033 -1247
  2. package/dist/cjs/createBaseMenu.native.cjs +1217 -0
  3. package/dist/cjs/createBaseMenu.native.js +1155 -1387
  4. package/dist/cjs/createBaseMenu.native.js.map +1 -1
  5. package/dist/cjs/createNativeMenu/createNativeMenu.cjs +346 -377
  6. package/dist/cjs/createNativeMenu/createNativeMenu.native.cjs +439 -0
  7. package/dist/cjs/createNativeMenu/createNativeMenu.native.js +405 -439
  8. package/dist/cjs/createNativeMenu/createNativeMenu.native.js.map +1 -1
  9. package/dist/cjs/createNativeMenu/createNativeMenuTypes.cjs +10 -11
  10. package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.cjs +19 -0
  11. package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js +10 -10
  12. package/dist/cjs/createNativeMenu/createNativeMenuTypes.native.js.map +1 -1
  13. package/dist/cjs/createNativeMenu/utils.cjs +76 -86
  14. package/dist/cjs/createNativeMenu/utils.native.cjs +107 -0
  15. package/dist/cjs/createNativeMenu/utils.native.js +82 -92
  16. package/dist/cjs/createNativeMenu/utils.native.js.map +1 -1
  17. package/dist/cjs/createNativeMenu/withNativeMenu.cjs +27 -35
  18. package/dist/cjs/createNativeMenu/withNativeMenu.native.cjs +42 -0
  19. package/dist/cjs/createNativeMenu/withNativeMenu.native.js +27 -34
  20. package/dist/cjs/createNativeMenu/withNativeMenu.native.js.map +1 -1
  21. package/dist/cjs/index.cjs +9 -20
  22. package/dist/cjs/index.native.cjs +23 -0
  23. package/dist/cjs/index.native.js +10 -20
  24. package/dist/cjs/index.native.js.map +1 -1
  25. package/dist/esm/createBaseMenu.mjs +1021 -1225
  26. package/dist/esm/createBaseMenu.mjs.map +1 -1
  27. package/dist/esm/createBaseMenu.native.js +1144 -1367
  28. package/dist/esm/createBaseMenu.native.js.map +1 -1
  29. package/dist/esm/createNativeMenu/createNativeMenu.mjs +332 -353
  30. package/dist/esm/createNativeMenu/createNativeMenu.mjs.map +1 -1
  31. package/dist/esm/createNativeMenu/createNativeMenu.native.js +392 -417
  32. package/dist/esm/createNativeMenu/createNativeMenu.native.js.map +1 -1
  33. package/dist/esm/createNativeMenu/createNativeMenuTypes.mjs +0 -2
  34. package/dist/esm/createNativeMenu/createNativeMenuTypes.native.js +0 -2
  35. package/dist/esm/createNativeMenu/utils.mjs +55 -57
  36. package/dist/esm/createNativeMenu/utils.mjs.map +1 -1
  37. package/dist/esm/createNativeMenu/utils.native.js +62 -65
  38. package/dist/esm/createNativeMenu/utils.native.js.map +1 -1
  39. package/dist/esm/createNativeMenu/withNativeMenu.mjs +14 -17
  40. package/dist/esm/createNativeMenu/withNativeMenu.mjs.map +1 -1
  41. package/dist/esm/createNativeMenu/withNativeMenu.native.js +15 -18
  42. package/dist/esm/createNativeMenu/withNativeMenu.native.js.map +1 -1
  43. package/dist/esm/index.js +5 -6
  44. package/dist/esm/index.mjs +5 -6
  45. package/dist/esm/index.native.js +5 -6
  46. package/dist/jsx/createBaseMenu.mjs +1021 -1225
  47. package/dist/jsx/createBaseMenu.mjs.map +1 -1
  48. package/dist/jsx/createBaseMenu.native.cjs +1217 -0
  49. package/dist/jsx/createBaseMenu.native.js +1155 -1387
  50. package/dist/jsx/createBaseMenu.native.js.map +1 -1
  51. package/dist/jsx/createNativeMenu/createNativeMenu.mjs +332 -353
  52. package/dist/jsx/createNativeMenu/createNativeMenu.mjs.map +1 -1
  53. package/dist/jsx/createNativeMenu/createNativeMenu.native.cjs +439 -0
  54. package/dist/jsx/createNativeMenu/createNativeMenu.native.js +405 -439
  55. package/dist/jsx/createNativeMenu/createNativeMenu.native.js.map +1 -1
  56. package/dist/jsx/createNativeMenu/createNativeMenuTypes.mjs +0 -2
  57. package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.cjs +19 -0
  58. package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js +10 -10
  59. package/dist/jsx/createNativeMenu/createNativeMenuTypes.native.js.map +1 -1
  60. package/dist/jsx/createNativeMenu/utils.mjs +55 -57
  61. package/dist/jsx/createNativeMenu/utils.mjs.map +1 -1
  62. package/dist/jsx/createNativeMenu/utils.native.cjs +107 -0
  63. package/dist/jsx/createNativeMenu/utils.native.js +82 -92
  64. package/dist/jsx/createNativeMenu/utils.native.js.map +1 -1
  65. package/dist/jsx/createNativeMenu/withNativeMenu.mjs +14 -17
  66. package/dist/jsx/createNativeMenu/withNativeMenu.mjs.map +1 -1
  67. package/dist/jsx/createNativeMenu/withNativeMenu.native.cjs +42 -0
  68. package/dist/jsx/createNativeMenu/withNativeMenu.native.js +27 -34
  69. package/dist/jsx/createNativeMenu/withNativeMenu.native.js.map +1 -1
  70. package/dist/jsx/index.js +5 -6
  71. package/dist/jsx/index.mjs +5 -6
  72. package/dist/jsx/index.native.cjs +23 -0
  73. package/dist/jsx/index.native.js +10 -20
  74. package/dist/jsx/index.native.js.map +1 -1
  75. package/package.json +23 -22
  76. package/src/createBaseMenu.tsx +211 -231
  77. package/src/createNativeMenu/createNativeMenuTypes.ts +0 -6
  78. package/src/createNativeMenu/utils.tsx +6 -6
  79. package/src/createNativeMenu/withNativeMenu.tsx +1 -2
  80. package/src/index.tsx +0 -1
  81. package/types/createBaseMenu.d.ts +38 -126
  82. package/types/createBaseMenu.d.ts.map +1 -1
  83. package/types/createNativeMenu/createNativeMenu.d.ts +1 -1
  84. package/types/createNativeMenu/createNativeMenu.d.ts.map +1 -1
  85. package/types/createNativeMenu/createNativeMenuTypes.d.ts +0 -6
  86. package/types/createNativeMenu/createNativeMenuTypes.d.ts.map +1 -1
  87. package/types/createNativeMenu/utils.d.ts +5 -5
  88. package/types/createNativeMenu/utils.d.ts.map +1 -1
  89. package/types/createNativeMenu/withNativeMenu.d.ts.map +1 -1
  90. package/types/index.d.ts +0 -1
  91. package/types/index.d.ts.map +1 -1
  92. package/dist/cjs/MenuPredefined.cjs +0 -191
  93. package/dist/cjs/MenuPredefined.native.js +0 -194
  94. package/dist/cjs/MenuPredefined.native.js.map +0 -1
  95. package/dist/esm/MenuPredefined.mjs +0 -166
  96. package/dist/esm/MenuPredefined.mjs.map +0 -1
  97. package/dist/esm/MenuPredefined.native.js +0 -166
  98. package/dist/esm/MenuPredefined.native.js.map +0 -1
  99. package/dist/esm/createNativeMenu/createNativeMenuTypes.mjs.map +0 -1
  100. package/dist/esm/createNativeMenu/createNativeMenuTypes.native.js.map +0 -1
  101. package/dist/esm/index.js.map +0 -1
  102. package/dist/esm/index.mjs.map +0 -1
  103. package/dist/esm/index.native.js.map +0 -1
  104. package/dist/jsx/MenuPredefined.mjs +0 -166
  105. package/dist/jsx/MenuPredefined.mjs.map +0 -1
  106. package/dist/jsx/MenuPredefined.native.js +0 -194
  107. package/dist/jsx/MenuPredefined.native.js.map +0 -1
  108. package/dist/jsx/createNativeMenu/createNativeMenuTypes.mjs.map +0 -1
  109. package/dist/jsx/index.js.map +0 -1
  110. package/dist/jsx/index.mjs.map +0 -1
  111. package/src/MenuPredefined.tsx +0 -204
  112. package/types/MenuPredefined.d.ts +0 -31
  113. package/types/MenuPredefined.d.ts.map +0 -1
@@ -0,0 +1,439 @@
1
+ "use strict";
2
+
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
28
+ }) : target, mod));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var createNativeMenu_exports = {};
31
+ __export(createNativeMenu_exports, { createNativeMenu: () => createNativeMenu });
32
+ module.exports = __toCommonJS(createNativeMenu_exports);
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_native = require("@tamagui/native");
35
+ var import_web = require("@tamagui/web");
36
+ var import_react = __toESM(require("react"), 1);
37
+ var MAPPED_TYPES = [
38
+ "SubContent",
39
+ "SubTrigger",
40
+ "Content",
41
+ "Sub",
42
+ "Group",
43
+ "Item",
44
+ "ItemTitle",
45
+ "ItemSubtitle",
46
+ "ItemIcon",
47
+ "ItemImage",
48
+ "ItemIndicator",
49
+ "Label",
50
+ "Separator",
51
+ "CheckboxItem",
52
+ "Preview",
53
+ "Auxiliary"
54
+ ];
55
+ var CONTAINER_TYPES = [
56
+ "SubContent",
57
+ "SubTrigger",
58
+ "Content",
59
+ "Sub",
60
+ "Group",
61
+ "Item"
62
+ ];
63
+ function getComponentType(displayName) {
64
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
65
+ try {
66
+ for (var _iterator = MAPPED_TYPES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
67
+ var type = _step.value;
68
+ if (displayName === type || displayName === `Menu${type}` || displayName === `ContextMenu${type}` || displayName.includes(`(${type})`)) {
69
+ return type;
70
+ }
71
+ }
72
+ } catch (err) {
73
+ _didIteratorError = true;
74
+ _iteratorError = err;
75
+ } finally {
76
+ try {
77
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
78
+ _iterator.return();
79
+ }
80
+ } finally {
81
+ if (_didIteratorError) {
82
+ throw _iteratorError;
83
+ }
84
+ }
85
+ }
86
+ return null;
87
+ }
88
+ function isItemLike(props, displayName) {
89
+ if (getComponentType(displayName)) return false;
90
+ return "onSelect" in props || "textValue" in props;
91
+ }
92
+ function isPortalLike(displayName) {
93
+ return displayName === "Portal" || displayName.includes("Portal");
94
+ }
95
+ function isTriggerLike(displayName) {
96
+ return displayName === "Trigger" || displayName.includes("(Trigger)");
97
+ }
98
+ function composeHandlers(first, second) {
99
+ return function() {
100
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
101
+ args[_key] = arguments[_key];
102
+ }
103
+ first === null || first === void 0 ? void 0 : first(...args);
104
+ second === null || second === void 0 ? void 0 : second(...args);
105
+ };
106
+ }
107
+ function getTriggerDebugName(menuType, props) {
108
+ var childProps = /* @__PURE__ */ import_react.default.isValidElement(props.children) && props.children.props ? props.children.props : null;
109
+ var prefix = menuType === "ContextMenu" ? "ContextMenuTrigger" : "MenuTrigger";
110
+ var _childProps_testID, _ref;
111
+ var detail = (_ref = (_childProps_testID = childProps === null || childProps === void 0 ? void 0 : childProps.testID) !== null && _childProps_testID !== void 0 ? _childProps_testID : childProps === null || childProps === void 0 ? void 0 : childProps.accessibilityLabel) !== null && _ref !== void 0 ? _ref : typeof props.textValue === "string" ? props.textValue : null;
112
+ return [prefix, detail].filter(Boolean).join(":") || prefix;
113
+ }
114
+ var emptyStub = function() {
115
+ return null;
116
+ };
117
+ function createWebStubs() {
118
+ return { Menu: (0, import_web.withStaticProperties)(emptyStub, {
119
+ Trigger: emptyStub,
120
+ Content: emptyStub,
121
+ Item: emptyStub,
122
+ ItemTitle: emptyStub,
123
+ ItemSubtitle: emptyStub,
124
+ SubTrigger: emptyStub,
125
+ Group: emptyStub,
126
+ ItemIcon: emptyStub,
127
+ Separator: emptyStub,
128
+ CheckboxItem: emptyStub,
129
+ ItemIndicator: emptyStub,
130
+ ItemImage: emptyStub,
131
+ Label: emptyStub,
132
+ Arrow: emptyStub,
133
+ Sub: emptyStub,
134
+ SubContent: emptyStub,
135
+ Preview: emptyStub,
136
+ Portal: emptyStub,
137
+ RadioGroup: emptyStub,
138
+ RadioItem: emptyStub,
139
+ Auxiliary: emptyStub
140
+ }) };
141
+ }
142
+ var createNativeMenu = function(MenuType) {
143
+ if (import_web.isWeb) {
144
+ return createWebStubs();
145
+ }
146
+ var isContextMenu = MenuType === "ContextMenu";
147
+ var isAndroid = !import_web.isIos && !import_web.isWeb;
148
+ var resolved = null;
149
+ var warned = false;
150
+ function resolve() {
151
+ if (resolved) return resolved;
152
+ var adapter = (0, import_native.getNativeMenuAdapter)();
153
+ if (!adapter) {
154
+ if (!warned) {
155
+ warned = true;
156
+ console.warn(`Warning: Register a native menu adapter before rendering Tamagui native menus`);
157
+ }
158
+ return null;
159
+ }
160
+ var menu = isContextMenu ? adapter.ContextMenu : adapter.Menu;
161
+ resolved = {
162
+ menu,
163
+ componentMap: {
164
+ SubContent: menu.SubContent,
165
+ SubTrigger: menu.SubTrigger,
166
+ Content: menu.Content,
167
+ Sub: menu.Sub,
168
+ Group: menu.Group,
169
+ Item: menu.Item,
170
+ ItemTitle: menu.ItemTitle,
171
+ ItemSubtitle: menu.ItemSubtitle,
172
+ ItemIcon: menu.ItemIcon,
173
+ ItemImage: menu.ItemImage,
174
+ ItemIndicator: menu.ItemIndicator,
175
+ Label: menu.Label,
176
+ Separator: menu.Separator,
177
+ CheckboxItem: menu.CheckboxItem,
178
+ Preview: menu.Preview,
179
+ Auxiliary: menu.Auxiliary
180
+ }
181
+ };
182
+ return resolved;
183
+ }
184
+ function transformChildren(menu, map, children) {
185
+ var shouldReverseOnIos = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, triggerBoundaryHandlers = arguments.length > 4 ? arguments[4] : void 0, radioContext = arguments.length > 5 ? arguments[5] : void 0;
186
+ var result = [];
187
+ import_react.default.Children.forEach(children, function(child) {
188
+ var _child_type;
189
+ if (!/* @__PURE__ */ import_react.default.isValidElement(child)) {
190
+ result.push(child);
191
+ return;
192
+ }
193
+ var displayName = ((_child_type = child.type) === null || _child_type === void 0 ? void 0 : _child_type.displayName) || "";
194
+ var props = child.props;
195
+ if (isPortalLike(displayName)) {
196
+ var inner = transformChildren(menu, map, props.children, false, triggerBoundaryHandlers, radioContext);
197
+ import_react.default.Children.forEach(inner, function(c) {
198
+ return result.push(c);
199
+ });
200
+ return;
201
+ }
202
+ if (displayName.includes("ScrollView")) {
203
+ var inner1 = transformChildren(menu, map, props.children, false, triggerBoundaryHandlers, radioContext);
204
+ import_react.default.Children.forEach(inner1, function(c) {
205
+ return result.push(c);
206
+ });
207
+ return;
208
+ }
209
+ if (isTriggerLike(displayName)) {
210
+ var debugName = getTriggerDebugName(MenuType, props);
211
+ var claim = function() {
212
+ return triggerBoundaryHandlers === null || triggerBoundaryHandlers === void 0 ? void 0 : triggerBoundaryHandlers.claim(debugName);
213
+ };
214
+ var release = function() {
215
+ return triggerBoundaryHandlers === null || triggerBoundaryHandlers === void 0 ? void 0 : triggerBoundaryHandlers.release(debugName);
216
+ };
217
+ var { children: triggerChildren, ...triggerProps } = props;
218
+ result.push(/* @__PURE__ */ import_react.default.createElement(menu.Trigger, {
219
+ ...triggerProps,
220
+ key: child.key,
221
+ onTouchStart: composeHandlers(claim, props.onTouchStart),
222
+ onTouchEnd: composeHandlers(props.onTouchEnd, release),
223
+ onTouchCancel: composeHandlers(props.onTouchCancel, release),
224
+ onResponderGrant: composeHandlers(claim, props.onResponderGrant),
225
+ onResponderRelease: composeHandlers(props.onResponderRelease, release),
226
+ onResponderTerminate: composeHandlers(props.onResponderTerminate, release),
227
+ onPressIn: composeHandlers(claim, props.onPressIn),
228
+ onPressOut: composeHandlers(props.onPressOut, release)
229
+ }, triggerChildren));
230
+ return;
231
+ }
232
+ if (displayName.includes("RadioGroup")) {
233
+ var { value: rgValue, onValueChange: rgOnValueChange, children: rgChildren, ...rest } = props;
234
+ result.push(/* @__PURE__ */ import_react.default.createElement(menu.Group, {
235
+ ...rest,
236
+ key: child.key
237
+ }, transformChildren(menu, map, rgChildren, false, triggerBoundaryHandlers, {
238
+ value: rgValue,
239
+ onValueChange: rgOnValueChange
240
+ })));
241
+ return;
242
+ }
243
+ if (displayName.includes("RadioItem") && radioContext) {
244
+ var { value: itemValue, children: rChildren, ...rest1 } = props;
245
+ var cleanChildren = import_react.default.Children.map(rChildren, function(c) {
246
+ var _c_type;
247
+ if (!/* @__PURE__ */ import_react.default.isValidElement(c)) return c;
248
+ var dn = ((_c_type = c.type) === null || _c_type === void 0 ? void 0 : _c_type.displayName) || "";
249
+ if (dn.includes("ItemIndicator")) return null;
250
+ return c;
251
+ });
252
+ result.push(/* @__PURE__ */ import_react.default.createElement(menu.CheckboxItem, {
253
+ ...rest1,
254
+ key: child.key,
255
+ value: itemValue === radioContext.value ? "on" : "off",
256
+ onValueChange: function() {
257
+ var _radioContext_onValueChange;
258
+ return (_radioContext_onValueChange = radioContext.onValueChange) === null || _radioContext_onValueChange === void 0 ? void 0 : _radioContext_onValueChange.call(radioContext, itemValue);
259
+ }
260
+ }, transformChildren(menu, map, cleanChildren, false, triggerBoundaryHandlers, radioContext)));
261
+ return;
262
+ }
263
+ var componentType = getComponentType(displayName);
264
+ if (componentType === "CheckboxItem") {
265
+ var { checked, onCheckedChange, value, onValueChange, children: cbChildren, ...rest2 } = props;
266
+ var finalValue = value !== null && value !== void 0 ? value : checked ? "on" : "off";
267
+ var finalOnValueChange = onValueChange !== null && onValueChange !== void 0 ? onValueChange : onCheckedChange && function(v) {
268
+ return onCheckedChange(v === "on");
269
+ };
270
+ var cleanChildren1 = import_react.default.Children.map(cbChildren, function(c) {
271
+ var _c_type;
272
+ if (!/* @__PURE__ */ import_react.default.isValidElement(c)) return c;
273
+ var dn = ((_c_type = c.type) === null || _c_type === void 0 ? void 0 : _c_type.displayName) || "";
274
+ if (dn.includes("ItemIndicator")) return null;
275
+ return c;
276
+ });
277
+ result.push(/* @__PURE__ */ import_react.default.createElement(menu.CheckboxItem, {
278
+ ...rest2,
279
+ key: child.key,
280
+ value: finalValue,
281
+ onValueChange: finalOnValueChange
282
+ }, transformChildren(menu, map, cleanChildren1, false, triggerBoundaryHandlers, radioContext)));
283
+ return;
284
+ }
285
+ if (componentType) {
286
+ var { children: childChildren, ...restProps } = props;
287
+ var AdapterComponent = map[componentType];
288
+ var isContainer = CONTAINER_TYPES.includes(componentType);
289
+ var shouldReverse = componentType === "Content" || componentType === "SubContent";
290
+ result.push(/* @__PURE__ */ import_react.default.createElement(AdapterComponent, {
291
+ ...restProps,
292
+ key: child.key
293
+ }, isContainer ? transformChildren(menu, map, childChildren, shouldReverse, triggerBoundaryHandlers, radioContext) : childChildren));
294
+ return;
295
+ }
296
+ if (isItemLike(props, displayName)) {
297
+ var { children: itemChildren, ...itemProps } = props;
298
+ result.push(/* @__PURE__ */ import_react.default.createElement(menu.Item, {
299
+ ...itemProps,
300
+ key: child.key
301
+ }, transformChildren(menu, map, itemChildren, false, triggerBoundaryHandlers, radioContext)));
302
+ return;
303
+ }
304
+ result.push(child);
305
+ });
306
+ if (import_web.isIos && shouldReverseOnIos && !isContextMenu) {
307
+ result.reverse();
308
+ }
309
+ return result;
310
+ }
311
+ function lazyAdapter(name, displayName) {
312
+ var Comp = function(props) {
313
+ var z = resolve();
314
+ if (!z) return null;
315
+ return /* @__PURE__ */ import_react.default.createElement(z.menu[name], props);
316
+ };
317
+ Comp.displayName = displayName || name;
318
+ return Comp;
319
+ }
320
+ var Trigger = lazyAdapter("Trigger");
321
+ var Content = lazyAdapter("Content");
322
+ var Item = lazyAdapter("Item");
323
+ var ItemTitle = lazyAdapter("ItemTitle");
324
+ var ItemSubtitle = lazyAdapter("ItemSubtitle");
325
+ var ItemIcon = lazyAdapter("ItemIcon");
326
+ var ItemImage = lazyAdapter("ItemImage");
327
+ var ItemIndicator = lazyAdapter("ItemIndicator");
328
+ var Group = lazyAdapter("Group");
329
+ var Label = lazyAdapter("Label");
330
+ var Separator = lazyAdapter("Separator");
331
+ var Sub = lazyAdapter("Sub");
332
+ var SubTrigger = lazyAdapter("SubTrigger");
333
+ var SubContent = lazyAdapter("SubContent");
334
+ var Portal = function(param) {
335
+ var { children } = param;
336
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
337
+ };
338
+ Portal.displayName = "Portal";
339
+ var Arrow = function() {
340
+ return null;
341
+ };
342
+ Arrow.displayName = "Arrow";
343
+ var RadioGroup = function(param) {
344
+ var { children } = param;
345
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
346
+ };
347
+ RadioGroup.displayName = `${MenuType}RadioGroup`;
348
+ var RadioItem = function(param) {
349
+ var { children } = param;
350
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
351
+ };
352
+ RadioItem.displayName = `${MenuType}RadioItem`;
353
+ var CheckboxItem = function() {
354
+ return null;
355
+ };
356
+ CheckboxItem.displayName = "CheckboxItem";
357
+ var Preview = isContextMenu ? lazyAdapter("Preview", `${MenuType}Preview`) : function() {
358
+ return null;
359
+ };
360
+ Preview.displayName = `${MenuType}Preview`;
361
+ var Auxiliary = isContextMenu ? lazyAdapter("Auxiliary", `${MenuType}Auxiliary`) : function() {
362
+ return null;
363
+ };
364
+ Auxiliary.displayName = `${MenuType}Auxiliary`;
365
+ var Menu = function(param) {
366
+ var { children, onOpenChange, onOpenWillChange } = param;
367
+ var triggerOwnerRef = import_react.default.useRef(null);
368
+ var claimTriggerBoundary = import_react.default.useCallback(function(debugName) {
369
+ if (triggerOwnerRef.current) {
370
+ (0, import_native.unstable_releaseExternalPressOwnership)(triggerOwnerRef.current, debugName);
371
+ }
372
+ triggerOwnerRef.current = (0, import_native.unstable_claimExternalPressOwnership)(debugName);
373
+ }, []);
374
+ var releaseTriggerBoundary = import_react.default.useCallback(function(debugName) {
375
+ if (!triggerOwnerRef.current) return;
376
+ (0, import_native.unstable_releaseExternalPressOwnership)(triggerOwnerRef.current, debugName);
377
+ triggerOwnerRef.current = null;
378
+ }, []);
379
+ import_react.default.useEffect(function() {
380
+ return releaseTriggerBoundary;
381
+ }, [releaseTriggerBoundary]);
382
+ var z = resolve();
383
+ if (!z) return null;
384
+ var handleOpenChange = import_react.default.useCallback(function(isOpen) {
385
+ if (!isOpen) {
386
+ releaseTriggerBoundary();
387
+ }
388
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(isOpen);
389
+ }, [onOpenChange, releaseTriggerBoundary]);
390
+ var handleOpenWillChange = import_react.default.useCallback(function(willOpen) {
391
+ if (!willOpen) {
392
+ releaseTriggerBoundary();
393
+ }
394
+ onOpenWillChange === null || onOpenWillChange === void 0 ? void 0 : onOpenWillChange(willOpen);
395
+ }, [onOpenWillChange, releaseTriggerBoundary]);
396
+ var rootProps = { onOpenChange: handleOpenChange };
397
+ if (isContextMenu && onOpenWillChange) {
398
+ rootProps.onOpenWillChange = handleOpenWillChange;
399
+ }
400
+ var content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(z.menu.Root, {
401
+ ...rootProps,
402
+ children: transformChildren(z.menu, z.componentMap, children, false, {
403
+ claim: claimTriggerBoundary,
404
+ release: releaseTriggerBoundary
405
+ })
406
+ });
407
+ if (isAndroid) {
408
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_native.NativeMenuContext.Provider, {
409
+ value: true,
410
+ children: content
411
+ });
412
+ }
413
+ return content;
414
+ };
415
+ Menu.displayName = MenuType;
416
+ return { Menu: (0, import_web.withStaticProperties)(Menu, {
417
+ Trigger,
418
+ Content,
419
+ Item,
420
+ ItemTitle,
421
+ ItemSubtitle,
422
+ ItemIcon,
423
+ ItemImage,
424
+ ItemIndicator,
425
+ Group,
426
+ Label,
427
+ Separator,
428
+ Sub,
429
+ SubTrigger,
430
+ SubContent,
431
+ CheckboxItem,
432
+ Portal,
433
+ RadioGroup,
434
+ RadioItem,
435
+ Arrow,
436
+ Preview,
437
+ Auxiliary
438
+ }) };
439
+ };