react-native-screen-transitions 3.4.0-alpha.6 → 3.4.0-alpha.7
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 +136 -46
- package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js +27 -45
- package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
- package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js +39 -0
- package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js.map +1 -0
- package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js +232 -0
- package/lib/commonjs/shared/components/create-boundary-component/create-boundary-component.js.map +1 -0
- package/lib/commonjs/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js +2 -4
- package/lib/commonjs/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js +4 -3
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js +2 -1
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/index.js +20 -214
- package/lib/commonjs/shared/components/create-boundary-component/index.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js +63 -0
- package/lib/commonjs/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +1 -0
- package/lib/commonjs/shared/components/create-transition-aware-component.js +29 -7
- package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +1 -1
- package/lib/commonjs/shared/components/screen-container/index.js +8 -12
- package/lib/commonjs/shared/components/screen-container/index.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/backdrop.js +4 -4
- package/lib/commonjs/shared/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/content.js +4 -4
- package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js +4 -4
- package/lib/commonjs/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/surface-container.js +4 -4
- package/lib/commonjs/shared/components/screen-container/layers/surface-container.js.map +1 -1
- package/lib/commonjs/shared/constants.js +2 -1
- package/lib/commonjs/shared/constants.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/screen-composer.js +1 -1
- package/lib/commonjs/shared/providers/screen/screen-composer.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/helpers/build-resolved-style-map.js +144 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/build-resolved-style-map.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js +28 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/split-normalized-style-maps.js +39 -0
- package/lib/commonjs/shared/providers/screen/styles/helpers/split-normalized-style-maps.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles/index.js +25 -0
- package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/{styles.provider.js → styles/styles.provider.js} +47 -39
- package/lib/commonjs/shared/providers/screen/styles/styles.provider.js.map +1 -0
- package/lib/commonjs/shared/utils/bounds/helpers/compute-bounds-styles.js +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/compute-bounds-styles.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/helpers/style-composers.js +21 -10
- package/lib/commonjs/shared/utils/bounds/helpers/style-composers.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/zoom/build.js +56 -30
- package/lib/commonjs/shared/utils/bounds/zoom/build.js.map +1 -1
- package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js +27 -45
- package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
- package/lib/module/component-stack/navigators/create-component-stack-navigator.js +1 -1
- package/lib/module/shared/components/create-boundary-component/components/boundary-target.js +34 -0
- package/lib/module/shared/components/create-boundary-component/components/boundary-target.js.map +1 -0
- package/lib/module/shared/components/create-boundary-component/create-boundary-component.js +227 -0
- package/lib/module/shared/components/create-boundary-component/create-boundary-component.js.map +1 -0
- package/lib/module/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js +2 -4
- package/lib/module/shared/components/create-boundary-component/hooks/helpers/measurement-rules.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js +4 -3
- package/lib/module/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js +2 -1
- package/lib/module/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/index.js +16 -213
- package/lib/module/shared/components/create-boundary-component/index.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js +56 -0
- package/lib/module/shared/components/create-boundary-component/providers/boundary-owner.provider.js.map +1 -0
- package/lib/module/shared/components/create-transition-aware-component.js +30 -8
- package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/float-overlay.js +1 -1
- package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -1
- package/lib/module/shared/components/screen-container/index.js +8 -12
- package/lib/module/shared/components/screen-container/index.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/backdrop.js +4 -4
- package/lib/module/shared/components/screen-container/layers/backdrop.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/content.js +4 -4
- package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js +4 -4
- package/lib/module/shared/components/screen-container/layers/maybe-masked-navigation-container.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/surface-container.js +4 -4
- package/lib/module/shared/components/screen-container/layers/surface-container.js.map +1 -1
- package/lib/module/shared/constants.js +2 -1
- package/lib/module/shared/constants.js.map +1 -1
- package/lib/module/shared/providers/screen/screen-composer.js +1 -1
- package/lib/module/shared/providers/screen/screen-composer.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/helpers/build-resolved-style-map.js +139 -0
- package/lib/module/shared/providers/screen/styles/helpers/build-resolved-style-map.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js +23 -0
- package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/helpers/split-normalized-style-maps.js +34 -0
- package/lib/module/shared/providers/screen/styles/helpers/split-normalized-style-maps.js.map +1 -0
- package/lib/module/shared/providers/screen/styles/index.js +4 -0
- package/lib/module/shared/providers/screen/styles/index.js.map +1 -0
- package/lib/module/shared/providers/screen/{styles.provider.js → styles/styles.provider.js} +48 -40
- package/lib/module/shared/providers/screen/styles/styles.provider.js.map +1 -0
- package/lib/module/shared/utils/bounds/helpers/compute-bounds-styles.js +2 -2
- package/lib/module/shared/utils/bounds/helpers/compute-bounds-styles.js.map +1 -1
- package/lib/module/shared/utils/bounds/helpers/style-composers.js +21 -10
- package/lib/module/shared/utils/bounds/helpers/style-composers.js.map +1 -1
- package/lib/module/shared/utils/bounds/zoom/build.js +55 -28
- package/lib/module/shared/utils/bounds/zoom/build.js.map +1 -1
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +9 -15
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
- package/lib/typescript/blank-stack/types.d.ts +6 -4
- package/lib/typescript/blank-stack/types.d.ts.map +1 -1
- package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -1
- package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts +209 -0
- package/lib/typescript/shared/components/create-boundary-component/components/boundary-target.d.ts.map +1 -0
- package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts +8 -0
- package/lib/typescript/shared/components/create-boundary-component/create-boundary-component.d.ts.map +1 -0
- package/lib/typescript/shared/components/create-boundary-component/hooks/helpers/measurement-rules.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.d.ts +2 -8
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.d.ts +0 -1
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/index.d.ts +216 -12
- package/lib/typescript/shared/components/create-boundary-component/index.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts +35 -0
- package/lib/typescript/shared/components/create-boundary-component/providers/boundary-owner.provider.d.ts.map +1 -0
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/index.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/maybe-masked-navigation-container.d.ts.map +1 -1
- package/lib/typescript/shared/constants.d.ts +1 -0
- package/lib/typescript/shared/constants.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +209 -2
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/helpers/build-resolved-style-map.d.ts +11 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/build-resolved-style-map.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.d.ts +7 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/split-normalized-style-maps.d.ts +6 -0
- package/lib/typescript/shared/providers/screen/styles/helpers/split-normalized-style-maps.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles/index.d.ts +2 -0
- package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/{styles.provider.d.ts → styles/styles.provider.d.ts} +3 -5
- package/lib/typescript/shared/providers/screen/styles/styles.provider.d.ts.map +1 -0
- package/lib/typescript/shared/types/animation.types.d.ts +3 -9
- package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/index.d.ts +1 -1
- package/lib/typescript/shared/types/index.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +2 -4
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/compute-bounds-styles.d.ts +1 -11
- package/lib/typescript/shared/utils/bounds/helpers/compute-bounds-styles.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/style-composers.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/zoom/build.d.ts +1 -1
- package/lib/typescript/shared/utils/bounds/zoom/build.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/blank-stack/navigators/create-blank-stack-navigator.tsx +37 -80
- package/src/blank-stack/types.ts +7 -4
- package/src/component-stack/navigators/create-component-stack-navigator.tsx +1 -1
- package/src/shared/components/create-boundary-component/components/boundary-target.tsx +45 -0
- package/src/shared/components/create-boundary-component/create-boundary-component.tsx +282 -0
- package/src/shared/components/create-boundary-component/hooks/helpers/measurement-rules.ts +2 -7
- package/src/shared/components/create-boundary-component/hooks/use-boundary-measure-and-store.ts +6 -10
- package/src/shared/components/create-boundary-component/hooks/use-pending-destination-retry-measurement.ts +3 -2
- package/src/shared/components/create-boundary-component/index.tsx +16 -252
- package/src/shared/components/create-boundary-component/providers/boundary-owner.provider.tsx +109 -0
- package/src/shared/components/create-transition-aware-component.tsx +33 -5
- package/src/shared/components/overlay/variations/float-overlay.tsx +1 -1
- package/src/shared/components/screen-container/index.tsx +10 -13
- package/src/shared/components/screen-container/layers/backdrop.tsx +4 -4
- package/src/shared/components/screen-container/layers/content.tsx +4 -4
- package/src/shared/components/screen-container/layers/maybe-masked-navigation-container.tsx +6 -4
- package/src/shared/components/screen-container/layers/surface-container.tsx +4 -4
- package/src/shared/constants.ts +1 -0
- package/src/shared/index.ts +0 -1
- package/src/shared/providers/screen/screen-composer.tsx +1 -1
- package/src/shared/providers/screen/styles/helpers/build-resolved-style-map.ts +185 -0
- package/src/shared/providers/screen/styles/helpers/resolve-interpolated-style-output.ts +31 -0
- package/src/shared/providers/screen/styles/helpers/split-normalized-style-maps.ts +44 -0
- package/src/shared/providers/screen/styles/index.tsx +5 -0
- package/src/shared/providers/screen/styles/styles.provider.tsx +173 -0
- package/src/shared/types/animation.types.ts +3 -10
- package/src/shared/types/index.ts +0 -1
- package/src/shared/types/screen.types.ts +2 -4
- package/src/shared/utils/bounds/helpers/compute-bounds-styles.ts +2 -1
- package/src/shared/utils/bounds/helpers/style-composers.ts +11 -0
- package/src/shared/utils/bounds/zoom/build.ts +85 -70
- package/lib/commonjs/shared/components/screen-container/deferred-visibility-host.js +0 -45
- package/lib/commonjs/shared/components/screen-container/deferred-visibility-host.js.map +0 -1
- package/lib/commonjs/shared/hooks/animation/use-associated-style.js +0 -234
- package/lib/commonjs/shared/hooks/animation/use-associated-style.js.map +0 -1
- package/lib/commonjs/shared/providers/screen/helpers/resolve-interpolated-style-output.js +0 -50
- package/lib/commonjs/shared/providers/screen/helpers/resolve-interpolated-style-output.js.map +0 -1
- package/lib/commonjs/shared/providers/screen/styles.provider.js.map +0 -1
- package/lib/module/shared/components/screen-container/deferred-visibility-host.js +0 -40
- package/lib/module/shared/components/screen-container/deferred-visibility-host.js.map +0 -1
- package/lib/module/shared/hooks/animation/use-associated-style.js +0 -229
- package/lib/module/shared/hooks/animation/use-associated-style.js.map +0 -1
- package/lib/module/shared/providers/screen/helpers/resolve-interpolated-style-output.js +0 -44
- package/lib/module/shared/providers/screen/helpers/resolve-interpolated-style-output.js.map +0 -1
- package/lib/module/shared/providers/screen/styles.provider.js.map +0 -1
- package/lib/typescript/shared/components/screen-container/deferred-visibility-host.d.ts +0 -14
- package/lib/typescript/shared/components/screen-container/deferred-visibility-host.d.ts.map +0 -1
- package/lib/typescript/shared/hooks/animation/use-associated-style.d.ts +0 -32
- package/lib/typescript/shared/hooks/animation/use-associated-style.d.ts.map +0 -1
- package/lib/typescript/shared/providers/screen/helpers/resolve-interpolated-style-output.d.ts +0 -14
- package/lib/typescript/shared/providers/screen/helpers/resolve-interpolated-style-output.d.ts.map +0 -1
- package/lib/typescript/shared/providers/screen/styles.provider.d.ts.map +0 -1
- package/src/shared/components/screen-container/deferred-visibility-host.tsx +0 -44
- package/src/shared/hooks/animation/use-associated-style.ts +0 -297
- package/src/shared/providers/screen/helpers/resolve-interpolated-style-output.ts +0 -61
- package/src/shared/providers/screen/styles.provider.tsx +0 -164
package/README.md
CHANGED
|
@@ -17,15 +17,36 @@ Customizable screen transitions for React Native. Build gesture-driven, shared e
|
|
|
17
17
|
|
|
18
18
|
## What's New In 3.4
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
3.4 introduces a newer, more explicit path for shared transitions and snap-driven layouts.
|
|
21
|
+
Use the notes below as the source of truth when migrating examples or generating docs.
|
|
22
|
+
|
|
23
|
+
### Added / Expanded
|
|
24
|
+
|
|
25
|
+
- **Auto snap sizing** with `snapPoints: ["auto"]` and `current.layouts.content`
|
|
26
|
+
- **Compound bounds components** via `Transition.Boundary.View`, `Transition.Boundary.Trigger`, and `Transition.Boundary.Target`
|
|
27
|
+
- **`Transition.createBoundaryComponent`** for building custom boundary wrappers, including `alreadyAnimated` support
|
|
24
28
|
- **Navigation-style bounds zoom** through `bounds({ id }).navigation.zoom()`
|
|
29
|
+
- **`navigationMaskEnabled`** for library-managed masked navigation transitions
|
|
25
30
|
- **Ancestor targeting** in `useScreenGesture()` and `useScreenAnimation()`
|
|
26
31
|
- **Gesture release tuning** with `gestureReleaseVelocityScale` and `gestureReleaseVelocityMax`
|
|
27
32
|
- **Surface slot support** through `surfaceComponent` and the interpolator `surface` slot
|
|
33
|
+
- **Animated `props` support across all slots** via `{ style, props }` slot returns
|
|
28
34
|
- **Optional first-screen animation** with `experimental_animateOnInitialMount`
|
|
35
|
+
- **`logicallySettled`** for choreography that should finish before a spring is fully at rest
|
|
36
|
+
|
|
37
|
+
### Deprecated / Replaced
|
|
38
|
+
|
|
39
|
+
- **`sharedBoundTag` on transition-aware components is deprecated for new work.** Prefer `Transition.Boundary.*` for new shared transition flows.
|
|
40
|
+
- **`Transition.MaskedView` is deprecated for new work.** Prefer `Transition.Boundary.*` with `bounds({ id }).navigation.zoom()` and `navigationMaskEnabled` for library-managed shared navigation transitions.
|
|
41
|
+
- **`createComponentStackNavigator` is deprecated.** Prefer blank stack for embedded and independent flows.
|
|
42
|
+
- **`expandViaScrollView` was renamed to `sheetScrollGestureBehavior`.**
|
|
43
|
+
- **Flat interpolator keys are deprecated.** Use `content`, `backdrop`, and `surface` instead of `contentStyle`, `backdropStyle`, and `overlayStyle`.
|
|
44
|
+
- **Legacy interpolator accessors are deprecated.** Use `current.layouts` and `current.snapIndex` instead of top-level `layouts` and `snapIndex`.
|
|
45
|
+
- **If you saw older alpha docs using `backgroundComponent` / `background`, use `surfaceComponent` / `surface`.**
|
|
46
|
+
|
|
47
|
+
### Removed
|
|
48
|
+
|
|
49
|
+
- Deprecated screen overlay mode and legacy overlay animation props were removed.
|
|
29
50
|
|
|
30
51
|
## When to Use This Library
|
|
31
52
|
|
|
@@ -103,6 +124,41 @@ export const Stack = withLayoutContext<
|
|
|
103
124
|
>(Navigator);
|
|
104
125
|
```
|
|
105
126
|
|
|
127
|
+
### 3. Static Config
|
|
128
|
+
|
|
129
|
+
Blank stack-specific navigator props follow React Navigation's custom navigator pattern.
|
|
130
|
+
|
|
131
|
+
For the dynamic API, pass them to `<Stack.Navigator>`:
|
|
132
|
+
|
|
133
|
+
```tsx
|
|
134
|
+
const Stack = createBlankStackNavigator();
|
|
135
|
+
|
|
136
|
+
function App() {
|
|
137
|
+
return (
|
|
138
|
+
<Stack.Navigator independent enableNativeScreens={false}>
|
|
139
|
+
<Stack.Screen name="Home" component={HomeScreen} />
|
|
140
|
+
<Stack.Screen name="Detail" component={DetailScreen} />
|
|
141
|
+
</Stack.Navigator>
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
For the static API, keep them in the same config object:
|
|
147
|
+
|
|
148
|
+
```tsx
|
|
149
|
+
import { createBlankStackNavigator } from "react-native-screen-transitions/blank-stack";
|
|
150
|
+
|
|
151
|
+
const Stack = createBlankStackNavigator({
|
|
152
|
+
initialRouteName: "Home",
|
|
153
|
+
screens: {
|
|
154
|
+
Home: HomeScreen,
|
|
155
|
+
Detail: DetailScreen,
|
|
156
|
+
},
|
|
157
|
+
independent: true,
|
|
158
|
+
enableNativeScreens: false,
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
106
162
|
---
|
|
107
163
|
|
|
108
164
|
## Presets
|
|
@@ -125,9 +181,9 @@ Use built-in presets for common transitions:
|
|
|
125
181
|
| `ZoomIn()` | Scales in with fade |
|
|
126
182
|
| `DraggableCard()` | Multi-directional drag with scaling |
|
|
127
183
|
| `ElasticCard()` | Elastic drag with overlay |
|
|
128
|
-
| `SharedIGImage({ sharedBoundTag })` | Instagram-style shared image
|
|
129
|
-
| `SharedAppleMusic({ sharedBoundTag })` | Apple Music-style shared element
|
|
130
|
-
| `SharedXImage({ sharedBoundTag })` | X (Twitter)-style image transition
|
|
184
|
+
| `SharedIGImage({ sharedBoundTag })` | Legacy Instagram-style shared image preset |
|
|
185
|
+
| `SharedAppleMusic({ sharedBoundTag })` | Legacy Apple Music-style shared element preset |
|
|
186
|
+
| `SharedXImage({ sharedBoundTag })` | Legacy X (Twitter)-style image transition preset |
|
|
131
187
|
|
|
132
188
|
---
|
|
133
189
|
|
|
@@ -167,7 +223,7 @@ options={{
|
|
|
167
223
|
|
|
168
224
|
```tsx
|
|
169
225
|
options={{
|
|
170
|
-
screenStyleInterpolator: ({ progress, layouts: { screen } }) => {
|
|
226
|
+
screenStyleInterpolator: ({ progress, current: { layouts: { screen } } }) => {
|
|
171
227
|
"worklet";
|
|
172
228
|
return {
|
|
173
229
|
content: {
|
|
@@ -190,7 +246,7 @@ options={{
|
|
|
190
246
|
|
|
191
247
|
```tsx
|
|
192
248
|
options={{
|
|
193
|
-
screenStyleInterpolator: ({ progress, layouts: { screen } }) => {
|
|
249
|
+
screenStyleInterpolator: ({ progress, current: { layouts: { screen } } }) => {
|
|
194
250
|
"worklet";
|
|
195
251
|
return {
|
|
196
252
|
content: {
|
|
@@ -211,21 +267,25 @@ Your interpolator can return:
|
|
|
211
267
|
|
|
212
268
|
```tsx
|
|
213
269
|
return {
|
|
214
|
-
content: { style: { ... } },
|
|
215
|
-
backdrop: { style: { ... } },
|
|
216
|
-
surface: { style: { ... }, props: { ... } },
|
|
217
|
-
["my-id"]: { style: { ... } },
|
|
270
|
+
content: { style: { ... }, props: { ... } }, // Main screen slot
|
|
271
|
+
backdrop: { style: { ... }, props: { ... } }, // Backdrop / blur / dimming
|
|
272
|
+
surface: { style: { ... }, props: { ... } }, // Custom surface layer
|
|
273
|
+
["my-id"]: { style: { ... }, props: { ... } }, // Specific element via styleId
|
|
218
274
|
};
|
|
219
275
|
```
|
|
220
276
|
|
|
221
|
-
|
|
277
|
+
Every slot supports animated `style` and animated `props`.
|
|
278
|
+
Use the shorthand style-only form when you only need styles, or the explicit
|
|
279
|
+
`{ style, props }` form when the wrapped component exposes animatable props.
|
|
280
|
+
|
|
281
|
+
Return `null`, `undefined`, or `{}` when you want an interpolator frame to apply no transition styles:
|
|
222
282
|
|
|
223
283
|
```tsx
|
|
224
284
|
screenStyleInterpolator: ({ bounds }) => {
|
|
225
285
|
"worklet";
|
|
226
286
|
|
|
227
287
|
const snapshot = bounds.getSnapshot("hero");
|
|
228
|
-
if (!snapshot) return
|
|
288
|
+
if (!snapshot) return null;
|
|
229
289
|
|
|
230
290
|
return {
|
|
231
291
|
content: {
|
|
@@ -390,18 +450,18 @@ Create multi-stop sheets that snap to defined positions. Works with any gesture
|
|
|
390
450
|
|
|
391
451
|
### Auto Snap Points
|
|
392
452
|
|
|
393
|
-
When you use `"auto"`, the library measures the content height and exposes it in `layouts.content`:
|
|
453
|
+
When you use `"auto"`, the library measures the content height and exposes it in `current.layouts.content`:
|
|
394
454
|
|
|
395
455
|
```tsx
|
|
396
|
-
screenStyleInterpolator: ({
|
|
456
|
+
screenStyleInterpolator: ({ current }) => {
|
|
397
457
|
"worklet";
|
|
398
458
|
|
|
399
|
-
const contentHeight = layouts.content?.height ?? 0;
|
|
459
|
+
const contentHeight = current.layouts.content?.height ?? 0;
|
|
400
460
|
|
|
401
461
|
return {
|
|
402
462
|
content: {
|
|
403
463
|
style: {
|
|
404
|
-
opacity: interpolate(snapIndex, [0, 1], [0.8, 1]),
|
|
464
|
+
opacity: interpolate(current.snapIndex, [0, 1], [0.8, 1]),
|
|
405
465
|
},
|
|
406
466
|
},
|
|
407
467
|
"sheet-height-debug": {
|
|
@@ -484,16 +544,16 @@ function BottomSheet() {
|
|
|
484
544
|
}
|
|
485
545
|
```
|
|
486
546
|
|
|
487
|
-
The animated
|
|
547
|
+
The animated snap point index is available via `current.snapIndex` in `ScreenInterpolationProps`:
|
|
488
548
|
|
|
489
549
|
```tsx
|
|
490
|
-
screenStyleInterpolator: ({
|
|
550
|
+
screenStyleInterpolator: ({ current }) => {
|
|
491
551
|
// snapIndex interpolates between snap point indices
|
|
492
552
|
// e.g., 0.5 means halfway between snap point 0 and 1
|
|
493
553
|
return {
|
|
494
554
|
content: {
|
|
495
555
|
style: {
|
|
496
|
-
opacity: interpolate(snapIndex, [0, 1], [0.5, 1]),
|
|
556
|
+
opacity: interpolate(current.snapIndex, [0, 1], [0.5, 1]),
|
|
497
557
|
},
|
|
498
558
|
},
|
|
499
559
|
};
|
|
@@ -524,17 +584,38 @@ transitionSpec: {
|
|
|
524
584
|
|
|
525
585
|
## Shared Elements (Bounds API)
|
|
526
586
|
|
|
527
|
-
Animate elements between screens by tagging them. In 3.4, the recommended API is `Transition.Boundary.*` for explicit bounds ownership
|
|
587
|
+
Animate elements between screens by tagging them. In 3.4, the recommended and forward-compatible API is `Transition.Boundary.*` for explicit bounds ownership.
|
|
588
|
+
|
|
589
|
+
`sharedBoundTag` on transition-aware components is deprecated and retained for legacy flows and presets.
|
|
528
590
|
|
|
529
591
|
### 1. Tag the Source
|
|
530
592
|
|
|
531
593
|
```tsx
|
|
532
|
-
<Transition.Boundary.
|
|
594
|
+
<Transition.Boundary.Trigger
|
|
533
595
|
id="avatar"
|
|
534
596
|
onPress={() => navigation.navigate("Profile")}
|
|
535
597
|
>
|
|
536
598
|
<Image source={avatar} style={{ width: 50, height: 50 }} />
|
|
537
|
-
</Transition.Boundary.
|
|
599
|
+
</Transition.Boundary.Trigger>
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
If the boundary owner is larger than the visual element you want to match,
|
|
603
|
+
wrap the measured descendant in `Transition.Boundary.Target`:
|
|
604
|
+
|
|
605
|
+
```tsx
|
|
606
|
+
<Transition.Boundary.Trigger
|
|
607
|
+
id="avatar"
|
|
608
|
+
onPress={() => navigation.navigate("Profile")}
|
|
609
|
+
style={styles.card}
|
|
610
|
+
>
|
|
611
|
+
<Transition.Boundary.Target>
|
|
612
|
+
<Image source={avatar} style={styles.image} />
|
|
613
|
+
</Transition.Boundary.Target>
|
|
614
|
+
|
|
615
|
+
<View style={styles.copy}>
|
|
616
|
+
<Text style={styles.title}>Profile</Text>
|
|
617
|
+
</View>
|
|
618
|
+
</Transition.Boundary.Trigger>
|
|
538
619
|
```
|
|
539
620
|
|
|
540
621
|
### 2. Tag the Destination
|
|
@@ -620,13 +701,14 @@ const TabBar = ({ focusedIndex, progress }) => {
|
|
|
620
701
|
|
|
621
702
|
| Component | Description |
|
|
622
703
|
| ----------------------- | -------------------------------------- |
|
|
623
|
-
| `Transition.View` | Animated view
|
|
624
|
-
| `Transition.Pressable` | Pressable
|
|
704
|
+
| `Transition.View` | Animated view; `sharedBoundTag` usage is legacy/deprecated |
|
|
705
|
+
| `Transition.Pressable` | Pressable; `sharedBoundTag` usage is legacy/deprecated |
|
|
625
706
|
| `Transition.ScrollView` | ScrollView with gesture coordination |
|
|
626
707
|
| `Transition.FlatList` | FlatList with gesture coordination |
|
|
627
708
|
| `Transition.Boundary.View` | Explicit bounds destination/source registration |
|
|
628
|
-
| `Transition.Boundary.
|
|
629
|
-
| `Transition.
|
|
709
|
+
| `Transition.Boundary.Trigger` | Pressable boundary owner that captures source bounds on press |
|
|
710
|
+
| `Transition.Boundary.Target` | Optional nested measurement target inside a boundary owner |
|
|
711
|
+
| `Transition.MaskedView` | Deprecated legacy reveal helper (requires native) |
|
|
630
712
|
|
|
631
713
|
Helper exports:
|
|
632
714
|
|
|
@@ -723,30 +805,32 @@ The full `screenStyleInterpolator` receives these props:
|
|
|
723
805
|
| ---------------- | -------------------------------------------------------- |
|
|
724
806
|
| `progress` | Combined progress (0-2) |
|
|
725
807
|
| `stackProgress` | Accumulated progress across entire stack |
|
|
726
|
-
| `snapIndex` | Animated snap point index (-1 if no snap points) |
|
|
727
808
|
| `focused` | Whether this screen is the topmost in the stack |
|
|
728
809
|
| `current` | Current screen state |
|
|
729
810
|
| `previous` | Previous screen state |
|
|
730
811
|
| `next` | Next screen state |
|
|
731
812
|
| `active` | Screen driving the transition |
|
|
732
813
|
| `inactive` | Screen NOT driving the transition |
|
|
733
|
-
| `layouts.screen` | Screen dimensions |
|
|
734
|
-
| `layouts.content` | Measured content dimensions when available (`"auto"` snap points) |
|
|
735
814
|
| `insets` | Safe area insets |
|
|
736
815
|
| `bounds` | Shared element bounds function |
|
|
737
816
|
|
|
817
|
+
Prefer `current.snapIndex`, `current.layouts.screen`, and `current.layouts.content` for new code.
|
|
818
|
+
|
|
738
819
|
### Screen State Properties
|
|
739
820
|
|
|
740
821
|
Each screen state (`current`, `previous`, `next`, `active`, `inactive`) contains:
|
|
741
822
|
|
|
742
823
|
| Property | Description |
|
|
743
824
|
| ----------- | ---------------------------------------- |
|
|
744
|
-
| `progress`
|
|
745
|
-
| `closing`
|
|
746
|
-
| `entering`
|
|
747
|
-
| `animating`
|
|
748
|
-
| `
|
|
749
|
-
| `
|
|
825
|
+
| `progress` | Animation progress (0 or 1) |
|
|
826
|
+
| `closing` | Whether closing (0 or 1) |
|
|
827
|
+
| `entering` | Whether entering (0 or 1) |
|
|
828
|
+
| `animating` | Whether animating (0 or 1) |
|
|
829
|
+
| `logicallySettled` | Whether choreography can treat the screen as done |
|
|
830
|
+
| `snapIndex` | Animated snap point index for this screen |
|
|
831
|
+
| `layouts` | Screen and measured content layouts |
|
|
832
|
+
| `gesture` | Gesture values (x, y, `normX`, `normY`, etc.) |
|
|
833
|
+
| `meta` | Custom metadata from options |
|
|
750
834
|
|
|
751
835
|
### Using `meta` for Conditional Logic
|
|
752
836
|
|
|
@@ -774,7 +858,9 @@ screenStyleInterpolator: ({ progress }) => {
|
|
|
774
858
|
"worklet";
|
|
775
859
|
return {
|
|
776
860
|
"hero-image": {
|
|
777
|
-
|
|
861
|
+
style: {
|
|
862
|
+
opacity: interpolate(progress, [0, 1], [0, 1]),
|
|
863
|
+
},
|
|
778
864
|
},
|
|
779
865
|
};
|
|
780
866
|
};
|
|
@@ -789,13 +875,13 @@ screenStyleInterpolator: ({ progress }) => {
|
|
|
789
875
|
|
|
790
876
|
## Stack Types
|
|
791
877
|
|
|
792
|
-
|
|
878
|
+
Blank stack and native stack are the primary APIs. Component stack remains available as a deprecated compatibility API.
|
|
793
879
|
|
|
794
880
|
| Stack | Best For |
|
|
795
881
|
| ------------------- | --------------------------------------------------------- |
|
|
796
882
|
| **Blank Stack** | Most apps. Full control, all features. |
|
|
797
883
|
| **Native Stack** | When you need native screen primitives. |
|
|
798
|
-
| **Component Stack** |
|
|
884
|
+
| **Component Stack** | Legacy embedded-flow API. Prefer blank stack instead. |
|
|
799
885
|
|
|
800
886
|
### Blank Stack
|
|
801
887
|
|
|
@@ -821,11 +907,11 @@ import { createNativeStackNavigator } from "react-native-screen-transitions/nati
|
|
|
821
907
|
/>
|
|
822
908
|
```
|
|
823
909
|
|
|
824
|
-
### Component Stack (
|
|
910
|
+
### Component Stack (Deprecated)
|
|
825
911
|
|
|
826
|
-
> **Note:**
|
|
912
|
+
> **Note:** Prefer blank stack for new work. It now covers the embedded and independent flow use case.
|
|
827
913
|
|
|
828
|
-
Standalone navigator, not connected to React Navigation.
|
|
914
|
+
Standalone navigator, not connected to React Navigation. Kept for compatibility with older integrations.
|
|
829
915
|
|
|
830
916
|
```tsx
|
|
831
917
|
import { createComponentStackNavigator } from "react-native-screen-transitions/component-stack";
|
|
@@ -884,9 +970,13 @@ options={{
|
|
|
884
970
|
|
|
885
971
|
---
|
|
886
972
|
|
|
887
|
-
## Masked View Setup
|
|
973
|
+
## Legacy Masked View Setup (Deprecated)
|
|
974
|
+
|
|
975
|
+
`Transition.MaskedView` and `sharedBoundTag` are deprecated for new work.
|
|
976
|
+
|
|
977
|
+
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.
|
|
888
978
|
|
|
889
|
-
|
|
979
|
+
This section is kept for compatibility with legacy presets such as `SharedIGImage` and `SharedAppleMusic`.
|
|
890
980
|
|
|
891
981
|
> **Note**: Requires native code. Will not work in Expo Go.
|
|
892
982
|
|
|
@@ -52,39 +52,32 @@ function BlankStackNavigatorInner({
|
|
|
52
52
|
})
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
|
-
function
|
|
56
|
-
independent,
|
|
57
|
-
enableNativeScreens
|
|
55
|
+
function BlankStackNavigator({
|
|
56
|
+
independent = false,
|
|
57
|
+
enableNativeScreens = true,
|
|
58
|
+
...rest
|
|
58
59
|
}) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return navigator;
|
|
70
|
-
}
|
|
71
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationIndependentTree, {
|
|
72
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationContainer, {
|
|
73
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlankStackContext.Provider, {
|
|
74
|
-
value: true,
|
|
75
|
-
children: navigator
|
|
76
|
-
})
|
|
77
|
-
})
|
|
78
|
-
});
|
|
60
|
+
const isNested = React.useContext(BlankStackContext);
|
|
61
|
+
const navigator = /*#__PURE__*/(0, _jsxRuntime.jsx)(BlankStackNavigatorInner, {
|
|
62
|
+
...rest,
|
|
63
|
+
...(!enableNativeScreens && {
|
|
64
|
+
DISABLE_NATIVE_SCREENS: true
|
|
65
|
+
}),
|
|
66
|
+
DISABLE_NATIVE_SCREEN_CONTAINER: independent
|
|
67
|
+
});
|
|
68
|
+
if (!independent || isNested) {
|
|
69
|
+
return navigator;
|
|
79
70
|
}
|
|
80
|
-
|
|
81
|
-
|
|
71
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationIndependentTree, {
|
|
72
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.NavigationContainer, {
|
|
73
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlankStackContext.Provider, {
|
|
74
|
+
value: true,
|
|
75
|
+
children: navigator
|
|
76
|
+
})
|
|
77
|
+
})
|
|
78
|
+
});
|
|
82
79
|
}
|
|
83
|
-
|
|
84
|
-
independent: false,
|
|
85
|
-
enableNativeScreens: true
|
|
86
|
-
});
|
|
87
|
-
|
|
80
|
+
BlankStackNavigator.displayName = "BlankStackNavigator";
|
|
88
81
|
/**
|
|
89
82
|
* Creates a blank stack navigator with gesture-driven transitions.
|
|
90
83
|
*
|
|
@@ -92,26 +85,15 @@ const BlankStackNavigator = createBlankStackNavigatorComponent({
|
|
|
92
85
|
* it participates in the current navigation tree and uses native screen
|
|
93
86
|
* primitives on supported native platforms.
|
|
94
87
|
*
|
|
95
|
-
*
|
|
88
|
+
* Blank stack also accepts navigator-specific props for embedded-flow behavior:
|
|
96
89
|
* - `independent: true` creates an isolated navigator for nested flows
|
|
97
90
|
* - `enableNativeScreens: false` renders the stack with regular views instead
|
|
98
91
|
* of `react-native-screens`
|
|
99
92
|
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* itself is hosted.
|
|
93
|
+
* In the dynamic API, pass these to `<Stack.Navigator />`.
|
|
94
|
+
* In the static API, pass them in the same config object as `screens`.
|
|
103
95
|
*/
|
|
104
|
-
|
|
105
96
|
function createBlankStackNavigator(config) {
|
|
106
|
-
|
|
107
|
-
independent = false,
|
|
108
|
-
enableNativeScreens = true,
|
|
109
|
-
...staticConfig
|
|
110
|
-
} = config ?? {};
|
|
111
|
-
const Navigator = createBlankStackNavigatorComponent({
|
|
112
|
-
independent,
|
|
113
|
-
enableNativeScreens
|
|
114
|
-
});
|
|
115
|
-
return (0, _native.createNavigatorFactory)(Navigator)(config ? staticConfig : undefined);
|
|
97
|
+
return (0, _native.createNavigatorFactory)(BlankStackNavigator)(config);
|
|
116
98
|
}
|
|
117
99
|
//# sourceMappingURL=create-blank-stack-navigator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","React","_interopRequireWildcard","_useTabPressReset","_stackView","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BlankStackContext","createContext","displayName","BlankStackNavigatorInner","id","initialRouteName","children","layout","screenListeners","screenOptions","screenLayout","DISABLE_NATIVE_SCREENS","DISABLE_NATIVE_SCREEN_CONTAINER","rest","state","describe","descriptors","navigation","NavigationContent","useNavigationBuilder","StackRouter","useTabPressReset","index","key","jsx","StackView","
|
|
1
|
+
{"version":3,"names":["_native","require","React","_interopRequireWildcard","_useTabPressReset","_stackView","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BlankStackContext","createContext","displayName","BlankStackNavigatorInner","id","initialRouteName","children","layout","screenListeners","screenOptions","screenLayout","DISABLE_NATIVE_SCREENS","DISABLE_NATIVE_SCREEN_CONTAINER","rest","state","describe","descriptors","navigation","NavigationContent","useNavigationBuilder","StackRouter","useTabPressReset","index","key","jsx","StackView","BlankStackNavigator","independent","enableNativeScreens","isNested","useContext","navigator","NavigationIndependentTree","NavigationContainer","Provider","value","createBlankStackNavigator","config","createNavigatorFactory"],"sourceRoot":"../../../../src","sources":["blank-stack/navigators/create-blank-stack-navigator.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -80,7 +80,7 @@ function IsolatedComponentStackNavigator(props) {
|
|
|
80
80
|
/**
|
|
81
81
|
* @deprecated Component stack was originally introduced for independent,
|
|
82
82
|
* embedded navigation flows. Blank stack now supports that use case directly
|
|
83
|
-
* via
|
|
83
|
+
* via navigator props such as `<BlankStack.Navigator independent />`, with
|
|
84
84
|
* `enableNativeScreens` available when you need to switch between native
|
|
85
85
|
* screens and regular views. Prefer blank stack for new work; component stack
|
|
86
86
|
* will be removed in a future release.
|
package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BoundaryTarget = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
9
|
+
var _boundaryOwner = require("../providers/boundary-owner.provider");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
|
+
const BoundaryTarget = exports.BoundaryTarget = /*#__PURE__*/(0, _react.memo)(function BoundaryTarget(props) {
|
|
13
|
+
const {
|
|
14
|
+
style,
|
|
15
|
+
...rest
|
|
16
|
+
} = props;
|
|
17
|
+
const targetAnimatedRef = (0, _reactNativeReanimated.useAnimatedRef)();
|
|
18
|
+
const ownerContext = (0, _boundaryOwner.useBoundaryOwnerContext)();
|
|
19
|
+
const isActiveTarget = ownerContext?.activeTargetRef === targetAnimatedRef;
|
|
20
|
+
(0, _react.useLayoutEffect)(() => {
|
|
21
|
+
if (!ownerContext) {
|
|
22
|
+
if (__DEV__) {
|
|
23
|
+
console.warn(_boundaryOwner.TARGET_OUTSIDE_OWNER_WARNING);
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
ownerContext.registerTargetRef(targetAnimatedRef);
|
|
28
|
+
return () => {
|
|
29
|
+
ownerContext.unregisterTargetRef(targetAnimatedRef);
|
|
30
|
+
};
|
|
31
|
+
}, [ownerContext, targetAnimatedRef]);
|
|
32
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
33
|
+
...rest,
|
|
34
|
+
ref: targetAnimatedRef,
|
|
35
|
+
style: [style, isActiveTarget ? ownerContext.associatedTargetStyles : undefined],
|
|
36
|
+
collapsable: false
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=boundary-target.js.map
|
package/lib/commonjs/shared/components/create-boundary-component/components/boundary-target.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_interopRequireWildcard","_boundaryOwner","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BoundaryTarget","exports","memo","props","style","rest","targetAnimatedRef","useAnimatedRef","ownerContext","useBoundaryOwnerContext","isActiveTarget","activeTargetRef","useLayoutEffect","__DEV__","console","warn","TARGET_OUTSIDE_OWNER_WARNING","registerTargetRef","unregisterTargetRef","jsx","View","ref","associatedTargetStyles","undefined","collapsable"],"sourceRoot":"../../../../../../src","sources":["shared/components/create-boundary-component/components/boundary-target.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAG8C,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAE,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAIvC,MAAMkB,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAG,IAAAE,WAAI,EAAC,SAASF,cAAcA,CACzDG,KAA0B,EACzB;EACD,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EAChC,MAAMG,iBAAiB,GAAG,IAAAC,qCAAc,EAAO,CAAC;EAChD,MAAMC,YAAY,GAAG,IAAAC,sCAAuB,EAAC,CAAC;EAC9C,MAAMC,cAAc,GAAGF,YAAY,EAAEG,eAAe,KAAKL,iBAAiB;EAE1E,IAAAM,sBAAe,EAAC,MAAM;IACrB,IAAI,CAACJ,YAAY,EAAE;MAClB,IAAIK,OAAO,EAAE;QACZC,OAAO,CAACC,IAAI,CAACC,2CAA4B,CAAC;MAC3C;MACA;IACD;IAEAR,YAAY,CAACS,iBAAiB,CAACX,iBAAiB,CAAC;IACjD,OAAO,MAAM;MACZE,YAAY,CAACU,mBAAmB,CAACZ,iBAAiB,CAAC;IACpD,CAAC;EACF,CAAC,EAAE,CAACE,YAAY,EAAEF,iBAAiB,CAAC,CAAC;EAErC,oBACC,IAAA1B,WAAA,CAAAuC,GAAA,EAAC1C,sBAAA,CAAAc,OAAQ,CAAC6B,IAAI;IAAA,GACTf,IAAI;IACRgB,GAAG,EAAEf,iBAAkB;IACvBF,KAAK,EAAE,CACNA,KAAK,EACLM,cAAc,GAAGF,YAAY,CAACc,sBAAsB,GAAGC,SAAS,CAC/D;IACFC,WAAW,EAAE;EAAM,CACnB,CAAC;AAEJ,CAAC,CAAC","ignoreList":[]}
|