tamagui 2.6.3 → 2.7.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.
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 {
@@ -11841,7 +11841,7 @@ var require_react_dom_development = /* @__PURE__ */ __commonJSMin(((exports) =>
11841
11841
  exports.useFormStatus = function() {
11842
11842
  return resolveDispatcher().useHostTransitionStatus();
11843
11843
  };
11844
- exports.version = "19.1.0";
11844
+ exports.version = "19.2.8";
11845
11845
  "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
11846
11846
  })();
11847
11847
  }));
@@ -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,269 @@ 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 elementOfType(children, type) {
14187
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14188
+ try {
14189
+ for (var _iterator = react$1.default.Children.toArray(children)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
14190
+ var child = _step.value;
14191
+ if (/* @__PURE__ */ react$1.default.isValidElement(child) && child.type === type) return child;
14192
+ }
14193
+ } catch (err) {
14194
+ _didIteratorError = true;
14195
+ _iteratorError = err;
14196
+ } finally {
14197
+ try {
14198
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
14199
+ } finally {
14200
+ if (_didIteratorError) throw _iteratorError;
14201
+ }
14202
+ }
14203
+ return null;
14204
+ }
14205
+ function textFromNode(node) {
14206
+ if (typeof node === "string" || typeof node === "number") return String(node);
14207
+ if (!/* @__PURE__ */ react$1.default.isValidElement(node)) return "";
14208
+ return react$1.default.Children.toArray(node.props.children).map(textFromNode).join("");
14209
+ }
14210
+ function createExpoUIMenuAdapter(param) {
14211
+ var { MenuView } = param;
14212
+ var NativeMenuView = MenuView;
14213
+ function createModule(isContextMenu) {
14214
+ var Trigger = marker("Trigger");
14215
+ var Content = marker("Content");
14216
+ var Item = marker("Item");
14217
+ var ItemTitle = marker("ItemTitle");
14218
+ var ItemSubtitle = marker("ItemSubtitle");
14219
+ var ItemIcon = marker("ItemIcon");
14220
+ var ItemImage = marker("ItemImage");
14221
+ var ItemIndicator = marker("ItemIndicator");
14222
+ var Group = marker("Group");
14223
+ var Label = marker("Label");
14224
+ var Separator = marker("Separator");
14225
+ var Sub = marker("Sub");
14226
+ var SubTrigger = marker("SubTrigger");
14227
+ var SubContent = marker("SubContent");
14228
+ var CheckboxItem = marker("CheckboxItem");
14229
+ var Preview = marker("Preview");
14230
+ var Auxiliary = marker("Auxiliary");
14231
+ function Root(param2) {
14232
+ var { children, onOpenChange, onOpenWillChange } = param2;
14233
+ var trigger = elementOfType(children, Trigger);
14234
+ var content = elementOfType(children, Content);
14235
+ var preview = elementOfType(children, Preview);
14236
+ var auxiliary = elementOfType(children, Auxiliary);
14237
+ if (preview || auxiliary) throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
14238
+ if (!trigger || !content) throw new Error("Tamagui native menus require one Trigger and one Content");
14239
+ var nextId = 0;
14240
+ var handlers = /* @__PURE__ */ new Map();
14241
+ function actionId(element) {
14242
+ return element.key == null ? `tamagui-menu-${nextId++}` : String(element.key).replace(/^\.\$/, "");
14243
+ }
14244
+ function itemTitle(element) {
14245
+ if (typeof element.props.textValue === "string") return element.props.textValue;
14246
+ var title = elementOfType(element.props.children, ItemTitle);
14247
+ return title ? textFromNode(title.props.children) : "";
14248
+ }
14249
+ function actionImage(element) {
14250
+ var image = elementOfType(element.props.children, ItemImage);
14251
+ if (image === null || image === void 0 ? void 0 : image.props.source) return image.props.source;
14252
+ var icon = elementOfType(element.props.children, ItemIcon);
14253
+ if (!icon) return void 0;
14254
+ var ios = icon.props.ios;
14255
+ if ((typeof ios === "undefined" ? "undefined" : _type_of$13(ios)) === "object" && ios && "name" in ios && typeof ios.name === "string") return ios.name;
14256
+ return typeof icon.props.iosIconName === "string" ? icon.props.iosIconName : void 0;
14257
+ }
14258
+ function attributes(element) {
14259
+ var destructive = element.props.destructive === true;
14260
+ var disabled = element.props.disabled === true;
14261
+ var hidden = element.props.hidden === true;
14262
+ return destructive || disabled || hidden ? {
14263
+ destructive,
14264
+ disabled,
14265
+ hidden
14266
+ } : void 0;
14267
+ }
14268
+ function actionsFrom(childrenToParse) {
14269
+ var actions = [];
14270
+ var section = null;
14271
+ function append(action) {
14272
+ if (section) section.push(action);
14273
+ else actions.push(action);
14274
+ }
14275
+ function flushSection() {
14276
+ if (!(section === null || section === void 0 ? void 0 : section.length)) {
14277
+ section = [];
14278
+ return;
14279
+ }
14280
+ actions.push({
14281
+ id: `tamagui-menu-section-${nextId++}`,
14282
+ title: "",
14283
+ subactions: section,
14284
+ displayInline: true
14285
+ });
14286
+ section = [];
14287
+ }
14288
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14289
+ try {
14290
+ var _loop = function() {
14291
+ var child = _step.value;
14292
+ if (!/* @__PURE__ */ react$1.default.isValidElement(child)) return "continue";
14293
+ if (child.type === Separator) {
14294
+ if (!section) section = actions.splice(0);
14295
+ flushSection();
14296
+ return "continue";
14297
+ }
14298
+ if (child.type === Group) {
14299
+ var label2 = elementOfType(child.props.children, Label);
14300
+ append({
14301
+ id: actionId(child),
14302
+ title: label2 ? textFromNode(label2.props.children) : "",
14303
+ subactions: actionsFrom(child.props.children),
14304
+ displayInline: true
14305
+ });
14306
+ return "continue";
14307
+ }
14308
+ if (child.type === Sub) {
14309
+ var subTrigger = elementOfType(child.props.children, SubTrigger);
14310
+ var subContent = elementOfType(child.props.children, SubContent);
14311
+ if (!subTrigger || !subContent) throw new Error("Tamagui native submenus require one SubTrigger and SubContent");
14312
+ append({
14313
+ id: actionId(child),
14314
+ title: itemTitle(subTrigger),
14315
+ image: actionImage(subTrigger),
14316
+ attributes: attributes(subTrigger),
14317
+ subactions: actionsFrom(subContent.props.children)
14318
+ });
14319
+ return "continue";
14320
+ }
14321
+ if (child.type !== Item && child.type !== CheckboxItem) return "continue";
14322
+ if (elementOfType(child.props.children, ItemSubtitle)) throw new Error("@expo/ui/community/menu does not support menu item subtitles");
14323
+ var id = actionId(child);
14324
+ if (child.type === CheckboxItem) {
14325
+ var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
14326
+ var onValueChange = child.props.onValueChange;
14327
+ var onCheckedChange = child.props.onCheckedChange;
14328
+ handlers.set(id, function() {
14329
+ if (typeof onValueChange === "function") onValueChange(current ? "off" : "on", current ? "on" : "off");
14330
+ else if (typeof onCheckedChange === "function") onCheckedChange(!current);
14331
+ });
14332
+ append({
14333
+ id,
14334
+ title: itemTitle(child),
14335
+ image: actionImage(child),
14336
+ state: current ? "on" : "off",
14337
+ attributes: attributes(child)
14338
+ });
14339
+ return "continue";
14340
+ }
14341
+ var onSelect = child.props.onSelect;
14342
+ if (typeof onSelect === "function") handlers.set(id, function() {
14343
+ return onSelect();
14344
+ });
14345
+ append({
14346
+ id,
14347
+ title: itemTitle(child),
14348
+ image: actionImage(child),
14349
+ attributes: attributes(child)
14350
+ });
14351
+ };
14352
+ for (var _iterator = react$1.default.Children.toArray(childrenToParse)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
14353
+ } catch (err) {
14354
+ _didIteratorError = true;
14355
+ _iteratorError = err;
14356
+ } finally {
14357
+ try {
14358
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
14359
+ } finally {
14360
+ if (_didIteratorError) throw _iteratorError;
14361
+ }
14362
+ }
14363
+ if (section) flushSection();
14364
+ return actions;
14365
+ }
14366
+ var label = elementOfType(content.props.children, Label);
14367
+ var triggerAction = trigger.props.action;
14368
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NativeMenuView, {
14369
+ actions: actionsFrom(content.props.children),
14370
+ title: label ? textFromNode(label.props.children) : void 0,
14371
+ shouldOpenOnLongPress: triggerAction === "longPress" || triggerAction !== "press" && isContextMenu,
14372
+ onPressAction: function(event) {
14373
+ var _handlers_get;
14374
+ return (_handlers_get = handlers.get(event.nativeEvent.event)) === null || _handlers_get === void 0 ? void 0 : _handlers_get();
14375
+ },
14376
+ onOpenMenu: function() {
14377
+ onOpenWillChange === null || onOpenWillChange === void 0 || onOpenWillChange(true);
14378
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(true);
14379
+ },
14380
+ onCloseMenu: function() {
14381
+ onOpenWillChange === null || onOpenWillChange === void 0 || onOpenWillChange(false);
14382
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(false);
14383
+ },
14384
+ children: trigger.props.children
14385
+ });
14386
+ }
14387
+ return {
14388
+ Root,
14389
+ Trigger,
14390
+ Content,
14391
+ Item,
14392
+ ItemTitle,
14393
+ ItemSubtitle,
14394
+ ItemIcon,
14395
+ ItemImage,
14396
+ ItemIndicator,
14397
+ Group,
14398
+ Label,
14399
+ Separator,
14400
+ Sub,
14401
+ SubTrigger,
14402
+ SubContent,
14403
+ CheckboxItem,
14404
+ Preview,
14405
+ Auxiliary
14406
+ };
14407
+ }
14408
+ return {
14409
+ name: "expo-ui",
14410
+ Menu: createModule(false),
14411
+ ContextMenu: createModule(true)
14412
+ };
14413
+ }
14414
+ var init_expoUIMenuAdapter_native = __esmMin((() => {}));
14415
+ //#endregion
14177
14416
  //#region ../../core/native/dist/esm/nativeMenuContext.native.js
14178
14417
  var NativeMenuContext;
14179
14418
  var init_nativeMenuContext_native = __esmMin((() => {
@@ -14236,15 +14475,17 @@ var index_native_exports = /* @__PURE__ */ __exportAll({
14236
14475
  NativePortal: () => NativePortal,
14237
14476
  NativePortalHost: () => NativePortalHost,
14238
14477
  NativePortalProvider: () => NativePortalProvider,
14478
+ createExpoUIMenuAdapter: () => createExpoUIMenuAdapter,
14239
14479
  getBurnt: () => getBurnt,
14240
14480
  getGestureHandler: () => getGestureHandler,
14241
14481
  getKeyboardControllerState: () => getKeyboardControllerState$1,
14242
14482
  getLinearGradient: () => getLinearGradient,
14483
+ getNativeMenuAdapter: () => getNativeMenuAdapter,
14243
14484
  getPortal: () => getPortal,
14244
14485
  getSafeArea: () => getSafeArea,
14245
14486
  getWorklets: () => getWorklets,
14246
- getZeego: () => getZeego,
14247
14487
  isKeyboardControllerEnabled: () => isKeyboardControllerEnabled$1,
14488
+ registerNativeMenuAdapter: () => registerNativeMenuAdapter,
14248
14489
  setKeyboardControllerState: () => setKeyboardControllerState,
14249
14490
  unstable_claimExternalPressOwnership: () => claimExternalPressOwnership,
14250
14491
  unstable_hasExternalPressOwnership: () => hasExternalPressOwnership,
@@ -14257,7 +14498,8 @@ var init_index_native$3 = __esmMin((() => {
14257
14498
  init_safeAreaState_native();
14258
14499
  init_linearGradientState_native();
14259
14500
  init_keyboardControllerState_native();
14260
- init_zeegoState_native();
14501
+ init_nativeMenuState_native();
14502
+ init_expoUIMenuAdapter_native();
14261
14503
  init_nativeMenuContext_native();
14262
14504
  init_burntState_native();
14263
14505
  init_components_native();
@@ -20401,7 +20643,7 @@ var _excluded$48 = ["type"], _excluded2$26 = [
20401
20643
  "disabled",
20402
20644
  "dir",
20403
20645
  "orientation"
20404
- ], _excluded5$12 = ["__scopeAccordion", "value"], _excluded6$8 = ["__scopeAccordion"], _excluded7$5 = ["__scopeAccordion"], _excluded8$5 = ["__scopeAccordion", "forceMount"], _excluded9$5 = ["children", "transition"];
20646
+ ], _excluded5$12 = ["__scopeAccordion", "value"], _excluded6$9 = ["__scopeAccordion"], _excluded7$5 = ["__scopeAccordion"], _excluded8$5 = ["__scopeAccordion", "forceMount"], _excluded9$5 = ["children", "transition"];
20405
20647
  var ACCORDION_NAME = "Accordion";
20406
20648
  var ACCORDION_KEYS = [
20407
20649
  "Home",
@@ -20585,7 +20827,7 @@ var AccordionItem = /* @__PURE__ */ react$1.forwardRef(function(props, forwarded
20585
20827
  AccordionItem.displayName = ITEM_NAME$1;
20586
20828
  var HEADER_NAME = "AccordionHeader";
20587
20829
  var AccordionHeader = /* @__PURE__ */ react$1.forwardRef(function(props, forwardedRef) {
20588
- var { __scopeAccordion } = props, headerProps = _objectWithoutProperties(props, _excluded6$8);
20830
+ var { __scopeAccordion } = props, headerProps = _objectWithoutProperties(props, _excluded6$9);
20589
20831
  var accordionContext = useAccordionContext(__scopeAccordion);
20590
20832
  var itemContext = useAccordionItemContext(__scopeAccordion);
20591
20833
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(H1, _objectSpread2(_objectSpread2({
@@ -21555,7 +21797,7 @@ var _excluded$43 = ["scope"], _excluded2$23 = [
21555
21797
  "scope",
21556
21798
  "forceMount",
21557
21799
  "children"
21558
- ], _excluded3$16 = ["scope"], _excluded4$13 = ["forceMount"], _excluded5$11 = ["scope"], _excluded6$7 = ["children", "context"], _excluded7$4 = [
21800
+ ], _excluded3$16 = ["scope"], _excluded4$13 = ["forceMount"], _excluded5$11 = ["scope"], _excluded6$8 = ["children", "context"], _excluded7$4 = [
21559
21801
  "trapFocus",
21560
21802
  "onOpenAutoFocus",
21561
21803
  "onCloseAutoFocus",
@@ -21745,7 +21987,7 @@ var DialogContent = DialogContentFrame.styleable(function DialogContent2(param,
21745
21987
  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
21988
  });
21747
21989
  var DialogContentModal = /* @__PURE__ */ react$1.forwardRef(function(param, forwardedRef) {
21748
- var { children, context } = param, props = _objectWithoutProperties(param, _excluded6$7);
21990
+ var { children, context } = param, props = _objectWithoutProperties(param, _excluded6$8);
21749
21991
  var contentRef = react$1.useRef(null);
21750
21992
  var composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
21751
21993
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogContentImpl, _objectSpread2(_objectSpread2(_objectSpread2({}, props), {}, {
@@ -21952,7 +22194,7 @@ var _excluded$42 = [
21952
22194
  "__native",
21953
22195
  "onPress",
21954
22196
  "__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"];
22197
+ ], _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
22198
  var getAlertDialogScope = function(scope) {
21957
22199
  return scope;
21958
22200
  };
@@ -22012,7 +22254,7 @@ var AlertDialogContent = /* @__PURE__ */ react$1.forwardRef(function AlertDialog
22012
22254
  });
22013
22255
  var TITLE_NAME = "AlertDialogTitle";
22014
22256
  var AlertDialogTitle = styledExport(View, { name: TITLE_NAME }).styleable(function AlertDialogTitle2(props, forwardedRef) {
22015
- var { scope } = props, titleProps = _objectWithoutProperties(props, _excluded6$6);
22257
+ var { scope } = props, titleProps = _objectWithoutProperties(props, _excluded6$7);
22016
22258
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogTitle, _objectSpread2(_objectSpread2({ scope: getAlertDialogScope(scope) }, titleProps), {}, { ref: forwardedRef }));
22017
22259
  });
22018
22260
  var DESCRIPTION_NAME = "AlertDialogDescription";
@@ -24411,7 +24653,7 @@ var _excluded$30 = ["scope", "children"], _excluded2$16 = ["virtualRef", "scope"
24411
24653
  "scope",
24412
24654
  "animatePosition",
24413
24655
  "transition"
24414
- ], _excluded6$5 = [
24656
+ ], _excluded6$6 = [
24415
24657
  "offset",
24416
24658
  "size",
24417
24659
  "borderWidth"
@@ -24808,7 +25050,7 @@ var PopperArrow = /* @__PURE__ */ react$1.forwardRef(function PopperArrow2(props
24808
25050
  var _context_arrowStyle, _context_arrowStyle1;
24809
25051
  var isAnimatePosControlled = "animatePosition" in propsIn;
24810
25052
  var { scope, animatePosition, transition } = propsIn, rest = _objectWithoutProperties(propsIn, _excluded5$8);
24811
- var { offset, size: sizeProp, borderWidth = 0 } = rest, arrowProps = _objectWithoutProperties(rest, _excluded6$5);
25053
+ var { offset, size: sizeProp, borderWidth = 0 } = rest, arrowProps = _objectWithoutProperties(rest, _excluded6$6);
24812
25054
  var context = usePopperContext(scope);
24813
25055
  var sizeVal = typeof sizeProp === "number" ? sizeProp : getVariableValue(getSpace(sizeProp !== null && sizeProp !== void 0 ? sizeProp : context.size, {
24814
25056
  shift: -2,
@@ -25032,7 +25274,7 @@ var _excluded$29 = [
25032
25274
  "disabled",
25033
25275
  "textValue",
25034
25276
  "unstyled"
25035
- ], _excluded6$4 = [
25277
+ ], _excluded6$5 = [
25036
25278
  "ios",
25037
25279
  "androidIconName",
25038
25280
  "iosIconName"
@@ -25444,7 +25686,7 @@ function createBaseMenu(param) {
25444
25686
  var ITEM_IMAGE = "MenuItemImage";
25445
25687
  var MenuItemImage = /* @__PURE__ */ react$1.forwardRef(function(props, forwardedRef) {
25446
25688
  var { ios, androidIconName, iosIconName } = props;
25447
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_Image, _objectSpread2(_objectSpread2({}, _objectWithoutProperties(props, _excluded6$4)), {}, { ref: forwardedRef }));
25689
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_Image, _objectSpread2(_objectSpread2({}, _objectWithoutProperties(props, _excluded6$5)), {}, { ref: forwardedRef }));
25448
25690
  });
25449
25691
  MenuItemImage.displayName = ITEM_IMAGE;
25450
25692
  var ITEM_ICON = "MenuItemIcon";
@@ -25834,37 +26076,49 @@ init_index_native$3();
25834
26076
  init_index_native();
25835
26077
  init_objectWithoutProperties();
25836
26078
  init_objectSpread2();
25837
- var _excluded$28 = [
26079
+ var _excluded$28 = ["children"], _excluded2$14 = [
25838
26080
  "value",
25839
26081
  "onValueChange",
25840
26082
  "children"
25841
- ], _excluded2$14 = ["value", "children"], _excluded3$10 = [
26083
+ ], _excluded3$10 = ["value", "children"], _excluded4$8 = [
25842
26084
  "checked",
25843
26085
  "onCheckedChange",
25844
26086
  "value",
25845
26087
  "onValueChange",
25846
26088
  "children"
25847
- ], _excluded4$8 = ["children"], _excluded5$6 = ["children"];
26089
+ ], _excluded5$6 = ["children"], _excluded6$4 = ["children"];
25848
26090
  var MAPPED_TYPES = [
25849
26091
  "SubContent",
25850
26092
  "SubTrigger",
25851
26093
  "Content",
25852
26094
  "Sub",
25853
26095
  "Group",
25854
- "CheckboxItem"
26096
+ "Item",
26097
+ "ItemTitle",
26098
+ "ItemSubtitle",
26099
+ "ItemIcon",
26100
+ "ItemImage",
26101
+ "ItemIndicator",
26102
+ "Label",
26103
+ "Separator",
26104
+ "CheckboxItem",
26105
+ "Preview",
26106
+ "Auxiliary"
25855
26107
  ];
25856
26108
  var CONTAINER_TYPES = [
25857
26109
  "SubContent",
26110
+ "SubTrigger",
25858
26111
  "Content",
25859
26112
  "Sub",
25860
- "Group"
26113
+ "Group",
26114
+ "Item"
25861
26115
  ];
25862
26116
  function getComponentType(displayName) {
25863
26117
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
25864
26118
  try {
25865
26119
  for (var _iterator = MAPPED_TYPES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
25866
26120
  var type = _step.value;
25867
- if (displayName === type || displayName.includes(`(${type})`)) return type;
26121
+ if (displayName === type || displayName === `Menu${type}` || displayName === `ContextMenu${type}` || displayName.includes(`(${type})`)) return type;
25868
26122
  }
25869
26123
  } catch (err) {
25870
26124
  _didIteratorError = true;
@@ -25908,23 +26162,34 @@ var createNativeMenu = function(MenuType) {
25908
26162
  var warned = false;
25909
26163
  function resolve() {
25910
26164
  if (resolved) return resolved;
25911
- var zeego = getZeego();
25912
- if (!zeego.isEnabled) {
26165
+ var adapter = getNativeMenuAdapter();
26166
+ if (!adapter) {
25913
26167
  if (!warned) {
25914
26168
  warned = true;
25915
- console.warn(`Warning: Must call import '@tamagui/native/setup-zeego' at your app entry point to use native menus`);
26169
+ console.warn(`Warning: Register a native menu adapter before rendering Tamagui native menus`);
25916
26170
  }
25917
26171
  return null;
25918
26172
  }
25919
- var menu = isContextMenu ? zeego.state.ContextMenu : zeego.state.DropdownMenu;
26173
+ var menu = isContextMenu ? adapter.ContextMenu : adapter.Menu;
25920
26174
  resolved = {
25921
26175
  menu,
25922
26176
  componentMap: {
25923
26177
  SubContent: menu.SubContent,
26178
+ SubTrigger: menu.SubTrigger,
25924
26179
  Content: menu.Content,
25925
26180
  Sub: menu.Sub,
25926
26181
  Group: menu.Group,
25927
- SubTrigger: menu.SubTrigger
26182
+ Item: menu.Item,
26183
+ ItemTitle: menu.ItemTitle,
26184
+ ItemSubtitle: menu.ItemSubtitle,
26185
+ ItemIcon: menu.ItemIcon,
26186
+ ItemImage: menu.ItemImage,
26187
+ ItemIndicator: menu.ItemIndicator,
26188
+ Label: menu.Label,
26189
+ Separator: menu.Separator,
26190
+ CheckboxItem: menu.CheckboxItem,
26191
+ Preview: menu.Preview,
26192
+ Auxiliary: menu.Auxiliary
25928
26193
  }
25929
26194
  };
25930
26195
  return resolved;
@@ -25962,7 +26227,9 @@ var createNativeMenu = function(MenuType) {
25962
26227
  var release = function() {
25963
26228
  return triggerBoundaryHandlers === null || triggerBoundaryHandlers === void 0 ? void 0 : triggerBoundaryHandlers.release(debugName);
25964
26229
  };
25965
- result.push(/* @__PURE__ */ react$1.default.cloneElement(child, {
26230
+ var { children: triggerChildren } = props, triggerProps = _objectWithoutProperties(props, _excluded$28);
26231
+ result.push(/* @__PURE__ */ react$1.default.createElement(menu.Trigger, _objectSpread2(_objectSpread2({}, triggerProps), {}, {
26232
+ key: child.key,
25966
26233
  onTouchStart: composeHandlers(claim, props.onTouchStart),
25967
26234
  onTouchEnd: composeHandlers(props.onTouchEnd, release),
25968
26235
  onTouchCancel: composeHandlers(props.onTouchCancel, release),
@@ -25971,11 +26238,11 @@ var createNativeMenu = function(MenuType) {
25971
26238
  onResponderTerminate: composeHandlers(props.onResponderTerminate, release),
25972
26239
  onPressIn: composeHandlers(claim, props.onPressIn),
25973
26240
  onPressOut: composeHandlers(props.onPressOut, release)
25974
- }));
26241
+ }), triggerChildren));
25975
26242
  return;
25976
26243
  }
25977
26244
  if (displayName.includes("RadioGroup")) {
25978
- var { value: rgValue, onValueChange: rgOnValueChange, children: rgChildren } = props, rest = _objectWithoutProperties(props, _excluded$28);
26245
+ var { value: rgValue, onValueChange: rgOnValueChange, children: rgChildren } = props, rest = _objectWithoutProperties(props, _excluded2$14);
25979
26246
  result.push(/* @__PURE__ */ react$1.default.createElement(menu.Group, _objectSpread2(_objectSpread2({}, rest), {}, { key: child.key }), transformChildren(menu, map, rgChildren, false, triggerBoundaryHandlers, {
25980
26247
  value: rgValue,
25981
26248
  onValueChange: rgOnValueChange
@@ -25983,7 +26250,7 @@ var createNativeMenu = function(MenuType) {
25983
26250
  return;
25984
26251
  }
25985
26252
  if (displayName.includes("RadioItem") && radioContext) {
25986
- var { value: itemValue, children: rChildren } = props, rest1 = _objectWithoutProperties(props, _excluded2$14);
26253
+ var { value: itemValue, children: rChildren } = props, rest1 = _objectWithoutProperties(props, _excluded3$10);
25987
26254
  var cleanChildren = react$1.default.Children.map(rChildren, function(c) {
25988
26255
  var _c_type;
25989
26256
  if (!/* @__PURE__ */ react$1.default.isValidElement(c)) return c;
@@ -25997,12 +26264,12 @@ var createNativeMenu = function(MenuType) {
25997
26264
  var _radioContext_onValueChange;
25998
26265
  return (_radioContext_onValueChange = radioContext.onValueChange) === null || _radioContext_onValueChange === void 0 ? void 0 : _radioContext_onValueChange.call(radioContext, itemValue);
25999
26266
  }
26000
- }), cleanChildren));
26267
+ }), transformChildren(menu, map, cleanChildren, false, triggerBoundaryHandlers, radioContext)));
26001
26268
  return;
26002
26269
  }
26003
26270
  var componentType = getComponentType(displayName);
26004
26271
  if (componentType === "CheckboxItem") {
26005
- var { checked, onCheckedChange, value, onValueChange, children: cbChildren } = props, rest2 = _objectWithoutProperties(props, _excluded3$10);
26272
+ var { checked, onCheckedChange, value, onValueChange, children: cbChildren } = props, rest2 = _objectWithoutProperties(props, _excluded4$8);
26006
26273
  var finalValue = value !== null && value !== void 0 ? value : checked ? "on" : "off";
26007
26274
  var finalOnValueChange = onValueChange !== null && onValueChange !== void 0 ? onValueChange : onCheckedChange && function(v) {
26008
26275
  return onCheckedChange(v === "on");
@@ -26017,19 +26284,20 @@ var createNativeMenu = function(MenuType) {
26017
26284
  key: child.key,
26018
26285
  value: finalValue,
26019
26286
  onValueChange: finalOnValueChange
26020
- }), cleanChildren1));
26287
+ }), transformChildren(menu, map, cleanChildren1, false, triggerBoundaryHandlers, radioContext)));
26021
26288
  return;
26022
26289
  }
26023
26290
  if (componentType) {
26024
- var { children: childChildren } = props, restProps = _objectWithoutProperties(props, _excluded4$8);
26291
+ var { children: childChildren } = props, restProps = _objectWithoutProperties(props, _excluded5$6);
26292
+ var AdapterComponent = map[componentType];
26025
26293
  var isContainer = CONTAINER_TYPES.includes(componentType);
26026
26294
  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));
26295
+ result.push(/* @__PURE__ */ react$1.default.createElement(AdapterComponent, _objectSpread2(_objectSpread2({}, restProps), {}, { key: child.key }), isContainer ? transformChildren(menu, map, childChildren, shouldReverse, triggerBoundaryHandlers, radioContext) : childChildren));
26028
26296
  return;
26029
26297
  }
26030
26298
  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));
26299
+ var { children: itemChildren } = props, itemProps = _objectWithoutProperties(props, _excluded6$4);
26300
+ result.push(/* @__PURE__ */ react$1.default.createElement(menu.Item, _objectSpread2(_objectSpread2({}, itemProps), {}, { key: child.key }), transformChildren(menu, map, itemChildren, false, triggerBoundaryHandlers, radioContext)));
26033
26301
  return;
26034
26302
  }
26035
26303
  result.push(child);
@@ -26037,7 +26305,7 @@ var createNativeMenu = function(MenuType) {
26037
26305
  if (isIos && shouldReverseOnIos && !isContextMenu) result.reverse();
26038
26306
  return result;
26039
26307
  }
26040
- function lazyZeego(name, displayName) {
26308
+ function lazyAdapter(name, displayName) {
26041
26309
  var Comp = function(props) {
26042
26310
  var z = resolve();
26043
26311
  if (!z) return null;
@@ -26046,20 +26314,20 @@ var createNativeMenu = function(MenuType) {
26046
26314
  Comp.displayName = displayName || name;
26047
26315
  return Comp;
26048
26316
  }
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");
26317
+ var Trigger = lazyAdapter("Trigger");
26318
+ var Content = lazyAdapter("Content");
26319
+ var Item = lazyAdapter("Item");
26320
+ var ItemTitle = lazyAdapter("ItemTitle");
26321
+ var ItemSubtitle = lazyAdapter("ItemSubtitle");
26322
+ var ItemIcon = lazyAdapter("ItemIcon");
26323
+ var ItemImage = lazyAdapter("ItemImage");
26324
+ var ItemIndicator = lazyAdapter("ItemIndicator");
26325
+ var Group = lazyAdapter("Group");
26326
+ var Label = lazyAdapter("Label");
26327
+ var Separator = lazyAdapter("Separator");
26328
+ var Sub = lazyAdapter("Sub");
26329
+ var SubTrigger = lazyAdapter("SubTrigger");
26330
+ var SubContent = lazyAdapter("SubContent");
26063
26331
  var Portal = function(param) {
26064
26332
  var { children } = param;
26065
26333
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children });
@@ -26083,11 +26351,11 @@ var createNativeMenu = function(MenuType) {
26083
26351
  return null;
26084
26352
  };
26085
26353
  CheckboxItem.displayName = "CheckboxItem";
26086
- var Preview = isContextMenu ? lazyZeego("Preview", `${MenuType}Preview`) : function() {
26354
+ var Preview = isContextMenu ? lazyAdapter("Preview", `${MenuType}Preview`) : function() {
26087
26355
  return null;
26088
26356
  };
26089
26357
  Preview.displayName = `${MenuType}Preview`;
26090
- var Auxiliary = isContextMenu ? lazyZeego("Auxiliary", `${MenuType}Auxiliary`) : function() {
26358
+ var Auxiliary = isContextMenu ? lazyAdapter("Auxiliary", `${MenuType}Auxiliary`) : function() {
26091
26359
  return null;
26092
26360
  };
26093
26361
  Auxiliary.displayName = `${MenuType}Auxiliary`;