tamagui 2.6.4 → 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/native.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 {
@@ -11618,7 +11618,7 @@ var init_useWindowDimensions = __esmMin((() => {
11618
11618
  * LICENSE file in the root directory of this source tree.
11619
11619
  */
11620
11620
  var require_react_dom_production = /* @__PURE__ */ __commonJSMin(((exports) => {
11621
- var React$45 = require("react");
11621
+ var React$46 = require("react");
11622
11622
  function formatProdErrorMessage(code) {
11623
11623
  var url = "https://react.dev/errors/" + code;
11624
11624
  if (1 < arguments.length) {
@@ -11645,7 +11645,7 @@ var require_react_dom_production = /* @__PURE__ */ __commonJSMin(((exports) => {
11645
11645
  p: 0,
11646
11646
  findDOMNode: null
11647
11647
  };
11648
- var ReactSharedInternals = React$45.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
11648
+ var ReactSharedInternals = React$46.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
11649
11649
  exports.flushSync = function(fn) {
11650
11650
  var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p;
11651
11651
  try {
@@ -12461,7 +12461,7 @@ function clamp(value, param) {
12461
12461
  var init_clamp_native = __esmMin((() => {}));
12462
12462
  //#endregion
12463
12463
  //#region ../../core/helpers/dist/esm/composeEventHandlers.native.js
12464
- function _type_of$14(obj) {
12464
+ function _type_of$15(obj) {
12465
12465
  "@swc/helpers - typeof";
12466
12466
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
12467
12467
  }
@@ -12470,7 +12470,7 @@ function composeEventHandlers(og, next) {
12470
12470
  if (!og || !next) return next || og || void 0;
12471
12471
  return function(event) {
12472
12472
  og === null || og === void 0 || og(event);
12473
- 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);
12473
+ 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);
12474
12474
  };
12475
12475
  }
12476
12476
  var init_composeEventHandlers_native = __esmMin((() => {}));
@@ -12907,7 +12907,7 @@ var init_index_native$5 = __esmMin((() => {
12907
12907
  }));
12908
12908
  //#endregion
12909
12909
  //#region ../../core/web/dist/esm/createVariable.native.js
12910
- function _type_of$13(obj) {
12910
+ function _type_of$14(obj) {
12911
12911
  "@swc/helpers - typeof";
12912
12912
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
12913
12913
  }
@@ -12920,7 +12920,7 @@ function variableToString(vrble) {
12920
12920
  return `${vrble || ""}`;
12921
12921
  }
12922
12922
  function isVariable(v) {
12923
- return v && (typeof v === "undefined" ? "undefined" : _type_of$13(v)) === "object" && "isVar" in v;
12923
+ return v && (typeof v === "undefined" ? "undefined" : _type_of$14(v)) === "object" && "isVar" in v;
12924
12924
  }
12925
12925
  function getVariable(nameOrVariable) {
12926
12926
  var group = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "size";
@@ -13972,30 +13972,269 @@ var init_keyboardControllerState_native = __esmMin((() => {
13972
13972
  });
13973
13973
  }));
13974
13974
  //#endregion
13975
- //#region ../../core/native/dist/esm/zeegoState.native.js
13976
- function getZeego() {
13977
- return {
13978
- get isEnabled() {
13979
- return state$1.get().enabled;
13980
- },
13981
- get state() {
13982
- return state$1.get();
13983
- },
13984
- set(newState) {
13985
- state$1.set(newState);
13986
- }
13987
- };
13975
+ //#region ../../core/native/dist/esm/nativeMenuState.native.js
13976
+ function registerNativeMenuAdapter(adapter) {
13977
+ var current = state$1.get().adapter;
13978
+ 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.`);
13979
+ state$1.set({
13980
+ enabled: true,
13981
+ adapter
13982
+ });
13983
+ }
13984
+ function getNativeMenuAdapter() {
13985
+ return state$1.get().adapter;
13988
13986
  }
13989
13987
  var state$1;
13990
- var init_zeegoState_native = __esmMin((() => {
13988
+ var init_nativeMenuState_native = __esmMin((() => {
13991
13989
  init_globalState_native();
13992
- state$1 = createGlobalState(`zeego`, {
13990
+ state$1 = createGlobalState("native-menu-adapter", {
13993
13991
  enabled: false,
13994
- DropdownMenu: null,
13995
- ContextMenu: null
13992
+ adapter: null
13996
13993
  });
13997
13994
  }));
13998
13995
  //#endregion
13996
+ //#region ../../core/native/dist/esm/expoUIMenuAdapter.native.js
13997
+ function _type_of$13(obj) {
13998
+ "@swc/helpers - typeof";
13999
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
14000
+ }
14001
+ function marker(name) {
14002
+ var Marker = function() {
14003
+ return null;
14004
+ };
14005
+ Marker.displayName = `ExpoUI${name}`;
14006
+ return Marker;
14007
+ }
14008
+ function elementOfType(children, type) {
14009
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14010
+ try {
14011
+ for (var _iterator = react$1.default.Children.toArray(children)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
14012
+ var child = _step.value;
14013
+ if (/* @__PURE__ */ react$1.default.isValidElement(child) && child.type === type) return child;
14014
+ }
14015
+ } catch (err) {
14016
+ _didIteratorError = true;
14017
+ _iteratorError = err;
14018
+ } finally {
14019
+ try {
14020
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
14021
+ } finally {
14022
+ if (_didIteratorError) throw _iteratorError;
14023
+ }
14024
+ }
14025
+ return null;
14026
+ }
14027
+ function textFromNode(node) {
14028
+ if (typeof node === "string" || typeof node === "number") return String(node);
14029
+ if (!/* @__PURE__ */ react$1.default.isValidElement(node)) return "";
14030
+ return react$1.default.Children.toArray(node.props.children).map(textFromNode).join("");
14031
+ }
14032
+ function createExpoUIMenuAdapter(param) {
14033
+ var { MenuView } = param;
14034
+ var NativeMenuView = MenuView;
14035
+ function createModule(isContextMenu) {
14036
+ var Trigger = marker("Trigger");
14037
+ var Content = marker("Content");
14038
+ var Item = marker("Item");
14039
+ var ItemTitle = marker("ItemTitle");
14040
+ var ItemSubtitle = marker("ItemSubtitle");
14041
+ var ItemIcon = marker("ItemIcon");
14042
+ var ItemImage = marker("ItemImage");
14043
+ var ItemIndicator = marker("ItemIndicator");
14044
+ var Group = marker("Group");
14045
+ var Label = marker("Label");
14046
+ var Separator = marker("Separator");
14047
+ var Sub = marker("Sub");
14048
+ var SubTrigger = marker("SubTrigger");
14049
+ var SubContent = marker("SubContent");
14050
+ var CheckboxItem = marker("CheckboxItem");
14051
+ var Preview = marker("Preview");
14052
+ var Auxiliary = marker("Auxiliary");
14053
+ function Root(param2) {
14054
+ var { children, onOpenChange, onOpenWillChange } = param2;
14055
+ var trigger = elementOfType(children, Trigger);
14056
+ var content = elementOfType(children, Content);
14057
+ var preview = elementOfType(children, Preview);
14058
+ var auxiliary = elementOfType(children, Auxiliary);
14059
+ if (preview || auxiliary) throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
14060
+ if (!trigger || !content) throw new Error("Tamagui native menus require one Trigger and one Content");
14061
+ var nextId = 0;
14062
+ var handlers = /* @__PURE__ */ new Map();
14063
+ function actionId(element) {
14064
+ return element.key == null ? `tamagui-menu-${nextId++}` : String(element.key).replace(/^\.\$/, "");
14065
+ }
14066
+ function itemTitle(element) {
14067
+ if (typeof element.props.textValue === "string") return element.props.textValue;
14068
+ var title = elementOfType(element.props.children, ItemTitle);
14069
+ return title ? textFromNode(title.props.children) : "";
14070
+ }
14071
+ function actionImage(element) {
14072
+ var image = elementOfType(element.props.children, ItemImage);
14073
+ if (image === null || image === void 0 ? void 0 : image.props.source) return image.props.source;
14074
+ var icon = elementOfType(element.props.children, ItemIcon);
14075
+ if (!icon) return void 0;
14076
+ var ios = icon.props.ios;
14077
+ if ((typeof ios === "undefined" ? "undefined" : _type_of$13(ios)) === "object" && ios && "name" in ios && typeof ios.name === "string") return ios.name;
14078
+ return typeof icon.props.iosIconName === "string" ? icon.props.iosIconName : void 0;
14079
+ }
14080
+ function attributes(element) {
14081
+ var destructive = element.props.destructive === true;
14082
+ var disabled = element.props.disabled === true;
14083
+ var hidden = element.props.hidden === true;
14084
+ return destructive || disabled || hidden ? {
14085
+ destructive,
14086
+ disabled,
14087
+ hidden
14088
+ } : void 0;
14089
+ }
14090
+ function actionsFrom(childrenToParse) {
14091
+ var actions = [];
14092
+ var section = null;
14093
+ function append(action) {
14094
+ if (section) section.push(action);
14095
+ else actions.push(action);
14096
+ }
14097
+ function flushSection() {
14098
+ if (!(section === null || section === void 0 ? void 0 : section.length)) {
14099
+ section = [];
14100
+ return;
14101
+ }
14102
+ actions.push({
14103
+ id: `tamagui-menu-section-${nextId++}`,
14104
+ title: "",
14105
+ subactions: section,
14106
+ displayInline: true
14107
+ });
14108
+ section = [];
14109
+ }
14110
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14111
+ try {
14112
+ var _loop = function() {
14113
+ var child = _step.value;
14114
+ if (!/* @__PURE__ */ react$1.default.isValidElement(child)) return "continue";
14115
+ if (child.type === Separator) {
14116
+ if (!section) section = actions.splice(0);
14117
+ flushSection();
14118
+ return "continue";
14119
+ }
14120
+ if (child.type === Group) {
14121
+ var label2 = elementOfType(child.props.children, Label);
14122
+ append({
14123
+ id: actionId(child),
14124
+ title: label2 ? textFromNode(label2.props.children) : "",
14125
+ subactions: actionsFrom(child.props.children),
14126
+ displayInline: true
14127
+ });
14128
+ return "continue";
14129
+ }
14130
+ if (child.type === Sub) {
14131
+ var subTrigger = elementOfType(child.props.children, SubTrigger);
14132
+ var subContent = elementOfType(child.props.children, SubContent);
14133
+ if (!subTrigger || !subContent) throw new Error("Tamagui native submenus require one SubTrigger and SubContent");
14134
+ append({
14135
+ id: actionId(child),
14136
+ title: itemTitle(subTrigger),
14137
+ image: actionImage(subTrigger),
14138
+ attributes: attributes(subTrigger),
14139
+ subactions: actionsFrom(subContent.props.children)
14140
+ });
14141
+ return "continue";
14142
+ }
14143
+ if (child.type !== Item && child.type !== CheckboxItem) return "continue";
14144
+ if (elementOfType(child.props.children, ItemSubtitle)) throw new Error("@expo/ui/community/menu does not support menu item subtitles");
14145
+ var id = actionId(child);
14146
+ if (child.type === CheckboxItem) {
14147
+ var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
14148
+ var onValueChange = child.props.onValueChange;
14149
+ var onCheckedChange = child.props.onCheckedChange;
14150
+ handlers.set(id, function() {
14151
+ if (typeof onValueChange === "function") onValueChange(current ? "off" : "on", current ? "on" : "off");
14152
+ else if (typeof onCheckedChange === "function") onCheckedChange(!current);
14153
+ });
14154
+ append({
14155
+ id,
14156
+ title: itemTitle(child),
14157
+ image: actionImage(child),
14158
+ state: current ? "on" : "off",
14159
+ attributes: attributes(child)
14160
+ });
14161
+ return "continue";
14162
+ }
14163
+ var onSelect = child.props.onSelect;
14164
+ if (typeof onSelect === "function") handlers.set(id, function() {
14165
+ return onSelect();
14166
+ });
14167
+ append({
14168
+ id,
14169
+ title: itemTitle(child),
14170
+ image: actionImage(child),
14171
+ attributes: attributes(child)
14172
+ });
14173
+ };
14174
+ for (var _iterator = react$1.default.Children.toArray(childrenToParse)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
14175
+ } catch (err) {
14176
+ _didIteratorError = true;
14177
+ _iteratorError = err;
14178
+ } finally {
14179
+ try {
14180
+ if (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();
14181
+ } finally {
14182
+ if (_didIteratorError) throw _iteratorError;
14183
+ }
14184
+ }
14185
+ if (section) flushSection();
14186
+ return actions;
14187
+ }
14188
+ var label = elementOfType(content.props.children, Label);
14189
+ var triggerAction = trigger.props.action;
14190
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NativeMenuView, {
14191
+ actions: actionsFrom(content.props.children),
14192
+ title: label ? textFromNode(label.props.children) : void 0,
14193
+ shouldOpenOnLongPress: triggerAction === "longPress" || triggerAction !== "press" && isContextMenu,
14194
+ onPressAction: function(event) {
14195
+ var _handlers_get;
14196
+ return (_handlers_get = handlers.get(event.nativeEvent.event)) === null || _handlers_get === void 0 ? void 0 : _handlers_get();
14197
+ },
14198
+ onOpenMenu: function() {
14199
+ onOpenWillChange === null || onOpenWillChange === void 0 || onOpenWillChange(true);
14200
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(true);
14201
+ },
14202
+ onCloseMenu: function() {
14203
+ onOpenWillChange === null || onOpenWillChange === void 0 || onOpenWillChange(false);
14204
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(false);
14205
+ },
14206
+ children: trigger.props.children
14207
+ });
14208
+ }
14209
+ return {
14210
+ Root,
14211
+ Trigger,
14212
+ Content,
14213
+ Item,
14214
+ ItemTitle,
14215
+ ItemSubtitle,
14216
+ ItemIcon,
14217
+ ItemImage,
14218
+ ItemIndicator,
14219
+ Group,
14220
+ Label,
14221
+ Separator,
14222
+ Sub,
14223
+ SubTrigger,
14224
+ SubContent,
14225
+ CheckboxItem,
14226
+ Preview,
14227
+ Auxiliary
14228
+ };
14229
+ }
14230
+ return {
14231
+ name: "expo-ui",
14232
+ Menu: createModule(false),
14233
+ ContextMenu: createModule(true)
14234
+ };
14235
+ }
14236
+ var init_expoUIMenuAdapter_native = __esmMin((() => {}));
14237
+ //#endregion
13999
14238
  //#region ../../core/native/dist/esm/nativeMenuContext.native.js
14000
14239
  var NativeMenuContext;
14001
14240
  var init_nativeMenuContext_native = __esmMin((() => {
@@ -14058,15 +14297,17 @@ var index_native_exports = /* @__PURE__ */ __exportAll({
14058
14297
  NativePortal: () => NativePortal,
14059
14298
  NativePortalHost: () => NativePortalHost,
14060
14299
  NativePortalProvider: () => NativePortalProvider,
14300
+ createExpoUIMenuAdapter: () => createExpoUIMenuAdapter,
14061
14301
  getBurnt: () => getBurnt,
14062
14302
  getGestureHandler: () => getGestureHandler,
14063
14303
  getKeyboardControllerState: () => getKeyboardControllerState$1,
14064
14304
  getLinearGradient: () => getLinearGradient,
14305
+ getNativeMenuAdapter: () => getNativeMenuAdapter,
14065
14306
  getPortal: () => getPortal,
14066
14307
  getSafeArea: () => getSafeArea,
14067
14308
  getWorklets: () => getWorklets,
14068
- getZeego: () => getZeego,
14069
14309
  isKeyboardControllerEnabled: () => isKeyboardControllerEnabled$1,
14310
+ registerNativeMenuAdapter: () => registerNativeMenuAdapter,
14070
14311
  setKeyboardControllerState: () => setKeyboardControllerState,
14071
14312
  unstable_claimExternalPressOwnership: () => claimExternalPressOwnership,
14072
14313
  unstable_hasExternalPressOwnership: () => hasExternalPressOwnership,
@@ -14079,7 +14320,8 @@ var init_index_native$3 = __esmMin((() => {
14079
14320
  init_safeAreaState_native();
14080
14321
  init_linearGradientState_native();
14081
14322
  init_keyboardControllerState_native();
14082
- init_zeegoState_native();
14323
+ init_nativeMenuState_native();
14324
+ init_expoUIMenuAdapter_native();
14083
14325
  init_nativeMenuContext_native();
14084
14326
  init_burntState_native();
14085
14327
  init_components_native();
@@ -20334,7 +20576,7 @@ var _excluded$48 = ["type"], _excluded2$26 = [
20334
20576
  "disabled",
20335
20577
  "dir",
20336
20578
  "orientation"
20337
- ], _excluded5$12 = ["__scopeAccordion", "value"], _excluded6$8 = ["__scopeAccordion"], _excluded7$5 = ["__scopeAccordion"], _excluded8$5 = ["__scopeAccordion", "forceMount"], _excluded9$5 = ["children", "transition"];
20579
+ ], _excluded5$12 = ["__scopeAccordion", "value"], _excluded6$9 = ["__scopeAccordion"], _excluded7$5 = ["__scopeAccordion"], _excluded8$5 = ["__scopeAccordion", "forceMount"], _excluded9$5 = ["children", "transition"];
20338
20580
  var ACCORDION_NAME = "Accordion";
20339
20581
  var ACCORDION_KEYS = [
20340
20582
  "Home",
@@ -20518,7 +20760,7 @@ var AccordionItem = /* @__PURE__ */ react$1.forwardRef(function(props, forwarded
20518
20760
  AccordionItem.displayName = ITEM_NAME$1;
20519
20761
  var HEADER_NAME = "AccordionHeader";
20520
20762
  var AccordionHeader = /* @__PURE__ */ react$1.forwardRef(function(props, forwardedRef) {
20521
- var { __scopeAccordion } = props, headerProps = _objectWithoutProperties(props, _excluded6$8);
20763
+ var { __scopeAccordion } = props, headerProps = _objectWithoutProperties(props, _excluded6$9);
20522
20764
  var accordionContext = useAccordionContext(__scopeAccordion);
20523
20765
  var itemContext = useAccordionItemContext(__scopeAccordion);
20524
20766
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(H1, _objectSpread2(_objectSpread2({
@@ -21488,7 +21730,7 @@ var _excluded$43 = ["scope"], _excluded2$23 = [
21488
21730
  "scope",
21489
21731
  "forceMount",
21490
21732
  "children"
21491
- ], _excluded3$16 = ["scope"], _excluded4$13 = ["forceMount"], _excluded5$11 = ["scope"], _excluded6$7 = ["children", "context"], _excluded7$4 = [
21733
+ ], _excluded3$16 = ["scope"], _excluded4$13 = ["forceMount"], _excluded5$11 = ["scope"], _excluded6$8 = ["children", "context"], _excluded7$4 = [
21492
21734
  "trapFocus",
21493
21735
  "onOpenAutoFocus",
21494
21736
  "onCloseAutoFocus",
@@ -21678,7 +21920,7 @@ var DialogContent = DialogContentFrame.styleable(function DialogContent2(param,
21678
21920
  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 })) });
21679
21921
  });
21680
21922
  var DialogContentModal = /* @__PURE__ */ react$1.forwardRef(function(param, forwardedRef) {
21681
- var { children, context } = param, props = _objectWithoutProperties(param, _excluded6$7);
21923
+ var { children, context } = param, props = _objectWithoutProperties(param, _excluded6$8);
21682
21924
  var contentRef = react$1.useRef(null);
21683
21925
  var composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
21684
21926
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogContentImpl, _objectSpread2(_objectSpread2(_objectSpread2({}, props), {}, {
@@ -21885,7 +22127,7 @@ var _excluded$42 = [
21885
22127
  "__native",
21886
22128
  "onPress",
21887
22129
  "__onPress"
21888
- ], _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"];
22130
+ ], _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"];
21889
22131
  var getAlertDialogScope = function(scope) {
21890
22132
  return scope;
21891
22133
  };
@@ -21945,7 +22187,7 @@ var AlertDialogContent = /* @__PURE__ */ react$1.forwardRef(function AlertDialog
21945
22187
  });
21946
22188
  var TITLE_NAME = "AlertDialogTitle";
21947
22189
  var AlertDialogTitle = styledExport(View, { name: TITLE_NAME }).styleable(function AlertDialogTitle2(props, forwardedRef) {
21948
- var { scope } = props, titleProps = _objectWithoutProperties(props, _excluded6$6);
22190
+ var { scope } = props, titleProps = _objectWithoutProperties(props, _excluded6$7);
21949
22191
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DialogTitle, _objectSpread2(_objectSpread2({ scope: getAlertDialogScope(scope) }, titleProps), {}, { ref: forwardedRef }));
21950
22192
  });
21951
22193
  var DESCRIPTION_NAME = "AlertDialogDescription";
@@ -24344,7 +24586,7 @@ var _excluded$30 = ["scope", "children"], _excluded2$16 = ["virtualRef", "scope"
24344
24586
  "scope",
24345
24587
  "animatePosition",
24346
24588
  "transition"
24347
- ], _excluded6$5 = [
24589
+ ], _excluded6$6 = [
24348
24590
  "offset",
24349
24591
  "size",
24350
24592
  "borderWidth"
@@ -24741,7 +24983,7 @@ var PopperArrow = /* @__PURE__ */ react$1.forwardRef(function PopperArrow2(props
24741
24983
  var _context_arrowStyle, _context_arrowStyle1;
24742
24984
  var isAnimatePosControlled = "animatePosition" in propsIn;
24743
24985
  var { scope, animatePosition, transition } = propsIn, rest = _objectWithoutProperties(propsIn, _excluded5$8);
24744
- var { offset, size: sizeProp, borderWidth = 0 } = rest, arrowProps = _objectWithoutProperties(rest, _excluded6$5);
24986
+ var { offset, size: sizeProp, borderWidth = 0 } = rest, arrowProps = _objectWithoutProperties(rest, _excluded6$6);
24745
24987
  var context = usePopperContext(scope);
24746
24988
  var sizeVal = typeof sizeProp === "number" ? sizeProp : getVariableValue(getSpace(sizeProp !== null && sizeProp !== void 0 ? sizeProp : context.size, {
24747
24989
  shift: -2,
@@ -24965,7 +25207,7 @@ var _excluded$29 = [
24965
25207
  "disabled",
24966
25208
  "textValue",
24967
25209
  "unstyled"
24968
- ], _excluded6$4 = [
25210
+ ], _excluded6$5 = [
24969
25211
  "ios",
24970
25212
  "androidIconName",
24971
25213
  "iosIconName"
@@ -25377,7 +25619,7 @@ function createBaseMenu(param) {
25377
25619
  var ITEM_IMAGE = "MenuItemImage";
25378
25620
  var MenuItemImage = /* @__PURE__ */ react$1.forwardRef(function(props, forwardedRef) {
25379
25621
  var { ios, androidIconName, iosIconName } = props;
25380
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_Image, _objectSpread2(_objectSpread2({}, _objectWithoutProperties(props, _excluded6$4)), {}, { ref: forwardedRef }));
25622
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_Image, _objectSpread2(_objectSpread2({}, _objectWithoutProperties(props, _excluded6$5)), {}, { ref: forwardedRef }));
25381
25623
  });
25382
25624
  MenuItemImage.displayName = ITEM_IMAGE;
25383
25625
  var ITEM_ICON = "MenuItemIcon";
@@ -25767,37 +26009,49 @@ init_index_native$3();
25767
26009
  init_index_native();
25768
26010
  init_objectWithoutProperties();
25769
26011
  init_objectSpread2();
25770
- var _excluded$28 = [
26012
+ var _excluded$28 = ["children"], _excluded2$14 = [
25771
26013
  "value",
25772
26014
  "onValueChange",
25773
26015
  "children"
25774
- ], _excluded2$14 = ["value", "children"], _excluded3$10 = [
26016
+ ], _excluded3$10 = ["value", "children"], _excluded4$8 = [
25775
26017
  "checked",
25776
26018
  "onCheckedChange",
25777
26019
  "value",
25778
26020
  "onValueChange",
25779
26021
  "children"
25780
- ], _excluded4$8 = ["children"], _excluded5$6 = ["children"];
26022
+ ], _excluded5$6 = ["children"], _excluded6$4 = ["children"];
25781
26023
  var MAPPED_TYPES = [
25782
26024
  "SubContent",
25783
26025
  "SubTrigger",
25784
26026
  "Content",
25785
26027
  "Sub",
25786
26028
  "Group",
25787
- "CheckboxItem"
26029
+ "Item",
26030
+ "ItemTitle",
26031
+ "ItemSubtitle",
26032
+ "ItemIcon",
26033
+ "ItemImage",
26034
+ "ItemIndicator",
26035
+ "Label",
26036
+ "Separator",
26037
+ "CheckboxItem",
26038
+ "Preview",
26039
+ "Auxiliary"
25788
26040
  ];
25789
26041
  var CONTAINER_TYPES = [
25790
26042
  "SubContent",
26043
+ "SubTrigger",
25791
26044
  "Content",
25792
26045
  "Sub",
25793
- "Group"
26046
+ "Group",
26047
+ "Item"
25794
26048
  ];
25795
26049
  function getComponentType(displayName) {
25796
26050
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
25797
26051
  try {
25798
26052
  for (var _iterator = MAPPED_TYPES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
25799
26053
  var type = _step.value;
25800
- if (displayName === type || displayName.includes(`(${type})`)) return type;
26054
+ if (displayName === type || displayName === `Menu${type}` || displayName === `ContextMenu${type}` || displayName.includes(`(${type})`)) return type;
25801
26055
  }
25802
26056
  } catch (err) {
25803
26057
  _didIteratorError = true;
@@ -25841,23 +26095,34 @@ var createNativeMenu = function(MenuType) {
25841
26095
  var warned = false;
25842
26096
  function resolve() {
25843
26097
  if (resolved) return resolved;
25844
- var zeego = getZeego();
25845
- if (!zeego.isEnabled) {
26098
+ var adapter = getNativeMenuAdapter();
26099
+ if (!adapter) {
25846
26100
  if (!warned) {
25847
26101
  warned = true;
25848
- console.warn(`Warning: Must call import '@tamagui/native/setup-zeego' at your app entry point to use native menus`);
26102
+ console.warn(`Warning: Register a native menu adapter before rendering Tamagui native menus`);
25849
26103
  }
25850
26104
  return null;
25851
26105
  }
25852
- var menu = isContextMenu ? zeego.state.ContextMenu : zeego.state.DropdownMenu;
26106
+ var menu = isContextMenu ? adapter.ContextMenu : adapter.Menu;
25853
26107
  resolved = {
25854
26108
  menu,
25855
26109
  componentMap: {
25856
26110
  SubContent: menu.SubContent,
26111
+ SubTrigger: menu.SubTrigger,
25857
26112
  Content: menu.Content,
25858
26113
  Sub: menu.Sub,
25859
26114
  Group: menu.Group,
25860
- SubTrigger: menu.SubTrigger
26115
+ Item: menu.Item,
26116
+ ItemTitle: menu.ItemTitle,
26117
+ ItemSubtitle: menu.ItemSubtitle,
26118
+ ItemIcon: menu.ItemIcon,
26119
+ ItemImage: menu.ItemImage,
26120
+ ItemIndicator: menu.ItemIndicator,
26121
+ Label: menu.Label,
26122
+ Separator: menu.Separator,
26123
+ CheckboxItem: menu.CheckboxItem,
26124
+ Preview: menu.Preview,
26125
+ Auxiliary: menu.Auxiliary
25861
26126
  }
25862
26127
  };
25863
26128
  return resolved;
@@ -25895,7 +26160,9 @@ var createNativeMenu = function(MenuType) {
25895
26160
  var release = function() {
25896
26161
  return triggerBoundaryHandlers === null || triggerBoundaryHandlers === void 0 ? void 0 : triggerBoundaryHandlers.release(debugName);
25897
26162
  };
25898
- result.push(/* @__PURE__ */ react$1.default.cloneElement(child, {
26163
+ var { children: triggerChildren } = props, triggerProps = _objectWithoutProperties(props, _excluded$28);
26164
+ result.push(/* @__PURE__ */ react$1.default.createElement(menu.Trigger, _objectSpread2(_objectSpread2({}, triggerProps), {}, {
26165
+ key: child.key,
25899
26166
  onTouchStart: composeHandlers(claim, props.onTouchStart),
25900
26167
  onTouchEnd: composeHandlers(props.onTouchEnd, release),
25901
26168
  onTouchCancel: composeHandlers(props.onTouchCancel, release),
@@ -25904,11 +26171,11 @@ var createNativeMenu = function(MenuType) {
25904
26171
  onResponderTerminate: composeHandlers(props.onResponderTerminate, release),
25905
26172
  onPressIn: composeHandlers(claim, props.onPressIn),
25906
26173
  onPressOut: composeHandlers(props.onPressOut, release)
25907
- }));
26174
+ }), triggerChildren));
25908
26175
  return;
25909
26176
  }
25910
26177
  if (displayName.includes("RadioGroup")) {
25911
- var { value: rgValue, onValueChange: rgOnValueChange, children: rgChildren } = props, rest = _objectWithoutProperties(props, _excluded$28);
26178
+ var { value: rgValue, onValueChange: rgOnValueChange, children: rgChildren } = props, rest = _objectWithoutProperties(props, _excluded2$14);
25912
26179
  result.push(/* @__PURE__ */ react$1.default.createElement(menu.Group, _objectSpread2(_objectSpread2({}, rest), {}, { key: child.key }), transformChildren(menu, map, rgChildren, false, triggerBoundaryHandlers, {
25913
26180
  value: rgValue,
25914
26181
  onValueChange: rgOnValueChange
@@ -25916,7 +26183,7 @@ var createNativeMenu = function(MenuType) {
25916
26183
  return;
25917
26184
  }
25918
26185
  if (displayName.includes("RadioItem") && radioContext) {
25919
- var { value: itemValue, children: rChildren } = props, rest1 = _objectWithoutProperties(props, _excluded2$14);
26186
+ var { value: itemValue, children: rChildren } = props, rest1 = _objectWithoutProperties(props, _excluded3$10);
25920
26187
  var cleanChildren = react$1.default.Children.map(rChildren, function(c) {
25921
26188
  var _c_type;
25922
26189
  if (!/* @__PURE__ */ react$1.default.isValidElement(c)) return c;
@@ -25930,12 +26197,12 @@ var createNativeMenu = function(MenuType) {
25930
26197
  var _radioContext_onValueChange;
25931
26198
  return (_radioContext_onValueChange = radioContext.onValueChange) === null || _radioContext_onValueChange === void 0 ? void 0 : _radioContext_onValueChange.call(radioContext, itemValue);
25932
26199
  }
25933
- }), cleanChildren));
26200
+ }), transformChildren(menu, map, cleanChildren, false, triggerBoundaryHandlers, radioContext)));
25934
26201
  return;
25935
26202
  }
25936
26203
  var componentType = getComponentType(displayName);
25937
26204
  if (componentType === "CheckboxItem") {
25938
- var { checked, onCheckedChange, value, onValueChange, children: cbChildren } = props, rest2 = _objectWithoutProperties(props, _excluded3$10);
26205
+ var { checked, onCheckedChange, value, onValueChange, children: cbChildren } = props, rest2 = _objectWithoutProperties(props, _excluded4$8);
25939
26206
  var finalValue = value !== null && value !== void 0 ? value : checked ? "on" : "off";
25940
26207
  var finalOnValueChange = onValueChange !== null && onValueChange !== void 0 ? onValueChange : onCheckedChange && function(v) {
25941
26208
  return onCheckedChange(v === "on");
@@ -25950,19 +26217,20 @@ var createNativeMenu = function(MenuType) {
25950
26217
  key: child.key,
25951
26218
  value: finalValue,
25952
26219
  onValueChange: finalOnValueChange
25953
- }), cleanChildren1));
26220
+ }), transformChildren(menu, map, cleanChildren1, false, triggerBoundaryHandlers, radioContext)));
25954
26221
  return;
25955
26222
  }
25956
26223
  if (componentType) {
25957
- var { children: childChildren } = props, restProps = _objectWithoutProperties(props, _excluded4$8);
26224
+ var { children: childChildren } = props, restProps = _objectWithoutProperties(props, _excluded5$6);
26225
+ var AdapterComponent = map[componentType];
25958
26226
  var isContainer = CONTAINER_TYPES.includes(componentType);
25959
26227
  var shouldReverse = componentType === "Content" || componentType === "SubContent";
25960
- result.push(/* @__PURE__ */ react$1.default.createElement(map[componentType], _objectSpread2(_objectSpread2({}, restProps), {}, { key: child.key }), isContainer ? transformChildren(menu, map, childChildren, shouldReverse, triggerBoundaryHandlers, radioContext) : childChildren));
26228
+ result.push(/* @__PURE__ */ react$1.default.createElement(AdapterComponent, _objectSpread2(_objectSpread2({}, restProps), {}, { key: child.key }), isContainer ? transformChildren(menu, map, childChildren, shouldReverse, triggerBoundaryHandlers, radioContext) : childChildren));
25961
26229
  return;
25962
26230
  }
25963
26231
  if (isItemLike(props, displayName)) {
25964
- var { children: itemChildren } = props, itemProps = _objectWithoutProperties(props, _excluded5$6);
25965
- result.push(/* @__PURE__ */ react$1.default.createElement(menu.Item, _objectSpread2(_objectSpread2({}, itemProps), {}, { key: child.key }), itemChildren));
26232
+ var { children: itemChildren } = props, itemProps = _objectWithoutProperties(props, _excluded6$4);
26233
+ result.push(/* @__PURE__ */ react$1.default.createElement(menu.Item, _objectSpread2(_objectSpread2({}, itemProps), {}, { key: child.key }), transformChildren(menu, map, itemChildren, false, triggerBoundaryHandlers, radioContext)));
25966
26234
  return;
25967
26235
  }
25968
26236
  result.push(child);
@@ -25970,7 +26238,7 @@ var createNativeMenu = function(MenuType) {
25970
26238
  if (isIos && shouldReverseOnIos && !isContextMenu) result.reverse();
25971
26239
  return result;
25972
26240
  }
25973
- function lazyZeego(name, displayName) {
26241
+ function lazyAdapter(name, displayName) {
25974
26242
  var Comp = function(props) {
25975
26243
  var z = resolve();
25976
26244
  if (!z) return null;
@@ -25979,20 +26247,20 @@ var createNativeMenu = function(MenuType) {
25979
26247
  Comp.displayName = displayName || name;
25980
26248
  return Comp;
25981
26249
  }
25982
- var Trigger = lazyZeego("Trigger");
25983
- var Content = lazyZeego("Content");
25984
- var Item = lazyZeego("Item");
25985
- var ItemTitle = lazyZeego("ItemTitle");
25986
- var ItemSubtitle = lazyZeego("ItemSubtitle");
25987
- var ItemIcon = lazyZeego("ItemIcon");
25988
- var ItemImage = lazyZeego("ItemImage");
25989
- var ItemIndicator = lazyZeego("ItemIndicator");
25990
- var Group = lazyZeego("Group");
25991
- var Label = lazyZeego("Label");
25992
- var Separator = lazyZeego("Separator");
25993
- var Sub = lazyZeego("Sub");
25994
- var SubTrigger = lazyZeego("SubTrigger");
25995
- var SubContent = lazyZeego("SubContent");
26250
+ var Trigger = lazyAdapter("Trigger");
26251
+ var Content = lazyAdapter("Content");
26252
+ var Item = lazyAdapter("Item");
26253
+ var ItemTitle = lazyAdapter("ItemTitle");
26254
+ var ItemSubtitle = lazyAdapter("ItemSubtitle");
26255
+ var ItemIcon = lazyAdapter("ItemIcon");
26256
+ var ItemImage = lazyAdapter("ItemImage");
26257
+ var ItemIndicator = lazyAdapter("ItemIndicator");
26258
+ var Group = lazyAdapter("Group");
26259
+ var Label = lazyAdapter("Label");
26260
+ var Separator = lazyAdapter("Separator");
26261
+ var Sub = lazyAdapter("Sub");
26262
+ var SubTrigger = lazyAdapter("SubTrigger");
26263
+ var SubContent = lazyAdapter("SubContent");
25996
26264
  var Portal = function(param) {
25997
26265
  var { children } = param;
25998
26266
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children });
@@ -26016,11 +26284,11 @@ var createNativeMenu = function(MenuType) {
26016
26284
  return null;
26017
26285
  };
26018
26286
  CheckboxItem.displayName = "CheckboxItem";
26019
- var Preview = isContextMenu ? lazyZeego("Preview", `${MenuType}Preview`) : function() {
26287
+ var Preview = isContextMenu ? lazyAdapter("Preview", `${MenuType}Preview`) : function() {
26020
26288
  return null;
26021
26289
  };
26022
26290
  Preview.displayName = `${MenuType}Preview`;
26023
- var Auxiliary = isContextMenu ? lazyZeego("Auxiliary", `${MenuType}Auxiliary`) : function() {
26291
+ var Auxiliary = isContextMenu ? lazyAdapter("Auxiliary", `${MenuType}Auxiliary`) : function() {
26024
26292
  return null;
26025
26293
  };
26026
26294
  Auxiliary.displayName = `${MenuType}Auxiliary`;