@tamagui/core 1.61.3 → 1.62.0

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.
Files changed (60) hide show
  1. package/dist/cjs/getBaseViews.js +5 -9
  2. package/dist/cjs/getBaseViews.js.map +1 -1
  3. package/dist/cjs/getBaseViews.native.js +5 -8
  4. package/dist/cjs/getBaseViews.native.js.map +1 -1
  5. package/dist/cjs/helpers/getBoundingClientRect.js +7 -13
  6. package/dist/cjs/helpers/getBoundingClientRect.js.map +1 -1
  7. package/dist/cjs/helpers/getBoundingClientRect.native.js +29 -0
  8. package/dist/cjs/helpers/getBoundingClientRect.native.js.map +6 -0
  9. package/dist/cjs/helpers/getRect.js +5 -9
  10. package/dist/cjs/helpers/getRect.js.map +1 -1
  11. package/dist/cjs/helpers/getRect.native.js +33 -0
  12. package/dist/cjs/helpers/getRect.native.js.map +6 -0
  13. package/dist/cjs/hooks/useElementLayout.js +30 -46
  14. package/dist/cjs/hooks/useElementLayout.js.map +1 -1
  15. package/dist/cjs/hooks/useElementLayout.native.js +64 -0
  16. package/dist/cjs/hooks/useElementLayout.native.js.map +6 -0
  17. package/dist/cjs/hooks/usePlatformMethods.js +9 -21
  18. package/dist/cjs/hooks/usePlatformMethods.js.map +1 -1
  19. package/dist/cjs/hooks/usePlatformMethods.native.js +37 -0
  20. package/dist/cjs/hooks/usePlatformMethods.native.js.map +6 -0
  21. package/dist/cjs/index.js +11 -60
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/index.native.js +106 -0
  24. package/dist/cjs/index.native.js.map +6 -0
  25. package/dist/cjs/inject-styles.js +7 -15
  26. package/dist/cjs/inject-styles.js.map +1 -1
  27. package/dist/cjs/inject-styles.native.js +33 -0
  28. package/dist/cjs/inject-styles.native.js.map +6 -0
  29. package/dist/cjs/native.js +20 -0
  30. package/dist/cjs/native.js.map +6 -0
  31. package/dist/cjs/reactNativeTypes.js +3 -6
  32. package/dist/cjs/reactNativeTypes.js.map +1 -1
  33. package/dist/cjs/reactNativeTypes.native.js +15 -0
  34. package/dist/cjs/reactNativeTypes.native.js.map +6 -0
  35. package/dist/cjs/vendor/Pressability.js +6 -11
  36. package/dist/cjs/vendor/Pressability.js.map +1 -1
  37. package/dist/cjs/vendor/Pressability.native.js +6 -10
  38. package/dist/cjs/vendor/Pressability.native.js.map +1 -1
  39. package/dist/esm/helpers/getBoundingClientRect.js +2 -4
  40. package/dist/esm/helpers/getBoundingClientRect.js.map +1 -1
  41. package/dist/esm/hooks/useElementLayout.js +24 -34
  42. package/dist/esm/hooks/useElementLayout.js.map +1 -1
  43. package/dist/esm/hooks/usePlatformMethods.js +3 -9
  44. package/dist/esm/hooks/usePlatformMethods.js.map +1 -1
  45. package/dist/esm/index.js +5 -45
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/inject-styles.js +2 -6
  48. package/dist/esm/inject-styles.js.map +1 -1
  49. package/dist/esm/vendor/Pressability.js +1 -2
  50. package/dist/esm/vendor/Pressability.js.map +1 -1
  51. package/dist/native.js +6559 -0
  52. package/dist/native.js.map +6 -0
  53. package/package.json +14 -6
  54. package/src/native.ts +1 -0
  55. package/types/native.d.ts +2 -0
  56. package/types/native.d.ts.map +1 -0
  57. package/dist/esm/getBaseViews.native.js +0 -11
  58. package/dist/esm/getBaseViews.native.js.map +0 -6
  59. package/dist/esm/vendor/Pressability.native.js +0 -7
  60. package/dist/esm/vendor/Pressability.native.js.map +0 -6
@@ -4,18 +4,12 @@ import { measureLayout } from "./useElementLayout";
4
4
  function usePlatformMethods(hostRef) {
5
5
  useIsomorphicLayoutEffect(() => {
6
6
  const node = hostRef.current;
7
- if (!node)
8
- return;
9
- node.measure = (callback) => measureLayout(node, null, callback);
10
- node.measureLayout = (relativeToNode, success) => measureLayout(node, relativeToNode, success);
11
- node.measureInWindow = (callback) => {
12
- if (!node)
13
- return;
14
- setTimeout(() => {
7
+ node && (node.measure = (callback) => measureLayout(node, null, callback), node.measureLayout = (relativeToNode, success) => measureLayout(node, relativeToNode, success), node.measureInWindow = (callback) => {
8
+ node && setTimeout(() => {
15
9
  const { height, left, top, width } = getRect(node);
16
10
  callback(left, top, width, height);
17
11
  }, 0);
18
- };
12
+ });
19
13
  }, [hostRef]);
20
14
  }
21
15
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/usePlatformMethods.ts"],
4
- "mappings": "AAAA,SAAS,iCAAiC;AAG1C,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAGvB,SAAS,mBAAmB,SAA6B;AAC9D,4BAA0B,MAAM;AAC9B,UAAM,OAAO,QAAQ;AACrB,QAAI,CAAC;AAAM;AAEX,SAAK,UAAU,CAAC,aAAa,cAAc,MAAM,MAAM,QAAQ;AAE/D,SAAK,gBAAgB,CAAC,gBAAgB,YACpC,cAAc,MAAqB,gBAAgB,OAAO;AAE5D,SAAK,kBAAkB,CAAC,aAAa;AACnC,UAAI,CAAC;AAAM;AACX,iBAAW,MAAM;AACf,cAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,IAAI,QAAQ,IAAmB;AAChE,iBAAS,MAAM,KAAK,OAAO,MAAM;AAAA,MACnC,GAAG,CAAC;AAAA,IACN;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AACd;",
4
+ "mappings": "AAAA,SAAS,iCAAiC;AAG1C,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAGvB,SAAS,mBAAmB,SAA6B;AAC9D,4BAA0B,MAAM;AAC9B,UAAM,OAAO,QAAQ;AACrB,IAAK,SAEL,KAAK,UAAU,CAAC,aAAa,cAAc,MAAM,MAAM,QAAQ,GAE/D,KAAK,gBAAgB,CAAC,gBAAgB,YACpC,cAAc,MAAqB,gBAAgB,OAAO,GAE5D,KAAK,kBAAkB,CAAC,aAAa;AACnC,MAAK,QACL,WAAW,MAAM;AACf,cAAM,EAAE,QAAQ,MAAM,KAAK,MAAM,IAAI,QAAQ,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
  }
package/dist/esm/index.js CHANGED
@@ -2,17 +2,15 @@ import { useResponderEvents } from "@tamagui/react-native-use-responder-events";
2
2
  import {
3
3
  Stack as WebStack,
4
4
  Text as WebText,
5
- composeEventHandlers,
6
5
  setupHooks
7
6
  } from "@tamagui/web";
8
7
  import { getBaseViews } from "./getBaseViews";
9
8
  import { useElementLayout } from "./hooks/useElementLayout";
10
9
  import { usePlatformMethods } from "./hooks/usePlatformMethods";
11
- import { usePressability } from "./vendor/Pressability";
10
+ import "./vendor/Pressability";
12
11
  export * from "@tamagui/web";
13
12
  export * from "./reactNativeTypes";
14
- const Stack = WebStack;
15
- const Text = WebText;
13
+ const Stack = WebStack, Text = WebText;
16
14
  setupHooks({
17
15
  getBaseViews,
18
16
  usePropsTransform(elementType, propsIn, hostRef) {
@@ -44,9 +42,7 @@ setupHooks({
44
42
  hrefAttrs,
45
43
  ...viewProps
46
44
  } = propsIn;
47
- usePlatformMethods(hostRef);
48
- useElementLayout(hostRef, onLayout);
49
- useResponderEvents(hostRef, {
45
+ if (usePlatformMethods(hostRef), useElementLayout(hostRef, onLayout), useResponderEvents(hostRef, {
50
46
  onMoveShouldSetResponder,
51
47
  onMoveShouldSetResponderCapture,
52
48
  onResponderEnd,
@@ -63,51 +59,15 @@ setupHooks({
63
59
  onSelectionChangeShouldSetResponderCapture,
64
60
  onStartShouldSetResponder,
65
61
  onStartShouldSetResponderCapture
66
- });
67
- if (viewProps.href !== void 0 && hrefAttrs !== void 0) {
62
+ }), viewProps.href !== void 0 && hrefAttrs !== void 0) {
68
63
  const { download, rel, target } = hrefAttrs;
69
- if (download != null) {
70
- viewProps.download = download;
71
- }
72
- if (rel != null) {
73
- viewProps.rel = rel;
74
- }
75
- if (typeof target === "string") {
76
- viewProps.target = target.charAt(0) !== "_" ? `_${target}` : target;
77
- }
64
+ download != null && (viewProps.download = download), rel != null && (viewProps.rel = rel), typeof target == "string" && (viewProps.target = target.charAt(0) !== "_" ? `_${target}` : target);
78
65
  }
79
66
  return viewProps;
80
67
  },
81
68
  useEvents(viewProps, events, { pseudos }, setStateShallow) {
82
- if (process.env.TAMAGUI_TARGET === "native") {
83
- const attachFocus = !!(pseudos == null ? void 0 : pseudos.focusStyle);
84
- if (attachFocus) {
85
- viewProps.onFocus = composeEventHandlers(viewProps.onFocus, () => {
86
- setStateShallow({ focus: true });
87
- });
88
- viewProps.onBlur = composeEventHandlers(viewProps.onBlur, () => {
89
- setStateShallow({ focus: false });
90
- });
91
- }
92
- if (events && viewProps.hitSlop) {
93
- events.hitSlop = viewProps.hitSlop;
94
- }
95
- const pressability = usePressability(events || null);
96
- if (events) {
97
- if (events.onPress) {
98
- for (const key in pressability) {
99
- const og = viewProps[key];
100
- const val = pressability[key];
101
- viewProps[key] = og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val;
102
- }
103
- }
104
- }
105
- }
106
69
  }
107
70
  });
108
- const dontComposePressabilityKeys = {
109
- onClick: true
110
- };
111
71
  export {
112
72
  Stack,
113
73
  Text
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,SAAS,0BAA0B;AAUnC;AAAA,EACE,SAAS;AAAA,EACT,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,OACK;AAGP,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AAEnC,SAAS,uBAAuB;AAGhC,cAAc;AAGd,cAAc;AAIP,MAAM,QAAQ;AAMd,MAAM,OAAO;AAQpB,WAAW;AAAA,EACT;AAAA,EAEA,kBAAkB,aAAa,SAAS,SAAS;AAE/C,UAAM;AAAA;AAAA,MAEJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MAEA,GAAG;AAAA,IACL,IAAI;AAEJ,uBAAmB,OAA6B;AAChD,qBAAiB,SAA+B,QAAe;AAC/D,uBAAmB,SAAS;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAQ;AAIR,QAAI,UAAU,SAAS,UAAa,cAAc,QAAW;AAC3D,YAAM,EAAE,UAAU,KAAK,OAAO,IAAI;AAClC,UAAI,YAAY,MAAM;AACpB,kBAAU,WAAW;AAAA,MACvB;AACA,UAAI,OAAO,MAAM;AACf,kBAAU,MAAM;AAAA,MAClB;AACA,UAAI,OAAO,WAAW,UAAU;AAC9B,kBAAU,SAAS,OAAO,OAAO,CAAC,MAAM,MAAM,IAAI,MAAM,KAAK;AAAA,MAC/D;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,WAAW,QAAQ,EAAE,QAAQ,GAAG,iBAAiB;AACzD,QAAI,QAAQ,IAAI,mBAAmB,UAAU;AAC3C,YAAM,cAAc,CAAC,EAAC,mCAAS;AAC/B,UAAI,aAAa;AACf,kBAAU,UAAU,qBAAqB,UAAU,SAAS,MAAM;AAChE,0BAAgB,EAAE,OAAO,KAAK,CAAC;AAAA,QACjC,CAAC;AACD,kBAAU,SAAS,qBAAqB,UAAU,QAAQ,MAAM;AAC9D,0BAAgB,EAAE,OAAO,MAAM,CAAC;AAAA,QAClC,CAAC;AAAA,MACH;AAIA,UAAI,UAAU,UAAU,SAAS;AAC/B,eAAO,UAAU,UAAU;AAAA,MAC7B;AAEA,YAAM,eAAe,gBAAgB,UAAU,IAAI;AAEnD,UAAI,QAAQ;AACV,YAAI,OAAO,SAAS;AAClB,qBAAW,OAAO,cAAc;AAC9B,kBAAM,KAAK,UAAU,GAAG;AACxB,kBAAM,MAAM,aAAa,GAAG;AAC5B,sBAAU,GAAG,IACX,MAAM,CAAC,4BAA4B,GAAG,IAClC,qBAAqB,IAAI,GAAG,IAC5B;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAED,MAAM,8BAA8B;AAAA,EAClC,SAAS;AACX;",
4
+ "mappings": "AAAA,SAAS,0BAA0B;AAUnC;AAAA,EACE,SAAS;AAAA,EACT,QAAQ;AAAA,EAER;AAAA,OACK;AAGP,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AAEnC,OAAgC;AAGhC,cAAc;AAGd,cAAc;AAIP,MAAM,QAAQ,UAMR,OAAO;AAQpB,WAAW;AAAA,EACT;AAAA,EAEA,kBAAkB,aAAa,SAAS,SAAS;AAE/C,UAAM;AAAA;AAAA,MAEJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA;AAAA,MAGA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MAEA,GAAG;AAAA,IACL,IAAI;AAyBJ,QAvBA,mBAAmB,OAA6B,GAChD,iBAAiB,SAA+B,QAAe,GAC/D,mBAAmB,SAAS;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAQ,GAIJ,UAAU,SAAS,UAAa,cAAc,QAAW;AAC3D,YAAM,EAAE,UAAU,KAAK,OAAO,IAAI;AAClC,MAAI,YAAY,SACd,UAAU,WAAW,WAEnB,OAAO,SACT,UAAU,MAAM,MAEd,OAAO,UAAW,aACpB,UAAU,SAAS,OAAO,OAAO,CAAC,MAAM,MAAM,IAAI,MAAM,KAAK;AAAA,IAEjE;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,WAAW,QAAQ,EAAE,QAAQ,GAAG,iBAAiB;AAAA,EAiC3D;AACF,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1,12 +1,8 @@
1
- const stylesheets = {};
2
- const injectStyles = ({ filePath, css }) => {
1
+ const stylesheets = {}, injectStyles = ({ filePath, css }) => {
3
2
  let stylesheet = stylesheets[filePath];
4
3
  if (!stylesheet) {
5
4
  const styleEl = document.createElement("style");
6
- styleEl.setAttribute("data-file", filePath);
7
- styleEl.setAttribute("type", "text/css");
8
- stylesheet = stylesheets[filePath] = styleEl;
9
- document.head.appendChild(styleEl);
5
+ styleEl.setAttribute("data-file", filePath), styleEl.setAttribute("type", "text/css"), stylesheet = stylesheets[filePath] = styleEl, document.head.appendChild(styleEl);
10
6
  }
11
7
  stylesheet.innerHTML = css;
12
8
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/inject-styles.ts"],
4
- "mappings": "AAEA,MAAM,cAA2C,CAAC;AAO3C,MAAM,eAAe,CAAC,EAAE,UAAU,IAAI,MAA2B;AACtE,MAAI,aAAa,YAAY,QAAQ;AACrC,MAAI,CAAC,YAAY;AACf,UAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,YAAQ,aAAa,aAAa,QAAQ;AAC1C,YAAQ,aAAa,QAAQ,UAAU;AACvC,iBAAa,YAAY,QAAQ,IAAI;AACrC,aAAS,KAAK,YAAY,OAAO;AAAA,EACnC;AACA,aAAW,YAAY;AACzB;",
4
+ "mappings": "AAEA,MAAM,cAA2C,CAAC,GAOrC,eAAe,CAAC,EAAE,UAAU,IAAI,MAA2B;AACtE,MAAI,aAAa,YAAY,QAAQ;AACrC,MAAI,CAAC,YAAY;AACf,UAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,YAAQ,aAAa,aAAa,QAAQ,GAC1C,QAAQ,aAAa,QAAQ,UAAU,GACvC,aAAa,YAAY,QAAQ,IAAI,SACrC,SAAS,KAAK,YAAY,OAAO;AAAA,EACnC;AACA,aAAW,YAAY;AACzB;",
5
5
  "names": []
6
6
  }
@@ -1,5 +1,4 @@
1
- const Pressability = {};
2
- const usePressability = {};
1
+ const Pressability = {}, usePressability = {};
3
2
  export {
4
3
  Pressability,
5
4
  usePressability
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/vendor/Pressability.tsx"],
4
- "mappings": "AAAO,MAAM,eAAe,CAAC;AACtB,MAAM,kBAAkB,CAAC;",
4
+ "mappings": "AAAO,MAAM,eAAe,CAAC,GAChB,kBAAkB,CAAC;",
5
5
  "names": []
6
6
  }