tamagui 1.126.13-1747874018127 → 1.126.14

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.js CHANGED
@@ -11294,13 +11294,25 @@ var require_TamaguiProvider_native = __commonJS({
11294
11294
  __export2(TamaguiProvider_exports, {
11295
11295
  TamaguiProvider: function() {
11296
11296
  return TamaguiProvider2;
11297
+ },
11298
+ ___onDidFinishClientRender: function() {
11299
+ return ___onDidFinishClientRender;
11297
11300
  }
11298
11301
  });
11299
11302
  module2.exports = __toCommonJS2(TamaguiProvider_exports);
11300
- var import_jsx_runtime6 = require("react/jsx-runtime"), import_constants4 = require_index_native6(), import_react3 = __toESM2(require("react")), import_config = require_config_native(), import_ComponentContext = require_ComponentContext_native(), import_ThemeProvider = require_ThemeProvider_native(), import_useMedia = require_useMedia_native();
11303
+ var import_jsx_runtime6 = require("react/jsx-runtime"), import_constants4 = require_index_native6(), import_react3 = __toESM2(require("react")), import_config = require_config_native(), import_ComponentContext = require_ComponentContext_native(), import_ThemeProvider = require_ThemeProvider_native(), import_useMedia = require_useMedia_native(), listeners = /* @__PURE__ */ new Set(), didRender = !1;
11304
+ function ___onDidFinishClientRender(cb) {
11305
+ didRender ? cb() : listeners.add(cb);
11306
+ }
11301
11307
  function TamaguiProvider2(param) {
11302
11308
  var { children, disableInjectCSS, config, className, defaultTheme, disableRootThemeClass, reset, themeClassNameOnRoot } = param;
11303
- return process.env.TAMAGUI_REACT_19 || import_constants4.isClient && (0, import_constants4.useIsomorphicLayoutEffect)(function() {
11309
+ return (0, import_react3.useEffect)(function() {
11310
+ return listeners.forEach(function(cb) {
11311
+ return cb();
11312
+ }), didRender = !0, function() {
11313
+ didRender = !1;
11314
+ };
11315
+ }, []), process.env.TAMAGUI_REACT_19 || import_constants4.isClient && (0, import_constants4.useIsomorphicLayoutEffect)(function() {
11304
11316
  if (config && !disableInjectCSS) {
11305
11317
  var style = document.createElement("style");
11306
11318
  return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
@@ -13590,8 +13602,8 @@ var require_useElementLayout_native = __commonJS({
13590
13602
  }), mod);
13591
13603
  }, useElementLayout_exports = {};
13592
13604
  __export2(useElementLayout_exports, {
13593
- measureElement: function() {
13594
- return measureElement;
13605
+ getElementLayoutEvent: function() {
13606
+ return getElementLayoutEvent2;
13595
13607
  },
13596
13608
  measureLayout: function() {
13597
13609
  return measureLayout;
@@ -13601,76 +13613,54 @@ var require_useElementLayout_native = __commonJS({
13601
13613
  }
13602
13614
  });
13603
13615
  module2.exports = __toCommonJS2(useElementLayout_exports);
13604
- var import_constants4 = require_index_native6(), import_getBoundingClientRect = require_getBoundingClientRect_native();
13605
- function _type_of(obj) {
13606
- "@swc/helpers - typeof";
13607
- return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
13608
- }
13609
- var LayoutHandlers = /* @__PURE__ */ new WeakMap(), resizeListeners = /* @__PURE__ */ new Set(), resizeObserver = null;
13610
- typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver(function(entries) {
13611
- var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
13612
- try {
13613
- for (var _loop = function() {
13614
- var { target } = _step.value, onLayout = LayoutHandlers.get(target);
13615
- if (typeof onLayout != "function") return {
13616
- v: void 0
13617
- };
13618
- measureElement(target).then(function(event) {
13619
- onLayout(event);
13620
- });
13621
- }, _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
13622
- var _ret = _loop();
13623
- if (_type_of(_ret) === "object") return _ret.v;
13624
- }
13625
- } catch (err) {
13626
- _didIteratorError = !0, _iteratorError = err;
13627
- } finally {
13628
- try {
13629
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
13630
- } finally {
13631
- if (_didIteratorError) throw _iteratorError;
13632
- }
13633
- }
13634
- }), typeof window.addEventListener == "function") && window.addEventListener("resize", function() {
13635
- clearTimeout(tm), tm = setTimeout(function() {
13636
- resizeListeners.forEach(function(cb) {
13637
- return cb();
13638
- });
13639
- }, 4);
13640
- });
13641
- var tm, measureElement = async function(target) {
13642
- return new Promise(function(res) {
13643
- measureLayout(target, null, function(x, y, width, height, left, top) {
13644
- res({
13645
- nativeEvent: {
13646
- layout: {
13647
- x,
13648
- y,
13649
- width,
13650
- height,
13651
- left,
13652
- top
13653
- },
13654
- target
13616
+ var import_constants4 = require_index_native6(), import_web = require_index_native14(), LayoutHandlers = /* @__PURE__ */ new WeakMap(), Nodes = /* @__PURE__ */ new Set(), NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap(), rAF = typeof window < "u" ? window.requestAnimationFrame : void 0;
13617
+ import_constants4.isClient && (rAF ? (updateLayoutIfChanged = function(node) {
13618
+ var nodeRect = node.getBoundingClientRect(), parentNode = node.parentElement, parentRect = parentNode == null ? void 0 : parentNode.getBoundingClientRect(), onLayout = LayoutHandlers.get(node);
13619
+ if (typeof onLayout == "function") {
13620
+ var cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
13621
+ if (!cachedRect || // has changed one rect
13622
+ !(0, import_web.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_web.isEqualShallow)(cachedParentRect, parentRect))) {
13623
+ NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect);
13624
+ var event = getElementLayoutEvent2(node);
13625
+ avoidUpdates ? queuedUpdates.set(node, function() {
13626
+ return onLayout(event);
13627
+ }) : onLayout(event);
13628
+ }
13629
+ }
13630
+ }, layoutOnAnimationFrame = function() {
13631
+ Nodes.forEach(updateLayoutIfChanged), rAF(layoutOnAnimationFrame);
13632
+ }, updateLayoutIfChanged2 = updateLayoutIfChanged, layoutOnAnimationFrame2 = layoutOnAnimationFrame, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map(), (0, import_web.___onDidFinishClientRender)(function() {
13633
+ avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(function(cb) {
13634
+ return cb();
13635
+ }), queuedUpdates.clear());
13636
+ }), rAF(layoutOnAnimationFrame)) : process.env.NODE_ENV === "development" && console.warn("No requestAnimationFrame - please polyfill for onLayout to work correctly"));
13637
+ var updateLayoutIfChanged, layoutOnAnimationFrame, updateLayoutIfChanged2, layoutOnAnimationFrame2, avoidUpdates, queuedUpdates, getElementLayoutEvent2 = function(target) {
13638
+ var res = null;
13639
+ if (measureLayout(target, null, function(x, y, width, height, left, top) {
13640
+ res = {
13641
+ nativeEvent: {
13642
+ layout: {
13643
+ x,
13644
+ y,
13645
+ width,
13646
+ height,
13647
+ left,
13648
+ top
13655
13649
  },
13656
- timeStamp: Date.now()
13657
- });
13658
- });
13659
- });
13660
- }, cache = /* @__PURE__ */ new WeakMap(), measureLayout = function(node, relativeTo, callback) {
13661
- var relativeNode = relativeTo || (node == null ? void 0 : node.parentNode);
13650
+ target
13651
+ },
13652
+ timeStamp: Date.now()
13653
+ };
13654
+ }), !res) throw new Error("\u203C\uFE0F");
13655
+ return res;
13656
+ }, measureLayout = function(node, relativeTo, callback) {
13657
+ var relativeNode = relativeTo || (node == null ? void 0 : node.parentElement);
13662
13658
  if (relativeNode instanceof HTMLElement) {
13663
- var now = Date.now();
13664
- cache.set(node, now), Promise.all([
13665
- getBoundingClientRectAsync(node),
13666
- getBoundingClientRectAsync(relativeNode)
13667
- ]).then(function(param) {
13668
- var [nodeDim, relativeNodeDim] = param;
13669
- if (relativeNodeDim && nodeDim && cache.get(node) === now) {
13670
- var { x, y, width, height, left, top } = getRelativeDimensions(nodeDim, relativeNodeDim);
13671
- callback(x, y, width, height, left, top);
13672
- }
13673
- });
13659
+ var nodeDim = node.getBoundingClientRect(), relativeNodeDim = relativeNode.getBoundingClientRect();
13660
+ if (relativeNodeDim && nodeDim) {
13661
+ var { x, y, width, height, left, top } = getRelativeDimensions(nodeDim, relativeNodeDim);
13662
+ callback(x, y, width, height, left, top);
13663
+ }
13674
13664
  }
13675
13665
  }, getRelativeDimensions = function(a, b) {
13676
13666
  var { height, left, top, width } = a, x = left - b.left, y = top - b.top;
@@ -13682,35 +13672,16 @@ var require_useElementLayout_native = __commonJS({
13682
13672
  left,
13683
13673
  top
13684
13674
  };
13685
- }, getBoundingClientRectAsync = function(element) {
13686
- return new Promise(function(resolve) {
13687
- function fallbackToSync() {
13688
- resolve((0, import_getBoundingClientRect.getBoundingClientRect)(element));
13689
- }
13690
- var tm2 = setTimeout(fallbackToSync, 10), observer = new IntersectionObserver(function(entries, ob) {
13691
- var _entries_;
13692
- clearTimeout(tm2), ob.disconnect(), resolve((_entries_ = entries[0]) === null || _entries_ === void 0 ? void 0 : _entries_.boundingClientRect);
13693
- }, {
13694
- threshold: 1e-4
13695
- });
13696
- observer.observe(element);
13697
- });
13698
13675
  };
13699
13676
  function useElementLayout(ref, onLayout) {
13700
13677
  var _ref_current, node = (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host;
13701
13678
  node && onLayout && LayoutHandlers.set(node, onLayout), (0, import_constants4.useIsomorphicLayoutEffect)(function() {
13702
13679
  var _ref_current2;
13703
- if (!(!resizeObserver || !onLayout)) {
13680
+ if (onLayout) {
13704
13681
  var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;
13705
- if (node2) {
13706
- LayoutHandlers.set(node2, onLayout);
13707
- var onResize = function() {
13708
- measureElement(node2).then(onLayout);
13709
- };
13710
- return resizeListeners.add(onResize), resizeObserver.observe(node2), function() {
13711
- LayoutHandlers.delete(node2), resizeListeners.delete(onResize), resizeObserver == null || resizeObserver.unobserve(node2);
13712
- };
13713
- }
13682
+ if (node2) return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent2(node2)), function() {
13683
+ Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
13684
+ };
13714
13685
  }
13715
13686
  }, [
13716
13687
  ref,
@@ -13998,10 +13969,13 @@ var require_index_native18 = __commonJS({
13998
13969
  },
13999
13970
  createTamagui: function() {
14000
13971
  return createTamagui2;
13972
+ },
13973
+ getElementLayoutEvent: function() {
13974
+ return import_useElementLayout2.getElementLayoutEvent;
14001
13975
  }
14002
13976
  });
14003
13977
  module2.exports = __toCommonJS2(index_exports2);
14004
- var import_react_native_media_driver = require_index_native16(), import_react_native_use_responder_events = require_index_native17(), import_web = require_index_native14(), import_react3 = __toESM2(require("react")), import_createOptimizedView = require_createOptimizedView_native(), import_getBaseViews = require_getBaseViews_native(), import_getRect = require_getRect_native(), import_useElementLayout = require_useElementLayout_native(), import_Pressability = require_Pressability_native(), import_addNativeValidStyles = require_addNativeValidStyles_native();
13978
+ var import_react_native_media_driver = require_index_native16(), import_react_native_use_responder_events = require_index_native17(), import_web = require_index_native14(), import_react3 = __toESM2(require("react")), import_createOptimizedView = require_createOptimizedView_native(), import_getBaseViews = require_getBaseViews_native(), import_getRect = require_getRect_native(), import_useElementLayout = require_useElementLayout_native(), import_Pressability = require_Pressability_native(), import_addNativeValidStyles = require_addNativeValidStyles_native(), import_useElementLayout2 = require_useElementLayout_native();
14005
13979
  __reExport2(index_exports2, require_index_native14(), module2.exports);
14006
13980
  __reExport2(index_exports2, require_reactNativeTypes_native(), module2.exports);
14007
13981
  (0, import_addNativeValidStyles.addNativeValidStyles)();