react-native-screen-transitions 2.3.4 → 2.4.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 (76) hide show
  1. package/README.md +11 -8
  2. package/lib/commonjs/__configs__/presets.js +10 -5
  3. package/lib/commonjs/__configs__/presets.js.map +1 -1
  4. package/lib/commonjs/constants.js +2 -1
  5. package/lib/commonjs/constants.js.map +1 -1
  6. package/lib/commonjs/hooks/animation/use-screen-animation.js +2 -1
  7. package/lib/commonjs/hooks/animation/use-screen-animation.js.map +1 -1
  8. package/lib/commonjs/hooks/bounds/use-bound-registry.js +10 -8
  9. package/lib/commonjs/hooks/bounds/use-bound-registry.js.map +1 -1
  10. package/lib/commonjs/hooks/gestures/use-build-gestures.js +17 -10
  11. package/lib/commonjs/hooks/gestures/use-build-gestures.js.map +1 -1
  12. package/lib/commonjs/hooks/use-stable-callback-value.js +64 -0
  13. package/lib/commonjs/hooks/use-stable-callback-value.js.map +1 -0
  14. package/lib/commonjs/stores/gestures.js +2 -1
  15. package/lib/commonjs/stores/gestures.js.map +1 -1
  16. package/lib/commonjs/utils/bounds/_utils/styles.js +58 -0
  17. package/lib/commonjs/utils/bounds/_utils/styles.js.map +1 -0
  18. package/lib/commonjs/utils/gesture/reset-gesture-values.js +14 -4
  19. package/lib/commonjs/utils/gesture/reset-gesture-values.js.map +1 -1
  20. package/lib/commonjs/utils/gesture/velocity.js +2 -2
  21. package/lib/commonjs/utils/gesture/velocity.js.map +1 -1
  22. package/lib/module/__configs__/presets.js +10 -5
  23. package/lib/module/__configs__/presets.js.map +1 -1
  24. package/lib/module/constants.js +2 -1
  25. package/lib/module/constants.js.map +1 -1
  26. package/lib/module/hooks/animation/use-screen-animation.js +2 -1
  27. package/lib/module/hooks/animation/use-screen-animation.js.map +1 -1
  28. package/lib/module/hooks/bounds/use-bound-registry.js +11 -9
  29. package/lib/module/hooks/bounds/use-bound-registry.js.map +1 -1
  30. package/lib/module/hooks/gestures/use-build-gestures.js +18 -11
  31. package/lib/module/hooks/gestures/use-build-gestures.js.map +1 -1
  32. package/lib/module/hooks/use-stable-callback-value.js +60 -0
  33. package/lib/module/hooks/use-stable-callback-value.js.map +1 -0
  34. package/lib/module/stores/gestures.js +2 -1
  35. package/lib/module/stores/gestures.js.map +1 -1
  36. package/lib/module/utils/bounds/_utils/styles.js +54 -0
  37. package/lib/module/utils/bounds/_utils/styles.js.map +1 -0
  38. package/lib/module/utils/gesture/reset-gesture-values.js +14 -4
  39. package/lib/module/utils/gesture/reset-gesture-values.js.map +1 -1
  40. package/lib/module/utils/gesture/velocity.js +2 -2
  41. package/lib/module/utils/gesture/velocity.js.map +1 -1
  42. package/lib/typescript/__configs__/presets.d.ts.map +1 -1
  43. package/lib/typescript/constants.d.ts.map +1 -1
  44. package/lib/typescript/hooks/animation/use-screen-animation.d.ts.map +1 -1
  45. package/lib/typescript/hooks/bounds/use-bound-registry.d.ts.map +1 -1
  46. package/lib/typescript/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  47. package/lib/typescript/hooks/use-stable-callback-value.d.ts +13 -0
  48. package/lib/typescript/hooks/use-stable-callback-value.d.ts.map +1 -0
  49. package/lib/typescript/stores/gestures.d.ts +2 -0
  50. package/lib/typescript/stores/gestures.d.ts.map +1 -1
  51. package/lib/typescript/types/animation.d.ts +10 -9
  52. package/lib/typescript/types/animation.d.ts.map +1 -1
  53. package/lib/typescript/types/gesture.d.ts +4 -0
  54. package/lib/typescript/types/gesture.d.ts.map +1 -1
  55. package/lib/typescript/types/utils.d.ts.map +1 -1
  56. package/lib/typescript/utils/bounds/_utils/styles.d.ts +8 -0
  57. package/lib/typescript/utils/bounds/_utils/styles.d.ts.map +1 -0
  58. package/lib/typescript/utils/gesture/reset-gesture-values.d.ts.map +1 -1
  59. package/lib/typescript/utils/gesture/velocity.d.ts +1 -1
  60. package/lib/typescript/utils/gesture/velocity.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/src/__configs__/presets.ts +23 -7
  63. package/src/__tests__/determine-dismissal.test.ts +121 -0
  64. package/src/__tests__/gesture.velocity.test.ts +138 -0
  65. package/src/constants.ts +2 -0
  66. package/src/hooks/animation/use-screen-animation.tsx +1 -0
  67. package/src/hooks/bounds/use-bound-registry.tsx +9 -13
  68. package/src/hooks/gestures/use-build-gestures.tsx +21 -37
  69. package/src/hooks/use-stable-callback-value.tsx +68 -0
  70. package/src/stores/gestures.ts +5 -0
  71. package/src/types/animation.ts +10 -9
  72. package/src/types/gesture.ts +4 -0
  73. package/src/types/utils.ts +1 -0
  74. package/src/utils/bounds/_utils/styles.ts +69 -0
  75. package/src/utils/gesture/reset-gesture-values.ts +23 -4
  76. package/src/utils/gesture/velocity.ts +1 -2
@@ -1 +1 @@
1
- {"version":3,"names":["makeMutable","store","ensure","routeKey","bag","x","y","normalizedX","normalizedY","isDismissing","isDragging","getGesture","gestureKey","getRouteGestures","clear","Gestures"],"sourceRoot":"../../../src","sources":["stores/gestures.ts"],"mappings":";;AAAA,SAASA,WAAW,QAA0B,yBAAyB;AAoBvE,MAAMC,KAAoC,GAAG,CAAC,CAAC;AAE/C,SAASC,MAAMA,CAACC,QAAmB,EAAc;EAChD,IAAIC,GAAG,GAAGH,KAAK,CAACE,QAAQ,CAAC;EACzB,IAAI,CAACC,GAAG,EAAE;IACTA,GAAG,GAAG;MACLC,CAAC,EAAEL,WAAW,CAAC,CAAC,CAAC;MACjBM,CAAC,EAAEN,WAAW,CAAC,CAAC,CAAC;MACjBO,WAAW,EAAEP,WAAW,CAAC,CAAC,CAAC;MAC3BQ,WAAW,EAAER,WAAW,CAAC,CAAC,CAAC;MAC3BS,YAAY,EAAET,WAAW,CAAC,CAAC,CAAC;MAC5BU,UAAU,EAAEV,WAAW,CAAC,CAAC;IAC1B,CAAC;IACDC,KAAK,CAACE,QAAQ,CAAC,GAAGC,GAAG;EACtB;EACA,OAAOA,GAAG;AACX;AAEA,SAASO,UAAUA,CAACR,QAAmB,EAAES,UAAsB,EAAE;EAChE,OAAOV,MAAM,CAACC,QAAQ,CAAC,CAACS,UAAU,CAAC;AACpC;AAEA,SAASC,gBAAgBA,CAACV,QAAmB,EAAE;EAC9C,OAAOD,MAAM,CAACC,QAAQ,CAAC;AACxB;AAEA,SAASW,KAAKA,CAACX,QAAmB,EAAE;EACnC,OAAOF,KAAK,CAACE,QAAQ,CAAC;AACvB;AAEA,OAAO,MAAMY,QAAQ,GAAG;EACvBJ,UAAU;EACVE,gBAAgB;EAChBC;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["makeMutable","store","ensure","routeKey","bag","x","y","normalizedX","normalizedY","isDismissing","isDragging","direction","getGesture","gestureKey","getRouteGestures","clear","Gestures"],"sourceRoot":"../../../src","sources":["stores/gestures.ts"],"mappings":";;AAAA,SAASA,WAAW,QAA0B,yBAAyB;AAsBvE,MAAMC,KAAoC,GAAG,CAAC,CAAC;AAE/C,SAASC,MAAMA,CAACC,QAAmB,EAAc;EAChD,IAAIC,GAAG,GAAGH,KAAK,CAACE,QAAQ,CAAC;EACzB,IAAI,CAACC,GAAG,EAAE;IACTA,GAAG,GAAG;MACLC,CAAC,EAAEL,WAAW,CAAC,CAAC,CAAC;MACjBM,CAAC,EAAEN,WAAW,CAAC,CAAC,CAAC;MACjBO,WAAW,EAAEP,WAAW,CAAC,CAAC,CAAC;MAC3BQ,WAAW,EAAER,WAAW,CAAC,CAAC,CAAC;MAC3BS,YAAY,EAAET,WAAW,CAAC,CAAC,CAAC;MAC5BU,UAAU,EAAEV,WAAW,CAAC,CAAC,CAAC;MAC1BW,SAAS,EAAEX,WAAW,CACrB,IACD;IACD,CAAC;IACDC,KAAK,CAACE,QAAQ,CAAC,GAAGC,GAAG;EACtB;EACA,OAAOA,GAAG;AACX;AAEA,SAASQ,UAAUA,CAACT,QAAmB,EAAEU,UAAsB,EAAE;EAChE,OAAOX,MAAM,CAACC,QAAQ,CAAC,CAACU,UAAU,CAAC;AACpC;AAEA,SAASC,gBAAgBA,CAACX,QAAmB,EAAE;EAC9C,OAAOD,MAAM,CAACC,QAAQ,CAAC;AACxB;AAEA,SAASY,KAAKA,CAACZ,QAAmB,EAAE;EACnC,OAAOF,KAAK,CAACE,QAAQ,CAAC;AACvB;AAEA,OAAO,MAAMa,QAAQ,GAAG;EACvBJ,UAAU;EACVE,gBAAgB;EAChBC;AACD,CAAC","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ import { isSharedValue } from "react-native-reanimated";
4
+ function mergeStyleArrays(style) {
5
+ "worklet";
6
+
7
+ // Early returns for non-objects
8
+ if (style === null || style === undefined || typeof style !== "object") {
9
+ return style;
10
+ }
11
+
12
+ // If not an array, return as-is
13
+ if (!Array.isArray(style)) {
14
+ return style;
15
+ }
16
+
17
+ // Merge array of styles into single object
18
+ const merged = {};
19
+ for (let i = 0; i < style.length; i++) {
20
+ const currentStyle = mergeStyleArrays(style[i]);
21
+ if (currentStyle && typeof currentStyle === "object") {
22
+ Object.assign(merged, currentStyle);
23
+ }
24
+ }
25
+ return merged;
26
+ }
27
+ function stripNonSerializable(value) {
28
+ if (isSharedValue(value)) return value;
29
+ if (Array.isArray(value)) {
30
+ return value.map(stripNonSerializable);
31
+ }
32
+ if (value && typeof value === "object") {
33
+ const cleaned = {};
34
+ for (const key in value) {
35
+ if (key === "current") continue;
36
+ const cleanedValue = stripNonSerializable(value[key]);
37
+ if (cleanedValue !== undefined) {
38
+ cleaned[key] = cleanedValue;
39
+ }
40
+ }
41
+ return cleaned;
42
+ }
43
+ if (typeof value === "function") {
44
+ return undefined;
45
+ }
46
+ return value;
47
+ }
48
+ export function prepareStyleForBounds(style) {
49
+ if (!style) return {};
50
+ const flattened = mergeStyleArrays(style);
51
+ const serializable = stripNonSerializable(flattened);
52
+ return serializable || {};
53
+ }
54
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isSharedValue","mergeStyleArrays","style","undefined","Array","isArray","merged","i","length","currentStyle","Object","assign","stripNonSerializable","value","map","cleaned","key","cleanedValue","prepareStyleForBounds","flattened","serializable"],"sourceRoot":"../../../../../src","sources":["utils/bounds/_utils/styles.ts"],"mappings":";;AACA,SAASA,aAAa,QAAQ,yBAAyB;AAOvD,SAASC,gBAAgBA,CAAuBC,KAAQ,EAAK;EAC5D,SAAS;;EAET;EACA,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IACvE,OAAOA,KAAK;EACb;;EAEA;EACA,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;IAC1B,OAAOA,KAAK;EACb;;EAEA;EACA,MAAMI,MAAwB,GAAG,CAAC,CAAC;EACnC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IACtC,MAAME,YAAY,GAAGR,gBAAgB,CAACC,KAAK,CAACK,CAAC,CAAe,CAAC;IAC7D,IAAIE,YAAY,IAAI,OAAOA,YAAY,KAAK,QAAQ,EAAE;MACrDC,MAAM,CAACC,MAAM,CAACL,MAAM,EAAEG,YAAY,CAAC;IACpC;EACD;EACA,OAAOH,MAAM;AACd;AAEA,SAASM,oBAAoBA,CAAIC,KAAQ,EAAiB;EACzD,IAAIb,aAAa,CAACa,KAAK,CAAC,EAAE,OAAOA,KAAK;EAEtC,IAAIT,KAAK,CAACC,OAAO,CAACQ,KAAK,CAAC,EAAE;IACzB,OAAOA,KAAK,CAACC,GAAG,CAACF,oBAAoB,CAAC;EACvC;EAEA,IAAIC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,MAAME,OAAyB,GAAG,CAAC,CAAC;IACpC,KAAK,MAAMC,GAAG,IAAIH,KAAK,EAAE;MACxB,IAAIG,GAAG,KAAK,SAAS,EAAE;MAEvB,MAAMC,YAAY,GAAGL,oBAAoB,CAACC,KAAK,CAACG,GAAG,CAAC,CAAC;MACrD,IAAIC,YAAY,KAAKd,SAAS,EAAE;QAC/BY,OAAO,CAACC,GAAG,CAAC,GAAGC,YAAY;MAC5B;IACD;IACA,OAAOF,OAAO;EACf;EAEA,IAAI,OAAOF,KAAK,KAAK,UAAU,EAAE;IAChC,OAAOV,SAAS;EACjB;EAEA,OAAOU,KAAK;AACb;AAEA,OAAO,SAASK,qBAAqBA,CACpChB,KAA6B,EACV;EACnB,IAAI,CAACA,KAAK,EAAE,OAAO,CAAC,CAAC;EAErB,MAAMiB,SAAS,GAAGlB,gBAAgB,CAACC,KAAK,CAAC;EACzC,MAAMkB,YAAY,GAAGR,oBAAoB,CAACO,SAAS,CAAC;EAEpD,OAAOC,YAAY,IAAI,CAAC,CAAC;AAC1B","ignoreList":[]}
@@ -19,22 +19,32 @@ export const resetGestureValues = ({
19
19
  const ny = gestures.normalizedY.value || event.translationY / Math.max(1, dimensions.height);
20
20
  const vxTowardZero = velocity.calculateRestoreVelocity(nx, vxNorm);
21
21
  const vyTowardZero = velocity.calculateRestoreVelocity(ny, vyNorm);
22
+ let remainingAnimations = 4;
23
+ const onFinish = finished => {
24
+ "worklet";
25
+
26
+ if (!finished) return;
27
+ remainingAnimations -= 1;
28
+ if (remainingAnimations === 0) {
29
+ gestures.direction.value = null;
30
+ }
31
+ };
22
32
  gestures.x.value = animate(0, {
23
33
  ...spec,
24
34
  velocity: vxTowardZero
25
- });
35
+ }, onFinish);
26
36
  gestures.y.value = animate(0, {
27
37
  ...spec,
28
38
  velocity: vyTowardZero
29
- });
39
+ }, onFinish);
30
40
  gestures.normalizedX.value = animate(0, {
31
41
  ...spec,
32
42
  velocity: vxTowardZero
33
- });
43
+ }, onFinish);
34
44
  gestures.normalizedY.value = animate(0, {
35
45
  ...spec,
36
46
  velocity: vyTowardZero
37
- });
47
+ }, onFinish);
38
48
  gestures.isDragging.value = 0;
39
49
  gestures.isDismissing.value = Number(shouldDismiss);
40
50
  };
@@ -1 +1 @@
1
- {"version":3,"names":["animate","velocity","resetGestureValues","spec","gestures","shouldDismiss","event","dimensions","vxNorm","normalize","velocityX","width","vyNorm","velocityY","height","nx","normalizedX","value","translationX","Math","max","ny","normalizedY","translationY","vxTowardZero","calculateRestoreVelocity","vyTowardZero","x","y","isDragging","isDismissing","Number"],"sourceRoot":"../../../../src","sources":["utils/gesture/reset-gesture-values.ts"],"mappings":";;AAMA,SAASA,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,QAAQ,QAAQ,YAAY;AAUrC,OAAO,MAAMC,kBAAkB,GAAGA,CAAC;EAClCC,IAAI;EACJC,QAAQ;EACRC,aAAa;EACbC,KAAK;EACLC;AACwB,CAAC,KAAK;EAC9B,SAAS;;EAET,MAAMC,MAAM,GAAGP,QAAQ,CAACQ,SAAS,CAACH,KAAK,CAACI,SAAS,EAAEH,UAAU,CAACI,KAAK,CAAC;EACpE,MAAMC,MAAM,GAAGX,QAAQ,CAACQ,SAAS,CAACH,KAAK,CAACO,SAAS,EAAEN,UAAU,CAACO,MAAM,CAAC;;EAErE;EACA,MAAMC,EAAE,GACPX,QAAQ,CAACY,WAAW,CAACC,KAAK,IAC1BX,KAAK,CAACY,YAAY,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEb,UAAU,CAACI,KAAK,CAAC;EACnD,MAAMU,EAAE,GACPjB,QAAQ,CAACkB,WAAW,CAACL,KAAK,IAC1BX,KAAK,CAACiB,YAAY,GAAGJ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEb,UAAU,CAACO,MAAM,CAAC;EAEpD,MAAMU,YAAY,GAAGvB,QAAQ,CAACwB,wBAAwB,CAACV,EAAE,EAAEP,MAAM,CAAC;EAClE,MAAMkB,YAAY,GAAGzB,QAAQ,CAACwB,wBAAwB,CAACJ,EAAE,EAAET,MAAM,CAAC;EAElER,QAAQ,CAACuB,CAAC,CAACV,KAAK,GAAGjB,OAAO,CAAC,CAAC,EAAE;IAAE,GAAGG,IAAI;IAAEF,QAAQ,EAAEuB;EAAa,CAAC,CAAC;EAClEpB,QAAQ,CAACwB,CAAC,CAACX,KAAK,GAAGjB,OAAO,CAAC,CAAC,EAAE;IAAE,GAAGG,IAAI;IAAEF,QAAQ,EAAEyB;EAAa,CAAC,CAAC;EAElEtB,QAAQ,CAACY,WAAW,CAACC,KAAK,GAAGjB,OAAO,CAAC,CAAC,EAAE;IAAE,GAAGG,IAAI;IAAEF,QAAQ,EAAEuB;EAAa,CAAC,CAAC;EAC5EpB,QAAQ,CAACkB,WAAW,CAACL,KAAK,GAAGjB,OAAO,CAAC,CAAC,EAAE;IAAE,GAAGG,IAAI;IAAEF,QAAQ,EAAEyB;EAAa,CAAC,CAAC;EAC5EtB,QAAQ,CAACyB,UAAU,CAACZ,KAAK,GAAG,CAAC;EAC7Bb,QAAQ,CAAC0B,YAAY,CAACb,KAAK,GAAGc,MAAM,CAAC1B,aAAa,CAAC;AACpD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["animate","velocity","resetGestureValues","spec","gestures","shouldDismiss","event","dimensions","vxNorm","normalize","velocityX","width","vyNorm","velocityY","height","nx","normalizedX","value","translationX","Math","max","ny","normalizedY","translationY","vxTowardZero","calculateRestoreVelocity","vyTowardZero","remainingAnimations","onFinish","finished","direction","x","y","isDragging","isDismissing","Number"],"sourceRoot":"../../../../src","sources":["utils/gesture/reset-gesture-values.ts"],"mappings":";;AAMA,SAASA,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,QAAQ,QAAQ,YAAY;AAUrC,OAAO,MAAMC,kBAAkB,GAAGA,CAAC;EAClCC,IAAI;EACJC,QAAQ;EACRC,aAAa;EACbC,KAAK;EACLC;AACwB,CAAC,KAAK;EAC9B,SAAS;;EAET,MAAMC,MAAM,GAAGP,QAAQ,CAACQ,SAAS,CAACH,KAAK,CAACI,SAAS,EAAEH,UAAU,CAACI,KAAK,CAAC;EACpE,MAAMC,MAAM,GAAGX,QAAQ,CAACQ,SAAS,CAACH,KAAK,CAACO,SAAS,EAAEN,UAAU,CAACO,MAAM,CAAC;;EAErE;EACA,MAAMC,EAAE,GACPX,QAAQ,CAACY,WAAW,CAACC,KAAK,IAC1BX,KAAK,CAACY,YAAY,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEb,UAAU,CAACI,KAAK,CAAC;EAEnD,MAAMU,EAAE,GACPjB,QAAQ,CAACkB,WAAW,CAACL,KAAK,IAC1BX,KAAK,CAACiB,YAAY,GAAGJ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEb,UAAU,CAACO,MAAM,CAAC;EAEpD,MAAMU,YAAY,GAAGvB,QAAQ,CAACwB,wBAAwB,CAACV,EAAE,EAAEP,MAAM,CAAC;EAClE,MAAMkB,YAAY,GAAGzB,QAAQ,CAACwB,wBAAwB,CAACJ,EAAE,EAAET,MAAM,CAAC;EAElE,IAAIe,mBAAmB,GAAG,CAAC;EAE3B,MAAMC,QAAQ,GAAIC,QAA6B,IAAK;IACnD,SAAS;;IACT,IAAI,CAACA,QAAQ,EAAE;IACfF,mBAAmB,IAAI,CAAC;IACxB,IAAIA,mBAAmB,KAAK,CAAC,EAAE;MAC9BvB,QAAQ,CAAC0B,SAAS,CAACb,KAAK,GAAG,IAAI;IAChC;EACD,CAAC;EAEDb,QAAQ,CAAC2B,CAAC,CAACd,KAAK,GAAGjB,OAAO,CAAC,CAAC,EAAE;IAAE,GAAGG,IAAI;IAAEF,QAAQ,EAAEuB;EAAa,CAAC,EAAEI,QAAQ,CAAC;EAC5ExB,QAAQ,CAAC4B,CAAC,CAACf,KAAK,GAAGjB,OAAO,CAAC,CAAC,EAAE;IAAE,GAAGG,IAAI;IAAEF,QAAQ,EAAEyB;EAAa,CAAC,EAAEE,QAAQ,CAAC;EAC5ExB,QAAQ,CAACY,WAAW,CAACC,KAAK,GAAGjB,OAAO,CACnC,CAAC,EACD;IAAE,GAAGG,IAAI;IAAEF,QAAQ,EAAEuB;EAAa,CAAC,EACnCI,QACD,CAAC;EACDxB,QAAQ,CAACkB,WAAW,CAACL,KAAK,GAAGjB,OAAO,CACnC,CAAC,EACD;IAAE,GAAGG,IAAI;IAAEF,QAAQ,EAAEyB;EAAa,CAAC,EACnCE,QACD,CAAC;EACDxB,QAAQ,CAAC6B,UAAU,CAAChB,KAAK,GAAG,CAAC;EAC7Bb,QAAQ,CAAC8B,YAAY,CAACjB,KAAK,GAAGkB,MAAM,CAAC9B,aAAa,CAAC;AACpD,CAAC","ignoreList":[]}
@@ -18,10 +18,10 @@ const normalize = (velocityPixelsPerSecond, screenSize) => {
18
18
  * Calculates a normalized velocity that moves the current value toward zero.
19
19
  * Used for spring-back animations when dismissing gestures.
20
20
  */
21
- const calculateRestoreVelocity = (currentValueNormalized, baseVelocityNormalized, threshold = NEAR_ZERO_THRESHOLD) => {
21
+ const calculateRestoreVelocity = (currentValueNormalized, baseVelocityNormalized) => {
22
22
  "worklet";
23
23
 
24
- if (Math.abs(currentValueNormalized) < threshold) return 0;
24
+ if (Math.abs(currentValueNormalized) < NEAR_ZERO_THRESHOLD) return 0;
25
25
  const directionTowardZero = Math.sign(currentValueNormalized) || 1;
26
26
  const clampedVelocity = Math.min(Math.abs(baseVelocityNormalized), 1);
27
27
  return -directionTowardZero * clampedVelocity;
@@ -1 +1 @@
1
- {"version":3,"names":["clamp","MAX_VELOCITY_MAGNITUDE","NEAR_ZERO_THRESHOLD","normalize","velocityPixelsPerSecond","screenSize","Math","max","calculateRestoreVelocity","currentValueNormalized","baseVelocityNormalized","threshold","abs","directionTowardZero","sign","clampedVelocity","min","calculateProgressVelocity","animations","shouldDismiss","event","dimensions","directions","currentProgress","progress","value","targetProgress","progressDelta","progressDirection","normalizedVelocityX","velocityX","width","normalizedVelocityY","velocityY","height","normalizedTranslationX","translationX","normalizedTranslationY","translationY","supportsHorizontalGestures","horizontal","horizontalInverted","supportsVerticalGestures","vertical","verticalInverted","progressVelocityMagnitude","shouldPassDismissalThreshold","translationPixels","velocityWeight","normalizedTranslation","normalizedVelocity","projectedNormalizedPosition","exceedsThreshold","hasMovement","velocity"],"sourceRoot":"../../../../src","sources":["utils/gesture/velocity.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clamp","MAX_VELOCITY_MAGNITUDE","NEAR_ZERO_THRESHOLD","normalize","velocityPixelsPerSecond","screenSize","Math","max","calculateRestoreVelocity","currentValueNormalized","baseVelocityNormalized","abs","directionTowardZero","sign","clampedVelocity","min","calculateProgressVelocity","animations","shouldDismiss","event","dimensions","directions","currentProgress","progress","value","targetProgress","progressDelta","progressDirection","normalizedVelocityX","velocityX","width","normalizedVelocityY","velocityY","height","normalizedTranslationX","translationX","normalizedTranslationY","translationY","supportsHorizontalGestures","horizontal","horizontalInverted","supportsVerticalGestures","vertical","verticalInverted","progressVelocityMagnitude","shouldPassDismissalThreshold","translationPixels","velocityWeight","normalizedTranslation","normalizedVelocity","projectedNormalizedPosition","exceedsThreshold","hasMovement","velocity"],"sourceRoot":"../../../../src","sources":["utils/gesture/velocity.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/__configs__/presets.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAKjE,eAAO,MAAM,YAAY,GACxB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBA4BF,CAAC;AAEF,eAAO,MAAM,MAAM,GAClB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBAkCF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC3B,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBA2BF,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBAuCF,CAAC;AAEF,eAAO,MAAM,WAAW,GACvB,SAAQ,OAAO,CAAC,sBAAsB,CAAC,GAAG;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;CACE,KACxB,sBA0DF,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBA6HF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC5B,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBAkLF,CAAC;AAEF,eAAO,MAAM,YAAY,GACxB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBA+EF,CAAC"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/__configs__/presets.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAKjE,eAAO,MAAM,YAAY,GACxB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBA4BF,CAAC;AAEF,eAAO,MAAM,MAAM,GAClB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBAkCF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC3B,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBA2BF,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBAuCF,CAAC;AAEF,eAAO,MAAM,WAAW,GACvB,SAAQ,OAAO,CAAC,sBAAsB,CAAC,GAAG;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;CACE,KACxB,sBAyDF,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBA6HF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC5B,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBAmMF,CAAC;AAEF,eAAO,MAAM,YAAY,GACxB,SAAQ,OAAO,CAAC,sBAAsB,CAAM,KAC1C,sBA+EF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAC5C,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,SAAS,cAAoB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,qBAe3C,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAqB,CAAC;AAC3E,eAAO,MAAM,yBAAyB,cAAoB,CAAC;AAC3D,eAAO,MAAM,6BAA6B;;;;;;;;EAQxC,CAAC;AACH,eAAO,MAAM,WAAW,iBAAkB,CAAC;AAC3C,eAAO,MAAM,UAAU,iBAAkB,CAAC;AAC1C,eAAO,MAAM,qBAAqB,GACjC,YAAY,UAAU,KACpB,kBAUF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC7C,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CActB,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C,eAAO,MAAM,+BAA+B,OAAO,CAAC;AACpD,eAAO,MAAM,+BAA+B,EAAE,cAAyB,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,uBAAuB,EAAG,QAAiB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAC5C,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,SAAS,cAAoB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,qBAgB3C,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAqB,CAAC;AAC3E,eAAO,MAAM,yBAAyB,cAAoB,CAAC;AAC3D,eAAO,MAAM,6BAA6B;;;;;;;;EAQxC,CAAC;AACH,eAAO,MAAM,WAAW,iBAAkB,CAAC;AAC3C,eAAO,MAAM,UAAU,iBAAkB,CAAC;AAE1C,eAAO,MAAM,qBAAqB,GACjC,YAAY,UAAU,KACpB,kBAUF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAC7C,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CActB,CAAC;AAEZ;;GAEG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,yBAAyB,eAAe,CAAC;AACtD,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C,eAAO,MAAM,+BAA+B,OAAO,CAAC;AACpD,eAAO,MAAM,+BAA+B,EAAE,cAAyB,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,uBAAuB,EAAG,QAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-screen-animation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/animation/use-screen-animation.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACX,wBAAwB,EAExB,MAAM,uBAAuB,CAAC;AAuD/B,wBAAgB,mBAAmB;;;EAmElC;AAED,wBAAgB,kBAAkB,6EAIjC"}
1
+ {"version":3,"file":"use-screen-animation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/animation/use-screen-animation.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACX,wBAAwB,EAExB,MAAM,uBAAuB,CAAC;AAwD/B,wBAAgB,mBAAmB;;;EAmElC;AAED,wBAAgB,kBAAkB,6EAIjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-bound-registry.d.ts","sourceRoot":"","sources":["../../../../src/hooks/bounds/use-bound-registry.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACN,KAAK,WAAW,EAIhB,KAAK,UAAU,EAGf,MAAM,yBAAyB,CAAC;AAQjC,UAAU,sBAAsB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrD;AAcD,eAAO,MAAM,iBAAiB,GAAI,kDAK/B,sBAAsB;;;8GAyFD;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE;CAyBpD,CAAC"}
1
+ {"version":3,"file":"use-bound-registry.d.ts","sourceRoot":"","sources":["../../../../src/hooks/bounds/use-bound-registry.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACN,KAAK,WAAW,EAIhB,KAAK,UAAU,EAGf,MAAM,yBAAyB,CAAC;AASjC,UAAU,sBAAsB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrD;AAcD,eAAO,MAAM,iBAAiB,GAAI,kDAK/B,sBAAsB;;;8GAoFD;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE;CAyBpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-build-gestures.d.ts","sourceRoot":"","sources":["../../../../src/hooks/gestures/use-build-gestures.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIN,KAAK,WAAW,EAGhB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEN,KAAK,WAAW,EAEhB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAc7D,UAAU,sBAAsB;IAC/B,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,gBAAgB,GAAI,mBAE9B,sBAAsB,KAAG;IAC3B,UAAU,EAAE,WAAW,CAAC;IACxB,aAAa,EAAE,WAAW,CAAC;CAsS3B,CAAC"}
1
+ {"version":3,"file":"use-build-gestures.d.ts","sourceRoot":"","sources":["../../../../src/hooks/gestures/use-build-gestures.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIN,KAAK,WAAW,EAGhB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEN,KAAK,WAAW,EAEhB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAe7D,UAAU,sBAAsB;IAC/B,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,gBAAgB,GAAI,mBAE9B,sBAAsB,KAAG;IAC3B,UAAU,EAAE,WAAW,CAAC;IACxB,aAAa,EAAE,WAAW,CAAC;CAqR3B,CAAC"}
@@ -0,0 +1,13 @@
1
+ type AnyFunction = (...args: Array<any>) => any;
2
+ /** Creates a stable worklet callback that can be called from the UI runtime
3
+ * @param callback The JavaScript or worklet function to be called
4
+ * @returns A worklet function that can be safely called from the UI thread
5
+ * @default Behavior:
6
+ * - If passed a regular JS function, calls it on the JS thread using runOnJS
7
+ * - If passed a worklet function, calls it directly on the UI thread
8
+ * @important The returned function maintains a stable reference and properly handles
9
+ * thread execution based on the input callback type
10
+ */
11
+ export default function useStableCallbackValue<C extends AnyFunction>(callback?: C): (...args: Parameters<C>) => void;
12
+ export {};
13
+ //# sourceMappingURL=use-stable-callback-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-stable-callback-value.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-stable-callback-value.tsx"],"names":[],"mappings":"AAYA,KAAK,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;AA0BhD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,CAAC,SAAS,WAAW,EACnE,QAAQ,CAAC,EAAE,CAAC,aAaD,UAAU,CAAC,CAAC,CAAC,UAMxB"}
@@ -1,4 +1,5 @@
1
1
  import { type SharedValue } from "react-native-reanimated";
2
+ import type { GestureDirection } from "../types/gesture";
2
3
  import type { ScreenKey } from "../types/navigator";
3
4
  export type GestureKey = "x" | "y" | "normalizedX" | "normalizedY" | "isDismissing" | "isDragging";
4
5
  export type GestureMap = {
@@ -8,6 +9,7 @@ export type GestureMap = {
8
9
  normalizedY: SharedValue<number>;
9
10
  isDismissing: SharedValue<number>;
10
11
  isDragging: SharedValue<number>;
12
+ direction: SharedValue<Omit<GestureDirection, "bidirectional"> | null>;
11
13
  };
12
14
  declare function getGesture(routeKey: ScreenKey, gestureKey: GestureKey): SharedValue<number>;
13
15
  declare function getRouteGestures(routeKey: ScreenKey): GestureMap;
@@ -1 +1 @@
1
- {"version":3,"file":"gestures.d.ts","sourceRoot":"","sources":["../../../src/stores/gestures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,UAAU,GACnB,GAAG,GACH,GAAG,GACH,aAAa,GACb,aAAa,GACb,cAAc,GACd,YAAY,CAAC;AAEhB,MAAM,MAAM,UAAU,GAAG;IACxB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC;AAoBF,iBAAS,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,uBAE9D;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,SAAS,cAE5C;AAED,iBAAS,KAAK,CAAC,QAAQ,EAAE,SAAS,QAEjC;AAED,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC"}
1
+ {"version":3,"file":"gestures.d.ts","sourceRoot":"","sources":["../../../src/stores/gestures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,UAAU,GACnB,GAAG,GACH,GAAG,GACH,aAAa,GACb,aAAa,GACb,cAAc,GACd,YAAY,CAAC;AAEhB,MAAM,MAAM,UAAU,GAAG;IACxB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;CACvE,CAAC;AAuBF,iBAAS,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,uBAE9D;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,SAAS,cAE5C;AAED,iBAAS,KAAK,CAAC,QAAQ,EAAE,SAAS,QAEjC;AAED,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC"}
@@ -12,10 +12,11 @@ export type ScreenTransitionState = {
12
12
  route: RouteProp<ParamListBase>;
13
13
  };
14
14
  export interface ScreenInterpolationProps {
15
- /** Values for the screen that is the focus of the transition (e.g., the one opening). */
15
+ /** Values for the screen that came before the current one in the navigation stack. */
16
16
  previous: ScreenTransitionState | undefined;
17
+ /** Values for the current screen being interpolated. */
17
18
  current: ScreenTransitionState;
18
- /** Values for the screen immediately behind the current one in the screen. */
19
+ /** Values for the screen that comes after the current one in the navigation stack. */
19
20
  next: ScreenTransitionState | undefined;
20
21
  /** Layout measurements for the screen. */
21
22
  layouts: {
@@ -27,19 +28,19 @@ export interface ScreenInterpolationProps {
27
28
  };
28
29
  /** The safe area insets for the screen. */
29
30
  insets: EdgeInsets;
30
- /** The id of the active bound. */
31
+ /** The ID of the currently active shared bound (e.g., 'a' when Transition.Pressable has sharedBoundTag='a'). */
31
32
  activeBoundId: string;
32
- /** Whether the screen is focused. */
33
+ /** Whether the current screen is the focused (topmost) screen in the stack. */
33
34
  focused: boolean;
34
- /** The progress of the screen transitions (0-2). */
35
+ /** Combined progress of current and next screen transitions, ranging from 0-2. */
35
36
  progress: number;
36
- /** A function that returns a bounds builder for the screen. */
37
+ /** Function that provides access to bounds builders for creating shared element transitions. */
37
38
  bounds: BoundsAccessor;
38
- /** The active screen between current and next. */
39
+ /** The screen state that is currently driving the transition (either current or next, whichever is focused). */
39
40
  active: ScreenTransitionState;
40
- /** Whether the active screen is transitioning. */
41
+ /** Whether the active screen is currently transitioning (either being dragged or animating). */
41
42
  isActiveTransitioning: boolean;
42
- /** Whether the active screen is dismissing. */
43
+ /** Whether the active screen is in the process of being dismissed/closed. */
43
44
  isDismissing: boolean;
44
45
  }
45
46
  export type ScreenStyleInterpolator = (props: ScreenInterpolationProps) => TransitionInterpolatedStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../src/types/animation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACxC,yFAAyF;IACzF,QAAQ,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC5C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,8EAA8E;IAC9E,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACxC,0CAA0C;IAC1C,OAAO,EAAE;QACR,wDAAwD;QACxD,MAAM,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SACf,CAAC;KACF,CAAC;IACF,2CAA2C;IAC3C,MAAM,EAAE,UAAU,CAAC;IACnB,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,EAAE,cAAc,CAAC;IACvB,kDAAkD;IAClD,MAAM,EAAE,qBAAqB,CAAC;IAC9B,kDAAkD;IAClD,qBAAqB,EAAE,OAAO,CAAC;IAC/B,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,uBAAuB,GAAG,CACrC,KAAK,EAAE,wBAAwB,KAC3B,2BAA2B,CAAC;AAEjC,MAAM,MAAM,2BAA2B,GAAG;IACzC;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,eAAe,CAAC;CACxB"}
1
+ {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../src/types/animation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EACX,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACxC,sFAAsF;IACtF,QAAQ,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC5C,wDAAwD;IACxD,OAAO,EAAE,qBAAqB,CAAC;IAC/B,sFAAsF;IACtF,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACxC,0CAA0C;IAC1C,OAAO,EAAE;QACR,wDAAwD;QACxD,MAAM,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SACf,CAAC;KACF,CAAC;IACF,2CAA2C;IAC3C,MAAM,EAAE,UAAU,CAAC;IACnB,gHAAgH;IAChH,aAAa,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,MAAM,EAAE,cAAc,CAAC;IACvB,gHAAgH;IAChH,MAAM,EAAE,qBAAqB,CAAC;IAC9B,gGAAgG;IAChG,qBAAqB,EAAE,OAAO,CAAC;IAC/B,6EAA6E;IAC7E,YAAY,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,uBAAuB,GAAG,CACrC,KAAK,EAAE,wBAAwB,KAC3B,2BAA2B,CAAC;AAEjC,MAAM,MAAM,2BAA2B,GAAG;IACzC;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;OAEG;IACH,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,eAAe,CAAC;CACxB"}
@@ -38,5 +38,9 @@ export type GestureValues = {
38
38
  * A flag indicating if the screen is in the process of dismissing.
39
39
  */
40
40
  isDismissing: number;
41
+ /**
42
+ * The initial direction that activated the gesture.
43
+ */
44
+ direction: Omit<GestureDirection, "bidirectional"> | null;
41
45
  };
42
46
  //# sourceMappingURL=gesture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../../src/types/gesture.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACzB,YAAY,GACZ,qBAAqB,GACrB,UAAU,GACV,mBAAmB,GACnB,eAAe,CAAC;AAEnB,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,oBAAY,kBAAkB;IAC7B,OAAO,IAAA;IACP,MAAM,IAAA;IACN,MAAM,IAAA;CACN;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;AAE7D,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,cAAc,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../../src/types/gesture.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACzB,YAAY,GACZ,qBAAqB,GACrB,UAAU,GACV,mBAAmB,GACnB,eAAe,CAAC;AAEnB,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,oBAAY,kBAAkB;IAC7B,OAAO,IAAA;IACP,MAAM,IAAA;IACN,MAAM,IAAA;CACN;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;AAE7D,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,cAAc,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/types/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC;AAEtB,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAAE,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/types/utils.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC;AAEtB,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ImageStyle, StyleProp, TextStyle, ViewStyle } from "react-native";
2
+ import type { Any } from "../../../types/utils";
3
+ type AnyStyle = ViewStyle | TextStyle | ImageStyle;
4
+ type StyleValue = StyleProp<AnyStyle>;
5
+ type PlainStyleObject = Record<string, Any>;
6
+ export declare function prepareStyleForBounds(style: StyleValue | undefined): PlainStyleObject;
7
+ export {};
8
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/utils/bounds/_utils/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhD,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AACnD,KAAK,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtC,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAqD5C,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,UAAU,GAAG,SAAS,GAC3B,gBAAgB,CAOlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"reset-gesture-values.d.ts","sourceRoot":"","sources":["../../../../src/utils/gesture/reset-gesture-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,uBAAuB,EACvB,6BAA6B,EAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,UAAU,uBAAuB;IAChC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,uBAAuB,CAAC,6BAA6B,CAAC,CAAC;IAC9D,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,eAAO,MAAM,kBAAkB,GAAI,uDAMhC,uBAAuB,SAwBzB,CAAC"}
1
+ {"version":3,"file":"reset-gesture-values.d.ts","sourceRoot":"","sources":["../../../../src/utils/gesture/reset-gesture-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,uBAAuB,EACvB,6BAA6B,EAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,UAAU,uBAAuB;IAChC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,uBAAuB,CAAC,6BAA6B,CAAC,CAAC;IAC9D,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,eAAO,MAAM,kBAAkB,GAAI,uDAMhC,uBAAuB,SA2CzB,CAAC"}
@@ -17,7 +17,7 @@ interface CalculateProgressProps {
17
17
  }
18
18
  export declare const velocity: {
19
19
  normalize: (velocityPixelsPerSecond: number, screenSize: number) => number;
20
- calculateRestoreVelocity: (currentValueNormalized: number, baseVelocityNormalized: number, threshold?: number) => number;
20
+ calculateRestoreVelocity: (currentValueNormalized: number, baseVelocityNormalized: number) => number;
21
21
  calculateProgressVelocity: ({ animations, shouldDismiss, event, dimensions, directions, }: CalculateProgressProps) => number;
22
22
  shouldPassDismissalThreshold: (translationPixels: number, velocityPixelsPerSecond: number, screenSize: number, velocityWeight: number) => boolean;
23
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"velocity.d.ts","sourceRoot":"","sources":["../../../../src/utils/gesture/velocity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,uBAAuB,EACvB,6BAA6B,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,UAAU,sBAAsB;IAC/B,UAAU,EAAE,YAAY,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,uBAAuB,CAAC,6BAA6B,CAAC,CAAC;IAC9D,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,UAAU,EAAE;QACX,UAAU,EAAE,OAAO,CAAC;QACpB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC;QAClB,gBAAgB,EAAE,OAAO,CAAC;KAC1B,CAAC;CACF;AAwHD,eAAO,MAAM,QAAQ;yCA/GuB,MAAM,cAAc,MAAM;uDAc7C,MAAM,0BACN,MAAM,cACnB,MAAM;+FAkBf,sBAAsB;sDAyDL,MAAM,2BACA,MAAM,cACnB,MAAM,kBACF,MAAM;CAsBtB,CAAC"}
1
+ {"version":3,"file":"velocity.d.ts","sourceRoot":"","sources":["../../../../src/utils/gesture/velocity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,uBAAuB,EACvB,6BAA6B,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,UAAU,sBAAsB;IAC/B,UAAU,EAAE,YAAY,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,uBAAuB,CAAC,6BAA6B,CAAC,CAAC;IAC9D,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,UAAU,EAAE;QACX,UAAU,EAAE,OAAO,CAAC;QACpB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC;QAClB,gBAAgB,EAAE,OAAO,CAAC;KAC1B,CAAC;CACF;AAuHD,eAAO,MAAM,QAAQ;yCA9GuB,MAAM,cAAc,MAAM;uDAc7C,MAAM,0BACN,MAAM;+FAkB5B,sBAAsB;sDAyDL,MAAM,2BACA,MAAM,cACnB,MAAM,kBACF,MAAM;CAsBtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screen-transitions",
3
- "version": "2.3.4",
3
+ "version": "2.4.1",
4
4
  "description": "Easy screen transitions for React Native and Expo",
5
5
  "author": "Ed",
6
6
  "license": "MIT",
@@ -173,7 +173,6 @@ export const ElasticCard = (
173
173
  /**
174
174
  * Applies to both screens ( previous and incoming)
175
175
  */
176
-
177
176
  const scale = interpolate(progress, [0, 1, 2], [0, 1, 0.8]);
178
177
 
179
178
  // applies to current screen
@@ -367,16 +366,33 @@ export const SharedAppleMusic = (
367
366
 
368
367
  const normX = active.gesture.normalizedX;
369
368
  const normY = active.gesture.normalizedY;
369
+ const initialDirection = active.gesture.direction;
370
370
 
371
371
  /**
372
372
  * ===============================
373
373
  * Animations for both bounds
374
374
  * ===============================
375
375
  */
376
- const dragX = interpolate(normX, [0, 1], [0, screen.width * 0.8]);
377
- const dragY = interpolate(normY, [0, 1], [0, screen.height * 0.8]);
378
- const dragXScale = interpolate(normX, [0, 1], [1, 0.75]);
379
- const dragYScale = interpolate(normY, [0, 1], [1, 0.75]);
376
+ const xResistance = initialDirection === "horizontal" ? 0.7 : 0.4;
377
+ const yResistance = initialDirection === "vertical" ? 0.7 : 0.4;
378
+
379
+ const xScaleOuput = initialDirection === "horizontal" ? [1, 0.5] : [1, 1];
380
+ const yScaleOuput = initialDirection === "vertical" ? [1, 0.5] : [1, 1];
381
+
382
+ const dragX = interpolate(
383
+ normX,
384
+ [-1, 0, 1],
385
+ [-screen.width * xResistance, 0, screen.width * xResistance],
386
+ "clamp",
387
+ );
388
+ const dragY = interpolate(
389
+ normY,
390
+ [-1, 0, 1],
391
+ [-screen.height * yResistance, 0, screen.height * yResistance],
392
+ "clamp",
393
+ );
394
+ const dragXScale = interpolate(normX, [0, 1], xScaleOuput);
395
+ const dragYScale = interpolate(normY, [0, 1], yScaleOuput);
380
396
 
381
397
  const boundValues = bounds({
382
398
  method: focused ? "content" : "transform",
@@ -387,8 +403,8 @@ export const SharedAppleMusic = (
387
403
 
388
404
  const opacity = interpolate(
389
405
  progress,
390
- [0, 0.35, 1, 1.25, 2],
391
- [0, 1, 1, 1, 0],
406
+ [0, 0.25, 1.25, 2],
407
+ [0, 1, 1, 0],
392
408
  "clamp",
393
409
  );
394
410
 
@@ -0,0 +1,121 @@
1
+ import { describe, expect, it, mock } from "bun:test";
2
+
3
+ mock.module("react-native", () => ({}));
4
+ mock.module("react-native-gesture-handler", () => ({}));
5
+ mock.module("react-native-reanimated", () => ({
6
+ clamp: (value: number, lower: number, upper: number) =>
7
+ Math.min(Math.max(value, lower), upper),
8
+ }));
9
+
10
+ const { determineDismissal } = await import(
11
+ "../utils/gesture/determine-dismissal"
12
+ );
13
+
14
+ describe("determineDismissal", () => {
15
+ const dimensions = { width: 320, height: 640 };
16
+
17
+ it("dismisses when horizontal translation exceeds the threshold", () => {
18
+ const { shouldDismiss } = determineDismissal({
19
+ event: {
20
+ translationX: 170,
21
+ translationY: 0,
22
+ velocityX: 0,
23
+ velocityY: 0,
24
+ },
25
+ directions: {
26
+ vertical: false,
27
+ verticalInverted: false,
28
+ horizontal: true,
29
+ horizontalInverted: false,
30
+ },
31
+ dimensions,
32
+ gestureVelocityImpact: 0.3,
33
+ });
34
+
35
+ expect(shouldDismiss).toBe(true);
36
+ });
37
+
38
+ it("ignores movement in disallowed directions", () => {
39
+ const { shouldDismiss } = determineDismissal({
40
+ event: {
41
+ translationX: 200,
42
+ translationY: 0,
43
+ velocityX: 0,
44
+ velocityY: 0,
45
+ },
46
+ directions: {
47
+ vertical: true,
48
+ verticalInverted: false,
49
+ horizontal: false,
50
+ horizontalInverted: false,
51
+ },
52
+ dimensions,
53
+ gestureVelocityImpact: 0.3,
54
+ });
55
+
56
+ expect(shouldDismiss).toBe(false);
57
+ });
58
+
59
+ it("dismisses vertical gestures when velocity pushes the projection past the threshold", () => {
60
+ const { shouldDismiss } = determineDismissal({
61
+ event: {
62
+ translationX: 0,
63
+ translationY: 40,
64
+ velocityX: 0,
65
+ velocityY: 1800,
66
+ },
67
+ directions: {
68
+ vertical: true,
69
+ verticalInverted: false,
70
+ horizontal: false,
71
+ horizontalInverted: false,
72
+ },
73
+ dimensions,
74
+ gestureVelocityImpact: 0.3,
75
+ });
76
+
77
+ expect(shouldDismiss).toBe(true);
78
+ });
79
+
80
+ it("respects inverted horizontal directions", () => {
81
+ const { shouldDismiss } = determineDismissal({
82
+ event: {
83
+ translationX: -160,
84
+ translationY: 0,
85
+ velocityX: -700,
86
+ velocityY: 0,
87
+ },
88
+ directions: {
89
+ vertical: false,
90
+ verticalInverted: false,
91
+ horizontal: false,
92
+ horizontalInverted: true,
93
+ },
94
+ dimensions,
95
+ gestureVelocityImpact: 0.25,
96
+ });
97
+
98
+ expect(shouldDismiss).toBe(true);
99
+ });
100
+
101
+ it("returns false when movement never exceeds the composite threshold", () => {
102
+ const { shouldDismiss } = determineDismissal({
103
+ event: {
104
+ translationX: 30,
105
+ translationY: 0,
106
+ velocityX: 100,
107
+ velocityY: 0,
108
+ },
109
+ directions: {
110
+ vertical: false,
111
+ verticalInverted: false,
112
+ horizontal: true,
113
+ horizontalInverted: false,
114
+ },
115
+ dimensions,
116
+ gestureVelocityImpact: 0.2,
117
+ });
118
+
119
+ expect(shouldDismiss).toBe(false);
120
+ });
121
+ });