tamagui 2.7.1 → 2.7.3

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.
@@ -1,4 +1,4 @@
1
1
  $ tamagui-build
2
- built tamagui in 2455 ms
2
+ built tamagui in 1301 ms
3
3
  Running afterBuild script...
4
- afterBuild completed in 566 ms
4
+ afterBuild completed in 292 ms
package/dist/native.cjs CHANGED
@@ -876,6 +876,7 @@ function _instanceof$7(left, right) {
876
876
  }
877
877
  function setOnLayoutStrategy(state) {
878
878
  strategy = state;
879
+ resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
879
880
  }
880
881
  function enable() {
881
882
  if (avoidUpdates) {
@@ -926,6 +927,7 @@ function observeLayoutNode(node, disableKey) {
926
927
  globalIntersectionObserver.observe(node);
927
928
  IntersectionState.set(node, true);
928
929
  }
930
+ resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
929
931
  }
930
932
  function registerLayoutNode(node, onChange, disableKey) {
931
933
  LayoutHandlers.set(node, onChange);
@@ -1003,7 +1005,7 @@ function createMeasureLayout(node) {
1003
1005
  return measureLayout$1(node, relativeTo, callback);
1004
1006
  };
1005
1007
  }
1006
- var LayoutHandlers, LayoutDisableKey, Nodes, IntersectionState, usePretransformDimensions, DisableLayoutContextValues, DisableLayoutContextKey, ENABLE, LayoutMeasurementController, globalIntersectionObserver, strategy, NodeRectCache, avoidUpdates, queuedUpdates, BoundingRects, rectFetchObserver, rectFetchResolve, rectFetchStartTime, lastCallbackDelay, rAF, userSkipVal, BASE_SKIP_FRAMES, MAX_SKIP_FRAMES, skipFrames, frameCount, getElementLayoutEvent, getPreTransformDimensions, getRelativeDimensions, PrevHostNode, getBoundingClientRectAsync, measureNode, measure, measureInWindow, createMeasureInWindow, measureLayout$1;
1008
+ var LayoutHandlers, LayoutDisableKey, Nodes, IntersectionState, usePretransformDimensions, DisableLayoutContextValues, DisableLayoutContextKey, ENABLE, LayoutMeasurementController, globalIntersectionObserver, strategy, resumeLayoutLoop, NodeRectCache, avoidUpdates, queuedUpdates, BoundingRects, rectFetchObserver, rectFetchResolve, rectFetchStartTime, lastCallbackDelay, rAF, userSkipVal, BASE_SKIP_FRAMES, MAX_SKIP_FRAMES, skipFrames, frameCount, frameScheduled, getElementLayoutEvent, getPreTransformDimensions, getRelativeDimensions, PrevHostNode, getBoundingClientRectAsync, measureNode, measure, measureInWindow, createMeasureInWindow, measureLayout$1;
1007
1009
  var init_index_native$11 = __esmMin((() => {
1008
1010
  init_index_native$7();
1009
1011
  init_asyncToGenerator();
@@ -1045,6 +1047,10 @@ var init_index_native$11 = __esmMin((() => {
1045
1047
  }
1046
1048
  }, { threshold: 0 });
1047
1049
  return rectFetchObserver;
1050
+ }, scheduleLayoutFrame2 = function() {
1051
+ if (frameScheduled || strategy === "off" || Nodes.size === 0 || document.hidden) return;
1052
+ frameScheduled = true;
1053
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1048
1054
  };
1049
1055
  BoundingRects = /* @__PURE__ */ new WeakMap();
1050
1056
  rectFetchObserver = null;
@@ -1079,13 +1085,15 @@ var init_index_native$11 = __esmMin((() => {
1079
1085
  MAX_SKIP_FRAMES = 20;
1080
1086
  skipFrames = BASE_SKIP_FRAMES;
1081
1087
  frameCount = 0;
1088
+ frameScheduled = false;
1082
1089
  function layoutOnAnimationFrame() {
1083
1090
  return _layoutOnAnimationFrame.apply(this, arguments);
1084
1091
  }
1085
1092
  function _layoutOnAnimationFrame() {
1086
1093
  _layoutOnAnimationFrame = _asyncToGenerator(function* () {
1087
1094
  if (frameCount++ % skipFrames !== 0) {
1088
- rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1095
+ frameScheduled = false;
1096
+ scheduleLayoutFrame2();
1089
1097
  return;
1090
1098
  }
1091
1099
  if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
@@ -1162,11 +1170,14 @@ var init_index_native$11 = __esmMin((() => {
1162
1170
  for (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);
1163
1171
  }
1164
1172
  }
1165
- rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1173
+ frameScheduled = false;
1174
+ scheduleLayoutFrame2();
1166
1175
  });
1167
1176
  return _layoutOnAnimationFrame.apply(this, arguments);
1168
1177
  }
1169
- layoutOnAnimationFrame();
1178
+ resumeLayoutLoop = scheduleLayoutFrame2;
1179
+ document.addEventListener("visibilitychange", scheduleLayoutFrame2);
1180
+ scheduleLayoutFrame2();
1170
1181
  }
1171
1182
  getElementLayoutEvent = function(nodeRect, parentRect, node) {
1172
1183
  return {
@@ -14030,6 +14041,11 @@ function elementOfType(children, type) {
14030
14041
  }
14031
14042
  return null;
14032
14043
  }
14044
+ function warnUnsupported(feature) {
14045
+ if (warnedUnsupported.has(feature) || true) return;
14046
+ warnedUnsupported.add(feature);
14047
+ console.warn(`[Tamagui] @expo/ui/community/menu does not support ${feature}, so it will not render. Register a different native menu adapter if you need it.`);
14048
+ }
14033
14049
  function textFromNode(node) {
14034
14050
  if (typeof node === "string" || typeof node === "number") return String(node);
14035
14051
  if (!/* @__PURE__ */ react$1.default.isValidElement(node)) return "";
@@ -14062,7 +14078,7 @@ function createExpoUIMenuAdapter(param) {
14062
14078
  var content = elementOfType(children, Content);
14063
14079
  var preview = elementOfType(children, Preview);
14064
14080
  var auxiliary = elementOfType(children, Auxiliary);
14065
- if (preview || auxiliary) throw new Error("@expo/ui/community/menu does not support Tamagui context-menu previews or auxiliary views");
14081
+ if (preview || auxiliary) warnUnsupported("context-menu previews or auxiliary views");
14066
14082
  if (!trigger || !content) throw new Error("Tamagui native menus require one Trigger and one Content");
14067
14083
  var nextId = 0;
14068
14084
  var handlers = /* @__PURE__ */ new Map();
@@ -14147,7 +14163,7 @@ function createExpoUIMenuAdapter(param) {
14147
14163
  return "continue";
14148
14164
  }
14149
14165
  if (!isMarkerType(child.type, Item) && !isMarkerType(child.type, CheckboxItem)) return "continue";
14150
- if (elementOfType(child.props.children, ItemSubtitle)) throw new Error("@expo/ui/community/menu does not support menu item subtitles");
14166
+ if (elementOfType(child.props.children, ItemSubtitle)) warnUnsupported("menu item subtitles");
14151
14167
  var id = actionId(child);
14152
14168
  if (isMarkerType(child.type, CheckboxItem)) {
14153
14169
  var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
@@ -14239,7 +14255,10 @@ function createExpoUIMenuAdapter(param) {
14239
14255
  ContextMenu: createModule(true)
14240
14256
  };
14241
14257
  }
14242
- var init_expoUIMenuAdapter_native = __esmMin((() => {}));
14258
+ var warnedUnsupported;
14259
+ var init_expoUIMenuAdapter_native = __esmMin((() => {
14260
+ warnedUnsupported = /* @__PURE__ */ new Set();
14261
+ }));
14243
14262
  //#endregion
14244
14263
  //#region ../../core/native/dist/esm/nativeMenuContext.native.js
14245
14264
  var NativeMenuContext;
@@ -16191,6 +16210,14 @@ var init_getSplitStyles_native = __esmMin((() => {
16191
16210
  }
16192
16211
  var priority = mediaStylesSeen;
16193
16212
  mediaStylesSeen += 1;
16213
+ if (process.env.IS_STATIC === "is_static" && isMedia === true) {
16214
+ var _styleState3;
16215
+ var mediaStyle = getSubStyle(styleState, key6, val2, true);
16216
+ (_styleState3 = styleState).style || (_styleState3.style = {});
16217
+ var existing = styleState.style[key6];
16218
+ styleState.style[key6] = existing ? Object.assign(existing, mediaStyle) : mediaStyle;
16219
+ return;
16220
+ }
16194
16221
  if (shouldDoClasses) {
16195
16222
  var mediaStyles = getCSSStylesAtomic(getSubStyle(styleState, key6, val2, false));
16196
16223
  var _iteratorNormalCompletion12 = true, _didIteratorError12 = false, _iteratorError12 = void 0;
@@ -16223,7 +16250,7 @@ var init_getSplitStyles_native = __esmMin((() => {
16223
16250
  return;
16224
16251
  }
16225
16252
  (_styleState4 = styleState).style || (_styleState4.style = {});
16226
- if (mergeMediaByImportance(styleState, mediaKeyShort, key7, val3, mediaState$1[mediaKeyShort], importanceBump, debug, originalVal2) && key7 === "fontFamily") styleState.fontFamily = mediaStyle1.fontFamily;
16253
+ if (mergeMediaByImportance(styleState, mediaKeyShort, key7, val3, mediaState$1[mediaKeyShort], importanceBump, debug, originalVal2) && key7 === "fontFamily") styleState.fontFamily = mediaStyle2.fontFamily;
16227
16254
  };
16228
16255
  var isThemeMedia = isMedia === "theme";
16229
16256
  var isGroupMedia = isMedia === "group";
@@ -16231,34 +16258,34 @@ var init_getSplitStyles_native = __esmMin((() => {
16231
16258
  if (!isThemeMedia && !isPlatformMedia && !isGroupMedia) {
16232
16259
  if (!mediaState$1[mediaKeyShort]) return;
16233
16260
  }
16234
- var mediaStyle1 = getSubStyle(styleState, key6, val2, true);
16261
+ var mediaStyle2 = getSubStyle(styleState, key6, val2, true);
16235
16262
  var importanceBump = 0;
16236
16263
  if (isThemeMedia) if (supportsDynamicColorIOS && getSetting("fastSchemeChange")) {
16237
- var _styleState3;
16238
- (_styleState3 = styleState).style || (_styleState3.style = {});
16264
+ var _styleState12;
16265
+ (_styleState12 = styleState).style || (_styleState12.style = {});
16239
16266
  var scheme = mediaKeyShort;
16240
16267
  var oppositeScheme = getOppositeScheme(mediaKeyShort);
16241
- var themeOriginalValues = styleOriginalValues.get(mediaStyle1);
16268
+ var themeOriginalValues = styleOriginalValues.get(mediaStyle2);
16242
16269
  var isCurrentScheme = themeName === scheme || themeName.startsWith(scheme);
16243
- for (var subKey1 in mediaStyle1) {
16244
- var _$val1 = extractValueFromDynamic(mediaStyle1[subKey1], scheme);
16245
- var existing = styleState.style[subKey1];
16270
+ for (var subKey1 in mediaStyle2) {
16271
+ var _$val1 = extractValueFromDynamic(mediaStyle2[subKey1], scheme);
16272
+ var existing1 = styleState.style[subKey1];
16246
16273
  if (!isColorStyleKey(subKey1)) {
16247
16274
  dynamicThemeAccess = true;
16248
- if (isCurrentScheme) mediaStyle1[subKey1] = _$val1;
16249
- else delete mediaStyle1[subKey1];
16275
+ if (isCurrentScheme) mediaStyle2[subKey1] = _$val1;
16276
+ else delete mediaStyle2[subKey1];
16250
16277
  continue;
16251
16278
  }
16252
- if (existing === null || existing === void 0 ? void 0 : existing.dynamic) {
16253
- existing.dynamic[scheme] = _$val1;
16254
- mediaStyle1[subKey1] = existing;
16279
+ if (existing1 === null || existing1 === void 0 ? void 0 : existing1.dynamic) {
16280
+ existing1.dynamic[scheme] = _$val1;
16281
+ mediaStyle2[subKey1] = existing1;
16255
16282
  } else {
16256
- mediaStyle1[subKey1] = getDynamicVal({
16283
+ mediaStyle2[subKey1] = getDynamicVal({
16257
16284
  scheme,
16258
16285
  val: _$val1,
16259
- oppositeVal: extractValueFromDynamic(existing, oppositeScheme)
16286
+ oppositeVal: extractValueFromDynamic(existing1, oppositeScheme)
16260
16287
  });
16261
- mergeStyle(styleState, subKey1, mediaStyle1[subKey1], priority, false, themeOriginalValues === null || themeOriginalValues === void 0 ? void 0 : themeOriginalValues[subKey1]);
16288
+ mergeStyle(styleState, subKey1, mediaStyle2[subKey1], priority, false, themeOriginalValues === null || themeOriginalValues === void 0 ? void 0 : themeOriginalValues[subKey1]);
16262
16289
  }
16263
16290
  }
16264
16291
  } else {
@@ -16285,7 +16312,7 @@ var init_getSplitStyles_native = __esmMin((() => {
16285
16312
  var isActive = mediaState1 === null || mediaState1 === void 0 ? void 0 : mediaState1[groupMediaKey];
16286
16313
  if (!mediaState1 && groupState.layout) isActive = mediaKeyMatch(groupMediaKey, groupState.layout);
16287
16314
  if (!isActive) {
16288
- for (var pkey1 in mediaStyle1) applyDefaultStyle(pkey1, styleState);
16315
+ for (var pkey1 in mediaStyle2) applyDefaultStyle(pkey1, styleState);
16289
16316
  return;
16290
16317
  }
16291
16318
  importanceBump = 2;
@@ -16298,19 +16325,19 @@ var init_getSplitStyles_native = __esmMin((() => {
16298
16325
  var isActive1 = componentGroupPseudoState === null || componentGroupPseudoState === void 0 ? void 0 : componentGroupPseudoState[groupPseudoKey];
16299
16326
  var priority1 = pseudoPriorities[groupPseudoKey];
16300
16327
  if (!isActive1) {
16301
- for (var pkey2 in mediaStyle1) applyDefaultStyle(pkey2, styleState);
16328
+ for (var pkey2 in mediaStyle2) applyDefaultStyle(pkey2, styleState);
16302
16329
  return;
16303
16330
  }
16304
16331
  importanceBump = priority1;
16305
16332
  }
16306
16333
  } else if (isPlatformMedia) importanceBump = getPlatformSpecificityBump(mediaKeyShort);
16307
- var mediaOriginalValues = styleOriginalValues.get(mediaStyle1);
16308
- if (isGroupMedia && mediaStyle1.transition) {
16309
- var _styleState12;
16310
- (_styleState12 = styleState).pseudoTransitions || (_styleState12.pseudoTransitions = {});
16311
- styleState.pseudoTransitions[`$${mediaKeyShort}`] = mediaStyle1.transition;
16334
+ var mediaOriginalValues = styleOriginalValues.get(mediaStyle2);
16335
+ if (isGroupMedia && mediaStyle2.transition) {
16336
+ var _styleState22;
16337
+ (_styleState22 = styleState).pseudoTransitions || (_styleState22.pseudoTransitions = {});
16338
+ styleState.pseudoTransitions[`$${mediaKeyShort}`] = mediaStyle2.transition;
16312
16339
  }
16313
- for (var subKey2 in mediaStyle1) {
16340
+ for (var subKey2 in mediaStyle2) {
16314
16341
  if (subKey2 === "space") continue;
16315
16342
  if (subKey2[0] === "$") {
16316
16343
  var subMediaType = getMediaKey(subKey2);
@@ -16321,7 +16348,7 @@ var init_getSplitStyles_native = __esmMin((() => {
16321
16348
  } else if (subMediaType === true) {
16322
16349
  if (!mediaState$1[subKey2.slice(1)]) continue;
16323
16350
  }
16324
- var nestedVal = mediaStyle1[subKey2];
16351
+ var nestedVal = mediaStyle2[subKey2];
16325
16352
  var subOriginalValues = styleOriginalValues.get(nestedVal);
16326
16353
  var outerBase = !!mediaState$1[mediaKeyShort] ? getMediaKeyImportance(mediaKeyShort) : defaultMediaImportance;
16327
16354
  var innerBase = void 0;
@@ -16330,15 +16357,15 @@ var init_getSplitStyles_native = __esmMin((() => {
16330
16357
  else innerBase = defaultMediaImportance;
16331
16358
  var nestedImportance = outerBase + importanceBump + innerBase + 1;
16332
16359
  for (var subSubKey in nestedVal) {
16333
- var _styleState22;
16360
+ var _styleState32;
16334
16361
  var expandedKey = shorthands[subSubKey] || subSubKey;
16335
16362
  var { usedKeys } = styleState;
16336
16363
  if (usedKeys[expandedKey] && usedKeys[expandedKey] > nestedImportance) continue;
16337
- (_styleState22 = styleState).style || (_styleState22.style = {});
16364
+ (_styleState32 = styleState).style || (_styleState32.style = {});
16338
16365
  mergeStyle(styleState, expandedKey, nestedVal[subSubKey], nestedImportance, false, subOriginalValues === null || subOriginalValues === void 0 ? void 0 : subOriginalValues[subSubKey]);
16339
16366
  if (expandedKey === "fontFamily") styleState.fontFamily = nestedVal[subSubKey];
16340
16367
  }
16341
- } else mergeMediaStyle2(subKey2, mediaStyle1[subKey2], mediaOriginalValues === null || mediaOriginalValues === void 0 ? void 0 : mediaOriginalValues[subKey2]);
16368
+ } else mergeMediaStyle2(subKey2, mediaStyle2[subKey2], mediaOriginalValues === null || mediaOriginalValues === void 0 ? void 0 : mediaOriginalValues[subKey2]);
16342
16369
  }
16343
16370
  }
16344
16371
  return;
package/dist/test.cjs CHANGED
@@ -876,6 +876,7 @@ function _instanceof$7(left, right) {
876
876
  }
877
877
  function setOnLayoutStrategy(state) {
878
878
  strategy = state;
879
+ resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
879
880
  }
880
881
  function enable() {
881
882
  if (avoidUpdates) {
@@ -926,6 +927,7 @@ function observeLayoutNode(node, disableKey) {
926
927
  globalIntersectionObserver.observe(node);
927
928
  IntersectionState.set(node, true);
928
929
  }
930
+ resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
929
931
  }
930
932
  function registerLayoutNode(node, onChange, disableKey) {
931
933
  LayoutHandlers.set(node, onChange);
@@ -1003,7 +1005,7 @@ function createMeasureLayout(node) {
1003
1005
  return measureLayout$1(node, relativeTo, callback);
1004
1006
  };
1005
1007
  }
1006
- var LayoutHandlers, LayoutDisableKey, Nodes, IntersectionState, usePretransformDimensions, DisableLayoutContextValues, DisableLayoutContextKey, ENABLE, LayoutMeasurementController, globalIntersectionObserver, strategy, NodeRectCache, avoidUpdates, queuedUpdates, BoundingRects, rectFetchObserver, rectFetchResolve, rectFetchStartTime, lastCallbackDelay, rAF, userSkipVal, BASE_SKIP_FRAMES, MAX_SKIP_FRAMES, skipFrames, frameCount, getElementLayoutEvent, getPreTransformDimensions, getRelativeDimensions, PrevHostNode, getBoundingClientRectAsync, measureNode, measure, measureInWindow, createMeasureInWindow, measureLayout$1;
1008
+ var LayoutHandlers, LayoutDisableKey, Nodes, IntersectionState, usePretransformDimensions, DisableLayoutContextValues, DisableLayoutContextKey, ENABLE, LayoutMeasurementController, globalIntersectionObserver, strategy, resumeLayoutLoop, NodeRectCache, avoidUpdates, queuedUpdates, BoundingRects, rectFetchObserver, rectFetchResolve, rectFetchStartTime, lastCallbackDelay, rAF, userSkipVal, BASE_SKIP_FRAMES, MAX_SKIP_FRAMES, skipFrames, frameCount, frameScheduled, getElementLayoutEvent, getPreTransformDimensions, getRelativeDimensions, PrevHostNode, getBoundingClientRectAsync, measureNode, measure, measureInWindow, createMeasureInWindow, measureLayout$1;
1007
1009
  var init_index_native$11 = __esmMin((() => {
1008
1010
  init_index_native$7();
1009
1011
  init_asyncToGenerator();
@@ -1045,6 +1047,10 @@ var init_index_native$11 = __esmMin((() => {
1045
1047
  }
1046
1048
  }, { threshold: 0 });
1047
1049
  return rectFetchObserver;
1050
+ }, scheduleLayoutFrame2 = function() {
1051
+ if (frameScheduled || strategy === "off" || Nodes.size === 0 || document.hidden) return;
1052
+ frameScheduled = true;
1053
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1048
1054
  };
1049
1055
  BoundingRects = /* @__PURE__ */ new WeakMap();
1050
1056
  rectFetchObserver = null;
@@ -1079,13 +1085,15 @@ var init_index_native$11 = __esmMin((() => {
1079
1085
  MAX_SKIP_FRAMES = 20;
1080
1086
  skipFrames = BASE_SKIP_FRAMES;
1081
1087
  frameCount = 0;
1088
+ frameScheduled = false;
1082
1089
  function layoutOnAnimationFrame() {
1083
1090
  return _layoutOnAnimationFrame.apply(this, arguments);
1084
1091
  }
1085
1092
  function _layoutOnAnimationFrame() {
1086
1093
  _layoutOnAnimationFrame = _asyncToGenerator(function* () {
1087
1094
  if (frameCount++ % skipFrames !== 0) {
1088
- rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1095
+ frameScheduled = false;
1096
+ scheduleLayoutFrame2();
1089
1097
  return;
1090
1098
  }
1091
1099
  if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
@@ -1162,11 +1170,14 @@ var init_index_native$11 = __esmMin((() => {
1162
1170
  for (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);
1163
1171
  }
1164
1172
  }
1165
- rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1173
+ frameScheduled = false;
1174
+ scheduleLayoutFrame2();
1166
1175
  });
1167
1176
  return _layoutOnAnimationFrame.apply(this, arguments);
1168
1177
  }
1169
- layoutOnAnimationFrame();
1178
+ resumeLayoutLoop = scheduleLayoutFrame2;
1179
+ document.addEventListener("visibilitychange", scheduleLayoutFrame2);
1180
+ scheduleLayoutFrame2();
1170
1181
  }
1171
1182
  getElementLayoutEvent = function(nodeRect, parentRect, node) {
1172
1183
  return {
@@ -14208,6 +14219,11 @@ function elementOfType(children, type) {
14208
14219
  }
14209
14220
  return null;
14210
14221
  }
14222
+ function warnUnsupported(feature) {
14223
+ if (warnedUnsupported.has(feature) || false) return;
14224
+ warnedUnsupported.add(feature);
14225
+ console.warn(`[Tamagui] @expo/ui/community/menu does not support ${feature}, so it will not render. Register a different native menu adapter if you need it.`);
14226
+ }
14211
14227
  function textFromNode(node) {
14212
14228
  if (typeof node === "string" || typeof node === "number") return String(node);
14213
14229
  if (!/* @__PURE__ */ react$1.default.isValidElement(node)) return "";
@@ -14240,7 +14256,7 @@ function createExpoUIMenuAdapter(param) {
14240
14256
  var content = elementOfType(children, Content);
14241
14257
  var preview = elementOfType(children, Preview);
14242
14258
  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");
14259
+ if (preview || auxiliary) warnUnsupported("context-menu previews or auxiliary views");
14244
14260
  if (!trigger || !content) throw new Error("Tamagui native menus require one Trigger and one Content");
14245
14261
  var nextId = 0;
14246
14262
  var handlers = /* @__PURE__ */ new Map();
@@ -14325,7 +14341,7 @@ function createExpoUIMenuAdapter(param) {
14325
14341
  return "continue";
14326
14342
  }
14327
14343
  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");
14344
+ if (elementOfType(child.props.children, ItemSubtitle)) warnUnsupported("menu item subtitles");
14329
14345
  var id = actionId(child);
14330
14346
  if (isMarkerType(child.type, CheckboxItem)) {
14331
14347
  var current = child.props.value === true || child.props.value === "on" || child.props.checked === true;
@@ -14417,7 +14433,10 @@ function createExpoUIMenuAdapter(param) {
14417
14433
  ContextMenu: createModule(true)
14418
14434
  };
14419
14435
  }
14420
- var init_expoUIMenuAdapter_native = __esmMin((() => {}));
14436
+ var warnedUnsupported;
14437
+ var init_expoUIMenuAdapter_native = __esmMin((() => {
14438
+ warnedUnsupported = /* @__PURE__ */ new Set();
14439
+ }));
14421
14440
  //#endregion
14422
14441
  //#region ../../core/native/dist/esm/nativeMenuContext.native.js
14423
14442
  var NativeMenuContext;
@@ -16371,6 +16390,14 @@ var init_getSplitStyles_native = __esmMin((() => {
16371
16390
  }
16372
16391
  var priority = mediaStylesSeen;
16373
16392
  mediaStylesSeen += 1;
16393
+ if (process.env.IS_STATIC === "is_static" && isMedia === true) {
16394
+ var _styleState3;
16395
+ var mediaStyle = getSubStyle(styleState, key6, val2, true);
16396
+ (_styleState3 = styleState).style || (_styleState3.style = {});
16397
+ var existing = styleState.style[key6];
16398
+ styleState.style[key6] = existing ? Object.assign(existing, mediaStyle) : mediaStyle;
16399
+ return;
16400
+ }
16374
16401
  if (shouldDoClasses) {
16375
16402
  var mediaStyles = getCSSStylesAtomic(getSubStyle(styleState, key6, val2, false));
16376
16403
  var _iteratorNormalCompletion12 = true, _didIteratorError12 = false, _iteratorError12 = void 0;
@@ -16403,7 +16430,7 @@ var init_getSplitStyles_native = __esmMin((() => {
16403
16430
  return;
16404
16431
  }
16405
16432
  (_styleState4 = styleState).style || (_styleState4.style = {});
16406
- if (mergeMediaByImportance(styleState, mediaKeyShort, key7, val3, mediaState$1[mediaKeyShort], importanceBump, debug, originalVal2) && key7 === "fontFamily") styleState.fontFamily = mediaStyle1.fontFamily;
16433
+ if (mergeMediaByImportance(styleState, mediaKeyShort, key7, val3, mediaState$1[mediaKeyShort], importanceBump, debug, originalVal2) && key7 === "fontFamily") styleState.fontFamily = mediaStyle2.fontFamily;
16407
16434
  };
16408
16435
  var isThemeMedia = isMedia === "theme";
16409
16436
  var isGroupMedia = isMedia === "group";
@@ -16411,34 +16438,34 @@ var init_getSplitStyles_native = __esmMin((() => {
16411
16438
  if (!isThemeMedia && !isPlatformMedia && !isGroupMedia) {
16412
16439
  if (!mediaState$1[mediaKeyShort]) return;
16413
16440
  }
16414
- var mediaStyle1 = getSubStyle(styleState, key6, val2, true);
16441
+ var mediaStyle2 = getSubStyle(styleState, key6, val2, true);
16415
16442
  var importanceBump = 0;
16416
16443
  if (isThemeMedia) if (supportsDynamicColorIOS && getSetting("fastSchemeChange")) {
16417
- var _styleState3;
16418
- (_styleState3 = styleState).style || (_styleState3.style = {});
16444
+ var _styleState12;
16445
+ (_styleState12 = styleState).style || (_styleState12.style = {});
16419
16446
  var scheme = mediaKeyShort;
16420
16447
  var oppositeScheme = getOppositeScheme(mediaKeyShort);
16421
- var themeOriginalValues = styleOriginalValues.get(mediaStyle1);
16448
+ var themeOriginalValues = styleOriginalValues.get(mediaStyle2);
16422
16449
  var isCurrentScheme = themeName === scheme || themeName.startsWith(scheme);
16423
- for (var subKey1 in mediaStyle1) {
16424
- var _$val1 = extractValueFromDynamic(mediaStyle1[subKey1], scheme);
16425
- var existing = styleState.style[subKey1];
16450
+ for (var subKey1 in mediaStyle2) {
16451
+ var _$val1 = extractValueFromDynamic(mediaStyle2[subKey1], scheme);
16452
+ var existing1 = styleState.style[subKey1];
16426
16453
  if (!isColorStyleKey(subKey1)) {
16427
16454
  dynamicThemeAccess = true;
16428
- if (isCurrentScheme) mediaStyle1[subKey1] = _$val1;
16429
- else delete mediaStyle1[subKey1];
16455
+ if (isCurrentScheme) mediaStyle2[subKey1] = _$val1;
16456
+ else delete mediaStyle2[subKey1];
16430
16457
  continue;
16431
16458
  }
16432
- if (existing === null || existing === void 0 ? void 0 : existing.dynamic) {
16433
- existing.dynamic[scheme] = _$val1;
16434
- mediaStyle1[subKey1] = existing;
16459
+ if (existing1 === null || existing1 === void 0 ? void 0 : existing1.dynamic) {
16460
+ existing1.dynamic[scheme] = _$val1;
16461
+ mediaStyle2[subKey1] = existing1;
16435
16462
  } else {
16436
- mediaStyle1[subKey1] = getDynamicVal({
16463
+ mediaStyle2[subKey1] = getDynamicVal({
16437
16464
  scheme,
16438
16465
  val: _$val1,
16439
- oppositeVal: extractValueFromDynamic(existing, oppositeScheme)
16466
+ oppositeVal: extractValueFromDynamic(existing1, oppositeScheme)
16440
16467
  });
16441
- mergeStyle(styleState, subKey1, mediaStyle1[subKey1], priority, false, themeOriginalValues === null || themeOriginalValues === void 0 ? void 0 : themeOriginalValues[subKey1]);
16468
+ mergeStyle(styleState, subKey1, mediaStyle2[subKey1], priority, false, themeOriginalValues === null || themeOriginalValues === void 0 ? void 0 : themeOriginalValues[subKey1]);
16442
16469
  }
16443
16470
  }
16444
16471
  } else {
@@ -16465,7 +16492,7 @@ var init_getSplitStyles_native = __esmMin((() => {
16465
16492
  var isActive = mediaState1 === null || mediaState1 === void 0 ? void 0 : mediaState1[groupMediaKey];
16466
16493
  if (!mediaState1 && groupState.layout) isActive = mediaKeyMatch(groupMediaKey, groupState.layout);
16467
16494
  if (!isActive) {
16468
- for (var pkey1 in mediaStyle1) applyDefaultStyle(pkey1, styleState);
16495
+ for (var pkey1 in mediaStyle2) applyDefaultStyle(pkey1, styleState);
16469
16496
  return;
16470
16497
  }
16471
16498
  importanceBump = 2;
@@ -16478,19 +16505,19 @@ var init_getSplitStyles_native = __esmMin((() => {
16478
16505
  var isActive1 = componentGroupPseudoState === null || componentGroupPseudoState === void 0 ? void 0 : componentGroupPseudoState[groupPseudoKey];
16479
16506
  var priority1 = pseudoPriorities[groupPseudoKey];
16480
16507
  if (!isActive1) {
16481
- for (var pkey2 in mediaStyle1) applyDefaultStyle(pkey2, styleState);
16508
+ for (var pkey2 in mediaStyle2) applyDefaultStyle(pkey2, styleState);
16482
16509
  return;
16483
16510
  }
16484
16511
  importanceBump = priority1;
16485
16512
  }
16486
16513
  } else if (isPlatformMedia) importanceBump = getPlatformSpecificityBump(mediaKeyShort);
16487
- var mediaOriginalValues = styleOriginalValues.get(mediaStyle1);
16488
- if (isGroupMedia && mediaStyle1.transition) {
16489
- var _styleState12;
16490
- (_styleState12 = styleState).pseudoTransitions || (_styleState12.pseudoTransitions = {});
16491
- styleState.pseudoTransitions[`$${mediaKeyShort}`] = mediaStyle1.transition;
16514
+ var mediaOriginalValues = styleOriginalValues.get(mediaStyle2);
16515
+ if (isGroupMedia && mediaStyle2.transition) {
16516
+ var _styleState22;
16517
+ (_styleState22 = styleState).pseudoTransitions || (_styleState22.pseudoTransitions = {});
16518
+ styleState.pseudoTransitions[`$${mediaKeyShort}`] = mediaStyle2.transition;
16492
16519
  }
16493
- for (var subKey2 in mediaStyle1) {
16520
+ for (var subKey2 in mediaStyle2) {
16494
16521
  if (subKey2 === "space") continue;
16495
16522
  if (subKey2[0] === "$") {
16496
16523
  var subMediaType = getMediaKey(subKey2);
@@ -16501,7 +16528,7 @@ var init_getSplitStyles_native = __esmMin((() => {
16501
16528
  } else if (subMediaType === true) {
16502
16529
  if (!mediaState$1[subKey2.slice(1)]) continue;
16503
16530
  }
16504
- var nestedVal = mediaStyle1[subKey2];
16531
+ var nestedVal = mediaStyle2[subKey2];
16505
16532
  var subOriginalValues = styleOriginalValues.get(nestedVal);
16506
16533
  var outerBase = !!mediaState$1[mediaKeyShort] ? getMediaKeyImportance(mediaKeyShort) : defaultMediaImportance;
16507
16534
  var innerBase = void 0;
@@ -16510,15 +16537,15 @@ var init_getSplitStyles_native = __esmMin((() => {
16510
16537
  else innerBase = defaultMediaImportance;
16511
16538
  var nestedImportance = outerBase + importanceBump + innerBase + 1;
16512
16539
  for (var subSubKey in nestedVal) {
16513
- var _styleState22;
16540
+ var _styleState32;
16514
16541
  var expandedKey = shorthands[subSubKey] || subSubKey;
16515
16542
  var { usedKeys } = styleState;
16516
16543
  if (usedKeys[expandedKey] && usedKeys[expandedKey] > nestedImportance) continue;
16517
- (_styleState22 = styleState).style || (_styleState22.style = {});
16544
+ (_styleState32 = styleState).style || (_styleState32.style = {});
16518
16545
  mergeStyle(styleState, expandedKey, nestedVal[subSubKey], nestedImportance, false, subOriginalValues === null || subOriginalValues === void 0 ? void 0 : subOriginalValues[subSubKey]);
16519
16546
  if (expandedKey === "fontFamily") styleState.fontFamily = nestedVal[subSubKey];
16520
16547
  }
16521
- } else mergeMediaStyle2(subKey2, mediaStyle1[subKey2], mediaOriginalValues === null || mediaOriginalValues === void 0 ? void 0 : mediaOriginalValues[subKey2]);
16548
+ } else mergeMediaStyle2(subKey2, mediaStyle2[subKey2], mediaOriginalValues === null || mediaOriginalValues === void 0 ? void 0 : mediaOriginalValues[subKey2]);
16522
16549
  }
16523
16550
  }
16524
16551
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamagui",
3
- "version": "2.7.1",
3
+ "version": "2.7.3",
4
4
  "gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
5
5
  "description": "Style and UI for React (web and native) meet an optimizing compiler",
6
6
  "repository": {
@@ -77,72 +77,72 @@
77
77
  "check-circular-deps": "npx madge --circular ./src/index.ts"
78
78
  },
79
79
  "dependencies": {
80
- "@tamagui/accordion": "2.7.1",
81
- "@tamagui/adapt": "2.7.1",
82
- "@tamagui/alert-dialog": "2.7.1",
83
- "@tamagui/animate": "2.7.1",
84
- "@tamagui/animate-presence": "2.7.1",
85
- "@tamagui/avatar": "2.7.1",
86
- "@tamagui/button": "2.7.1",
87
- "@tamagui/card": "2.7.1",
88
- "@tamagui/checkbox": "2.7.1",
89
- "@tamagui/collapsible": "2.7.1",
90
- "@tamagui/compose-refs": "2.7.1",
91
- "@tamagui/constants": "2.7.1",
92
- "@tamagui/context-menu": "2.7.1",
93
- "@tamagui/core": "2.7.1",
94
- "@tamagui/create-context": "2.7.1",
95
- "@tamagui/create-menu": "2.7.1",
96
- "@tamagui/dialog": "2.7.1",
97
- "@tamagui/element": "2.7.1",
98
- "@tamagui/elements": "2.7.1",
99
- "@tamagui/fake-react-native": "2.7.1",
100
- "@tamagui/focusable": "2.7.1",
101
- "@tamagui/form": "2.7.1",
102
- "@tamagui/get-button-sized": "2.7.1",
103
- "@tamagui/get-font-sized": "2.7.1",
104
- "@tamagui/get-token": "2.7.1",
105
- "@tamagui/group": "2.7.1",
106
- "@tamagui/helpers-tamagui": "2.7.1",
107
- "@tamagui/image": "2.7.1",
108
- "@tamagui/input": "2.7.1",
109
- "@tamagui/label": "2.7.1",
110
- "@tamagui/linear-gradient": "2.7.1",
111
- "@tamagui/list-item": "2.7.1",
112
- "@tamagui/menu": "2.7.1",
113
- "@tamagui/polyfill-dev": "2.7.1",
114
- "@tamagui/popover": "2.7.1",
115
- "@tamagui/popper": "2.7.1",
116
- "@tamagui/portal": "2.7.1",
117
- "@tamagui/progress": "2.7.1",
118
- "@tamagui/radio-group": "2.7.1",
119
- "@tamagui/react-native-media-driver": "2.7.1",
120
- "@tamagui/scroll-view": "2.7.1",
121
- "@tamagui/select": "2.7.1",
122
- "@tamagui/separator": "2.7.1",
123
- "@tamagui/shapes": "2.7.1",
124
- "@tamagui/sheet": "2.7.1",
125
- "@tamagui/slider": "2.7.1",
126
- "@tamagui/spacer": "2.7.1",
127
- "@tamagui/spinner": "2.7.1",
128
- "@tamagui/stacks": "2.7.1",
129
- "@tamagui/switch": "2.7.1",
130
- "@tamagui/tabs": "2.7.1",
131
- "@tamagui/text": "2.7.1",
132
- "@tamagui/theme": "2.7.1",
133
- "@tamagui/toast": "2.7.1",
134
- "@tamagui/toggle-group": "2.7.1",
135
- "@tamagui/tooltip": "2.7.1",
136
- "@tamagui/use-controllable-state": "2.7.1",
137
- "@tamagui/use-debounce": "2.7.1",
138
- "@tamagui/use-force-update": "2.7.1",
139
- "@tamagui/use-window-dimensions": "2.7.1",
140
- "@tamagui/visually-hidden": "2.7.1",
141
- "@tamagui/font-size": "2.7.1",
142
- "@tamagui/z-index-stack": "2.7.1"
80
+ "@tamagui/accordion": "2.7.3",
81
+ "@tamagui/adapt": "2.7.3",
82
+ "@tamagui/alert-dialog": "2.7.3",
83
+ "@tamagui/animate": "2.7.3",
84
+ "@tamagui/animate-presence": "2.7.3",
85
+ "@tamagui/avatar": "2.7.3",
86
+ "@tamagui/button": "2.7.3",
87
+ "@tamagui/card": "2.7.3",
88
+ "@tamagui/checkbox": "2.7.3",
89
+ "@tamagui/collapsible": "2.7.3",
90
+ "@tamagui/compose-refs": "2.7.3",
91
+ "@tamagui/constants": "2.7.3",
92
+ "@tamagui/context-menu": "2.7.3",
93
+ "@tamagui/core": "2.7.3",
94
+ "@tamagui/create-context": "2.7.3",
95
+ "@tamagui/create-menu": "2.7.3",
96
+ "@tamagui/dialog": "2.7.3",
97
+ "@tamagui/element": "2.7.3",
98
+ "@tamagui/elements": "2.7.3",
99
+ "@tamagui/fake-react-native": "2.7.3",
100
+ "@tamagui/focusable": "2.7.3",
101
+ "@tamagui/form": "2.7.3",
102
+ "@tamagui/get-button-sized": "2.7.3",
103
+ "@tamagui/get-font-sized": "2.7.3",
104
+ "@tamagui/get-token": "2.7.3",
105
+ "@tamagui/group": "2.7.3",
106
+ "@tamagui/helpers-tamagui": "2.7.3",
107
+ "@tamagui/image": "2.7.3",
108
+ "@tamagui/input": "2.7.3",
109
+ "@tamagui/label": "2.7.3",
110
+ "@tamagui/linear-gradient": "2.7.3",
111
+ "@tamagui/list-item": "2.7.3",
112
+ "@tamagui/menu": "2.7.3",
113
+ "@tamagui/polyfill-dev": "2.7.3",
114
+ "@tamagui/popover": "2.7.3",
115
+ "@tamagui/popper": "2.7.3",
116
+ "@tamagui/portal": "2.7.3",
117
+ "@tamagui/progress": "2.7.3",
118
+ "@tamagui/radio-group": "2.7.3",
119
+ "@tamagui/react-native-media-driver": "2.7.3",
120
+ "@tamagui/scroll-view": "2.7.3",
121
+ "@tamagui/select": "2.7.3",
122
+ "@tamagui/separator": "2.7.3",
123
+ "@tamagui/shapes": "2.7.3",
124
+ "@tamagui/sheet": "2.7.3",
125
+ "@tamagui/slider": "2.7.3",
126
+ "@tamagui/spacer": "2.7.3",
127
+ "@tamagui/spinner": "2.7.3",
128
+ "@tamagui/stacks": "2.7.3",
129
+ "@tamagui/switch": "2.7.3",
130
+ "@tamagui/tabs": "2.7.3",
131
+ "@tamagui/text": "2.7.3",
132
+ "@tamagui/theme": "2.7.3",
133
+ "@tamagui/toast": "2.7.3",
134
+ "@tamagui/toggle-group": "2.7.3",
135
+ "@tamagui/tooltip": "2.7.3",
136
+ "@tamagui/use-controllable-state": "2.7.3",
137
+ "@tamagui/use-debounce": "2.7.3",
138
+ "@tamagui/use-force-update": "2.7.3",
139
+ "@tamagui/use-window-dimensions": "2.7.3",
140
+ "@tamagui/visually-hidden": "2.7.3",
141
+ "@tamagui/font-size": "2.7.3",
142
+ "@tamagui/z-index-stack": "2.7.3"
143
143
  },
144
144
  "devDependencies": {
145
- "@tamagui/build": "2.7.1",
145
+ "@tamagui/build": "2.7.3",
146
146
  "react": ">=19",
147
147
  "react-native": "0.83.2",
148
148
  "react-native-web": "^0.21.0"