@tamagui/core 1.79.12 → 1.79.13

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.
@@ -19,7 +19,7 @@ __export(useElementLayout_exports, {
19
19
  });
20
20
  module.exports = __toCommonJS(useElementLayout_exports);
21
21
  var import_constants = require("@tamagui/constants"), import_getBoundingClientRect = require("../helpers/getBoundingClientRect"), import_getRect = require("../helpers/getRect");
22
- const LayoutHandlers = /* @__PURE__ */ new WeakMap();
22
+ const LayoutHandlers = /* @__PURE__ */ new WeakMap(), LayoutTimeouts = /* @__PURE__ */ new WeakMap();
23
23
  let resizeObserver = null;
24
24
  typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver((entries) => {
25
25
  for (const { target } of entries) {
@@ -39,10 +39,14 @@ typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new Resiz
39
39
  }));
40
40
  const measureLayout = (node, relativeTo, callback) => {
41
41
  const relativeNode = relativeTo || (node == null ? void 0 : node.parentNode);
42
- relativeNode instanceof HTMLElement && setTimeout(() => {
43
- const relativeRect = (0, import_getBoundingClientRect.getBoundingClientRect)(relativeNode), { height, left, top, width } = (0, import_getRect.getRect)(node), x = left - relativeRect.left, y = top - relativeRect.top;
44
- callback(x, y, width, height, left, top);
45
- }, 0);
42
+ if (relativeNode instanceof HTMLElement) {
43
+ clearTimeout(LayoutTimeouts.get(relativeNode));
44
+ const tm = setTimeout(() => {
45
+ const relativeRect = (0, import_getBoundingClientRect.getBoundingClientRect)(relativeNode), { height, left, top, width } = (0, import_getRect.getRect)(node), x = left - relativeRect.left, y = top - relativeRect.top;
46
+ callback(x, y, width, height, left, top), LayoutTimeouts.delete(relativeNode);
47
+ }, 0);
48
+ LayoutTimeouts.set(relativeNode, tm);
49
+ }
46
50
  };
47
51
  function useElementLayout(ref, onLayout) {
48
52
  (0, import_constants.useIsomorphicLayoutEffect)(() => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useElementLayout.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAG1C,+BAAsC,6CACtC,iBAAwB;AAExB,MAAM,iBAAiB,oBAAI,QAA2B;AAmBtD,IAAI,iBAAwC;AAExC,OAAO,SAAW,OAAe,oBAAoB,WACvD,iBAAiB,IAAI,eAAe,CAAC,YAAY;AAC/C,aAAW,EAAE,OAAO,KAAK,SAAS;AAChC,UAAM,WAAW,eAAe,IAAI,MAAM;AAC1C,QAAI,OAAO,YAAa;AAAY;AACpC,kBAAc,QAAuB,MAAM,CAAC,GAAG,GAAG,OAAO,QAAQ,MAAM,QAAQ;AAC7E,eAAS;AAAA,QACP,aAAa;AAAA,UACX,QAAQ,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAGI,MAAM,gBAAgB,CAC3B,MACA,YACA,aACG;AACH,QAAM,eAAe,eAAc,6BAAM;AACzC,EAAI,wBAAwB,eAC1B,WAAW,MAAM;AACf,UAAM,mBAAe,oDAAsB,YAAY,GACjD,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAI,GAC3C,IAAI,OAAO,aAAa,MACxB,IAAI,MAAM,aAAa;AAC7B,aAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG;AAAA,EACzC,GAAG,CAAC;AAER;AAEO,SAAS,iBACd,KACA,UACA;AACA,kDAA0B,MAAM;AAC9B,QAAI,CAAC,kBAAkB,CAAC;AAAU;AAClC,UAAM,OAAO,IAAI;AACjB,QAAK;AACL,4BAAe,IAAI,MAAM,QAAQ,GACjC,eAAe,QAAQ,IAAI,GACpB,MAAM;AACX,iDAAgB,UAAU;AAAA,MAC5B;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAG1C,+BAAsC,6CACtC,iBAAwB;AAExB,MAAM,iBAAiB,oBAAI,QAA2B,GAChD,iBAAiB,oBAAI,QAAsB;AAmBjD,IAAI,iBAAwC;AAExC,OAAO,SAAW,OAAe,oBAAoB,WACvD,iBAAiB,IAAI,eAAe,CAAC,YAAY;AAC/C,aAAW,EAAE,OAAO,KAAK,SAAS;AAChC,UAAM,WAAW,eAAe,IAAI,MAAM;AAC1C,QAAI,OAAO,YAAa;AAAY;AACpC,kBAAc,QAAuB,MAAM,CAAC,GAAG,GAAG,OAAO,QAAQ,MAAM,QAAQ;AAC7E,eAAS;AAAA,QACP,aAAa;AAAA,UACX,QAAQ,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAGI,MAAM,gBAAgB,CAC3B,MACA,YACA,aACG;AACH,QAAM,eAAe,eAAc,6BAAM;AACzC,MAAI,wBAAwB,aAAa;AAEvC,iBAAa,eAAe,IAAI,YAAY,CAAC;AAE7C,UAAM,KAAK,WAAW,MAAM;AAC1B,YAAM,mBAAe,oDAAsB,YAAY,GACjD,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAI,GAC3C,IAAI,OAAO,aAAa,MACxB,IAAI,MAAM,aAAa;AAC7B,eAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG,GACvC,eAAe,OAAO,YAAY;AAAA,IACpC,GAAG,CAAC;AACJ,mBAAe,IAAI,cAAc,EAAE;AAAA,EACrC;AACF;AAEO,SAAS,iBACd,KACA,UACA;AACA,kDAA0B,MAAM;AAC9B,QAAI,CAAC,kBAAkB,CAAC;AAAU;AAClC,UAAM,OAAO,IAAI;AACjB,QAAK;AACL,4BAAe,IAAI,MAAM,QAAQ,GACjC,eAAe,QAAQ,IAAI,GACpB,MAAM;AACX,iDAAgB,UAAU;AAAA,MAC5B;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB;",
5
5
  "names": []
6
6
  }
@@ -20,7 +20,7 @@ __export(useElementLayout_exports, {
20
20
  });
21
21
  module.exports = __toCommonJS(useElementLayout_exports);
22
22
  var import_constants = require("@tamagui/constants"), import_getBoundingClientRect = require("../helpers/getBoundingClientRect"), import_getRect = require("../helpers/getRect");
23
- const LayoutHandlers = /* @__PURE__ */ new WeakMap();
23
+ const LayoutHandlers = /* @__PURE__ */ new WeakMap(), LayoutTimeouts = /* @__PURE__ */ new WeakMap();
24
24
  let resizeObserver = null;
25
25
  typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver((entries) => {
26
26
  for (const { target } of entries) {
@@ -40,10 +40,14 @@ typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new Resiz
40
40
  }));
41
41
  const measureLayout = (node, relativeTo, callback) => {
42
42
  const relativeNode = relativeTo || (node == null ? void 0 : node.parentNode);
43
- relativeNode instanceof HTMLElement && setTimeout(() => {
44
- const relativeRect = (0, import_getBoundingClientRect.getBoundingClientRect)(relativeNode), { height, left, top, width } = (0, import_getRect.getRect)(node), x = left - relativeRect.left, y = top - relativeRect.top;
45
- callback(x, y, width, height, left, top);
46
- }, 0);
43
+ if (relativeNode instanceof HTMLElement) {
44
+ clearTimeout(LayoutTimeouts.get(relativeNode));
45
+ const tm = setTimeout(() => {
46
+ const relativeRect = (0, import_getBoundingClientRect.getBoundingClientRect)(relativeNode), { height, left, top, width } = (0, import_getRect.getRect)(node), x = left - relativeRect.left, y = top - relativeRect.top;
47
+ callback(x, y, width, height, left, top), LayoutTimeouts.delete(relativeNode);
48
+ }, 0);
49
+ LayoutTimeouts.set(relativeNode, tm);
50
+ }
47
51
  };
48
52
  function useElementLayout(ref, onLayout) {
49
53
  (0, import_constants.useIsomorphicLayoutEffect)(() => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useElementLayout.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAG1C,+BAAsC,6CACtC,iBAAwB;AAExB,MAAM,iBAAiB,oBAAI,QAA2B;AAmBtD,IAAI,iBAAwC;AAExC,OAAO,SAAW,OAAe,oBAAoB,WACvD,iBAAiB,IAAI,eAAe,CAAC,YAAY;AAC/C,aAAW,EAAE,OAAO,KAAK,SAAS;AAChC,UAAM,WAAW,eAAe,IAAI,MAAM;AAC1C,QAAI,OAAO,YAAa;AAAY;AACpC,kBAAc,QAAuB,MAAM,CAAC,GAAG,GAAG,OAAO,QAAQ,MAAM,QAAQ;AAC7E,eAAS;AAAA,QACP,aAAa;AAAA,UACX,QAAQ,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAGI,MAAM,gBAAgB,CAC3B,MACA,YACA,aACG;AACH,QAAM,eAAe,eAAc,6BAAM;AACzC,EAAI,wBAAwB,eAC1B,WAAW,MAAM;AACf,UAAM,mBAAe,oDAAsB,YAAY,GACjD,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAI,GAC3C,IAAI,OAAO,aAAa,MACxB,IAAI,MAAM,aAAa;AAC7B,aAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG;AAAA,EACzC,GAAG,CAAC;AAER;AAEO,SAAS,iBACd,KACA,UACA;AACA,kDAA0B,MAAM;AAC9B,QAAI,CAAC,kBAAkB,CAAC;AAAU;AAClC,UAAM,OAAO,IAAI;AACjB,QAAK;AACL,4BAAe,IAAI,MAAM,QAAQ,GACjC,eAAe,QAAQ,IAAI,GACpB,MAAM;AACX,iDAAgB,UAAU;AAAA,MAC5B;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAG1C,+BAAsC,6CACtC,iBAAwB;AAExB,MAAM,iBAAiB,oBAAI,QAA2B,GAChD,iBAAiB,oBAAI,QAAsB;AAmBjD,IAAI,iBAAwC;AAExC,OAAO,SAAW,OAAe,oBAAoB,WACvD,iBAAiB,IAAI,eAAe,CAAC,YAAY;AAC/C,aAAW,EAAE,OAAO,KAAK,SAAS;AAChC,UAAM,WAAW,eAAe,IAAI,MAAM;AAC1C,QAAI,OAAO,YAAa;AAAY;AACpC,kBAAc,QAAuB,MAAM,CAAC,GAAG,GAAG,OAAO,QAAQ,MAAM,QAAQ;AAC7E,eAAS;AAAA,QACP,aAAa;AAAA,UACX,QAAQ,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAGI,MAAM,gBAAgB,CAC3B,MACA,YACA,aACG;AACH,QAAM,eAAe,eAAc,6BAAM;AACzC,MAAI,wBAAwB,aAAa;AAEvC,iBAAa,eAAe,IAAI,YAAY,CAAC;AAE7C,UAAM,KAAK,WAAW,MAAM;AAC1B,YAAM,mBAAe,oDAAsB,YAAY,GACjD,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAI,GAC3C,IAAI,OAAO,aAAa,MACxB,IAAI,MAAM,aAAa;AAC7B,eAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG,GACvC,eAAe,OAAO,YAAY;AAAA,IACpC,GAAG,CAAC;AACJ,mBAAe,IAAI,cAAc,EAAE;AAAA,EACrC;AACF;AAEO,SAAS,iBACd,KACA,UACA;AACA,kDAA0B,MAAM;AAC9B,QAAI,CAAC,kBAAkB,CAAC;AAAU;AAClC,UAAM,OAAO,IAAI;AACjB,QAAK;AACL,4BAAe,IAAI,MAAM,QAAQ,GACjC,eAAe,QAAQ,IAAI,GACpB,MAAM;AACX,iDAAgB,UAAU;AAAA,MAC5B;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB;",
5
5
  "names": []
6
6
  }
@@ -17,9 +17,9 @@ __export(usePlatformMethods_exports, {
17
17
  usePlatformMethods: () => usePlatformMethods
18
18
  });
19
19
  module.exports = __toCommonJS(usePlatformMethods_exports);
20
- var import_web = require("@tamagui/web"), import_getRect = require("../helpers/getRect"), import_useElementLayout = require("./useElementLayout");
20
+ var import_constants = require("@tamagui/constants"), import_getRect = require("../helpers/getRect"), import_useElementLayout = require("./useElementLayout");
21
21
  function usePlatformMethods(hostRef) {
22
- (0, import_web.useIsomorphicLayoutEffect)(() => {
22
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
23
23
  const node = hostRef.current;
24
24
  node && (node.measure = (callback) => (0, import_useElementLayout.measureLayout)(node, null, callback), node.measureLayout = (relativeToNode, success) => (0, import_useElementLayout.measureLayout)(node, relativeToNode, success), node.measureInWindow = (callback) => {
25
25
  node && setTimeout(() => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/usePlatformMethods.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA0C,yBAG1C,iBAAwB,+BACxB,0BAA8B;AAGvB,SAAS,mBAAmB,SAA6B;AAC9D,4CAA0B,MAAM;AAC9B,UAAM,OAAO,QAAQ;AACrB,IAAK,SAEL,KAAK,UAAU,CAAC,iBAAa,uCAAc,MAAM,MAAM,QAAQ,GAE/D,KAAK,gBAAgB,CAAC,gBAAgB,gBACpC,uCAAc,MAAqB,gBAAgB,OAAO,GAE5D,KAAK,kBAAkB,CAAC,aAAa;AACnC,MAAK,QACL,WAAW,MAAM;AACf,cAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAmB;AAChE,iBAAS,MAAM,KAAK,OAAO,MAAM;AAAA,MACnC,GAAG,CAAC;AAAA,IACN;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AACd;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAG1C,iBAAwB,+BACxB,0BAA8B;AAGvB,SAAS,mBAAmB,SAA6B;AAC9D,kDAA0B,MAAM;AAC9B,UAAM,OAAO,QAAQ;AACrB,IAAK,SAEL,KAAK,UAAU,CAAC,iBAAa,uCAAc,MAAM,MAAM,QAAQ,GAE/D,KAAK,gBAAgB,CAAC,gBAAgB,gBACpC,uCAAc,MAAqB,gBAAgB,OAAO,GAE5D,KAAK,kBAAkB,CAAC,aAAa;AACnC,MAAK,QACL,WAAW,MAAM;AACf,cAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAmB;AAChE,iBAAS,MAAM,KAAK,OAAO,MAAM;AAAA,MACnC,GAAG,CAAC;AAAA,IACN;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AACd;",
5
5
  "names": []
6
6
  }
@@ -18,9 +18,9 @@ __export(usePlatformMethods_exports, {
18
18
  usePlatformMethods: () => usePlatformMethods
19
19
  });
20
20
  module.exports = __toCommonJS(usePlatformMethods_exports);
21
- var import_web = require("@tamagui/web"), import_getRect = require("../helpers/getRect"), import_useElementLayout = require("./useElementLayout");
21
+ var import_constants = require("@tamagui/constants"), import_getRect = require("../helpers/getRect"), import_useElementLayout = require("./useElementLayout");
22
22
  function usePlatformMethods(hostRef) {
23
- (0, import_web.useIsomorphicLayoutEffect)(() => {
23
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
24
24
  const node = hostRef.current;
25
25
  node && (node.measure = (callback) => (0, import_useElementLayout.measureLayout)(node, null, callback), node.measureLayout = (relativeToNode, success) => (0, import_useElementLayout.measureLayout)(node, relativeToNode, success), node.measureInWindow = (callback) => {
26
26
  node && setTimeout(() => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/usePlatformMethods.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA0C,yBAG1C,iBAAwB,+BACxB,0BAA8B;AAGvB,SAAS,mBAAmB,SAA6B;AAC9D,4CAA0B,MAAM;AAC9B,UAAM,OAAO,QAAQ;AACrB,IAAK,SAEL,KAAK,UAAU,CAAC,iBAAa,uCAAc,MAAM,MAAM,QAAQ,GAE/D,KAAK,gBAAgB,CAAC,gBAAgB,gBACpC,uCAAc,MAAqB,gBAAgB,OAAO,GAE5D,KAAK,kBAAkB,CAAC,aAAa;AACnC,MAAK,QACL,WAAW,MAAM;AACf,cAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAmB;AAChE,iBAAS,MAAM,KAAK,OAAO,MAAM;AAAA,MACnC,GAAG,CAAC;AAAA,IACN;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AACd;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C,+BAG1C,iBAAwB,+BACxB,0BAA8B;AAGvB,SAAS,mBAAmB,SAA6B;AAC9D,kDAA0B,MAAM;AAC9B,UAAM,OAAO,QAAQ;AACrB,IAAK,SAEL,KAAK,UAAU,CAAC,iBAAa,uCAAc,MAAM,MAAM,QAAQ,GAE/D,KAAK,gBAAgB,CAAC,gBAAgB,gBACpC,uCAAc,MAAqB,gBAAgB,OAAO,GAE5D,KAAK,kBAAkB,CAAC,aAAa;AACnC,MAAK,QACL,WAAW,MAAM;AACf,cAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,QAAI,wBAAQ,IAAmB;AAChE,iBAAS,MAAM,KAAK,OAAO,MAAM;AAAA,MACnC,GAAG,CAAC;AAAA,IACN;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AACd;",
5
5
  "names": []
6
6
  }
@@ -1,7 +1,7 @@
1
1
  import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
2
  import { getBoundingClientRect } from "../helpers/getBoundingClientRect";
3
3
  import { getRect } from "../helpers/getRect";
4
- const LayoutHandlers = /* @__PURE__ */ new WeakMap();
4
+ const LayoutHandlers = /* @__PURE__ */ new WeakMap(), LayoutTimeouts = /* @__PURE__ */ new WeakMap();
5
5
  let resizeObserver = null;
6
6
  typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver((entries) => {
7
7
  for (const { target } of entries) {
@@ -21,10 +21,14 @@ typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new Resiz
21
21
  }));
22
22
  const measureLayout = (node, relativeTo, callback) => {
23
23
  const relativeNode = relativeTo || node?.parentNode;
24
- relativeNode instanceof HTMLElement && setTimeout(() => {
25
- const relativeRect = getBoundingClientRect(relativeNode), { height, left, top, width } = getRect(node), x = left - relativeRect.left, y = top - relativeRect.top;
26
- callback(x, y, width, height, left, top);
27
- }, 0);
24
+ if (relativeNode instanceof HTMLElement) {
25
+ clearTimeout(LayoutTimeouts.get(relativeNode));
26
+ const tm = setTimeout(() => {
27
+ const relativeRect = getBoundingClientRect(relativeNode), { height, left, top, width } = getRect(node), x = left - relativeRect.left, y = top - relativeRect.top;
28
+ callback(x, y, width, height, left, top), LayoutTimeouts.delete(relativeNode);
29
+ }, 0);
30
+ LayoutTimeouts.set(relativeNode, tm);
31
+ }
28
32
  };
29
33
  function useElementLayout(ref, onLayout) {
30
34
  useIsomorphicLayoutEffect(() => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useElementLayout.tsx"],
4
- "mappings": "AAAA,SAAS,iCAAiC;AAG1C,SAAS,6BAA6B;AACtC,SAAS,eAAe;AAExB,MAAM,iBAAiB,oBAAI,QAA2B;AAmBtD,IAAI,iBAAwC;AAExC,OAAO,SAAW,OAAe,oBAAoB,WACvD,iBAAiB,IAAI,eAAe,CAAC,YAAY;AAC/C,aAAW,EAAE,OAAO,KAAK,SAAS;AAChC,UAAM,WAAW,eAAe,IAAI,MAAM;AAC1C,QAAI,OAAO,YAAa;AAAY;AACpC,kBAAc,QAAuB,MAAM,CAAC,GAAG,GAAG,OAAO,QAAQ,MAAM,QAAQ;AAC7E,eAAS;AAAA,QACP,aAAa;AAAA,UACX,QAAQ,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAGI,MAAM,gBAAgB,CAC3B,MACA,YACA,aACG;AACH,QAAM,eAAe,cAAc,MAAM;AACzC,EAAI,wBAAwB,eAC1B,WAAW,MAAM;AACf,UAAM,eAAe,sBAAsB,YAAY,GACjD,EAAE,QAAQ,MAAM,KAAK,MAAM,IAAI,QAAQ,IAAI,GAC3C,IAAI,OAAO,aAAa,MACxB,IAAI,MAAM,aAAa;AAC7B,aAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG;AAAA,EACzC,GAAG,CAAC;AAER;AAEO,SAAS,iBACd,KACA,UACA;AACA,4BAA0B,MAAM;AAC9B,QAAI,CAAC,kBAAkB,CAAC;AAAU;AAClC,UAAM,OAAO,IAAI;AACjB,QAAK;AACL,4BAAe,IAAI,MAAM,QAAQ,GACjC,eAAe,QAAQ,IAAI,GACpB,MAAM;AACX,wBAAgB,UAAU,IAAI;AAAA,MAChC;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB;",
4
+ "mappings": "AAAA,SAAS,iCAAiC;AAG1C,SAAS,6BAA6B;AACtC,SAAS,eAAe;AAExB,MAAM,iBAAiB,oBAAI,QAA2B,GAChD,iBAAiB,oBAAI,QAAsB;AAmBjD,IAAI,iBAAwC;AAExC,OAAO,SAAW,OAAe,oBAAoB,WACvD,iBAAiB,IAAI,eAAe,CAAC,YAAY;AAC/C,aAAW,EAAE,OAAO,KAAK,SAAS;AAChC,UAAM,WAAW,eAAe,IAAI,MAAM;AAC1C,QAAI,OAAO,YAAa;AAAY;AACpC,kBAAc,QAAuB,MAAM,CAAC,GAAG,GAAG,OAAO,QAAQ,MAAM,QAAQ;AAC7E,eAAS;AAAA,QACP,aAAa;AAAA,UACX,QAAQ,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAGI,MAAM,gBAAgB,CAC3B,MACA,YACA,aACG;AACH,QAAM,eAAe,cAAc,MAAM;AACzC,MAAI,wBAAwB,aAAa;AAEvC,iBAAa,eAAe,IAAI,YAAY,CAAC;AAE7C,UAAM,KAAK,WAAW,MAAM;AAC1B,YAAM,eAAe,sBAAsB,YAAY,GACjD,EAAE,QAAQ,MAAM,KAAK,MAAM,IAAI,QAAQ,IAAI,GAC3C,IAAI,OAAO,aAAa,MACxB,IAAI,MAAM,aAAa;AAC7B,eAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG,GACvC,eAAe,OAAO,YAAY;AAAA,IACpC,GAAG,CAAC;AACJ,mBAAe,IAAI,cAAc,EAAE;AAAA,EACrC;AACF;AAEO,SAAS,iBACd,KACA,UACA;AACA,4BAA0B,MAAM;AAC9B,QAAI,CAAC,kBAAkB,CAAC;AAAU;AAClC,UAAM,OAAO,IAAI;AACjB,QAAK;AACL,4BAAe,IAAI,MAAM,QAAQ,GACjC,eAAe,QAAQ,IAAI,GACpB,MAAM;AACX,wBAAgB,UAAU,IAAI;AAAA,MAChC;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB;",
5
5
  "names": []
6
6
  }
@@ -1,7 +1,7 @@
1
1
  import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
2
  import { getBoundingClientRect } from "../helpers/getBoundingClientRect";
3
3
  import { getRect } from "../helpers/getRect";
4
- const LayoutHandlers = /* @__PURE__ */ new WeakMap();
4
+ const LayoutHandlers = /* @__PURE__ */ new WeakMap(), LayoutTimeouts = /* @__PURE__ */ new WeakMap();
5
5
  let resizeObserver = null;
6
6
  typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new ResizeObserver((entries) => {
7
7
  for (const { target } of entries) {
@@ -21,10 +21,14 @@ typeof window < "u" && "ResizeObserver" in window && (resizeObserver = new Resiz
21
21
  }));
22
22
  const measureLayout = (node, relativeTo, callback) => {
23
23
  const relativeNode = relativeTo || node?.parentNode;
24
- relativeNode instanceof HTMLElement && setTimeout(() => {
25
- const relativeRect = getBoundingClientRect(relativeNode), { height, left, top, width } = getRect(node), x = left - relativeRect.left, y = top - relativeRect.top;
26
- callback(x, y, width, height, left, top);
27
- }, 0);
24
+ if (relativeNode instanceof HTMLElement) {
25
+ clearTimeout(LayoutTimeouts.get(relativeNode));
26
+ const tm = setTimeout(() => {
27
+ const relativeRect = getBoundingClientRect(relativeNode), { height, left, top, width } = getRect(node), x = left - relativeRect.left, y = top - relativeRect.top;
28
+ callback(x, y, width, height, left, top), LayoutTimeouts.delete(relativeNode);
29
+ }, 0);
30
+ LayoutTimeouts.set(relativeNode, tm);
31
+ }
28
32
  };
29
33
  function useElementLayout(ref, onLayout) {
30
34
  useIsomorphicLayoutEffect(() => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useElementLayout.tsx"],
4
- "mappings": "AAAA,SAAS,iCAAiC;AAG1C,SAAS,6BAA6B;AACtC,SAAS,eAAe;AAExB,MAAM,iBAAiB,oBAAI,QAA2B;AAmBtD,IAAI,iBAAwC;AAExC,OAAO,SAAW,OAAe,oBAAoB,WACvD,iBAAiB,IAAI,eAAe,CAAC,YAAY;AAC/C,aAAW,EAAE,OAAO,KAAK,SAAS;AAChC,UAAM,WAAW,eAAe,IAAI,MAAM;AAC1C,QAAI,OAAO,YAAa;AAAY;AACpC,kBAAc,QAAuB,MAAM,CAAC,GAAG,GAAG,OAAO,QAAQ,MAAM,QAAQ;AAC7E,eAAS;AAAA,QACP,aAAa;AAAA,UACX,QAAQ,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAGI,MAAM,gBAAgB,CAC3B,MACA,YACA,aACG;AACH,QAAM,eAAe,cAAc,MAAM;AACzC,EAAI,wBAAwB,eAC1B,WAAW,MAAM;AACf,UAAM,eAAe,sBAAsB,YAAY,GACjD,EAAE,QAAQ,MAAM,KAAK,MAAM,IAAI,QAAQ,IAAI,GAC3C,IAAI,OAAO,aAAa,MACxB,IAAI,MAAM,aAAa;AAC7B,aAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG;AAAA,EACzC,GAAG,CAAC;AAER;AAEO,SAAS,iBACd,KACA,UACA;AACA,4BAA0B,MAAM;AAC9B,QAAI,CAAC,kBAAkB,CAAC;AAAU;AAClC,UAAM,OAAO,IAAI;AACjB,QAAK;AACL,4BAAe,IAAI,MAAM,QAAQ,GACjC,eAAe,QAAQ,IAAI,GACpB,MAAM;AACX,wBAAgB,UAAU,IAAI;AAAA,MAChC;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB;",
4
+ "mappings": "AAAA,SAAS,iCAAiC;AAG1C,SAAS,6BAA6B;AACtC,SAAS,eAAe;AAExB,MAAM,iBAAiB,oBAAI,QAA2B,GAChD,iBAAiB,oBAAI,QAAsB;AAmBjD,IAAI,iBAAwC;AAExC,OAAO,SAAW,OAAe,oBAAoB,WACvD,iBAAiB,IAAI,eAAe,CAAC,YAAY;AAC/C,aAAW,EAAE,OAAO,KAAK,SAAS;AAChC,UAAM,WAAW,eAAe,IAAI,MAAM;AAC1C,QAAI,OAAO,YAAa;AAAY;AACpC,kBAAc,QAAuB,MAAM,CAAC,GAAG,GAAG,OAAO,QAAQ,MAAM,QAAQ;AAC7E,eAAS;AAAA,QACP,aAAa;AAAA,UACX,QAAQ,EAAE,GAAG,GAAG,OAAO,QAAQ,MAAM,IAAI;AAAA,UACzC;AAAA,QACF;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF,CAAC;AAGI,MAAM,gBAAgB,CAC3B,MACA,YACA,aACG;AACH,QAAM,eAAe,cAAc,MAAM;AACzC,MAAI,wBAAwB,aAAa;AAEvC,iBAAa,eAAe,IAAI,YAAY,CAAC;AAE7C,UAAM,KAAK,WAAW,MAAM;AAC1B,YAAM,eAAe,sBAAsB,YAAY,GACjD,EAAE,QAAQ,MAAM,KAAK,MAAM,IAAI,QAAQ,IAAI,GAC3C,IAAI,OAAO,aAAa,MACxB,IAAI,MAAM,aAAa;AAC7B,eAAS,GAAG,GAAG,OAAO,QAAQ,MAAM,GAAG,GACvC,eAAe,OAAO,YAAY;AAAA,IACpC,GAAG,CAAC;AACJ,mBAAe,IAAI,cAAc,EAAE;AAAA,EACrC;AACF;AAEO,SAAS,iBACd,KACA,UACA;AACA,4BAA0B,MAAM;AAC9B,QAAI,CAAC,kBAAkB,CAAC;AAAU;AAClC,UAAM,OAAO,IAAI;AACjB,QAAK;AACL,4BAAe,IAAI,MAAM,QAAQ,GACjC,eAAe,QAAQ,IAAI,GACpB,MAAM;AACX,wBAAgB,UAAU,IAAI;AAAA,MAChC;AAAA,EACF,GAAG,CAAC,KAAK,QAAQ,CAAC;AACpB;",
5
5
  "names": []
6
6
  }
@@ -1,4 +1,4 @@
1
- import { useIsomorphicLayoutEffect } from "@tamagui/web";
1
+ import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
2
  import { getRect } from "../helpers/getRect";
3
3
  import { measureLayout } from "./useElementLayout";
4
4
  function usePlatformMethods(hostRef) {
@@ -1,4 +1,4 @@
1
- import { useIsomorphicLayoutEffect } from "@tamagui/web";
1
+ import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
2
  import { getRect } from "../helpers/getRect";
3
3
  import { measureLayout } from "./useElementLayout";
4
4
  function usePlatformMethods(hostRef) {