tamagui 1.126.13 → 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.
@@ -10719,13 +10719,25 @@ var require_TamaguiProvider_native = __commonJS({
10719
10719
  __export2(TamaguiProvider_exports, {
10720
10720
  TamaguiProvider: function() {
10721
10721
  return TamaguiProvider2;
10722
+ },
10723
+ ___onDidFinishClientRender: function() {
10724
+ return ___onDidFinishClientRender;
10722
10725
  }
10723
10726
  });
10724
10727
  module2.exports = __toCommonJS2(TamaguiProvider_exports);
10725
- 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();
10728
+ 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;
10729
+ function ___onDidFinishClientRender(cb) {
10730
+ didRender ? cb() : listeners.add(cb);
10731
+ }
10726
10732
  function TamaguiProvider2(param) {
10727
10733
  var { children, disableInjectCSS, config, className, defaultTheme, disableRootThemeClass, reset, themeClassNameOnRoot } = param;
10728
- return process.env.TAMAGUI_REACT_19 || import_constants4.isClient && (0, import_constants4.useIsomorphicLayoutEffect)(function() {
10734
+ return (0, import_react3.useEffect)(function() {
10735
+ return listeners.forEach(function(cb) {
10736
+ return cb();
10737
+ }), didRender = !0, function() {
10738
+ didRender = !1;
10739
+ };
10740
+ }, []), process.env.TAMAGUI_REACT_19 || import_constants4.isClient && (0, import_constants4.useIsomorphicLayoutEffect)(function() {
10729
10741
  if (config && !disableInjectCSS) {
10730
10742
  var style = document.createElement("style");
10731
10743
  return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
@@ -13008,8 +13020,8 @@ var require_useElementLayout_native = __commonJS({
13008
13020
  }), mod);
13009
13021
  }, useElementLayout_exports = {};
13010
13022
  __export2(useElementLayout_exports, {
13011
- measureElement: function() {
13012
- return measureElement;
13023
+ getElementLayoutEvent: function() {
13024
+ return getElementLayoutEvent2;
13013
13025
  },
13014
13026
  measureLayout: function() {
13015
13027
  return measureLayout;
@@ -13019,76 +13031,54 @@ var require_useElementLayout_native = __commonJS({
13019
13031
  }
13020
13032
  });
13021
13033
  module2.exports = __toCommonJS2(useElementLayout_exports);
13022
- var import_constants4 = require_index_native6(), import_getBoundingClientRect = require_getBoundingClientRect_native();
13023
- function _type_of(obj) {
13024
- "@swc/helpers - typeof";
13025
- return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
13026
- }
13027
- var LayoutHandlers = /* @__PURE__ */ new WeakMap(), resizeListeners = /* @__PURE__ */ new Set(), resizeObserver = null;
13028
- typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver(function(entries) {
13029
- var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
13030
- try {
13031
- for (var _loop = function() {
13032
- var { target } = _step.value, onLayout = LayoutHandlers.get(target);
13033
- if (typeof onLayout != "function") return {
13034
- v: void 0
13035
- };
13036
- measureElement(target).then(function(event) {
13037
- onLayout(event);
13038
- });
13039
- }, _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
13040
- var _ret = _loop();
13041
- if (_type_of(_ret) === "object") return _ret.v;
13042
- }
13043
- } catch (err) {
13044
- _didIteratorError = !0, _iteratorError = err;
13045
- } finally {
13046
- try {
13047
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
13048
- } finally {
13049
- if (_didIteratorError) throw _iteratorError;
13050
- }
13051
- }
13052
- }), typeof window.addEventListener == "function") && window.addEventListener("resize", function() {
13053
- clearTimeout(tm), tm = setTimeout(function() {
13054
- resizeListeners.forEach(function(cb) {
13055
- return cb();
13056
- });
13057
- }, 4);
13058
- });
13059
- var tm, measureElement = async function(target) {
13060
- return new Promise(function(res) {
13061
- measureLayout(target, null, function(x, y, width, height, left, top) {
13062
- res({
13063
- nativeEvent: {
13064
- layout: {
13065
- x,
13066
- y,
13067
- width,
13068
- height,
13069
- left,
13070
- top
13071
- },
13072
- target
13034
+ 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;
13035
+ import_constants4.isClient && rAF && (updateLayoutIfChanged = function(node) {
13036
+ var nodeRect = node.getBoundingClientRect(), parentNode = node.parentElement, parentRect = parentNode == null ? void 0 : parentNode.getBoundingClientRect(), onLayout = LayoutHandlers.get(node);
13037
+ if (typeof onLayout == "function") {
13038
+ var cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
13039
+ if (!cachedRect || // has changed one rect
13040
+ !(0, import_web.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_web.isEqualShallow)(cachedParentRect, parentRect))) {
13041
+ NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect);
13042
+ var event = getElementLayoutEvent2(node);
13043
+ avoidUpdates ? queuedUpdates.set(node, function() {
13044
+ return onLayout(event);
13045
+ }) : onLayout(event);
13046
+ }
13047
+ }
13048
+ }, layoutOnAnimationFrame = function() {
13049
+ Nodes.forEach(updateLayoutIfChanged), rAF(layoutOnAnimationFrame);
13050
+ }, updateLayoutIfChanged2 = updateLayoutIfChanged, layoutOnAnimationFrame2 = layoutOnAnimationFrame, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map(), (0, import_web.___onDidFinishClientRender)(function() {
13051
+ avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(function(cb) {
13052
+ return cb();
13053
+ }), queuedUpdates.clear());
13054
+ }), rAF(layoutOnAnimationFrame));
13055
+ var updateLayoutIfChanged, layoutOnAnimationFrame, updateLayoutIfChanged2, layoutOnAnimationFrame2, avoidUpdates, queuedUpdates, getElementLayoutEvent2 = function(target) {
13056
+ var res = null;
13057
+ if (measureLayout(target, null, function(x, y, width, height, left, top) {
13058
+ res = {
13059
+ nativeEvent: {
13060
+ layout: {
13061
+ x,
13062
+ y,
13063
+ width,
13064
+ height,
13065
+ left,
13066
+ top
13073
13067
  },
13074
- timeStamp: Date.now()
13075
- });
13076
- });
13077
- });
13078
- }, cache = /* @__PURE__ */ new WeakMap(), measureLayout = function(node, relativeTo, callback) {
13079
- var relativeNode = relativeTo || (node == null ? void 0 : node.parentNode);
13068
+ target
13069
+ },
13070
+ timeStamp: Date.now()
13071
+ };
13072
+ }), !res) throw new Error("\u203C\uFE0F");
13073
+ return res;
13074
+ }, measureLayout = function(node, relativeTo, callback) {
13075
+ var relativeNode = relativeTo || (node == null ? void 0 : node.parentElement);
13080
13076
  if (relativeNode instanceof HTMLElement) {
13081
- var now = Date.now();
13082
- cache.set(node, now), Promise.all([
13083
- getBoundingClientRectAsync(node),
13084
- getBoundingClientRectAsync(relativeNode)
13085
- ]).then(function(param) {
13086
- var [nodeDim, relativeNodeDim] = param;
13087
- if (relativeNodeDim && nodeDim && cache.get(node) === now) {
13088
- var { x, y, width, height, left, top } = getRelativeDimensions(nodeDim, relativeNodeDim);
13089
- callback(x, y, width, height, left, top);
13090
- }
13091
- });
13077
+ var nodeDim = node.getBoundingClientRect(), relativeNodeDim = relativeNode.getBoundingClientRect();
13078
+ if (relativeNodeDim && nodeDim) {
13079
+ var { x, y, width, height, left, top } = getRelativeDimensions(nodeDim, relativeNodeDim);
13080
+ callback(x, y, width, height, left, top);
13081
+ }
13092
13082
  }
13093
13083
  }, getRelativeDimensions = function(a, b) {
13094
13084
  var { height, left, top, width } = a, x = left - b.left, y = top - b.top;
@@ -13100,35 +13090,16 @@ var require_useElementLayout_native = __commonJS({
13100
13090
  left,
13101
13091
  top
13102
13092
  };
13103
- }, getBoundingClientRectAsync = function(element) {
13104
- return new Promise(function(resolve) {
13105
- function fallbackToSync() {
13106
- resolve((0, import_getBoundingClientRect.getBoundingClientRect)(element));
13107
- }
13108
- var tm2 = setTimeout(fallbackToSync, 10), observer = new IntersectionObserver(function(entries, ob) {
13109
- var _entries_;
13110
- clearTimeout(tm2), ob.disconnect(), resolve((_entries_ = entries[0]) === null || _entries_ === void 0 ? void 0 : _entries_.boundingClientRect);
13111
- }, {
13112
- threshold: 1e-4
13113
- });
13114
- observer.observe(element);
13115
- });
13116
13093
  };
13117
13094
  function useElementLayout(ref, onLayout) {
13118
13095
  var _ref_current, node = (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host;
13119
13096
  node && onLayout && LayoutHandlers.set(node, onLayout), (0, import_constants4.useIsomorphicLayoutEffect)(function() {
13120
13097
  var _ref_current2;
13121
- if (!(!resizeObserver || !onLayout)) {
13098
+ if (onLayout) {
13122
13099
  var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;
13123
- if (node2) {
13124
- LayoutHandlers.set(node2, onLayout);
13125
- var onResize = function() {
13126
- measureElement(node2).then(onLayout);
13127
- };
13128
- return resizeListeners.add(onResize), resizeObserver.observe(node2), function() {
13129
- LayoutHandlers.delete(node2), resizeListeners.delete(onResize), resizeObserver == null || resizeObserver.unobserve(node2);
13130
- };
13131
- }
13100
+ if (node2) return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent2(node2)), function() {
13101
+ Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
13102
+ };
13132
13103
  }
13133
13104
  }, [
13134
13105
  ref,
@@ -13416,10 +13387,13 @@ var require_index_native18 = __commonJS({
13416
13387
  },
13417
13388
  createTamagui: function() {
13418
13389
  return createTamagui2;
13390
+ },
13391
+ getElementLayoutEvent: function() {
13392
+ return import_useElementLayout2.getElementLayoutEvent;
13419
13393
  }
13420
13394
  });
13421
13395
  module2.exports = __toCommonJS2(index_exports2);
13422
- 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();
13396
+ 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();
13423
13397
  __reExport2(index_exports2, require_index_native14(), module2.exports);
13424
13398
  __reExport2(index_exports2, require_reactNativeTypes_native(), module2.exports);
13425
13399
  (0, import_addNativeValidStyles.addNativeValidStyles)();