@tamagui/native 2.7.7 → 3.0.0-beta.1097.1

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 (231) hide show
  1. package/dist/cjs/PressBoundary.cjs +15 -80
  2. package/dist/cjs/PressBoundary.native.cjs +85 -0
  3. package/dist/cjs/PressBoundary.native.js +64 -82
  4. package/dist/cjs/PressBoundary.native.js.map +1 -1
  5. package/dist/cjs/burntState.cjs +28 -32
  6. package/dist/cjs/burntState.native.cjs +44 -0
  7. package/dist/cjs/burntState.native.js +28 -31
  8. package/dist/cjs/burntState.native.js.map +1 -1
  9. package/dist/cjs/components.cjs +34 -55
  10. package/dist/cjs/components.native.cjs +55 -0
  11. package/dist/cjs/components.native.js +34 -54
  12. package/dist/cjs/components.native.js.map +1 -1
  13. package/dist/cjs/expoUIMenuAdapter.cjs +239 -254
  14. package/dist/cjs/expoUIMenuAdapter.native.cjs +310 -0
  15. package/dist/cjs/expoUIMenuAdapter.native.js +282 -305
  16. package/dist/cjs/expoUIMenuAdapter.native.js.map +1 -1
  17. package/dist/cjs/gesture-handler.cjs +20 -22
  18. package/dist/cjs/gesture-handler.native.cjs +37 -0
  19. package/dist/cjs/gesture-handler.native.js +20 -21
  20. package/dist/cjs/gesture-handler.native.js.map +1 -1
  21. package/dist/cjs/gestureState.cjs +201 -207
  22. package/dist/cjs/gestureState.native.cjs +261 -0
  23. package/dist/cjs/gestureState.native.js +214 -219
  24. package/dist/cjs/gestureState.native.js.map +1 -1
  25. package/dist/cjs/globalState.cjs +30 -34
  26. package/dist/cjs/globalState.native.cjs +43 -0
  27. package/dist/cjs/globalState.native.js +30 -33
  28. package/dist/cjs/globalState.native.js.map +1 -1
  29. package/dist/cjs/index.cjs +33 -34
  30. package/dist/cjs/index.native.cjs +58 -0
  31. package/dist/cjs/index.native.js +33 -33
  32. package/dist/cjs/index.native.js.map +1 -1
  33. package/dist/cjs/keyboardControllerState.cjs +27 -29
  34. package/dist/cjs/keyboardControllerState.native.cjs +49 -0
  35. package/dist/cjs/keyboardControllerState.native.js +27 -28
  36. package/dist/cjs/keyboardControllerState.native.js.map +1 -1
  37. package/dist/cjs/linearGradientState.cjs +27 -31
  38. package/dist/cjs/linearGradientState.native.cjs +43 -0
  39. package/dist/cjs/linearGradientState.native.js +27 -30
  40. package/dist/cjs/linearGradientState.native.js.map +1 -1
  41. package/dist/cjs/nativeMenuContext.cjs +14 -18
  42. package/dist/cjs/nativeMenuContext.native.cjs +27 -0
  43. package/dist/cjs/nativeMenuContext.native.js +14 -17
  44. package/dist/cjs/nativeMenuContext.native.js.map +1 -1
  45. package/dist/cjs/nativeMenuState.cjs +26 -28
  46. package/dist/cjs/nativeMenuState.native.cjs +46 -0
  47. package/dist/cjs/nativeMenuState.native.js +26 -27
  48. package/dist/cjs/nativeMenuState.native.js.map +1 -1
  49. package/dist/cjs/portalState.cjs +27 -31
  50. package/dist/cjs/portalState.native.cjs +43 -0
  51. package/dist/cjs/portalState.native.js +27 -30
  52. package/dist/cjs/portalState.native.js.map +1 -1
  53. package/dist/cjs/safeAreaState.cjs +76 -53
  54. package/dist/cjs/safeAreaState.native.cjs +100 -0
  55. package/dist/cjs/safeAreaState.native.js +78 -52
  56. package/dist/cjs/safeAreaState.native.js.map +1 -1
  57. package/dist/cjs/setup-burnt.cjs +14 -14
  58. package/dist/cjs/setup-burnt.native.cjs +19 -0
  59. package/dist/cjs/setup-burnt.native.js +14 -13
  60. package/dist/cjs/setup-burnt.native.js.map +1 -1
  61. package/dist/cjs/setup-expo-linear-gradient.cjs +13 -13
  62. package/dist/cjs/setup-expo-linear-gradient.native.cjs +18 -0
  63. package/dist/cjs/setup-expo-linear-gradient.native.js +13 -12
  64. package/dist/cjs/setup-expo-linear-gradient.native.js.map +1 -1
  65. package/dist/cjs/setup-expo-ui-menu.cjs +11 -13
  66. package/dist/cjs/setup-expo-ui-menu.native.cjs +17 -0
  67. package/dist/cjs/setup-expo-ui-menu.native.js +11 -12
  68. package/dist/cjs/setup-expo-ui-menu.native.js.map +1 -1
  69. package/dist/cjs/setup-gesture-handler.cjs +50 -57
  70. package/dist/cjs/setup-gesture-handler.native.cjs +71 -0
  71. package/dist/cjs/setup-gesture-handler.native.js +50 -56
  72. package/dist/cjs/setup-gesture-handler.native.js.map +1 -1
  73. package/dist/cjs/setup-keyboard-controller.native.cjs +27 -0
  74. package/dist/cjs/setup-keyboard-controller.native.js +22 -29
  75. package/dist/cjs/setup-keyboard-controller.native.js.map +1 -1
  76. package/dist/cjs/setup-safe-area.cjs +16 -3
  77. package/dist/cjs/setup-safe-area.native.cjs +27 -0
  78. package/dist/cjs/setup-safe-area.native.js +22 -16
  79. package/dist/cjs/setup-safe-area.native.js.map +1 -1
  80. package/dist/cjs/setup-teleport.cjs +15 -15
  81. package/dist/cjs/setup-teleport.native.cjs +20 -0
  82. package/dist/cjs/setup-teleport.native.js +15 -14
  83. package/dist/cjs/setup-teleport.native.js.map +1 -1
  84. package/dist/cjs/setup-worklets.cjs +18 -18
  85. package/dist/cjs/setup-worklets.native.cjs +23 -0
  86. package/dist/cjs/setup-worklets.native.js +18 -17
  87. package/dist/cjs/setup-worklets.native.js.map +1 -1
  88. package/dist/cjs/setup-zeego.cjs +17 -17
  89. package/dist/cjs/setup-zeego.native.cjs +22 -0
  90. package/dist/cjs/setup-zeego.native.js +17 -16
  91. package/dist/cjs/setup-zeego.native.js.map +1 -1
  92. package/dist/cjs/types.cjs +9 -11
  93. package/dist/cjs/types.native.cjs +18 -0
  94. package/dist/cjs/types.native.js +9 -10
  95. package/dist/cjs/types.native.js.map +1 -1
  96. package/dist/cjs/workletsState.cjs +30 -34
  97. package/dist/cjs/workletsState.native.cjs +46 -0
  98. package/dist/cjs/workletsState.native.js +30 -33
  99. package/dist/cjs/workletsState.native.js.map +1 -1
  100. package/dist/esm/PressBoundary.mjs +5 -53
  101. package/dist/esm/PressBoundary.mjs.map +1 -1
  102. package/dist/esm/PressBoundary.native.js +48 -56
  103. package/dist/esm/PressBoundary.native.js.map +1 -1
  104. package/dist/esm/burntState.mjs +16 -14
  105. package/dist/esm/burntState.mjs.map +1 -1
  106. package/dist/esm/burntState.native.js +16 -14
  107. package/dist/esm/burntState.native.js.map +1 -1
  108. package/dist/esm/components.mjs +20 -37
  109. package/dist/esm/components.mjs.map +1 -1
  110. package/dist/esm/components.native.js +21 -38
  111. package/dist/esm/components.native.js.map +1 -1
  112. package/dist/esm/expoUIMenuAdapter.mjs +224 -228
  113. package/dist/esm/expoUIMenuAdapter.mjs.map +1 -1
  114. package/dist/esm/expoUIMenuAdapter.native.js +267 -280
  115. package/dist/esm/expoUIMenuAdapter.native.js.map +1 -1
  116. package/dist/esm/gesture-handler.mjs +3 -4
  117. package/dist/esm/gesture-handler.native.js +3 -4
  118. package/dist/esm/gestureState.mjs +185 -187
  119. package/dist/esm/gestureState.mjs.map +1 -1
  120. package/dist/esm/gestureState.native.js +198 -200
  121. package/dist/esm/gestureState.native.js.map +1 -1
  122. package/dist/esm/globalState.mjs +17 -16
  123. package/dist/esm/globalState.mjs.map +1 -1
  124. package/dist/esm/globalState.native.js +17 -16
  125. package/dist/esm/globalState.native.js.map +1 -1
  126. package/dist/esm/index.js +5 -6
  127. package/dist/esm/index.mjs +5 -6
  128. package/dist/esm/index.native.js +5 -6
  129. package/dist/esm/keyboardControllerState.mjs +13 -11
  130. package/dist/esm/keyboardControllerState.mjs.map +1 -1
  131. package/dist/esm/keyboardControllerState.native.js +13 -11
  132. package/dist/esm/keyboardControllerState.native.js.map +1 -1
  133. package/dist/esm/linearGradientState.mjs +15 -13
  134. package/dist/esm/linearGradientState.mjs.map +1 -1
  135. package/dist/esm/linearGradientState.native.js +15 -13
  136. package/dist/esm/linearGradientState.native.js.map +1 -1
  137. package/dist/esm/nativeMenuContext.mjs +2 -0
  138. package/dist/esm/nativeMenuContext.mjs.map +1 -1
  139. package/dist/esm/nativeMenuContext.native.js +2 -0
  140. package/dist/esm/nativeMenuContext.native.js.map +1 -1
  141. package/dist/esm/nativeMenuState.mjs +13 -11
  142. package/dist/esm/nativeMenuState.mjs.map +1 -1
  143. package/dist/esm/nativeMenuState.native.js +13 -11
  144. package/dist/esm/nativeMenuState.native.js.map +1 -1
  145. package/dist/esm/portalState.mjs +15 -13
  146. package/dist/esm/portalState.mjs.map +1 -1
  147. package/dist/esm/portalState.native.js +15 -13
  148. package/dist/esm/portalState.native.js.map +1 -1
  149. package/dist/esm/safeAreaState.mjs +64 -38
  150. package/dist/esm/safeAreaState.mjs.map +1 -1
  151. package/dist/esm/safeAreaState.native.js +66 -38
  152. package/dist/esm/safeAreaState.native.js.map +1 -1
  153. package/dist/esm/setup-burnt.mjs +20 -13
  154. package/dist/esm/setup-burnt.mjs.map +1 -1
  155. package/dist/esm/setup-burnt.native.js +20 -13
  156. package/dist/esm/setup-burnt.native.js.map +1 -1
  157. package/dist/esm/setup-expo-linear-gradient.mjs +19 -12
  158. package/dist/esm/setup-expo-linear-gradient.mjs.map +1 -1
  159. package/dist/esm/setup-expo-linear-gradient.native.js +19 -12
  160. package/dist/esm/setup-expo-linear-gradient.native.js.map +1 -1
  161. package/dist/esm/setup-expo-ui-menu.mjs +17 -12
  162. package/dist/esm/setup-expo-ui-menu.mjs.map +1 -1
  163. package/dist/esm/setup-expo-ui-menu.native.js +17 -12
  164. package/dist/esm/setup-expo-ui-menu.native.js.map +1 -1
  165. package/dist/esm/setup-gesture-handler.mjs +42 -40
  166. package/dist/esm/setup-gesture-handler.mjs.map +1 -1
  167. package/dist/esm/setup-gesture-handler.native.js +42 -40
  168. package/dist/esm/setup-gesture-handler.native.js.map +1 -1
  169. package/dist/esm/setup-keyboard-controller.mjs +0 -2
  170. package/dist/esm/setup-keyboard-controller.native.js +28 -29
  171. package/dist/esm/setup-keyboard-controller.native.js.map +1 -1
  172. package/dist/esm/setup-safe-area.mjs +0 -4
  173. package/dist/esm/setup-safe-area.native.js +23 -22
  174. package/dist/esm/setup-safe-area.native.js.map +1 -1
  175. package/dist/esm/setup-teleport.mjs +21 -14
  176. package/dist/esm/setup-teleport.mjs.map +1 -1
  177. package/dist/esm/setup-teleport.native.js +21 -14
  178. package/dist/esm/setup-teleport.native.js.map +1 -1
  179. package/dist/esm/setup-worklets.mjs +24 -17
  180. package/dist/esm/setup-worklets.mjs.map +1 -1
  181. package/dist/esm/setup-worklets.native.js +24 -17
  182. package/dist/esm/setup-worklets.native.js.map +1 -1
  183. package/dist/esm/setup-zeego.mjs +23 -16
  184. package/dist/esm/setup-zeego.mjs.map +1 -1
  185. package/dist/esm/setup-zeego.native.js +23 -16
  186. package/dist/esm/setup-zeego.native.js.map +1 -1
  187. package/dist/esm/types.mjs +0 -2
  188. package/dist/esm/types.native.js +0 -2
  189. package/dist/esm/workletsState.mjs +18 -16
  190. package/dist/esm/workletsState.mjs.map +1 -1
  191. package/dist/esm/workletsState.native.js +18 -16
  192. package/dist/esm/workletsState.native.js.map +1 -1
  193. package/package.json +87 -8
  194. package/src/PressBoundary.native.tsx +75 -0
  195. package/src/PressBoundary.tsx +16 -80
  196. package/src/expoUIMenuAdapter.tsx +1 -2
  197. package/src/gesture-handler.ts +1 -1
  198. package/src/gestureState.ts +2 -2
  199. package/src/index.ts +1 -1
  200. package/src/safeAreaState.ts +59 -27
  201. package/src/setup-safe-area.ts +27 -22
  202. package/src/setup-safe-area.web.ts +2 -0
  203. package/src/types.ts +12 -0
  204. package/types/PressBoundary.d.ts +13 -12
  205. package/types/PressBoundary.d.ts.map +2 -2
  206. package/types/PressBoundary.native.d.ts +8 -0
  207. package/types/PressBoundary.native.d.ts.map +11 -0
  208. package/types/expoUIMenuAdapter.d.ts.map +2 -2
  209. package/types/gesture-handler.d.ts +1 -1
  210. package/types/gesture-handler.d.ts.map +1 -1
  211. package/types/gestureState.d.ts.map +1 -1
  212. package/types/index.d.ts +1 -1
  213. package/types/index.d.ts.map +2 -2
  214. package/types/safeAreaState.d.ts +5 -2
  215. package/types/safeAreaState.d.ts.map +2 -2
  216. package/types/setup-safe-area.d.ts.map +1 -1
  217. package/types/setup-safe-area.web.d.ts +3 -0
  218. package/types/setup-safe-area.web.d.ts.map +11 -0
  219. package/types/types.d.ts +11 -0
  220. package/types/types.d.ts.map +2 -2
  221. package/.turbo/turbo-build.log +0 -2
  222. package/dist/esm/gesture-handler.mjs.map +0 -1
  223. package/dist/esm/gesture-handler.native.js.map +0 -1
  224. package/dist/esm/index.js.map +0 -1
  225. package/dist/esm/index.mjs.map +0 -1
  226. package/dist/esm/index.native.js.map +0 -1
  227. package/dist/esm/setup-keyboard-controller.mjs.map +0 -1
  228. package/dist/esm/setup-safe-area.mjs.map +0 -1
  229. package/dist/esm/types.mjs.map +0 -1
  230. package/dist/esm/types.native.js.map +0 -1
  231. package/tsconfig.json +0 -12
@@ -3,67 +3,65 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
10
  };
11
11
  var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
19
  };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
21
  var gestureState_exports = {};
24
22
  __export(gestureState_exports, {
25
- canChangeGestureHandlerEnabled: () => canChangeGestureHandlerEnabled,
26
- claimExternalPressOwnership: () => claimExternalPressOwnership,
27
- getGestureHandler: () => getGestureHandler,
28
- hasExternalPressOwnership: () => hasExternalPressOwnership,
29
- releaseExternalPressOwnership: () => releaseExternalPressOwnership
23
+ canChangeGestureHandlerEnabled: () => canChangeGestureHandlerEnabled,
24
+ claimExternalPressOwnership: () => claimExternalPressOwnership,
25
+ getGestureHandler: () => getGestureHandler,
26
+ hasExternalPressOwnership: () => hasExternalPressOwnership,
27
+ releaseExternalPressOwnership: () => releaseExternalPressOwnership
30
28
  });
31
29
  module.exports = __toCommonJS(gestureState_exports);
32
30
  var import_globalState = require("./globalState.cjs");
33
31
  const state = (0, import_globalState.createGlobalState)(`gesture`, {
34
- enabled: false,
35
- Gesture: null,
36
- GestureDetector: null,
37
- ScrollView: null,
38
- RootView: null
32
+ enabled: false,
33
+ Gesture: null,
34
+ GestureDetector: null,
35
+ ScrollView: null,
36
+ RootView: null
39
37
  });
40
38
  const GESTURE_ENABLED_FREEZE_KEY = "__tamagui_gesture_enabled_freeze__";
41
39
  function getGestureEnabledFreezeState() {
42
- const g = globalThis;
43
- if (!g[GESTURE_ENABLED_FREEZE_KEY]) {
44
- g[GESTURE_ENABLED_FREEZE_KEY] = {
45
- frozen: false,
46
- enabled: false,
47
- warned: false
48
- };
49
- }
50
- return g[GESTURE_ENABLED_FREEZE_KEY];
40
+ const g = globalThis;
41
+ if (!g[GESTURE_ENABLED_FREEZE_KEY]) {
42
+ g[GESTURE_ENABLED_FREEZE_KEY] = {
43
+ frozen: false,
44
+ enabled: false,
45
+ warned: false
46
+ };
47
+ }
48
+ return g[GESTURE_ENABLED_FREEZE_KEY];
51
49
  }
52
50
  function warnGestureEnabledMutationIgnored(source) {
53
- const freezeState = getGestureEnabledFreezeState();
54
- if (freezeState.warned || process.env.NODE_ENV === "production") {
55
- return;
56
- }
57
- freezeState.warned = true;
58
- console.warn(`[Tamagui] Ignored ${source} because gesture handler press events were already ${freezeState.enabled ? "enabled" : "disabled"} when TamaguiProvider mounted. Configure gesture handler mode before the first render.`);
51
+ const freezeState = getGestureEnabledFreezeState();
52
+ if (freezeState.warned || process.env.NODE_ENV === "production") {
53
+ return;
54
+ }
55
+ freezeState.warned = true;
56
+ console.warn(`[Tamagui] Ignored ${source} because gesture handler press events were already ${freezeState.enabled ? "enabled" : "disabled"} when TamaguiProvider mounted. Configure gesture handler mode before the first render.`);
59
57
  }
60
58
  function canChangeGestureHandlerEnabled(nextEnabled, source) {
61
- const freezeState = getGestureEnabledFreezeState();
62
- if (!freezeState.frozen || freezeState.enabled === nextEnabled) {
63
- return true;
64
- }
65
- warnGestureEnabledMutationIgnored(source);
66
- return false;
59
+ const freezeState = getGestureEnabledFreezeState();
60
+ if (!freezeState.frozen || freezeState.enabled === nextEnabled) {
61
+ return true;
62
+ }
63
+ warnGestureEnabledMutationIgnored(source);
64
+ return false;
67
65
  }
68
66
  let pressGestureDebugId = 0;
69
67
  let externalPressDebugId = 0;
@@ -71,179 +69,175 @@ const PRESS_MOVE_CANCEL_DISTANCE = 12;
71
69
  const PRESS_MOVE_CANCEL_DISTANCE_SQ = PRESS_MOVE_CANCEL_DISTANCE * PRESS_MOVE_CANCEL_DISTANCE;
72
70
  const PRESS_STATE_KEY = "__tamagui_press_state__";
73
71
  function getEventPointerId(e) {
74
- const pointerId = e?.pointerId ?? e?.pointer?.id ?? e?.event?.pointerId ?? e?.event?.pointer?.id ?? e?.nativeEvent?.pointerId ?? e?.nativeEvent?.id ?? e?.event?.nativeEvent?.pointerId ?? e?.event?.nativeEvent?.id ?? null;
75
- return pointerId == null || Number.isNaN(pointerId) ? null : Number(pointerId);
72
+ const pointerId = e?.pointerId ?? e?.pointer?.id ?? e?.event?.pointerId ?? e?.event?.pointer?.id ?? e?.nativeEvent?.pointerId ?? e?.nativeEvent?.id ?? e?.event?.nativeEvent?.pointerId ?? e?.event?.nativeEvent?.id ?? null;
73
+ return pointerId == null || Number.isNaN(pointerId) ? null : Number(pointerId);
76
74
  }
77
75
  const pressState = globalThis[PRESS_STATE_KEY] ??= {
78
- owner: null,
79
- ownerId: null,
80
- ownerSource: null,
81
- ownerPointerId: null,
82
- timestamp: 0
76
+ owner: null,
77
+ ownerId: null,
78
+ ownerSource: null,
79
+ ownerPointerId: null,
80
+ timestamp: 0
83
81
  };
84
82
  function resetPressOwner() {
85
- pressState.owner = null;
86
- pressState.ownerId = null;
87
- pressState.ownerSource = null;
88
- pressState.ownerPointerId = null;
89
- pressState.timestamp = 0;
83
+ pressState.owner = null;
84
+ pressState.ownerId = null;
85
+ pressState.ownerSource = null;
86
+ pressState.ownerPointerId = null;
87
+ pressState.timestamp = 0;
90
88
  }
91
89
  function resetStaleOwner(now, debugName) {
92
- if (now - pressState.timestamp > 2e3) {
93
- resetPressOwner();
94
- }
90
+ if (now - pressState.timestamp > 2e3) {
91
+ resetPressOwner();
92
+ }
95
93
  }
96
94
  function claimExternalPressOwnership(debugName) {
97
- const now = Date.now();
98
- resetStaleOwner(now, debugName);
99
- const token = {};
100
- const ownerId = ++externalPressDebugId;
101
- pressState.owner = token;
102
- pressState.ownerId = ownerId;
103
- pressState.ownerSource = "external";
104
- pressState.timestamp = now;
105
- return token;
95
+ const now = Date.now();
96
+ resetStaleOwner(now, debugName);
97
+ const token = {};
98
+ const ownerId = ++externalPressDebugId;
99
+ pressState.owner = token;
100
+ pressState.ownerId = ownerId;
101
+ pressState.ownerSource = "external";
102
+ pressState.timestamp = now;
103
+ return token;
106
104
  }
107
105
  function releaseExternalPressOwnership(token, debugName) {
108
- if (!token || pressState.owner !== token) {
109
- return;
110
- }
111
- resetPressOwner();
106
+ if (!token || pressState.owner !== token) {
107
+ return;
108
+ }
109
+ resetPressOwner();
112
110
  }
113
111
  function hasExternalPressOwnership() {
114
- resetStaleOwner(Date.now());
115
- return pressState.ownerSource === "external";
112
+ resetStaleOwner(Date.now());
113
+ return pressState.ownerSource === "external";
116
114
  }
117
115
  function getGestureHandler() {
118
- return {
119
- get isEnabled() {
120
- return state.get().enabled;
121
- },
122
- get state() {
123
- return state.get();
124
- },
125
- set(updates) {
126
- if (updates.enabled !== void 0 && !canChangeGestureHandlerEnabled(updates.enabled, "getGestureHandler().set()")) {
127
- return;
128
- }
129
- Object.assign(state.get(), updates);
130
- },
131
- disable() {
132
- if (!canChangeGestureHandlerEnabled(false, "getGestureHandler().disable()")) {
133
- return;
134
- }
135
- state.get().enabled = false;
136
- },
137
- createPressGesture(config) {
138
- const {
139
- Gesture
140
- } = state.get();
141
- if (!Gesture) return null;
142
- const longPressDuration = config.delayLongPress ?? 500;
143
- const myToken = {};
144
- const myDebugId = ++pressGestureDebugId;
145
- const flags = {
146
- didLongPress: false,
147
- didPressIn: false,
148
- pressInTimer: null,
149
- // absolute (screen) coords of the press start, and whether the finger
150
- // has since travelled far enough to be treated as a scroll/drag.
151
- moveStartX: null,
152
- moveStartY: 0,
153
- cancelledByMove: false
154
- };
155
- const GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;
156
- const tryClaimOwnership = e => {
157
- const now = Date.now();
158
- resetStaleOwner(now, config.debugName);
159
- const currentPointerId = getEventPointerId(e);
160
- const isSameTouchPointer = currentPointerId == null || pressState.ownerPointerId == null || pressState.ownerPointerId === currentPointerId;
161
- if (pressState.owner === null || pressState.ownerSource === "internal" && isSameTouchPointer) {
162
- pressState.owner = myToken;
163
- pressState.ownerId = myDebugId;
164
- pressState.ownerSource = "internal";
165
- pressState.ownerPointerId = currentPointerId;
166
- pressState.timestamp = now;
167
- }
168
- return pressState.owner === myToken;
169
- };
170
- const isOwner = () => pressState.owner === myToken;
171
- const releaseOwnership = () => {
172
- if (flags.pressInTimer) {
173
- clearTimeout(flags.pressInTimer);
174
- flags.pressInTimer = null;
175
- }
176
- if (pressState.owner === myToken) {
177
- resetPressOwner();
178
- }
179
- };
180
- const firePressIn = e => {
181
- if (!flags.didPressIn && isOwner()) {
182
- flags.didPressIn = true;
183
- config.onPressIn?.(e);
184
- }
185
- };
186
- const schedulePressIn = e => {
187
- if (flags.pressInTimer) {
188
- clearTimeout(flags.pressInTimer);
189
- }
190
- flags.pressInTimer = setTimeout(() => {
191
- flags.pressInTimer = null;
192
- if (isOwner()) {
193
- firePressIn(e);
194
- }
195
- }, GRACE_PERIOD_MS + 1);
196
- };
197
- const tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin(e => {
198
- flags.didLongPress = false;
199
- flags.didPressIn = false;
200
- flags.cancelledByMove = false;
201
- flags.moveStartX = typeof e.absoluteX === "number" ? e.absoluteX : null;
202
- flags.moveStartY = typeof e.absoluteY === "number" ? e.absoluteY : 0;
203
- tryClaimOwnership(e);
204
- schedulePressIn(e);
205
- }).onTouchesMove(e => {
206
- if (flags.cancelledByMove || flags.moveStartX === null) return;
207
- const touch = e.changedTouches?.[0] ?? e.allTouches?.[0];
208
- if (!touch) return;
209
- const dx = touch.absoluteX - flags.moveStartX;
210
- const dy = touch.absoluteY - flags.moveStartY;
211
- if (dx * dx + dy * dy <= PRESS_MOVE_CANCEL_DISTANCE_SQ) return;
212
- flags.cancelledByMove = true;
213
- if (flags.pressInTimer) {
214
- clearTimeout(flags.pressInTimer);
215
- flags.pressInTimer = null;
216
- }
217
- if (flags.didPressIn) {
218
- flags.didPressIn = false;
219
- config.onPressOut?.(e);
220
- }
221
- releaseOwnership();
222
- }).onEnd(e => {
223
- if (isOwner() && !flags.didLongPress && !flags.cancelledByMove) {
224
- firePressIn(e);
225
- config.onPress?.(e);
226
- }
227
- }).onFinalize(e => {
228
- if (isOwner()) {
229
- config.onPressOut?.(e);
230
- releaseOwnership();
231
- } else if (flags.didPressIn) {
232
- flags.didPressIn = false;
233
- config.onPressOut?.(e);
234
- }
235
- });
236
- if (config.hitSlop) tap.hitSlop(config.hitSlop);
237
- if (!config.onLongPress) return tap;
238
- const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onStart(e => {
239
- flags.didLongPress = true;
240
- if (isOwner()) {
241
- firePressIn(e);
242
- config.onLongPress?.(e);
243
- }
244
- });
245
- if (config.hitSlop) longPress.hitSlop(config.hitSlop);
246
- return Gesture.Exclusive(longPress, tap);
247
- }
248
- };
249
- }
116
+ return {
117
+ get isEnabled() {
118
+ return state.get().enabled;
119
+ },
120
+ get state() {
121
+ return state.get();
122
+ },
123
+ set(updates) {
124
+ if (updates.enabled !== void 0 && !canChangeGestureHandlerEnabled(updates.enabled, "getGestureHandler().set()")) {
125
+ return;
126
+ }
127
+ Object.assign(state.get(), updates);
128
+ },
129
+ disable() {
130
+ if (!canChangeGestureHandlerEnabled(false, "getGestureHandler().disable()")) {
131
+ return;
132
+ }
133
+ state.get().enabled = false;
134
+ },
135
+ createPressGesture(config) {
136
+ const { Gesture } = state.get();
137
+ if (!Gesture) return null;
138
+ const longPressDuration = config.delayLongPress ?? 500;
139
+ const myToken = {};
140
+ const myDebugId = ++pressGestureDebugId;
141
+ const flags = {
142
+ didLongPress: false,
143
+ didPressIn: false,
144
+ pressInTimer: null,
145
+ moveStartX: null,
146
+ moveStartY: 0,
147
+ cancelledByMove: false
148
+ };
149
+ const GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;
150
+ const tryClaimOwnership = (e) => {
151
+ const now = Date.now();
152
+ resetStaleOwner(now, config.debugName);
153
+ const currentPointerId = getEventPointerId(e);
154
+ const isSameTouchPointer = currentPointerId == null || pressState.ownerPointerId == null || pressState.ownerPointerId === currentPointerId;
155
+ if (pressState.owner === null || pressState.ownerSource === "internal" && isSameTouchPointer) {
156
+ pressState.owner = myToken;
157
+ pressState.ownerId = myDebugId;
158
+ pressState.ownerSource = "internal";
159
+ pressState.ownerPointerId = currentPointerId;
160
+ pressState.timestamp = now;
161
+ }
162
+ return pressState.owner === myToken;
163
+ };
164
+ const isOwner = () => pressState.owner === myToken;
165
+ const releaseOwnership = () => {
166
+ if (flags.pressInTimer) {
167
+ clearTimeout(flags.pressInTimer);
168
+ flags.pressInTimer = null;
169
+ }
170
+ if (pressState.owner === myToken) {
171
+ resetPressOwner();
172
+ }
173
+ };
174
+ const firePressIn = (e) => {
175
+ if (!flags.didPressIn && isOwner()) {
176
+ flags.didPressIn = true;
177
+ config.onPressIn?.(e);
178
+ }
179
+ };
180
+ const schedulePressIn = (e) => {
181
+ if (flags.pressInTimer) {
182
+ clearTimeout(flags.pressInTimer);
183
+ }
184
+ flags.pressInTimer = setTimeout(() => {
185
+ flags.pressInTimer = null;
186
+ if (isOwner()) {
187
+ firePressIn(e);
188
+ }
189
+ }, GRACE_PERIOD_MS + 1);
190
+ };
191
+ const tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin((e) => {
192
+ flags.didLongPress = false;
193
+ flags.didPressIn = false;
194
+ flags.cancelledByMove = false;
195
+ flags.moveStartX = typeof e.absoluteX === "number" ? e.absoluteX : null;
196
+ flags.moveStartY = typeof e.absoluteY === "number" ? e.absoluteY : 0;
197
+ tryClaimOwnership(e);
198
+ schedulePressIn(e);
199
+ }).onTouchesMove((e) => {
200
+ if (flags.cancelledByMove || flags.moveStartX === null) return;
201
+ const touch = e.changedTouches?.[0] ?? e.allTouches?.[0];
202
+ if (!touch) return;
203
+ const dx = touch.absoluteX - flags.moveStartX;
204
+ const dy = touch.absoluteY - flags.moveStartY;
205
+ if (dx * dx + dy * dy <= PRESS_MOVE_CANCEL_DISTANCE_SQ) return;
206
+ flags.cancelledByMove = true;
207
+ if (flags.pressInTimer) {
208
+ clearTimeout(flags.pressInTimer);
209
+ flags.pressInTimer = null;
210
+ }
211
+ if (flags.didPressIn) {
212
+ flags.didPressIn = false;
213
+ config.onPressOut?.(e);
214
+ }
215
+ releaseOwnership();
216
+ }).onEnd((e) => {
217
+ if (isOwner() && !flags.didLongPress && !flags.cancelledByMove) {
218
+ firePressIn(e);
219
+ config.onPress?.(e);
220
+ }
221
+ }).onFinalize((e) => {
222
+ if (isOwner()) {
223
+ config.onPressOut?.(e);
224
+ releaseOwnership();
225
+ } else if (flags.didPressIn) {
226
+ flags.didPressIn = false;
227
+ config.onPressOut?.(e);
228
+ }
229
+ });
230
+ if (config.hitSlop) tap.hitSlop(config.hitSlop);
231
+ if (!config.onLongPress) return tap;
232
+ const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onStart((e) => {
233
+ flags.didLongPress = true;
234
+ if (isOwner()) {
235
+ firePressIn(e);
236
+ config.onLongPress?.(e);
237
+ }
238
+ });
239
+ if (config.hitSlop) longPress.hitSlop(config.hitSlop);
240
+ return Gesture.Exclusive(longPress, tap);
241
+ }
242
+ };
243
+ }