@lodev09/react-native-true-sheet 4.0.0-beta.1 → 4.0.0-beta.11
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 +25 -4
- package/android/build.gradle +22 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +24 -7
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +211 -182
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentViewManager.kt +5 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +14 -19
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetOverlayView.kt +106 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetOverlayViewManager.kt +45 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetPackage.kt +2 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetStateUpdater.kt +18 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +82 -39
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +275 -88
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +26 -1
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +75 -3
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +56 -34
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetOverlayRootView.kt +137 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetLifecycleEvents.kt +15 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/KeyboardUtils.kt +1 -1
- package/android/src/main/java/com/lodev09/truesheet/utils/TouchEventDeduper.kt +31 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/ViewUtils.kt +19 -7
- package/android/src/main/jni/TrueSheetSpec.h +1 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewComponentDescriptor.h +0 -8
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.cpp +52 -29
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.h +6 -1
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.cpp +1 -1
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.h +6 -4
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +7 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetLayoutUtils.h +46 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewComponentDescriptor.h +21 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewShadowNode.cpp +17 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewShadowNode.h +36 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.cpp +4 -35
- package/ios/TrueSheetContainerView.h +14 -7
- package/ios/TrueSheetContainerView.mm +10 -7
- package/ios/TrueSheetContentView.h +31 -15
- package/ios/TrueSheetContentView.mm +148 -188
- package/ios/TrueSheetFooterView.h +6 -0
- package/ios/TrueSheetFooterView.mm +48 -2
- package/ios/TrueSheetModule.h +2 -7
- package/ios/TrueSheetModule.mm +7 -16
- package/ios/TrueSheetOverlayView.h +32 -0
- package/ios/TrueSheetOverlayView.mm +161 -0
- package/ios/TrueSheetView.mm +171 -29
- package/ios/TrueSheetViewController.h +10 -0
- package/ios/TrueSheetViewController.mm +256 -74
- package/ios/core/TrueSheetGrabberView.mm +13 -3
- package/ios/core/TrueSheetOverlayContainerView.h +31 -0
- package/ios/core/TrueSheetOverlayContainerView.mm +35 -0
- package/ios/events/TrueSheetLifecycleEvents.h +2 -0
- package/ios/events/TrueSheetLifecycleEvents.mm +8 -0
- package/ios/tvos/TrueSheetStubs.mm +12 -0
- package/ios/utils/UIView+ScrollEdgeInteraction.h +1 -0
- package/ios/utils/UIView+ScrollEdgeInteraction.mm +24 -2
- package/lib/module/TrueSheet.js +149 -34
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheet.web.js +122 -53
- package/lib/module/TrueSheet.web.js.map +1 -1
- package/lib/module/TrueSheetOverlay.js +30 -0
- package/lib/module/TrueSheetOverlay.js.map +1 -0
- package/lib/module/TrueSheetOverlay.web.js +35 -0
- package/lib/module/TrueSheetOverlay.web.js.map +1 -0
- package/lib/module/TrueSheetPeek.web.js +3 -3
- package/lib/module/TrueSheetPeek.web.js.map +1 -1
- package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +1 -1
- package/lib/module/fabric/TrueSheetOverlayViewNativeComponent.ts +12 -0
- package/lib/module/fabric/TrueSheetViewNativeComponent.ts +5 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/mocks/index.js +10 -0
- package/lib/module/mocks/index.js.map +1 -1
- package/lib/module/mocks/navigation.js +31 -21
- package/lib/module/mocks/navigation.js.map +1 -1
- package/lib/module/mocks/navigationExpoRouter.js +21 -0
- package/lib/module/mocks/navigationExpoRouter.js.map +1 -0
- package/lib/module/mocks/reanimated.js +1 -1
- package/lib/module/mocks/reanimated.js.map +1 -1
- package/lib/module/navigation/{TrueSheetView.js → TrueSheetNavigatorContent.js} +14 -12
- package/lib/module/navigation/TrueSheetNavigatorContent.js.map +1 -0
- package/lib/module/navigation/actions.js +50 -0
- package/lib/module/navigation/actions.js.map +1 -0
- package/lib/module/navigation/base-types.js +2 -0
- package/lib/module/navigation/base-types.js.map +1 -0
- package/lib/module/navigation/{TrueSheetRouter.js → createTrueSheetRouter.js} +11 -24
- package/lib/module/navigation/createTrueSheetRouter.js.map +1 -0
- package/lib/module/navigation/expo-router/base-types.js +2 -0
- package/lib/module/navigation/expo-router/base-types.js.map +1 -0
- package/lib/module/navigation/expo-router/index.js +50 -0
- package/lib/module/navigation/expo-router/index.js.map +1 -0
- package/lib/module/navigation/expo-router/types.js +4 -0
- package/lib/module/navigation/expo-router/types.js.map +1 -0
- package/lib/module/navigation/index.js +43 -2
- package/lib/module/navigation/index.js.map +1 -1
- package/lib/module/navigation/navigator.js +10 -0
- package/lib/module/navigation/navigator.js.map +1 -0
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js +2 -2
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js.map +1 -1
- package/lib/module/navigation/screen/TrueSheetScreen.js +2 -2
- package/lib/module/navigation/screen/TrueSheetScreen.js.map +1 -1
- package/lib/module/navigation/screen/useSheetScreenState.js +5 -4
- package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -1
- package/lib/module/navigation/useTrueSheetNavigation.js +1 -1
- package/lib/module/navigation/useTrueSheetNavigation.js.map +1 -1
- package/lib/module/web/dom.js +10 -0
- package/lib/module/web/dom.js.map +1 -0
- package/lib/module/web/vaul/constants.js +4 -0
- package/lib/module/web/vaul/constants.js.map +1 -1
- package/lib/module/web/vaul/context.js.map +1 -1
- package/lib/module/web/vaul/helpers.js +10 -4
- package/lib/module/web/vaul/helpers.js.map +1 -1
- package/lib/module/web/vaul/index.js +35 -2
- package/lib/module/web/vaul/index.js.map +1 -1
- package/lib/typescript/src/TrueSheet.d.ts +6 -0
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.types.d.ts +72 -1
- package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheetOverlay.d.ts +8 -0
- package/lib/typescript/src/TrueSheetOverlay.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetOverlay.web.d.ts +8 -0
- package/lib/typescript/src/TrueSheetOverlay.web.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetOverlayViewNativeComponent.d.ts +6 -0
- package/lib/typescript/src/fabric/TrueSheetOverlayViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +4 -0
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/mocks/index.d.ts +4 -0
- package/lib/typescript/src/mocks/index.d.ts.map +1 -1
- package/lib/typescript/src/mocks/navigation.d.ts +5 -1
- package/lib/typescript/src/mocks/navigation.d.ts.map +1 -1
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +22 -0
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -0
- package/lib/typescript/src/mocks/reanimated.d.ts.map +1 -1
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts +5 -0
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts.map +1 -0
- package/lib/typescript/src/navigation/actions.d.ts +71 -0
- package/lib/typescript/src/navigation/actions.d.ts.map +1 -0
- package/lib/typescript/src/navigation/base-types.d.ts +9 -0
- package/lib/typescript/src/navigation/base-types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +3 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/base-types.d.ts +8 -0
- package/lib/typescript/src/navigation/expo-router/base-types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts +37 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/types.d.ts +44 -0
- package/lib/typescript/src/navigation/expo-router/types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/index.d.ts +42 -3
- package/lib/typescript/src/navigation/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/navigator.d.ts +7 -0
- package/lib/typescript/src/navigation/navigator.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts +1 -1
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts +1 -1
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/types.d.ts +3 -4
- package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +5 -6
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -1
- package/lib/typescript/src/navigation/types.d.ts +65 -5
- package/lib/typescript/src/navigation/types.d.ts.map +1 -1
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts +1 -1
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts.map +1 -1
- package/lib/typescript/src/web/dom.d.ts +7 -0
- package/lib/typescript/src/web/dom.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/constants.d.ts +1 -0
- package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/context.d.ts +1 -0
- package/lib/typescript/src/web/vaul/context.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/index.d.ts +7 -1
- package/lib/typescript/src/web/vaul/index.d.ts.map +1 -1
- package/package.json +32 -9
- package/react-native.config.js +1 -0
- package/src/TrueSheet.tsx +184 -46
- package/src/TrueSheet.types.ts +77 -1
- package/src/TrueSheet.web.tsx +135 -64
- package/src/TrueSheetOverlay.tsx +24 -0
- package/src/TrueSheetOverlay.web.tsx +33 -0
- package/src/TrueSheetPeek.web.tsx +4 -3
- package/src/fabric/TrueSheetContentViewNativeComponent.ts +1 -1
- package/src/fabric/TrueSheetOverlayViewNativeComponent.ts +12 -0
- package/src/fabric/TrueSheetViewNativeComponent.ts +5 -0
- package/src/index.ts +1 -0
- package/src/mocks/index.ts +7 -0
- package/src/mocks/navigation.ts +32 -25
- package/src/mocks/navigationExpoRouter.ts +41 -0
- package/src/mocks/reanimated.ts +8 -9
- package/src/navigation/{TrueSheetView.tsx → TrueSheetNavigatorContent.tsx} +24 -17
- package/src/navigation/actions.ts +78 -0
- package/src/navigation/base-types.ts +20 -0
- package/src/navigation/createTrueSheetRouter.ts +194 -0
- package/src/navigation/expo-router/base-types.ts +18 -0
- package/src/navigation/expo-router/index.ts +90 -0
- package/src/navigation/expo-router/types.ts +116 -0
- package/src/navigation/index.ts +68 -2
- package/src/navigation/navigator.ts +18 -0
- package/src/navigation/screen/ReanimatedTrueSheetScreen.tsx +2 -2
- package/src/navigation/screen/TrueSheetScreen.tsx +2 -2
- package/src/navigation/screen/types.ts +4 -6
- package/src/navigation/screen/useSheetScreenState.ts +10 -15
- package/src/navigation/types.ts +99 -16
- package/src/navigation/useTrueSheetNavigation.ts +1 -1
- package/src/web/dom.ts +9 -0
- package/src/web/vaul/constants.ts +4 -0
- package/src/web/vaul/context.ts +1 -0
- package/src/web/vaul/helpers.ts +13 -6
- package/src/web/vaul/index.tsx +46 -1
- package/lib/module/navigation/TrueSheetRouter.js.map +0 -1
- package/lib/module/navigation/TrueSheetView.js.map +0 -1
- package/lib/module/navigation/createTrueSheetNavigator.js +0 -63
- package/lib/module/navigation/createTrueSheetNavigator.js.map +0 -1
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts +0 -57
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts.map +0 -1
- package/lib/typescript/src/navigation/TrueSheetView.d.ts +0 -10
- package/lib/typescript/src/navigation/TrueSheetView.d.ts.map +0 -1
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts +0 -35
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts.map +0 -1
- package/src/navigation/TrueSheetRouter.ts +0 -234
- package/src/navigation/createTrueSheetNavigator.tsx +0 -93
|
@@ -1,6 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { createStandardNavigationFactories, StackRouter } from '@react-navigation/native';
|
|
4
|
+
import { createTrueSheetRouter } from "./createTrueSheetRouter.js";
|
|
5
|
+
import { trueSheetNavigator } from "./navigator.js";
|
|
6
|
+
const {
|
|
7
|
+
createNavigator,
|
|
8
|
+
createScreen
|
|
9
|
+
} = createStandardNavigationFactories(trueSheetNavigator, createTrueSheetRouter(StackRouter), ({
|
|
10
|
+
state,
|
|
11
|
+
navigation
|
|
12
|
+
}) => ({
|
|
13
|
+
routes: state.routes,
|
|
14
|
+
dispatch: navigation.dispatch
|
|
15
|
+
}));
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates a TrueSheet navigator.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* const Sheet = createTrueSheetNavigator();
|
|
23
|
+
*
|
|
24
|
+
* function App() {
|
|
25
|
+
* return (
|
|
26
|
+
* <Sheet.Navigator>
|
|
27
|
+
* <Sheet.Screen name="Home" component={HomeScreen} />
|
|
28
|
+
* <Sheet.Screen
|
|
29
|
+
* name="Details"
|
|
30
|
+
* component={DetailsSheet}
|
|
31
|
+
* options={{ detents: [0.5, 1] }}
|
|
32
|
+
* />
|
|
33
|
+
* </Sheet.Navigator>
|
|
34
|
+
* );
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export const createTrueSheetNavigator = createNavigator;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Creates a screen configuration for the static API.
|
|
42
|
+
*/
|
|
43
|
+
export const createTrueSheetScreen = createScreen;
|
|
44
|
+
export { TrueSheetActions } from "./actions.js";
|
|
45
|
+
export { createTrueSheetRouter } from "./createTrueSheetRouter.js";
|
|
5
46
|
export { useTrueSheetNavigation } from "./useTrueSheetNavigation.js";
|
|
6
47
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createTrueSheetNavigator","TrueSheetActions","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"names":["createStandardNavigationFactories","StackRouter","createTrueSheetRouter","trueSheetNavigator","createNavigator","createScreen","state","navigation","routes","dispatch","createTrueSheetNavigator","createTrueSheetScreen","TrueSheetActions","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,SACEA,iCAAiC,EACjCC,WAAW,QAEN,0BAA0B;AAEjC,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,kBAAkB,QAAQ,gBAAa;AAmBhD,MAAM;EAAEC,eAAe;EAAEC;AAAa,CAAC,GAAGL,iCAAiC,CAKzEG,kBAAkB,EAClBD,qBAAqB,CAACD,WAAiC,CAAC,EACxD,CAAC;EAAEK,KAAK;EAAEC;AAAW,CAAC,MAAM;EAAEC,MAAM,EAAEF,KAAK,CAACE,MAAM;EAAEC,QAAQ,EAAEF,UAAU,CAACE;AAAS,CAAC,CACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAGN,eAAe;;AAEvD;AACA;AACA;AACA,OAAO,MAAMO,qBAAqB,GAAGN,YAAY;AAEjD,SAASO,gBAAgB,QAAkC,cAAW;AACtE,SAASV,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASW,sBAAsB,QAAQ,6BAA0B","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createStandardNavigator } from 'standard-navigation';
|
|
4
|
+
import { TrueSheetNavigatorContent } from "./TrueSheetNavigatorContent.js";
|
|
5
|
+
/**
|
|
6
|
+
* Framework-agnostic TrueSheet navigator.
|
|
7
|
+
* Wired into React Navigation via `./index` and Expo Router via `./expo-router`.
|
|
8
|
+
*/
|
|
9
|
+
export const trueSheetNavigator = createStandardNavigator(TrueSheetNavigatorContent);
|
|
10
|
+
//# sourceMappingURL=navigator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createStandardNavigator","TrueSheetNavigatorContent","trueSheetNavigator"],"sourceRoot":"../../../src","sources":["navigation/navigator.ts"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,qBAAqB;AAE7D,SAASC,yBAAyB,QAAQ,gCAA6B;AAOvE;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAGF,uBAAuB,CAIvDC,yBAAyB,CAAC","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ const AnimatedTrueSheet = Animated.createAnimatedComponent(TrueSheet);
|
|
|
10
10
|
export const ReanimatedTrueSheetScreen = ({
|
|
11
11
|
detentIndex,
|
|
12
12
|
resizeKey,
|
|
13
|
-
|
|
13
|
+
dispatch,
|
|
14
14
|
emit,
|
|
15
15
|
routeKey,
|
|
16
16
|
closing,
|
|
@@ -30,7 +30,7 @@ export const ReanimatedTrueSheetScreen = ({
|
|
|
30
30
|
detentIndex,
|
|
31
31
|
resizeKey,
|
|
32
32
|
closing,
|
|
33
|
-
|
|
33
|
+
dispatch,
|
|
34
34
|
routeKey,
|
|
35
35
|
emit
|
|
36
36
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Animated","scheduleOnRN","useReanimatedPositionChangeHandler","TrueSheet","useSheetScreenState","jsx","_jsx","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheetScreen","detentIndex","resizeKey","
|
|
1
|
+
{"version":3,"names":["Animated","scheduleOnRN","useReanimatedPositionChangeHandler","TrueSheet","useSheetScreenState","jsx","_jsx","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheetScreen","detentIndex","resizeKey","dispatch","emit","routeKey","closing","detents","children","positionChangeHandler","sheetProps","ref","initialDetentIndex","eventHandlers","onPositionChange","reanimatedPositionChangeHandler","payload","nativeEvent","name"],"sourceRoot":"../../../../src","sources":["navigation/screen/ReanimatedTrueSheetScreen.tsx"],"mappings":";;AAAA,OAAOA,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,YAAY,QAAQ,uBAAuB;AAEpD,SAASC,kCAAkC,QAAQ,2BAAkB;AACrE,SAASC,SAAS,QAAQ,iBAAiB;AAG3C,SAASC,mBAAmB,QAAQ,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5D,MAAMC,iBAAiB,GAAGP,QAAQ,CAACQ,uBAAuB,CAACL,SAAS,CAAC;AAErE,OAAO,MAAMM,yBAAyB,GAAGA,CAAC;EACxCC,WAAW;EACXC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,OAAO;EACPC,OAAO;EACPC,QAAQ;EACRC,qBAAqB;EACrB,GAAGC;AACiB,CAAC,KAAK;EAC1B,MAAM;IACJC,GAAG;IACHC,kBAAkB;IAClBC,aAAa,EAAE;MAAEC,gBAAgB;MAAE,GAAGD;IAAc;EACtD,CAAC,GAAGlB,mBAAmB,CAAC;IACtBM,WAAW;IACXC,SAAS;IACTI,OAAO;IACPH,QAAQ;IACRE,QAAQ;IACRD;EACF,CAAC,CAAC;EAEF,MAAMW,+BAA+B,GAAGtB,kCAAkC,CACvEuB,OAAO,IAAK;IACX,SAAS;;IACTP,qBAAqB,GAAGO,OAAO,CAAC;IAChCxB,YAAY,CAACsB,gBAAgB,EAAE;MAC7BG,WAAW,EAAED;IACf,CAAwB,CAAC;EAC3B,CAAC,EACD,CAACF,gBAAgB,EAAEL,qBAAqB,CAC1C,CAAC;EAED,oBACEZ,IAAA,CAACC,iBAAiB;IAChBa,GAAG,EAAEA,GAAI;IACTO,IAAI,EAAE,oBAAoBb,QAAQ,EAAG;IACrCO,kBAAkB,EAAEA,kBAAmB;IACvCL,OAAO,EAAEA,OAAQ;IACjBO,gBAAgB,EAAEC,+BAAgC;IAAA,GAC9CL,UAAU;IAAA,GACVG,aAAa;IAAAL,QAAA,EAEhBA;EAAQ,CACQ,CAAC;AAExB,CAAC","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
7
7
|
export const TrueSheetScreen = ({
|
|
8
8
|
detentIndex,
|
|
9
9
|
resizeKey,
|
|
10
|
-
|
|
10
|
+
dispatch,
|
|
11
11
|
emit,
|
|
12
12
|
routeKey,
|
|
13
13
|
closing,
|
|
@@ -27,7 +27,7 @@ export const TrueSheetScreen = ({
|
|
|
27
27
|
detentIndex,
|
|
28
28
|
resizeKey,
|
|
29
29
|
closing,
|
|
30
|
-
|
|
30
|
+
dispatch,
|
|
31
31
|
routeKey,
|
|
32
32
|
emit
|
|
33
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","TrueSheet","useSheetScreenState","jsx","_jsx","TrueSheetScreen","detentIndex","resizeKey","
|
|
1
|
+
{"version":3,"names":["useCallback","TrueSheet","useSheetScreenState","jsx","_jsx","TrueSheetScreen","detentIndex","resizeKey","dispatch","emit","routeKey","closing","detents","children","positionChangeHandler","sheetProps","ref","initialDetentIndex","eventHandlers","onPositionChange","handlePositionChange","e","nativeEvent","name"],"sourceRoot":"../../../../src","sources":["navigation/screen/TrueSheetScreen.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,SAAS,QAAQ,iBAAiB;AAG3C,SAASC,mBAAmB,QAAQ,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5D,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,WAAW;EACXC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,OAAO;EACPC,OAAO;EACPC,QAAQ;EACRC,qBAAqB;EACrB,GAAGC;AACiB,CAAC,KAAK;EAC1B,MAAM;IACJC,GAAG;IACHC,kBAAkB;IAClBC,aAAa,EAAE;MAAEC,gBAAgB;MAAE,GAAGD;IAAc;EACtD,CAAC,GAAGhB,mBAAmB,CAAC;IACtBI,WAAW;IACXC,SAAS;IACTI,OAAO;IACPH,QAAQ;IACRE,QAAQ;IACRD;EACF,CAAC,CAAC;EAEF,MAAMW,oBAAoB,GAAGpB,WAAW,CACrCqB,CAAsB,IAAK;IAC1BF,gBAAgB,CAACE,CAAC,CAAC;IACnBP,qBAAqB,GAAGO,CAAC,CAACC,WAAW,CAAC;EACxC,CAAC,EACD,CAACH,gBAAgB,EAAEL,qBAAqB,CAC1C,CAAC;EAED,oBACEV,IAAA,CAACH,SAAS;IACRe,GAAG,EAAEA,GAAI;IACTO,IAAI,EAAE,oBAAoBb,QAAQ,EAAG;IACrCO,kBAAkB,EAAEA,kBAAmB;IACvCL,OAAO,EAAEA,OAAQ;IACjBO,gBAAgB,EAAEC,oBAAqB;IAAA,GACnCL,UAAU;IAAA,GACVG,aAAa;IAAAL,QAAA,EAEhBA;EAAQ,CACA,CAAC;AAEhB,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
4
|
-
import { TrueSheetActions } from "../
|
|
4
|
+
import { TrueSheetActions } from "../actions.js";
|
|
5
5
|
export const useSheetScreenState = props => {
|
|
6
6
|
const {
|
|
7
7
|
detentIndex,
|
|
8
8
|
resizeKey,
|
|
9
9
|
closing,
|
|
10
|
-
|
|
10
|
+
dispatch,
|
|
11
11
|
routeKey,
|
|
12
12
|
emit
|
|
13
13
|
} = props;
|
|
@@ -38,16 +38,17 @@ export const useSheetScreenState = props => {
|
|
|
38
38
|
const onDidDismiss = useCallback(() => {
|
|
39
39
|
emitEvent('sheetDidDismiss', undefined);
|
|
40
40
|
isDismissedRef.current = true;
|
|
41
|
-
|
|
41
|
+
dispatch({
|
|
42
42
|
...TrueSheetActions.remove(),
|
|
43
43
|
source: routeKey
|
|
44
44
|
});
|
|
45
|
-
}, [emitEvent,
|
|
45
|
+
}, [emitEvent, dispatch, routeKey]);
|
|
46
46
|
const eventHandlers = useMemo(() => ({
|
|
47
47
|
onWillPresent: e => emitEvent('sheetWillPresent', e.nativeEvent),
|
|
48
48
|
onDidPresent: e => emitEvent('sheetDidPresent', e.nativeEvent),
|
|
49
49
|
onWillDismiss: _e => emitEvent('sheetWillDismiss', undefined),
|
|
50
50
|
onDidDismiss,
|
|
51
|
+
onDismissAttempt: _e => emitEvent('sheetDismissAttempt', undefined),
|
|
51
52
|
onDetentChange: e => emitEvent('sheetDetentChange', e.nativeEvent),
|
|
52
53
|
onDragBegin: e => emitEvent('sheetDragBegin', e.nativeEvent),
|
|
53
54
|
onDragChange: e => emitEvent('sheetDragChange', e.nativeEvent),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","dispatch","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","remove","source","eventHandlers","onWillPresent","e","nativeEvent","onDidPresent","onWillDismiss","_e","onDismissAttempt","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","initialDetentIndex"],"sourceRoot":"../../../../src","sources":["navigation/screen/useSheetScreenState.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useNavigation","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/useTrueSheetNavigation.ts"],"mappings":";;AAAA,SAASA,aAAa,QAA4B,
|
|
1
|
+
{"version":3,"names":["useNavigation","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/useTrueSheetNavigation.ts"],"mappings":";;AAAA,SAASA,aAAa,QAA4B,0BAA0B;AAI5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAEHD,aAAa,CAA6B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/// <reference lib="dom" />
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a React Native web `View` ref value to its underlying DOM element —
|
|
7
|
+
* RN-web refs expose the host DOM node directly.
|
|
8
|
+
*/
|
|
9
|
+
export const getDOMElement = view => view instanceof HTMLElement ? view : null;
|
|
10
|
+
//# sourceMappingURL=dom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getDOMElement","view","HTMLElement"],"sourceRoot":"../../../src","sources":["web/dom.ts"],"mappings":";;AAAA;;AAGA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAIC,IAAiB,IAC7CA,IAAI,YAAYC,WAAW,GAAGD,IAAI,GAAG,IAAI","ignoreList":[]}
|
|
@@ -7,6 +7,10 @@ export const TRANSITIONS = {
|
|
|
7
7
|
export const VELOCITY_THRESHOLD = 0.4;
|
|
8
8
|
export const DEFAULT_PEEK_HEIGHT = 150;
|
|
9
9
|
export const CLOSE_THRESHOLD = 0.25;
|
|
10
|
+
|
|
11
|
+
// Minimum downward pull (px) on a non-dismissible drawer at its first snap
|
|
12
|
+
// point before the release counts as a dismiss attempt.
|
|
13
|
+
export const DISMISS_ATTEMPT_THRESHOLD = 24;
|
|
10
14
|
export const SCROLL_LOCK_TIMEOUT = 100;
|
|
11
15
|
export const BORDER_RADIUS = 8;
|
|
12
16
|
export const NESTED_DISPLACEMENT = 16;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TRANSITIONS","DURATION","EASE","VELOCITY_THRESHOLD","DEFAULT_PEEK_HEIGHT","CLOSE_THRESHOLD","SCROLL_LOCK_TIMEOUT","BORDER_RADIUS","NESTED_DISPLACEMENT","WINDOW_TOP_OFFSET","DRAG_CLASS"],"sourceRoot":"../../../../src","sources":["web/vaul/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,WAAW,GAAG;EACzBC,QAAQ,EAAE,GAAG;EACbC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,GAAG;AAErC,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,eAAe,GAAG,IAAI;
|
|
1
|
+
{"version":3,"names":["TRANSITIONS","DURATION","EASE","VELOCITY_THRESHOLD","DEFAULT_PEEK_HEIGHT","CLOSE_THRESHOLD","DISMISS_ATTEMPT_THRESHOLD","SCROLL_LOCK_TIMEOUT","BORDER_RADIUS","NESTED_DISPLACEMENT","WINDOW_TOP_OFFSET","DRAG_CLASS"],"sourceRoot":"../../../../src","sources":["web/vaul/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,WAAW,GAAG;EACzBC,QAAQ,EAAE,GAAG;EACbC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,GAAG;AAErC,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,eAAe,GAAG,IAAI;;AAEnC;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAG,EAAE;AAE3C,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,aAAa,GAAG,CAAC;AAE9B,OAAO,MAAMC,mBAAmB,GAAG,EAAE;AAErC,OAAO,MAAMC,iBAAiB,GAAG,EAAE;AAEnC,OAAO,MAAMC,UAAU,GAAG,eAAe","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","DrawerContext","createContext","drawerRef","current","overlayRef","onPress","onRelease","onDrag","onTouchDrag","onTouchRelease","onNestedDrag","onNestedOpenChange","onNestedRelease","openProp","undefined","dismissible","isOpen","isDragging","keyboardIsOpen","snapPointsOffset","snapPoints","handleOnly","modal","shouldFade","activeSnapPoint","onOpenChange","setActiveSnapPoint","closeDrawer","direction","shouldAnimate","shouldScaleBackground","setBackgroundColorOnScale","noBodyStyles","container","autoFocus","onPositionChangeRef","setContentHeight","detached","detachedOffset","detachedRadius","useDrawerContext","context","useContext","Error"],"sourceRoot":"../../../../src","sources":["web/vaul/context.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;
|
|
1
|
+
{"version":3,"names":["React","DrawerContext","createContext","drawerRef","current","overlayRef","onPress","onRelease","onDrag","onTouchDrag","onTouchRelease","onNestedDrag","onNestedOpenChange","onNestedRelease","openProp","undefined","dismissible","isOpen","isDragging","keyboardIsOpen","snapPointsOffset","snapPoints","handleOnly","modal","shouldFade","activeSnapPoint","onOpenChange","setActiveSnapPoint","closeDrawer","direction","shouldAnimate","shouldScaleBackground","setBackgroundColorOnScale","noBodyStyles","container","autoFocus","onPositionChangeRef","setContentHeight","detached","detachedOffset","detachedRadius","useDrawerContext","context","useContext","Error"],"sourceRoot":"../../../../src","sources":["web/vaul/context.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAwDzB,OAAO,MAAMC,aAAa,gBAAGD,KAAK,CAACE,aAAa,CAAqB;EACnEC,SAAS,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC;EAC5BC,UAAU,EAAE;IAAED,OAAO,EAAE;EAAK,CAAC;EAC7BE,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBC,SAAS,EAAEA,CAAA,KAAM,CAAC,CAAC;EACnBC,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;EAChBC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,cAAc,EAAEA,CAAA,KAAM,CAAC,CAAC;EACxBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,QAAQ,EAAEC,SAAS;EACnBC,WAAW,EAAE,KAAK;EAClBC,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,KAAK;EACjBC,cAAc,EAAE;IAAEf,OAAO,EAAE;EAAM,CAAC;EAClCgB,gBAAgB,EAAE,IAAI;EACtBC,UAAU,EAAE,IAAI;EAChBC,UAAU,EAAE,KAAK;EACjBC,KAAK,EAAE,KAAK;EACZC,UAAU,EAAE,KAAK;EACjBC,eAAe,EAAE,IAAI;EACrBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,SAAS,EAAE,QAAQ;EACnBC,aAAa,EAAE;IAAE1B,OAAO,EAAE;EAAK,CAAC;EAChC2B,qBAAqB,EAAE,KAAK;EAC5BC,yBAAyB,EAAE,IAAI;EAC/BC,YAAY,EAAE,KAAK;EACnBC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE;IAAEhC,OAAO,EAAEW;EAAU,CAAC;EAC3CsB,gBAAgB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC1BC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,CAAC;EACjBC,cAAc,EAAE;AAClB,CAAC,CAAC;AAEF,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,OAAO,GAAG1C,KAAK,CAAC2C,UAAU,CAAC1C,aAAa,CAAC;EAC/C,IAAI,CAACyC,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOF,OAAO;AAChB,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
// CSSStyleDeclaration has no string index signature, so dynamic camelCase
|
|
4
|
+
// keys are assigned through this writable-record view. Values include
|
|
5
|
+
// undefined: originals captured for unknown keys read back as undefined.
|
|
6
|
+
|
|
3
7
|
const cache = new WeakMap();
|
|
4
8
|
export function isInView(el) {
|
|
5
9
|
const rect = el.getBoundingClientRect();
|
|
@@ -11,13 +15,14 @@ export function isInView(el) {
|
|
|
11
15
|
export function set(el, styles, ignoreCache = false) {
|
|
12
16
|
if (!el || !(el instanceof HTMLElement)) return;
|
|
13
17
|
let originalStyles = {};
|
|
18
|
+
const style = el.style;
|
|
14
19
|
Object.entries(styles).forEach(([key, value]) => {
|
|
15
20
|
if (key.startsWith('--')) {
|
|
16
21
|
el.style.setProperty(key, value);
|
|
17
22
|
return;
|
|
18
23
|
}
|
|
19
|
-
originalStyles[key] =
|
|
20
|
-
|
|
24
|
+
originalStyles[key] = style[key];
|
|
25
|
+
style[key] = value;
|
|
21
26
|
});
|
|
22
27
|
if (ignoreCache) return;
|
|
23
28
|
cache.set(el, originalStyles);
|
|
@@ -28,11 +33,12 @@ export function reset(el, prop) {
|
|
|
28
33
|
if (!originalStyles) {
|
|
29
34
|
return;
|
|
30
35
|
}
|
|
36
|
+
const style = el.style;
|
|
31
37
|
if (prop) {
|
|
32
|
-
|
|
38
|
+
style[prop] = originalStyles[prop];
|
|
33
39
|
} else {
|
|
34
40
|
Object.entries(originalStyles).forEach(([key, value]) => {
|
|
35
|
-
|
|
41
|
+
style[key] = value;
|
|
36
42
|
});
|
|
37
43
|
}
|
|
38
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cache","WeakMap","isInView","el","rect","getBoundingClientRect","window","visualViewport","top","left","bottom","height","right","width","set","styles","ignoreCache","HTMLElement","originalStyles","Object","entries","forEach","key","value","startsWith","
|
|
1
|
+
{"version":3,"names":["cache","WeakMap","isInView","el","rect","getBoundingClientRect","window","visualViewport","top","left","bottom","height","right","width","set","styles","ignoreCache","HTMLElement","originalStyles","style","Object","entries","forEach","key","value","startsWith","setProperty","reset","prop","get","isVertical","direction","getTranslate","element","getComputedStyle","transform","webkitTransform","mozTransform","mat","match","parseFloat","split","dampenValue","v","Math","log","assignStyle","prevStyle","cssText","assign","chain","fns","args","fn"],"sourceRoot":"../../../../src","sources":["web/vaul/helpers.ts"],"mappings":";;AAMA;AACA;AACA;;AAGA,MAAMA,KAAK,GAAG,IAAIC,OAAO,CAAkD,CAAC;AAE5E,OAAO,SAASC,QAAQA,CAACC,EAAe,EAAW;EACjD,MAAMC,IAAI,GAAGD,EAAE,CAACE,qBAAqB,CAAC,CAAC;EAEvC,IAAI,CAACC,MAAM,CAACC,cAAc,EAAE,OAAO,KAAK;EAExC,OACEH,IAAI,CAACI,GAAG,IAAI,CAAC,IACbJ,IAAI,CAACK,IAAI,IAAI,CAAC;EACd;EACAL,IAAI,CAACM,MAAM,IAAIJ,MAAM,CAACC,cAAc,CAACI,MAAM,GAAG,EAAE,IAChDP,IAAI,CAACQ,KAAK,IAAIN,MAAM,CAACC,cAAc,CAACM,KAAK;AAE7C;AAEA,OAAO,SAASC,GAAGA,CACjBX,EAA4C,EAC5CY,MAAa,EACbC,WAAW,GAAG,KAAK,EACnB;EACA,IAAI,CAACb,EAAE,IAAI,EAAEA,EAAE,YAAYc,WAAW,CAAC,EAAE;EACzC,IAAIC,cAAkD,GAAG,CAAC,CAAC;EAC3D,MAAMC,KAAK,GAAGhB,EAAE,CAACgB,KAAuB;EAExCC,MAAM,CAACC,OAAO,CAACN,MAAM,CAAC,CAACO,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAmB,KAAK;IACjE,IAAID,GAAG,CAACE,UAAU,CAAC,IAAI,CAAC,EAAE;MACxBtB,EAAE,CAACgB,KAAK,CAACO,WAAW,CAACH,GAAG,EAAEC,KAAK,CAAC;MAChC;IACF;IAEAN,cAAc,CAACK,GAAG,CAAC,GAAGJ,KAAK,CAACI,GAAG,CAAC;IAChCJ,KAAK,CAACI,GAAG,CAAC,GAAGC,KAAK;EACpB,CAAC,CAAC;EAEF,IAAIR,WAAW,EAAE;EAEjBhB,KAAK,CAACc,GAAG,CAACX,EAAE,EAAEe,cAAc,CAAC;AAC/B;AAEA,OAAO,SAASS,KAAKA,CAACxB,EAAgC,EAAEyB,IAAa,EAAE;EACrE,IAAI,CAACzB,EAAE,IAAI,EAAEA,EAAE,YAAYc,WAAW,CAAC,EAAE;EACzC,IAAIC,cAAc,GAAGlB,KAAK,CAAC6B,GAAG,CAAC1B,EAAE,CAAC;EAElC,IAAI,CAACe,cAAc,EAAE;IACnB;EACF;EAEA,MAAMC,KAAK,GAAGhB,EAAE,CAACgB,KAAuB;EACxC,IAAIS,IAAI,EAAE;IACRT,KAAK,CAACS,IAAI,CAAC,GAAGV,cAAc,CAACU,IAAI,CAAC;EACpC,CAAC,MAAM;IACLR,MAAM,CAACC,OAAO,CAACH,cAAc,CAAC,CAACI,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;MACvDL,KAAK,CAACI,GAAG,CAAC,GAAGC,KAAK;IACpB,CAAC,CAAC;EACJ;AACF;AAEA,OAAO,MAAMM,UAAU,GAAIC,SAA0B,IAAK;EACxD,QAAQA,SAAS;IACf,KAAK,KAAK;IACV,KAAK,QAAQ;MACX,OAAO,IAAI;IACb,KAAK,MAAM;IACX,KAAK,OAAO;MACV,OAAO,KAAK;IACd;MACE,OAAOA,SAAS;EACpB;AACF,CAAC;AAED,OAAO,SAASC,YAAYA,CAACC,OAAoB,EAAEF,SAA0B,EAAiB;EAC5F,IAAI,CAACE,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EACA,MAAMd,KAAK,GAAGb,MAAM,CAAC4B,gBAAgB,CAACD,OAAO,CAAC;EAC9C,MAAME,SAAS;EACb;EACAhB,KAAK,CAACgB,SAAS,IAAIhB,KAAK,CAACiB,eAAe,IAAIjB,KAAK,CAACkB,YAAY;EAChE,IAAIC,GAAG,GAAGH,SAAS,CAACI,KAAK,CAAC,oBAAoB,CAAC;EAC/C,IAAID,GAAG,EAAE;IACP;IACA,OAAOE,UAAU,CAACF,GAAG,CAAC,CAAC,CAAC,CAACG,KAAK,CAAC,IAAI,CAAC,CAACX,UAAU,CAACC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;EACxE;EACA;EACAO,GAAG,GAAGH,SAAS,CAACI,KAAK,CAAC,kBAAkB,CAAC;EACzC,OAAOD,GAAG,GAAGE,UAAU,CAACF,GAAG,CAAC,CAAC,CAAC,CAACG,KAAK,CAAC,IAAI,CAAC,CAACX,UAAU,CAACC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;AACnF;AAEA,OAAO,SAASW,WAAWA,CAACC,CAAS,EAAE;EACrC,OAAO,CAAC,IAAIC,IAAI,CAACC,GAAG,CAACF,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC;AAEA,OAAO,SAASG,WAAWA,CACzBb,OAAuC,EACvCd,KAAmC,EACnC;EACA,IAAI,CAACc,OAAO,EAAE,OAAO,MAAM,CAAC,CAAC;EAE7B,MAAMc,SAAS,GAAGd,OAAO,CAACd,KAAK,CAAC6B,OAAO;EACvC5B,MAAM,CAAC6B,MAAM,CAAChB,OAAO,CAACd,KAAK,EAAEA,KAAK,CAAC;EAEnC,OAAO,MAAM;IACXc,OAAO,CAACd,KAAK,CAAC6B,OAAO,GAAGD,SAAS;EACnC,CAAC;AACH;;AAEA;AACA;AACA;AACA,OAAO,SAASG,KAAKA,CAAI,GAAGC,GAAQ,EAAE;EACpC,OAAO,CAAC,GAAGC,IAAmD,KAAK;IACjE,KAAK,MAAMC,EAAE,IAAIF,GAAG,EAAE;MACpB,IAAI,OAAOE,EAAE,KAAK,UAAU,EAAE;QAC5B;QACAA,EAAE,CAAC,GAAGD,IAAI,CAAC;MACb;IACF;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ import { Presence } from '@radix-ui/react-presence';
|
|
|
7
7
|
import { DrawerContext, useDrawerContext } from "./context.js";
|
|
8
8
|
import './style.css';
|
|
9
9
|
import { isIOS, isMobileFirefox } from "./browser.js";
|
|
10
|
-
import { BORDER_RADIUS, CLOSE_THRESHOLD, DRAG_CLASS, NESTED_DISPLACEMENT, SCROLL_LOCK_TIMEOUT, TRANSITIONS, VELOCITY_THRESHOLD, WINDOW_TOP_OFFSET } from "./constants.js";
|
|
10
|
+
import { BORDER_RADIUS, CLOSE_THRESHOLD, DISMISS_ATTEMPT_THRESHOLD, DRAG_CLASS, NESTED_DISPLACEMENT, SCROLL_LOCK_TIMEOUT, TRANSITIONS, VELOCITY_THRESHOLD, WINDOW_TOP_OFFSET } from "./constants.js";
|
|
11
11
|
import { dampenValue, getTranslate, isVertical, reset, set } from "./helpers.js";
|
|
12
12
|
import { useComposedRefs } from "./use-composed-refs.js";
|
|
13
13
|
import { useControllableState } from "./use-controllable-state.js";
|
|
@@ -28,6 +28,7 @@ export function Root({
|
|
|
28
28
|
closeThreshold = CLOSE_THRESHOLD,
|
|
29
29
|
scrollLockTimeout = SCROLL_LOCK_TIMEOUT,
|
|
30
30
|
dismissible = true,
|
|
31
|
+
onDismissAttempt,
|
|
31
32
|
draggable = true,
|
|
32
33
|
handleOnly = false,
|
|
33
34
|
fadeFromIndex = snapPoints && snapPoints.length - 1,
|
|
@@ -82,6 +83,7 @@ export function Root({
|
|
|
82
83
|
const isAllowedToDrag = React.useRef(false);
|
|
83
84
|
const nestedOpenChangeTimer = React.useRef(null);
|
|
84
85
|
const pointerStart = React.useRef(0);
|
|
86
|
+
const dismissAttempted = React.useRef(false);
|
|
85
87
|
const keyboardIsOpen = React.useRef(false);
|
|
86
88
|
const shouldAnimate = React.useRef(!defaultOpen);
|
|
87
89
|
const previousDiffFromInitial = React.useRef(0);
|
|
@@ -299,7 +301,14 @@ export function Root({
|
|
|
299
301
|
const noCloseSnapPointsPreCondition = snapPoints && !dismissible && !isDraggingInDirection;
|
|
300
302
|
|
|
301
303
|
// Disallow dragging down to close when first snap point is the active one and dismissible prop is set to false.
|
|
302
|
-
if (noCloseSnapPointsPreCondition && activeSnapPointIndex === 0)
|
|
304
|
+
if (noCloseSnapPointsPreCondition && activeSnapPointIndex === 0) {
|
|
305
|
+
// The drawer stays put. Remember a deliberate pull that would otherwise
|
|
306
|
+
// have dragged it (content at its top) so release() can report it.
|
|
307
|
+
if (-draggedDistance > DISMISS_ATTEMPT_THRESHOLD && (isAllowedToDrag.current || shouldDrag(event.target, isDraggingInDirection))) {
|
|
308
|
+
dismissAttempted.current = true;
|
|
309
|
+
}
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
303
312
|
|
|
304
313
|
// We need to capture last time when drag with scroll was triggered and have a timeout between
|
|
305
314
|
const absDraggedDistance = Math.abs(draggedDistance);
|
|
@@ -504,6 +513,19 @@ export function Root({
|
|
|
504
513
|
unfreezeScrollables();
|
|
505
514
|
setIsDragging(false);
|
|
506
515
|
dragEndTime.current = new Date();
|
|
516
|
+
if (dismissAttempted.current) {
|
|
517
|
+
dismissAttempted.current = false;
|
|
518
|
+
if (isOpen) onDismissAttempt?.();
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
// The press that started this "drag" may have dismissed the drawer (e.g. a
|
|
522
|
+
// back button acting on pointerdown). Snapping now would overwrite the
|
|
523
|
+
// dismiss transform that closeDrawer just wrote and freeze the sheet in
|
|
524
|
+
// place until it unmounts.
|
|
525
|
+
if (!isOpen) {
|
|
526
|
+
if (pointerEvent) onReleaseProp?.(pointerEvent, false);
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
507
529
|
const swipeAmount = getTranslate(drawerRef.current, direction);
|
|
508
530
|
|
|
509
531
|
// Drag overshoot below the lowest snap point translates the detached
|
|
@@ -648,6 +670,7 @@ export function Root({
|
|
|
648
670
|
onTouchDrag: (event, pointerEvent) => drag(event, pointerEvent),
|
|
649
671
|
onTouchRelease: (event, pointerEvent) => release(event, pointerEvent),
|
|
650
672
|
dismissible,
|
|
673
|
+
onDismissAttempt,
|
|
651
674
|
shouldAnimate,
|
|
652
675
|
handleOnly,
|
|
653
676
|
isOpen,
|
|
@@ -772,6 +795,7 @@ export const Content = /*#__PURE__*/React.forwardRef(({
|
|
|
772
795
|
snapPoints,
|
|
773
796
|
setActiveSnapPoint,
|
|
774
797
|
dismissible,
|
|
798
|
+
onDismissAttempt,
|
|
775
799
|
container,
|
|
776
800
|
handleOnly,
|
|
777
801
|
shouldAnimate,
|
|
@@ -1048,6 +1072,8 @@ export const Content = /*#__PURE__*/React.forwardRef(({
|
|
|
1048
1072
|
e.preventDefault();
|
|
1049
1073
|
if (hasSnapPoints && typeof activeSnapPointIndex === 'number' && activeSnapPointIndex > 0) {
|
|
1050
1074
|
setActiveSnapPoint(snapPoints[0]);
|
|
1075
|
+
} else {
|
|
1076
|
+
onDismissAttempt?.();
|
|
1051
1077
|
}
|
|
1052
1078
|
}
|
|
1053
1079
|
},
|
|
@@ -1170,6 +1196,7 @@ export const Handle = /*#__PURE__*/React.forwardRef(({
|
|
|
1170
1196
|
activeSnapPoint,
|
|
1171
1197
|
setActiveSnapPoint,
|
|
1172
1198
|
dismissible,
|
|
1199
|
+
onDismissAttempt,
|
|
1173
1200
|
handleOnly,
|
|
1174
1201
|
isOpen,
|
|
1175
1202
|
onPress,
|
|
@@ -1206,6 +1233,12 @@ export const Handle = /*#__PURE__*/React.forwardRef(({
|
|
|
1206
1233
|
closeDrawer();
|
|
1207
1234
|
return;
|
|
1208
1235
|
}
|
|
1236
|
+
|
|
1237
|
+
// Mirrors native: a single-detent sheet's handle tap is a dismiss.
|
|
1238
|
+
if (isLastSnapPoint && snapPoints.length === 1) {
|
|
1239
|
+
onDismissAttempt?.();
|
|
1240
|
+
return;
|
|
1241
|
+
}
|
|
1209
1242
|
const currentSnapIndex = snapPoints.findIndex(point => point === activeSnapPoint);
|
|
1210
1243
|
if (currentSnapIndex === -1) return; // activeSnapPoint not found in snapPoints
|
|
1211
1244
|
const nextSnapPoint = snapPoints[currentSnapIndex + 1];
|