tamagui 1.126.18 → 1.127.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1149,6 +1149,9 @@ var require_constants_native = __commonJS({
1149
1149
  }), mod);
1150
1150
  }, constants_native_exports = {};
1151
1151
  __export2(constants_native_exports, {
1152
+ IS_REACT_19: function() {
1153
+ return IS_REACT_19;
1154
+ },
1152
1155
  currentPlatform: function() {
1153
1156
  return currentPlatform;
1154
1157
  },
@@ -1184,7 +1187,7 @@ var require_constants_native = __commonJS({
1184
1187
  }
1185
1188
  });
1186
1189
  module2.exports = __toCommonJS2(constants_native_exports);
1187
- var import_react3 = require("react"), import_react_native4 = require("react-native"), isWeb6 = !1, isWindowDefined = !1, isServer2 = !1, isClient2 = !1, useIsomorphicLayoutEffect2 = import_react3.useLayoutEffect, isChrome2 = !1, isWebTouchable2 = !1, isTouchable2 = !0, isAndroid = import_react_native4.Platform.OS === "android" || process.env.TEST_NATIVE_PLATFORM === "android", isIos = import_react_native4.Platform.OS === "ios" || process.env.TEST_NATIVE_PLATFORM === "ios", platforms = {
1190
+ var import_react3 = require("react"), import_react22 = require("react"), import_react_native4 = require("react-native"), IS_REACT_19 = !!import_react22.use, isWeb6 = !1, isWindowDefined = !1, isServer2 = !1, isClient2 = !1, useIsomorphicLayoutEffect2 = import_react3.useLayoutEffect, isChrome2 = !1, isWebTouchable2 = !1, isTouchable2 = !0, isAndroid = import_react_native4.Platform.OS === "android" || process.env.TEST_NATIVE_PLATFORM === "android", isIos = import_react_native4.Platform.OS === "ios" || process.env.TEST_NATIVE_PLATFORM === "ios", platforms = {
1188
1191
  ios: "ios",
1189
1192
  android: "android"
1190
1193
  }, currentPlatform = platforms[import_react_native4.Platform.OS] || "native";
@@ -12990,12 +12993,31 @@ var require_getBoundingClientRect_native = __commonJS({
12990
12993
  __export2(getBoundingClientRect_exports, {
12991
12994
  getBoundingClientRect: function() {
12992
12995
  return getBoundingClientRect;
12996
+ },
12997
+ getBoundingClientRectAsync: function() {
12998
+ return getBoundingClientRectAsync;
12993
12999
  }
12994
13000
  });
12995
13001
  module2.exports = __toCommonJS2(getBoundingClientRect_exports);
12996
13002
  var getBoundingClientRect = function(node) {
12997
13003
  var _node_getBoundingClientRect;
12998
13004
  if (!(!node || node.nodeType !== 1)) return (_node_getBoundingClientRect = node.getBoundingClientRect) === null || _node_getBoundingClientRect === void 0 ? void 0 : _node_getBoundingClientRect.call(node);
13005
+ }, getBoundingClientRectAsync = function(element) {
13006
+ return new Promise(function(resolve) {
13007
+ var didFallback = !1;
13008
+ function fallbackToSync() {
13009
+ didFallback = !0, resolve(getBoundingClientRect(element));
13010
+ }
13011
+ var tm = setTimeout(fallbackToSync, 32), observer = new IntersectionObserver(function(entries, ob) {
13012
+ if (clearTimeout(tm), ob.disconnect(), !didFallback) {
13013
+ var _entries_;
13014
+ resolve((_entries_ = entries[0]) === null || _entries_ === void 0 ? void 0 : _entries_.boundingClientRect);
13015
+ }
13016
+ }, {
13017
+ threshold: 1e-4
13018
+ });
13019
+ observer.observe(element);
13020
+ });
12999
13021
  };
13000
13022
  }
13001
13023
  });
@@ -13101,9 +13123,15 @@ var require_useElementLayout_native = __commonJS({
13101
13123
  getElementLayoutEvent: function() {
13102
13124
  return getElementLayoutEvent2;
13103
13125
  },
13126
+ getElementLayoutEventAsync: function() {
13127
+ return getElementLayoutEventAsync;
13128
+ },
13104
13129
  measureLayout: function() {
13105
13130
  return measureLayout;
13106
13131
  },
13132
+ measureLayoutAsync: function() {
13133
+ return measureLayoutAsync;
13134
+ },
13107
13135
  setOnLayoutStrategy: function() {
13108
13136
  return setOnLayoutStrategy3;
13109
13137
  },
@@ -13112,37 +13140,62 @@ var require_useElementLayout_native = __commonJS({
13112
13140
  }
13113
13141
  });
13114
13142
  module2.exports = __toCommonJS2(useElementLayout_exports);
13115
- var import_constants4 = require_index_native6(), import_web = require_index_native14(), LayoutHandlers = /* @__PURE__ */ new WeakMap(), Nodes = /* @__PURE__ */ new Set(), status = "active";
13143
+ var import_constants4 = require_index_native6(), import_web = require_index_native14(), LayoutHandlers = /* @__PURE__ */ new WeakMap(), Nodes = /* @__PURE__ */ new Set(), strategy = "async";
13116
13144
  function setOnLayoutStrategy3(state) {
13117
- status = state;
13118
- }
13119
- var NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
13120
- import_constants4.isClient && rAF && (updateLayoutIfChanged = function(node) {
13121
- var nodeRect = node.getBoundingClientRect(), parentNode = node.parentElement, parentRect = parentNode == null ? void 0 : parentNode.getBoundingClientRect(), onLayout = LayoutHandlers.get(node);
13122
- if (typeof onLayout == "function") {
13123
- var cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
13124
- if (!cachedRect || // has changed one rect
13125
- !(0, import_web.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_web.isEqualShallow)(cachedParentRect, parentRect))) {
13126
- NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect);
13127
- var event = getElementLayoutEvent2(node);
13128
- avoidUpdates ? queuedUpdates.set(node, function() {
13129
- return onLayout(event);
13130
- }) : onLayout(event);
13131
- }
13132
- }
13133
- }, layoutOnAnimationFrame = function() {
13134
- var now = Date.now(), timeSinceLastFrame = now - lastFrameAt;
13135
- if (lastFrameAt = now, status !== "inactive") {
13136
- var expectedFrameTime = 16.67, hasRecentSyncWork = timeSinceLastFrame > expectedFrameTime * numDroppedFramesUntilPause;
13137
- hasRecentSyncWork || Nodes.forEach(updateLayoutIfChanged);
13145
+ strategy = state;
13146
+ }
13147
+ var NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap(), DebounceTimers = /* @__PURE__ */ new WeakMap(), LastChangeTime = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0, DEBOUNCE_DELAY = 32;
13148
+ if (import_constants4.isClient && rAF) {
13149
+ layoutOnAnimationFrame = function() {
13150
+ var now = Date.now(), timeSinceLastFrame = now - lastFrameAt;
13151
+ if (lastFrameAt = now, strategy !== "off") {
13152
+ var expectedFrameTime = 16.67, hasRecentSyncWork = timeSinceLastFrame > expectedFrameTime * numDroppedFramesUntilPause;
13153
+ hasRecentSyncWork || Nodes.forEach(updateLayoutIfChanged);
13154
+ }
13155
+ rAF(layoutOnAnimationFrame);
13156
+ }, layoutOnAnimationFrame2 = layoutOnAnimationFrame, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map(), lastFrameAt = Date.now(), numDroppedFramesUntilPause = 2, (0, import_web.___onDidFinishClientRender)(function() {
13157
+ avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(function(cb) {
13158
+ return cb();
13159
+ }), queuedUpdates.clear());
13160
+ });
13161
+ async function updateLayoutIfChanged(node) {
13162
+ var nodeRect = node.getBoundingClientRect(), parentNode = node.parentElement, parentRect = parentNode == null ? void 0 : parentNode.getBoundingClientRect(), onLayout = LayoutHandlers.get(node);
13163
+ if (typeof onLayout == "function") {
13164
+ var cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
13165
+ if (!cachedRect || // has changed one rect
13166
+ !(0, import_web.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_web.isEqualShallow)(cachedParentRect, parentRect))) if (NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect), avoidUpdates) {
13167
+ var event = getElementLayoutEvent2(node);
13168
+ queuedUpdates.set(node, function() {
13169
+ return onLayout(event);
13170
+ });
13171
+ } else if (strategy === "async") {
13172
+ var now = Date.now();
13173
+ LastChangeTime.set(node, now);
13174
+ var existingTimer = DebounceTimers.get(node);
13175
+ existingTimer && clearTimeout(existingTimer);
13176
+ var timer = setTimeout(async function() {
13177
+ var lastChange = LastChangeTime.get(node) || 0, timeSinceChange = Date.now() - lastChange;
13178
+ if (timeSinceChange >= DEBOUNCE_DELAY) {
13179
+ var event2 = await getElementLayoutEventAsync(node);
13180
+ onLayout(event2), DebounceTimers.delete(node);
13181
+ } else {
13182
+ var remainingDelay = DEBOUNCE_DELAY - timeSinceChange, newTimer = setTimeout(async function() {
13183
+ var event3 = await getElementLayoutEventAsync(node);
13184
+ onLayout(event3), DebounceTimers.delete(node);
13185
+ }, remainingDelay);
13186
+ DebounceTimers.set(node, newTimer);
13187
+ }
13188
+ }, DEBOUNCE_DELAY);
13189
+ DebounceTimers.set(node, timer);
13190
+ } else {
13191
+ var event1 = getElementLayoutEvent2(node);
13192
+ onLayout(event1);
13193
+ }
13194
+ }
13138
13195
  }
13139
13196
  rAF(layoutOnAnimationFrame);
13140
- }, updateLayoutIfChanged2 = updateLayoutIfChanged, layoutOnAnimationFrame2 = layoutOnAnimationFrame, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map(), lastFrameAt = Date.now(), numDroppedFramesUntilPause = 2, (0, import_web.___onDidFinishClientRender)(function() {
13141
- avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(function(cb) {
13142
- return cb();
13143
- }), queuedUpdates.clear());
13144
- }), rAF(layoutOnAnimationFrame));
13145
- var updateLayoutIfChanged, layoutOnAnimationFrame, updateLayoutIfChanged2, layoutOnAnimationFrame2, avoidUpdates, queuedUpdates, lastFrameAt, numDroppedFramesUntilPause, getElementLayoutEvent2 = function(target) {
13197
+ }
13198
+ var layoutOnAnimationFrame, layoutOnAnimationFrame2, avoidUpdates, queuedUpdates, lastFrameAt, numDroppedFramesUntilPause, getElementLayoutEvent2 = function(target) {
13146
13199
  var res = null;
13147
13200
  if (measureLayout(target, null, function(x, y, width, height, left, top) {
13148
13201
  res = {
@@ -13170,6 +13223,37 @@ var require_useElementLayout_native = __commonJS({
13170
13223
  callback(x, y, width, height, left, top);
13171
13224
  }
13172
13225
  }
13226
+ }, getElementLayoutEventAsync = async function(target) {
13227
+ var res = null;
13228
+ if (await measureLayoutAsync(target, null, function(x, y, width, height, left, top) {
13229
+ res = {
13230
+ nativeEvent: {
13231
+ layout: {
13232
+ x,
13233
+ y,
13234
+ width,
13235
+ height,
13236
+ left,
13237
+ top
13238
+ },
13239
+ target
13240
+ },
13241
+ timeStamp: Date.now()
13242
+ };
13243
+ }), !res) throw new Error("\u203C\uFE0F");
13244
+ return res;
13245
+ }, measureLayoutAsync = async function(node, relativeTo, callback) {
13246
+ var relativeNode = relativeTo || (node == null ? void 0 : node.parentElement);
13247
+ if (relativeNode instanceof HTMLElement) {
13248
+ var [nodeDim, relativeNodeDim] = await Promise.all([
13249
+ node.getBoundingClientRect(),
13250
+ relativeNode.getBoundingClientRect()
13251
+ ]);
13252
+ if (relativeNodeDim && nodeDim) {
13253
+ var { x, y, width, height, left, top } = getRelativeDimensions(nodeDim, relativeNodeDim);
13254
+ callback(x, y, width, height, left, top);
13255
+ }
13256
+ }
13173
13257
  }, getRelativeDimensions = function(a, b) {
13174
13258
  var { height, left, top, width } = a, x = left - b.left, y = top - b.top;
13175
13259
  return {
@@ -13189,6 +13273,8 @@ var require_useElementLayout_native = __commonJS({
13189
13273
  var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;
13190
13274
  if (node2) return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent2(node2)), function() {
13191
13275
  Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
13276
+ var timer = DebounceTimers.get(node2);
13277
+ timer && (clearTimeout(timer), DebounceTimers.delete(node2)), LastChangeTime.delete(node2);
13192
13278
  };
13193
13279
  }
13194
13280
  }, [