@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.
Files changed (229) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/controller/index.cjs +2 -0
  3. package/controller/index.d.ts +5 -0
  4. package/controller/index.js +2 -0
  5. package/controller/index.native.cjs +2 -0
  6. package/controller/index.native.js +2 -0
  7. package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -1
  8. package/dist/cjs/SheetImplementationCustom.cjs +137 -74
  9. package/dist/cjs/SheetImplementationCustom.native.js +162 -83
  10. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  11. package/dist/cjs/SheetScrollView.cjs +155 -34
  12. package/dist/cjs/SheetScrollView.native.js +160 -35
  13. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  14. package/dist/cjs/createSheet.cjs +7 -3
  15. package/dist/cjs/createSheet.native.js +7 -3
  16. package/dist/cjs/createSheet.native.js.map +1 -1
  17. package/dist/cjs/gestureState.cjs +13 -2
  18. package/dist/cjs/gestureState.native.js +14 -2
  19. package/dist/cjs/gestureState.native.js.map +1 -1
  20. package/dist/cjs/index.cjs +12 -1
  21. package/dist/cjs/index.native.js +11 -0
  22. package/dist/cjs/index.native.js.map +1 -1
  23. package/dist/cjs/keyboardAvoidance.cjs +93 -0
  24. package/dist/cjs/keyboardAvoidance.native.js +99 -0
  25. package/dist/cjs/keyboardAvoidance.native.js.map +1 -0
  26. package/dist/cjs/nativeSheet.cjs +3 -0
  27. package/dist/cjs/nativeSheet.native.js +3 -0
  28. package/dist/cjs/nativeSheet.native.js.map +1 -1
  29. package/dist/cjs/setupGestureHandler.cjs +9 -6
  30. package/dist/cjs/setupGestureHandler.native.js +11 -6
  31. package/dist/cjs/setupGestureHandler.native.js.map +1 -1
  32. package/dist/cjs/useGestureHandlerPan.cjs +86 -18
  33. package/dist/cjs/useGestureHandlerPan.native.js +91 -18
  34. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  35. package/dist/cjs/useKeyboardControllerSheet.cjs +68 -6
  36. package/dist/cjs/useSafeAreaInsets.cjs +44 -0
  37. package/dist/cjs/useSafeAreaInsets.native.js +48 -0
  38. package/dist/cjs/useSafeAreaInsets.native.js.map +1 -0
  39. package/dist/cjs/useSheetProviderProps.cjs +1 -1
  40. package/dist/cjs/useSheetProviderProps.native.js +1 -1
  41. package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
  42. package/dist/cjs/useSheetScrollViewGestures.cjs +30 -5
  43. package/dist/cjs/useSheetScrollViewGestures.native.js +4 -0
  44. package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -1
  45. package/dist/cjs/webViewport.cjs +75 -0
  46. package/dist/cjs/webViewport.native.js +81 -0
  47. package/dist/cjs/webViewport.native.js.map +1 -0
  48. package/dist/esm/GestureDetectorWrapper.mjs.map +1 -1
  49. package/dist/esm/GestureDetectorWrapper.native.js.map +1 -1
  50. package/dist/esm/SheetImplementationCustom.mjs +143 -84
  51. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  52. package/dist/esm/SheetImplementationCustom.native.js +173 -102
  53. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  54. package/dist/esm/SheetScrollView.mjs +157 -36
  55. package/dist/esm/SheetScrollView.mjs.map +1 -1
  56. package/dist/esm/SheetScrollView.native.js +162 -37
  57. package/dist/esm/SheetScrollView.native.js.map +1 -1
  58. package/dist/esm/createSheet.mjs +9 -6
  59. package/dist/esm/createSheet.mjs.map +1 -1
  60. package/dist/esm/createSheet.native.js +19 -15
  61. package/dist/esm/createSheet.native.js.map +1 -1
  62. package/dist/esm/gestureState.mjs +13 -2
  63. package/dist/esm/gestureState.mjs.map +1 -1
  64. package/dist/esm/gestureState.native.js +14 -2
  65. package/dist/esm/gestureState.native.js.map +1 -1
  66. package/dist/esm/index.js +2 -0
  67. package/dist/esm/index.js.map +1 -1
  68. package/dist/esm/index.mjs +2 -0
  69. package/dist/esm/index.mjs.map +1 -1
  70. package/dist/esm/index.native.js +2 -0
  71. package/dist/esm/index.native.js.map +1 -1
  72. package/dist/esm/keyboardAvoidance.mjs +66 -0
  73. package/dist/esm/keyboardAvoidance.mjs.map +1 -0
  74. package/dist/esm/keyboardAvoidance.native.js +69 -0
  75. package/dist/esm/keyboardAvoidance.native.js.map +1 -0
  76. package/dist/esm/nativeSheet.mjs +3 -0
  77. package/dist/esm/nativeSheet.mjs.map +1 -1
  78. package/dist/esm/nativeSheet.native.js +3 -0
  79. package/dist/esm/nativeSheet.native.js.map +1 -1
  80. package/dist/esm/setupGestureHandler.mjs +9 -6
  81. package/dist/esm/setupGestureHandler.mjs.map +1 -1
  82. package/dist/esm/setupGestureHandler.native.js +11 -6
  83. package/dist/esm/setupGestureHandler.native.js.map +1 -1
  84. package/dist/esm/useGestureHandlerPan.mjs +87 -19
  85. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  86. package/dist/esm/useGestureHandlerPan.native.js +92 -19
  87. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  88. package/dist/esm/useKeyboardControllerSheet.mjs +69 -7
  89. package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -1
  90. package/dist/esm/useSafeAreaInsets.mjs +7 -0
  91. package/dist/esm/useSafeAreaInsets.mjs.map +1 -0
  92. package/dist/esm/useSafeAreaInsets.native.js +8 -0
  93. package/dist/esm/useSafeAreaInsets.native.js.map +1 -0
  94. package/dist/esm/useSheetProviderProps.mjs +1 -1
  95. package/dist/esm/useSheetProviderProps.mjs.map +1 -1
  96. package/dist/esm/useSheetProviderProps.native.js +1 -1
  97. package/dist/esm/useSheetProviderProps.native.js.map +1 -1
  98. package/dist/esm/useSheetScrollViewGestures.mjs +30 -5
  99. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
  100. package/dist/esm/useSheetScrollViewGestures.native.js +4 -0
  101. package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -1
  102. package/dist/esm/webViewport.mjs +43 -0
  103. package/dist/esm/webViewport.mjs.map +1 -0
  104. package/dist/esm/webViewport.native.js +46 -0
  105. package/dist/esm/webViewport.native.js.map +1 -0
  106. package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -1
  107. package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -1
  108. package/dist/jsx/SheetImplementationCustom.mjs +143 -84
  109. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  110. package/dist/jsx/SheetImplementationCustom.native.js +162 -83
  111. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  112. package/dist/jsx/SheetScrollView.mjs +157 -36
  113. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  114. package/dist/jsx/SheetScrollView.native.js +160 -35
  115. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  116. package/dist/jsx/createSheet.mjs +9 -6
  117. package/dist/jsx/createSheet.mjs.map +1 -1
  118. package/dist/jsx/createSheet.native.js +7 -3
  119. package/dist/jsx/createSheet.native.js.map +1 -1
  120. package/dist/jsx/gestureState.mjs +13 -2
  121. package/dist/jsx/gestureState.mjs.map +1 -1
  122. package/dist/jsx/gestureState.native.js +14 -2
  123. package/dist/jsx/gestureState.native.js.map +1 -1
  124. package/dist/jsx/index.js +2 -0
  125. package/dist/jsx/index.js.map +1 -1
  126. package/dist/jsx/index.mjs +2 -0
  127. package/dist/jsx/index.mjs.map +1 -1
  128. package/dist/jsx/index.native.js +11 -0
  129. package/dist/jsx/index.native.js.map +1 -1
  130. package/dist/jsx/keyboardAvoidance.mjs +66 -0
  131. package/dist/jsx/keyboardAvoidance.mjs.map +1 -0
  132. package/dist/jsx/keyboardAvoidance.native.js +99 -0
  133. package/dist/jsx/keyboardAvoidance.native.js.map +1 -0
  134. package/dist/jsx/nativeSheet.mjs +3 -0
  135. package/dist/jsx/nativeSheet.mjs.map +1 -1
  136. package/dist/jsx/nativeSheet.native.js +3 -0
  137. package/dist/jsx/nativeSheet.native.js.map +1 -1
  138. package/dist/jsx/setupGestureHandler.mjs +9 -6
  139. package/dist/jsx/setupGestureHandler.mjs.map +1 -1
  140. package/dist/jsx/setupGestureHandler.native.js +11 -6
  141. package/dist/jsx/setupGestureHandler.native.js.map +1 -1
  142. package/dist/jsx/useGestureHandlerPan.mjs +87 -19
  143. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  144. package/dist/jsx/useGestureHandlerPan.native.js +91 -18
  145. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  146. package/dist/jsx/useKeyboardControllerSheet.mjs +69 -7
  147. package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -1
  148. package/dist/jsx/useSafeAreaInsets.mjs +7 -0
  149. package/dist/jsx/useSafeAreaInsets.mjs.map +1 -0
  150. package/dist/jsx/useSafeAreaInsets.native.js +48 -0
  151. package/dist/jsx/useSafeAreaInsets.native.js.map +1 -0
  152. package/dist/jsx/useSheetProviderProps.mjs +1 -1
  153. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  154. package/dist/jsx/useSheetProviderProps.native.js +1 -1
  155. package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
  156. package/dist/jsx/useSheetScrollViewGestures.mjs +30 -5
  157. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
  158. package/dist/jsx/useSheetScrollViewGestures.native.js +4 -0
  159. package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -1
  160. package/dist/jsx/webViewport.mjs +43 -0
  161. package/dist/jsx/webViewport.mjs.map +1 -0
  162. package/dist/jsx/webViewport.native.js +81 -0
  163. package/dist/jsx/webViewport.native.js.map +1 -0
  164. package/next.md +78 -0
  165. package/package.json +30 -48
  166. package/setup-gesture-handler/index.cjs +2 -0
  167. package/setup-gesture-handler/index.js +2 -0
  168. package/setup-gesture-handler/index.native.cjs +2 -0
  169. package/setup-gesture-handler/index.native.js +2 -0
  170. package/src/GestureDetectorWrapper.tsx +0 -3
  171. package/src/SheetImplementationCustom.tsx +387 -127
  172. package/src/SheetScrollView.tsx +195 -22
  173. package/src/createSheet.tsx +20 -7
  174. package/src/gestureState.ts +22 -2
  175. package/src/index.ts +4 -0
  176. package/src/keyboardAvoidance.ts +121 -0
  177. package/src/nativeSheet.tsx +8 -1
  178. package/src/setupGestureHandler.ts +14 -5
  179. package/src/types.tsx +20 -1
  180. package/src/useGestureHandlerPan.tsx +94 -35
  181. package/src/useKeyboardControllerSheet.ts +127 -10
  182. package/src/useSafeAreaInsets.native.ts +29 -0
  183. package/src/useSafeAreaInsets.ts +19 -0
  184. package/src/useSheetProviderProps.tsx +12 -1
  185. package/src/useSheetScrollViewGestures.native.ts +4 -0
  186. package/src/useSheetScrollViewGestures.ts +52 -5
  187. package/src/webViewport.ts +100 -0
  188. package/test/keyboardAvoidance.test.ts +269 -0
  189. package/tsconfig.json +57 -0
  190. package/types/GestureDetectorWrapper.d.ts +1 -1
  191. package/types/GestureDetectorWrapper.d.ts.map +1 -1
  192. package/types/GestureSheetContext.d.ts +1 -1
  193. package/types/GestureSheetContext.d.ts.map +1 -1
  194. package/types/Sheet.d.ts +6 -5
  195. package/types/Sheet.d.ts.map +1 -1
  196. package/types/SheetContext.d.ts +5 -2
  197. package/types/SheetContext.d.ts.map +1 -1
  198. package/types/SheetController.d.ts +1 -2
  199. package/types/SheetController.d.ts.map +1 -1
  200. package/types/SheetImplementationCustom.d.ts +1 -0
  201. package/types/SheetImplementationCustom.d.ts.map +1 -1
  202. package/types/SheetScrollView.d.ts.map +1 -1
  203. package/types/createSheet.d.ts +13 -12
  204. package/types/createSheet.d.ts.map +1 -1
  205. package/types/gestureState.d.ts.map +1 -1
  206. package/types/index.d.ts +1 -0
  207. package/types/index.d.ts.map +1 -1
  208. package/types/keyboardAvoidance.d.ts +26 -0
  209. package/types/keyboardAvoidance.d.ts.map +1 -0
  210. package/types/nativeSheet.d.ts.map +1 -1
  211. package/types/setupGestureHandler.d.ts.map +1 -1
  212. package/types/types.d.ts +10 -1
  213. package/types/types.d.ts.map +1 -1
  214. package/types/useGestureHandlerPan.d.ts +4 -1
  215. package/types/useGestureHandlerPan.d.ts.map +1 -1
  216. package/types/useKeyboardControllerSheet.d.ts +14 -3
  217. package/types/useKeyboardControllerSheet.d.ts.map +1 -1
  218. package/types/useSafeAreaInsets.d.ts +10 -0
  219. package/types/useSafeAreaInsets.d.ts.map +1 -0
  220. package/types/useSafeAreaInsets.native.d.ts +20 -0
  221. package/types/useSafeAreaInsets.native.d.ts.map +1 -0
  222. package/types/useSheetProviderProps.d.ts +3 -0
  223. package/types/useSheetProviderProps.d.ts.map +1 -1
  224. package/types/useSheetScrollViewGestures.d.ts +2 -1
  225. package/types/useSheetScrollViewGestures.d.ts.map +1 -1
  226. package/types/useSheetScrollViewGestures.native.d.ts.map +1 -1
  227. package/types/webViewport.d.ts +36 -0
  228. package/types/webViewport.d.ts.map +1 -0
  229. 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 as GuiView, useConfiguration, useDidFinishSSR, useEvent, useThemeName } from "@hanzogui/core";
6
- import { getSafeArea } from "@hanzogui/native";
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
- let _cachedSafeAreaTop;
22
- function getSafeAreaTopInset() {
23
- if (_cachedSafeAreaTop !== void 0) return _cachedSafeAreaTop;
24
- _cachedSafeAreaTop = getSafeArea().getInsets().top;
25
- return _cachedSafeAreaTop;
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 sheetRef = React.useRef(void 0);
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: !isWeb && Boolean(moveOnKeyboardChange)
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
- const safeAreaTop = isWeb ? 0 : getSafeAreaTopInset();
117
- result = positions.map(p => {
118
- if (screenSize && p >= screenSize) return p;
119
- return Math.max(safeAreaTop, p - keyboardHeight);
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, screenSize, isDragging]);
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 ?? GuiView;
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
- useAnimatedNumberReaction({
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 !== nowAtTop) {
160
- scrollBridge.isAtTop = nowAtTop;
161
- if (nowAtTop) {
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
- }, [animationDriver, activePositions]));
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
- let toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
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 = positions[0];
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 end = at.current + frameSize * vy * .2;
281
- let closestPoint = 0;
282
- let dist = Number.POSITIVE_INFINITY;
283
- for (let i = 0; i < positions.length; i++) {
284
- const position2 = positions[i];
285
- const curDist = end > position2 ? end - position2 : position2 - end;
286
- if (curDist < dist) {
287
- dist = curDist;
288
- closestPoint = i;
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 = at.current;
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
- const to = dy + startY;
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
- animatedNumber.setValue(to, {
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, positions, setPosition]);
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) dismissKeyboard();
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: () => at.current,
446
+ getCurrentPosition: getAnimatedPosition,
397
447
  resisted,
398
448
  disableDrag,
399
449
  isShowingInnerSheet,
400
- setAnimatedPosition: val => {
401
- at.current = val;
402
- animatedNumber.setValue(val, {
403
- type: "direct"
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
- const next = modal ? Math.min(layoutHeight, Dimensions.get(relativeDimensionTo).height) : layoutHeight;
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
- const next = Math.min(e.nativeEvent?.layout.height, Dimensions.get(relativeDimensionTo).height);
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: !shouldHideParentSheet ? opacity : 0,
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: shouldMountChildren && /* @__PURE__ */jsx(ContainerComponent, {
512
- children: contents
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":[]}