@tamagui/core 2.7.2 → 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/core in 1726 ms
2
+ built @tamagui/core in 608 ms
3
3
  Running afterBuild script...
4
- afterBuild completed in 660 ms
4
+ afterBuild completed in 213 ms
package/dist/native.cjs CHANGED
@@ -866,6 +866,7 @@ function _instanceof(left, right) {
866
866
  }
867
867
  function setOnLayoutStrategy(state) {
868
868
  strategy = state;
869
+ resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
869
870
  }
870
871
  function enable() {
871
872
  if (avoidUpdates) {
@@ -916,6 +917,7 @@ function observeLayoutNode(node, disableKey) {
916
917
  globalIntersectionObserver.observe(node);
917
918
  IntersectionState.set(node, true);
918
919
  }
920
+ resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
919
921
  }
920
922
  function registerLayoutNode(node, onChange, disableKey) {
921
923
  LayoutHandlers.set(node, onChange);
@@ -993,7 +995,7 @@ function createMeasureLayout(node) {
993
995
  return measureLayout$1(node, relativeTo, callback);
994
996
  };
995
997
  }
996
- 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;
998
+ 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;
997
999
  var init_index_native$11 = __esmMin((() => {
998
1000
  init_index_native$7();
999
1001
  init_asyncToGenerator();
@@ -1035,6 +1037,10 @@ var init_index_native$11 = __esmMin((() => {
1035
1037
  }
1036
1038
  }, { threshold: 0 });
1037
1039
  return rectFetchObserver;
1040
+ }, scheduleLayoutFrame2 = function() {
1041
+ if (frameScheduled || strategy === "off" || Nodes.size === 0 || document.hidden) return;
1042
+ frameScheduled = true;
1043
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1038
1044
  };
1039
1045
  BoundingRects = /* @__PURE__ */ new WeakMap();
1040
1046
  rectFetchObserver = null;
@@ -1069,13 +1075,15 @@ var init_index_native$11 = __esmMin((() => {
1069
1075
  MAX_SKIP_FRAMES = 20;
1070
1076
  skipFrames = BASE_SKIP_FRAMES;
1071
1077
  frameCount = 0;
1078
+ frameScheduled = false;
1072
1079
  function layoutOnAnimationFrame() {
1073
1080
  return _layoutOnAnimationFrame.apply(this, arguments);
1074
1081
  }
1075
1082
  function _layoutOnAnimationFrame() {
1076
1083
  _layoutOnAnimationFrame = _asyncToGenerator(function* () {
1077
1084
  if (frameCount++ % skipFrames !== 0) {
1078
- rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1085
+ frameScheduled = false;
1086
+ scheduleLayoutFrame2();
1079
1087
  return;
1080
1088
  }
1081
1089
  if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
@@ -1152,11 +1160,14 @@ var init_index_native$11 = __esmMin((() => {
1152
1160
  for (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);
1153
1161
  }
1154
1162
  }
1155
- rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
1163
+ frameScheduled = false;
1164
+ scheduleLayoutFrame2();
1156
1165
  });
1157
1166
  return _layoutOnAnimationFrame.apply(this, arguments);
1158
1167
  }
1159
- layoutOnAnimationFrame();
1168
+ resumeLayoutLoop = scheduleLayoutFrame2;
1169
+ document.addEventListener("visibilitychange", scheduleLayoutFrame2);
1170
+ scheduleLayoutFrame2();
1160
1171
  }
1161
1172
  getElementLayoutEvent = function(nodeRect, parentRect, node) {
1162
1173
  return {
@@ -15683,6 +15694,14 @@ var init_getSplitStyles_native = __esmMin((() => {
15683
15694
  }
15684
15695
  var priority = mediaStylesSeen;
15685
15696
  mediaStylesSeen += 1;
15697
+ if (process.env.IS_STATIC === "is_static" && isMedia === true) {
15698
+ var _styleState3;
15699
+ var mediaStyle = getSubStyle(styleState, key6, val2, true);
15700
+ (_styleState3 = styleState).style || (_styleState3.style = {});
15701
+ var existing = styleState.style[key6];
15702
+ styleState.style[key6] = existing ? Object.assign(existing, mediaStyle) : mediaStyle;
15703
+ return;
15704
+ }
15686
15705
  if (shouldDoClasses) {
15687
15706
  var mediaStyles = getCSSStylesAtomic(getSubStyle(styleState, key6, val2, false));
15688
15707
  var _iteratorNormalCompletion12 = true, _didIteratorError12 = false, _iteratorError12 = void 0;
@@ -15715,7 +15734,7 @@ var init_getSplitStyles_native = __esmMin((() => {
15715
15734
  return;
15716
15735
  }
15717
15736
  (_styleState4 = styleState).style || (_styleState4.style = {});
15718
- if (mergeMediaByImportance(styleState, mediaKeyShort, key7, val3, mediaState$1[mediaKeyShort], importanceBump, debug, originalVal2) && key7 === "fontFamily") styleState.fontFamily = mediaStyle1.fontFamily;
15737
+ if (mergeMediaByImportance(styleState, mediaKeyShort, key7, val3, mediaState$1[mediaKeyShort], importanceBump, debug, originalVal2) && key7 === "fontFamily") styleState.fontFamily = mediaStyle2.fontFamily;
15719
15738
  };
15720
15739
  var isThemeMedia = isMedia === "theme";
15721
15740
  var isGroupMedia = isMedia === "group";
@@ -15723,34 +15742,34 @@ var init_getSplitStyles_native = __esmMin((() => {
15723
15742
  if (!isThemeMedia && !isPlatformMedia && !isGroupMedia) {
15724
15743
  if (!mediaState$1[mediaKeyShort]) return;
15725
15744
  }
15726
- var mediaStyle1 = getSubStyle(styleState, key6, val2, true);
15745
+ var mediaStyle2 = getSubStyle(styleState, key6, val2, true);
15727
15746
  var importanceBump = 0;
15728
15747
  if (isThemeMedia) if (supportsDynamicColorIOS && getSetting("fastSchemeChange")) {
15729
- var _styleState3;
15730
- (_styleState3 = styleState).style || (_styleState3.style = {});
15748
+ var _styleState12;
15749
+ (_styleState12 = styleState).style || (_styleState12.style = {});
15731
15750
  var scheme = mediaKeyShort;
15732
15751
  var oppositeScheme = getOppositeScheme(mediaKeyShort);
15733
- var themeOriginalValues = styleOriginalValues.get(mediaStyle1);
15752
+ var themeOriginalValues = styleOriginalValues.get(mediaStyle2);
15734
15753
  var isCurrentScheme = themeName === scheme || themeName.startsWith(scheme);
15735
- for (var subKey1 in mediaStyle1) {
15736
- var _$val1 = extractValueFromDynamic(mediaStyle1[subKey1], scheme);
15737
- var existing = styleState.style[subKey1];
15754
+ for (var subKey1 in mediaStyle2) {
15755
+ var _$val1 = extractValueFromDynamic(mediaStyle2[subKey1], scheme);
15756
+ var existing1 = styleState.style[subKey1];
15738
15757
  if (!isColorStyleKey(subKey1)) {
15739
15758
  dynamicThemeAccess = true;
15740
- if (isCurrentScheme) mediaStyle1[subKey1] = _$val1;
15741
- else delete mediaStyle1[subKey1];
15759
+ if (isCurrentScheme) mediaStyle2[subKey1] = _$val1;
15760
+ else delete mediaStyle2[subKey1];
15742
15761
  continue;
15743
15762
  }
15744
- if (existing === null || existing === void 0 ? void 0 : existing.dynamic) {
15745
- existing.dynamic[scheme] = _$val1;
15746
- mediaStyle1[subKey1] = existing;
15763
+ if (existing1 === null || existing1 === void 0 ? void 0 : existing1.dynamic) {
15764
+ existing1.dynamic[scheme] = _$val1;
15765
+ mediaStyle2[subKey1] = existing1;
15747
15766
  } else {
15748
- mediaStyle1[subKey1] = getDynamicVal({
15767
+ mediaStyle2[subKey1] = getDynamicVal({
15749
15768
  scheme,
15750
15769
  val: _$val1,
15751
- oppositeVal: extractValueFromDynamic(existing, oppositeScheme)
15770
+ oppositeVal: extractValueFromDynamic(existing1, oppositeScheme)
15752
15771
  });
15753
- mergeStyle(styleState, subKey1, mediaStyle1[subKey1], priority, false, themeOriginalValues === null || themeOriginalValues === void 0 ? void 0 : themeOriginalValues[subKey1]);
15772
+ mergeStyle(styleState, subKey1, mediaStyle2[subKey1], priority, false, themeOriginalValues === null || themeOriginalValues === void 0 ? void 0 : themeOriginalValues[subKey1]);
15754
15773
  }
15755
15774
  }
15756
15775
  } else {
@@ -15777,7 +15796,7 @@ var init_getSplitStyles_native = __esmMin((() => {
15777
15796
  var isActive = mediaState1 === null || mediaState1 === void 0 ? void 0 : mediaState1[groupMediaKey];
15778
15797
  if (!mediaState1 && groupState.layout) isActive = mediaKeyMatch(groupMediaKey, groupState.layout);
15779
15798
  if (!isActive) {
15780
- for (var pkey1 in mediaStyle1) applyDefaultStyle(pkey1, styleState);
15799
+ for (var pkey1 in mediaStyle2) applyDefaultStyle(pkey1, styleState);
15781
15800
  return;
15782
15801
  }
15783
15802
  importanceBump = 2;
@@ -15790,19 +15809,19 @@ var init_getSplitStyles_native = __esmMin((() => {
15790
15809
  var isActive1 = componentGroupPseudoState === null || componentGroupPseudoState === void 0 ? void 0 : componentGroupPseudoState[groupPseudoKey];
15791
15810
  var priority1 = pseudoPriorities[groupPseudoKey];
15792
15811
  if (!isActive1) {
15793
- for (var pkey2 in mediaStyle1) applyDefaultStyle(pkey2, styleState);
15812
+ for (var pkey2 in mediaStyle2) applyDefaultStyle(pkey2, styleState);
15794
15813
  return;
15795
15814
  }
15796
15815
  importanceBump = priority1;
15797
15816
  }
15798
15817
  } else if (isPlatformMedia) importanceBump = getPlatformSpecificityBump(mediaKeyShort);
15799
- var mediaOriginalValues = styleOriginalValues.get(mediaStyle1);
15800
- if (isGroupMedia && mediaStyle1.transition) {
15801
- var _styleState12;
15802
- (_styleState12 = styleState).pseudoTransitions || (_styleState12.pseudoTransitions = {});
15803
- styleState.pseudoTransitions[`$${mediaKeyShort}`] = mediaStyle1.transition;
15818
+ var mediaOriginalValues = styleOriginalValues.get(mediaStyle2);
15819
+ if (isGroupMedia && mediaStyle2.transition) {
15820
+ var _styleState22;
15821
+ (_styleState22 = styleState).pseudoTransitions || (_styleState22.pseudoTransitions = {});
15822
+ styleState.pseudoTransitions[`$${mediaKeyShort}`] = mediaStyle2.transition;
15804
15823
  }
15805
- for (var subKey2 in mediaStyle1) {
15824
+ for (var subKey2 in mediaStyle2) {
15806
15825
  if (subKey2 === "space") continue;
15807
15826
  if (subKey2[0] === "$") {
15808
15827
  var subMediaType = getMediaKey(subKey2);
@@ -15813,7 +15832,7 @@ var init_getSplitStyles_native = __esmMin((() => {
15813
15832
  } else if (subMediaType === true) {
15814
15833
  if (!mediaState$1[subKey2.slice(1)]) continue;
15815
15834
  }
15816
- var nestedVal = mediaStyle1[subKey2];
15835
+ var nestedVal = mediaStyle2[subKey2];
15817
15836
  var subOriginalValues = styleOriginalValues.get(nestedVal);
15818
15837
  var outerBase = !!mediaState$1[mediaKeyShort] ? getMediaKeyImportance(mediaKeyShort) : defaultMediaImportance;
15819
15838
  var innerBase = void 0;
@@ -15822,15 +15841,15 @@ var init_getSplitStyles_native = __esmMin((() => {
15822
15841
  else innerBase = defaultMediaImportance;
15823
15842
  var nestedImportance = outerBase + importanceBump + innerBase + 1;
15824
15843
  for (var subSubKey in nestedVal) {
15825
- var _styleState22;
15844
+ var _styleState32;
15826
15845
  var expandedKey = shorthands[subSubKey] || subSubKey;
15827
15846
  var { usedKeys } = styleState;
15828
15847
  if (usedKeys[expandedKey] && usedKeys[expandedKey] > nestedImportance) continue;
15829
- (_styleState22 = styleState).style || (_styleState22.style = {});
15848
+ (_styleState32 = styleState).style || (_styleState32.style = {});
15830
15849
  mergeStyle(styleState, expandedKey, nestedVal[subSubKey], nestedImportance, false, subOriginalValues === null || subOriginalValues === void 0 ? void 0 : subOriginalValues[subSubKey]);
15831
15850
  if (expandedKey === "fontFamily") styleState.fontFamily = nestedVal[subSubKey];
15832
15851
  }
15833
- } else mergeMediaStyle2(subKey2, mediaStyle1[subKey2], mediaOriginalValues === null || mediaOriginalValues === void 0 ? void 0 : mediaOriginalValues[subKey2]);
15852
+ } else mergeMediaStyle2(subKey2, mediaStyle2[subKey2], mediaOriginalValues === null || mediaOriginalValues === void 0 ? void 0 : mediaOriginalValues[subKey2]);
15834
15853
  }
15835
15854
  }
15836
15855
  return;
@@ -4117,6 +4117,14 @@ var getSplitStyles = function(props, staticConfig, theme, themeName, componentSt
4117
4117
  }
4118
4118
  var priority = mediaStylesSeen;
4119
4119
  mediaStylesSeen += 1;
4120
+ if (process.env.IS_STATIC === "is_static" && isMedia === true) {
4121
+ var _styleState3;
4122
+ var mediaStyle = getSubStyle(styleState, key6, val2, true);
4123
+ (_styleState3 = styleState).style || (_styleState3.style = {});
4124
+ var existing = styleState.style[key6];
4125
+ styleState.style[key6] = existing ? Object.assign(existing, mediaStyle) : mediaStyle;
4126
+ return;
4127
+ }
4120
4128
  if (shouldDoClasses) {
4121
4129
  var mediaStyles = getCSSStylesAtomic(getSubStyle(styleState, key6, val2, false));
4122
4130
  var _iteratorNormalCompletion12 = true, _didIteratorError12 = false, _iteratorError12 = void 0;
@@ -4149,7 +4157,7 @@ var getSplitStyles = function(props, staticConfig, theme, themeName, componentSt
4149
4157
  return;
4150
4158
  }
4151
4159
  (_styleState4 = styleState).style || (_styleState4.style = {});
4152
- if (mergeMediaByImportance(styleState, mediaKeyShort, key7, val3, mediaState$1[mediaKeyShort], importanceBump, debug, originalVal2) && key7 === "fontFamily") styleState.fontFamily = mediaStyle1.fontFamily;
4160
+ if (mergeMediaByImportance(styleState, mediaKeyShort, key7, val3, mediaState$1[mediaKeyShort], importanceBump, debug, originalVal2) && key7 === "fontFamily") styleState.fontFamily = mediaStyle2.fontFamily;
4153
4161
  };
4154
4162
  var isThemeMedia = isMedia === "theme";
4155
4163
  var isGroupMedia = isMedia === "group";
@@ -4157,34 +4165,34 @@ var getSplitStyles = function(props, staticConfig, theme, themeName, componentSt
4157
4165
  if (!isThemeMedia && !isPlatformMedia && !isGroupMedia) {
4158
4166
  if (!mediaState$1[mediaKeyShort]) return;
4159
4167
  }
4160
- var mediaStyle1 = getSubStyle(styleState, key6, val2, true);
4168
+ var mediaStyle2 = getSubStyle(styleState, key6, val2, true);
4161
4169
  var importanceBump = 0;
4162
4170
  if (isThemeMedia) if (supportsDynamicColorIOS && getSetting("fastSchemeChange")) {
4163
- var _styleState3;
4164
- (_styleState3 = styleState).style || (_styleState3.style = {});
4171
+ var _styleState12;
4172
+ (_styleState12 = styleState).style || (_styleState12.style = {});
4165
4173
  var scheme = mediaKeyShort;
4166
4174
  var oppositeScheme = getOppositeScheme(mediaKeyShort);
4167
- var themeOriginalValues = styleOriginalValues.get(mediaStyle1);
4175
+ var themeOriginalValues = styleOriginalValues.get(mediaStyle2);
4168
4176
  var isCurrentScheme = themeName === scheme || themeName.startsWith(scheme);
4169
- for (var subKey1 in mediaStyle1) {
4170
- var _$val1 = extractValueFromDynamic(mediaStyle1[subKey1], scheme);
4171
- var existing = styleState.style[subKey1];
4177
+ for (var subKey1 in mediaStyle2) {
4178
+ var _$val1 = extractValueFromDynamic(mediaStyle2[subKey1], scheme);
4179
+ var existing1 = styleState.style[subKey1];
4172
4180
  if (!isColorStyleKey(subKey1)) {
4173
4181
  dynamicThemeAccess = true;
4174
- if (isCurrentScheme) mediaStyle1[subKey1] = _$val1;
4175
- else delete mediaStyle1[subKey1];
4182
+ if (isCurrentScheme) mediaStyle2[subKey1] = _$val1;
4183
+ else delete mediaStyle2[subKey1];
4176
4184
  continue;
4177
4185
  }
4178
- if (existing === null || existing === void 0 ? void 0 : existing.dynamic) {
4179
- existing.dynamic[scheme] = _$val1;
4180
- mediaStyle1[subKey1] = existing;
4186
+ if (existing1 === null || existing1 === void 0 ? void 0 : existing1.dynamic) {
4187
+ existing1.dynamic[scheme] = _$val1;
4188
+ mediaStyle2[subKey1] = existing1;
4181
4189
  } else {
4182
- mediaStyle1[subKey1] = getDynamicVal({
4190
+ mediaStyle2[subKey1] = getDynamicVal({
4183
4191
  scheme,
4184
4192
  val: _$val1,
4185
- oppositeVal: extractValueFromDynamic(existing, oppositeScheme)
4193
+ oppositeVal: extractValueFromDynamic(existing1, oppositeScheme)
4186
4194
  });
4187
- mergeStyle(styleState, subKey1, mediaStyle1[subKey1], priority, false, themeOriginalValues === null || themeOriginalValues === void 0 ? void 0 : themeOriginalValues[subKey1]);
4195
+ mergeStyle(styleState, subKey1, mediaStyle2[subKey1], priority, false, themeOriginalValues === null || themeOriginalValues === void 0 ? void 0 : themeOriginalValues[subKey1]);
4188
4196
  }
4189
4197
  }
4190
4198
  } else {
@@ -4211,7 +4219,7 @@ var getSplitStyles = function(props, staticConfig, theme, themeName, componentSt
4211
4219
  var isActive = mediaState1 === null || mediaState1 === void 0 ? void 0 : mediaState1[groupMediaKey];
4212
4220
  if (!mediaState1 && groupState.layout) isActive = mediaKeyMatch(groupMediaKey, groupState.layout);
4213
4221
  if (!isActive) {
4214
- for (var pkey1 in mediaStyle1) applyDefaultStyle(pkey1, styleState);
4222
+ for (var pkey1 in mediaStyle2) applyDefaultStyle(pkey1, styleState);
4215
4223
  return;
4216
4224
  }
4217
4225
  importanceBump = 2;
@@ -4224,19 +4232,19 @@ var getSplitStyles = function(props, staticConfig, theme, themeName, componentSt
4224
4232
  var isActive1 = componentGroupPseudoState === null || componentGroupPseudoState === void 0 ? void 0 : componentGroupPseudoState[groupPseudoKey];
4225
4233
  var priority1 = pseudoPriorities[groupPseudoKey];
4226
4234
  if (!isActive1) {
4227
- for (var pkey2 in mediaStyle1) applyDefaultStyle(pkey2, styleState);
4235
+ for (var pkey2 in mediaStyle2) applyDefaultStyle(pkey2, styleState);
4228
4236
  return;
4229
4237
  }
4230
4238
  importanceBump = priority1;
4231
4239
  }
4232
4240
  } else if (isPlatformMedia) importanceBump = getPlatformSpecificityBump(mediaKeyShort);
4233
- var mediaOriginalValues = styleOriginalValues.get(mediaStyle1);
4234
- if (isGroupMedia && mediaStyle1.transition) {
4235
- var _styleState12;
4236
- (_styleState12 = styleState).pseudoTransitions || (_styleState12.pseudoTransitions = {});
4237
- styleState.pseudoTransitions[`$${mediaKeyShort}`] = mediaStyle1.transition;
4241
+ var mediaOriginalValues = styleOriginalValues.get(mediaStyle2);
4242
+ if (isGroupMedia && mediaStyle2.transition) {
4243
+ var _styleState22;
4244
+ (_styleState22 = styleState).pseudoTransitions || (_styleState22.pseudoTransitions = {});
4245
+ styleState.pseudoTransitions[`$${mediaKeyShort}`] = mediaStyle2.transition;
4238
4246
  }
4239
- for (var subKey2 in mediaStyle1) {
4247
+ for (var subKey2 in mediaStyle2) {
4240
4248
  if (subKey2 === "space") continue;
4241
4249
  if (subKey2[0] === "$") {
4242
4250
  var subMediaType = getMediaKey(subKey2);
@@ -4247,7 +4255,7 @@ var getSplitStyles = function(props, staticConfig, theme, themeName, componentSt
4247
4255
  } else if (subMediaType === true) {
4248
4256
  if (!mediaState$1[subKey2.slice(1)]) continue;
4249
4257
  }
4250
- var nestedVal = mediaStyle1[subKey2];
4258
+ var nestedVal = mediaStyle2[subKey2];
4251
4259
  var subOriginalValues = styleOriginalValues.get(nestedVal);
4252
4260
  var outerBase = !!mediaState$1[mediaKeyShort] ? getMediaKeyImportance(mediaKeyShort) : defaultMediaImportance;
4253
4261
  var innerBase = void 0;
@@ -4256,15 +4264,15 @@ var getSplitStyles = function(props, staticConfig, theme, themeName, componentSt
4256
4264
  else innerBase = defaultMediaImportance;
4257
4265
  var nestedImportance = outerBase + importanceBump + innerBase + 1;
4258
4266
  for (var subSubKey in nestedVal) {
4259
- var _styleState22;
4267
+ var _styleState32;
4260
4268
  var expandedKey = shorthands[subSubKey] || subSubKey;
4261
4269
  var { usedKeys } = styleState;
4262
4270
  if (usedKeys[expandedKey] && usedKeys[expandedKey] > nestedImportance) continue;
4263
- (_styleState22 = styleState).style || (_styleState22.style = {});
4271
+ (_styleState32 = styleState).style || (_styleState32.style = {});
4264
4272
  mergeStyle(styleState, expandedKey, nestedVal[subSubKey], nestedImportance, false, subOriginalValues === null || subOriginalValues === void 0 ? void 0 : subOriginalValues[subSubKey]);
4265
4273
  if (expandedKey === "fontFamily") styleState.fontFamily = nestedVal[subSubKey];
4266
4274
  }
4267
- } else mergeMediaStyle2(subKey2, mediaStyle1[subKey2], mediaOriginalValues === null || mediaOriginalValues === void 0 ? void 0 : mediaOriginalValues[subKey2]);
4275
+ } else mergeMediaStyle2(subKey2, mediaStyle2[subKey2], mediaOriginalValues === null || mediaOriginalValues === void 0 ? void 0 : mediaOriginalValues[subKey2]);
4268
4276
  }
4269
4277
  }
4270
4278
  return;
@@ -7199,8 +7207,10 @@ var LayoutMeasurementController = function(param) {
7199
7207
  };
7200
7208
  var globalIntersectionObserver = null;
7201
7209
  var strategy = "async";
7210
+ var resumeLayoutLoop;
7202
7211
  function setOnLayoutStrategy(state) {
7203
7212
  strategy = state;
7213
+ resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
7204
7214
  }
7205
7215
  var NodeRectCache = /* @__PURE__ */ new WeakMap();
7206
7216
  var avoidUpdates = true;
@@ -7241,6 +7251,10 @@ if (ENABLE) {
7241
7251
  }
7242
7252
  }, { threshold: 0 });
7243
7253
  return rectFetchObserver;
7254
+ }, scheduleLayoutFrame2 = function() {
7255
+ if (frameScheduled || strategy === "off" || Nodes.size === 0 || document.hidden) return;
7256
+ frameScheduled = true;
7257
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
7244
7258
  };
7245
7259
  var BoundingRects = /* @__PURE__ */ new WeakMap();
7246
7260
  var rectFetchObserver = null;
@@ -7275,13 +7289,15 @@ if (ENABLE) {
7275
7289
  var MAX_SKIP_FRAMES = 20;
7276
7290
  var skipFrames = BASE_SKIP_FRAMES;
7277
7291
  var frameCount = 0;
7292
+ var frameScheduled = false;
7278
7293
  function layoutOnAnimationFrame() {
7279
7294
  return _layoutOnAnimationFrame.apply(this, arguments);
7280
7295
  }
7281
7296
  function _layoutOnAnimationFrame() {
7282
7297
  _layoutOnAnimationFrame = _asyncToGenerator(function* () {
7283
7298
  if (frameCount++ % skipFrames !== 0) {
7284
- rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
7299
+ frameScheduled = false;
7300
+ scheduleLayoutFrame2();
7285
7301
  return;
7286
7302
  }
7287
7303
  if (frameCount >= Number.MAX_SAFE_INTEGER) frameCount = 0;
@@ -7358,11 +7374,14 @@ if (ENABLE) {
7358
7374
  for (var i2 = 0; i2 < visibleNodes.length; i2++) updateLayoutIfChanged(visibleNodes[i2]);
7359
7375
  }
7360
7376
  }
7361
- rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
7377
+ frameScheduled = false;
7378
+ scheduleLayoutFrame2();
7362
7379
  });
7363
7380
  return _layoutOnAnimationFrame.apply(this, arguments);
7364
7381
  }
7365
- layoutOnAnimationFrame();
7382
+ resumeLayoutLoop = scheduleLayoutFrame2;
7383
+ document.addEventListener("visibilitychange", scheduleLayoutFrame2);
7384
+ scheduleLayoutFrame2();
7366
7385
  }
7367
7386
  var getElementLayoutEvent = function(nodeRect, parentRect, node) {
7368
7387
  return {
@@ -7421,6 +7440,7 @@ function observeLayoutNode(node, disableKey) {
7421
7440
  globalIntersectionObserver.observe(node);
7422
7441
  IntersectionState.set(node, true);
7423
7442
  }
7443
+ resumeLayoutLoop === null || resumeLayoutLoop === void 0 || resumeLayoutLoop();
7424
7444
  }
7425
7445
  function registerLayoutNode(node, onChange, disableKey) {
7426
7446
  LayoutHandlers.set(node, onChange);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/core",
3
- "version": "2.7.2",
3
+ "version": "2.7.3",
4
4
  "gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -79,17 +79,17 @@
79
79
  "clean:build": "tamagui-build clean:build"
80
80
  },
81
81
  "dependencies": {
82
- "@tamagui/helpers": "2.7.2",
83
- "@tamagui/react-native-media-driver": "2.7.2",
84
- "@tamagui/react-native-use-pressable": "2.7.2",
85
- "@tamagui/use-element-layout": "2.7.2",
86
- "@tamagui/use-event": "2.7.2",
87
- "@tamagui/web": "2.7.2"
82
+ "@tamagui/helpers": "2.7.3",
83
+ "@tamagui/react-native-media-driver": "2.7.3",
84
+ "@tamagui/react-native-use-pressable": "2.7.3",
85
+ "@tamagui/use-element-layout": "2.7.3",
86
+ "@tamagui/use-event": "2.7.3",
87
+ "@tamagui/web": "2.7.3"
88
88
  },
89
89
  "devDependencies": {
90
- "@tamagui/build": "2.7.2",
91
- "@tamagui/native-bundle": "2.7.2",
92
- "@tamagui/react-native-web-lite": "2.7.2",
90
+ "@tamagui/build": "2.7.3",
91
+ "@tamagui/native-bundle": "2.7.3",
92
+ "@tamagui/react-native-web-lite": "2.7.3",
93
93
  "@testing-library/react": "^16.1.0",
94
94
  "csstype": "^3.0.10",
95
95
  "react": ">=19",