@tamagui/native 2.7.7 → 3.0.0-beta.1093.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
@@ -1,6 +1,5 @@
1
- import { getGestureHandler } from "./gestureState.mjs";
2
- import { claimExternalPressOwnership, hasExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.mjs";
1
+ import { claimExternalPressOwnership, getGestureHandler, hasExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.mjs";
3
2
  import { PressBoundary } from "./PressBoundary.mjs";
4
3
  import { getGestureHandlerConfig, setupGestureHandler } from "./setup-gesture-handler.mjs";
5
- export { PressBoundary, getGestureHandler, getGestureHandlerConfig, setupGestureHandler, claimExternalPressOwnership as unstable_claimExternalPressOwnership, hasExternalPressOwnership as unstable_hasExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership };
6
- //# sourceMappingURL=gesture-handler.mjs.map
4
+
5
+ export { PressBoundary, getGestureHandler, getGestureHandlerConfig, setupGestureHandler, claimExternalPressOwnership as unstable_claimExternalPressOwnership, hasExternalPressOwnership as unstable_hasExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership };
@@ -1,6 +1,5 @@
1
- import { getGestureHandler } from "./gestureState.native.js";
2
- import { claimExternalPressOwnership, hasExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.native.js";
1
+ import { claimExternalPressOwnership, getGestureHandler, hasExternalPressOwnership, releaseExternalPressOwnership } from "./gestureState.native.js";
3
2
  import { PressBoundary } from "./PressBoundary.native.js";
4
3
  import { getGestureHandlerConfig, setupGestureHandler } from "./setup-gesture-handler.native.js";
5
- export { PressBoundary, getGestureHandler, getGestureHandlerConfig, setupGestureHandler, claimExternalPressOwnership as unstable_claimExternalPressOwnership, hasExternalPressOwnership as unstable_hasExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership };
6
- //# sourceMappingURL=gesture-handler.native.js.map
4
+
5
+ export { PressBoundary, getGestureHandler, getGestureHandlerConfig, setupGestureHandler, claimExternalPressOwnership as unstable_claimExternalPressOwnership, hasExternalPressOwnership as unstable_hasExternalPressOwnership, releaseExternalPressOwnership as unstable_releaseExternalPressOwnership };
@@ -1,38 +1,39 @@
1
1
  import { createGlobalState } from "./globalState.mjs";
2
+
2
3
  const state = createGlobalState(`gesture`, {
3
- enabled: false,
4
- Gesture: null,
5
- GestureDetector: null,
6
- ScrollView: null,
7
- RootView: null
4
+ enabled: false,
5
+ Gesture: null,
6
+ GestureDetector: null,
7
+ ScrollView: null,
8
+ RootView: null
8
9
  });
9
10
  const GESTURE_ENABLED_FREEZE_KEY = "__tamagui_gesture_enabled_freeze__";
10
11
  function getGestureEnabledFreezeState() {
11
- const g = globalThis;
12
- if (!g[GESTURE_ENABLED_FREEZE_KEY]) {
13
- g[GESTURE_ENABLED_FREEZE_KEY] = {
14
- frozen: false,
15
- enabled: false,
16
- warned: false
17
- };
18
- }
19
- return g[GESTURE_ENABLED_FREEZE_KEY];
12
+ const g = globalThis;
13
+ if (!g[GESTURE_ENABLED_FREEZE_KEY]) {
14
+ g[GESTURE_ENABLED_FREEZE_KEY] = {
15
+ frozen: false,
16
+ enabled: false,
17
+ warned: false
18
+ };
19
+ }
20
+ return g[GESTURE_ENABLED_FREEZE_KEY];
20
21
  }
21
22
  function warnGestureEnabledMutationIgnored(source) {
22
- const freezeState = getGestureEnabledFreezeState();
23
- if (freezeState.warned || process.env.NODE_ENV === "production") {
24
- return;
25
- }
26
- freezeState.warned = true;
27
- 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.`);
23
+ const freezeState = getGestureEnabledFreezeState();
24
+ if (freezeState.warned || process.env.NODE_ENV === "production") {
25
+ return;
26
+ }
27
+ freezeState.warned = true;
28
+ 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.`);
28
29
  }
29
30
  function canChangeGestureHandlerEnabled(nextEnabled, source) {
30
- const freezeState = getGestureEnabledFreezeState();
31
- if (!freezeState.frozen || freezeState.enabled === nextEnabled) {
32
- return true;
33
- }
34
- warnGestureEnabledMutationIgnored(source);
35
- return false;
31
+ const freezeState = getGestureEnabledFreezeState();
32
+ if (!freezeState.frozen || freezeState.enabled === nextEnabled) {
33
+ return true;
34
+ }
35
+ warnGestureEnabledMutationIgnored(source);
36
+ return false;
36
37
  }
37
38
  let pressGestureDebugId = 0;
38
39
  let externalPressDebugId = 0;
@@ -40,181 +41,178 @@ const PRESS_MOVE_CANCEL_DISTANCE = 12;
40
41
  const PRESS_MOVE_CANCEL_DISTANCE_SQ = PRESS_MOVE_CANCEL_DISTANCE * PRESS_MOVE_CANCEL_DISTANCE;
41
42
  const PRESS_STATE_KEY = "__tamagui_press_state__";
42
43
  function getEventPointerId(e) {
43
- 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;
44
- return pointerId == null || Number.isNaN(pointerId) ? null : Number(pointerId);
44
+ 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;
45
+ return pointerId == null || Number.isNaN(pointerId) ? null : Number(pointerId);
45
46
  }
46
47
  const pressState = globalThis[PRESS_STATE_KEY] ??= {
47
- owner: null,
48
- ownerId: null,
49
- ownerSource: null,
50
- ownerPointerId: null,
51
- timestamp: 0
48
+ owner: null,
49
+ ownerId: null,
50
+ ownerSource: null,
51
+ ownerPointerId: null,
52
+ timestamp: 0
52
53
  };
53
54
  function resetPressOwner() {
54
- pressState.owner = null;
55
- pressState.ownerId = null;
56
- pressState.ownerSource = null;
57
- pressState.ownerPointerId = null;
58
- pressState.timestamp = 0;
55
+ pressState.owner = null;
56
+ pressState.ownerId = null;
57
+ pressState.ownerSource = null;
58
+ pressState.ownerPointerId = null;
59
+ pressState.timestamp = 0;
59
60
  }
60
61
  function resetStaleOwner(now, debugName) {
61
- if (now - pressState.timestamp > 2e3) {
62
- resetPressOwner();
63
- }
62
+ if (now - pressState.timestamp > 2e3) {
63
+ resetPressOwner();
64
+ }
64
65
  }
65
66
  function claimExternalPressOwnership(debugName) {
66
- const now = Date.now();
67
- resetStaleOwner(now, debugName);
68
- const token = {};
69
- const ownerId = ++externalPressDebugId;
70
- pressState.owner = token;
71
- pressState.ownerId = ownerId;
72
- pressState.ownerSource = "external";
73
- pressState.timestamp = now;
74
- return token;
67
+ const now = Date.now();
68
+ resetStaleOwner(now, debugName);
69
+ const token = {};
70
+ const ownerId = ++externalPressDebugId;
71
+ pressState.owner = token;
72
+ pressState.ownerId = ownerId;
73
+ pressState.ownerSource = "external";
74
+ pressState.timestamp = now;
75
+ return token;
75
76
  }
76
77
  function releaseExternalPressOwnership(token, debugName) {
77
- if (!token || pressState.owner !== token) {
78
- return;
79
- }
80
- resetPressOwner();
78
+ if (!token || pressState.owner !== token) {
79
+ return;
80
+ }
81
+ resetPressOwner();
81
82
  }
82
83
  function hasExternalPressOwnership() {
83
- resetStaleOwner(Date.now());
84
- return pressState.ownerSource === "external";
84
+ resetStaleOwner(Date.now());
85
+ return pressState.ownerSource === "external";
85
86
  }
86
87
  function getGestureHandler() {
87
- return {
88
- get isEnabled() {
89
- return state.get().enabled;
90
- },
91
- get state() {
92
- return state.get();
93
- },
94
- set(updates) {
95
- if (updates.enabled !== void 0 && !canChangeGestureHandlerEnabled(updates.enabled, "getGestureHandler().set()")) {
96
- return;
97
- }
98
- Object.assign(state.get(), updates);
99
- },
100
- disable() {
101
- if (!canChangeGestureHandlerEnabled(false, "getGestureHandler().disable()")) {
102
- return;
103
- }
104
- state.get().enabled = false;
105
- },
106
- createPressGesture(config) {
107
- const {
108
- Gesture
109
- } = state.get();
110
- if (!Gesture) return null;
111
- const longPressDuration = config.delayLongPress ?? 500;
112
- const myToken = {};
113
- const myDebugId = ++pressGestureDebugId;
114
- const flags = {
115
- didLongPress: false,
116
- didPressIn: false,
117
- pressInTimer: null,
118
- // absolute (screen) coords of the press start, and whether the finger
119
- // has since travelled far enough to be treated as a scroll/drag.
120
- moveStartX: null,
121
- moveStartY: 0,
122
- cancelledByMove: false
123
- };
124
- const GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;
125
- const tryClaimOwnership = e => {
126
- const now = Date.now();
127
- resetStaleOwner(now, config.debugName);
128
- const currentPointerId = getEventPointerId(e);
129
- const isSameTouchPointer = currentPointerId == null || pressState.ownerPointerId == null || pressState.ownerPointerId === currentPointerId;
130
- if (pressState.owner === null || pressState.ownerSource === "internal" && isSameTouchPointer) {
131
- pressState.owner = myToken;
132
- pressState.ownerId = myDebugId;
133
- pressState.ownerSource = "internal";
134
- pressState.ownerPointerId = currentPointerId;
135
- pressState.timestamp = now;
136
- }
137
- return pressState.owner === myToken;
138
- };
139
- const isOwner = () => pressState.owner === myToken;
140
- const releaseOwnership = () => {
141
- if (flags.pressInTimer) {
142
- clearTimeout(flags.pressInTimer);
143
- flags.pressInTimer = null;
144
- }
145
- if (pressState.owner === myToken) {
146
- resetPressOwner();
147
- }
148
- };
149
- const firePressIn = e => {
150
- if (!flags.didPressIn && isOwner()) {
151
- flags.didPressIn = true;
152
- config.onPressIn?.(e);
153
- }
154
- };
155
- const schedulePressIn = e => {
156
- if (flags.pressInTimer) {
157
- clearTimeout(flags.pressInTimer);
158
- }
159
- flags.pressInTimer = setTimeout(() => {
160
- flags.pressInTimer = null;
161
- if (isOwner()) {
162
- firePressIn(e);
163
- }
164
- }, GRACE_PERIOD_MS + 1);
165
- };
166
- const tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin(e => {
167
- flags.didLongPress = false;
168
- flags.didPressIn = false;
169
- flags.cancelledByMove = false;
170
- flags.moveStartX = typeof e.absoluteX === "number" ? e.absoluteX : null;
171
- flags.moveStartY = typeof e.absoluteY === "number" ? e.absoluteY : 0;
172
- tryClaimOwnership(e);
173
- schedulePressIn(e);
174
- }).onTouchesMove(e => {
175
- if (flags.cancelledByMove || flags.moveStartX === null) return;
176
- const touch = e.changedTouches?.[0] ?? e.allTouches?.[0];
177
- if (!touch) return;
178
- const dx = touch.absoluteX - flags.moveStartX;
179
- const dy = touch.absoluteY - flags.moveStartY;
180
- if (dx * dx + dy * dy <= PRESS_MOVE_CANCEL_DISTANCE_SQ) return;
181
- flags.cancelledByMove = true;
182
- if (flags.pressInTimer) {
183
- clearTimeout(flags.pressInTimer);
184
- flags.pressInTimer = null;
185
- }
186
- if (flags.didPressIn) {
187
- flags.didPressIn = false;
188
- config.onPressOut?.(e);
189
- }
190
- releaseOwnership();
191
- }).onEnd(e => {
192
- if (isOwner() && !flags.didLongPress && !flags.cancelledByMove) {
193
- firePressIn(e);
194
- config.onPress?.(e);
195
- }
196
- }).onFinalize(e => {
197
- if (isOwner()) {
198
- config.onPressOut?.(e);
199
- releaseOwnership();
200
- } else if (flags.didPressIn) {
201
- flags.didPressIn = false;
202
- config.onPressOut?.(e);
203
- }
204
- });
205
- if (config.hitSlop) tap.hitSlop(config.hitSlop);
206
- if (!config.onLongPress) return tap;
207
- const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onStart(e => {
208
- flags.didLongPress = true;
209
- if (isOwner()) {
210
- firePressIn(e);
211
- config.onLongPress?.(e);
212
- }
213
- });
214
- if (config.hitSlop) longPress.hitSlop(config.hitSlop);
215
- return Gesture.Exclusive(longPress, tap);
216
- }
217
- };
88
+ return {
89
+ get isEnabled() {
90
+ return state.get().enabled;
91
+ },
92
+ get state() {
93
+ return state.get();
94
+ },
95
+ set(updates) {
96
+ if (updates.enabled !== void 0 && !canChangeGestureHandlerEnabled(updates.enabled, "getGestureHandler().set()")) {
97
+ return;
98
+ }
99
+ Object.assign(state.get(), updates);
100
+ },
101
+ disable() {
102
+ if (!canChangeGestureHandlerEnabled(false, "getGestureHandler().disable()")) {
103
+ return;
104
+ }
105
+ state.get().enabled = false;
106
+ },
107
+ createPressGesture(config) {
108
+ const { Gesture } = state.get();
109
+ if (!Gesture) return null;
110
+ const longPressDuration = config.delayLongPress ?? 500;
111
+ const myToken = {};
112
+ const myDebugId = ++pressGestureDebugId;
113
+ const flags = {
114
+ didLongPress: false,
115
+ didPressIn: false,
116
+ pressInTimer: null,
117
+ moveStartX: null,
118
+ moveStartY: 0,
119
+ cancelledByMove: false
120
+ };
121
+ const GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;
122
+ const tryClaimOwnership = (e) => {
123
+ const now = Date.now();
124
+ resetStaleOwner(now, config.debugName);
125
+ const currentPointerId = getEventPointerId(e);
126
+ const isSameTouchPointer = currentPointerId == null || pressState.ownerPointerId == null || pressState.ownerPointerId === currentPointerId;
127
+ if (pressState.owner === null || pressState.ownerSource === "internal" && isSameTouchPointer) {
128
+ pressState.owner = myToken;
129
+ pressState.ownerId = myDebugId;
130
+ pressState.ownerSource = "internal";
131
+ pressState.ownerPointerId = currentPointerId;
132
+ pressState.timestamp = now;
133
+ }
134
+ return pressState.owner === myToken;
135
+ };
136
+ const isOwner = () => pressState.owner === myToken;
137
+ const releaseOwnership = () => {
138
+ if (flags.pressInTimer) {
139
+ clearTimeout(flags.pressInTimer);
140
+ flags.pressInTimer = null;
141
+ }
142
+ if (pressState.owner === myToken) {
143
+ resetPressOwner();
144
+ }
145
+ };
146
+ const firePressIn = (e) => {
147
+ if (!flags.didPressIn && isOwner()) {
148
+ flags.didPressIn = true;
149
+ config.onPressIn?.(e);
150
+ }
151
+ };
152
+ const schedulePressIn = (e) => {
153
+ if (flags.pressInTimer) {
154
+ clearTimeout(flags.pressInTimer);
155
+ }
156
+ flags.pressInTimer = setTimeout(() => {
157
+ flags.pressInTimer = null;
158
+ if (isOwner()) {
159
+ firePressIn(e);
160
+ }
161
+ }, GRACE_PERIOD_MS + 1);
162
+ };
163
+ const tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin((e) => {
164
+ flags.didLongPress = false;
165
+ flags.didPressIn = false;
166
+ flags.cancelledByMove = false;
167
+ flags.moveStartX = typeof e.absoluteX === "number" ? e.absoluteX : null;
168
+ flags.moveStartY = typeof e.absoluteY === "number" ? e.absoluteY : 0;
169
+ tryClaimOwnership(e);
170
+ schedulePressIn(e);
171
+ }).onTouchesMove((e) => {
172
+ if (flags.cancelledByMove || flags.moveStartX === null) return;
173
+ const touch = e.changedTouches?.[0] ?? e.allTouches?.[0];
174
+ if (!touch) return;
175
+ const dx = touch.absoluteX - flags.moveStartX;
176
+ const dy = touch.absoluteY - flags.moveStartY;
177
+ if (dx * dx + dy * dy <= PRESS_MOVE_CANCEL_DISTANCE_SQ) return;
178
+ flags.cancelledByMove = true;
179
+ if (flags.pressInTimer) {
180
+ clearTimeout(flags.pressInTimer);
181
+ flags.pressInTimer = null;
182
+ }
183
+ if (flags.didPressIn) {
184
+ flags.didPressIn = false;
185
+ config.onPressOut?.(e);
186
+ }
187
+ releaseOwnership();
188
+ }).onEnd((e) => {
189
+ if (isOwner() && !flags.didLongPress && !flags.cancelledByMove) {
190
+ firePressIn(e);
191
+ config.onPress?.(e);
192
+ }
193
+ }).onFinalize((e) => {
194
+ if (isOwner()) {
195
+ config.onPressOut?.(e);
196
+ releaseOwnership();
197
+ } else if (flags.didPressIn) {
198
+ flags.didPressIn = false;
199
+ config.onPressOut?.(e);
200
+ }
201
+ });
202
+ if (config.hitSlop) tap.hitSlop(config.hitSlop);
203
+ if (!config.onLongPress) return tap;
204
+ const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onStart((e) => {
205
+ flags.didLongPress = true;
206
+ if (isOwner()) {
207
+ firePressIn(e);
208
+ config.onLongPress?.(e);
209
+ }
210
+ });
211
+ if (config.hitSlop) longPress.hitSlop(config.hitSlop);
212
+ return Gesture.Exclusive(longPress, tap);
213
+ }
214
+ };
218
215
  }
216
+
219
217
  export { canChangeGestureHandlerEnabled, claimExternalPressOwnership, getGestureHandler, hasExternalPressOwnership, releaseExternalPressOwnership };
220
218
  //# sourceMappingURL=gestureState.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["createGlobalState","state","enabled","Gesture","GestureDetector","ScrollView","RootView","GESTURE_ENABLED_FREEZE_KEY","getGestureEnabledFreezeState","g","globalThis","frozen","warned","warnGestureEnabledMutationIgnored","source","freezeState","process","env","NODE_ENV","console","warn","canChangeGestureHandlerEnabled","nextEnabled","pressGestureDebugId","externalPressDebugId","PRESS_MOVE_CANCEL_DISTANCE","PRESS_MOVE_CANCEL_DISTANCE_SQ","PRESS_STATE_KEY","getEventPointerId","e","pointerId","pointer","id","event","nativeEvent","Number","isNaN","pressState","owner","ownerId","ownerSource","ownerPointerId","timestamp","resetPressOwner","resetStaleOwner","now","debugName","claimExternalPressOwnership","Date","token","releaseExternalPressOwnership","hasExternalPressOwnership","getGestureHandler","isEnabled","get","set","updates","Object","assign","disable","createPressGesture","config","longPressDuration","delayLongPress","myToken","myDebugId","flags","didLongPress","didPressIn","pressInTimer","moveStartX","moveStartY","cancelledByMove","GRACE_PERIOD_MS","TAMAGUI_RNGH_PRESS_DELAY","tryClaimOwnership","currentPointerId","isSameTouchPointer","isOwner","releaseOwnership","clearTimeout","firePressIn","onPressIn","schedulePressIn","setTimeout","tap","Tap","runOnJS","maxDuration","onBegin","absoluteX","absoluteY","onTouchesMove","touch","changedTouches","allTouches","dx","dy","onPressOut","onEnd","onPress","onFinalize","hitSlop","onLongPress","longPress","LongPress","minDuration","onStart","Exclusive"],"sources":["../../src/gestureState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"gestureState.js","names":[],"sources":["esm/gestureState.js"],"sourcesContent":["import { createGlobalState } from \"./globalState\";\nconst state = createGlobalState(`gesture`, {\n enabled: false,\n Gesture: null,\n GestureDetector: null,\n ScrollView: null,\n RootView: null\n});\nconst GESTURE_ENABLED_FREEZE_KEY = \"__tamagui_gesture_enabled_freeze__\";\nfunction getGestureEnabledFreezeState() {\n const g = globalThis;\n if (!g[GESTURE_ENABLED_FREEZE_KEY]) {\n g[GESTURE_ENABLED_FREEZE_KEY] = {\n frozen: false,\n enabled: false,\n warned: false\n };\n }\n return g[GESTURE_ENABLED_FREEZE_KEY];\n}\nfunction warnGestureEnabledMutationIgnored(source) {\n const freezeState = getGestureEnabledFreezeState();\n if (freezeState.warned || process.env.NODE_ENV === \"production\") {\n return;\n }\n freezeState.warned = true;\n console.warn(\n `[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.`\n );\n}\nfunction canChangeGestureHandlerEnabled(nextEnabled, source) {\n const freezeState = getGestureEnabledFreezeState();\n if (!freezeState.frozen || freezeState.enabled === nextEnabled) {\n return true;\n }\n warnGestureEnabledMutationIgnored(source);\n return false;\n}\nlet pressGestureDebugId = 0;\nlet externalPressDebugId = 0;\nconst PRESS_MOVE_CANCEL_DISTANCE = 12;\nconst PRESS_MOVE_CANCEL_DISTANCE_SQ = PRESS_MOVE_CANCEL_DISTANCE * PRESS_MOVE_CANCEL_DISTANCE;\nconst PRESS_STATE_KEY = \"__tamagui_press_state__\";\nfunction getEventPointerId(e) {\n 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;\n return pointerId == null || Number.isNaN(pointerId) ? null : Number(pointerId);\n}\nconst pressState = globalThis[PRESS_STATE_KEY] ??= {\n owner: null,\n ownerId: null,\n ownerSource: null,\n ownerPointerId: null,\n timestamp: 0\n};\nfunction resetPressOwner() {\n pressState.owner = null;\n pressState.ownerId = null;\n pressState.ownerSource = null;\n pressState.ownerPointerId = null;\n pressState.timestamp = 0;\n}\nfunction resetStaleOwner(now, debugName) {\n if (now - pressState.timestamp > 2e3) {\n resetPressOwner();\n }\n}\nfunction claimExternalPressOwnership(debugName) {\n const now = Date.now();\n resetStaleOwner(now, debugName);\n const token = {};\n const ownerId = ++externalPressDebugId;\n pressState.owner = token;\n pressState.ownerId = ownerId;\n pressState.ownerSource = \"external\";\n pressState.timestamp = now;\n return token;\n}\nfunction releaseExternalPressOwnership(token, debugName) {\n if (!token || pressState.owner !== token) {\n return;\n }\n resetPressOwner();\n}\nfunction hasExternalPressOwnership() {\n resetStaleOwner(Date.now());\n return pressState.ownerSource === \"external\";\n}\nfunction getGestureHandler() {\n return {\n get isEnabled() {\n return state.get().enabled;\n },\n get state() {\n return state.get();\n },\n set(updates) {\n if (updates.enabled !== void 0 && !canChangeGestureHandlerEnabled(updates.enabled, \"getGestureHandler().set()\")) {\n return;\n }\n Object.assign(state.get(), updates);\n },\n disable() {\n if (!canChangeGestureHandlerEnabled(false, \"getGestureHandler().disable()\")) {\n return;\n }\n state.get().enabled = false;\n },\n createPressGesture(config) {\n const { Gesture } = state.get();\n if (!Gesture) return null;\n const longPressDuration = config.delayLongPress ?? 500;\n const myToken = {};\n const myDebugId = ++pressGestureDebugId;\n const flags = {\n didLongPress: false,\n didPressIn: false,\n pressInTimer: null,\n // absolute (screen) coords of the press start, and whether the finger\n // has since travelled far enough to be treated as a scroll/drag.\n moveStartX: null,\n moveStartY: 0,\n cancelledByMove: false\n };\n const GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;\n const tryClaimOwnership = (e) => {\n const now = Date.now();\n resetStaleOwner(now, config.debugName);\n const currentPointerId = getEventPointerId(e);\n const isSameTouchPointer = currentPointerId == null || pressState.ownerPointerId == null || pressState.ownerPointerId === currentPointerId;\n if (pressState.owner === null || pressState.ownerSource === \"internal\" && isSameTouchPointer) {\n pressState.owner = myToken;\n pressState.ownerId = myDebugId;\n pressState.ownerSource = \"internal\";\n pressState.ownerPointerId = currentPointerId;\n pressState.timestamp = now;\n }\n return pressState.owner === myToken;\n };\n const isOwner = () => pressState.owner === myToken;\n const releaseOwnership = () => {\n if (flags.pressInTimer) {\n clearTimeout(flags.pressInTimer);\n flags.pressInTimer = null;\n }\n if (pressState.owner === myToken) {\n resetPressOwner();\n }\n };\n const firePressIn = (e) => {\n if (!flags.didPressIn && isOwner()) {\n flags.didPressIn = true;\n config.onPressIn?.(e);\n }\n };\n const schedulePressIn = (e) => {\n if (flags.pressInTimer) {\n clearTimeout(flags.pressInTimer);\n }\n flags.pressInTimer = setTimeout(() => {\n flags.pressInTimer = null;\n if (isOwner()) {\n firePressIn(e);\n }\n }, GRACE_PERIOD_MS + 1);\n };\n const tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin((e) => {\n flags.didLongPress = false;\n flags.didPressIn = false;\n flags.cancelledByMove = false;\n flags.moveStartX = typeof e.absoluteX === \"number\" ? e.absoluteX : null;\n flags.moveStartY = typeof e.absoluteY === \"number\" ? e.absoluteY : 0;\n tryClaimOwnership(e);\n schedulePressIn(e);\n }).onTouchesMove((e) => {\n if (flags.cancelledByMove || flags.moveStartX === null) return;\n const touch = e.changedTouches?.[0] ?? e.allTouches?.[0];\n if (!touch) return;\n const dx = touch.absoluteX - flags.moveStartX;\n const dy = touch.absoluteY - flags.moveStartY;\n if (dx * dx + dy * dy <= PRESS_MOVE_CANCEL_DISTANCE_SQ) return;\n flags.cancelledByMove = true;\n if (flags.pressInTimer) {\n clearTimeout(flags.pressInTimer);\n flags.pressInTimer = null;\n }\n if (flags.didPressIn) {\n flags.didPressIn = false;\n config.onPressOut?.(e);\n }\n releaseOwnership();\n }).onEnd((e) => {\n if (isOwner() && !flags.didLongPress && !flags.cancelledByMove) {\n firePressIn(e);\n config.onPress?.(e);\n }\n }).onFinalize((e) => {\n if (isOwner()) {\n config.onPressOut?.(e);\n releaseOwnership();\n } else if (flags.didPressIn) {\n flags.didPressIn = false;\n config.onPressOut?.(e);\n }\n });\n if (config.hitSlop) tap.hitSlop(config.hitSlop);\n if (!config.onLongPress) return tap;\n const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onStart((e) => {\n flags.didLongPress = true;\n if (isOwner()) {\n firePressIn(e);\n config.onLongPress?.(e);\n }\n });\n if (config.hitSlop) longPress.hitSlop(config.hitSlop);\n return Gesture.Exclusive(longPress, tap);\n }\n };\n}\nexport {\n canChangeGestureHandlerEnabled,\n claimExternalPressOwnership,\n getGestureHandler,\n hasExternalPressOwnership,\n releaseExternalPressOwnership\n};\n//# sourceMappingURL=gestureState.js.map\n"],"mappings":";;;AACA,MAAM,QAAQ,kBAAkB,WAAW;CACzC,SAAS;CACT,SAAS;CACT,iBAAiB;CACjB,YAAY;CACZ,UAAU;AACZ,CAAC;AACD,MAAM,6BAA6B;AACnC,SAAS,+BAA+B;CACtC,MAAM,IAAI;CACV,IAAI,CAAC,EAAE,6BAA6B;EAClC,EAAE,8BAA8B;GAC9B,QAAQ;GACR,SAAS;GACT,QAAQ;EACV;CACF;CACA,OAAO,EAAE;AACX;AACA,SAAS,kCAAkC,QAAQ;CACjD,MAAM,cAAc,6BAA6B;CACjD,IAAI,YAAY,UAAU,QAAQ,IAAI,aAAa,cAAc;EAC/D;CACF;CACA,YAAY,SAAS;CACrB,QAAQ,KACN,qBAAqB,OAAO,qDAAqD,YAAY,UAAU,YAAY,WAAW,uFAChI;AACF;AACA,SAAS,+BAA+B,aAAa,QAAQ;CAC3D,MAAM,cAAc,6BAA6B;CACjD,IAAI,CAAC,YAAY,UAAU,YAAY,YAAY,aAAa;EAC9D,OAAO;CACT;CACA,kCAAkC,MAAM;CACxC,OAAO;AACT;AACA,IAAI,sBAAsB;AAC1B,IAAI,uBAAuB;AAC3B,MAAM,6BAA6B;AACnC,MAAM,gCAAgC,6BAA6B;AACnE,MAAM,kBAAkB;AACxB,SAAS,kBAAkB,GAAG;CAC5B,MAAM,YAAY,GAAG,aAAa,GAAG,SAAS,MAAM,GAAG,OAAO,aAAa,GAAG,OAAO,SAAS,MAAM,GAAG,aAAa,aAAa,GAAG,aAAa,MAAM,GAAG,OAAO,aAAa,aAAa,GAAG,OAAO,aAAa,MAAM;CACxN,OAAO,aAAa,QAAQ,OAAO,MAAM,SAAS,IAAI,OAAO,OAAO,SAAS;AAC/E;AACA,MAAM,aAAa,WAAW,qBAAqB;CACjD,OAAO;CACP,SAAS;CACT,aAAa;CACb,gBAAgB;CAChB,WAAW;AACb;AACA,SAAS,kBAAkB;CACzB,WAAW,QAAQ;CACnB,WAAW,UAAU;CACrB,WAAW,cAAc;CACzB,WAAW,iBAAiB;CAC5B,WAAW,YAAY;AACzB;AACA,SAAS,gBAAgB,KAAK,WAAW;CACvC,IAAI,MAAM,WAAW,YAAY,KAAK;EACpC,gBAAgB;CAClB;AACF;AACA,SAAS,4BAA4B,WAAW;CAC9C,MAAM,MAAM,KAAK,IAAI;CACrB,gBAAgB,KAAK,SAAS;CAC9B,MAAM,QAAQ,CAAC;CACf,MAAM,UAAU,EAAE;CAClB,WAAW,QAAQ;CACnB,WAAW,UAAU;CACrB,WAAW,cAAc;CACzB,WAAW,YAAY;CACvB,OAAO;AACT;AACA,SAAS,8BAA8B,OAAO,WAAW;CACvD,IAAI,CAAC,SAAS,WAAW,UAAU,OAAO;EACxC;CACF;CACA,gBAAgB;AAClB;AACA,SAAS,4BAA4B;CACnC,gBAAgB,KAAK,IAAI,CAAC;CAC1B,OAAO,WAAW,gBAAgB;AACpC;AACA,SAAS,oBAAoB;CAC3B,OAAO;EACL,IAAI,YAAY;GACd,OAAO,MAAM,IAAI,CAAC,CAAC;EACrB;EACA,IAAI,QAAQ;GACV,OAAO,MAAM,IAAI;EACnB;EACA,IAAI,SAAS;GACX,IAAI,QAAQ,YAAY,KAAK,KAAK,CAAC,+BAA+B,QAAQ,SAAS,2BAA2B,GAAG;IAC/G;GACF;GACA,OAAO,OAAO,MAAM,IAAI,GAAG,OAAO;EACpC;EACA,UAAU;GACR,IAAI,CAAC,+BAA+B,OAAO,+BAA+B,GAAG;IAC3E;GACF;GACA,MAAM,IAAI,CAAC,CAAC,UAAU;EACxB;EACA,mBAAmB,QAAQ;GACzB,MAAM,EAAE,YAAY,MAAM,IAAI;GAC9B,IAAI,CAAC,SAAS,OAAO;GACrB,MAAM,oBAAoB,OAAO,kBAAkB;GACnD,MAAM,UAAU,CAAC;GACjB,MAAM,YAAY,EAAE;GACpB,MAAM,QAAQ;IACZ,cAAc;IACd,YAAY;IACZ,cAAc;IAGd,YAAY;IACZ,YAAY;IACZ,iBAAiB;GACnB;GACA,MAAM,kBAAkB,QAAQ,IAAI,2BAA2B,CAAC,QAAQ,IAAI,2BAA2B;GACvG,MAAM,qBAAqB,MAAM;IAC/B,MAAM,MAAM,KAAK,IAAI;IACrB,gBAAgB,KAAK,OAAO,SAAS;IACrC,MAAM,mBAAmB,kBAAkB,CAAC;IAC5C,MAAM,qBAAqB,oBAAoB,QAAQ,WAAW,kBAAkB,QAAQ,WAAW,mBAAmB;IAC1H,IAAI,WAAW,UAAU,QAAQ,WAAW,gBAAgB,cAAc,oBAAoB;KAC5F,WAAW,QAAQ;KACnB,WAAW,UAAU;KACrB,WAAW,cAAc;KACzB,WAAW,iBAAiB;KAC5B,WAAW,YAAY;IACzB;IACA,OAAO,WAAW,UAAU;GAC9B;GACA,MAAM,gBAAgB,WAAW,UAAU;GAC3C,MAAM,yBAAyB;IAC7B,IAAI,MAAM,cAAc;KACtB,aAAa,MAAM,YAAY;KAC/B,MAAM,eAAe;IACvB;IACA,IAAI,WAAW,UAAU,SAAS;KAChC,gBAAgB;IAClB;GACF;GACA,MAAM,eAAe,MAAM;IACzB,IAAI,CAAC,MAAM,cAAc,QAAQ,GAAG;KAClC,MAAM,aAAa;KACnB,OAAO,YAAY,CAAC;IACtB;GACF;GACA,MAAM,mBAAmB,MAAM;IAC7B,IAAI,MAAM,cAAc;KACtB,aAAa,MAAM,YAAY;IACjC;IACA,MAAM,eAAe,iBAAiB;KACpC,MAAM,eAAe;KACrB,IAAI,QAAQ,GAAG;MACb,YAAY,CAAC;KACf;IACF,GAAG,kBAAkB,CAAC;GACxB;GACA,MAAM,MAAM,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,SAAS,MAAM;IACtE,MAAM,eAAe;IACrB,MAAM,aAAa;IACnB,MAAM,kBAAkB;IACxB,MAAM,aAAa,OAAO,EAAE,cAAc,WAAW,EAAE,YAAY;IACnE,MAAM,aAAa,OAAO,EAAE,cAAc,WAAW,EAAE,YAAY;IACnE,kBAAkB,CAAC;IACnB,gBAAgB,CAAC;GACnB,CAAC,CAAC,CAAC,eAAe,MAAM;IACtB,IAAI,MAAM,mBAAmB,MAAM,eAAe,MAAM;IACxD,MAAM,QAAQ,EAAE,iBAAiB,MAAM,EAAE,aAAa;IACtD,IAAI,CAAC,OAAO;IACZ,MAAM,KAAK,MAAM,YAAY,MAAM;IACnC,MAAM,KAAK,MAAM,YAAY,MAAM;IACnC,IAAI,KAAK,KAAK,KAAK,MAAM,+BAA+B;IACxD,MAAM,kBAAkB;IACxB,IAAI,MAAM,cAAc;KACtB,aAAa,MAAM,YAAY;KAC/B,MAAM,eAAe;IACvB;IACA,IAAI,MAAM,YAAY;KACpB,MAAM,aAAa;KACnB,OAAO,aAAa,CAAC;IACvB;IACA,iBAAiB;GACnB,CAAC,CAAC,CAAC,OAAO,MAAM;IACd,IAAI,QAAQ,KAAK,CAAC,MAAM,gBAAgB,CAAC,MAAM,iBAAiB;KAC9D,YAAY,CAAC;KACb,OAAO,UAAU,CAAC;IACpB;GACF,CAAC,CAAC,CAAC,YAAY,MAAM;IACnB,IAAI,QAAQ,GAAG;KACb,OAAO,aAAa,CAAC;KACrB,iBAAiB;IACnB,OAAO,IAAI,MAAM,YAAY;KAC3B,MAAM,aAAa;KACnB,OAAO,aAAa,CAAC;IACvB;GACF,CAAC;GACD,IAAI,OAAO,SAAS,IAAI,QAAQ,OAAO,OAAO;GAC9C,IAAI,CAAC,OAAO,aAAa,OAAO;GAChC,MAAM,YAAY,QAAQ,UAAU,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAChG,MAAM,eAAe;IACrB,IAAI,QAAQ,GAAG;KACb,YAAY,CAAC;KACb,OAAO,cAAc,CAAC;IACxB;GACF,CAAC;GACD,IAAI,OAAO,SAAS,UAAU,QAAQ,OAAO,OAAO;GACpD,OAAO,QAAQ,UAAU,WAAW,GAAG;EACzC;CACF;AACF"}