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