react-native-screen-transitions 3.2.1 → 3.3.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/shared/components/create-transition-aware-component.js +8 -2
  3. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  4. package/lib/commonjs/shared/components/{root-transition-aware.js → screen-container.js} +28 -12
  5. package/lib/commonjs/shared/components/screen-container.js.map +1 -0
  6. package/lib/commonjs/shared/configs/presets.js +3 -3
  7. package/lib/commonjs/shared/configs/presets.js.map +1 -1
  8. package/lib/commonjs/shared/configs/specs.js +6 -1
  9. package/lib/commonjs/shared/configs/specs.js.map +1 -1
  10. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +36 -188
  11. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  12. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js +334 -0
  13. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -0
  14. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +47 -4
  15. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  16. package/lib/commonjs/shared/hooks/lifecycle/use-close-transition.js +3 -3
  17. package/lib/commonjs/shared/hooks/lifecycle/use-close-transition.js.map +1 -1
  18. package/lib/commonjs/shared/hooks/lifecycle/use-open-transition.js +25 -3
  19. package/lib/commonjs/shared/hooks/lifecycle/use-open-transition.js.map +1 -1
  20. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js +61 -2
  21. package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -1
  22. package/lib/commonjs/shared/hooks/use-backdrop-pointer-events.js +32 -0
  23. package/lib/commonjs/shared/hooks/use-backdrop-pointer-events.js.map +1 -0
  24. package/lib/commonjs/shared/providers/gestures.provider.js +4 -2
  25. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  26. package/lib/commonjs/shared/providers/screen/screen-composer.js +2 -2
  27. package/lib/commonjs/shared/providers/screen/screen-composer.js.map +1 -1
  28. package/lib/commonjs/shared/utils/animation/{start-screen-transition.js → animate-to-progress.js} +11 -7
  29. package/lib/commonjs/shared/utils/animation/animate-to-progress.js.map +1 -0
  30. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js +71 -0
  31. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  32. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js +56 -0
  33. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js.map +1 -0
  34. package/lib/commonjs/shared/utils/gesture/validate-snap-points.js +31 -0
  35. package/lib/commonjs/shared/utils/gesture/validate-snap-points.js.map +1 -0
  36. package/lib/commonjs/shared/utils/gesture/velocity.js +11 -0
  37. package/lib/commonjs/shared/utils/gesture/velocity.js.map +1 -1
  38. package/lib/module/shared/components/create-transition-aware-component.js +8 -2
  39. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  40. package/lib/module/shared/components/screen-container.js +64 -0
  41. package/lib/module/shared/components/screen-container.js.map +1 -0
  42. package/lib/module/shared/configs/presets.js +3 -3
  43. package/lib/module/shared/configs/presets.js.map +1 -1
  44. package/lib/module/shared/configs/specs.js +5 -0
  45. package/lib/module/shared/configs/specs.js.map +1 -1
  46. package/lib/module/shared/hooks/gestures/use-build-gestures.js +36 -187
  47. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  48. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +328 -0
  49. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -0
  50. package/lib/module/shared/hooks/gestures/use-scroll-registry.js +47 -4
  51. package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  52. package/lib/module/shared/hooks/lifecycle/use-close-transition.js +3 -3
  53. package/lib/module/shared/hooks/lifecycle/use-close-transition.js.map +1 -1
  54. package/lib/module/shared/hooks/lifecycle/use-open-transition.js +25 -3
  55. package/lib/module/shared/hooks/lifecycle/use-open-transition.js.map +1 -1
  56. package/lib/module/shared/hooks/navigation/use-screen-state.js +63 -4
  57. package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -1
  58. package/lib/module/shared/hooks/use-backdrop-pointer-events.js +28 -0
  59. package/lib/module/shared/hooks/use-backdrop-pointer-events.js.map +1 -0
  60. package/lib/module/shared/providers/gestures.provider.js +4 -2
  61. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  62. package/lib/module/shared/providers/screen/screen-composer.js +2 -2
  63. package/lib/module/shared/providers/screen/screen-composer.js.map +1 -1
  64. package/lib/module/shared/utils/animation/{start-screen-transition.js → animate-to-progress.js} +9 -5
  65. package/lib/module/shared/utils/animation/animate-to-progress.js.map +1 -0
  66. package/lib/module/shared/utils/gesture/check-gesture-activation.js +70 -0
  67. package/lib/module/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  68. package/lib/module/shared/utils/gesture/determine-snap-target.js +52 -0
  69. package/lib/module/shared/utils/gesture/determine-snap-target.js.map +1 -0
  70. package/lib/module/shared/utils/gesture/validate-snap-points.js +26 -0
  71. package/lib/module/shared/utils/gesture/validate-snap-points.js.map +1 -0
  72. package/lib/module/shared/utils/gesture/velocity.js +11 -0
  73. package/lib/module/shared/utils/gesture/velocity.js.map +1 -1
  74. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  75. package/lib/typescript/shared/components/screen-container.d.ts +6 -0
  76. package/lib/typescript/shared/components/screen-container.d.ts.map +1 -0
  77. package/lib/typescript/shared/configs/specs.d.ts +1 -0
  78. package/lib/typescript/shared/configs/specs.d.ts.map +1 -1
  79. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +1 -1
  80. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  81. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +34 -0
  82. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -0
  83. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts +5 -1
  84. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
  85. package/lib/typescript/shared/hooks/lifecycle/use-open-transition.d.ts.map +1 -1
  86. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts +14 -0
  87. package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -1
  88. package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts +15 -0
  89. package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts.map +1 -0
  90. package/lib/typescript/shared/providers/gestures.provider.d.ts +1 -0
  91. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  92. package/lib/typescript/shared/types/animation.types.d.ts +28 -2
  93. package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
  94. package/lib/typescript/shared/types/screen.types.d.ts +26 -0
  95. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  96. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts +19 -0
  97. package/lib/typescript/shared/utils/animation/animate-to-progress.d.ts.map +1 -0
  98. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts +24 -0
  99. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts.map +1 -1
  100. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts +26 -0
  101. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts.map +1 -0
  102. package/lib/typescript/shared/utils/gesture/validate-snap-points.d.ts +13 -0
  103. package/lib/typescript/shared/utils/gesture/validate-snap-points.d.ts.map +1 -0
  104. package/lib/typescript/shared/utils/gesture/velocity.d.ts +1 -0
  105. package/lib/typescript/shared/utils/gesture/velocity.d.ts.map +1 -1
  106. package/package.json +3 -2
  107. package/src/shared/__tests__/determine-snap-target.test.ts +268 -0
  108. package/src/shared/__tests__/gesture-activation.test.ts +247 -0
  109. package/src/shared/__tests__/validate-snap-points.test.ts +125 -0
  110. package/src/shared/components/create-transition-aware-component.tsx +11 -1
  111. package/src/shared/components/screen-container.tsx +65 -0
  112. package/src/shared/configs/presets.ts +3 -3
  113. package/src/shared/configs/specs.ts +6 -0
  114. package/src/shared/hooks/gestures/use-build-gestures.tsx +33 -253
  115. package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +436 -0
  116. package/src/shared/hooks/gestures/use-scroll-registry.tsx +52 -1
  117. package/src/shared/hooks/lifecycle/use-close-transition.ts +3 -3
  118. package/src/shared/hooks/lifecycle/use-open-transition.ts +27 -3
  119. package/src/shared/hooks/navigation/use-screen-state.tsx +106 -2
  120. package/src/shared/hooks/use-backdrop-pointer-events.ts +32 -0
  121. package/src/shared/providers/gestures.provider.tsx +3 -2
  122. package/src/shared/providers/screen/screen-composer.tsx +2 -2
  123. package/src/shared/types/animation.types.ts +29 -2
  124. package/src/shared/types/screen.types.ts +29 -0
  125. package/src/shared/utils/animation/{start-screen-transition.ts → animate-to-progress.ts} +19 -7
  126. package/src/shared/utils/gesture/check-gesture-activation.ts +78 -0
  127. package/src/shared/utils/gesture/determine-snap-target.ts +75 -0
  128. package/src/shared/utils/gesture/validate-snap-points.ts +37 -0
  129. package/src/shared/utils/gesture/velocity.ts +10 -0
  130. package/lib/commonjs/shared/components/root-transition-aware.js.map +0 -1
  131. package/lib/commonjs/shared/hooks/use-stack-pointer-events.js +0 -23
  132. package/lib/commonjs/shared/hooks/use-stack-pointer-events.js.map +0 -1
  133. package/lib/commonjs/shared/utils/animation/start-screen-transition.js.map +0 -1
  134. package/lib/module/shared/components/root-transition-aware.js +0 -48
  135. package/lib/module/shared/components/root-transition-aware.js.map +0 -1
  136. package/lib/module/shared/hooks/use-stack-pointer-events.js +0 -20
  137. package/lib/module/shared/hooks/use-stack-pointer-events.js.map +0 -1
  138. package/lib/module/shared/utils/animation/start-screen-transition.js.map +0 -1
  139. package/lib/typescript/shared/components/root-transition-aware.d.ts +0 -6
  140. package/lib/typescript/shared/components/root-transition-aware.d.ts.map +0 -1
  141. package/lib/typescript/shared/hooks/use-stack-pointer-events.d.ts +0 -10
  142. package/lib/typescript/shared/hooks/use-stack-pointer-events.d.ts.map +0 -1
  143. package/lib/typescript/shared/utils/animation/start-screen-transition.d.ts +0 -13
  144. package/lib/typescript/shared/utils/animation/start-screen-transition.d.ts.map +0 -1
  145. package/src/shared/components/root-transition-aware.tsx +0 -49
  146. package/src/shared/hooks/use-stack-pointer-events.ts +0 -15
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- import { useStackCoreContext } from "../providers/stack/core.provider";
4
- import { StackType } from "../types/stack.types";
5
-
6
- /**
7
- * Hook that returns the appropriate pointer events value based on current stack type.
8
- *
9
- * - Component stack: "box-none" (allows touch pass-through to content behind)
10
- * - Other stacks: undefined (default behavior, view receives touches)
11
- *
12
- * Must be used within a StackCoreProvider.
13
- */
14
- export function useStackPointerEvents() {
15
- const {
16
- flags
17
- } = useStackCoreContext();
18
- return flags.STACK_TYPE === StackType.COMPONENT ? "box-none" : undefined;
19
- }
20
- //# sourceMappingURL=use-stack-pointer-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useStackCoreContext","StackType","useStackPointerEvents","flags","STACK_TYPE","COMPONENT","undefined"],"sourceRoot":"../../../../src","sources":["shared/hooks/use-stack-pointer-events.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,kCAAkC;AACtE,SAASC,SAAS,QAAQ,sBAAsB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAA,EAA2B;EAC/D,MAAM;IAAEC;EAAM,CAAC,GAAGH,mBAAmB,CAAC,CAAC;EACvC,OAAOG,KAAK,CAACC,UAAU,KAAKH,SAAS,CAACI,SAAS,GAAG,UAAU,GAAGC,SAAS;AACzE","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["runOnJS","FALSE","TRUE","animate","startScreenTransition","target","spec","onAnimationFinish","animations","initialVelocity","value","config","open","close","isSpringConfig","effectiveConfig","velocity","progress","animating","closing","entering","set","finished"],"sourceRoot":"../../../../../src","sources":["shared/utils/animation/start-screen-transition.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,yBAAyB;AACjD,SAASC,KAAK,EAAEC,IAAI,QAAQ,iBAAiB;AAG7C,SAASC,OAAO,QAAQ,WAAW;AAWnC,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACrCC,MAAM;EACNC,IAAI;EACJC,iBAAiB;EACjBC,UAAU;EACVC;AAC2B,CAAC,KAAK;EACjC,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,MAAMC,cAAc,GACnB,CAAC,CAACH,MAAM,IAAI,EAAE,UAAU,IAAIA,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAIA,MAAM,CAAC;EAE7D,MAAMI,eAAe,GACpBD,cAAc,IAAI,OAAOL,eAAe,KAAK,QAAQ,GAClD;IAAE,GAAGE,MAAM;IAAEK,QAAQ,EAAEP;EAAgB,CAAC,GACxCE,MAAM;EAEV,MAAM;IAAEM,QAAQ;IAAEC,SAAS;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGZ,UAAU;EAE7D,IAAIH,MAAM,KAAK,OAAO,EAAE;IACvBc,OAAO,CAACE,GAAG,CAACnB,IAAI,CAAC;IACjBkB,QAAQ,CAACC,GAAG,CAACpB,KAAK,CAAC;EACpB,CAAC,MAAM;IACNmB,QAAQ,CAACC,GAAG,CAACnB,IAAI,CAAC;EACnB;EAEA,IAAI,CAACS,MAAM,EAAE;IACZO,SAAS,CAACG,GAAG,CAACpB,KAAK,CAAC;IACpBgB,QAAQ,CAACI,GAAG,CAACX,KAAK,CAAC;IAEnB,IAAIH,iBAAiB,EAAE;MACtBP,OAAO,CAACO,iBAAiB,CAAC,CAAC,IAAI,CAAC;IACjC;IACA;EACD;EAEAW,SAAS,CAACG,GAAG,CAACnB,IAAI,CAAC,CAAC,CAAC;EACrBe,QAAQ,CAACI,GAAG,CACXlB,OAAO,CAACO,KAAK,EAAEK,eAAe,EAAGO,QAAQ,IAAK;IAC7C,SAAS;;IACT,IAAI,CAACA,QAAQ,EAAE;IAEf,IAAIf,iBAAiB,EAAE;MACtBP,OAAO,CAACO,iBAAiB,CAAC,CAACe,QAAQ,CAAC;IACrC;IAEAJ,SAAS,CAACG,GAAG,CAACpB,KAAK,CAAC;EACrB,CAAC,CACF,CAAC;AACF,CAAC","ignoreList":[]}
@@ -1,6 +0,0 @@
1
- type Props = {
2
- children: React.ReactNode;
3
- };
4
- export declare const RootTransitionAware: import("react").MemoExoticComponent<({ children }: Props) => import("react/jsx-runtime").JSX.Element>;
5
- export {};
6
- //# sourceMappingURL=root-transition-aware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root-transition-aware.d.ts","sourceRoot":"","sources":["../../../../src/shared/components/root-transition-aware.tsx"],"names":[],"mappings":"AAOA,KAAK,KAAK,GAAG;IACZ,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,qDAAuB,KAAK,6CA4B1D,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Hook that returns the appropriate pointer events value based on current stack type.
3
- *
4
- * - Component stack: "box-none" (allows touch pass-through to content behind)
5
- * - Other stacks: undefined (default behavior, view receives touches)
6
- *
7
- * Must be used within a StackCoreProvider.
8
- */
9
- export declare function useStackPointerEvents(): "box-none" | undefined;
10
- //# sourceMappingURL=use-stack-pointer-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-stack-pointer-events.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/use-stack-pointer-events.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,GAAG,SAAS,CAG9D"}
@@ -1,13 +0,0 @@
1
- import type { AnimationStoreMap } from "../../stores/animation.store";
2
- import type { TransitionSpec } from "../../types/animation.types";
3
- interface StartScreenTransitionProps {
4
- target: "open" | "close";
5
- spec?: TransitionSpec;
6
- onAnimationFinish?: (finished: boolean) => void;
7
- animations: AnimationStoreMap;
8
- /** Optional initial velocity for spring-based progress (units: progress/sec). */
9
- initialVelocity?: number;
10
- }
11
- export declare const startScreenTransition: ({ target, spec, onAnimationFinish, animations, initialVelocity, }: StartScreenTransitionProps) => void;
12
- export {};
13
- //# sourceMappingURL=start-screen-transition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-screen-transition.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/animation/start-screen-transition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,UAAU,0BAA0B;IACnC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,iBAAiB,CAAC;IAC9B,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,qBAAqB,GAAI,mEAMnC,0BAA0B,SA6C5B,CAAC"}
@@ -1,49 +0,0 @@
1
- import { memo } from "react";
2
- import { StyleSheet, View } from "react-native";
3
- import Animated, { useAnimatedStyle } from "react-native-reanimated";
4
- import { NO_STYLES } from "../constants";
5
- import { useStackPointerEvents } from "../hooks/use-stack-pointer-events";
6
- import { useScreenStyles } from "../providers/screen/styles.provider";
7
-
8
- type Props = {
9
- children: React.ReactNode;
10
- };
11
-
12
- export const RootTransitionAware = memo(({ children }: Props) => {
13
- const { stylesMap } = useScreenStyles();
14
- const pointerEvents = useStackPointerEvents();
15
-
16
- const animatedContentStyle = useAnimatedStyle(() => {
17
- "worklet";
18
- return stylesMap.value.contentStyle || NO_STYLES;
19
- });
20
-
21
- const animatedOverlayStyle = useAnimatedStyle(() => {
22
- "worklet";
23
- return stylesMap.value.overlayStyle || NO_STYLES;
24
- });
25
-
26
- return (
27
- <View style={[styles.container]} pointerEvents={pointerEvents}>
28
- <Animated.View
29
- style={[StyleSheet.absoluteFillObject, animatedOverlayStyle]}
30
- pointerEvents="none"
31
- />
32
- <Animated.View
33
- style={[styles.content, animatedContentStyle]}
34
- pointerEvents={pointerEvents}
35
- >
36
- {children}
37
- </Animated.View>
38
- </View>
39
- );
40
- });
41
-
42
- const styles = StyleSheet.create({
43
- container: {
44
- flex: 1,
45
- },
46
- content: {
47
- flex: 1,
48
- },
49
- });
@@ -1,15 +0,0 @@
1
- import { useStackCoreContext } from "../providers/stack/core.provider";
2
- import { StackType } from "../types/stack.types";
3
-
4
- /**
5
- * Hook that returns the appropriate pointer events value based on current stack type.
6
- *
7
- * - Component stack: "box-none" (allows touch pass-through to content behind)
8
- * - Other stacks: undefined (default behavior, view receives touches)
9
- *
10
- * Must be used within a StackCoreProvider.
11
- */
12
- export function useStackPointerEvents(): "box-none" | undefined {
13
- const { flags } = useStackCoreContext();
14
- return flags.STACK_TYPE === StackType.COMPONENT ? "box-none" : undefined;
15
- }