react-native-screen-transitions 2.3.1 → 2.3.3

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 (217) hide show
  1. package/README.md +50 -12
  2. package/lib/commonjs/__configs__/index.js.map +1 -0
  3. package/lib/commonjs/{configs → __configs__}/presets.js +7 -3
  4. package/lib/commonjs/__configs__/presets.js.map +1 -0
  5. package/lib/commonjs/{configs → __configs__}/specs.js +1 -0
  6. package/lib/commonjs/__configs__/specs.js.map +1 -0
  7. package/lib/commonjs/components/controllers/screen-lifecycle.js +5 -5
  8. package/lib/commonjs/components/controllers/screen-lifecycle.js.map +1 -1
  9. package/lib/commonjs/components/create-transition-aware-component.js +13 -32
  10. package/lib/commonjs/components/create-transition-aware-component.js.map +1 -1
  11. package/lib/commonjs/components/integrations/masked-view.js +3 -4
  12. package/lib/commonjs/components/integrations/masked-view.js.map +1 -1
  13. package/lib/commonjs/components/root-transition-aware.js +3 -3
  14. package/lib/commonjs/components/root-transition-aware.js.map +1 -1
  15. package/lib/commonjs/constants.js +103 -0
  16. package/lib/commonjs/constants.js.map +1 -0
  17. package/lib/commonjs/hooks/animation/use-associated-style.js +3 -4
  18. package/lib/commonjs/hooks/animation/use-associated-style.js.map +1 -1
  19. package/lib/commonjs/hooks/animation/use-screen-animation.js +6 -28
  20. package/lib/commonjs/hooks/animation/use-screen-animation.js.map +1 -1
  21. package/lib/commonjs/hooks/bounds/use-bound-registry.js +92 -31
  22. package/lib/commonjs/hooks/bounds/use-bound-registry.js.map +1 -1
  23. package/lib/commonjs/hooks/gestures/use-build-gestures.js +27 -41
  24. package/lib/commonjs/hooks/gestures/use-build-gestures.js.map +1 -1
  25. package/lib/commonjs/index.js +3 -3
  26. package/lib/commonjs/index.js.map +1 -1
  27. package/lib/commonjs/integrations/native-stack/utils/debounce.js.map +1 -1
  28. package/lib/commonjs/integrations/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  29. package/lib/commonjs/integrations/native-stack/utils/useDismissedRouteError.js.map +1 -1
  30. package/lib/commonjs/integrations/native-stack/views/FontProcessor.js +1 -1
  31. package/lib/commonjs/integrations/native-stack/views/FontProcessor.js.map +1 -1
  32. package/lib/commonjs/integrations/native-stack/views/FontProcessor.native.js +1 -1
  33. package/lib/commonjs/integrations/native-stack/views/FontProcessor.native.js.map +1 -1
  34. package/lib/commonjs/integrations/native-stack/views/NativeStackView.native.js +2 -2
  35. package/lib/commonjs/integrations/native-stack/views/NativeStackView.native.js.map +1 -1
  36. package/lib/commonjs/providers/gestures.js +1 -9
  37. package/lib/commonjs/providers/gestures.js.map +1 -1
  38. package/lib/commonjs/{components/screen-transition-tree.js → providers/screen-transition-provider.js} +5 -5
  39. package/lib/commonjs/providers/screen-transition-provider.js.map +1 -0
  40. package/lib/commonjs/providers/transition-styles.js +4 -4
  41. package/lib/commonjs/providers/transition-styles.js.map +1 -1
  42. package/lib/commonjs/utils/animation/start-screen-transition.js +54 -0
  43. package/lib/commonjs/utils/animation/start-screen-transition.js.map +1 -0
  44. package/lib/commonjs/utils/bounds/index.js +6 -18
  45. package/lib/commonjs/utils/bounds/index.js.map +1 -1
  46. package/lib/commonjs/utils/gesture/apply-offset-rules.js +12 -21
  47. package/lib/commonjs/utils/gesture/apply-offset-rules.js.map +1 -1
  48. package/lib/commonjs/utils/gesture/determine-dismissal.js +7 -55
  49. package/lib/commonjs/utils/gesture/determine-dismissal.js.map +1 -1
  50. package/lib/commonjs/utils/gesture/reset-gesture-values.js +46 -0
  51. package/lib/commonjs/utils/gesture/reset-gesture-values.js.map +1 -0
  52. package/lib/commonjs/utils/gesture/velocity.js +89 -0
  53. package/lib/commonjs/utils/gesture/velocity.js.map +1 -0
  54. package/lib/commonjs/utils/reanimated/version.js +12 -0
  55. package/lib/commonjs/utils/reanimated/version.js.map +1 -0
  56. package/lib/module/__configs__/index.js.map +1 -0
  57. package/lib/module/{configs → __configs__}/presets.js +7 -3
  58. package/lib/module/__configs__/presets.js.map +1 -0
  59. package/lib/module/{configs → __configs__}/specs.js +1 -0
  60. package/lib/module/__configs__/specs.js.map +1 -0
  61. package/lib/module/components/controllers/screen-lifecycle.js +5 -5
  62. package/lib/module/components/controllers/screen-lifecycle.js.map +1 -1
  63. package/lib/module/components/create-transition-aware-component.js +13 -32
  64. package/lib/module/components/create-transition-aware-component.js.map +1 -1
  65. package/lib/module/components/integrations/masked-view.js +1 -2
  66. package/lib/module/components/integrations/masked-view.js.map +1 -1
  67. package/lib/module/components/root-transition-aware.js +3 -3
  68. package/lib/module/components/root-transition-aware.js.map +1 -1
  69. package/lib/module/constants.js +98 -0
  70. package/lib/module/constants.js.map +1 -0
  71. package/lib/module/hooks/animation/use-associated-style.js +3 -4
  72. package/lib/module/hooks/animation/use-associated-style.js.map +1 -1
  73. package/lib/module/hooks/animation/use-screen-animation.js +6 -28
  74. package/lib/module/hooks/animation/use-screen-animation.js.map +1 -1
  75. package/lib/module/hooks/bounds/use-bound-registry.js +93 -33
  76. package/lib/module/hooks/bounds/use-bound-registry.js.map +1 -1
  77. package/lib/module/hooks/gestures/use-build-gestures.js +22 -36
  78. package/lib/module/hooks/gestures/use-build-gestures.js.map +1 -1
  79. package/lib/module/index.js +1 -1
  80. package/lib/module/index.js.map +1 -1
  81. package/lib/module/integrations/native-stack/utils/debounce.js.map +1 -1
  82. package/lib/module/integrations/native-stack/utils/useAnimatedHeaderHeight.js +1 -1
  83. package/lib/module/integrations/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -1
  84. package/lib/module/integrations/native-stack/utils/useDismissedRouteError.js +1 -1
  85. package/lib/module/integrations/native-stack/utils/useDismissedRouteError.js.map +1 -1
  86. package/lib/module/integrations/native-stack/views/FontProcessor.js +1 -1
  87. package/lib/module/integrations/native-stack/views/FontProcessor.js.map +1 -1
  88. package/lib/module/integrations/native-stack/views/FontProcessor.native.js +2 -2
  89. package/lib/module/integrations/native-stack/views/FontProcessor.native.js.map +1 -1
  90. package/lib/module/integrations/native-stack/views/NativeStackView.native.js +2 -2
  91. package/lib/module/integrations/native-stack/views/NativeStackView.native.js.map +1 -1
  92. package/lib/module/providers/gestures.js +0 -8
  93. package/lib/module/providers/gestures.js.map +1 -1
  94. package/lib/module/{components/screen-transition-tree.js → providers/screen-transition-provider.js} +4 -4
  95. package/lib/module/providers/screen-transition-provider.js.map +1 -0
  96. package/lib/module/providers/transition-styles.js +4 -4
  97. package/lib/module/providers/transition-styles.js.map +1 -1
  98. package/lib/module/utils/animation/{run-transition.js → start-screen-transition.js} +15 -13
  99. package/lib/module/utils/animation/start-screen-transition.js.map +1 -0
  100. package/lib/module/utils/bounds/index.js +5 -17
  101. package/lib/module/utils/bounds/index.js.map +1 -1
  102. package/lib/module/utils/gesture/apply-offset-rules.js +1 -10
  103. package/lib/module/utils/gesture/apply-offset-rules.js.map +1 -1
  104. package/lib/module/utils/gesture/determine-dismissal.js +7 -55
  105. package/lib/module/utils/gesture/determine-dismissal.js.map +1 -1
  106. package/lib/module/utils/gesture/reset-gesture-values.js +41 -0
  107. package/lib/module/utils/gesture/reset-gesture-values.js.map +1 -0
  108. package/lib/module/utils/gesture/velocity.js +85 -0
  109. package/lib/module/utils/gesture/velocity.js.map +1 -0
  110. package/lib/module/utils/reanimated/version.js +7 -0
  111. package/lib/module/utils/reanimated/version.js.map +1 -0
  112. package/lib/typescript/{configs → __configs__}/index.d.ts +1 -1
  113. package/lib/typescript/__configs__/index.d.ts.map +1 -0
  114. package/lib/typescript/__configs__/presets.d.ts.map +1 -0
  115. package/lib/typescript/__configs__/specs.d.ts.map +1 -0
  116. package/lib/typescript/components/create-transition-aware-component.d.ts +14 -2
  117. package/lib/typescript/components/create-transition-aware-component.d.ts.map +1 -1
  118. package/lib/typescript/components/integrations/masked-view.d.ts.map +1 -1
  119. package/lib/typescript/components/root-transition-aware.d.ts.map +1 -1
  120. package/lib/typescript/constants.d.ts +57 -0
  121. package/lib/typescript/constants.d.ts.map +1 -0
  122. package/lib/typescript/hooks/animation/use-associated-style.d.ts.map +1 -1
  123. package/lib/typescript/hooks/animation/use-screen-animation.d.ts +1 -1
  124. package/lib/typescript/hooks/animation/use-screen-animation.d.ts.map +1 -1
  125. package/lib/typescript/hooks/bounds/use-bound-registry.d.ts +8 -9
  126. package/lib/typescript/hooks/bounds/use-bound-registry.d.ts.map +1 -1
  127. package/lib/typescript/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  128. package/lib/typescript/index.d.ts +100 -68
  129. package/lib/typescript/index.d.ts.map +1 -1
  130. package/lib/typescript/integrations/native-stack/utils/debounce.d.ts.map +1 -1
  131. package/lib/typescript/integrations/native-stack/utils/useAnimatedHeaderHeight.d.ts +2 -2
  132. package/lib/typescript/integrations/native-stack/utils/useDismissedRouteError.d.ts +2 -2
  133. package/lib/typescript/integrations/native-stack/utils/useDismissedRouteError.d.ts.map +1 -1
  134. package/lib/typescript/integrations/native-stack/views/FontProcessor.d.ts.map +1 -1
  135. package/lib/typescript/integrations/native-stack/views/FontProcessor.native.d.ts.map +1 -1
  136. package/lib/typescript/providers/gestures.d.ts +0 -1
  137. package/lib/typescript/providers/gestures.d.ts.map +1 -1
  138. package/lib/typescript/{components/screen-transition-tree.d.ts → providers/screen-transition-provider.d.ts} +2 -2
  139. package/lib/typescript/providers/screen-transition-provider.d.ts.map +1 -0
  140. package/lib/typescript/providers/transition-styles.d.ts.map +1 -1
  141. package/lib/typescript/types/core.d.ts +0 -8
  142. package/lib/typescript/types/core.d.ts.map +1 -1
  143. package/lib/typescript/utils/animation/start-screen-transition.d.ts +13 -0
  144. package/lib/typescript/utils/animation/start-screen-transition.d.ts.map +1 -0
  145. package/lib/typescript/utils/bounds/_types/get-bounds.d.ts +2 -2
  146. package/lib/typescript/utils/bounds/_types/get-bounds.d.ts.map +1 -1
  147. package/lib/typescript/utils/bounds/index.d.ts.map +1 -1
  148. package/lib/typescript/utils/gesture/apply-offset-rules.d.ts.map +1 -1
  149. package/lib/typescript/utils/gesture/determine-dismissal.d.ts +0 -1
  150. package/lib/typescript/utils/gesture/determine-dismissal.d.ts.map +1 -1
  151. package/lib/typescript/utils/gesture/reset-gesture-values.d.ts +16 -0
  152. package/lib/typescript/utils/gesture/reset-gesture-values.d.ts.map +1 -0
  153. package/lib/typescript/utils/gesture/velocity.d.ts +25 -0
  154. package/lib/typescript/utils/gesture/velocity.d.ts.map +1 -0
  155. package/lib/typescript/utils/reanimated/version.d.ts +2 -0
  156. package/lib/typescript/utils/reanimated/version.d.ts.map +1 -0
  157. package/package.json +3 -3
  158. package/src/{configs → __configs__}/presets.ts +7 -1
  159. package/src/{configs → __configs__}/specs.ts +1 -0
  160. package/src/components/controllers/screen-lifecycle.tsx +5 -5
  161. package/src/components/create-transition-aware-component.tsx +23 -38
  162. package/src/components/integrations/masked-view.tsx +1 -3
  163. package/src/components/root-transition-aware.tsx +4 -8
  164. package/src/constants.ts +106 -0
  165. package/src/hooks/animation/use-associated-style.tsx +3 -4
  166. package/src/hooks/animation/use-screen-animation.tsx +15 -32
  167. package/src/hooks/bounds/use-bound-registry.tsx +112 -25
  168. package/src/hooks/gestures/use-build-gestures.tsx +31 -25
  169. package/src/index.ts +1 -1
  170. package/src/integrations/native-stack/utils/debounce.tsx +9 -9
  171. package/src/integrations/native-stack/utils/useAnimatedHeaderHeight.tsx +10 -10
  172. package/src/integrations/native-stack/utils/useDismissedRouteError.tsx +21 -21
  173. package/src/integrations/native-stack/views/FontProcessor.native.tsx +7 -7
  174. package/src/integrations/native-stack/views/FontProcessor.tsx +2 -2
  175. package/src/integrations/native-stack/views/NativeStackView.native.tsx +4 -4
  176. package/src/providers/gestures.tsx +0 -9
  177. package/src/{components/screen-transition-tree.tsx → providers/screen-transition-provider.tsx} +3 -3
  178. package/src/providers/transition-styles.tsx +6 -5
  179. package/src/types/core.ts +0 -9
  180. package/src/utils/animation/start-screen-transition.ts +61 -0
  181. package/src/utils/bounds/_types/get-bounds.ts +7 -7
  182. package/src/utils/bounds/index.ts +12 -19
  183. package/src/utils/gesture/apply-offset-rules.ts +9 -11
  184. package/src/utils/gesture/determine-dismissal.ts +18 -69
  185. package/src/utils/gesture/reset-gesture-values.ts +48 -0
  186. package/src/utils/gesture/velocity.ts +144 -0
  187. package/src/utils/reanimated/version.ts +5 -0
  188. package/lib/commonjs/components/bound-capture.js +0 -38
  189. package/lib/commonjs/components/bound-capture.js.map +0 -1
  190. package/lib/commonjs/components/screen-transition-tree.js.map +0 -1
  191. package/lib/commonjs/configs/index.js.map +0 -1
  192. package/lib/commonjs/configs/presets.js.map +0 -1
  193. package/lib/commonjs/configs/specs.js.map +0 -1
  194. package/lib/commonjs/utils/animation/run-transition.js +0 -52
  195. package/lib/commonjs/utils/animation/run-transition.js.map +0 -1
  196. package/lib/module/components/bound-capture.js +0 -33
  197. package/lib/module/components/bound-capture.js.map +0 -1
  198. package/lib/module/components/screen-transition-tree.js.map +0 -1
  199. package/lib/module/configs/index.js.map +0 -1
  200. package/lib/module/configs/presets.js.map +0 -1
  201. package/lib/module/configs/specs.js.map +0 -1
  202. package/lib/module/utils/animation/run-transition.js.map +0 -1
  203. package/lib/typescript/components/bound-capture.d.ts +0 -8
  204. package/lib/typescript/components/bound-capture.d.ts.map +0 -1
  205. package/lib/typescript/components/screen-transition-tree.d.ts.map +0 -1
  206. package/lib/typescript/configs/index.d.ts.map +0 -1
  207. package/lib/typescript/configs/presets.d.ts.map +0 -1
  208. package/lib/typescript/configs/specs.d.ts.map +0 -1
  209. package/lib/typescript/utils/animation/run-transition.d.ts +0 -12
  210. package/lib/typescript/utils/animation/run-transition.d.ts.map +0 -1
  211. package/src/components/bound-capture.tsx +0 -32
  212. package/src/utils/animation/run-transition.ts +0 -52
  213. /package/lib/commonjs/{configs → __configs__}/index.js +0 -0
  214. /package/lib/module/{configs → __configs__}/index.js +0 -0
  215. /package/lib/typescript/{configs → __configs__}/presets.d.ts +0 -0
  216. /package/lib/typescript/{configs → __configs__}/specs.d.ts +0 -0
  217. /package/src/{configs → __configs__}/index.ts +0 -0
@@ -1,5 +1,13 @@
1
1
  import type { ScaledSize } from "react-native";
2
2
  import type { MeasuredDimensions } from "react-native-reanimated";
3
+ import {
4
+ DEFAULT_BUILDER_OPTIONS,
5
+ EMPTY_BOUND_HELPER_RESULT,
6
+ EMPTY_BOUND_HELPER_RESULT_RAW,
7
+ ENTER_RANGE,
8
+ EXIT_RANGE,
9
+ FULLSCREEN_DIMENSIONS,
10
+ } from "../../constants";
3
11
  import type { ScreenTransitionState } from "../../types/animation";
4
12
  import type { BoundsAccessor, BoundsBuilder } from "../../types/bounds";
5
13
  import type { ScreenPhase } from "../../types/core";
@@ -20,7 +28,6 @@ import {
20
28
  composeTransformRelative,
21
29
  type ElementComposeParams,
22
30
  } from "./_utils/style-composers";
23
- import { DEFAULT_BUILDER_OPTIONS, FULLSCREEN_DIMENSIONS } from "./constants";
24
31
 
25
32
  export interface BuildBoundsAccessorParams {
26
33
  activeBoundId: string | null;
@@ -31,20 +38,6 @@ export interface BuildBoundsAccessorParams {
31
38
  dimensions: ScaledSize;
32
39
  }
33
40
 
34
- const EMPTY_STYLE = Object.freeze({});
35
- const EMPTY_STYLE_RAW = Object.freeze({
36
- scaleX: 1,
37
- scaleY: 1,
38
- scale: 1,
39
- translateX: 0,
40
- translateY: 0,
41
- width: 0,
42
- height: 0,
43
- });
44
-
45
- const ENTER_RANGE = [0, 1] as const;
46
- const EXIT_RANGE = [1, 2] as const;
47
-
48
41
  const resolveBounds = (props: {
49
42
  id: string;
50
43
  previous?: ScreenTransitionState;
@@ -114,9 +107,9 @@ const computeBoundStyles = (
114
107
  "worklet";
115
108
  if (!id) {
116
109
  if (computeOptions.raw) {
117
- return EMPTY_STYLE_RAW;
110
+ return EMPTY_BOUND_HELPER_RESULT_RAW;
118
111
  }
119
- return EMPTY_STYLE;
112
+ return EMPTY_BOUND_HELPER_RESULT;
120
113
  }
121
114
 
122
115
  const { start, end, entering } = resolveBounds({
@@ -130,9 +123,9 @@ const computeBoundStyles = (
130
123
 
131
124
  if (!start || !end) {
132
125
  if (computeOptions.raw) {
133
- return EMPTY_STYLE_RAW;
126
+ return EMPTY_BOUND_HELPER_RESULT_RAW;
134
127
  }
135
- return EMPTY_STYLE;
128
+ return EMPTY_BOUND_HELPER_RESULT;
136
129
  }
137
130
 
138
131
  const ranges: readonly [number, number] = entering ? ENTER_RANGE : EXIT_RANGE;
@@ -1,6 +1,15 @@
1
1
  import type { ScaledSize } from "react-native";
2
2
  import type { GestureStateManagerType } from "react-native-gesture-handler/lib/typescript/handlers/gestures/gestureStateManager";
3
3
  import type { SharedValue } from "react-native-reanimated";
4
+ import {
5
+ DEFAULT_ACTIVATION_AREA,
6
+ DEFAULT_EDGE_DISTANCE_HORIZONTAL,
7
+ DEFAULT_EDGE_DISTANCE_VERTICAL,
8
+ GESTURE_ACTIVATION_THRESHOLD_X,
9
+ GESTURE_ACTIVATION_THRESHOLD_Y,
10
+ GESTURE_FAIL_TOLERANCE_X,
11
+ GESTURE_FAIL_TOLERANCE_Y,
12
+ } from "../../constants";
4
13
  import {
5
14
  type ActivationArea,
6
15
  type GestureActivationArea,
@@ -61,17 +70,6 @@ interface ReturnValues {
61
70
  isSwipingLeft: boolean;
62
71
  }
63
72
 
64
- /**
65
- * 10 seems like the correct threshold for compatability with nested gestures outside of our package.
66
- */
67
- const GESTURE_ACTIVATION_THRESHOLD_X = 10;
68
- const GESTURE_ACTIVATION_THRESHOLD_Y = 10;
69
- const GESTURE_FAIL_TOLERANCE_X = 15;
70
- const GESTURE_FAIL_TOLERANCE_Y = 20;
71
- const DEFAULT_EDGE_DISTANCE_HORIZONTAL = 50;
72
- const DEFAULT_EDGE_DISTANCE_VERTICAL = 135;
73
- const DEFAULT_ACTIVATION_AREA = "screen" as const;
74
-
75
73
  function normalizeSides(area?: GestureActivationArea): NormalizedSides {
76
74
  "worklet";
77
75
  if (!area || typeof area === "string") {
@@ -22,10 +22,7 @@ interface DetermineDismissalProps {
22
22
  gestureVelocityImpact: number;
23
23
  }
24
24
 
25
- // Note: we normalize velocity by the axis dimension to map px/s to progress/s.
26
- // This produces consistent behavior across devices and enables realistic bounce.
27
-
28
- const MAX_PROGRESS_VELOCITY = 3.5; // ~3 progress units/second
25
+ import { velocity as V } from "./velocity";
29
26
 
30
27
  const getAxisThreshold = ({
31
28
  translation,
@@ -34,31 +31,14 @@ const getAxisThreshold = ({
34
31
  gestureVelocityImpact,
35
32
  }: GetAxisThresholdProps) => {
36
33
  "worklet";
37
- const finalTranslation = translation + velocity * gestureVelocityImpact;
38
-
39
- return (
40
- Math.abs(finalTranslation) > screenSize / 2 &&
41
- (velocity !== 0 || translation !== 0)
34
+ return V.shouldPassDismissalThreshold(
35
+ translation,
36
+ velocity,
37
+ screenSize,
38
+ gestureVelocityImpact,
42
39
  );
43
40
  };
44
41
 
45
- const getVelocity = (
46
- dimensions: { width: number; height: number },
47
- velocityX: number,
48
- velocityY: number,
49
- dismissAxis: "x" | "y",
50
- ) => {
51
- "worklet";
52
- const axisSize = dismissAxis === "y" ? dimensions.height : dimensions.width;
53
- const axisVelocityPx = dismissAxis === "y" ? velocityY : velocityX;
54
- let velocity = axisVelocityPx / Math.max(1, axisSize);
55
-
56
- if (velocity > MAX_PROGRESS_VELOCITY) velocity = MAX_PROGRESS_VELOCITY;
57
- if (velocity < -MAX_PROGRESS_VELOCITY) velocity = -MAX_PROGRESS_VELOCITY;
58
-
59
- return velocity;
60
- };
61
-
62
42
  export const determineDismissal = ({
63
43
  event,
64
44
  directions,
@@ -68,45 +48,24 @@ export const determineDismissal = ({
68
48
  "worklet";
69
49
 
70
50
  let shouldDismiss: boolean = false;
71
- let dismissAxis: "x" | "y" = "x";
72
51
 
73
- if (directions.vertical && event.translationY > 0) {
74
- const dismiss = getAxisThreshold({
75
- translation: event.translationY,
76
- velocity: event.velocityY,
77
- screenSize: dimensions.height,
78
- gestureVelocityImpact,
79
- });
80
- if (dismiss) {
81
- dismissAxis = "y";
82
- shouldDismiss = true;
83
- }
84
- }
85
- if (directions.verticalInverted && event.translationY < 0) {
52
+ if (
53
+ (directions.vertical && event.translationY > 0) ||
54
+ (directions.verticalInverted && event.translationY < 0)
55
+ ) {
86
56
  const dismiss = getAxisThreshold({
87
57
  translation: event.translationY,
88
58
  velocity: event.velocityY,
89
59
  screenSize: dimensions.height,
90
60
  gestureVelocityImpact,
91
61
  });
92
- if (dismiss) {
93
- dismissAxis = "y";
94
- shouldDismiss = true;
95
- }
96
- }
97
- if (directions.horizontal && event.translationX > 0) {
98
- const dismiss = getAxisThreshold({
99
- translation: event.translationX,
100
- velocity: event.velocityX,
101
- screenSize: dimensions.width,
102
- gestureVelocityImpact,
103
- });
104
- if (dismiss) {
105
- dismissAxis = "x";
106
- shouldDismiss = true;
107
- }
62
+ if (dismiss) shouldDismiss = true;
108
63
  }
109
- if (directions.horizontalInverted && event.translationX < 0) {
64
+
65
+ if (
66
+ (directions.horizontal && event.translationX > 0) ||
67
+ (directions.horizontalInverted && event.translationX < 0)
68
+ ) {
110
69
  const dismiss = getAxisThreshold({
111
70
  translation: event.translationX,
112
71
  velocity: event.velocityX,
@@ -114,18 +73,8 @@ export const determineDismissal = ({
114
73
  gestureVelocityImpact,
115
74
  });
116
75
 
117
- if (dismiss) {
118
- dismissAxis = "x";
119
- shouldDismiss = true;
120
- }
76
+ if (dismiss) shouldDismiss = true;
121
77
  }
122
78
 
123
- const velocity = getVelocity(
124
- dimensions,
125
- event.velocityX,
126
- event.velocityY,
127
- dismissAxis,
128
- );
129
-
130
- return { shouldDismiss, velocity };
79
+ return { shouldDismiss };
131
80
  };
@@ -0,0 +1,48 @@
1
+ import type {
2
+ GestureStateChangeEvent,
3
+ PanGestureHandlerEventPayload,
4
+ } from "react-native-gesture-handler";
5
+ import type { GestureMap } from "../../stores/gestures";
6
+ import type { AnimationConfig } from "../../types/animation";
7
+ import { animate } from "../animation/animate";
8
+ import { velocity } from "./velocity";
9
+
10
+ interface ResetGestureValuesProps {
11
+ spec?: AnimationConfig;
12
+ gestures: GestureMap;
13
+ shouldDismiss: boolean;
14
+ event: GestureStateChangeEvent<PanGestureHandlerEventPayload>;
15
+ dimensions: { width: number; height: number };
16
+ }
17
+
18
+ export const resetGestureValues = ({
19
+ spec,
20
+ gestures,
21
+ shouldDismiss,
22
+ event,
23
+ dimensions,
24
+ }: ResetGestureValuesProps) => {
25
+ "worklet";
26
+
27
+ const vxNorm = velocity.normalize(event.velocityX, dimensions.width);
28
+ const vyNorm = velocity.normalize(event.velocityY, dimensions.height);
29
+
30
+ // Ensure spring starts moving toward zero using normalized gesture values for direction.
31
+ const nx =
32
+ gestures.normalizedX.value ||
33
+ event.translationX / Math.max(1, dimensions.width);
34
+ const ny =
35
+ gestures.normalizedY.value ||
36
+ event.translationY / Math.max(1, dimensions.height);
37
+
38
+ const vxTowardZero = velocity.calculateRestoreVelocity(nx, vxNorm);
39
+ const vyTowardZero = velocity.calculateRestoreVelocity(ny, vyNorm);
40
+
41
+ gestures.x.value = animate(0, { ...spec, velocity: vxTowardZero });
42
+ gestures.y.value = animate(0, { ...spec, velocity: vyTowardZero });
43
+
44
+ gestures.normalizedX.value = animate(0, { ...spec, velocity: vxTowardZero });
45
+ gestures.normalizedY.value = animate(0, { ...spec, velocity: vyTowardZero });
46
+ gestures.isDragging.value = 0;
47
+ gestures.isDismissing.value = Number(shouldDismiss);
48
+ };
@@ -0,0 +1,144 @@
1
+ import type {
2
+ GestureStateChangeEvent,
3
+ PanGestureHandlerEventPayload,
4
+ } from "react-native-gesture-handler";
5
+ import { clamp } from "react-native-reanimated";
6
+ import type { AnimationMap } from "../../stores/animations";
7
+
8
+ interface CalculateProgressProps {
9
+ animations: AnimationMap;
10
+ shouldDismiss: boolean;
11
+ event: GestureStateChangeEvent<PanGestureHandlerEventPayload>;
12
+ dimensions: { width: number; height: number };
13
+ directions: {
14
+ horizontal: boolean;
15
+ horizontalInverted: boolean;
16
+ vertical: boolean;
17
+ verticalInverted: boolean;
18
+ };
19
+ }
20
+
21
+ const MAX_VELOCITY_MAGNITUDE = 3.2;
22
+ const NEAR_ZERO_THRESHOLD = 0.01;
23
+
24
+ /**
25
+ * Converts velocity from pixels/second to normalized units/second (0-1 range)
26
+ * and caps the result for stability
27
+ */
28
+ const normalize = (velocityPixelsPerSecond: number, screenSize: number) => {
29
+ "worklet";
30
+ return clamp(
31
+ velocityPixelsPerSecond / Math.max(1, screenSize),
32
+ -MAX_VELOCITY_MAGNITUDE,
33
+ MAX_VELOCITY_MAGNITUDE,
34
+ );
35
+ };
36
+
37
+ /**
38
+ * Calculates a normalized velocity that moves the current value toward zero.
39
+ * Used for spring-back animations when dismissing gestures.
40
+ */
41
+ const calculateRestoreVelocity = (
42
+ currentValueNormalized: number,
43
+ baseVelocityNormalized: number,
44
+ threshold: number = NEAR_ZERO_THRESHOLD,
45
+ ) => {
46
+ "worklet";
47
+
48
+ if (Math.abs(currentValueNormalized) < threshold) return 0;
49
+
50
+ const directionTowardZero = Math.sign(currentValueNormalized) || 1;
51
+ const clampedVelocity = Math.min(Math.abs(baseVelocityNormalized), 1);
52
+
53
+ return -directionTowardZero * clampedVelocity;
54
+ };
55
+
56
+ const calculateProgressVelocity = ({
57
+ animations,
58
+ shouldDismiss,
59
+ event,
60
+ dimensions,
61
+ directions,
62
+ }: CalculateProgressProps) => {
63
+ "worklet";
64
+
65
+ const currentProgress = animations.progress.value;
66
+ const targetProgress = shouldDismiss ? 0 : 1;
67
+ const progressDelta = targetProgress - currentProgress;
68
+
69
+ const progressDirection = progressDelta === 0 ? 0 : Math.sign(progressDelta);
70
+
71
+ const normalizedVelocityX = normalize(event.velocityX, dimensions.width);
72
+ const normalizedVelocityY = normalize(event.velocityY, dimensions.height);
73
+
74
+ const normalizedTranslationX = Math.abs(
75
+ event.translationX / dimensions.width,
76
+ );
77
+ const normalizedTranslationY = Math.abs(
78
+ event.translationY / dimensions.height,
79
+ );
80
+
81
+ const supportsHorizontalGestures =
82
+ directions.horizontal || directions.horizontalInverted;
83
+
84
+ const supportsVerticalGestures =
85
+ directions.vertical || directions.verticalInverted;
86
+
87
+ let progressVelocityMagnitude = 0;
88
+
89
+ // Determine which axis should drive the progress velocity
90
+ if (
91
+ supportsHorizontalGestures &&
92
+ (!supportsVerticalGestures ||
93
+ normalizedTranslationX >= normalizedTranslationY)
94
+ ) {
95
+ progressVelocityMagnitude = Math.abs(normalizedVelocityX);
96
+ } else if (supportsVerticalGestures) {
97
+ progressVelocityMagnitude = Math.abs(normalizedVelocityY);
98
+ } else {
99
+ progressVelocityMagnitude = Math.max(
100
+ Math.abs(normalizedVelocityX),
101
+ Math.abs(normalizedVelocityY),
102
+ );
103
+ }
104
+
105
+ // Apply direction and clamp to prevent overly energetic springs
106
+ return (
107
+ progressDirection *
108
+ clamp(progressVelocityMagnitude, 0, MAX_VELOCITY_MAGNITUDE)
109
+ );
110
+ };
111
+
112
+ /**
113
+ * Determines if a gesture should trigger dismissal based on combined
114
+ * translation and velocity in normalized screen units (0-1 range).
115
+ *
116
+ * Formula: |translation/screen + clamp(velocity/screen, ±1) * velocityWeight| > 0.5
117
+ */
118
+ const shouldPassDismissalThreshold = (
119
+ translationPixels: number,
120
+ velocityPixelsPerSecond: number,
121
+ screenSize: number,
122
+ velocityWeight: number,
123
+ ) => {
124
+ "worklet";
125
+
126
+ const normalizedTranslation = translationPixels / Math.max(1, screenSize);
127
+ const normalizedVelocity = normalize(velocityPixelsPerSecond, screenSize);
128
+
129
+ const projectedNormalizedPosition =
130
+ normalizedTranslation + normalizedVelocity * velocityWeight;
131
+
132
+ const exceedsThreshold = Math.abs(projectedNormalizedPosition) > 0.5;
133
+
134
+ const hasMovement = translationPixels !== 0 || velocityPixelsPerSecond !== 0;
135
+
136
+ return exceedsThreshold && hasMovement;
137
+ };
138
+
139
+ export const velocity = {
140
+ normalize,
141
+ calculateRestoreVelocity,
142
+ calculateProgressVelocity,
143
+ shouldPassDismissalThreshold,
144
+ };
@@ -0,0 +1,5 @@
1
+ import { reanimatedVersion } from "react-native-reanimated";
2
+
3
+ export const isReanimated4 = () => {
4
+ return reanimatedVersion.split(".")[0] === "4";
5
+ };
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.BoundCapture = void 0;
7
- var _react = require("react");
8
- var _reactNativeGestureHandler = require("react-native-gesture-handler");
9
- var _keys = require("../providers/keys");
10
- var _bounds = require("../stores/bounds");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- const BoundCapture = ({
13
- sharedBoundTag,
14
- children,
15
- measure
16
- }) => {
17
- const {
18
- current
19
- } = (0, _keys.useKeys)();
20
- const routeKey = current.route.key;
21
- const tapGesture = (0, _react.useMemo)(() => {
22
- return _reactNativeGestureHandler.Gesture.Tap().onStart(() => {
23
- "worklet";
24
-
25
- if (sharedBoundTag) {
26
- _bounds.Bounds.setRouteActive(routeKey, sharedBoundTag);
27
- measure();
28
- }
29
- });
30
- }, [sharedBoundTag, measure, routeKey]);
31
- if (!sharedBoundTag) return children;
32
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
33
- gesture: tapGesture,
34
- children: children
35
- });
36
- };
37
- exports.BoundCapture = BoundCapture;
38
- //# sourceMappingURL=bound-capture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_reactNativeGestureHandler","_keys","_bounds","_jsxRuntime","BoundCapture","sharedBoundTag","children","measure","current","useKeys","routeKey","route","key","tapGesture","useMemo","Gesture","Tap","onStart","Bounds","setRouteActive","jsx","GestureDetector","gesture","exports"],"sourceRoot":"../../../src","sources":["components/bound-capture.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAA0C,IAAAI,WAAA,GAAAJ,OAAA;AAQnC,MAAMK,YAAY,GAAGA,CAAC;EAC5BC,cAAc;EACdC,QAAQ;EACRC;AACoB,CAAC,KAAK;EAC1B,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,aAAO,EAAC,CAAC;EAC7B,MAAMC,QAAQ,GAAGF,OAAO,CAACG,KAAK,CAACC,GAAG;EAClC,MAAMC,UAAU,GAAG,IAAAC,cAAO,EAAC,MAAM;IAChC,OAAOC,kCAAO,CAACC,GAAG,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;MAClC,SAAS;;MACT,IAAIZ,cAAc,EAAE;QACnBa,cAAM,CAACC,cAAc,CAACT,QAAQ,EAAEL,cAAc,CAAC;QAC/CE,OAAO,CAAC,CAAC;MACV;IACD,CAAC,CAAC;EACH,CAAC,EAAE,CAACF,cAAc,EAAEE,OAAO,EAAEG,QAAQ,CAAC,CAAC;EAEvC,IAAI,CAACL,cAAc,EAAE,OAAOC,QAAQ;EAEpC,oBAAO,IAAAH,WAAA,CAAAiB,GAAA,EAACpB,0BAAA,CAAAqB,eAAe;IAACC,OAAO,EAAET,UAAW;IAAAP,QAAA,EAAEA;EAAQ,CAAkB,CAAC;AAC1E,CAAC;AAACiB,OAAA,CAAAnB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_gestures","require","_keys","_transitionStyles","_screenLifecycle","_rootTransitionAware","_jsxRuntime","ScreenTransitionTree","previous","current","next","children","jsx","KeysProvider","ScreenGestureProvider","ScreenLifecycleController","TransitionStylesProvider","RootTransitionAware"],"sourceRoot":"../../../src","sources":["components/screen-transition-tree.tsx"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAA8D,IAAAK,WAAA,GAAAL,OAAA;AASvD,SAASM,oBAAoBA,CAAC;EACpCC,QAAQ;EACRC,OAAO;EACPC,IAAI;EACJC;AACM,CAAC,EAAE;EACT,oBACC,IAAAL,WAAA,CAAAM,GAAA,EAACV,KAAA,CAAAW,YAAY;IAACL,QAAQ,EAAEA,QAAS;IAACC,OAAO,EAAEA,OAAQ;IAACC,IAAI,EAAEA,IAAK;IAAAC,QAAA,eAC9D,IAAAL,WAAA,CAAAM,GAAA,EAACZ,SAAA,CAAAc,qBAAqB;MAAAH,QAAA,eACrB,IAAAL,WAAA,CAAAM,GAAA,EAACR,gBAAA,CAAAW,yBAAyB;QAAAJ,QAAA,eACzB,IAAAL,WAAA,CAAAM,GAAA,EAACT,iBAAA,CAAAa,wBAAwB;UAAAL,QAAA,eACxB,IAAAL,WAAA,CAAAM,GAAA,EAACP,oBAAA,CAAAY,mBAAmB;YAAAN,QAAA,EAAEA;UAAQ,CAAsB;QAAC,CAC5B;MAAC,CACD;IAAC,CACN;EAAC,CACX,CAAC;AAEjB","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_presets","require","_specs","specs","exports","DefaultSpec","presets","SlideFromTop","ZoomIn","SlideFromBottom","DraggableCard","ElasticCard","SharedIGImage","SharedAppleMusic","SharedXImage"],"sourceRoot":"../../../src","sources":["configs/index.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAUA,IAAAC,MAAA,GAAAD,OAAA;AAEO,MAAME,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG;EACpBE,WAAW,EAAXA;AACD,CAAC;AAEM,MAAMC,OAAO,GAAAF,OAAA,CAAAE,OAAA,GAAG;EACtBC,YAAY,EAAZA,qBAAY;EACZC,MAAM,EAANA,eAAM;EACNC,eAAe,EAAfA,wBAAe;EACfC,aAAa,EAAbA,sBAAa;EACbC,WAAW,EAAXA,oBAAW;EACXC,aAAa,EAAbA,sBAAa;EACbC,gBAAgB,EAAhBA,yBAAgB;EAChBC,YAAY,EAAZA;AACD,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeReanimated","_specs","platform","Platform","OS","SlideFromTop","config","enableTransitions","gestureEnabled","gestureDirection","screenStyleInterpolator","progress","layouts","screen","height","y","interpolate","contentStyle","transform","translateY","transitionSpec","open","DefaultSpec","close","exports","ZoomIn","scale","Extrapolation","CLAMP","opacity","SlideFromBottom","DraggableCard","current","gesture","normalizedY","translateX","normalizedX","width","ElasticCard","elasticFactor","next","maxElasticityX","maxElasticityY","overlayColor","interpolateColor","overlayStyle","backgroundColor","SharedIGImage","gestureDrivesProgress","bounds","focused","activeBoundId","active","normX","normY","dragX","dragY","dragXScale","dragYScale","boundValues","method","scaleMode","raw","maskedValues","space","target","_ROOT_CONTAINER","_ROOT_MASKED","borderRadius","pointerEvents","isDismissing","scaleX","scaleY","stiffness","damping","mass","overshootClamping","restSpeedThreshold","SharedAppleMusic","anchor","dragMagnitude","Math","max","abs","shadowOpacity","shadowRadius","shadowOffsetY","elevation","IOSShadowStyle","shadowColor","shadowOffset","AndroidShadowStyle","animating","scaledBoundTranslateX","scaledBoundTranslateY","scaledBoundScaleX","scaledBoundScaleY","contentScale","zIndex","position","restDisplacementThreshold","SharedXImage","contentY","overlayClr","x","closing","overflow"],"sourceRoot":"../../../src","sources":["configs/presets.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DefaultSpec","exports","stiffness","damping","mass","overshootClamping","restSpeedThreshold"],"sourceRoot":"../../../src","sources":["configs/specs.ts"],"mappings":";;;;;;AAEO,MAAMA,WAA6B,GAAAC,OAAA,CAAAD,WAAA,GAAG;EAC5CE,SAAS,EAAE,IAAI;EACfC,OAAO,EAAE,GAAG;EACZC,IAAI,EAAE,CAAC;EACPC,iBAAiB,EAAE,IAAI;EACvBC,kBAAkB,EAAE;AACrB,CAAC","ignoreList":[]}
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.runTransition = void 0;
7
- var _reactNativeReanimated = require("react-native-reanimated");
8
- var _animate = require("./animate");
9
- const runTransition = ({
10
- target,
11
- spec,
12
- onFinish,
13
- animations,
14
- velocity
15
- }) => {
16
- "worklet";
17
-
18
- const value = target === "open" ? 1 : 0;
19
- const config = target === "open" ? spec?.open : spec?.close;
20
- const {
21
- progress,
22
- animating,
23
- closing
24
- } = animations;
25
- if (target === "close") {
26
- closing.value = 1;
27
- }
28
- if (!config) {
29
- animating.value = 0;
30
- progress.value = value;
31
- if (onFinish) {
32
- (0, _reactNativeReanimated.runOnJS)(onFinish)(true);
33
- }
34
- return;
35
- }
36
- animating.value = 1;
37
- progress.value = (0, _animate.animate)(value, {
38
- ...config,
39
- velocity
40
- }, finished => {
41
- "worklet";
42
-
43
- if (finished) {
44
- animating.value = 0;
45
- if (onFinish) {
46
- (0, _reactNativeReanimated.runOnJS)(onFinish)(finished);
47
- }
48
- }
49
- });
50
- };
51
- exports.runTransition = runTransition;
52
- //# sourceMappingURL=run-transition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNativeReanimated","require","_animate","runTransition","target","spec","onFinish","animations","velocity","value","config","open","close","progress","animating","closing","runOnJS","animate","finished","exports"],"sourceRoot":"../../../../src","sources":["utils/animation/run-transition.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAD,OAAA;AAUO,MAAME,aAAa,GAAGA,CAAC;EAC7BC,MAAM;EACNC,IAAI;EACJC,QAAQ;EACRC,UAAU;EACVC;AACmB,CAAC,KAAK;EACzB,SAAS;;EACT,MAAMC,KAAK,GAAGL,MAAM,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;EACvC,MAAMM,MAAM,GAAGN,MAAM,KAAK,MAAM,GAAGC,IAAI,EAAEM,IAAI,GAAGN,IAAI,EAAEO,KAAK;EAE3D,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGR,UAAU;EAEnD,IAAIH,MAAM,KAAK,OAAO,EAAE;IACvBW,OAAO,CAACN,KAAK,GAAG,CAAC;EAClB;EAEA,IAAI,CAACC,MAAM,EAAE;IACZI,SAAS,CAACL,KAAK,GAAG,CAAC;IACnBI,QAAQ,CAACJ,KAAK,GAAGA,KAAK;IAEtB,IAAIH,QAAQ,EAAE;MACb,IAAAU,8BAAO,EAACV,QAAQ,CAAC,CAAC,IAAI,CAAC;IACxB;IACA;EACD;EAEAQ,SAAS,CAACL,KAAK,GAAG,CAAC;EAEnBI,QAAQ,CAACJ,KAAK,GAAG,IAAAQ,gBAAO,EAACR,KAAK,EAAE;IAAE,GAAGC,MAAM;IAAEF;EAAS,CAAC,EAAGU,QAAQ,IAAK;IACtE,SAAS;;IACT,IAAIA,QAAQ,EAAE;MACbJ,SAAS,CAACL,KAAK,GAAG,CAAC;MACnB,IAAIH,QAAQ,EAAE;QACb,IAAAU,8BAAO,EAACV,QAAQ,CAAC,CAACY,QAAQ,CAAC;MAC5B;IACD;EACD,CAAC,CAAC;AACH,CAAC;AAACC,OAAA,CAAAhB,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- import { useMemo } from "react";
4
- import { Gesture, GestureDetector } from "react-native-gesture-handler";
5
- import { useKeys } from "../providers/keys";
6
- import { Bounds } from "../stores/bounds";
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- export const BoundCapture = ({
9
- sharedBoundTag,
10
- children,
11
- measure
12
- }) => {
13
- const {
14
- current
15
- } = useKeys();
16
- const routeKey = current.route.key;
17
- const tapGesture = useMemo(() => {
18
- return Gesture.Tap().onStart(() => {
19
- "worklet";
20
-
21
- if (sharedBoundTag) {
22
- Bounds.setRouteActive(routeKey, sharedBoundTag);
23
- measure();
24
- }
25
- });
26
- }, [sharedBoundTag, measure, routeKey]);
27
- if (!sharedBoundTag) return children;
28
- return /*#__PURE__*/_jsx(GestureDetector, {
29
- gesture: tapGesture,
30
- children: children
31
- });
32
- };
33
- //# sourceMappingURL=bound-capture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useMemo","Gesture","GestureDetector","useKeys","Bounds","jsx","_jsx","BoundCapture","sharedBoundTag","children","measure","current","routeKey","route","key","tapGesture","Tap","onStart","setRouteActive","gesture"],"sourceRoot":"../../../src","sources":["components/bound-capture.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA8B;AACvE,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,MAAM,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ1C,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAC5BC,cAAc;EACdC,QAAQ;EACRC;AACoB,CAAC,KAAK;EAC1B,MAAM;IAAEC;EAAQ,CAAC,GAAGR,OAAO,CAAC,CAAC;EAC7B,MAAMS,QAAQ,GAAGD,OAAO,CAACE,KAAK,CAACC,GAAG;EAClC,MAAMC,UAAU,GAAGf,OAAO,CAAC,MAAM;IAChC,OAAOC,OAAO,CAACe,GAAG,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;MAClC,SAAS;;MACT,IAAIT,cAAc,EAAE;QACnBJ,MAAM,CAACc,cAAc,CAACN,QAAQ,EAAEJ,cAAc,CAAC;QAC/CE,OAAO,CAAC,CAAC;MACV;IACD,CAAC,CAAC;EACH,CAAC,EAAE,CAACF,cAAc,EAAEE,OAAO,EAAEE,QAAQ,CAAC,CAAC;EAEvC,IAAI,CAACJ,cAAc,EAAE,OAAOC,QAAQ;EAEpC,oBAAOH,IAAA,CAACJ,eAAe;IAACiB,OAAO,EAAEJ,UAAW;IAAAN,QAAA,EAAEA;EAAQ,CAAkB,CAAC;AAC1E,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["ScreenGestureProvider","KeysProvider","TransitionStylesProvider","ScreenLifecycleController","RootTransitionAware","jsx","_jsx","ScreenTransitionTree","previous","current","next","children"],"sourceRoot":"../../../src","sources":["components/screen-transition-tree.tsx"],"mappings":";;AACA,SAASA,qBAAqB,QAAQ,uBAAuB;AAC7D,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,wBAAwB,QAAQ,gCAAgC;AAEzE,SAASC,yBAAyB,QAAQ,gCAAgC;AAC1E,SAASC,mBAAmB,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS9D,OAAO,SAASC,oBAAoBA,CAAC;EACpCC,QAAQ;EACRC,OAAO;EACPC,IAAI;EACJC;AACM,CAAC,EAAE;EACT,oBACCL,IAAA,CAACL,YAAY;IAACO,QAAQ,EAAEA,QAAS;IAACC,OAAO,EAAEA,OAAQ;IAACC,IAAI,EAAEA,IAAK;IAAAC,QAAA,eAC9DL,IAAA,CAACN,qBAAqB;MAAAW,QAAA,eACrBL,IAAA,CAACH,yBAAyB;QAAAQ,QAAA,eACzBL,IAAA,CAACJ,wBAAwB;UAAAS,QAAA,eACxBL,IAAA,CAACF,mBAAmB;YAAAO,QAAA,EAAEA;UAAQ,CAAsB;QAAC,CAC5B;MAAC,CACD;IAAC,CACN;EAAC,CACX,CAAC;AAEjB","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DraggableCard","ElasticCard","SharedAppleMusic","SharedIGImage","SharedXImage","SlideFromBottom","SlideFromTop","ZoomIn","DefaultSpec","specs","presets"],"sourceRoot":"../../../src","sources":["configs/index.ts"],"mappings":";;AAAA,SACCA,aAAa,EACbC,WAAW,EACXC,gBAAgB,EAChBC,aAAa,EACbC,YAAY,EACZC,eAAe,EACfC,YAAY,EACZC,MAAM,QACA,WAAW;AAClB,SAASC,WAAW,QAAQ,SAAS;AAErC,OAAO,MAAMC,KAAK,GAAG;EACpBD;AACD,CAAC;AAED,OAAO,MAAME,OAAO,GAAG;EACtBJ,YAAY;EACZC,MAAM;EACNF,eAAe;EACfL,aAAa;EACbC,WAAW;EACXE,aAAa;EACbD,gBAAgB;EAChBE;AACD,CAAC","ignoreList":[]}