react-native-screen-transitions 3.3.0-beta.3 → 3.3.0-beta.4

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 (119) hide show
  1. package/README.md +95 -31
  2. package/lib/commonjs/shared/animation/snap-to.js +2 -0
  3. package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
  4. package/lib/commonjs/shared/components/create-transition-aware-component.js +20 -18
  5. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  6. package/lib/commonjs/shared/components/screen-container.js +59 -6
  7. package/lib/commonjs/shared/components/screen-container.js.map +1 -1
  8. package/lib/commonjs/shared/constants.js +8 -1
  9. package/lib/commonjs/shared/constants.js.map +1 -1
  10. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +49 -39
  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 +110 -61
  13. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  14. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +67 -70
  15. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  16. package/lib/commonjs/shared/providers/gestures.provider.js +112 -5
  17. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  18. package/lib/commonjs/shared/types/ownership.types.js +71 -0
  19. package/lib/commonjs/shared/types/ownership.types.js.map +1 -0
  20. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js +72 -128
  21. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  22. package/lib/commonjs/shared/utils/gesture/compute-claimed-directions.js +81 -0
  23. package/lib/commonjs/shared/utils/gesture/compute-claimed-directions.js.map +1 -0
  24. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js +1 -1
  25. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js.map +1 -1
  26. package/lib/commonjs/shared/utils/gesture/find-collapse-target.js +48 -0
  27. package/lib/commonjs/shared/utils/gesture/find-collapse-target.js.map +1 -0
  28. package/lib/commonjs/shared/utils/gesture/resolve-ownership.js +87 -0
  29. package/lib/commonjs/shared/utils/gesture/resolve-ownership.js.map +1 -0
  30. package/lib/commonjs/shared/utils/gesture/velocity.js +16 -5
  31. package/lib/commonjs/shared/utils/gesture/velocity.js.map +1 -1
  32. package/lib/module/shared/animation/snap-to.js +1 -0
  33. package/lib/module/shared/animation/snap-to.js.map +1 -1
  34. package/lib/module/shared/components/create-transition-aware-component.js +20 -18
  35. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  36. package/lib/module/shared/components/screen-container.js +59 -7
  37. package/lib/module/shared/components/screen-container.js.map +1 -1
  38. package/lib/module/shared/constants.js +7 -0
  39. package/lib/module/shared/constants.js.map +1 -1
  40. package/lib/module/shared/hooks/gestures/use-build-gestures.js +49 -39
  41. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  42. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +112 -63
  43. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  44. package/lib/module/shared/hooks/gestures/use-scroll-registry.js +68 -70
  45. package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  46. package/lib/module/shared/providers/gestures.provider.js +112 -5
  47. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  48. package/lib/module/shared/types/ownership.types.js +67 -0
  49. package/lib/module/shared/types/ownership.types.js.map +1 -0
  50. package/lib/module/shared/utils/gesture/check-gesture-activation.js +70 -126
  51. package/lib/module/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  52. package/lib/module/shared/utils/gesture/compute-claimed-directions.js +77 -0
  53. package/lib/module/shared/utils/gesture/compute-claimed-directions.js.map +1 -0
  54. package/lib/module/shared/utils/gesture/determine-snap-target.js +1 -1
  55. package/lib/module/shared/utils/gesture/determine-snap-target.js.map +1 -1
  56. package/lib/module/shared/utils/gesture/find-collapse-target.js +44 -0
  57. package/lib/module/shared/utils/gesture/find-collapse-target.js.map +1 -0
  58. package/lib/module/shared/utils/gesture/resolve-ownership.js +83 -0
  59. package/lib/module/shared/utils/gesture/resolve-ownership.js.map +1 -0
  60. package/lib/module/shared/utils/gesture/velocity.js +16 -5
  61. package/lib/module/shared/utils/gesture/velocity.js.map +1 -1
  62. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
  63. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  64. package/lib/typescript/shared/components/screen-container.d.ts.map +1 -1
  65. package/lib/typescript/shared/constants.d.ts +6 -0
  66. package/lib/typescript/shared/constants.d.ts.map +1 -1
  67. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +15 -3
  68. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  69. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +52 -2
  70. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
  71. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts +11 -6
  72. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
  73. package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts +1 -1
  74. package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
  75. package/lib/typescript/shared/providers/gestures.provider.d.ts +27 -2
  76. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  77. package/lib/typescript/shared/types/ownership.types.d.ts +52 -0
  78. package/lib/typescript/shared/types/ownership.types.d.ts.map +1 -0
  79. package/lib/typescript/shared/types/screen.types.d.ts +22 -1
  80. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  81. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts +23 -19
  82. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts.map +1 -1
  83. package/lib/typescript/shared/utils/gesture/compute-claimed-directions.d.ts +23 -0
  84. package/lib/typescript/shared/utils/gesture/compute-claimed-directions.d.ts.map +1 -0
  85. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts +5 -1
  86. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts.map +1 -1
  87. package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts +17 -0
  88. package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts.map +1 -0
  89. package/lib/typescript/shared/utils/gesture/resolve-ownership.d.ts +36 -0
  90. package/lib/typescript/shared/utils/gesture/resolve-ownership.d.ts.map +1 -0
  91. package/lib/typescript/shared/utils/gesture/velocity.d.ts.map +1 -1
  92. package/package.json +121 -120
  93. package/src/shared/animation/snap-to.ts +1 -0
  94. package/src/shared/components/create-transition-aware-component.tsx +28 -25
  95. package/src/shared/components/screen-container.tsx +69 -7
  96. package/src/shared/constants.ts +7 -0
  97. package/src/shared/hooks/gestures/use-build-gestures.tsx +80 -44
  98. package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +147 -71
  99. package/src/shared/hooks/gestures/use-scroll-registry.tsx +94 -86
  100. package/src/shared/hooks/use-backdrop-pointer-events.ts +1 -1
  101. package/src/shared/providers/gestures.provider.tsx +166 -5
  102. package/src/shared/types/ownership.types.ts +77 -0
  103. package/src/shared/types/screen.types.ts +24 -1
  104. package/src/shared/utils/gesture/check-gesture-activation.ts +82 -116
  105. package/src/shared/utils/gesture/compute-claimed-directions.ts +93 -0
  106. package/src/shared/utils/gesture/determine-snap-target.ts +6 -2
  107. package/src/shared/utils/gesture/find-collapse-target.ts +42 -0
  108. package/src/shared/utils/gesture/resolve-ownership.ts +110 -0
  109. package/src/shared/utils/gesture/velocity.ts +16 -6
  110. package/src/shared/__tests__/bounds.store.test.ts +0 -394
  111. package/src/shared/__tests__/derivations.test.ts +0 -156
  112. package/src/shared/__tests__/determine-dismissal.test.ts +0 -111
  113. package/src/shared/__tests__/determine-snap-target.test.ts +0 -268
  114. package/src/shared/__tests__/geometry.test.ts +0 -130
  115. package/src/shared/__tests__/gesture-activation.test.ts +0 -471
  116. package/src/shared/__tests__/gesture.velocity.test.ts +0 -131
  117. package/src/shared/__tests__/history.store.test.ts +0 -550
  118. package/src/shared/__tests__/sync-routes-with-removed.test.ts +0 -137
  119. package/src/shared/__tests__/validate-snap-points.test.ts +0 -125
@@ -1,125 +0,0 @@
1
- import { describe, expect, it } from "bun:test";
2
- import { validateSnapPoints } from "../utils/gesture/validate-snap-points";
3
-
4
- describe("validateSnapPoints", () => {
5
- describe("when no snap points provided", () => {
6
- it("returns hasSnapPoints false", () => {
7
- const result = validateSnapPoints({});
8
- expect(result.hasSnapPoints).toBe(false);
9
- });
10
-
11
- it("returns empty snapPoints array", () => {
12
- const result = validateSnapPoints({});
13
- expect(result.snapPoints).toEqual([]);
14
- });
15
-
16
- it("returns -1 for min and max", () => {
17
- const result = validateSnapPoints({});
18
- expect(result.minSnapPoint).toBe(-1);
19
- expect(result.maxSnapPoint).toBe(-1);
20
- });
21
-
22
- it("handles undefined snapPoints", () => {
23
- const result = validateSnapPoints({ snapPoints: undefined });
24
- expect(result.hasSnapPoints).toBe(false);
25
- });
26
- });
27
-
28
- describe("when snap points provided", () => {
29
- it("returns hasSnapPoints true", () => {
30
- const result = validateSnapPoints({ snapPoints: [0.3, 0.6, 1] });
31
- expect(result.hasSnapPoints).toBe(true);
32
- });
33
-
34
- it("sorts snap points in ascending order", () => {
35
- const result = validateSnapPoints({ snapPoints: [1, 0.3, 0.6] });
36
- expect(result.snapPoints).toEqual([0.3, 0.6, 1]);
37
- });
38
-
39
- it("returns correct max snap point", () => {
40
- const result = validateSnapPoints({ snapPoints: [0.3, 0.6, 1] });
41
- expect(result.maxSnapPoint).toBe(1);
42
- });
43
-
44
- it("handles single snap point", () => {
45
- const result = validateSnapPoints({ snapPoints: [0.5] });
46
- expect(result.hasSnapPoints).toBe(true);
47
- expect(result.snapPoints).toEqual([0.5]);
48
- expect(result.minSnapPoint).toBe(0.5);
49
- expect(result.maxSnapPoint).toBe(0.5);
50
- });
51
-
52
- it("does not mutate original array", () => {
53
- const original = [1, 0.3, 0.6];
54
- validateSnapPoints({ snapPoints: original });
55
- expect(original).toEqual([1, 0.3, 0.6]);
56
- });
57
- });
58
-
59
- describe("canDismiss behavior", () => {
60
- it("sets minSnapPoint to 0 when canDismiss is true", () => {
61
- const result = validateSnapPoints({
62
- snapPoints: [0.3, 0.6, 1],
63
- canDismiss: true,
64
- });
65
- expect(result.minSnapPoint).toBe(0);
66
- });
67
-
68
- it("sets minSnapPoint to first snap point when canDismiss is false", () => {
69
- const result = validateSnapPoints({
70
- snapPoints: [0.3, 0.6, 1],
71
- canDismiss: false,
72
- });
73
- expect(result.minSnapPoint).toBe(0.3);
74
- });
75
-
76
- it("defaults canDismiss to falsy (minSnapPoint = first snap)", () => {
77
- const result = validateSnapPoints({ snapPoints: [0.3, 0.6, 1] });
78
- expect(result.minSnapPoint).toBe(0.3);
79
- });
80
-
81
- it("handles canDismiss with unsorted snap points", () => {
82
- const result = validateSnapPoints({
83
- snapPoints: [1, 0.5, 0.25],
84
- canDismiss: false,
85
- });
86
- // After sorting: [0.25, 0.5, 1]
87
- expect(result.minSnapPoint).toBe(0.25);
88
- expect(result.maxSnapPoint).toBe(1);
89
- });
90
- });
91
-
92
- describe("edge cases", () => {
93
- it("handles empty array", () => {
94
- const result = validateSnapPoints({ snapPoints: [] });
95
- // Empty array is falsy for snap points
96
- expect(result.hasSnapPoints).toBe(true); // Array exists but is empty
97
- expect(result.snapPoints).toEqual([]);
98
- });
99
-
100
- it("handles snap points at 0", () => {
101
- const result = validateSnapPoints({
102
- snapPoints: [0, 0.5, 1],
103
- canDismiss: true,
104
- });
105
- expect(result.minSnapPoint).toBe(0);
106
- expect(result.snapPoints).toEqual([0, 0.5, 1]);
107
- });
108
-
109
- it("handles duplicate snap points", () => {
110
- const result = validateSnapPoints({ snapPoints: [0.5, 0.5, 1] });
111
- expect(result.snapPoints).toEqual([0.5, 0.5, 1]);
112
- });
113
-
114
- it("handles very small snap point values", () => {
115
- const result = validateSnapPoints({ snapPoints: [0.01, 0.1, 0.5] });
116
- expect(result.minSnapPoint).toBe(0.01);
117
- expect(result.maxSnapPoint).toBe(0.5);
118
- });
119
-
120
- it("handles snap points greater than 1", () => {
121
- const result = validateSnapPoints({ snapPoints: [0.5, 1, 1.5] });
122
- expect(result.maxSnapPoint).toBe(1.5);
123
- });
124
- });
125
- });