tamagui 2.6.4 → 2.7.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.
package/dist/test.cjs CHANGED
@@ -178,15 +178,15 @@ var init_pseudoDescriptors_native = __esmMin((() => {
178
178
  }));
179
179
  //#endregion
180
180
  //#region ../../core/web/dist/esm/helpers/mergeProps.native.js
181
- function _type_of$16(obj) {
181
+ function _type_of$17(obj) {
182
182
  "@swc/helpers - typeof";
183
183
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
184
184
  }
185
185
  function mergeProp(out, defaultProps, props, key) {
186
186
  var val = props[key];
187
- if (defaultProps && key in defaultProps && (key in pseudoDescriptors || key[0] === "$") && val && (typeof val === "undefined" ? "undefined" : _type_of$16(val)) === "object") {
187
+ if (defaultProps && key in defaultProps && (key in pseudoDescriptors || key[0] === "$") && val && (typeof val === "undefined" ? "undefined" : _type_of$17(val)) === "object") {
188
188
  var defaultVal = defaultProps[key];
189
- if (defaultVal && (typeof defaultVal === "undefined" ? "undefined" : _type_of$16(defaultVal)) === "object") val = mergeProps(defaultVal, val);
189
+ if (defaultVal && (typeof defaultVal === "undefined" ? "undefined" : _type_of$17(defaultVal)) === "object") val = mergeProps(defaultVal, val);
190
190
  }
191
191
  out[key] = val;
192
192
  }
@@ -228,7 +228,7 @@ var init_mergeProps_native = __esmMin((() => {
228
228
  }));
229
229
  //#endregion
230
230
  //#region ../../core/web/dist/esm/helpers/objectIdentityKey.native.js
231
- function _type_of$15(obj) {
231
+ function _type_of$16(obj) {
232
232
  "@swc/helpers - typeof";
233
233
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
234
234
  }
@@ -237,7 +237,7 @@ function objectIdentityKey(obj) {
237
237
  for (var key in obj) {
238
238
  k += key;
239
239
  var arg = obj[key];
240
- var type = typeof arg === "undefined" ? "undefined" : _type_of$15(arg);
240
+ var type = typeof arg === "undefined" ? "undefined" : _type_of$16(arg);
241
241
  if (!arg || type !== "object" && type !== "function") k += type + arg;
242
242
  else if (cache$7.has(arg)) k += cache$7.get(arg);
243
243
  else {
@@ -12639,7 +12639,7 @@ function clamp(value, param) {
12639
12639
  var init_clamp_native = __esmMin((() => {}));
12640
12640
  //#endregion
12641
12641
  //#region ../../core/helpers/dist/esm/composeEventHandlers.native.js
12642
- function _type_of$14(obj) {
12642
+ function _type_of$15(obj) {
12643
12643
  "@swc/helpers - typeof";
12644
12644
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
12645
12645
  }
@@ -12648,7 +12648,7 @@ function composeEventHandlers(og, next) {
12648
12648
  if (!og || !next) return next || og || void 0;
12649
12649
  return function(event) {
12650
12650
  og === null || og === void 0 || og(event);
12651
- if (!event || !(checkDefaultPrevented && (typeof event === "undefined" ? "undefined" : _type_of$14(event)) === "object" && "defaultPrevented" in event) || "defaultPrevented" in event && !event.defaultPrevented) return next === null || next === void 0 ? void 0 : next(event);
12651
+ if (!event || !(checkDefaultPrevented && (typeof event === "undefined" ? "undefined" : _type_of$15(event)) === "object" && "defaultPrevented" in event) || "defaultPrevented" in event && !event.defaultPrevented) return next === null || next === void 0 ? void 0 : next(event);
12652
12652
  };
12653
12653
  }
12654
12654
  var init_composeEventHandlers_native = __esmMin((() => {}));
@@ -13085,7 +13085,7 @@ var init_index_native$5 = __esmMin((() => {
13085
13085
  }));
13086
13086
  //#endregion
13087
13087
  //#region ../../core/web/dist/esm/createVariable.native.js
13088
- function _type_of$13(obj) {
13088
+ function _type_of$14(obj) {
13089
13089
  "@swc/helpers - typeof";
13090
13090
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
13091
13091
  }
@@ -13098,7 +13098,7 @@ function variableToString(vrble) {
13098
13098
  return `${vrble || ""}`;
13099
13099
  }
13100
13100
  function isVariable(v) {
13101
- return v && (typeof v === "undefined" ? "undefined" : _type_of$13(v)) === "object" && "isVar" in v;
13101
+ return v && (typeof v === "undefined" ? "undefined" : _type_of$14(v)) === "object" && "isVar" in v;
13102
13102
  }
13103
13103
  function getVariable(nameOrVariable) {
13104
13104
  var group = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "size";
@@ -14150,30 +14150,275 @@ var init_keyboardControllerState_native = __esmMin((() => {
14150
14150
  });
14151
14151
  }));
14152
14152
  //#endregion
14153
- //#region ../../core/native/dist/esm/zeegoState.native.js
14154
- function getZeego() {
14155
- return {
14156
- get isEnabled() {
14157
- return state$1.get().enabled;
14158
- },
14159
- get state() {
14160
- return state$1.get();
14161
- },
14162
- set(newState) {
14163
- state$1.set(newState);
14164
- }
14165
- };
14153
+ //#region ../../core/native/dist/esm/nativeMenuState.native.js
14154
+ function registerNativeMenuAdapter(adapter) {
14155
+ var current = state$1.get().adapter;
14156
+ if (current && current.name !== adapter.name) throw new Error(`A native menu adapter named "${current.name}" is already registered. Register exactly one adapter before rendering Tamagui menus.`);
14157
+ state$1.set({
14158
+ enabled: true,
14159
+ adapter
14160
+ });
14161
+ }
14162
+ function getNativeMenuAdapter() {
14163
+ return state$1.get().adapter;
14166
14164
  }
14167
14165
  var state$1;
14168
- var init_zeegoState_native = __esmMin((() => {
14166
+ var init_nativeMenuState_native = __esmMin((() => {
14169
14167
  init_globalState_native();
14170
- state$1 = createGlobalState(`zeego`, {
14168
+ state$1 = createGlobalState("native-menu-adapter", {
14171
14169
  enabled: false,
14172
- DropdownMenu: null,
14173
- ContextMenu: null
14170
+ adapter: null
14174
14171
  });
14175
14172
  }));
14176
14173
  //#endregion
14174
+ //#region ../../core/native/dist/esm/expoUIMenuAdapter.native.js
14175
+ function _type_of$13(obj) {
14176
+ "@swc/helpers - typeof";
14177
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
14178
+ }
14179
+ function marker(name) {
14180
+ var Marker = function() {
14181
+ return null;
14182
+ };
14183
+ Marker.displayName = `ExpoUI${name}`;
14184
+ return Marker;
14185
+ }
14186
+ function isMarkerType(candidate, type) {
14187
+ if (candidate === type) return true;
14188
+ var wanted = type.displayName;
14189
+ if (!wanted) return false;
14190
+ return typeof candidate === "function" && candidate.displayName === wanted;
14191
+ }
14192
+ function elementOfType(children, type) {
14193
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14194
+ try {
14195
+ for (var _iterator = react$1.default.Children.toArray(children)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
14196
+ var child = _step.value;
14197
+ if (/* @__PURE__ */ react$1.default.isValidElement(child) && isMarkerType(child.type, type)) return child;
14198
+ }
14199
+ } catch (err) {
14200
+ _didIteratorError = true;
14201
+ _iteratorError = err;
14202
+ } finally {
14203
+ try {
14204
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
14205
+ } finally {
14206
+ if (_didIteratorError) throw _iteratorError;
14207
+ }
14208
+ }
14209
+ return null;
14210
+ }
14211
+ function textFromNode(node) {
14212
+ if (typeof node === "string" || typeof node === "number") return String(node);
14213
+ if (!/* @__PURE__ */ react$1.default.isValidElement(node)) return "";
14214
+ return react$1.default.Children.toArray(node.props.children).map(textFromNode).join("");
14215
+ }
14216
+ function createExpoUIMenuAdapter(param) {
14217
+ var { MenuView } = param;
14218
+ var NativeMenuView = MenuView;
14219
+ function createModule(isContextMenu) {
14220
+ var Trigger = marker("Trigger");
14221
+ var Content = marker("Content");
14222
+ var Item = marker("Item");
14223
+ var ItemTitle = marker("ItemTitle");
14224
+ var ItemSubtitle = marker("ItemSubtitle");
14225
+ var ItemIcon = marker("ItemIcon");
14226
+ var ItemImage = marker("ItemImage");
14227
+ var ItemIndicator = marker("ItemIndicator");
14228
+ var Group = marker("Group");
14229
+ var Label = marker("Label");
14230
+ var Separator = marker("Separator");
14231
+ var Sub = marker("Sub");
14232
+ var SubTrigger = marker("SubTrigger");
14233
+ var SubContent = marker("SubContent");
14234
+ var CheckboxItem = marker("CheckboxItem");
14235
+ var Preview = marker("Preview");
14236
+ var Auxiliary = marker("Auxiliary");
14237
+ function Root(param2) {
14238
+ var { children, onOpenChange, onOpenWillChange } = param2;
14239
+ var trigger = elementOfType(children, Trigger);
14240
+ var content = elementOfType(children, Content);
14241
+ var preview = elementOfType(children, Preview);
14242
+ var auxiliary = elementOfType(children, Auxiliary);
14243
+ if (preview || auxiliary) throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
14244
+ if (!trigger || !content) throw new Error("Tamagui native menus require one Trigger and one Content");
14245
+ var nextId = 0;
14246
+ var handlers = /* @__PURE__ */ new Map();
14247
+ function actionId(element) {
14248
+ return element.key == null ? `tamagui-menu-${nextId++}` : String(element.key).replace(/^\.\$/, "");
14249
+ }
14250
+ function itemTitle(element) {
14251
+ if (typeof element.props.textValue === "string") return element.props.textValue;
14252
+ var title = elementOfType(element.props.children, ItemTitle);
14253
+ return title ? textFromNode(title.props.children) : "";
14254
+ }
14255
+ function actionImage(element) {
14256
+ var image = elementOfType(element.props.children, ItemImage);
14257
+ if (image === null || image === void 0 ? void 0 : image.props.source) return image.props.source;
14258
+ var icon = elementOfType(element.props.children, ItemIcon);
14259
+ if (!icon) return void 0;
14260
+ var ios = icon.props.ios;
14261
+ if ((typeof ios === "undefined" ? "undefined" : _type_of$13(ios)) === "object" && ios && "name" in ios && typeof ios.name === "string") return ios.name;
14262
+ return typeof icon.props.iosIconName === "string" ? icon.props.iosIconName : void 0;
14263
+ }
14264
+ function attributes(element) {
14265
+ var destructive = element.props.destructive === true;
14266
+ var disabled = element.props.disabled === true;
14267
+ var hidden = element.props.hidden === true;
14268
+ return destructive || disabled || hidden ? {
14269
+ destructive,
14270
+ disabled,
14271
+ hidden
14272
+ } : void 0;
14273
+ }
14274
+ function actionsFrom(childrenToParse) {
14275
+ var actions = [];
14276
+ var section = null;
14277
+ function append(action) {
14278
+ if (section) section.push(action);
14279
+ else actions.push(action);
14280
+ }
14281
+ function flushSection() {
14282
+ if (!(section === null || section === void 0 ? void 0 : section.length)) {
14283
+ section = [];
14284
+ return;
14285
+ }
14286
+ actions.push({
14287
+ id: `tamagui-menu-section-${nextId++}`,
14288
+ title: "",
14289
+ subactions: section,
14290
+ displayInline: true
14291
+ });
14292
+ section = [];
14293
+ }
14294
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14295
+ try {
14296
+ var _loop = function() {
14297
+ var child = _step.value;
14298
+ if (!/* @__PURE__ */ react$1.default.isValidElement(child)) return "continue";
14299
+ if (isMarkerType(child.type, Separator)) {
14300
+ if (!section) section = actions.splice(0);
14301
+ flushSection();
14302
+ return "continue";
14303
+ }
14304
+ if (isMarkerType(child.type, Group)) {
14305
+ var label2 = elementOfType(child.props.children, Label);
14306
+ append({
14307
+ id: actionId(child),
14308
+ title: label2 ? textFromNode(label2.props.children) : "",
14309
+ subactions: actionsFrom(child.props.children),
14310
+ displayInline: true
14311
+ });
14312
+ return "continue";
14313
+ }
14314
+ if (isMarkerType(child.type, Sub)) {
14315
+ var subTrigger = elementOfType(child.props.children, SubTrigger);
14316
+ var subContent = elementOfType(child.props.children, SubContent);
14317
+ if (!subTrigger || !subContent) throw new Error("Tamagui native submenus require one SubTrigger and SubContent");
14318
+ append({
14319
+ id: actionId(child),
14320
+ title: itemTitle(subTrigger),
14321
+ image: actionImage(subTrigger),
14322
+ attributes: attributes(subTrigger),
14323
+ subactions: actionsFrom(subContent.props.children)
14324
+ });
14325
+ return "continue";
14326
+ }
14327
+ if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) return "continue";
14328
+ if (elementOfType(child.props.children, ItemSubtitle)) throw new Error("@expo/ui/community/menu does not support menu item subtitles");
14329
+ var id = actionId(child);
14330
+ if (isMarkerType(child.type, CheckboxItem)) {
14331
+ var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
14332
+ var onValueChange = child.props.onValueChange;
14333
+ var onCheckedChange = child.props.onCheckedChange;
14334
+ handlers.set(id, function() {
14335
+ if (typeof onValueChange === "function") onValueChange(current ? "off" : "on", current ? "on" : "off");
14336
+ else if (typeof onCheckedChange === "function") onCheckedChange(!current);
14337
+ });
14338
+ append({
14339
+ id,
14340
+ title: itemTitle(child),
14341
+ image: actionImage(child),
14342
+ state: current ? "on" : "off",
14343
+ attributes: attributes(child)
14344
+ });
14345
+ return "continue";
14346
+ }
14347
+ var onSelect = child.props.onSelect;
14348
+ if (typeof onSelect === "function") handlers.set(id, function() {
14349
+ return onSelect();
14350
+ });
14351
+ append({
14352
+ id,
14353
+ title: itemTitle(child),
14354
+ image: actionImage(child),
14355
+ attributes: attributes(child)
14356
+ });
14357
+ };
14358
+ for (var _iterator = react$1.default.Children.toArray(childrenToParse)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
14359
+ } catch (err) {
14360
+ _didIteratorError = true;
14361
+ _iteratorError = err;
14362
+ } finally {
14363
+ try {
14364
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
14365
+ } finally {
14366
+ if (_didIteratorError) throw _iteratorError;
14367
+ }
14368
+ }
14369
+ if (section) flushSection();
14370
+ return actions;
14371
+ }
14372
+ var label = elementOfType(content.props.children, Label);
14373
+ var triggerAction = trigger.props.action;
14374
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NativeMenuView, {
14375
+ actions: actionsFrom(content.props.children),
14376
+ title: label ? textFromNode(label.props.children) : void 0,
14377
+ shouldOpenOnLongPress: triggerAction === "longPress" || triggerAction !== "press" && isContextMenu,
14378
+ onPressAction: function(event) {
14379
+ var _handlers_get;
14380
+ return (_handlers_get = handlers.get(event.nativeEvent.event)) === null || _handlers_get === void 0 ? void 0 : _handlers_get();
14381
+ },
14382
+ onOpenMenu: function() {
14383
+ onOpenWillChange === null || onOpenWillChange === void 0 || onOpenWillChange(true);
14384
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(true);
14385
+ },
14386
+ onCloseMenu: function() {
14387
+ onOpenWillChange === null || onOpenWillChange === void 0 || onOpenWillChange(false);
14388
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(false);
14389
+ },
14390
+ children: trigger.props.children
14391
+ });
14392
+ }
14393
+ return {
14394
+ Root,
14395
+ Trigger,
14396
+ Content,
14397
+ Item,
14398
+ ItemTitle,
14399
+ ItemSubtitle,
14400
+ ItemIcon,
14401
+ ItemImage,
14402
+ ItemIndicator,
14403
+ Group,
14404
+ Label,
14405
+ Separator,
14406
+ Sub,
14407
+ SubTrigger,
14408
+ SubContent,
14409
+ CheckboxItem,
14410
+ Preview,
14411
+ Auxiliary
14412
+ };
14413
+ }
14414
+ return {
14415
+ name: "expo-ui",
14416
+ Menu: createModule(false),
14417
+ ContextMenu: createModule(true)
14418
+ };
14419
+ }
14420
+ var init_expoUIMenuAdapter_native = __esmMin((() => {}));
14421
+ //#endregion
14177
14422
  //#region ../../core/native/dist/esm/nativeMenuContext.native.js
14178
14423
  var NativeMenuContext;
14179
14424
  var init_nativeMenuContext_native = __esmMin((() => {
@@ -14236,15 +14481,17 @@ var index_native_exports = /* @__PURE__ */ __exportAll({
14236
14481
  NativePortal: () => NativePortal,
14237
14482
  NativePortalHost: () => NativePortalHost,
14238
14483
  NativePortalProvider: () => NativePortalProvider,
14484
+ createExpoUIMenuAdapter: () => createExpoUIMenuAdapter,
14239
14485
  getBurnt: () => getBurnt,
14240
14486
  getGestureHandler: () => getGestureHandler,
14241
14487
  getKeyboardControllerState: () => getKeyboardControllerState$1,
14242
14488
  getLinearGradient: () => getLinearGradient,
14489
+ getNativeMenuAdapter: () => getNativeMenuAdapter,
14243
14490
  getPortal: () => getPortal,
14244
14491
  getSafeArea: () => getSafeArea,
14245
14492
  getWorklets: () => getWorklets,
14246
- getZeego: () => getZeego,
14247
14493
  isKeyboardControllerEnabled: () => isKeyboardControllerEnabled$1,
14494
+ registerNativeMenuAdapter: () => registerNativeMenuAdapter,
14248
14495
  setKeyboardControllerState: () => setKeyboardControllerState,
14249
14496
  unstable_claimExternalPressOwnership: () => claimExternalPressOwnership,
14250
14497
  unstable_hasExternalPressOwnership: () => hasExternalPressOwnership,
@@ -14257,7 +14504,8 @@ var init_index_native$3 = __esmMin((() => {
14257
14504
  init_safeAreaState_native();
14258
14505
  init_linearGradientState_native();
14259
14506
  init_keyboardControllerState_native();
14260
- init_zeegoState_native();
14507
+ init_nativeMenuState_native();
14508
+ init_expoUIMenuAdapter_native();
14261
14509
  init_nativeMenuContext_native();
14262
14510
  init_burntState_native();
14263
14511
  init_components_native();
@@ -20401,7 +20649,7 @@ var _excluded$48 = ["type"], _excluded2$26 = [
20401
20649
  "disabled",
20402
20650
  "dir",
20403
20651
  "orientation"
20404
- ], _excluded5$12 = ["__scopeAccordion", "value"], _excluded6$8 = ["__scopeAccordion"], _excluded7$5 = ["__scopeAccordion"], _excluded8$5 = ["__scopeAccordion", "forceMount"], _excluded9$5 = ["children", "transition"];
20652
+ ], _excluded5$12 = ["__scopeAccordion", "value"], _excluded6$9 = ["__scopeAccordion"], _excluded7$5 = ["__scopeAccordion"], _excluded8$5 = ["__scopeAccordion", "forceMount"], _excluded9$5 = ["children", "transition"];
20405
20653
  var ACCORDION_NAME = "Accordion";
20406
20654
  var ACCORDION_KEYS = [
20407
20655
  "Home",
@@ -20585,7 +20833,7 @@ var AccordionItem = /* @__PURE__ */ react$1.forwardRef(function(props, forwarded
20585
20833
  AccordionItem.displayName = ITEM_NAME$1;
20586
20834
  var HEADER_NAME = "AccordionHeader";
20587
20835
  var AccordionHeader = /* @__PURE__ */ react$1.forwardRef(function(props, forwardedRef) {
20588
- var { __scopeAccordion } = props, headerProps = _objectWithoutProperties(props, _excluded6$8);
20836
+ var { __scopeAccordion } = props, headerProps = _objectWithoutProperties(props, _excluded6$9);
20589
20837
  var accordionContext = useAccordionContext(__scopeAccordion);
20590
20838
  var itemContext = useAccordionItemContext(__scopeAccordion);
20591
20839
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(H1, _objectSpread2(_objectSpread2({
@@ -21555,7 +21803,7 @@ var _excluded$43 = ["scope"], _excluded2$23 = [
21555
21803
  "scope",
21556
21804
  "forceMount",
21557
21805
  "children"
21558
- ], _excluded3$16 = ["scope"], _excluded4$13 = ["forceMount"], _excluded5$11 = ["scope"], _excluded6$7 = ["children", "context"], _excluded7$4 = [
21806
+ ], _excluded3$16 = ["scope"], _excluded4$13 = ["forceMount"], _excluded5$11 = ["scope"], _excluded6$8 = ["children", "context"], _excluded7$4 = [
21559
21807
  "trapFocus",
21560
21808
  "onOpenAutoFocus",
21561
21809
  "onCloseAutoFocus",
@@ -21745,7 +21993,7 @@ var DialogContent = DialogContentFrame.styleable(function DialogContent2(param,
21745
21993
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: context.modal ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogContentModal, _objectSpread2(_objectSpread2({ context }, props), {}, { ref: forwardedRef })) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogContentNonModal, _objectSpread2(_objectSpread2({ context }, props), {}, { ref: forwardedRef })) });
21746
21994
  });
21747
21995
  var DialogContentModal = /* @__PURE__ */ react$1.forwardRef(function(param, forwardedRef) {
21748
- var { children, context } = param, props = _objectWithoutProperties(param, _excluded6$7);
21996
+ var { children, context } = param, props = _objectWithoutProperties(param, _excluded6$8);
21749
21997
  var contentRef = react$1.useRef(null);
21750
21998
  var composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
21751
21999
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogContentImpl, _objectSpread2(_objectSpread2(_objectSpread2({}, props), {}, {
@@ -21952,7 +22200,7 @@ var _excluded$42 = [
21952
22200
  "__native",
21953
22201
  "onPress",
21954
22202
  "__onPress"
21955
- ], _excluded2$22 = ["scope"], _excluded3$15 = ["scope"], _excluded4$12 = ["scope"], _excluded5$10 = ["scope", "children"], _excluded6$6 = ["scope"], _excluded7$3 = ["scope"], _excluded8$3 = ["scope"], _excluded9$3 = ["scope"], _excluded10$3 = ["scope"], _excluded11$2 = ["scope", "native"];
22203
+ ], _excluded2$22 = ["scope"], _excluded3$15 = ["scope"], _excluded4$12 = ["scope"], _excluded5$10 = ["scope", "children"], _excluded6$7 = ["scope"], _excluded7$3 = ["scope"], _excluded8$3 = ["scope"], _excluded9$3 = ["scope"], _excluded10$3 = ["scope"], _excluded11$2 = ["scope", "native"];
21956
22204
  var getAlertDialogScope = function(scope) {
21957
22205
  return scope;
21958
22206
  };
@@ -22012,7 +22260,7 @@ var AlertDialogContent = /* @__PURE__ */ react$1.forwardRef(function AlertDialog
22012
22260
  });
22013
22261
  var TITLE_NAME = "AlertDialogTitle";
22014
22262
  var AlertDialogTitle = styledExport(View, { name: TITLE_NAME }).styleable(function AlertDialogTitle2(props, forwardedRef) {
22015
- var { scope } = props, titleProps = _objectWithoutProperties(props, _excluded6$6);
22263
+ var { scope } = props, titleProps = _objectWithoutProperties(props, _excluded6$7);
22016
22264
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogTitle, _objectSpread2(_objectSpread2({ scope: getAlertDialogScope(scope) }, titleProps), {}, { ref: forwardedRef }));
22017
22265
  });
22018
22266
  var DESCRIPTION_NAME = "AlertDialogDescription";
@@ -24411,7 +24659,7 @@ var _excluded$30 = ["scope", "children"], _excluded2$16 = ["virtualRef", "scope"
24411
24659
  "scope",
24412
24660
  "animatePosition",
24413
24661
  "transition"
24414
- ], _excluded6$5 = [
24662
+ ], _excluded6$6 = [
24415
24663
  "offset",
24416
24664
  "size",
24417
24665
  "borderWidth"
@@ -24808,7 +25056,7 @@ var PopperArrow = /* @__PURE__ */ react$1.forwardRef(function PopperArrow2(props
24808
25056
  var _context_arrowStyle, _context_arrowStyle1;
24809
25057
  var isAnimatePosControlled = "animatePosition" in propsIn;
24810
25058
  var { scope, animatePosition, transition } = propsIn, rest = _objectWithoutProperties(propsIn, _excluded5$8);
24811
- var { offset, size: sizeProp, borderWidth = 0 } = rest, arrowProps = _objectWithoutProperties(rest, _excluded6$5);
25059
+ var { offset, size: sizeProp, borderWidth = 0 } = rest, arrowProps = _objectWithoutProperties(rest, _excluded6$6);
24812
25060
  var context = usePopperContext(scope);
24813
25061
  var sizeVal = typeof sizeProp === "number" ? sizeProp : getVariableValue(getSpace(sizeProp !== null && sizeProp !== void 0 ? sizeProp : context.size, {
24814
25062
  shift: -2,
@@ -25032,7 +25280,7 @@ var _excluded$29 = [
25032
25280
  "disabled",
25033
25281
  "textValue",
25034
25282
  "unstyled"
25035
- ], _excluded6$4 = [
25283
+ ], _excluded6$5 = [
25036
25284
  "ios",
25037
25285
  "androidIconName",
25038
25286
  "iosIconName"
@@ -25444,7 +25692,7 @@ function createBaseMenu(param) {
25444
25692
  var ITEM_IMAGE = "MenuItemImage";
25445
25693
  var MenuItemImage = /* @__PURE__ */ react$1.forwardRef(function(props, forwardedRef) {
25446
25694
  var { ios, androidIconName, iosIconName } = props;
25447
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_Image, _objectSpread2(_objectSpread2({}, _objectWithoutProperties(props, _excluded6$4)), {}, { ref: forwardedRef }));
25695
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_Image, _objectSpread2(_objectSpread2({}, _objectWithoutProperties(props, _excluded6$5)), {}, { ref: forwardedRef }));
25448
25696
  });
25449
25697
  MenuItemImage.displayName = ITEM_IMAGE;
25450
25698
  var ITEM_ICON = "MenuItemIcon";
@@ -25834,37 +26082,49 @@ init_index_native$3();
25834
26082
  init_index_native();
25835
26083
  init_objectWithoutProperties();
25836
26084
  init_objectSpread2();
25837
- var _excluded$28 = [
26085
+ var _excluded$28 = ["children"], _excluded2$14 = [
25838
26086
  "value",
25839
26087
  "onValueChange",
25840
26088
  "children"
25841
- ], _excluded2$14 = ["value", "children"], _excluded3$10 = [
26089
+ ], _excluded3$10 = ["value", "children"], _excluded4$8 = [
25842
26090
  "checked",
25843
26091
  "onCheckedChange",
25844
26092
  "value",
25845
26093
  "onValueChange",
25846
26094
  "children"
25847
- ], _excluded4$8 = ["children"], _excluded5$6 = ["children"];
26095
+ ], _excluded5$6 = ["children"], _excluded6$4 = ["children"];
25848
26096
  var MAPPED_TYPES = [
25849
26097
  "SubContent",
25850
26098
  "SubTrigger",
25851
26099
  "Content",
25852
26100
  "Sub",
25853
26101
  "Group",
25854
- "CheckboxItem"
26102
+ "Item",
26103
+ "ItemTitle",
26104
+ "ItemSubtitle",
26105
+ "ItemIcon",
26106
+ "ItemImage",
26107
+ "ItemIndicator",
26108
+ "Label",
26109
+ "Separator",
26110
+ "CheckboxItem",
26111
+ "Preview",
26112
+ "Auxiliary"
25855
26113
  ];
25856
26114
  var CONTAINER_TYPES = [
25857
26115
  "SubContent",
26116
+ "SubTrigger",
25858
26117
  "Content",
25859
26118
  "Sub",
25860
- "Group"
26119
+ "Group",
26120
+ "Item"
25861
26121
  ];
25862
26122
  function getComponentType(displayName) {
25863
26123
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
25864
26124
  try {
25865
26125
  for (var _iterator = MAPPED_TYPES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
25866
26126
  var type = _step.value;
25867
- if (displayName === type || displayName.includes(`(${type})`)) return type;
26127
+ if (displayName === type || displayName === `Menu${type}` || displayName === `ContextMenu${type}` || displayName.includes(`(${type})`)) return type;
25868
26128
  }
25869
26129
  } catch (err) {
25870
26130
  _didIteratorError = true;
@@ -25908,23 +26168,34 @@ var createNativeMenu = function(MenuType) {
25908
26168
  var warned = false;
25909
26169
  function resolve() {
25910
26170
  if (resolved) return resolved;
25911
- var zeego = getZeego();
25912
- if (!zeego.isEnabled) {
26171
+ var adapter = getNativeMenuAdapter();
26172
+ if (!adapter) {
25913
26173
  if (!warned) {
25914
26174
  warned = true;
25915
- console.warn(`Warning: Must call import '@tamagui/native/setup-zeego' at your app entry point to use native menus`);
26175
+ console.warn(`Warning: Register a native menu adapter before rendering Tamagui native menus`);
25916
26176
  }
25917
26177
  return null;
25918
26178
  }
25919
- var menu = isContextMenu ? zeego.state.ContextMenu : zeego.state.DropdownMenu;
26179
+ var menu = isContextMenu ? adapter.ContextMenu : adapter.Menu;
25920
26180
  resolved = {
25921
26181
  menu,
25922
26182
  componentMap: {
25923
26183
  SubContent: menu.SubContent,
26184
+ SubTrigger: menu.SubTrigger,
25924
26185
  Content: menu.Content,
25925
26186
  Sub: menu.Sub,
25926
26187
  Group: menu.Group,
25927
- SubTrigger: menu.SubTrigger
26188
+ Item: menu.Item,
26189
+ ItemTitle: menu.ItemTitle,
26190
+ ItemSubtitle: menu.ItemSubtitle,
26191
+ ItemIcon: menu.ItemIcon,
26192
+ ItemImage: menu.ItemImage,
26193
+ ItemIndicator: menu.ItemIndicator,
26194
+ Label: menu.Label,
26195
+ Separator: menu.Separator,
26196
+ CheckboxItem: menu.CheckboxItem,
26197
+ Preview: menu.Preview,
26198
+ Auxiliary: menu.Auxiliary
25928
26199
  }
25929
26200
  };
25930
26201
  return resolved;
@@ -25962,7 +26233,9 @@ var createNativeMenu = function(MenuType) {
25962
26233
  var release = function() {
25963
26234
  return triggerBoundaryHandlers === null || triggerBoundaryHandlers === void 0 ? void 0 : triggerBoundaryHandlers.release(debugName);
25964
26235
  };
25965
- result.push(/* @__PURE__ */ react$1.default.cloneElement(child, {
26236
+ var { children: triggerChildren } = props, triggerProps = _objectWithoutProperties(props, _excluded$28);
26237
+ result.push(/* @__PURE__ */ react$1.default.createElement(menu.Trigger, _objectSpread2(_objectSpread2({}, triggerProps), {}, {
26238
+ key: child.key,
25966
26239
  onTouchStart: composeHandlers(claim, props.onTouchStart),
25967
26240
  onTouchEnd: composeHandlers(props.onTouchEnd, release),
25968
26241
  onTouchCancel: composeHandlers(props.onTouchCancel, release),
@@ -25971,11 +26244,11 @@ var createNativeMenu = function(MenuType) {
25971
26244
  onResponderTerminate: composeHandlers(props.onResponderTerminate, release),
25972
26245
  onPressIn: composeHandlers(claim, props.onPressIn),
25973
26246
  onPressOut: composeHandlers(props.onPressOut, release)
25974
- }));
26247
+ }), triggerChildren));
25975
26248
  return;
25976
26249
  }
25977
26250
  if (displayName.includes("RadioGroup")) {
25978
- var { value: rgValue, onValueChange: rgOnValueChange, children: rgChildren } = props, rest = _objectWithoutProperties(props, _excluded$28);
26251
+ var { value: rgValue, onValueChange: rgOnValueChange, children: rgChildren } = props, rest = _objectWithoutProperties(props, _excluded2$14);
25979
26252
  result.push(/* @__PURE__ */ react$1.default.createElement(menu.Group, _objectSpread2(_objectSpread2({}, rest), {}, { key: child.key }), transformChildren(menu, map, rgChildren, false, triggerBoundaryHandlers, {
25980
26253
  value: rgValue,
25981
26254
  onValueChange: rgOnValueChange
@@ -25983,7 +26256,7 @@ var createNativeMenu = function(MenuType) {
25983
26256
  return;
25984
26257
  }
25985
26258
  if (displayName.includes("RadioItem") && radioContext) {
25986
- var { value: itemValue, children: rChildren } = props, rest1 = _objectWithoutProperties(props, _excluded2$14);
26259
+ var { value: itemValue, children: rChildren } = props, rest1 = _objectWithoutProperties(props, _excluded3$10);
25987
26260
  var cleanChildren = react$1.default.Children.map(rChildren, function(c) {
25988
26261
  var _c_type;
25989
26262
  if (!/* @__PURE__ */ react$1.default.isValidElement(c)) return c;
@@ -25997,12 +26270,12 @@ var createNativeMenu = function(MenuType) {
25997
26270
  var _radioContext_onValueChange;
25998
26271
  return (_radioContext_onValueChange = radioContext.onValueChange) === null || _radioContext_onValueChange === void 0 ? void 0 : _radioContext_onValueChange.call(radioContext, itemValue);
25999
26272
  }
26000
- }), cleanChildren));
26273
+ }), transformChildren(menu, map, cleanChildren, false, triggerBoundaryHandlers, radioContext)));
26001
26274
  return;
26002
26275
  }
26003
26276
  var componentType = getComponentType(displayName);
26004
26277
  if (componentType === "CheckboxItem") {
26005
- var { checked, onCheckedChange, value, onValueChange, children: cbChildren } = props, rest2 = _objectWithoutProperties(props, _excluded3$10);
26278
+ var { checked, onCheckedChange, value, onValueChange, children: cbChildren } = props, rest2 = _objectWithoutProperties(props, _excluded4$8);
26006
26279
  var finalValue = value !== null && value !== void 0 ? value : checked ? "on" : "off";
26007
26280
  var finalOnValueChange = onValueChange !== null && onValueChange !== void 0 ? onValueChange : onCheckedChange && function(v) {
26008
26281
  return onCheckedChange(v === "on");
@@ -26017,19 +26290,20 @@ var createNativeMenu = function(MenuType) {
26017
26290
  key: child.key,
26018
26291
  value: finalValue,
26019
26292
  onValueChange: finalOnValueChange
26020
- }), cleanChildren1));
26293
+ }), transformChildren(menu, map, cleanChildren1, false, triggerBoundaryHandlers, radioContext)));
26021
26294
  return;
26022
26295
  }
26023
26296
  if (componentType) {
26024
- var { children: childChildren } = props, restProps = _objectWithoutProperties(props, _excluded4$8);
26297
+ var { children: childChildren } = props, restProps = _objectWithoutProperties(props, _excluded5$6);
26298
+ var AdapterComponent = map[componentType];
26025
26299
  var isContainer = CONTAINER_TYPES.includes(componentType);
26026
26300
  var shouldReverse = componentType === "Content" || componentType === "SubContent";
26027
- result.push(/* @__PURE__ */ react$1.default.createElement(map[componentType], _objectSpread2(_objectSpread2({}, restProps), {}, { key: child.key }), isContainer ? transformChildren(menu, map, childChildren, shouldReverse, triggerBoundaryHandlers, radioContext) : childChildren));
26301
+ result.push(/* @__PURE__ */ react$1.default.createElement(AdapterComponent, _objectSpread2(_objectSpread2({}, restProps), {}, { key: child.key }), isContainer ? transformChildren(menu, map, childChildren, shouldReverse, triggerBoundaryHandlers, radioContext) : childChildren));
26028
26302
  return;
26029
26303
  }
26030
26304
  if (isItemLike(props, displayName)) {
26031
- var { children: itemChildren } = props, itemProps = _objectWithoutProperties(props, _excluded5$6);
26032
- result.push(/* @__PURE__ */ react$1.default.createElement(menu.Item, _objectSpread2(_objectSpread2({}, itemProps), {}, { key: child.key }), itemChildren));
26305
+ var { children: itemChildren } = props, itemProps = _objectWithoutProperties(props, _excluded6$4);
26306
+ result.push(/* @__PURE__ */ react$1.default.createElement(menu.Item, _objectSpread2(_objectSpread2({}, itemProps), {}, { key: child.key }), transformChildren(menu, map, itemChildren, false, triggerBoundaryHandlers, radioContext)));
26033
26307
  return;
26034
26308
  }
26035
26309
  result.push(child);
@@ -26037,7 +26311,7 @@ var createNativeMenu = function(MenuType) {
26037
26311
  if (isIos && shouldReverseOnIos && !isContextMenu) result.reverse();
26038
26312
  return result;
26039
26313
  }
26040
- function lazyZeego(name, displayName) {
26314
+ function lazyAdapter(name, displayName) {
26041
26315
  var Comp = function(props) {
26042
26316
  var z = resolve();
26043
26317
  if (!z) return null;
@@ -26046,20 +26320,20 @@ var createNativeMenu = function(MenuType) {
26046
26320
  Comp.displayName = displayName || name;
26047
26321
  return Comp;
26048
26322
  }
26049
- var Trigger = lazyZeego("Trigger");
26050
- var Content = lazyZeego("Content");
26051
- var Item = lazyZeego("Item");
26052
- var ItemTitle = lazyZeego("ItemTitle");
26053
- var ItemSubtitle = lazyZeego("ItemSubtitle");
26054
- var ItemIcon = lazyZeego("ItemIcon");
26055
- var ItemImage = lazyZeego("ItemImage");
26056
- var ItemIndicator = lazyZeego("ItemIndicator");
26057
- var Group = lazyZeego("Group");
26058
- var Label = lazyZeego("Label");
26059
- var Separator = lazyZeego("Separator");
26060
- var Sub = lazyZeego("Sub");
26061
- var SubTrigger = lazyZeego("SubTrigger");
26062
- var SubContent = lazyZeego("SubContent");
26323
+ var Trigger = lazyAdapter("Trigger");
26324
+ var Content = lazyAdapter("Content");
26325
+ var Item = lazyAdapter("Item");
26326
+ var ItemTitle = lazyAdapter("ItemTitle");
26327
+ var ItemSubtitle = lazyAdapter("ItemSubtitle");
26328
+ var ItemIcon = lazyAdapter("ItemIcon");
26329
+ var ItemImage = lazyAdapter("ItemImage");
26330
+ var ItemIndicator = lazyAdapter("ItemIndicator");
26331
+ var Group = lazyAdapter("Group");
26332
+ var Label = lazyAdapter("Label");
26333
+ var Separator = lazyAdapter("Separator");
26334
+ var Sub = lazyAdapter("Sub");
26335
+ var SubTrigger = lazyAdapter("SubTrigger");
26336
+ var SubContent = lazyAdapter("SubContent");
26063
26337
  var Portal = function(param) {
26064
26338
  var { children } = param;
26065
26339
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children });
@@ -26083,11 +26357,11 @@ var createNativeMenu = function(MenuType) {
26083
26357
  return null;
26084
26358
  };
26085
26359
  CheckboxItem.displayName = "CheckboxItem";
26086
- var Preview = isContextMenu ? lazyZeego("Preview", `${MenuType}Preview`) : function() {
26360
+ var Preview = isContextMenu ? lazyAdapter("Preview", `${MenuType}Preview`) : function() {
26087
26361
  return null;
26088
26362
  };
26089
26363
  Preview.displayName = `${MenuType}Preview`;
26090
- var Auxiliary = isContextMenu ? lazyZeego("Auxiliary", `${MenuType}Auxiliary`) : function() {
26364
+ var Auxiliary = isContextMenu ? lazyAdapter("Auxiliary", `${MenuType}Auxiliary`) : function() {
26091
26365
  return null;
26092
26366
  };
26093
26367
  Auxiliary.displayName = `${MenuType}Auxiliary`;