@tamagui/core 1.126.13-1747671613486 → 1.126.13-1747874018127

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.
@@ -20,37 +20,47 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
20
20
  }), mod);
21
21
  var useElementLayout_exports = {};
22
22
  __export(useElementLayout_exports, {
23
- measureElement: () => measureElement,
23
+ getElementLayoutEvent: () => getElementLayoutEvent,
24
24
  measureLayout: () => measureLayout,
25
25
  useElementLayout: () => useElementLayout
26
26
  });
27
27
  module.exports = __toCommonJS(useElementLayout_exports);
28
28
  var import_constants = require("@tamagui/constants"),
29
- import_getBoundingClientRect = require("../helpers/getBoundingClientRect.cjs");
29
+ import_web = require("@tamagui/web");
30
30
  const LayoutHandlers = /* @__PURE__ */new WeakMap(),
31
- resizeListeners = /* @__PURE__ */new Set();
32
- let resizeObserver = null;
33
- if (typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver(entries => {
34
- for (const {
35
- target
36
- } of entries) {
37
- const onLayout = LayoutHandlers.get(target);
38
- if (typeof onLayout != "function") return;
39
- measureElement(target).then(event => {
40
- onLayout(event);
41
- });
42
- }
43
- }), typeof window.addEventListener == "function")) {
44
- let tm;
45
- window.addEventListener("resize", () => {
46
- clearTimeout(tm), tm = setTimeout(() => {
47
- resizeListeners.forEach(cb => cb());
48
- }, 4);
49
- });
31
+ Nodes = /* @__PURE__ */new Set(),
32
+ NodeRectCache = /* @__PURE__ */new WeakMap(),
33
+ ParentRectCache = /* @__PURE__ */new WeakMap();
34
+ if (import_constants.isClient && typeof requestAnimationFrame == "function") {
35
+ let updateLayoutIfChanged = function (node) {
36
+ const nodeRect = node.getBoundingClientRect(),
37
+ parentNode = node.parentElement,
38
+ parentRect = parentNode?.getBoundingClientRect(),
39
+ onLayout = LayoutHandlers.get(node);
40
+ if (typeof onLayout != "function") return;
41
+ const cachedRect = NodeRectCache.get(node),
42
+ cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
43
+ if (!cachedRect ||
44
+ // has changed one rect
45
+ !(0, import_web.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_web.isEqualShallow)(cachedParentRect, parentRect))) {
46
+ NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect);
47
+ const event = getElementLayoutEvent(node);
48
+ avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
49
+ }
50
+ },
51
+ layoutOnAnimationFrame = function () {
52
+ Nodes.forEach(updateLayoutIfChanged), requestAnimationFrame(layoutOnAnimationFrame);
53
+ },
54
+ avoidUpdates = !0;
55
+ const queuedUpdates = /* @__PURE__ */new Map();
56
+ (0, import_web.___onDidFinishClientRender)(() => {
57
+ avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(cb => cb()), queuedUpdates.clear());
58
+ }), requestAnimationFrame(layoutOnAnimationFrame);
50
59
  }
51
- const measureElement = async target => new Promise(res => {
52
- measureLayout(target, null, (x, y, width, height, left, top) => {
53
- res({
60
+ const getElementLayoutEvent = target => {
61
+ let res = null;
62
+ if (measureLayout(target, null, (x, y, width, height, left, top) => {
63
+ res = {
54
64
  nativeEvent: {
55
65
  layout: {
56
66
  x,
@@ -63,27 +73,26 @@ const measureElement = async target => new Promise(res => {
63
73
  target
64
74
  },
65
75
  timeStamp: Date.now()
66
- });
67
- });
68
- }),
69
- cache = /* @__PURE__ */new WeakMap(),
76
+ };
77
+ }), !res) throw new Error("\u203C\uFE0F");
78
+ return res;
79
+ },
70
80
  measureLayout = (node, relativeTo, callback) => {
71
- const relativeNode = relativeTo || node?.parentNode;
81
+ const relativeNode = relativeTo || node?.parentElement;
72
82
  if (relativeNode instanceof HTMLElement) {
73
- const now = Date.now();
74
- cache.set(node, now), Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]).then(([nodeDim, relativeNodeDim]) => {
75
- if (relativeNodeDim && nodeDim && cache.get(node) === now) {
76
- const {
77
- x,
78
- y,
79
- width,
80
- height,
81
- left,
82
- top
83
- } = getRelativeDimensions(nodeDim, relativeNodeDim);
84
- callback(x, y, width, height, left, top);
85
- }
86
- });
83
+ const nodeDim = node.getBoundingClientRect(),
84
+ relativeNodeDim = relativeNode.getBoundingClientRect();
85
+ if (relativeNodeDim && nodeDim) {
86
+ const {
87
+ x,
88
+ y,
89
+ width,
90
+ height,
91
+ left,
92
+ top
93
+ } = getRelativeDimensions(nodeDim, relativeNodeDim);
94
+ callback(x, y, width, height, left, top);
95
+ }
87
96
  }
88
97
  },
89
98
  getRelativeDimensions = (a, b) => {
@@ -103,30 +112,14 @@ const measureElement = async target => new Promise(res => {
103
112
  left,
104
113
  top
105
114
  };
106
- },
107
- getBoundingClientRectAsync = element => new Promise(resolve => {
108
- function fallbackToSync() {
109
- resolve((0, import_getBoundingClientRect.getBoundingClientRect)(element));
110
- }
111
- const tm = setTimeout(fallbackToSync, 10);
112
- new IntersectionObserver((entries, ob) => {
113
- clearTimeout(tm), ob.disconnect(), resolve(entries[0]?.boundingClientRect);
114
- }, {
115
- threshold: 1e-4
116
- }).observe(element);
117
- });
115
+ };
118
116
  function useElementLayout(ref, onLayout) {
119
117
  const node = ref.current?.host;
120
118
  node && onLayout && LayoutHandlers.set(node, onLayout), (0, import_constants.useIsomorphicLayoutEffect)(() => {
121
- if (!resizeObserver || !onLayout) return;
119
+ if (!onLayout) return;
122
120
  const node2 = ref.current?.host;
123
- if (!node2) return;
124
- LayoutHandlers.set(node2, onLayout);
125
- const onResize = () => {
126
- measureElement(node2).then(onLayout);
127
- };
128
- return resizeListeners.add(onResize), resizeObserver.observe(node2), () => {
129
- LayoutHandlers.delete(node2), resizeListeners.delete(onResize), resizeObserver?.unobserve(node2);
121
+ if (node2) return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent(node2)), () => {
122
+ Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
130
123
  };
131
124
  }, [ref, !!onLayout]);
132
125
  }
@@ -14,87 +14,70 @@ var __export = (target, all) => {
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
15
  var useElementLayout_exports = {};
16
16
  __export(useElementLayout_exports, {
17
- measureElement: () => measureElement,
17
+ getElementLayoutEvent: () => getElementLayoutEvent,
18
18
  measureLayout: () => measureLayout,
19
19
  useElementLayout: () => useElementLayout
20
20
  });
21
21
  module.exports = __toCommonJS(useElementLayout_exports);
22
- var import_constants = require("@tamagui/constants"), import_getBoundingClientRect = require("../helpers/getBoundingClientRect");
23
- const LayoutHandlers = /* @__PURE__ */ new WeakMap(), resizeListeners = /* @__PURE__ */ new Set();
24
- let resizeObserver = null;
25
- if (typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver((entries) => {
26
- for (const { target } of entries) {
27
- const onLayout = LayoutHandlers.get(target);
22
+ var import_constants = require("@tamagui/constants"), import_web = require("@tamagui/web");
23
+ const LayoutHandlers = /* @__PURE__ */ new WeakMap(), Nodes = /* @__PURE__ */ new Set(), NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap();
24
+ if (import_constants.isClient && typeof requestAnimationFrame == "function") {
25
+ let updateLayoutIfChanged = function(node) {
26
+ const nodeRect = node.getBoundingClientRect(), parentNode = node.parentElement, parentRect = parentNode?.getBoundingClientRect(), onLayout = LayoutHandlers.get(node);
28
27
  if (typeof onLayout != "function") return;
29
- measureElement(target).then((event) => {
30
- onLayout(event);
31
- });
32
- }
33
- }), typeof window.addEventListener == "function")) {
34
- let tm;
35
- window.addEventListener("resize", () => {
36
- clearTimeout(tm), tm = setTimeout(() => {
37
- resizeListeners.forEach((cb) => cb());
38
- }, 4);
39
- });
28
+ const cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
29
+ if (!cachedRect || // has changed one rect
30
+ !(0, import_web.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_web.isEqualShallow)(cachedParentRect, parentRect))) {
31
+ NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect);
32
+ const event = getElementLayoutEvent(node);
33
+ avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
34
+ }
35
+ }, layoutOnAnimationFrame = function() {
36
+ Nodes.forEach(updateLayoutIfChanged), requestAnimationFrame(layoutOnAnimationFrame);
37
+ }, avoidUpdates = !0;
38
+ const queuedUpdates = /* @__PURE__ */ new Map();
39
+ (0, import_web.___onDidFinishClientRender)(() => {
40
+ avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach((cb) => cb()), queuedUpdates.clear());
41
+ }), requestAnimationFrame(layoutOnAnimationFrame);
40
42
  }
41
- const measureElement = async (target) => new Promise((res) => {
42
- measureLayout(target, null, (x, y, width, height, left, top) => {
43
- res({
43
+ const getElementLayoutEvent = (target) => {
44
+ let res = null;
45
+ if (measureLayout(target, null, (x, y, width, height, left, top) => {
46
+ res = {
44
47
  nativeEvent: {
45
48
  layout: { x, y, width, height, left, top },
46
49
  target
47
50
  },
48
51
  timeStamp: Date.now()
49
- });
50
- });
51
- }), cache = /* @__PURE__ */ new WeakMap(), measureLayout = (node, relativeTo, callback) => {
52
- const relativeNode = relativeTo || node?.parentNode;
52
+ };
53
+ }), !res)
54
+ throw new Error("\u203C\uFE0F");
55
+ return res;
56
+ }, measureLayout = (node, relativeTo, callback) => {
57
+ const relativeNode = relativeTo || node?.parentElement;
53
58
  if (relativeNode instanceof HTMLElement) {
54
- const now = Date.now();
55
- cache.set(node, now), Promise.all([
56
- getBoundingClientRectAsync(node),
57
- getBoundingClientRectAsync(relativeNode)
58
- ]).then(([nodeDim, relativeNodeDim]) => {
59
- if (relativeNodeDim && nodeDim && cache.get(node) === now) {
60
- const { x, y, width, height, left, top } = getRelativeDimensions(
61
- nodeDim,
62
- relativeNodeDim
63
- );
64
- callback(x, y, width, height, left, top);
65
- }
66
- });
59
+ const nodeDim = node.getBoundingClientRect(), relativeNodeDim = relativeNode.getBoundingClientRect();
60
+ if (relativeNodeDim && nodeDim) {
61
+ const { x, y, width, height, left, top } = getRelativeDimensions(
62
+ nodeDim,
63
+ relativeNodeDim
64
+ );
65
+ callback(x, y, width, height, left, top);
66
+ }
67
67
  }
68
68
  }, getRelativeDimensions = (a, b) => {
69
69
  const { height, left, top, width } = a, x = left - b.left, y = top - b.top;
70
70
  return { x, y, width, height, left, top };
71
- }, getBoundingClientRectAsync = (element) => new Promise((resolve) => {
72
- function fallbackToSync() {
73
- resolve((0, import_getBoundingClientRect.getBoundingClientRect)(element));
74
- }
75
- const tm = setTimeout(fallbackToSync, 10);
76
- new IntersectionObserver(
77
- (entries, ob) => {
78
- clearTimeout(tm), ob.disconnect(), resolve(entries[0]?.boundingClientRect);
79
- },
80
- {
81
- threshold: 1e-4
82
- }
83
- ).observe(element);
84
- });
71
+ };
85
72
  function useElementLayout(ref, onLayout) {
86
73
  const node = ref.current?.host;
87
74
  node && onLayout && LayoutHandlers.set(node, onLayout), (0, import_constants.useIsomorphicLayoutEffect)(() => {
88
- if (!resizeObserver || !onLayout) return;
75
+ if (!onLayout) return;
89
76
  const node2 = ref.current?.host;
90
- if (!node2) return;
91
- LayoutHandlers.set(node2, onLayout);
92
- const onResize = () => {
93
- measureElement(node2).then(onLayout);
94
- };
95
- return resizeListeners.add(onResize), resizeObserver.observe(node2), () => {
96
- LayoutHandlers.delete(node2), resizeListeners.delete(onResize), resizeObserver?.unobserve(node2);
97
- };
77
+ if (node2)
78
+ return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent(node2)), () => {
79
+ Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
80
+ };
98
81
  }, [ref, !!onLayout]);
99
82
  }
100
83
  //# sourceMappingURL=useElementLayout.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useElementLayout.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["node"]
6
6
  }
@@ -15,85 +15,64 @@ var __export = (target, all) => {
15
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
16
  var useElementLayout_exports = {};
17
17
  __export(useElementLayout_exports, {
18
- measureElement: () => measureElement,
18
+ getElementLayoutEvent: () => getElementLayoutEvent,
19
19
  measureLayout: () => measureLayout,
20
20
  useElementLayout: () => useElementLayout
21
21
  });
22
22
  module.exports = __toCommonJS(useElementLayout_exports);
23
- var import_constants = require("@tamagui/constants"), import_getBoundingClientRect = require("../helpers/getBoundingClientRect");
24
- function _type_of(obj) {
25
- "@swc/helpers - typeof";
26
- return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
27
- }
28
- var LayoutHandlers = /* @__PURE__ */ new WeakMap(), resizeListeners = /* @__PURE__ */ new Set(), resizeObserver = null;
29
- if (typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver(function(entries) {
30
- var _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
31
- try {
32
- for (var _loop = function() {
33
- var { target } = _step.value, onLayout = LayoutHandlers.get(target);
34
- if (typeof onLayout != "function") return {
35
- v: void 0
36
- };
37
- measureElement(target).then(function(event) {
38
- onLayout(event);
39
- });
40
- }, _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
41
- var _ret = _loop();
42
- if (_type_of(_ret) === "object") return _ret.v;
43
- }
44
- } catch (err) {
45
- _didIteratorError = !0, _iteratorError = err;
46
- } finally {
47
- try {
48
- !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
49
- } finally {
50
- if (_didIteratorError)
51
- throw _iteratorError;
23
+ var import_constants = require("@tamagui/constants"), import_web = require("@tamagui/web"), LayoutHandlers = /* @__PURE__ */ new WeakMap(), Nodes = /* @__PURE__ */ new Set(), NodeRectCache = /* @__PURE__ */ new WeakMap(), ParentRectCache = /* @__PURE__ */ new WeakMap();
24
+ if (import_constants.isClient && typeof requestAnimationFrame == "function") {
25
+ let updateLayoutIfChanged = function(node) {
26
+ var nodeRect = node.getBoundingClientRect(), parentNode = node.parentElement, parentRect = parentNode == null ? void 0 : parentNode.getBoundingClientRect(), onLayout = LayoutHandlers.get(node);
27
+ if (typeof onLayout == "function") {
28
+ var cachedRect = NodeRectCache.get(node), cachedParentRect = parentNode ? NodeRectCache.get(parentNode) : null;
29
+ if (!cachedRect || // has changed one rect
30
+ !(0, import_web.isEqualShallow)(cachedRect, nodeRect) && (!cachedParentRect || !(0, import_web.isEqualShallow)(cachedParentRect, parentRect))) {
31
+ NodeRectCache.set(node, nodeRect), parentRect && parentNode && ParentRectCache.set(parentNode, parentRect);
32
+ var event = getElementLayoutEvent(node);
33
+ avoidUpdates ? queuedUpdates.set(node, function() {
34
+ return onLayout(event);
35
+ }) : onLayout(event);
36
+ }
52
37
  }
53
- }
54
- }), typeof window.addEventListener == "function")) {
55
- var tm;
56
- window.addEventListener("resize", function() {
57
- clearTimeout(tm), tm = setTimeout(function() {
58
- resizeListeners.forEach(function(cb) {
59
- return cb();
60
- });
61
- }, 4);
62
- });
38
+ }, layoutOnAnimationFrame = function() {
39
+ Nodes.forEach(updateLayoutIfChanged), requestAnimationFrame(layoutOnAnimationFrame);
40
+ };
41
+ var updateLayoutIfChanged2 = updateLayoutIfChanged, layoutOnAnimationFrame2 = layoutOnAnimationFrame, avoidUpdates = !0, queuedUpdates = /* @__PURE__ */ new Map();
42
+ (0, import_web.___onDidFinishClientRender)(function() {
43
+ avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(function(cb) {
44
+ return cb();
45
+ }), queuedUpdates.clear());
46
+ }), requestAnimationFrame(layoutOnAnimationFrame);
63
47
  }
64
- var measureElement = async function(target) {
65
- return new Promise(function(res) {
66
- measureLayout(target, null, function(x, y, width, height, left, top) {
67
- res({
68
- nativeEvent: {
69
- layout: {
70
- x,
71
- y,
72
- width,
73
- height,
74
- left,
75
- top
76
- },
77
- target
48
+ var getElementLayoutEvent = function(target) {
49
+ var res = null;
50
+ if (measureLayout(target, null, function(x, y, width, height, left, top) {
51
+ res = {
52
+ nativeEvent: {
53
+ layout: {
54
+ x,
55
+ y,
56
+ width,
57
+ height,
58
+ left,
59
+ top
78
60
  },
79
- timeStamp: Date.now()
80
- });
81
- });
82
- });
83
- }, cache = /* @__PURE__ */ new WeakMap(), measureLayout = function(node, relativeTo, callback) {
84
- var relativeNode = relativeTo || (node == null ? void 0 : node.parentNode);
61
+ target
62
+ },
63
+ timeStamp: Date.now()
64
+ };
65
+ }), !res)
66
+ throw new Error("\u203C\uFE0F");
67
+ return res;
68
+ }, measureLayout = function(node, relativeTo, callback) {
69
+ var relativeNode = relativeTo || (node == null ? void 0 : node.parentElement);
85
70
  if (relativeNode instanceof HTMLElement) {
86
- var now = Date.now();
87
- cache.set(node, now), Promise.all([
88
- getBoundingClientRectAsync(node),
89
- getBoundingClientRectAsync(relativeNode)
90
- ]).then(function(param) {
91
- var [nodeDim, relativeNodeDim] = param;
92
- if (relativeNodeDim && nodeDim && cache.get(node) === now) {
93
- var { x, y, width, height, left, top } = getRelativeDimensions(nodeDim, relativeNodeDim);
94
- callback(x, y, width, height, left, top);
95
- }
96
- });
71
+ var nodeDim = node.getBoundingClientRect(), relativeNodeDim = relativeNode.getBoundingClientRect();
72
+ if (relativeNodeDim && nodeDim) {
73
+ var { x, y, width, height, left, top } = getRelativeDimensions(nodeDim, relativeNodeDim);
74
+ callback(x, y, width, height, left, top);
75
+ }
97
76
  }
98
77
  }, getRelativeDimensions = function(a, b) {
99
78
  var { height, left, top, width } = a, x = left - b.left, y = top - b.top;
@@ -105,35 +84,17 @@ var measureElement = async function(target) {
105
84
  left,
106
85
  top
107
86
  };
108
- }, getBoundingClientRectAsync = function(element) {
109
- return new Promise(function(resolve) {
110
- function fallbackToSync() {
111
- resolve((0, import_getBoundingClientRect.getBoundingClientRect)(element));
112
- }
113
- var tm = setTimeout(fallbackToSync, 10), observer = new IntersectionObserver(function(entries, ob) {
114
- var _entries_;
115
- clearTimeout(tm), ob.disconnect(), resolve((_entries_ = entries[0]) === null || _entries_ === void 0 ? void 0 : _entries_.boundingClientRect);
116
- }, {
117
- threshold: 1e-4
118
- });
119
- observer.observe(element);
120
- });
121
87
  };
122
88
  function useElementLayout(ref, onLayout) {
123
89
  var _ref_current, node = (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.host;
124
90
  node && onLayout && LayoutHandlers.set(node, onLayout), (0, import_constants.useIsomorphicLayoutEffect)(function() {
125
91
  var _ref_current2;
126
- if (!(!resizeObserver || !onLayout)) {
92
+ if (onLayout) {
127
93
  var node2 = (_ref_current2 = ref.current) === null || _ref_current2 === void 0 ? void 0 : _ref_current2.host;
128
- if (node2) {
129
- LayoutHandlers.set(node2, onLayout);
130
- var onResize = function() {
131
- measureElement(node2).then(onLayout);
94
+ if (node2)
95
+ return LayoutHandlers.set(node2, onLayout), Nodes.add(node2), onLayout(getElementLayoutEvent(node2)), function() {
96
+ Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2);
132
97
  };
133
- return resizeListeners.add(onResize), resizeObserver.observe(node2), function() {
134
- LayoutHandlers.delete(node2), resizeListeners.delete(onResize), resizeObserver == null || resizeObserver.unobserve(node2);
135
- };
136
- }
137
98
  }
138
99
  }, [
139
100
  ref,
@@ -142,7 +103,7 @@ function useElementLayout(ref, onLayout) {
142
103
  }
143
104
  // Annotate the CommonJS export names for ESM import in node:
144
105
  0 && (module.exports = {
145
- measureElement,
106
+ getElementLayoutEvent,
146
107
  measureLayout,
147
108
  useElementLayout
148
109
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useElementLayout.tsx"],
4
- "mappings": "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",
5
- "names": ["LayoutHandlers", "WeakMap", "resizeListeners", "Set", "resizeObserver", "window", "ResizeObserver", "entries", "target", "onLayout", "get", "measureElement", "then", "event", "addEventListener", "tm", "clearTimeout", "setTimeout", "forEach", "cb", "Promise", "res", "measureLayout", "x", "y", "width", "height", "left", "top", "nativeEvent", "layout", "timeStamp", "Date", "now", "cache", "node", "relativeTo", "callback", "relativeNode", "parentNode", "HTMLElement", "set", "all", "getBoundingClientRectAsync", "nodeDim", "relativeNodeDim", "getRelativeDimensions", "a", "b", "element", "resolve", "fallbackToSync", "getBoundingClientRect", "observer", "IntersectionObserver", "ob", "disconnect", "boundingClientRect", "threshold", "observe", "useElementLayout", "ref", "current", "host", "useIsomorphicLayoutEffect", "onResize", "add", "delete", "unobserve"]
4
+ "mappings": "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",
5
+ "names": ["LayoutHandlers", "WeakMap", "Nodes", "Set", "NodeRectCache", "ParentRectCache", "isClient", "requestAnimationFrame", "updateLayoutIfChanged", "node", "nodeRect", "getBoundingClientRect", "parentNode", "parentElement", "parentRect", "onLayout", "get", "cachedRect", "cachedParentRect", "isEqualShallow", "set", "event", "getElementLayoutEvent", "avoidUpdates", "queuedUpdates", "layoutOnAnimationFrame", "forEach", "Map", "___onDidFinishClientRender", "cb", "clear", "target", "res", "measureLayout", "x", "y", "width", "height", "left", "top", "nativeEvent", "layout", "timeStamp", "Date", "now", "Error", "relativeTo", "callback", "relativeNode", "HTMLElement", "nodeDim", "relativeNodeDim", "getRelativeDimensions", "a", "b", "useElementLayout", "ref", "current", "host", "useIsomorphicLayoutEffect", "add", "delete"]
6
6
  }
@@ -24,7 +24,8 @@ __export(index_exports, {
24
24
  Stack: () => Stack,
25
25
  Text: () => Text,
26
26
  View: () => View,
27
- createTamagui: () => createTamagui
27
+ createTamagui: () => createTamagui,
28
+ getElementLayoutEvent: () => import_useElementLayout2.getElementLayoutEvent
28
29
  });
29
30
  module.exports = __toCommonJS(index_exports);
30
31
  var import_react_native_media_driver = require("@tamagui/react-native-media-driver"),
@@ -36,7 +37,8 @@ var import_react_native_media_driver = require("@tamagui/react-native-media-driv
36
37
  import_getRect = require("./helpers/getRect.cjs"),
37
38
  import_useElementLayout = require("./hooks/useElementLayout.cjs"),
38
39
  import_Pressability = require("./vendor/Pressability.cjs"),
39
- import_addNativeValidStyles = require("./addNativeValidStyles.cjs");
40
+ import_addNativeValidStyles = require("./addNativeValidStyles.cjs"),
41
+ import_useElementLayout2 = require("./hooks/useElementLayout.cjs");
40
42
  __reExport(index_exports, require("@tamagui/web"), module.exports);
41
43
  __reExport(index_exports, require("./reactNativeTypes.cjs"), module.exports);
42
44
  (0, import_addNativeValidStyles.addNativeValidStyles)();
package/dist/cjs/index.js CHANGED
@@ -17,10 +17,11 @@ __export(index_exports, {
17
17
  Stack: () => Stack,
18
18
  Text: () => Text,
19
19
  View: () => View,
20
- createTamagui: () => createTamagui
20
+ createTamagui: () => createTamagui,
21
+ getElementLayoutEvent: () => import_useElementLayout2.getElementLayoutEvent
21
22
  });
22
23
  module.exports = __toCommonJS(index_exports);
23
- var import_react_native_media_driver = require("@tamagui/react-native-media-driver"), import_react_native_use_responder_events = require("@tamagui/react-native-use-responder-events"), import_web = require("@tamagui/web"), import_react = require("react"), import_createOptimizedView = require("./createOptimizedView"), import_getBaseViews = require("./getBaseViews"), import_getRect = require("./helpers/getRect"), import_useElementLayout = require("./hooks/useElementLayout"), import_Pressability = require("./vendor/Pressability"), import_addNativeValidStyles = require("./addNativeValidStyles");
24
+ var import_react_native_media_driver = require("@tamagui/react-native-media-driver"), import_react_native_use_responder_events = require("@tamagui/react-native-use-responder-events"), import_web = require("@tamagui/web"), import_react = require("react"), import_createOptimizedView = require("./createOptimizedView"), import_getBaseViews = require("./getBaseViews"), import_getRect = require("./helpers/getRect"), import_useElementLayout = require("./hooks/useElementLayout"), import_Pressability = require("./vendor/Pressability"), import_addNativeValidStyles = require("./addNativeValidStyles"), import_useElementLayout2 = require("./hooks/useElementLayout");
24
25
  __reExport(index_exports, require("@tamagui/web"), module.exports);
25
26
  __reExport(index_exports, require("./reactNativeTypes"), module.exports);
26
27
  (0, import_addNativeValidStyles.addNativeValidStyles)();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAA4B,+CAC5B,2CAAmC,uDAYnC,aAOO,yBACP,eAAkB,kBAElB,6BAAoC,kCACpC,sBAA6B,2BAC7B,iBAAwB,8BACxB,0BAAgD,qCAEhD,sBAAgC,kCAChC,8BAAqC;AAkCrC,0BAAc,yBA/Dd;AAkEA,0BAAc,+BAlEd;AAAA,IAgCA,kDAAqB;AAqCd,MAAM,gBAAyC,CAAC,aAM9C,WAAAA,eAAiB,IAAI,GAGxB,gBAAY,kCAAa;AAAA,IAI/B,uBAAW;AAAA,EACT;AAAA,EAEA,iBAAiB,CAAC,SAAS;AAEzB,IAAI,QAAQ,CAAC,KAAK,YAEhB,KAAK,YAAY,CAAC,iBAAa,uCAAc,MAAM,MAAM,QAAQ,GAEjE,KAAK,kBAAkB,CAAC,gBAAgB,gBACtC,uCAAc,MAAqB,gBAAgB,OAAO,GAE5D,KAAK,oBAAoB,CAAC,aAAa;AACrC,iBAAW,MAAM;AACf,cAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAmB;AAChE,iBAAS,MAAM,KAAK,OAAO,MAAM;AAAA,MACnC,GAAG,CAAC;AAAA,IACN;AAAA,EAEJ;AAAA,EAEA,kBAAkB,aAAa,SAAS,UAAU,aAAa;AACnB;AACxC,YAAM,QAAQ,OAAO,eAAgB,UAG/B;AAAA;AAAA,QAEJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA,QAEA;AAAA,QACA;AAAA,QAEA,GAAG;AAAA,MACL,IAAI;AAOJ,WALI,eAAe,eACjB,0CAAiB,UAAW,QAAqB,WAAb,MAA6B,OACjE,6DAAmB,UAAW,QAAoB,UAAZ,MAAmB,IAGvD,OAAO;AAET,YAAI,cAAc,QAAQ,WAAW;AACnC,gBAAM,EAAE,UAAU,KAAK,OAAO,IAAI;AAClC,UAAI,YAAY,SACd,cAAc,WAAW,WAEvB,QACF,cAAc,MAAM,MAElB,OAAO,UAAW,aACpB,cAAc,SAAS,OAAO,OAAO,CAAC,MAAM,MAAM,IAAI,MAAM,KAAK;AAAA,QAErE;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,UAAU,WAAW,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,cAAc;AAAA,EA0DzE;AAwBF,CAAC;AAQM,MAAM,OAAO,WAAAC,MACP,QAAQ,WAAAC,OACR,OAAO,WAAAC;",
5
- "names": ["createTamaguiWeb", "WebView", "WebStack", "WebText"]
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAA4B,+CAC5B,2CAAmC,uDAYnC,aAOO,yBACP,eAAkB,kBAElB,6BAAoC,kCACpC,sBAA6B,2BAC7B,iBAAwB,8BACxB,0BAAgD,qCAEhD,sBAAgC,kCAChC,8BAAqC,mCAGrCA,2BAGO;AAkCP,0BAAc,yBArEd;AAwEA,0BAAc,+BAxEd;AAAA,IAsCA,kDAAqB;AAqCd,MAAM,gBAAyC,CAAC,aAM9C,WAAAC,eAAiB,IAAI,GAGxB,gBAAY,kCAAa;AAAA,IAI/B,uBAAW;AAAA,EACT;AAAA,EAEA,iBAAiB,CAAC,SAAS;AAEzB,IAAI,QAAQ,CAAC,KAAK,YAEhB,KAAK,YAAY,CAAC,iBAAa,uCAAc,MAAM,MAAM,QAAQ,GAEjE,KAAK,kBAAkB,CAAC,gBAAgB,gBACtC,uCAAc,MAAqB,gBAAgB,OAAO,GAE5D,KAAK,oBAAoB,CAAC,aAAa;AACrC,iBAAW,MAAM;AACf,cAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAmB;AAChE,iBAAS,MAAM,KAAK,OAAO,MAAM;AAAA,MACnC,GAAG,CAAC;AAAA,IACN;AAAA,EAEJ;AAAA,EAEA,kBAAkB,aAAa,SAAS,UAAU,aAAa;AACnB;AACxC,YAAM,QAAQ,OAAO,eAAgB,UAG/B;AAAA;AAAA,QAEJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA,QAEA;AAAA,QACA;AAAA,QAEA,GAAG;AAAA,MACL,IAAI;AAOJ,WALI,eAAe,eACjB,0CAAiB,UAAW,QAAqB,WAAb,MAA6B,OACjE,6DAAmB,UAAW,QAAoB,UAAZ,MAAmB,IAGvD,OAAO;AAET,YAAI,cAAc,QAAQ,WAAW;AACnC,gBAAM,EAAE,UAAU,KAAK,OAAO,IAAI;AAClC,UAAI,YAAY,SACd,cAAc,WAAW,WAEvB,QACF,cAAc,MAAM,MAElB,OAAO,UAAW,aACpB,cAAc,SAAS,OAAO,OAAO,CAAC,MAAM,MAAM,IAAI,MAAM,KAAK;AAAA,QAErE;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EAEA,UAAU,WAAW,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,cAAc;AAAA,EA0DzE;AAwBF,CAAC;AAQM,MAAM,OAAO,WAAAC,MACP,QAAQ,WAAAC,OACR,OAAO,WAAAC;",
5
+ "names": ["import_useElementLayout", "createTamaguiWeb", "WebView", "WebStack", "WebText"]
6
6
  }
@@ -25,10 +25,11 @@ __export(index_exports, {
25
25
  Stack: () => Stack,
26
26
  Text: () => Text,
27
27
  View: () => View,
28
- createTamagui: () => createTamagui
28
+ createTamagui: () => createTamagui,
29
+ getElementLayoutEvent: () => import_useElementLayout2.getElementLayoutEvent
29
30
  });
30
31
  module.exports = __toCommonJS(index_exports);
31
- var import_react_native_media_driver = require("@tamagui/react-native-media-driver"), import_react_native_use_responder_events = require("@tamagui/react-native-use-responder-events"), import_web = require("@tamagui/web"), import_react = __toESM(require("react")), import_createOptimizedView = require("./createOptimizedView"), import_getBaseViews = require("./getBaseViews"), import_getRect = require("./helpers/getRect"), import_useElementLayout = require("./hooks/useElementLayout"), import_Pressability = require("./vendor/Pressability"), import_addNativeValidStyles = require("./addNativeValidStyles");
32
+ var import_react_native_media_driver = require("@tamagui/react-native-media-driver"), import_react_native_use_responder_events = require("@tamagui/react-native-use-responder-events"), import_web = require("@tamagui/web"), import_react = __toESM(require("react")), import_createOptimizedView = require("./createOptimizedView"), import_getBaseViews = require("./getBaseViews"), import_getRect = require("./helpers/getRect"), import_useElementLayout = require("./hooks/useElementLayout"), import_Pressability = require("./vendor/Pressability"), import_addNativeValidStyles = require("./addNativeValidStyles"), import_useElementLayout2 = require("./hooks/useElementLayout");
32
33
  __reExport(index_exports, require("@tamagui/web"), module.exports);
33
34
  __reExport(index_exports, require("./reactNativeTypes"), module.exports);
34
35
  (0, import_addNativeValidStyles.addNativeValidStyles)();
@@ -97,6 +98,7 @@ var dontComposePressabilityKeys = {
97
98
  Text,
98
99
  View,
99
100
  createTamagui,
101
+ getElementLayoutEvent,
100
102
  ...require("@tamagui/web"),
101
103
  ...require("./reactNativeTypes")
102
104
  });