react-native-screen-transitions 3.4.0-beta.2 → 3.4.0-rc.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.
package/README.md CHANGED
@@ -23,12 +23,14 @@ Use the notes below as the source of truth when migrating examples or generating
23
23
  ### Added / Expanded
24
24
 
25
25
  - **Auto snap sizing** with `snapPoints: ["auto"]` and `current.layouts.content`
26
+ - **Scoped screen state access** through `previous`, `current`, `next`, `active`, and `inactive`, with `current.layouts` and `current.snapIndex`
26
27
  - **Compound bounds components** via `Transition.Boundary.View`, `Transition.Boundary.Trigger`, and `Transition.Boundary.Target`
27
28
  - **`Transition.createBoundaryComponent`** for building custom boundary wrappers, including `alreadyAnimated` support
28
29
  - **Navigation-style bounds zoom** through `bounds({ id }).navigation.zoom()`
29
30
  - **`navigationMaskEnabled`** for library-managed masked navigation transitions
30
31
  - **Ancestor targeting** in `useScreenGesture()` and `useScreenAnimation()`
31
32
  - **Gesture release tuning** with `gestureReleaseVelocityScale` and `gestureReleaseVelocityMax`
33
+ - **`Transition.Specs.FlingSpec`** for underdamped fling-style release motion
32
34
  - **Surface slot support** through `surfaceComponent` and the interpolator `surface` slot
33
35
  - **Animated `props` support across all slots** via `{ style, props }` slot returns
34
36
  - **Optional first-screen animation** with `experimental_animateOnInitialMount`
@@ -311,6 +313,17 @@ options={{
311
313
  }}
312
314
  ```
313
315
 
316
+ Built-in starting points are available on `Transition.Specs`:
317
+
318
+ ```tsx
319
+ transitionSpec: {
320
+ open: Transition.Specs.DefaultSpec,
321
+ close: Transition.Specs.FlingSpec,
322
+ expand: Transition.Specs.DefaultSnapSpec,
323
+ collapse: Transition.Specs.DefaultSnapSpec,
324
+ }
325
+ ```
326
+
314
327
  ---
315
328
 
316
329
  ## Gestures
@@ -938,7 +951,7 @@ The Native Stack uses transparent modal presentation to intercept transitions. T
938
951
 
939
952
  For most apps, Blank Stack avoids these issues entirely.
940
953
 
941
- ### Component Stack (Experimental)
954
+ ### Component Stack (Deprecated Compatibility)
942
955
 
943
956
  - **No deep linking** – Routes aren't part of your URL structure
944
957
  - **Isolated state** – Doesn't affect parent navigation
@@ -976,6 +989,8 @@ options={{
976
989
 
977
990
  Prefer `Transition.Boundary.*` for explicit shared-element ownership, and prefer `bounds({ id }).navigation.zoom()` with `navigationMaskEnabled` when you want library-managed navigation-style masked transitions.
978
991
 
992
+ If you used early 3.4 prerelease docs or examples, `maskEnabled` remains accepted as a compatibility alias, but new docs and examples should use `navigationMaskEnabled`.
993
+
979
994
  This section is kept for compatibility with legacy presets such as `SharedIGImage` and `SharedAppleMusic`.
980
995
 
981
996
  > **Note**: Requires native code. Will not work in Expo Go.
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ var _blankStack = require("../../blank-stack");
4
+ var _ = require("..");
5
+ const slotStyle = {
6
+ style: {
7
+ opacity: 1
8
+ },
9
+ props: {
10
+ intensity: 80
11
+ }
12
+ };
13
+ const nestedInterpolatedStyle = {
14
+ content: slotStyle,
15
+ backdrop: {
16
+ opacity: 0.5
17
+ },
18
+ surface: {
19
+ style: {
20
+ transform: [{
21
+ scale: 0.98
22
+ }]
23
+ }
24
+ },
25
+ "hero-image": {
26
+ style: {
27
+ borderRadius: 24
28
+ }
29
+ }
30
+ };
31
+ const legacyInterpolatedStyle = {
32
+ contentStyle: {
33
+ opacity: 1
34
+ },
35
+ backdropStyle: {
36
+ opacity: 0.5
37
+ },
38
+ overlayStyle: {
39
+ opacity: 0.25
40
+ }
41
+ };
42
+ const zoomOptions = {
43
+ target: "bound",
44
+ debug: true,
45
+ borderRadius: 36,
46
+ focusedElementOpacity: {
47
+ open: [0, 0.35, 0, 1],
48
+ close: [0.65, 1, 0, 1]
49
+ },
50
+ unfocusedElementOpacity: {
51
+ open: [1, 2, 1, 0],
52
+ close: [1.85, 2, 1, 0]
53
+ },
54
+ backgroundScale: 0.97,
55
+ horizontalDragScale: [0.9, 1.02, 2],
56
+ verticalDragScale: [0.96, 1.01, 2.25],
57
+ horizontalDragTranslation: [0.5, 1, 1.5],
58
+ verticalDragTranslation: [0, 0, 1]
59
+ };
60
+ const gestureTarget = {
61
+ ancestor: 2
62
+ };
63
+ const numericBoundsResult = interpolationProps.bounds({
64
+ id: 42
65
+ });
66
+ const absoluteRawBoundsResult = interpolationProps.bounds({
67
+ id: 42,
68
+ method: "size",
69
+ space: "absolute",
70
+ raw: true
71
+ });
72
+ const zoomInterpolatedStyle = interpolationProps.bounds({
73
+ id: 42
74
+ }).navigation.zoom({
75
+ target: "bound"
76
+ });
77
+ const absoluteRawBoundsWidth = absoluteRawBoundsResult.width;
78
+ const absoluteRawBoundsTranslateX = absoluteRawBoundsResult.translateX;
79
+ const maybeContentHeight = interpolationProps.layouts.content?.height;
80
+ const maybeCurrentContentHeight = interpolationProps.current.layouts.content?.height;
81
+ const currentSnapIndex = interpolationProps.current.snapIndex;
82
+ const nextNameOptions = {
83
+ navigationMaskEnabled: true,
84
+ sheetScrollGestureBehavior: "collapse-only"
85
+ };
86
+ const initialMountAnimationOptions = {
87
+ experimental_animateOnInitialMount: true
88
+ };
89
+ const deprecatedAliasOptions = {
90
+ maskEnabled: true,
91
+ expandViaScrollView: false
92
+ };
93
+ const precedenceOptions = {
94
+ navigationMaskEnabled: false,
95
+ maskEnabled: true,
96
+ sheetScrollGestureBehavior: "expand-and-collapse",
97
+ expandViaScrollView: false
98
+ };
99
+ const emptyInterpolatorOptions = {
100
+ screenStyleInterpolator: () => null
101
+ };
102
+ const blankStackFactoryOptions = {
103
+ independent: true,
104
+ enableNativeScreens: false
105
+ };
106
+ function StaticBlankHomeScreen(_props) {
107
+ return null;
108
+ }
109
+ function StaticBlankDetailsScreen(_props) {
110
+ return null;
111
+ }
112
+ const defaultBlankStack = (0, _blankStack.createBlankStackNavigator)();
113
+ const viewBlankStackProps = {
114
+ enableNativeScreens: false
115
+ };
116
+ const independentBlankStackProps = {
117
+ independent: true
118
+ };
119
+ const independentViewBlankStackProps = {
120
+ independent: true,
121
+ enableNativeScreens: false
122
+ };
123
+ const staticBlankStack = (0, _blankStack.createBlankStackNavigator)({
124
+ initialRouteName: "Home",
125
+ screens: {
126
+ Home: StaticBlankHomeScreen,
127
+ Details: StaticBlankDetailsScreen
128
+ }
129
+ });
130
+ const staticViewBlankStack = (0, _blankStack.createBlankStackNavigator)({
131
+ initialRouteName: "Home",
132
+ enableNativeScreens: false,
133
+ screens: {
134
+ Home: StaticBlankHomeScreen,
135
+ Details: StaticBlankDetailsScreen
136
+ }
137
+ });
138
+ const publicApiTypecheck = {
139
+ navigationSlots: {
140
+ container: _.NAVIGATION_MASK_CONTAINER_STYLE_ID,
141
+ mask: _.NAVIGATION_MASK_ELEMENT_STYLE_ID
142
+ },
143
+ slotStyle,
144
+ nestedInterpolatedStyle,
145
+ legacyInterpolatedStyle,
146
+ gestureTarget,
147
+ numericBoundsResult,
148
+ absoluteRawBoundsResult,
149
+ absoluteRawBoundsWidth,
150
+ absoluteRawBoundsTranslateX,
151
+ zoomInterpolatedStyle,
152
+ maybeContentHeight,
153
+ maybeCurrentContentHeight,
154
+ currentSnapIndex,
155
+ zoomOptions,
156
+ nextNameOptions,
157
+ initialMountAnimationOptions,
158
+ deprecatedAliasOptions,
159
+ precedenceOptions,
160
+ emptyInterpolatorOptions,
161
+ blankStackFactoryOptions,
162
+ viewBlankStackProps,
163
+ independentBlankStackProps,
164
+ independentViewBlankStackProps,
165
+ staticBlankStack,
166
+ staticViewBlankStack
167
+ };
168
+ void publicApiTypecheck;
169
+ //# sourceMappingURL=public-api.typecheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_blankStack","require","_","slotStyle","style","opacity","props","intensity","nestedInterpolatedStyle","content","backdrop","surface","transform","scale","borderRadius","legacyInterpolatedStyle","contentStyle","backdropStyle","overlayStyle","zoomOptions","target","debug","focusedElementOpacity","open","close","unfocusedElementOpacity","backgroundScale","horizontalDragScale","verticalDragScale","horizontalDragTranslation","verticalDragTranslation","gestureTarget","ancestor","numericBoundsResult","interpolationProps","bounds","id","absoluteRawBoundsResult","method","space","raw","zoomInterpolatedStyle","navigation","zoom","absoluteRawBoundsWidth","width","absoluteRawBoundsTranslateX","translateX","maybeContentHeight","layouts","height","maybeCurrentContentHeight","current","currentSnapIndex","snapIndex","nextNameOptions","navigationMaskEnabled","sheetScrollGestureBehavior","initialMountAnimationOptions","experimental_animateOnInitialMount","deprecatedAliasOptions","maskEnabled","expandViaScrollView","precedenceOptions","emptyInterpolatorOptions","screenStyleInterpolator","blankStackFactoryOptions","independent","enableNativeScreens","StaticBlankHomeScreen","_props","StaticBlankDetailsScreen","defaultBlankStack","createBlankStackNavigator","viewBlankStackProps","independentBlankStackProps","independentViewBlankStackProps","staticBlankStack","initialRouteName","screens","Home","Details","staticViewBlankStack","publicApiTypecheck","navigationSlots","container","NAVIGATION_MASK_CONTAINER_STYLE_ID","mask","NAVIGATION_MASK_ELEMENT_STYLE_ID"],"sourceRoot":"../../../../src","sources":["shared/typecheck/public-api.typecheck.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ import { createBlankStackNavigator } from "../../blank-stack";
4
+ import { NAVIGATION_MASK_CONTAINER_STYLE_ID, NAVIGATION_MASK_ELEMENT_STYLE_ID } from "..";
5
+ const slotStyle = {
6
+ style: {
7
+ opacity: 1
8
+ },
9
+ props: {
10
+ intensity: 80
11
+ }
12
+ };
13
+ const nestedInterpolatedStyle = {
14
+ content: slotStyle,
15
+ backdrop: {
16
+ opacity: 0.5
17
+ },
18
+ surface: {
19
+ style: {
20
+ transform: [{
21
+ scale: 0.98
22
+ }]
23
+ }
24
+ },
25
+ "hero-image": {
26
+ style: {
27
+ borderRadius: 24
28
+ }
29
+ }
30
+ };
31
+ const legacyInterpolatedStyle = {
32
+ contentStyle: {
33
+ opacity: 1
34
+ },
35
+ backdropStyle: {
36
+ opacity: 0.5
37
+ },
38
+ overlayStyle: {
39
+ opacity: 0.25
40
+ }
41
+ };
42
+ const zoomOptions = {
43
+ target: "bound",
44
+ debug: true,
45
+ borderRadius: 36,
46
+ focusedElementOpacity: {
47
+ open: [0, 0.35, 0, 1],
48
+ close: [0.65, 1, 0, 1]
49
+ },
50
+ unfocusedElementOpacity: {
51
+ open: [1, 2, 1, 0],
52
+ close: [1.85, 2, 1, 0]
53
+ },
54
+ backgroundScale: 0.97,
55
+ horizontalDragScale: [0.9, 1.02, 2],
56
+ verticalDragScale: [0.96, 1.01, 2.25],
57
+ horizontalDragTranslation: [0.5, 1, 1.5],
58
+ verticalDragTranslation: [0, 0, 1]
59
+ };
60
+ const gestureTarget = {
61
+ ancestor: 2
62
+ };
63
+ const numericBoundsResult = interpolationProps.bounds({
64
+ id: 42
65
+ });
66
+ const absoluteRawBoundsResult = interpolationProps.bounds({
67
+ id: 42,
68
+ method: "size",
69
+ space: "absolute",
70
+ raw: true
71
+ });
72
+ const zoomInterpolatedStyle = interpolationProps.bounds({
73
+ id: 42
74
+ }).navigation.zoom({
75
+ target: "bound"
76
+ });
77
+ const absoluteRawBoundsWidth = absoluteRawBoundsResult.width;
78
+ const absoluteRawBoundsTranslateX = absoluteRawBoundsResult.translateX;
79
+ const maybeContentHeight = interpolationProps.layouts.content?.height;
80
+ const maybeCurrentContentHeight = interpolationProps.current.layouts.content?.height;
81
+ const currentSnapIndex = interpolationProps.current.snapIndex;
82
+ const nextNameOptions = {
83
+ navigationMaskEnabled: true,
84
+ sheetScrollGestureBehavior: "collapse-only"
85
+ };
86
+ const initialMountAnimationOptions = {
87
+ experimental_animateOnInitialMount: true
88
+ };
89
+ const deprecatedAliasOptions = {
90
+ maskEnabled: true,
91
+ expandViaScrollView: false
92
+ };
93
+ const precedenceOptions = {
94
+ navigationMaskEnabled: false,
95
+ maskEnabled: true,
96
+ sheetScrollGestureBehavior: "expand-and-collapse",
97
+ expandViaScrollView: false
98
+ };
99
+ const emptyInterpolatorOptions = {
100
+ screenStyleInterpolator: () => null
101
+ };
102
+ const blankStackFactoryOptions = {
103
+ independent: true,
104
+ enableNativeScreens: false
105
+ };
106
+ function StaticBlankHomeScreen(_props) {
107
+ return null;
108
+ }
109
+ function StaticBlankDetailsScreen(_props) {
110
+ return null;
111
+ }
112
+ const defaultBlankStack = createBlankStackNavigator();
113
+ const viewBlankStackProps = {
114
+ enableNativeScreens: false
115
+ };
116
+ const independentBlankStackProps = {
117
+ independent: true
118
+ };
119
+ const independentViewBlankStackProps = {
120
+ independent: true,
121
+ enableNativeScreens: false
122
+ };
123
+ const staticBlankStack = createBlankStackNavigator({
124
+ initialRouteName: "Home",
125
+ screens: {
126
+ Home: StaticBlankHomeScreen,
127
+ Details: StaticBlankDetailsScreen
128
+ }
129
+ });
130
+ const staticViewBlankStack = createBlankStackNavigator({
131
+ initialRouteName: "Home",
132
+ enableNativeScreens: false,
133
+ screens: {
134
+ Home: StaticBlankHomeScreen,
135
+ Details: StaticBlankDetailsScreen
136
+ }
137
+ });
138
+ const publicApiTypecheck = {
139
+ navigationSlots: {
140
+ container: NAVIGATION_MASK_CONTAINER_STYLE_ID,
141
+ mask: NAVIGATION_MASK_ELEMENT_STYLE_ID
142
+ },
143
+ slotStyle,
144
+ nestedInterpolatedStyle,
145
+ legacyInterpolatedStyle,
146
+ gestureTarget,
147
+ numericBoundsResult,
148
+ absoluteRawBoundsResult,
149
+ absoluteRawBoundsWidth,
150
+ absoluteRawBoundsTranslateX,
151
+ zoomInterpolatedStyle,
152
+ maybeContentHeight,
153
+ maybeCurrentContentHeight,
154
+ currentSnapIndex,
155
+ zoomOptions,
156
+ nextNameOptions,
157
+ initialMountAnimationOptions,
158
+ deprecatedAliasOptions,
159
+ precedenceOptions,
160
+ emptyInterpolatorOptions,
161
+ blankStackFactoryOptions,
162
+ viewBlankStackProps,
163
+ independentBlankStackProps,
164
+ independentViewBlankStackProps,
165
+ staticBlankStack,
166
+ staticViewBlankStack
167
+ };
168
+ void publicApiTypecheck;
169
+ //# sourceMappingURL=public-api.typecheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createBlankStackNavigator","NAVIGATION_MASK_CONTAINER_STYLE_ID","NAVIGATION_MASK_ELEMENT_STYLE_ID","slotStyle","style","opacity","props","intensity","nestedInterpolatedStyle","content","backdrop","surface","transform","scale","borderRadius","legacyInterpolatedStyle","contentStyle","backdropStyle","overlayStyle","zoomOptions","target","debug","focusedElementOpacity","open","close","unfocusedElementOpacity","backgroundScale","horizontalDragScale","verticalDragScale","horizontalDragTranslation","verticalDragTranslation","gestureTarget","ancestor","numericBoundsResult","interpolationProps","bounds","id","absoluteRawBoundsResult","method","space","raw","zoomInterpolatedStyle","navigation","zoom","absoluteRawBoundsWidth","width","absoluteRawBoundsTranslateX","translateX","maybeContentHeight","layouts","height","maybeCurrentContentHeight","current","currentSnapIndex","snapIndex","nextNameOptions","navigationMaskEnabled","sheetScrollGestureBehavior","initialMountAnimationOptions","experimental_animateOnInitialMount","deprecatedAliasOptions","maskEnabled","expandViaScrollView","precedenceOptions","emptyInterpolatorOptions","screenStyleInterpolator","blankStackFactoryOptions","independent","enableNativeScreens","StaticBlankHomeScreen","_props","StaticBlankDetailsScreen","defaultBlankStack","viewBlankStackProps","independentBlankStackProps","independentViewBlankStackProps","staticBlankStack","initialRouteName","screens","Home","Details","staticViewBlankStack","publicApiTypecheck","navigationSlots","container","mask"],"sourceRoot":"../../../../src","sources":["shared/typecheck/public-api.typecheck.ts"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screen-transitions",
3
- "version": "3.4.0-beta.2",
3
+ "version": "3.4.0-rc.0",
4
4
  "description": "Easy screen transitions for React Native and Expo",
5
5
  "author": "Ed",
6
6
  "license": "MIT",
@@ -0,0 +1,216 @@
1
+ import type { ComponentProps } from "react";
2
+ import {
3
+ type BlankStackFactoryOptions,
4
+ type BlankStackScreenProps,
5
+ createBlankStackNavigator,
6
+ } from "../../blank-stack";
7
+ import type {
8
+ BoundsNavigationZoomOptions,
9
+ BoundsNavigationZoomStyle,
10
+ ScreenGestureTarget,
11
+ ScreenInterpolationProps,
12
+ ScreenTransitionConfig,
13
+ TransitionInterpolatedStyle,
14
+ TransitionSlotStyle,
15
+ } from "..";
16
+ import {
17
+ NAVIGATION_MASK_CONTAINER_STYLE_ID,
18
+ NAVIGATION_MASK_ELEMENT_STYLE_ID,
19
+ } from "..";
20
+
21
+ const slotStyle: TransitionSlotStyle = {
22
+ style: {
23
+ opacity: 1,
24
+ },
25
+ props: {
26
+ intensity: 80,
27
+ },
28
+ };
29
+
30
+ const nestedInterpolatedStyle: TransitionInterpolatedStyle = {
31
+ content: slotStyle,
32
+ backdrop: {
33
+ opacity: 0.5,
34
+ },
35
+ surface: {
36
+ style: {
37
+ transform: [{ scale: 0.98 }],
38
+ },
39
+ },
40
+ "hero-image": {
41
+ style: {
42
+ borderRadius: 24,
43
+ },
44
+ },
45
+ };
46
+
47
+ const legacyInterpolatedStyle: TransitionInterpolatedStyle = {
48
+ contentStyle: {
49
+ opacity: 1,
50
+ },
51
+ backdropStyle: {
52
+ opacity: 0.5,
53
+ },
54
+ overlayStyle: {
55
+ opacity: 0.25,
56
+ },
57
+ };
58
+
59
+ const zoomOptions: BoundsNavigationZoomOptions = {
60
+ target: "bound",
61
+ debug: true,
62
+ borderRadius: 36,
63
+ focusedElementOpacity: {
64
+ open: [0, 0.35, 0, 1],
65
+ close: [0.65, 1, 0, 1],
66
+ },
67
+ unfocusedElementOpacity: {
68
+ open: [1, 2, 1, 0],
69
+ close: [1.85, 2, 1, 0],
70
+ },
71
+ backgroundScale: 0.97,
72
+ horizontalDragScale: [0.9, 1.02, 2],
73
+ verticalDragScale: [0.96, 1.01, 2.25],
74
+ horizontalDragTranslation: [0.5, 1, 1.5],
75
+ verticalDragTranslation: [0, 0, 1],
76
+ };
77
+
78
+ declare const interpolationProps: ScreenInterpolationProps;
79
+
80
+ const gestureTarget: ScreenGestureTarget = { ancestor: 2 };
81
+
82
+ const numericBoundsResult = interpolationProps.bounds({
83
+ id: 42,
84
+ });
85
+ const absoluteRawBoundsResult = interpolationProps.bounds({
86
+ id: 42,
87
+ method: "size",
88
+ space: "absolute",
89
+ raw: true,
90
+ });
91
+ const zoomInterpolatedStyle: BoundsNavigationZoomStyle = interpolationProps
92
+ .bounds({ id: 42 })
93
+ .navigation.zoom({
94
+ target: "bound",
95
+ });
96
+ const absoluteRawBoundsWidth: number = absoluteRawBoundsResult.width;
97
+ const absoluteRawBoundsTranslateX: number = absoluteRawBoundsResult.translateX;
98
+ const maybeContentHeight = interpolationProps.layouts.content?.height;
99
+ const maybeCurrentContentHeight =
100
+ interpolationProps.current.layouts.content?.height;
101
+ const currentSnapIndex = interpolationProps.current.snapIndex;
102
+ const nextNameOptions: ScreenTransitionConfig = {
103
+ navigationMaskEnabled: true,
104
+ sheetScrollGestureBehavior: "collapse-only",
105
+ };
106
+ const initialMountAnimationOptions: ScreenTransitionConfig = {
107
+ experimental_animateOnInitialMount: true,
108
+ };
109
+ const deprecatedAliasOptions: ScreenTransitionConfig = {
110
+ maskEnabled: true,
111
+ expandViaScrollView: false,
112
+ };
113
+ const precedenceOptions: ScreenTransitionConfig = {
114
+ navigationMaskEnabled: false,
115
+ maskEnabled: true,
116
+ sheetScrollGestureBehavior: "expand-and-collapse",
117
+ expandViaScrollView: false,
118
+ };
119
+ const emptyInterpolatorOptions: ScreenTransitionConfig = {
120
+ screenStyleInterpolator: () => null,
121
+ };
122
+
123
+ const blankStackFactoryOptions: BlankStackFactoryOptions = {
124
+ independent: true,
125
+ enableNativeScreens: false,
126
+ };
127
+
128
+ type StaticBlankStackParamList = {
129
+ Home: undefined;
130
+ Details: { id: string };
131
+ };
132
+
133
+ function StaticBlankHomeScreen(
134
+ _props: BlankStackScreenProps<StaticBlankStackParamList, "Home">,
135
+ ) {
136
+ return null;
137
+ }
138
+
139
+ function StaticBlankDetailsScreen(
140
+ _props: BlankStackScreenProps<StaticBlankStackParamList, "Details">,
141
+ ) {
142
+ return null;
143
+ }
144
+
145
+ const defaultBlankStack = createBlankStackNavigator();
146
+ type DefaultBlankStackNavigatorProps = ComponentProps<
147
+ typeof defaultBlankStack.Navigator
148
+ >;
149
+ const viewBlankStackProps: Pick<
150
+ DefaultBlankStackNavigatorProps,
151
+ "enableNativeScreens"
152
+ > = {
153
+ enableNativeScreens: false,
154
+ };
155
+ const independentBlankStackProps: Pick<
156
+ DefaultBlankStackNavigatorProps,
157
+ "independent"
158
+ > = {
159
+ independent: true,
160
+ };
161
+ const independentViewBlankStackProps: Pick<
162
+ DefaultBlankStackNavigatorProps,
163
+ "independent" | "enableNativeScreens"
164
+ > = {
165
+ independent: true,
166
+ enableNativeScreens: false,
167
+ };
168
+ const staticBlankStack = createBlankStackNavigator<StaticBlankStackParamList>({
169
+ initialRouteName: "Home",
170
+ screens: {
171
+ Home: StaticBlankHomeScreen,
172
+ Details: StaticBlankDetailsScreen,
173
+ },
174
+ });
175
+ const staticViewBlankStack =
176
+ createBlankStackNavigator<StaticBlankStackParamList>({
177
+ initialRouteName: "Home",
178
+ enableNativeScreens: false,
179
+ screens: {
180
+ Home: StaticBlankHomeScreen,
181
+ Details: StaticBlankDetailsScreen,
182
+ },
183
+ });
184
+
185
+ const publicApiTypecheck = {
186
+ navigationSlots: {
187
+ container: NAVIGATION_MASK_CONTAINER_STYLE_ID,
188
+ mask: NAVIGATION_MASK_ELEMENT_STYLE_ID,
189
+ },
190
+ slotStyle,
191
+ nestedInterpolatedStyle,
192
+ legacyInterpolatedStyle,
193
+ gestureTarget,
194
+ numericBoundsResult,
195
+ absoluteRawBoundsResult,
196
+ absoluteRawBoundsWidth,
197
+ absoluteRawBoundsTranslateX,
198
+ zoomInterpolatedStyle,
199
+ maybeContentHeight,
200
+ maybeCurrentContentHeight,
201
+ currentSnapIndex,
202
+ zoomOptions,
203
+ nextNameOptions,
204
+ initialMountAnimationOptions,
205
+ deprecatedAliasOptions,
206
+ precedenceOptions,
207
+ emptyInterpolatorOptions,
208
+ blankStackFactoryOptions,
209
+ viewBlankStackProps,
210
+ independentBlankStackProps,
211
+ independentViewBlankStackProps,
212
+ staticBlankStack,
213
+ staticViewBlankStack,
214
+ };
215
+
216
+ void publicApiTypecheck;