@hanzogui/sheet 7.3.0 → 8.0.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/.turbo/turbo-build.log +2 -0
- package/controller/index.cjs +2 -0
- package/controller/index.d.ts +5 -0
- package/controller/index.js +2 -0
- package/controller/index.native.cjs +2 -0
- package/controller/index.native.js +2 -0
- package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/cjs/SheetImplementationCustom.cjs +137 -74
- package/dist/cjs/SheetImplementationCustom.native.js +162 -83
- package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
- package/dist/cjs/SheetScrollView.cjs +155 -34
- package/dist/cjs/SheetScrollView.native.js +160 -35
- package/dist/cjs/SheetScrollView.native.js.map +1 -1
- package/dist/cjs/createSheet.cjs +7 -3
- package/dist/cjs/createSheet.native.js +7 -3
- package/dist/cjs/createSheet.native.js.map +1 -1
- package/dist/cjs/gestureState.cjs +13 -2
- package/dist/cjs/gestureState.native.js +14 -2
- package/dist/cjs/gestureState.native.js.map +1 -1
- package/dist/cjs/index.cjs +12 -1
- package/dist/cjs/index.native.js +11 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keyboardAvoidance.cjs +93 -0
- package/dist/cjs/keyboardAvoidance.native.js +99 -0
- package/dist/cjs/keyboardAvoidance.native.js.map +1 -0
- package/dist/cjs/nativeSheet.cjs +3 -0
- package/dist/cjs/nativeSheet.native.js +3 -0
- package/dist/cjs/nativeSheet.native.js.map +1 -1
- package/dist/cjs/setupGestureHandler.cjs +9 -6
- package/dist/cjs/setupGestureHandler.native.js +11 -6
- package/dist/cjs/setupGestureHandler.native.js.map +1 -1
- package/dist/cjs/useGestureHandlerPan.cjs +86 -18
- package/dist/cjs/useGestureHandlerPan.native.js +91 -18
- package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
- package/dist/cjs/useKeyboardControllerSheet.cjs +68 -6
- package/dist/cjs/useSafeAreaInsets.cjs +44 -0
- package/dist/cjs/useSafeAreaInsets.native.js +48 -0
- package/dist/cjs/useSafeAreaInsets.native.js.map +1 -0
- package/dist/cjs/useSheetProviderProps.cjs +1 -1
- package/dist/cjs/useSheetProviderProps.native.js +1 -1
- package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
- package/dist/cjs/useSheetScrollViewGestures.cjs +30 -5
- package/dist/cjs/useSheetScrollViewGestures.native.js +4 -0
- package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/cjs/webViewport.cjs +75 -0
- package/dist/cjs/webViewport.native.js +81 -0
- package/dist/cjs/webViewport.native.js.map +1 -0
- package/dist/esm/GestureDetectorWrapper.mjs.map +1 -1
- package/dist/esm/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/esm/SheetImplementationCustom.mjs +143 -84
- package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
- package/dist/esm/SheetImplementationCustom.native.js +173 -102
- package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
- package/dist/esm/SheetScrollView.mjs +157 -36
- package/dist/esm/SheetScrollView.mjs.map +1 -1
- package/dist/esm/SheetScrollView.native.js +162 -37
- package/dist/esm/SheetScrollView.native.js.map +1 -1
- package/dist/esm/createSheet.mjs +9 -6
- package/dist/esm/createSheet.mjs.map +1 -1
- package/dist/esm/createSheet.native.js +19 -15
- package/dist/esm/createSheet.native.js.map +1 -1
- package/dist/esm/gestureState.mjs +13 -2
- package/dist/esm/gestureState.mjs.map +1 -1
- package/dist/esm/gestureState.native.js +14 -2
- package/dist/esm/gestureState.native.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keyboardAvoidance.mjs +66 -0
- package/dist/esm/keyboardAvoidance.mjs.map +1 -0
- package/dist/esm/keyboardAvoidance.native.js +69 -0
- package/dist/esm/keyboardAvoidance.native.js.map +1 -0
- package/dist/esm/nativeSheet.mjs +3 -0
- package/dist/esm/nativeSheet.mjs.map +1 -1
- package/dist/esm/nativeSheet.native.js +3 -0
- package/dist/esm/nativeSheet.native.js.map +1 -1
- package/dist/esm/setupGestureHandler.mjs +9 -6
- package/dist/esm/setupGestureHandler.mjs.map +1 -1
- package/dist/esm/setupGestureHandler.native.js +11 -6
- package/dist/esm/setupGestureHandler.native.js.map +1 -1
- package/dist/esm/useGestureHandlerPan.mjs +87 -19
- package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
- package/dist/esm/useGestureHandlerPan.native.js +92 -19
- package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
- package/dist/esm/useKeyboardControllerSheet.mjs +69 -7
- package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -1
- package/dist/esm/useSafeAreaInsets.mjs +7 -0
- package/dist/esm/useSafeAreaInsets.mjs.map +1 -0
- package/dist/esm/useSafeAreaInsets.native.js +8 -0
- package/dist/esm/useSafeAreaInsets.native.js.map +1 -0
- package/dist/esm/useSheetProviderProps.mjs +1 -1
- package/dist/esm/useSheetProviderProps.mjs.map +1 -1
- package/dist/esm/useSheetProviderProps.native.js +1 -1
- package/dist/esm/useSheetProviderProps.native.js.map +1 -1
- package/dist/esm/useSheetScrollViewGestures.mjs +30 -5
- package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
- package/dist/esm/useSheetScrollViewGestures.native.js +4 -0
- package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/esm/webViewport.mjs +43 -0
- package/dist/esm/webViewport.mjs.map +1 -0
- package/dist/esm/webViewport.native.js +46 -0
- package/dist/esm/webViewport.native.js.map +1 -0
- package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -1
- package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -1
- package/dist/jsx/SheetImplementationCustom.mjs +143 -84
- package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
- package/dist/jsx/SheetImplementationCustom.native.js +162 -83
- package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
- package/dist/jsx/SheetScrollView.mjs +157 -36
- package/dist/jsx/SheetScrollView.mjs.map +1 -1
- package/dist/jsx/SheetScrollView.native.js +160 -35
- package/dist/jsx/SheetScrollView.native.js.map +1 -1
- package/dist/jsx/createSheet.mjs +9 -6
- package/dist/jsx/createSheet.mjs.map +1 -1
- package/dist/jsx/createSheet.native.js +7 -3
- package/dist/jsx/createSheet.native.js.map +1 -1
- package/dist/jsx/gestureState.mjs +13 -2
- package/dist/jsx/gestureState.mjs.map +1 -1
- package/dist/jsx/gestureState.native.js +14 -2
- package/dist/jsx/gestureState.native.js.map +1 -1
- package/dist/jsx/index.js +2 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +11 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/keyboardAvoidance.mjs +66 -0
- package/dist/jsx/keyboardAvoidance.mjs.map +1 -0
- package/dist/jsx/keyboardAvoidance.native.js +99 -0
- package/dist/jsx/keyboardAvoidance.native.js.map +1 -0
- package/dist/jsx/nativeSheet.mjs +3 -0
- package/dist/jsx/nativeSheet.mjs.map +1 -1
- package/dist/jsx/nativeSheet.native.js +3 -0
- package/dist/jsx/nativeSheet.native.js.map +1 -1
- package/dist/jsx/setupGestureHandler.mjs +9 -6
- package/dist/jsx/setupGestureHandler.mjs.map +1 -1
- package/dist/jsx/setupGestureHandler.native.js +11 -6
- package/dist/jsx/setupGestureHandler.native.js.map +1 -1
- package/dist/jsx/useGestureHandlerPan.mjs +87 -19
- package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
- package/dist/jsx/useGestureHandlerPan.native.js +91 -18
- package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
- package/dist/jsx/useKeyboardControllerSheet.mjs +69 -7
- package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -1
- package/dist/jsx/useSafeAreaInsets.mjs +7 -0
- package/dist/jsx/useSafeAreaInsets.mjs.map +1 -0
- package/dist/jsx/useSafeAreaInsets.native.js +48 -0
- package/dist/jsx/useSafeAreaInsets.native.js.map +1 -0
- package/dist/jsx/useSheetProviderProps.mjs +1 -1
- package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
- package/dist/jsx/useSheetProviderProps.native.js +1 -1
- package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
- package/dist/jsx/useSheetScrollViewGestures.mjs +30 -5
- package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
- package/dist/jsx/useSheetScrollViewGestures.native.js +4 -0
- package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -1
- package/dist/jsx/webViewport.mjs +43 -0
- package/dist/jsx/webViewport.mjs.map +1 -0
- package/dist/jsx/webViewport.native.js +81 -0
- package/dist/jsx/webViewport.native.js.map +1 -0
- package/next.md +78 -0
- package/package.json +30 -48
- package/setup-gesture-handler/index.cjs +2 -0
- package/setup-gesture-handler/index.js +2 -0
- package/setup-gesture-handler/index.native.cjs +2 -0
- package/setup-gesture-handler/index.native.js +2 -0
- package/src/GestureDetectorWrapper.tsx +0 -3
- package/src/SheetImplementationCustom.tsx +387 -127
- package/src/SheetScrollView.tsx +195 -22
- package/src/createSheet.tsx +20 -7
- package/src/gestureState.ts +22 -2
- package/src/index.ts +4 -0
- package/src/keyboardAvoidance.ts +121 -0
- package/src/nativeSheet.tsx +8 -1
- package/src/setupGestureHandler.ts +14 -5
- package/src/types.tsx +20 -1
- package/src/useGestureHandlerPan.tsx +94 -35
- package/src/useKeyboardControllerSheet.ts +127 -10
- package/src/useSafeAreaInsets.native.ts +29 -0
- package/src/useSafeAreaInsets.ts +19 -0
- package/src/useSheetProviderProps.tsx +12 -1
- package/src/useSheetScrollViewGestures.native.ts +4 -0
- package/src/useSheetScrollViewGestures.ts +52 -5
- package/src/webViewport.ts +100 -0
- package/test/keyboardAvoidance.test.ts +269 -0
- package/tsconfig.json +57 -0
- package/types/GestureDetectorWrapper.d.ts +1 -1
- package/types/GestureDetectorWrapper.d.ts.map +1 -1
- package/types/GestureSheetContext.d.ts +1 -1
- package/types/GestureSheetContext.d.ts.map +1 -1
- package/types/Sheet.d.ts +6 -5
- package/types/Sheet.d.ts.map +1 -1
- package/types/SheetContext.d.ts +5 -2
- package/types/SheetContext.d.ts.map +1 -1
- package/types/SheetController.d.ts +1 -2
- package/types/SheetController.d.ts.map +1 -1
- package/types/SheetImplementationCustom.d.ts +1 -0
- package/types/SheetImplementationCustom.d.ts.map +1 -1
- package/types/SheetScrollView.d.ts.map +1 -1
- package/types/createSheet.d.ts +13 -12
- package/types/createSheet.d.ts.map +1 -1
- package/types/gestureState.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/keyboardAvoidance.d.ts +26 -0
- package/types/keyboardAvoidance.d.ts.map +1 -0
- package/types/nativeSheet.d.ts.map +1 -1
- package/types/setupGestureHandler.d.ts.map +1 -1
- package/types/types.d.ts +10 -1
- package/types/types.d.ts.map +1 -1
- package/types/useGestureHandlerPan.d.ts +4 -1
- package/types/useGestureHandlerPan.d.ts.map +1 -1
- package/types/useKeyboardControllerSheet.d.ts +14 -3
- package/types/useKeyboardControllerSheet.d.ts.map +1 -1
- package/types/useSafeAreaInsets.d.ts +10 -0
- package/types/useSafeAreaInsets.d.ts.map +1 -0
- package/types/useSafeAreaInsets.native.d.ts +20 -0
- package/types/useSafeAreaInsets.native.d.ts.map +1 -0
- package/types/useSheetProviderProps.d.ts +3 -0
- package/types/useSheetProviderProps.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.d.ts +2 -1
- package/types/useSheetScrollViewGestures.d.ts.map +1 -1
- package/types/useSheetScrollViewGestures.native.d.ts.map +1 -1
- package/types/webViewport.d.ts +36 -0
- package/types/webViewport.d.ts.map +1 -0
- package/LICENSE +0 -42
|
@@ -1,33 +1,42 @@
|
|
|
1
|
-
import { ProvideAdaptContext, useAdaptContext } from "@hanzogui/adapt";
|
|
2
1
|
import { AnimatePresence } from "@hanzogui/animate-presence";
|
|
3
2
|
import { useComposedRefs } from "@hanzogui/compose-refs";
|
|
4
3
|
import { isWeb, useIsomorphicLayoutEffect } from "@hanzogui/constants";
|
|
5
|
-
import { LayoutMeasurementController, View
|
|
6
|
-
import {
|
|
7
|
-
import { needsPortalRepropagation, Portal } from "@hanzogui/portal";
|
|
4
|
+
import { LayoutMeasurementController, View, useConfiguration, useDidFinishSSR, useEvent, useThemeName } from "@hanzogui/core";
|
|
5
|
+
import { Portal, needsPortalRepropagation } from "@hanzogui/portal";
|
|
8
6
|
import React, { useState } from "react";
|
|
9
|
-
import { Dimensions, PanResponder, View } from "react-native-web";
|
|
7
|
+
import { Dimensions, PanResponder, View as View$1 } from "react-native-web";
|
|
10
8
|
import { ParentSheetContext, SheetInsideSheetContext } from "./contexts.mjs";
|
|
11
9
|
import { GestureDetectorWrapper } from "./GestureDetectorWrapper.mjs";
|
|
10
|
+
import { getGestureHandlerState } from "./gestureState.mjs";
|
|
12
11
|
import { GestureSheetProvider } from "./GestureSheetContext.mjs";
|
|
13
12
|
import { resisted } from "./helpers.mjs";
|
|
13
|
+
import { getKeyboardAdjustedSheetY, getKeyboardOccludedHeight, getSheetReleasePosition } from "./keyboardAvoidance.mjs";
|
|
14
|
+
import { MIN_KEYBOARD_HEIGHT, getMaxViewportHeight, getStableLayoutViewportHeight, getWebKeyboardResizeHeight, getWebVisualViewportOffsetTop } from "./webViewport.mjs";
|
|
14
15
|
import { SheetProvider } from "./SheetContext.mjs";
|
|
15
16
|
import { useGestureHandlerPan } from "./useGestureHandlerPan.mjs";
|
|
16
17
|
import { useKeyboardControllerSheet } from "./useKeyboardControllerSheet.mjs";
|
|
18
|
+
import { useSafeAreaInsets } from "./useSafeAreaInsets.mjs";
|
|
17
19
|
import { useSheetOpenState } from "./useSheetOpenState.mjs";
|
|
18
20
|
import { useSheetProviderProps } from "./useSheetProviderProps.mjs";
|
|
19
21
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
20
22
|
const hiddenSize = 10000.1;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
const rnghRootStyleOpen = {
|
|
24
|
+
width: "100%",
|
|
25
|
+
height: "100%"
|
|
26
|
+
};
|
|
27
|
+
const rnghRootStyleClosed = {
|
|
28
|
+
width: "100%",
|
|
29
|
+
height: 0
|
|
30
|
+
};
|
|
27
31
|
let sheetHiddenStyleSheet = null;
|
|
28
32
|
const relativeDimensionTo = isWeb ? "window" : "screen";
|
|
33
|
+
function getStableViewportHeight() {
|
|
34
|
+
if (isWeb && typeof window !== "undefined") return getStableLayoutViewportHeight();
|
|
35
|
+
return Dimensions.get(relativeDimensionTo).height;
|
|
36
|
+
}
|
|
29
37
|
const SheetImplementationCustom = React.forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
|
|
30
38
|
const parentSheet = React.useContext(ParentSheetContext);
|
|
39
|
+
const safeAreaTopInset = useSafeAreaInsets()?.top ?? 0;
|
|
31
40
|
const {
|
|
32
41
|
transition,
|
|
33
42
|
transitionConfig: transitionConfigProp,
|
|
@@ -35,6 +44,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
35
44
|
zIndex = parentSheet.zIndex + 1,
|
|
36
45
|
moveOnKeyboardChange = false,
|
|
37
46
|
unmountChildrenWhenHidden = false,
|
|
47
|
+
disableTransparencyHide = false,
|
|
38
48
|
portalProps,
|
|
39
49
|
containerComponent: ContainerComponent = React.Fragment,
|
|
40
50
|
onAnimationComplete
|
|
@@ -47,6 +57,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
47
57
|
const {
|
|
48
58
|
frameSize,
|
|
49
59
|
setFrameSize,
|
|
60
|
+
dismissOnSnapToBottom,
|
|
50
61
|
snapPoints,
|
|
51
62
|
snapPointsMode,
|
|
52
63
|
hasFit,
|
|
@@ -64,8 +75,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
64
75
|
} = state;
|
|
65
76
|
const openRef = React.useRef(open);
|
|
66
77
|
openRef.current = open;
|
|
67
|
-
const
|
|
68
|
-
const ref = useComposedRefs(forwardedRef, sheetRef, providerProps.contentRef);
|
|
78
|
+
const ref = useComposedRefs(forwardedRef, React.useRef(void 0), providerProps.contentRef);
|
|
69
79
|
const {
|
|
70
80
|
animationDriver
|
|
71
81
|
} = useConfiguration();
|
|
@@ -85,12 +95,6 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
85
95
|
const onInnerSheet = React.useCallback(hasChild => {
|
|
86
96
|
setIsShowingInnerSheet(hasChild);
|
|
87
97
|
}, []);
|
|
88
|
-
const stableFrameSize = React.useRef(frameSize);
|
|
89
|
-
React.useEffect(() => {
|
|
90
|
-
if (open && frameSize) stableFrameSize.current = frameSize;
|
|
91
|
-
}, [open, frameSize]);
|
|
92
|
-
const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize;
|
|
93
|
-
const positions = React.useMemo(() => snapPoints.map(point => getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize)), [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]);
|
|
94
98
|
const {
|
|
95
99
|
keyboardHeight,
|
|
96
100
|
isKeyboardVisible,
|
|
@@ -98,8 +102,21 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
98
102
|
pauseKeyboardHandler,
|
|
99
103
|
flushPendingHide
|
|
100
104
|
} = useKeyboardControllerSheet({
|
|
101
|
-
enabled:
|
|
105
|
+
enabled: Boolean(moveOnKeyboardChange)
|
|
102
106
|
});
|
|
107
|
+
const stableFrameSize = React.useRef(frameSize);
|
|
108
|
+
React.useEffect(() => {
|
|
109
|
+
if (open && frameSize) stableFrameSize.current = frameSize;
|
|
110
|
+
}, [open, frameSize]);
|
|
111
|
+
const isWebKbSheet = isWeb && hasFit && moveOnKeyboardChange;
|
|
112
|
+
const isNativeKbFitSheet = !isWeb && hasFit && Boolean(moveOnKeyboardChange);
|
|
113
|
+
const preKeyboardFrameSize = React.useRef(0);
|
|
114
|
+
React.useEffect(() => {
|
|
115
|
+
if (isNativeKbFitSheet && open && !isKeyboardVisible && frameSize > 0) preKeyboardFrameSize.current = frameSize;
|
|
116
|
+
}, [isNativeKbFitSheet, open, isKeyboardVisible, frameSize]);
|
|
117
|
+
const effScreenSize = isWebKbSheet ? getStableViewportHeight() : screenSize;
|
|
118
|
+
const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize;
|
|
119
|
+
const positions = React.useMemo(() => snapPoints.map(point => getYPositions(snapPointsMode, point, effScreenSize, effectiveFrameSize)), [effScreenSize, effectiveFrameSize, snapPoints, snapPointsMode]);
|
|
103
120
|
const [isDragging, setIsDragging_] = React.useState(false);
|
|
104
121
|
const isDraggingRef = React.useRef(false);
|
|
105
122
|
const setIsDragging = React.useCallback(val => {
|
|
@@ -112,22 +129,30 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
112
129
|
const activePositions = React.useMemo(() => {
|
|
113
130
|
if (isDragging || isDraggingRef.current) return activePositionsRef.current;
|
|
114
131
|
let result;
|
|
115
|
-
if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
132
|
+
if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else result = positions.map(p => getKeyboardAdjustedSheetY({
|
|
133
|
+
sheetY: p,
|
|
134
|
+
screenSize: effScreenSize,
|
|
135
|
+
isKeyboardVisible,
|
|
136
|
+
keyboardHeight,
|
|
137
|
+
shouldTranslate: true,
|
|
138
|
+
safeAreaTop: isWeb ? getWebVisualViewportOffsetTop() : safeAreaTopInset
|
|
139
|
+
}));
|
|
122
140
|
activePositionsRef.current = result;
|
|
123
141
|
return result;
|
|
124
|
-
}, [positions, isKeyboardVisible, keyboardHeight,
|
|
142
|
+
}, [positions, isKeyboardVisible, keyboardHeight, effScreenSize, isDragging, safeAreaTopInset]);
|
|
143
|
+
const keyboardOccludedHeight = getKeyboardOccludedHeight({
|
|
144
|
+
frameSize: effectiveFrameSize,
|
|
145
|
+
isKeyboardVisible,
|
|
146
|
+
keyboardHeight,
|
|
147
|
+
screenSize: effScreenSize,
|
|
148
|
+
sheetY: position >= 0 ? activePositions[position] : void 0
|
|
149
|
+
});
|
|
150
|
+
const keyboardStableFrameHeight = isWebKbSheet && isKeyboardVisible && frameSize > 0 ? frameSize : isNativeKbFitSheet && isKeyboardVisible && preKeyboardFrameSize.current > 0 ? preKeyboardFrameSize.current : 0;
|
|
125
151
|
const {
|
|
126
152
|
useAnimatedNumber,
|
|
127
|
-
useAnimatedNumberStyle
|
|
128
|
-
useAnimatedNumberReaction
|
|
153
|
+
useAnimatedNumberStyle
|
|
129
154
|
} = animationDriver;
|
|
130
|
-
const AnimatedView = animationDriver.View ??
|
|
155
|
+
const AnimatedView = animationDriver.View ?? View;
|
|
131
156
|
useIsomorphicLayoutEffect(() => {
|
|
132
157
|
if (!(sheetInsideSheet && open)) return;
|
|
133
158
|
sheetInsideSheet(true);
|
|
@@ -147,30 +172,46 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
147
172
|
if (controller?.skipNextAnimation) skipAdaptAnimation.current = true;
|
|
148
173
|
const hasScrollView = React.useRef(false);
|
|
149
174
|
const opacityFallbackTimer = React.useRef(null);
|
|
150
|
-
|
|
151
|
-
value: animatedNumber,
|
|
152
|
-
hostRef: sheetRef
|
|
153
|
-
}, React.useCallback(value => {
|
|
175
|
+
const syncAnimatedPosition = useEvent(value => {
|
|
154
176
|
at.current = value;
|
|
155
177
|
scrollBridge.paneY = value;
|
|
156
178
|
const minY = activePositions[0];
|
|
157
179
|
const wasAtTop = scrollBridge.isAtTop;
|
|
158
180
|
const nowAtTop = value <= minY + 5;
|
|
159
|
-
if (wasAtTop
|
|
160
|
-
|
|
161
|
-
|
|
181
|
+
if (wasAtTop === nowAtTop) return;
|
|
182
|
+
scrollBridge.isAtTop = nowAtTop;
|
|
183
|
+
if (nowAtTop) {
|
|
184
|
+
if (scrollBridge.lockScrollAtTop) {
|
|
162
185
|
if (scrollBridge.y > 0) {
|
|
163
186
|
scrollBridge.forceScrollTo?.(0);
|
|
164
187
|
scrollBridge.y = 0;
|
|
165
188
|
}
|
|
166
|
-
scrollBridge.scrollLockY = void 0;
|
|
167
|
-
scrollBridge.setScrollEnabled?.(true);
|
|
168
|
-
} else {
|
|
169
189
|
scrollBridge.scrollLockY = 0;
|
|
170
|
-
scrollBridge.setScrollEnabled?.(false);
|
|
190
|
+
scrollBridge.setScrollEnabled?.(false, 0);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
if (scrollBridge.y > 0) {
|
|
194
|
+
scrollBridge.forceScrollTo?.(0);
|
|
195
|
+
scrollBridge.y = 0;
|
|
171
196
|
}
|
|
197
|
+
scrollBridge.scrollLockY = void 0;
|
|
198
|
+
scrollBridge.setScrollEnabled?.(true);
|
|
199
|
+
} else {
|
|
200
|
+
scrollBridge.scrollLockY = 0;
|
|
201
|
+
scrollBridge.setScrollEnabled?.(false);
|
|
172
202
|
}
|
|
173
|
-
}
|
|
203
|
+
});
|
|
204
|
+
const setAnimatedPositionDirect = useEvent(value => {
|
|
205
|
+
syncAnimatedPosition(value);
|
|
206
|
+
animatedNumber.setValue(value, {
|
|
207
|
+
type: "direct"
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
const getAnimatedPosition = useEvent(() => {
|
|
211
|
+
const value = animatedNumber.getValue();
|
|
212
|
+
syncAnimatedPosition(value);
|
|
213
|
+
return value;
|
|
214
|
+
});
|
|
174
215
|
function stopSpring() {
|
|
175
216
|
animatedNumber.stop();
|
|
176
217
|
if (scrollBridge.onFinishAnimate) {
|
|
@@ -180,7 +221,8 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
180
221
|
}
|
|
181
222
|
const animateTo = useEvent((position2, animationOverride) => {
|
|
182
223
|
if (frameSize === 0) return;
|
|
183
|
-
|
|
224
|
+
const closeTarget = isWeb ? Math.max(effScreenSize, getMaxViewportHeight()) : effScreenSize;
|
|
225
|
+
let toValue = isHidden || position2 === -1 ? closeTarget : activePositions[position2];
|
|
184
226
|
if (at.current === toValue) return;
|
|
185
227
|
at.current = toValue;
|
|
186
228
|
stopSpring();
|
|
@@ -190,6 +232,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
190
232
|
opacityFallbackTimer.current = null;
|
|
191
233
|
}
|
|
192
234
|
const animationCompleteCallback = () => {
|
|
235
|
+
syncAnimatedPosition(toValue);
|
|
193
236
|
if (opacityFallbackTimer.current) {
|
|
194
237
|
clearTimeout(opacityFallbackTimer.current);
|
|
195
238
|
opacityFallbackTimer.current = null;
|
|
@@ -226,6 +269,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
226
269
|
type: "timing",
|
|
227
270
|
duration: 0
|
|
228
271
|
}, () => {
|
|
272
|
+
syncAnimatedPosition(screenSize);
|
|
229
273
|
setTimeout(() => {
|
|
230
274
|
setDisableAnimation(false);
|
|
231
275
|
}, 10);
|
|
@@ -233,6 +277,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
233
277
|
return;
|
|
234
278
|
}
|
|
235
279
|
if (disableAnimation) return;
|
|
280
|
+
if (isDraggingRef.current) return;
|
|
236
281
|
if (!frameSize || !screenSize || isHidden || hasntMeasured && !open) return;
|
|
237
282
|
animateTo(position);
|
|
238
283
|
if (position === -1) {
|
|
@@ -258,7 +303,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
258
303
|
if (disableDrag) return;
|
|
259
304
|
if (!frameSize) return;
|
|
260
305
|
if (isShowingInnerSheet) return;
|
|
261
|
-
const minY =
|
|
306
|
+
const minY = activePositions[0];
|
|
262
307
|
scrollBridge.paneMinY = minY;
|
|
263
308
|
let startY = at.current;
|
|
264
309
|
function setPanning(val) {
|
|
@@ -277,17 +322,17 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
277
322
|
isExternalDrag = false;
|
|
278
323
|
previouslyScrolling = false;
|
|
279
324
|
setPanning(false);
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
}
|
|
325
|
+
const currentPos = at.current;
|
|
326
|
+
const closestPoint = getSheetReleasePosition({
|
|
327
|
+
positions: activePositions,
|
|
328
|
+
projectedEnd: currentPos + frameSize * vy * .2,
|
|
329
|
+
currentPosition: currentPos,
|
|
330
|
+
frameSize,
|
|
331
|
+
dismissOnSnapToBottom,
|
|
332
|
+
snapPointsMode,
|
|
333
|
+
isKeyboardVisible,
|
|
334
|
+
isWeb
|
|
335
|
+
});
|
|
291
336
|
setPosition(closestPoint);
|
|
292
337
|
animateTo(closestPoint);
|
|
293
338
|
};
|
|
@@ -303,6 +348,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
303
348
|
}) => {
|
|
304
349
|
function getShouldSet() {
|
|
305
350
|
if (e.target === providerProps.handleRef.current) return true;
|
|
351
|
+
if (scrollBridge.scrollNodeTouched) return false;
|
|
306
352
|
if (scrollBridge.hasScrollableContent === true) {
|
|
307
353
|
if (scrollBridge.scrollLock) return false;
|
|
308
354
|
const isScrolled = scrollBridge.y !== 0;
|
|
@@ -322,18 +368,19 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
322
368
|
const grant = () => {
|
|
323
369
|
setPanning(true);
|
|
324
370
|
stopSpring();
|
|
325
|
-
startY =
|
|
371
|
+
startY = getAnimatedPosition();
|
|
326
372
|
};
|
|
327
373
|
let isExternalDrag = false;
|
|
374
|
+
scrollBridge.startPanDrag = () => {
|
|
375
|
+
isExternalDrag = true;
|
|
376
|
+
grant();
|
|
377
|
+
};
|
|
328
378
|
scrollBridge.drag = dy => {
|
|
329
379
|
if (!isExternalDrag) {
|
|
330
380
|
isExternalDrag = true;
|
|
331
381
|
grant();
|
|
332
382
|
}
|
|
333
|
-
|
|
334
|
-
animatedNumber.setValue(resisted(to, minY), {
|
|
335
|
-
type: "direct"
|
|
336
|
-
});
|
|
383
|
+
setAnimatedPositionDirect(resisted(dy + startY, minY));
|
|
337
384
|
};
|
|
338
385
|
scrollBridge.release = release;
|
|
339
386
|
scrollBridge.snapToPosition = positionIndex => {
|
|
@@ -344,21 +391,20 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
344
391
|
};
|
|
345
392
|
return PanResponder.create({
|
|
346
393
|
onMoveShouldSetPanResponder: onMoveShouldSet,
|
|
394
|
+
onPanResponderTerminationRequest: () => false,
|
|
347
395
|
onPanResponderGrant: grant,
|
|
348
396
|
onPanResponderMove: (_e, {
|
|
349
397
|
dy
|
|
350
398
|
}) => {
|
|
351
399
|
const to = resisted(dy + startY, minY);
|
|
352
400
|
if (to <= minY) scrollBridge.setParentDragging(false);else scrollBridge.setParentDragging(true);
|
|
353
|
-
|
|
354
|
-
type: "direct"
|
|
355
|
-
});
|
|
401
|
+
setAnimatedPositionDirect(to);
|
|
356
402
|
},
|
|
357
403
|
onPanResponderEnd: finish,
|
|
358
404
|
onPanResponderTerminate: finish,
|
|
359
405
|
onPanResponderRelease: finish
|
|
360
406
|
});
|
|
361
|
-
}, [disableDrag, isShowingInnerSheet, animateTo, frameSize,
|
|
407
|
+
}, [disableDrag, isShowingInnerSheet, animateTo, frameSize, activePositions, setPosition, dismissOnSnapToBottom, snapPointsMode]);
|
|
362
408
|
React.useEffect(() => {
|
|
363
409
|
if (isDragging || isHidden || !open || disableAnimation) return;
|
|
364
410
|
if (!frameSize || !screenSize) return;
|
|
@@ -379,7 +425,11 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
379
425
|
animateTo(position);
|
|
380
426
|
}, [isDragging]);
|
|
381
427
|
React.useEffect(() => {
|
|
382
|
-
if (!open && isKeyboardVisible)
|
|
428
|
+
if (!open && isKeyboardVisible) {
|
|
429
|
+
dismissKeyboard();
|
|
430
|
+
pauseKeyboardHandler.current = false;
|
|
431
|
+
flushPendingHide();
|
|
432
|
+
}
|
|
383
433
|
}, [open]);
|
|
384
434
|
const {
|
|
385
435
|
panGesture,
|
|
@@ -393,30 +443,31 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
393
443
|
stopSpring,
|
|
394
444
|
scrollBridge,
|
|
395
445
|
setIsDragging,
|
|
396
|
-
getCurrentPosition:
|
|
446
|
+
getCurrentPosition: getAnimatedPosition,
|
|
397
447
|
resisted,
|
|
398
448
|
disableDrag,
|
|
399
449
|
isShowingInnerSheet,
|
|
400
|
-
setAnimatedPosition:
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
});
|
|
405
|
-
},
|
|
450
|
+
setAnimatedPosition: setAnimatedPositionDirect,
|
|
451
|
+
dismissOnSnapToBottom,
|
|
452
|
+
snapPointsMode,
|
|
453
|
+
isKeyboardVisible,
|
|
406
454
|
pauseKeyboardHandler
|
|
407
455
|
});
|
|
456
|
+
const ignoreLayoutForKeyboard = useEvent(() => isWeb && moveOnKeyboardChange && getWebKeyboardResizeHeight() >= MIN_KEYBOARD_HEIGHT);
|
|
408
457
|
const handleAnimationViewLayout = useEvent(e => {
|
|
409
458
|
if (!open && stableFrameSize.current !== 0) return;
|
|
410
459
|
const layoutHeight = e.nativeEvent?.layout.height;
|
|
411
|
-
|
|
460
|
+
if (ignoreLayoutForKeyboard() && frameSize > 0) return;
|
|
461
|
+
const next = modal ? Math.min(layoutHeight, getStableViewportHeight()) : layoutHeight;
|
|
412
462
|
if (!next) return;
|
|
413
|
-
setFrameSize(next);
|
|
463
|
+
setFrameSize(Math.round(next));
|
|
414
464
|
});
|
|
415
465
|
const handleMaxContentViewLayout = React.useCallback(e => {
|
|
416
|
-
|
|
466
|
+
if (ignoreLayoutForKeyboard() && screenSize > 0) return;
|
|
467
|
+
const next = Math.min(e.nativeEvent?.layout.height, getStableViewportHeight());
|
|
417
468
|
if (!next) return;
|
|
418
|
-
setMaxContentSize(next);
|
|
419
|
-
}, []);
|
|
469
|
+
setMaxContentSize(Math.round(next));
|
|
470
|
+
}, [ignoreLayoutForKeyboard, screenSize]);
|
|
420
471
|
const animatedStyle = useAnimatedNumberStyle(animatedNumber, React.useCallback(val => {
|
|
421
472
|
"worklet";
|
|
422
473
|
|
|
@@ -444,6 +495,9 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
444
495
|
value: nextParentContext,
|
|
445
496
|
children: /* @__PURE__ */jsx(SheetProvider, {
|
|
446
497
|
...providerProps,
|
|
498
|
+
keyboardOccludedHeight,
|
|
499
|
+
isKeyboardVisible,
|
|
500
|
+
keyboardStableFrameHeight,
|
|
447
501
|
setHasScrollView,
|
|
448
502
|
children: /* @__PURE__ */jsxs(GestureSheetProvider, {
|
|
449
503
|
isDragging,
|
|
@@ -456,7 +510,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
456
510
|
open
|
|
457
511
|
},
|
|
458
512
|
children: shouldHideParentSheet || !open ? null : overlayComponent
|
|
459
|
-
}), snapPointsMode !== "percent" && /* @__PURE__ */jsx(View, {
|
|
513
|
+
}), snapPointsMode !== "percent" && /* @__PURE__ */jsx(View$1, {
|
|
460
514
|
style: {
|
|
461
515
|
opacity: 0,
|
|
462
516
|
position: "absolute",
|
|
@@ -478,7 +532,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
478
532
|
width: "100%",
|
|
479
533
|
height: forcedContentHeight,
|
|
480
534
|
minHeight: forcedContentHeight,
|
|
481
|
-
opacity:
|
|
535
|
+
opacity: shouldHideParentSheet ? 0 : disableTransparencyHide ? 1 : opacity,
|
|
482
536
|
...((shouldHideParentSheet || !open) && {
|
|
483
537
|
pointerEvents: "none"
|
|
484
538
|
})
|
|
@@ -489,7 +543,7 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
489
543
|
flex: 1
|
|
490
544
|
},
|
|
491
545
|
children: props.children
|
|
492
|
-
}) : /* @__PURE__ */jsx(View, {
|
|
546
|
+
}) : /* @__PURE__ */jsx(View$1, {
|
|
493
547
|
...panResponder?.panHandlers,
|
|
494
548
|
style: {
|
|
495
549
|
flex: 1,
|
|
@@ -505,12 +559,17 @@ const SheetImplementationCustom = React.forwardRef(function SheetImplementationC
|
|
|
505
559
|
});
|
|
506
560
|
const shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : true;
|
|
507
561
|
if (modal) {
|
|
562
|
+
const RNGHRoot = getGestureHandlerState().RootView;
|
|
563
|
+
const mountedContents = shouldMountChildren ? /* @__PURE__ */jsx(ContainerComponent, {
|
|
564
|
+
children: contents
|
|
565
|
+
}) : null;
|
|
508
566
|
const modalContents = /* @__PURE__ */jsx(Portal, {
|
|
509
567
|
stackZIndex: zIndex,
|
|
510
568
|
...portalProps,
|
|
511
|
-
children:
|
|
512
|
-
|
|
513
|
-
|
|
569
|
+
children: mountedContents && RNGHRoot ? /* @__PURE__ */jsx(RNGHRoot, {
|
|
570
|
+
style: open ? rnghRootStyleOpen : rnghRootStyleClosed,
|
|
571
|
+
children: mountedContents
|
|
572
|
+
}) : mountedContents
|
|
514
573
|
});
|
|
515
574
|
if (isWeb) return modalContents;
|
|
516
575
|
return /* @__PURE__ */jsx(SheetInsideSheetContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ProvideAdaptContext","useAdaptContext","AnimatePresence","useComposedRefs","isWeb","useIsomorphicLayoutEffect","LayoutMeasurementController","View","GuiView","useConfiguration","useDidFinishSSR","useEvent","useThemeName","getSafeArea","needsPortalRepropagation","Portal","React","useState","Dimensions","PanResponder","ParentSheetContext","SheetInsideSheetContext","GestureDetectorWrapper","GestureSheetProvider","resisted","SheetProvider","useGestureHandlerPan","useKeyboardControllerSheet","useSheetOpenState","useSheetProviderProps","jsx","jsxs","hiddenSize","_cachedSafeAreaTop","getSafeAreaTopInset","getInsets","top","sheetHiddenStyleSheet","relativeDimensionTo","SheetImplementationCustom","forwardRef","SheetImplementationCustom2","props","forwardedRef","parentSheet","useContext","transition","transitionConfig","transitionConfigProp","modal","zIndex","moveOnKeyboardChange","unmountChildrenWhenHidden","portalProps","containerComponent","ContainerComponent","Fragment","onAnimationComplete","state","overlayComponent","setOverlayComponent","providerProps","onOverlayComponent","frameSize","setFrameSize","snapPoints","snapPointsMode","hasFit","position","setPosition","scrollBridge","screenSize","setMaxContentSize","maxSnapPoint","open","controller","isHidden","openRef","useRef","current","sheetRef","ref","contentRef","animationDriver","Error","animationProp","animationPropConfig","Array","isArray","animations","isShowingInnerSheet","setIsShowingInnerSheet","shouldHideParentSheet","sheetInsideSheet","onInnerSheet","useCallback","hasChild","stableFrameSize","useEffect","effectiveFrameSize","positions","useMemo","map","point","getYPositions","keyboardHeight","isKeyboardVisible","dismissKeyboard","pauseKeyboardHandler","flushPendingHide","enabled","Boolean","isDragging","setIsDragging_","isDraggingRef","setIsDragging","val","activePositionsRef","activePositions","result","safeAreaTop","p","Math","max","useAnimatedNumber","useAnimatedNumberStyle","useAnimatedNumberReaction","AnimatedView","nextParentContext","startPosition","animatedNumber","at","hasntMeasured","disableAnimation","setDisableAnimation","skipAdaptAnimation","skipNextAnimation","hasScrollView","opacityFallbackTimer","value","hostRef","paneY","minY","wasAtTop","isAtTop","nowAtTop","y","forceScrollTo","scrollLockY","setScrollEnabled","stopSpring","stop","onFinishAnimate","animateTo","position2","animationOverride","toValue","isOpenAnimation","clearTimeout","animationCompleteCallback","setOpacity","setTimeout","setValue","type","duration","scrollLock","scrollStartY","isTopPosition","disableDrag","blockPan","setBlockPan","panResponder","paneMinY","startY","setPanning","document","createElement","head","appendChild","innerText","release","vy","setParentDragging","isExternalDrag","previouslyScrolling","end","closestPoint","dist","Number","POSITIVE_INFINITY","i","length","curDist","finish","_e","state2","dragAt","dy","onMoveShouldSet","e","getShouldSet","target","handleRef","hasScrollableContent","isScrolled","isDraggingUp","isNearTop","abs","granted","grant","drag","to","snapToPosition","positionIndex","create","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderRelease","wasDragging","panGesture","panGestureRef","gestureHandlerEnabled","getCurrentPosition","setAnimatedPosition","handleAnimationViewLayout","layoutHeight","nativeEvent","layout","height","next","min","get","handleMaxContentViewLayout","animatedStyle","transform","translateY","opacity","forcedContentHeight","setHasScrollView","contents","disable","children","Provider","custom","style","left","right","bottom","pointerEvents","onLayout","disableClassName","width","minHeight","gesture","flex","panHandlers","shouldMountChildren","modalContents","stackZIndex","mode","endsWith","pct2","slice","isNaN","console","warn","round","pct"],"sources":["../../src/SheetImplementationCustom.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AnimatePresence","useComposedRefs","isWeb","useIsomorphicLayoutEffect","LayoutMeasurementController","View","useConfiguration","useDidFinishSSR","useEvent","useThemeName","Portal","needsPortalRepropagation","React","useState","Dimensions","PanResponder","View$1","ParentSheetContext","SheetInsideSheetContext","GestureDetectorWrapper","getGestureHandlerState","GestureSheetProvider","resisted","getKeyboardAdjustedSheetY","getKeyboardOccludedHeight","getSheetReleasePosition","MIN_KEYBOARD_HEIGHT","getMaxViewportHeight","getStableLayoutViewportHeight","getWebKeyboardResizeHeight","getWebVisualViewportOffsetTop","SheetProvider","useGestureHandlerPan","useKeyboardControllerSheet","useSafeAreaInsets","useSheetOpenState","useSheetProviderProps","jsx","jsxs","hiddenSize","rnghRootStyleOpen","width","height","rnghRootStyleClosed","sheetHiddenStyleSheet","relativeDimensionTo","getStableViewportHeight","window","get","SheetImplementationCustom","forwardRef","SheetImplementationCustom2","props","forwardedRef","parentSheet","useContext","safeAreaTopInset","top","transition","transitionConfig","transitionConfigProp","modal","zIndex","moveOnKeyboardChange","unmountChildrenWhenHidden","disableTransparencyHide","portalProps","containerComponent","ContainerComponent","Fragment","onAnimationComplete","state","overlayComponent","setOverlayComponent","providerProps","onOverlayComponent","frameSize","setFrameSize","dismissOnSnapToBottom","snapPoints","snapPointsMode","hasFit","position","setPosition","scrollBridge","screenSize","setMaxContentSize","maxSnapPoint","open","controller","isHidden","openRef","useRef","current","ref","contentRef","animationDriver","Error","animationProp","animationPropConfig","Array","isArray","animations","isShowingInnerSheet","setIsShowingInnerSheet","shouldHideParentSheet","sheetInsideSheet","onInnerSheet","useCallback","hasChild","keyboardHeight","isKeyboardVisible","dismissKeyboard","pauseKeyboardHandler","flushPendingHide","enabled","Boolean","stableFrameSize","useEffect","isWebKbSheet","isNativeKbFitSheet","preKeyboardFrameSize","effScreenSize","effectiveFrameSize","positions","useMemo","map","point","getYPositions","isDragging","setIsDragging_","isDraggingRef","setIsDragging","val","activePositionsRef","activePositions","result","p","sheetY","shouldTranslate","safeAreaTop","keyboardOccludedHeight","keyboardStableFrameHeight","useAnimatedNumber","useAnimatedNumberStyle","AnimatedView","nextParentContext","startPosition","animatedNumber","at","hasntMeasured","disableAnimation","setDisableAnimation","skipAdaptAnimation","skipNextAnimation","hasScrollView","opacityFallbackTimer","syncAnimatedPosition","value","paneY","minY","wasAtTop","isAtTop","nowAtTop","lockScrollAtTop","y","forceScrollTo","scrollLockY","setScrollEnabled","setAnimatedPositionDirect","setValue","type","getAnimatedPosition","getValue","stopSpring","stop","onFinishAnimate","animateTo","position2","animationOverride","closeTarget","Math","max","toValue","isOpenAnimation","clearTimeout","animationCompleteCallback","setOpacity","setTimeout","duration","scrollLock","scrollStartY","isTopPosition","disableDrag","blockPan","setBlockPan","panResponder","paneMinY","startY","setPanning","document","createElement","head","appendChild","innerText","release","vy","setParentDragging","isExternalDrag","previouslyScrolling","currentPos","closestPoint","projectedEnd","currentPosition","finish","_e","state2","dragAt","dy","onMoveShouldSet","e","getShouldSet","target","handleRef","scrollNodeTouched","hasScrollableContent","isScrolled","isDraggingUp","isNearTop","abs","granted","grant","startPanDrag","drag","snapToPosition","positionIndex","create","onMoveShouldSetPanResponder","onPanResponderTerminationRequest","onPanResponderGrant","onPanResponderMove","to","onPanResponderEnd","onPanResponderTerminate","onPanResponderRelease","wasDragging","panGesture","panGestureRef","gestureHandlerEnabled","getCurrentPosition","setAnimatedPosition","ignoreLayoutForKeyboard","handleAnimationViewLayout","layoutHeight","nativeEvent","layout","next","min","round","handleMaxContentViewLayout","animatedStyle","transform","translateY","opacity","forcedContentHeight","setHasScrollView","contents","disable","children","Provider","custom","style","left","right","bottom","pointerEvents","onLayout","disableClassName","minHeight","gesture","flex","panHandlers","shouldMountChildren","RNGHRoot","RootView","mountedContents","modalContents","stackZIndex","mode","endsWith","pct2","Number","slice","isNaN","console","warn","pct"],"sources":["SheetImplementationCustom.mjs"],"sourcesContent":["import { AnimatePresence } from \"@hanzogui/animate-presence\";\nimport { useComposedRefs } from \"@hanzogui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@hanzogui/constants\";\nimport { LayoutMeasurementController, View, useConfiguration, useDidFinishSSR, useEvent, useThemeName } from \"@hanzogui/core\";\nimport { Portal, needsPortalRepropagation } from \"@hanzogui/portal\";\nimport React, { useState } from \"react\";\nimport { Dimensions, PanResponder, View as View$1 } from \"react-native-web\";\nimport { ParentSheetContext, SheetInsideSheetContext } from \"./contexts\";\nimport { GestureDetectorWrapper } from \"./GestureDetectorWrapper\";\nimport { getGestureHandlerState } from \"./gestureState\";\nimport { GestureSheetProvider } from \"./GestureSheetContext\";\nimport { resisted } from \"./helpers\";\nimport { getKeyboardAdjustedSheetY, getKeyboardOccludedHeight, getSheetReleasePosition } from \"./keyboardAvoidance\";\nimport { MIN_KEYBOARD_HEIGHT, getMaxViewportHeight, getStableLayoutViewportHeight, getWebKeyboardResizeHeight, getWebVisualViewportOffsetTop } from \"./webViewport\";\nimport { SheetProvider } from \"./SheetContext\";\nimport { useGestureHandlerPan } from \"./useGestureHandlerPan\";\nimport { useKeyboardControllerSheet } from \"./useKeyboardControllerSheet\";\nimport { useSafeAreaInsets } from \"./useSafeAreaInsets\";\nimport { useSheetOpenState } from \"./useSheetOpenState\";\nimport { useSheetProviderProps } from \"./useSheetProviderProps\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\nconst hiddenSize = 10000.1;\nconst rnghRootStyleOpen = {\n\twidth: \"100%\",\n\theight: \"100%\"\n};\nconst rnghRootStyleClosed = {\n\twidth: \"100%\",\n\theight: 0\n};\nlet sheetHiddenStyleSheet = null;\nconst relativeDimensionTo = isWeb ? \"window\" : \"screen\";\nfunction getStableViewportHeight() {\n\tif (isWeb && typeof window !== \"undefined\") return getStableLayoutViewportHeight();\n\treturn Dimensions.get(relativeDimensionTo).height;\n}\nconst SheetImplementationCustom = React.forwardRef(function SheetImplementationCustom2(props, forwardedRef) {\n\tconst parentSheet = React.useContext(ParentSheetContext);\n\tconst safeAreaTopInset = useSafeAreaInsets()?.top ?? 0;\n\tconst { transition, transitionConfig: transitionConfigProp, modal = false, zIndex = parentSheet.zIndex + 1, moveOnKeyboardChange = false, unmountChildrenWhenHidden = false, disableTransparencyHide = false, portalProps, containerComponent: ContainerComponent = React.Fragment, onAnimationComplete } = props;\n\tconst state = useSheetOpenState(props);\n\tconst [overlayComponent, setOverlayComponent] = React.useState(null);\n\tconst providerProps = useSheetProviderProps(props, state, { onOverlayComponent: setOverlayComponent });\n\tconst { frameSize, setFrameSize, dismissOnSnapToBottom, snapPoints, snapPointsMode, hasFit, position, setPosition, scrollBridge, screenSize, setMaxContentSize, maxSnapPoint } = providerProps;\n\tconst { open, controller, isHidden } = state;\n\tconst openRef = React.useRef(open);\n\topenRef.current = open;\n\tconst ref = useComposedRefs(forwardedRef, React.useRef(void 0), providerProps.contentRef);\n\tconst { animationDriver } = useConfiguration();\n\tif (!animationDriver) throw new Error(`Sheet requires an animation driver to be set`);\n\tconst transitionConfig = (() => {\n\t\tif (transitionConfigProp) return transitionConfigProp;\n\t\tconst [animationProp, animationPropConfig] = !transition ? [] : Array.isArray(transition) ? transition : [transition];\n\t\tif (animationProp && animationDriver.animations?.[animationProp]) return {\n\t\t\t...animationDriver.animations[animationProp],\n\t\t\t...animationPropConfig\n\t\t};\n\t\treturn null;\n\t})();\n\tconst [isShowingInnerSheet, setIsShowingInnerSheet] = React.useState(false);\n\tconst shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet && needsPortalRepropagation();\n\tconst sheetInsideSheet = React.useContext(SheetInsideSheetContext);\n\tconst onInnerSheet = React.useCallback((hasChild) => {\n\t\tsetIsShowingInnerSheet(hasChild);\n\t}, []);\n\tconst { keyboardHeight, isKeyboardVisible, dismissKeyboard, pauseKeyboardHandler, flushPendingHide } = useKeyboardControllerSheet({ enabled: Boolean(moveOnKeyboardChange) });\n\tconst stableFrameSize = React.useRef(frameSize);\n\tReact.useEffect(() => {\n\t\tif (open && frameSize) stableFrameSize.current = frameSize;\n\t}, [open, frameSize]);\n\tconst isWebKbSheet = isWeb && hasFit && moveOnKeyboardChange;\n\tconst isNativeKbFitSheet = !isWeb && hasFit && Boolean(moveOnKeyboardChange);\n\tconst preKeyboardFrameSize = React.useRef(0);\n\tReact.useEffect(() => {\n\t\tif (isNativeKbFitSheet && open && !isKeyboardVisible && frameSize > 0) preKeyboardFrameSize.current = frameSize;\n\t}, [\n\t\tisNativeKbFitSheet,\n\t\topen,\n\t\tisKeyboardVisible,\n\t\tframeSize\n\t]);\n\tconst effScreenSize = isWebKbSheet ? getStableViewportHeight() : screenSize;\n\tconst effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize;\n\tconst positions = React.useMemo(() => snapPoints.map((point) => getYPositions(snapPointsMode, point, effScreenSize, effectiveFrameSize)), [\n\t\teffScreenSize,\n\t\teffectiveFrameSize,\n\t\tsnapPoints,\n\t\tsnapPointsMode\n\t]);\n\tconst [isDragging, setIsDragging_] = React.useState(false);\n\tconst isDraggingRef = React.useRef(false);\n\tconst setIsDragging = React.useCallback((val) => {\n\t\tisDraggingRef.current = val;\n\t\tpauseKeyboardHandler.current = val;\n\t\tsetIsDragging_(val);\n\t\tif (!val) flushPendingHide();\n\t}, [pauseKeyboardHandler, flushPendingHide]);\n\tconst activePositionsRef = React.useRef(positions);\n\tconst activePositions = React.useMemo(() => {\n\t\tif (isDragging || isDraggingRef.current) return activePositionsRef.current;\n\t\tlet result;\n\t\tif (!isKeyboardVisible || keyboardHeight <= 0) result = positions;\n\t\telse result = positions.map((p) => getKeyboardAdjustedSheetY({\n\t\t\tsheetY: p,\n\t\t\tscreenSize: effScreenSize,\n\t\t\tisKeyboardVisible,\n\t\t\tkeyboardHeight,\n\t\t\tshouldTranslate: true,\n\t\t\tsafeAreaTop: isWeb ? getWebVisualViewportOffsetTop() : safeAreaTopInset\n\t\t}));\n\t\tactivePositionsRef.current = result;\n\t\treturn result;\n\t}, [\n\t\tpositions,\n\t\tisKeyboardVisible,\n\t\tkeyboardHeight,\n\t\teffScreenSize,\n\t\tisDragging,\n\t\tsafeAreaTopInset\n\t]);\n\tconst keyboardOccludedHeight = getKeyboardOccludedHeight({\n\t\tframeSize: effectiveFrameSize,\n\t\tisKeyboardVisible,\n\t\tkeyboardHeight,\n\t\tscreenSize: effScreenSize,\n\t\tsheetY: position >= 0 ? activePositions[position] : void 0\n\t});\n\tconst keyboardStableFrameHeight = isWebKbSheet && isKeyboardVisible && frameSize > 0 ? frameSize : isNativeKbFitSheet && isKeyboardVisible && preKeyboardFrameSize.current > 0 ? preKeyboardFrameSize.current : 0;\n\tconst { useAnimatedNumber, useAnimatedNumberStyle } = animationDriver;\n\tconst AnimatedView = animationDriver.View ?? View;\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!(sheetInsideSheet && open)) return;\n\t\tsheetInsideSheet(true);\n\t\treturn () => {\n\t\t\tsheetInsideSheet(false);\n\t\t};\n\t}, [sheetInsideSheet, open]);\n\tconst nextParentContext = React.useMemo(() => ({ zIndex }), [zIndex]);\n\tconst startPosition = useDidFinishSSR() && screenSize ? screenSize : hiddenSize;\n\tconst animatedNumber = useAnimatedNumber(startPosition);\n\tconst at = React.useRef(startPosition);\n\tconst hasntMeasured = at.current === hiddenSize;\n\tconst [disableAnimation, setDisableAnimation] = useState(hasntMeasured);\n\tconst skipAdaptAnimation = React.useRef(false);\n\tif (controller?.skipNextAnimation) skipAdaptAnimation.current = true;\n\tconst hasScrollView = React.useRef(false);\n\tconst opacityFallbackTimer = React.useRef(null);\n\tconst syncAnimatedPosition = useEvent((value) => {\n\t\tat.current = value;\n\t\tscrollBridge.paneY = value;\n\t\tconst minY = activePositions[0];\n\t\tconst wasAtTop = scrollBridge.isAtTop;\n\t\tconst nowAtTop = value <= minY + 5;\n\t\tif (wasAtTop === nowAtTop) return;\n\t\tscrollBridge.isAtTop = nowAtTop;\n\t\tif (nowAtTop) {\n\t\t\tif (scrollBridge.lockScrollAtTop) {\n\t\t\t\tif (scrollBridge.y > 0) {\n\t\t\t\t\tscrollBridge.forceScrollTo?.(0);\n\t\t\t\t\tscrollBridge.y = 0;\n\t\t\t\t}\n\t\t\t\tscrollBridge.scrollLockY = 0;\n\t\t\t\tscrollBridge.setScrollEnabled?.(false, 0);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (scrollBridge.y > 0) {\n\t\t\t\tscrollBridge.forceScrollTo?.(0);\n\t\t\t\tscrollBridge.y = 0;\n\t\t\t}\n\t\t\tscrollBridge.scrollLockY = void 0;\n\t\t\tscrollBridge.setScrollEnabled?.(true);\n\t\t} else {\n\t\t\tscrollBridge.scrollLockY = 0;\n\t\t\tscrollBridge.setScrollEnabled?.(false);\n\t\t}\n\t});\n\tconst setAnimatedPositionDirect = useEvent((value) => {\n\t\tsyncAnimatedPosition(value);\n\t\tanimatedNumber.setValue(value, { type: \"direct\" });\n\t});\n\tconst getAnimatedPosition = useEvent(() => {\n\t\tconst value = animatedNumber.getValue();\n\t\tsyncAnimatedPosition(value);\n\t\treturn value;\n\t});\n\tfunction stopSpring() {\n\t\tanimatedNumber.stop();\n\t\tif (scrollBridge.onFinishAnimate) {\n\t\t\tscrollBridge.onFinishAnimate();\n\t\t\tscrollBridge.onFinishAnimate = void 0;\n\t\t}\n\t}\n\tconst animateTo = useEvent((position2, animationOverride) => {\n\t\tif (frameSize === 0) return;\n\t\tconst closeTarget = isWeb ? Math.max(effScreenSize, getMaxViewportHeight()) : effScreenSize;\n\t\tlet toValue = isHidden || position2 === -1 ? closeTarget : activePositions[position2];\n\t\tif (at.current === toValue) return;\n\t\tat.current = toValue;\n\t\tstopSpring();\n\t\tconst isOpenAnimation = position2 !== -1 && !isHidden;\n\t\tif (opacityFallbackTimer.current) {\n\t\t\tclearTimeout(opacityFallbackTimer.current);\n\t\t\topacityFallbackTimer.current = null;\n\t\t}\n\t\tconst animationCompleteCallback = () => {\n\t\t\tsyncAnimatedPosition(toValue);\n\t\t\tif (opacityFallbackTimer.current) {\n\t\t\t\tclearTimeout(opacityFallbackTimer.current);\n\t\t\t\topacityFallbackTimer.current = null;\n\t\t\t}\n\t\t\tif (!isOpenAnimation && !openRef.current) setOpacity(0);\n\t\t\tonAnimationComplete?.({ open: isOpenAnimation });\n\t\t\tcontroller?.onAnimationComplete?.({ open: isOpenAnimation });\n\t\t};\n\t\tif (!isOpenAnimation) opacityFallbackTimer.current = setTimeout(() => {\n\t\t\topacityFallbackTimer.current = null;\n\t\t\tif (!openRef.current) setOpacity(0);\n\t\t}, 1e3);\n\t\tif (skipAdaptAnimation.current) {\n\t\t\tskipAdaptAnimation.current = false;\n\t\t\tanimatedNumber.setValue(toValue, {\n\t\t\t\ttype: \"timing\",\n\t\t\t\tduration: 0\n\t\t\t}, animationCompleteCallback);\n\t\t\treturn;\n\t\t}\n\t\tanimatedNumber.setValue(toValue, animationOverride || {\n\t\t\ttype: \"spring\",\n\t\t\t...transitionConfig\n\t\t}, animationCompleteCallback);\n\t});\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (hasntMeasured && screenSize && frameSize) {\n\t\t\tat.current = screenSize;\n\t\t\tanimatedNumber.setValue(screenSize, {\n\t\t\t\ttype: \"timing\",\n\t\t\t\tduration: 0\n\t\t\t}, () => {\n\t\t\t\tsyncAnimatedPosition(screenSize);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetDisableAnimation(false);\n\t\t\t\t}, 10);\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (disableAnimation) return;\n\t\tif (isDraggingRef.current) return;\n\t\tif (!frameSize || !screenSize || isHidden || hasntMeasured && !open) return;\n\t\tanimateTo(position);\n\t\tif (position === -1) {\n\t\t\tscrollBridge.scrollLock = false;\n\t\t\tscrollBridge.scrollStartY = -1;\n\t\t}\n\t\tif (open && position >= 0) {\n\t\t\tconst isTopPosition = position === 0;\n\t\t\tscrollBridge.isAtTop = isTopPosition;\n\t\t\tif (isTopPosition) {\n\t\t\t\tscrollBridge.scrollLockY = void 0;\n\t\t\t\tscrollBridge.setScrollEnabled?.(true);\n\t\t\t} else {\n\t\t\t\tscrollBridge.scrollLockY = 0;\n\t\t\t\tscrollBridge.setScrollEnabled?.(false);\n\t\t\t}\n\t\t}\n\t}, [\n\t\thasntMeasured,\n\t\tdisableAnimation,\n\t\tisHidden,\n\t\tframeSize,\n\t\tscreenSize,\n\t\topen,\n\t\tposition\n\t]);\n\tconst disableDrag = props.disableDrag ?? controller?.disableDrag;\n\tuseThemeName();\n\tconst [blockPan, setBlockPan] = React.useState(false);\n\tconst panResponder = React.useMemo(() => {\n\t\tif (disableDrag) return;\n\t\tif (!frameSize) return;\n\t\tif (isShowingInnerSheet) return;\n\t\tconst minY = activePositions[0];\n\t\tscrollBridge.paneMinY = minY;\n\t\tlet startY = at.current;\n\t\tfunction setPanning(val) {\n\t\t\tsetIsDragging(val);\n\t\t\tif (!sheetHiddenStyleSheet) {\n\t\t\t\tsheetHiddenStyleSheet = document.createElement(\"style\");\n\t\t\t\tif (typeof document.head !== \"undefined\") document.head.appendChild(sheetHiddenStyleSheet);\n\t\t\t}\n\t\t\tif (!val) sheetHiddenStyleSheet.innerText = \"\";\n\t\t\telse sheetHiddenStyleSheet.innerText = \":root * { user-select: none !important; -webkit-user-select: none !important; }\";\n\t\t}\n\t\tconst release = ({ vy }) => {\n\t\t\tscrollBridge.setParentDragging(false);\n\t\t\tif (scrollBridge.scrollLock) return;\n\t\t\tisExternalDrag = false;\n\t\t\tpreviouslyScrolling = false;\n\t\t\tsetPanning(false);\n\t\t\tconst currentPos = at.current;\n\t\t\tconst closestPoint = getSheetReleasePosition({\n\t\t\t\tpositions: activePositions,\n\t\t\t\tprojectedEnd: currentPos + frameSize * vy * .2,\n\t\t\t\tcurrentPosition: currentPos,\n\t\t\t\tframeSize,\n\t\t\t\tdismissOnSnapToBottom,\n\t\t\t\tsnapPointsMode,\n\t\t\t\tisKeyboardVisible,\n\t\t\t\tisWeb\n\t\t\t});\n\t\t\tsetPosition(closestPoint);\n\t\t\tanimateTo(closestPoint);\n\t\t};\n\t\tconst finish = (_e, state2) => {\n\t\t\trelease({\n\t\t\t\tvy: state2.vy,\n\t\t\t\tdragAt: state2.dy\n\t\t\t});\n\t\t};\n\t\tlet previouslyScrolling = false;\n\t\tconst onMoveShouldSet = (e, { dy }) => {\n\t\t\tfunction getShouldSet() {\n\t\t\t\tif (e.target === providerProps.handleRef.current) return true;\n\t\t\t\tif (scrollBridge.scrollNodeTouched) return false;\n\t\t\t\tif (scrollBridge.hasScrollableContent === true) {\n\t\t\t\t\tif (scrollBridge.scrollLock) return false;\n\t\t\t\t\tconst isScrolled = scrollBridge.y !== 0;\n\t\t\t\t\tconst isDraggingUp = dy < 0;\n\t\t\t\t\tconst isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;\n\t\t\t\t\tif (isScrolled) return false;\n\t\t\t\t\tif (isNearTop) {\n\t\t\t\t\t\tif (hasScrollView.current && isDraggingUp) return false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn Math.abs(dy) > 10;\n\t\t\t}\n\t\t\tconst granted = getShouldSet();\n\t\t\tif (granted) scrollBridge.setParentDragging(true);\n\t\t\treturn granted;\n\t\t};\n\t\tconst grant = () => {\n\t\t\tsetPanning(true);\n\t\t\tstopSpring();\n\t\t\tstartY = getAnimatedPosition();\n\t\t};\n\t\tlet isExternalDrag = false;\n\t\tscrollBridge.startPanDrag = () => {\n\t\t\tisExternalDrag = true;\n\t\t\tgrant();\n\t\t};\n\t\tscrollBridge.drag = (dy) => {\n\t\t\tif (!isExternalDrag) {\n\t\t\t\tisExternalDrag = true;\n\t\t\t\tgrant();\n\t\t\t}\n\t\t\tsetAnimatedPositionDirect(resisted(dy + startY, minY));\n\t\t};\n\t\tscrollBridge.release = release;\n\t\tscrollBridge.snapToPosition = (positionIndex) => {\n\t\t\tisExternalDrag = false;\n\t\t\tsetPanning(false);\n\t\t\tsetPosition(positionIndex);\n\t\t\tanimateTo(positionIndex);\n\t\t};\n\t\treturn PanResponder.create({\n\t\t\tonMoveShouldSetPanResponder: onMoveShouldSet,\n\t\t\tonPanResponderTerminationRequest: () => false,\n\t\t\tonPanResponderGrant: grant,\n\t\t\tonPanResponderMove: (_e, { dy }) => {\n\t\t\t\tconst to = resisted(dy + startY, minY);\n\t\t\t\tif (to <= minY) scrollBridge.setParentDragging(false);\n\t\t\t\telse scrollBridge.setParentDragging(true);\n\t\t\t\tsetAnimatedPositionDirect(to);\n\t\t\t},\n\t\t\tonPanResponderEnd: finish,\n\t\t\tonPanResponderTerminate: finish,\n\t\t\tonPanResponderRelease: finish\n\t\t});\n\t}, [\n\t\tdisableDrag,\n\t\tisShowingInnerSheet,\n\t\tanimateTo,\n\t\tframeSize,\n\t\tactivePositions,\n\t\tsetPosition,\n\t\tdismissOnSnapToBottom,\n\t\tsnapPointsMode\n\t]);\n\tReact.useEffect(() => {\n\t\tif (isDragging || isHidden || !open || disableAnimation) return;\n\t\tif (!frameSize || !screenSize) return;\n\t\tanimateTo(position, {\n\t\t\ttype: \"timing\",\n\t\t\tduration: 250\n\t\t});\n\t}, [isKeyboardVisible, keyboardHeight]);\n\tconst wasDragging = React.useRef(false);\n\tReact.useEffect(() => {\n\t\tif (isDragging) {\n\t\t\twasDragging.current = true;\n\t\t\treturn;\n\t\t}\n\t\tif (!wasDragging.current) return;\n\t\twasDragging.current = false;\n\t\tif (!frameSize || !screenSize || isHidden || !open) return;\n\t\tanimateTo(position);\n\t}, [isDragging]);\n\tReact.useEffect(() => {\n\t\tif (!open && isKeyboardVisible) {\n\t\t\tdismissKeyboard();\n\t\t\tpauseKeyboardHandler.current = false;\n\t\t\tflushPendingHide();\n\t\t}\n\t}, [open]);\n\tconst { panGesture, panGestureRef, gestureHandlerEnabled } = useGestureHandlerPan({\n\t\tpositions: activePositions,\n\t\tframeSize,\n\t\tsetPosition,\n\t\tanimateTo,\n\t\tstopSpring,\n\t\tscrollBridge,\n\t\tsetIsDragging,\n\t\tgetCurrentPosition: getAnimatedPosition,\n\t\tresisted,\n\t\tdisableDrag,\n\t\tisShowingInnerSheet,\n\t\tsetAnimatedPosition: setAnimatedPositionDirect,\n\t\tdismissOnSnapToBottom,\n\t\tsnapPointsMode,\n\t\tisKeyboardVisible,\n\t\tpauseKeyboardHandler\n\t});\n\tconst ignoreLayoutForKeyboard = useEvent(() => isWeb && moveOnKeyboardChange && getWebKeyboardResizeHeight() >= MIN_KEYBOARD_HEIGHT);\n\tconst handleAnimationViewLayout = useEvent((e) => {\n\t\tif (!open && stableFrameSize.current !== 0) return;\n\t\tconst layoutHeight = e.nativeEvent?.layout.height;\n\t\tif (ignoreLayoutForKeyboard() && frameSize > 0) return;\n\t\tconst next = modal ? Math.min(layoutHeight, getStableViewportHeight()) : layoutHeight;\n\t\tif (!next) return;\n\t\tsetFrameSize(Math.round(next));\n\t});\n\tconst handleMaxContentViewLayout = React.useCallback((e) => {\n\t\tif (ignoreLayoutForKeyboard() && screenSize > 0) return;\n\t\tconst next = Math.min(e.nativeEvent?.layout.height, getStableViewportHeight());\n\t\tif (!next) return;\n\t\tsetMaxContentSize(Math.round(next));\n\t}, [ignoreLayoutForKeyboard, screenSize]);\n\tconst animatedStyle = useAnimatedNumberStyle(animatedNumber, React.useCallback((val) => {\n\t\t\"worklet\";\n\t\treturn { transform: [{ translateY: frameSize === 0 ? hiddenSize : val }] };\n\t}, [frameSize]));\n\tconst [opacity, setOpacity] = React.useState(open ? 1 : 0);\n\tif (open && opacity === 0) {\n\t\tsetOpacity(1);\n\t\tif (opacityFallbackTimer.current) {\n\t\t\tclearTimeout(opacityFallbackTimer.current);\n\t\t\topacityFallbackTimer.current = null;\n\t\t}\n\t}\n\tconst forcedContentHeight = hasFit ? void 0 : snapPointsMode === \"percent\" ? `${maxSnapPoint}${isWeb ? modal ? \"dvh\" : \"%\" : \"%\"}` : maxSnapPoint;\n\tconst setHasScrollView = React.useCallback((val) => {\n\t\thasScrollView.current = val;\n\t}, []);\n\tlet contents = /* @__PURE__ */ jsx(LayoutMeasurementController, {\n\t\tdisable: !open,\n\t\tchildren: /* @__PURE__ */ jsx(ParentSheetContext.Provider, {\n\t\t\tvalue: nextParentContext,\n\t\t\tchildren: /* @__PURE__ */ jsx(SheetProvider, {\n\t\t\t\t...providerProps,\n\t\t\t\tkeyboardOccludedHeight,\n\t\t\t\tisKeyboardVisible,\n\t\t\t\tkeyboardStableFrameHeight,\n\t\t\t\tsetHasScrollView,\n\t\t\t\tchildren: /* @__PURE__ */ jsxs(GestureSheetProvider, {\n\t\t\t\t\tisDragging,\n\t\t\t\t\tblockPan,\n\t\t\t\t\tsetBlockPan,\n\t\t\t\t\tpanGesture,\n\t\t\t\t\tpanGestureRef,\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t/* @__PURE__ */ jsx(AnimatePresence, {\n\t\t\t\t\t\t\tcustom: { open },\n\t\t\t\t\t\t\tchildren: shouldHideParentSheet || !open ? null : overlayComponent\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tsnapPointsMode !== \"percent\" && /* @__PURE__ */ jsx(View$1, {\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\t\tpointerEvents: \"none\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonLayout: handleMaxContentViewLayout\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t/* @__PURE__ */ jsx(AnimatedView, {\n\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\tonLayout: handleAnimationViewLayout,\n\t\t\t\t\t\t\ttransition: isDragging || disableAnimation ? null : transition,\n\t\t\t\t\t\t\tdisableClassName: true,\n\t\t\t\t\t\t\tstyle: [{\n\t\t\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\t\t\tzIndex,\n\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\theight: forcedContentHeight,\n\t\t\t\t\t\t\t\tminHeight: forcedContentHeight,\n\t\t\t\t\t\t\t\topacity: shouldHideParentSheet ? 0 : disableTransparencyHide ? 1 : opacity,\n\t\t\t\t\t\t\t\t...(shouldHideParentSheet || !open) && { pointerEvents: \"none\" }\n\t\t\t\t\t\t\t}, animatedStyle],\n\t\t\t\t\t\t\tchildren: gestureHandlerEnabled && panGesture ? /* @__PURE__ */ jsx(GestureDetectorWrapper, {\n\t\t\t\t\t\t\t\tgesture: panGesture,\n\t\t\t\t\t\t\t\tstyle: { flex: 1 },\n\t\t\t\t\t\t\t\tchildren: props.children\n\t\t\t\t\t\t\t}) : /* @__PURE__ */ jsx(View$1, {\n\t\t\t\t\t\t\t\t...panResponder?.panHandlers,\n\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\t\t\theight: \"100%\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tchildren: props.children\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t});\n\tconst shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : true;\n\tif (modal) {\n\t\tconst RNGHRoot = getGestureHandlerState().RootView;\n\t\tconst mountedContents = shouldMountChildren ? /* @__PURE__ */ jsx(ContainerComponent, { children: contents }) : null;\n\t\tconst modalContents = /* @__PURE__ */ jsx(Portal, {\n\t\t\tstackZIndex: zIndex,\n\t\t\t...portalProps,\n\t\t\tchildren: mountedContents && RNGHRoot ? /* @__PURE__ */ jsx(RNGHRoot, {\n\t\t\t\tstyle: open ? rnghRootStyleOpen : rnghRootStyleClosed,\n\t\t\t\tchildren: mountedContents\n\t\t\t}) : mountedContents\n\t\t});\n\t\tif (isWeb) return modalContents;\n\t\treturn /* @__PURE__ */ jsx(SheetInsideSheetContext.Provider, {\n\t\t\tvalue: onInnerSheet,\n\t\t\tchildren: modalContents\n\t\t});\n\t}\n\treturn contents;\n});\nfunction getYPositions(mode, point, screenSize, frameSize) {\n\tif (!screenSize || !frameSize) return 0;\n\tif (mode === \"mixed\") {\n\t\tif (typeof point === \"number\") return screenSize - Math.min(screenSize, Math.max(0, point));\n\t\tif (point === \"fit\") return screenSize - Math.min(screenSize, frameSize);\n\t\tif (point.endsWith(\"%\")) {\n\t\t\tconst pct2 = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100;\n\t\t\tif (Number.isNaN(pct2)) {\n\t\t\t\tconsole.warn(\"Invalid snapPoint percentage string\");\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn Math.round(screenSize - pct2 * screenSize);\n\t\t}\n\t\tconsole.warn(\"Invalid snapPoint unknown value\");\n\t\treturn 0;\n\t}\n\tif (mode === \"fit\") {\n\t\tif (point === 0) return screenSize;\n\t\treturn screenSize - Math.min(screenSize, frameSize);\n\t}\n\tif (mode === \"constant\" && typeof point === \"number\") return screenSize - Math.min(screenSize, Math.max(0, point));\n\tconst pct = Math.min(100, Math.max(0, Number(point))) / 100;\n\tif (Number.isNaN(pct)) {\n\t\tconsole.warn(\"Invalid snapPoint percentage\");\n\t\treturn 0;\n\t}\n\treturn Math.round(screenSize - pct * screenSize);\n}\n\nexport { SheetImplementationCustom };"],"mappings":"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","ignoreList":[]}
|