@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,6 +1,6 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { composeRefs } from "@hanzogui/compose-refs";
3
- import { View } from "@hanzogui/core";
3
+ import { isWeb, View } from "@hanzogui/core";
4
4
  import { ScrollView } from "@hanzogui/scroll-view";
5
5
  import { useControllableState } from "@hanzogui/use-controllable-state";
6
6
  import React, { useEffect, useRef, useState } from "react";
@@ -8,6 +8,7 @@ import { useGestureSheetContext } from "./GestureSheetContext.native.js";
8
8
  import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.native.js";
9
9
  import { useSheetContext } from "./SheetContext.native.js";
10
10
  import { useSheetScrollViewGestures } from "./useSheetScrollViewGestures.native.js";
11
+ import { getStableLayoutViewportHeight, getWebKeyboardBottomInset, getWebKeyboardResizeHeight, isEditableElement, MIN_KEYBOARD_HEIGHT } from "./webViewport.native.js";
11
12
  var SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
12
13
  var SheetScrollView = /* @__PURE__ */React.forwardRef(function (param, ref) {
13
14
  var {
@@ -21,32 +22,68 @@ var SheetScrollView = /* @__PURE__ */React.forwardRef(function (param, ref) {
21
22
  var gestureContext = useGestureSheetContext();
22
23
  var {
23
24
  scrollBridge,
24
- setHasScrollView
25
+ setHasScrollView,
26
+ hasFit,
27
+ screenSize
25
28
  } = context;
29
+ var keyboardOccludedHeight = Math.max(0, context.keyboardOccludedHeight || 0);
30
+ var isKeyboardVisible = context.isKeyboardVisible === true || isWeb && getWebKeyboardResizeHeight() >= MIN_KEYBOARD_HEIGHT;
26
31
  var [scrollEnabled] = useControllableState({
27
32
  prop: scrollEnabledProp,
28
33
  defaultProp: true
29
34
  });
30
35
  var scrollRef = React.useRef(null);
36
+ var [hasScrollableContent, setHasScrollableContent] = useState(true);
37
+ var parentHeight = useRef(0);
38
+ var contentHeight = useRef(0);
39
+ var frozenFrameHeight = Math.max(0, context.keyboardStableFrameHeight || 0);
40
+ var fitSizingStyle = hasFit ? {
41
+ flex: void 0,
42
+ height: void 0,
43
+ maxHeight: screenSize || void 0
44
+ } : {
45
+ flex: 1
46
+ };
47
+ var contentContainerStyle = hasFit ? void 0 : {
48
+ minHeight: "100%"
49
+ };
50
+ var keyboardFrozenOverride = hasFit && isKeyboardVisible && frozenFrameHeight > 0 ? {
51
+ height: frozenFrameHeight,
52
+ maxHeight: frozenFrameHeight
53
+ } : null;
31
54
  var panGestureRef = gestureContext === null || gestureContext === void 0 ? void 0 : gestureContext.panGestureRef;
32
55
  var {
33
56
  ScrollView: RNGHScrollView
34
57
  } = getGestureHandlerState();
35
58
  var useRNGHScrollView = isGestureHandlerEnabled() && RNGHScrollView && panGestureRef;
36
59
  var currentScrollOffset = useRef(0);
60
+ var lastEmittedScrollOffset = useRef(0);
37
61
  var lockedScrollY = useRef(0);
62
+ var focusedInputScrollFrame = useRef(0);
38
63
  var setScrollEnabled = function (next, lockTo) {
39
64
  if (!next) {
40
- var _scrollRef_current_scrollTo, _scrollRef_current;
41
- var lockY = lockTo !== null && lockTo !== void 0 ? lockTo : currentScrollOffset.current;
65
+ var _ref;
66
+ var lockY = (_ref = lockTo !== null && lockTo !== void 0 ? lockTo : scrollBridge.scrollLockY) !== null && _ref !== void 0 ? _ref : currentScrollOffset.current;
67
+ if (scrollBridge.enabled === false && scrollBridge.scrollLockY === lockY) {
68
+ return;
69
+ }
70
+ scrollBridge.enabled = false;
42
71
  lockedScrollY.current = lockY;
43
72
  scrollBridge.scrollLockY = lockY;
44
- (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {
45
- x: 0,
46
- y: lockY,
47
- animated: false
48
- });
73
+ if (currentScrollOffset.current !== lockY) {
74
+ var _scrollRef_current_scrollTo, _scrollRef_current;
75
+ (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : (_scrollRef_current_scrollTo = _scrollRef_current.scrollTo) === null || _scrollRef_current_scrollTo === void 0 ? void 0 : _scrollRef_current_scrollTo.call(_scrollRef_current, {
76
+ x: 0,
77
+ y: lockY,
78
+ animated: false
79
+ });
80
+ currentScrollOffset.current = lockY;
81
+ }
49
82
  } else {
83
+ if (scrollBridge.enabled === true && scrollBridge.scrollLockY === void 0) {
84
+ return;
85
+ }
86
+ scrollBridge.enabled = true;
50
87
  lockedScrollY.current = currentScrollOffset.current;
51
88
  scrollBridge.scrollLockY = void 0;
52
89
  }
@@ -58,7 +95,84 @@ var SheetScrollView = /* @__PURE__ */React.forwardRef(function (param, ref) {
58
95
  y,
59
96
  animated: false
60
97
  });
98
+ currentScrollOffset.current = y;
61
99
  };
100
+ var emitManualScroll = React.useCallback(function (node, y) {
101
+ currentScrollOffset.current = y;
102
+ scrollBridge.y = y;
103
+ if (y > 0) scrollBridge.scrollStartY = -1;
104
+ lastEmittedScrollOffset.current = y;
105
+ onScroll === null || onScroll === void 0 ? void 0 : onScroll({
106
+ nativeEvent: {
107
+ contentOffset: {
108
+ x: node.scrollLeft,
109
+ y
110
+ },
111
+ contentSize: {
112
+ height: node.scrollHeight,
113
+ width: node.scrollWidth
114
+ },
115
+ layoutMeasurement: {
116
+ height: node.offsetHeight,
117
+ width: node.offsetWidth
118
+ }
119
+ },
120
+ timeStamp: Date.now()
121
+ });
122
+ }, [onScroll, scrollBridge]);
123
+ var scrollFocusedInputClearOfKeyboard = React.useCallback(function () {
124
+ var _scrollRef_current;
125
+ if (!isWeb || !hasFit || !isKeyboardVisible || keyboardOccludedHeight <= 0) {
126
+ return;
127
+ }
128
+ var node = (_scrollRef_current = scrollRef.current) === null || _scrollRef_current === void 0 ? void 0 : _scrollRef_current.getScrollableNode();
129
+ var active = document.activeElement;
130
+ if (!node || !active || !isEditableElement(active) || !node.contains(active)) {
131
+ return;
132
+ }
133
+ var keyboardHeight = Math.max(keyboardOccludedHeight, getWebKeyboardBottomInset());
134
+ if (keyboardHeight <= 0) return;
135
+ var activeRect = active.getBoundingClientRect();
136
+ var nodeRect = node.getBoundingClientRect();
137
+ var margin = 12;
138
+ var keyboardTop = getStableLayoutViewportHeight() - keyboardHeight;
139
+ var visibleTop = nodeRect.top + margin;
140
+ var visibleBottom = Math.min(nodeRect.bottom, keyboardTop) - margin;
141
+ var nextScrollTop = node.scrollTop;
142
+ if (activeRect.bottom > visibleBottom) {
143
+ nextScrollTop += Math.ceil(activeRect.bottom - visibleBottom);
144
+ } else if (activeRect.top < visibleTop) {
145
+ nextScrollTop -= Math.ceil(visibleTop - activeRect.top);
146
+ }
147
+ var maxScrollTop = Math.max(0, node.scrollHeight - node.clientHeight);
148
+ nextScrollTop = Math.max(0, Math.min(maxScrollTop, nextScrollTop));
149
+ if (nextScrollTop === node.scrollTop) return;
150
+ node.scrollTop = nextScrollTop;
151
+ currentScrollOffset.current = nextScrollTop;
152
+ scrollBridge.y = nextScrollTop;
153
+ if (nextScrollTop > 0) scrollBridge.scrollStartY = -1;
154
+ }, [hasFit, isKeyboardVisible, keyboardOccludedHeight, scrollBridge]);
155
+ var scheduleFocusedInputScroll = React.useCallback(function () {
156
+ if (!isWeb || !hasFit) return;
157
+ cancelAnimationFrame(focusedInputScrollFrame.current);
158
+ focusedInputScrollFrame.current = requestAnimationFrame(function () {
159
+ scrollFocusedInputClearOfKeyboard();
160
+ focusedInputScrollFrame.current = requestAnimationFrame(scrollFocusedInputClearOfKeyboard);
161
+ });
162
+ }, [hasFit, scrollFocusedInputClearOfKeyboard]);
163
+ useEffect(function () {
164
+ var _window_visualViewport;
165
+ if (!isWeb || !hasFit) return;
166
+ scheduleFocusedInputScroll();
167
+ window.addEventListener("focusin", scheduleFocusedInputScroll);
168
+ (_window_visualViewport = window.visualViewport) === null || _window_visualViewport === void 0 ? void 0 : _window_visualViewport.addEventListener("resize", scheduleFocusedInputScroll);
169
+ return function () {
170
+ var _window_visualViewport2;
171
+ cancelAnimationFrame(focusedInputScrollFrame.current);
172
+ window.removeEventListener("focusin", scheduleFocusedInputScroll);
173
+ (_window_visualViewport2 = window.visualViewport) === null || _window_visualViewport2 === void 0 ? void 0 : _window_visualViewport2.removeEventListener("resize", scheduleFocusedInputScroll);
174
+ };
175
+ }, [hasFit, scheduleFocusedInputScroll]);
62
176
  useEffect(function () {
63
177
  setHasScrollView(true);
64
178
  if (isGestureHandlerEnabled()) {
@@ -71,14 +185,14 @@ var SheetScrollView = /* @__PURE__ */React.forwardRef(function (param, ref) {
71
185
  scrollBridge.forceScrollTo = void 0;
72
186
  };
73
187
  }, []);
74
- var [hasScrollableContent, setHasScrollableContent] = useState(true);
75
- var parentHeight = useRef(0);
76
- var contentHeight = useRef(0);
77
188
  var updateScrollable = function () {
78
189
  if (parentHeight.current && contentHeight.current) {
79
190
  setHasScrollableContent(contentHeight.current > parentHeight.current);
80
191
  }
81
192
  };
193
+ var recordFitHeight = function (height) {
194
+ parentHeight.current = height;
195
+ };
82
196
  useEffect(function () {
83
197
  scrollBridge.hasScrollableContent = hasScrollableContent;
84
198
  }, [hasScrollableContent]);
@@ -87,30 +201,36 @@ var SheetScrollView = /* @__PURE__ */React.forwardRef(function (param, ref) {
87
201
  scrollBridge,
88
202
  hasScrollableContent,
89
203
  scrollEnabled,
90
- setScrollEnabled
204
+ setScrollEnabled,
205
+ onManualScroll: emitManualScroll
91
206
  });
92
- var contentWrapper = /* @__PURE__ */_jsx(View, {
207
+ var contentWrapper = /* @__PURE__ */_jsxs(View, {
93
208
  onLayout: function (e) {
94
209
  var height = Math.floor(e.nativeEvent.layout.height);
95
210
  if (height !== contentHeight.current) {
96
211
  contentHeight.current = height;
97
212
  updateScrollable();
213
+ if (keyboardOccludedHeight > 0) {
214
+ scheduleFocusedInputScroll();
215
+ }
98
216
  }
99
217
  },
100
- children
218
+ children: [children, keyboardOccludedHeight > 0 && /* @__PURE__ */_jsx(View, {
219
+ "data-sheet-keyboard-scroll-pad": true,
220
+ height: keyboardOccludedHeight,
221
+ width: "100%"
222
+ })]
101
223
  });
102
224
  if (useRNGHScrollView && RNGHScrollView && panGestureRef) {
103
225
  var RNGHComponent = RNGHScrollView;
104
226
  return /* @__PURE__ */_jsx(RNGHComponent, {
105
227
  ref: composeRefs(scrollRef, ref),
106
- style: {
107
- flex: 1
108
- },
228
+ style: fitSizingStyle,
109
229
  scrollEventThrottle: 1,
110
230
  scrollEnabled,
111
231
  simultaneousHandlers: [panGestureRef],
112
232
  onLayout: function (e) {
113
- parentHeight.current = Math.ceil(e.nativeEvent.layout.height);
233
+ recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
114
234
  updateScrollable();
115
235
  },
116
236
  onScroll: function (e) {
@@ -127,40 +247,44 @@ var SheetScrollView = /* @__PURE__ */React.forwardRef(function (param, ref) {
127
247
  animated: false
128
248
  });
129
249
  }
250
+ currentScrollOffset.current = scrollBridge.scrollLockY;
130
251
  scrollBridge.y = scrollBridge.scrollLockY;
131
- onScroll === null || onScroll === void 0 ? void 0 : onScroll({
132
- ...e,
133
- nativeEvent: {
134
- ...e.nativeEvent,
135
- contentOffset: {
136
- ...e.nativeEvent.contentOffset,
137
- y: scrollBridge.scrollLockY
252
+ if (lastEmittedScrollOffset.current !== scrollBridge.scrollLockY) {
253
+ lastEmittedScrollOffset.current = scrollBridge.scrollLockY;
254
+ onScroll === null || onScroll === void 0 ? void 0 : onScroll({
255
+ ...e,
256
+ nativeEvent: {
257
+ ...e.nativeEvent,
258
+ contentOffset: {
259
+ ...e.nativeEvent.contentOffset,
260
+ y: scrollBridge.scrollLockY
261
+ }
138
262
  }
139
- }
140
- });
263
+ });
264
+ }
141
265
  return;
142
266
  }
143
267
  scrollBridge.y = y;
144
268
  if (y > 0) scrollBridge.scrollStartY = -1;
269
+ lastEmittedScrollOffset.current = y;
145
270
  onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);
146
271
  },
147
- contentContainerStyle: {
148
- minHeight: "100%"
149
- },
272
+ contentContainerStyle,
150
273
  bounces: false,
151
274
  keyboardShouldPersistTaps: "always",
152
275
  keyboardDismissMode: "none",
153
276
  ...props,
277
+ ...keyboardFrozenOverride,
154
278
  children: contentWrapper
155
279
  });
156
280
  }
157
281
  return /* @__PURE__ */_jsx(ScrollView, {
158
282
  onLayout: function (e) {
159
- parentHeight.current = Math.ceil(e.nativeEvent.layout.height);
283
+ recordFitHeight(Math.ceil(e.nativeEvent.layout.height));
160
284
  updateScrollable();
161
285
  },
162
286
  ref: composeRefs(scrollRef, ref),
163
- flex: 1,
287
+ ...fitSizingStyle,
164
288
  scrollEventThrottle: 1,
165
289
  className: "_ovs-contain",
166
290
  scrollEnabled,
@@ -168,15 +292,16 @@ var SheetScrollView = /* @__PURE__ */React.forwardRef(function (param, ref) {
168
292
  var {
169
293
  y
170
294
  } = e.nativeEvent.contentOffset;
295
+ currentScrollOffset.current = y;
171
296
  scrollBridge.y = y;
172
297
  if (y > 0) scrollBridge.scrollStartY = -1;
298
+ lastEmittedScrollOffset.current = y;
173
299
  onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);
174
300
  },
175
- contentContainerStyle: {
176
- minHeight: "100%"
177
- },
301
+ contentContainerStyle,
178
302
  ...gestureProps,
179
303
  ...props,
304
+ ...keyboardFrozenOverride,
180
305
  children: contentWrapper
181
306
  });
182
307
  });
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","composeRefs","View","ScrollView","useControllableState","React","useEffect","useRef","useState","useGestureSheetContext","getGestureHandlerState","isGestureHandlerEnabled","useSheetContext","useSheetScrollViewGestures","SHEET_SCROLL_VIEW_NAME","SheetScrollView","forwardRef","param","ref","__scopeSheet","children","onScroll","scrollEnabled","scrollEnabledProp","props","context","gestureContext","scrollBridge","setHasScrollView","prop","defaultProp","scrollRef","panGestureRef","RNGHScrollView","useRNGHScrollView","currentScrollOffset","lockedScrollY","setScrollEnabled","next","lockTo","_scrollRef_current_scrollTo","_scrollRef_current","lockY","current","scrollLockY","scrollTo","call","x","y","animated","forceScrollTo","hasScrollableContent","setHasScrollableContent","parentHeight","contentHeight","updateScrollable","gestureProps","contentWrapper","onLayout","e","height","Math","floor","nativeEvent","layout","RNGHComponent","style","flex","scrollEventThrottle","simultaneousHandlers","ceil","contentOffset","scrollStartY","contentContainerStyle","minHeight","bounces","keyboardShouldPersistTaps","keyboardDismissMode","className"],"sources":["../../src/SheetScrollView.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,QAAmB;AAC5B,SAAgBC,WAAA,QAAyB;AAEzC,SAASC,IAAA,wBAAkB;AAC3B,SAASC,UAAA,+BAA4B;AACrC,SAAOC,oBAAoB,QAAQ,kCAAgB;AAEnD,OAAAC,KAAS,IAAAC,SAAA,EAAAC,MAAA,EAAAC,QAA8B;AACvC,SAASC,sBAAA,QAAwB;AACjC,SAASC,sBAAA,EAAuBC,uBAAA;AAEhC,SAASC,eAAA,kCAAkC;AAyFrC,SAAAC,0BAAA;AAvFN,IAAAC,sBAAM,oBAAyB;AAExB,IAAAC,eAAM,kBAAwBV,KAAA,CAAAW,UAAA,WAAAC,KAAA,EAAAC,GAAA;EAInC,IACE;IAAAC,YAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,aAAA,EAAAC,iBAAA;IAAA,GAAAC;EAAA,IAAAP,KAAA;EAAA,IACEQ,OAAA,GAAAb,eAAA,CAAAE,sBAAA,EAAAK,YAAA;EAAA,IACAO,cAAA,GAAAjB,sBAAA;EAAA,IACA;IAAAkB,YAAA;IAAAC;EAAA,IAAAH,OAAA;EAAA,IACA,CAAAH,aAAe,IAAAlB,oBAAA;IACfyB,IAAG,EAAAN,iBAAA;IACLO,WAEG;EACH;EACA,IAAAC,SAAM,GAAA1B,KAAA,CAAAE,MAAiB;EACvB,IAAAyB,aAAQ,GAAAN,cAAc,SAAiB,IAAIA,cAAA,uBAAAA,cAAA,CAAAM,aAAA;EAC3C;IAAA7B,UAAO,EAAA8B;EAAiB,IAAAvB,sBAAqB;EAAA,IAC3CwB,iBAAM,GAAAvB,uBAAA,MAAAsB,cAAA,IAAAD,aAAA;EAAA,IACNG,mBAAa,GAAA5B,MAAA;EAAA,IACd6B,aAAA,GAAA7B,MAAA;EACD,IAAA8B,gBAAkB,YAAAA,CAAMC,IAA4B,EAAIC,MAAA;IAExD,KAAAD,IAAM;MACN,IAAME,2BAAc,EAAeC,kBAAI;MACvC,IAAMC,KAAA,GAAAH,MAAA,SAAoB,IAAAA,MAAA,WAAwB,GAAAA,MAAK,GAAAJ,mBAAkB,CAAAQ,OAAA;MAGzEP,aAAM,CAAAO,OAAA,GAAAD,KAAsB;MAC5Bf,YAAM,CAAAiB,WAAgB,GAAOF,KAAC;MAE9B,CAAAD,kBAAM,GAAAV,SAAmC,CAAAY,OAAA,MAAoB,QAAAF,kBAAA,wBAAAD,2BAAA,GAAAC,kBAAA,CAAAI,QAAA,cAAAL,2BAAA,uBAAAA,2BAAA,CAAAM,IAAA,CAAAL,kBAAA;QAC3DM,CAAA,EAAK;QACHC,CAAA,EAAAN,KAAM;QACNO,QAAA;MACA;IACA;MACFb,aAAO,CAAAO,OAAA,GAAAR,mBAAA,CAAAQ,OAAA;MACLhB,YAAA,CAAAiB,WAAc,GAAU;IACxB;EAA2B;EAC7B,IACFM,aAAA,YAAAA,CAAAF,CAAA;IAEA,IAAAR,2BAAqC,EAAAC,kBAAA;IACnC,CAAAA,kBAAU,GAASV,SAAA,CAAWY,OAAK,MAAM,QAAUF,kBAAO,wBAAAD,2BAAA,GAAAC,kBAAA,CAAAI,QAAA,cAAAL,2BAAA,uBAAAA,2BAAA,CAAAM,IAAA,CAAAL,kBAAA;MAC5DM,CAAA;MAEAC,CAAA;MACEC,QAAA;IACA;EACE;EACA3C,SAAA,aAAa;IAAgBsB,gBAC/B;IACA,IAAAjB,uBAAa;MACXgB,YAAA,CAAAU,gBAAsB,GAAAA,gBAAA;MACtBV,YAAA,CAAAuB,aAAa,GAAAA,aAAmB;IAChC;IAA6B,OAC/B;MACFtB,gBAAK;MAELD,YAAO,CAAAU,gBAAsB;MAC7BV,YAAM,CAAAuB,aAAsB,GAAC;IAC7B;EAEA;EACE,KAAAC,oBAAiB,EAAAC,uBAAyB,IAAA5C,QAAS;EACjD,IAAA6C,YAAA,GAAA9C,MAAA;EAAoE,IACtE+C,aAAA,GAAA/C,MAAA;EAAA,IACFgD,gBAAA,YAAAA,CAAA;IAEA,IAAAF,YAAgB,CAAAV,OAAA,IAAAW,aAAA,CAAAX,OAAA;MACdS,uBAAa,CAAAE,aAAuB,CAAAX,OAAA,GAAAU,YAAA,CAAAV,OAAA;IACtC;EAGA;EAAgDrC,SAC9C;IAAAqB,YACA,CAAAwB,oBAAA,GAAAA,oBAAA;EAAA,IACAA,oBACA;EACA,IACDK,YAAA,GAAA3C,0BAAA;IAGDkB,SAAM;IACJJ,YAAC;IAAAwB,oBAAA;IAAA7B,aACC;IACEe;EACA;EACE,IAAAoB,cAAA,kBAAwBzD,IAAA,CAAAE,IAAA;IACxBwD,QAAA,WAAAA,CAAAC,CAAA;MAAiB,IACnBC,MAAA,GAAAC,IAAA,CAAAC,KAAA,CAAAH,CAAA,CAAAI,WAAA,CAAAC,MAAA,CAAAJ,MAAA;MAAA,IACFA,MAAA,KAAAN,aAAA,CAAAX,OAAA;QAECW,aAAA,CAAAX,OAAA,GAAAiB,MAAA;QAAAL,gBAAA;MACH;IAIF;IACEnC;EACA;EACE,IAAAc,iBAAC,IAAAD,cAAA,IAAAD,aAAA;IAAA,IAAAiC,aAAA,GAAAhC,cAAA;IAAA,OACC,eAAiBjC,IAAA,CAAAiE,aAAqB;MAAA/C,GAAA,EACtCjB,WAAS,CAAA8B,SAAQ,EAAAb,GAAA;MAAAgD,KACjB;QAAqBC,IACrB;MAAA;MACoCC,mBACzB,EAAW;MACpB9C,aAAA;MACA+C,oBAAA,GAAiBrC,aACnB;MAEE0B,QAAA,WAAAA,CAAUC,CAAI,EAAE;QAChBN,YAAA,CAAAV,OAAA,GAAAkB,IAAoB,CAAAS,IAAA,CAAAX,CAAU,CAAAI,WAAA,CAAAC,MAAA,CAAAJ,MAAA;QAE9BL,gBAAI;MACF;MACElC,QAAA,WAAAA,CAAAsC,CAAU;QAAoB;UAAAX;QAAA,IAC5BW,CAAG,CAAAI,WAAA,CAAAQ,aAAA;QAAApC,mBACA,CAAAQ,OAAa,GAAAK,CAAA;QAAA,IAAArB,YAChB,CAAAiB,WAAU;UAAA,IAAAI,CAAA,KACXrB,YAAA,CAAAiB,WAAA;YAAA,IACHJ,2BAAA,EAAAC,kBAAA;YACA,CAAAA,kBAAiB,GAAAV,SAAA,CAAaY,OAAA,cAAAF,kBAAA,wBAAAD,2BAAA,GAAAC,kBAAA,CAAAI,QAAA,cAAAL,2BAAA,uBAAAA,2BAAA,CAAAM,IAAA,CAAAL,kBAAA;cAC9BM,CAAA;cAAWC,CAAA,EACTrB,YAAG,CAAAiB,WAAA;cAAAK,QACH;YAAa;UACN;UACUtB,YACb,CAAGqB,CAAA,GAAErB,YAAY,CAAAiB,WAAA;UAAAvB,QAAA,KACd,QAAAA,QAAa,uBAAAA,QAAA;YAAA,GAAAsC,CAAA;YAClBI,WACF;cACF,GAACJ,CAAA,CAAAI,WAAA;cACDQ,aAAA;gBACF,GAAAZ,CAAA,CAAAI,WAAA,CAAAQ,aAAA;gBAEAvB,CAAA,EAAArB,YAAiB,CAAAiB;cACjB;YACA;UACF;UACA;QAA2C;QAClCjB,YACT,CAAAqB,CAAA,GAAAA,CAAA;QAA0B,IAC1BA,CAAA,MAAArB,YAAoB,CAAA6C,YAAA;QAAAnD,QAChB,aAAAA,QAAA,uBAAAA,QAAA,CAAAsC,CAAA;MAAA;MAEHc,qBAAA;QACHC,SAAA;MAEJ;MAGAC,OACE;MAACC,yBAAA;MAAAC,mBAAA;MAAA,GACCrD,KAAA;MACEJ,QAAA,EAAAqC;IACA;EAAiB;EACnB,OACA,eAAiBzD,IAAA,CAAAG,UAAqB;IAAAuD,QACtC,EAAM,SAAAA,CAAAC,CAAA;MAAAN,YACN,CAAAV,OAAA,GAAqBkB,IAAA,CAAAS,IAAA,CAAAX,CAAA,CAAAI,WAAA,CAAAC,MAAA,CAAAJ,MAAA;MAAAL,gBACX;IAAA;IACVrC,GAAA,EACAjB,WAAW,CAAA8B,SAAM,EAAAb,GAAA;IACfiD,IAAA;IACAC,mBAAa;IACbU,SAAA,EAAI,cAAO;IACXxD,aAAA;IAAYD,QACd,WAAAA,CAAAsC,CAAA;MAAA,IACA;QAAAX;MAAA,IAAAW,CAAA,CAAAI,WAAuB,CAAAQ,aAAa;MAAO5C,YACvC,CAAAqB,CAAA,GAAAA,CAAA;MAAA,IACHA,CAAG,MAAArB,YAAA,CAAA6C,YAAA;MAAAnD,QAEH,aAAAA,QAAA,uBAAAA,QAAA,CAAAsC,CAAA;IAAA;IACHc,qBAAA;MAEJC,SAAA;IACF","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","composeRefs","isWeb","View","ScrollView","useControllableState","React","useEffect","useRef","useState","useGestureSheetContext","getGestureHandlerState","isGestureHandlerEnabled","useSheetContext","useSheetScrollViewGestures","getStableLayoutViewportHeight","getWebKeyboardBottomInset","getWebKeyboardResizeHeight","isEditableElement","MIN_KEYBOARD_HEIGHT","SHEET_SCROLL_VIEW_NAME","SheetScrollView","forwardRef","param","ref","__scopeSheet","children","onScroll","scrollEnabled","scrollEnabledProp","props","context","gestureContext","scrollBridge","setHasScrollView","hasFit","screenSize","keyboardOccludedHeight","Math","max","isKeyboardVisible","prop","defaultProp","scrollRef","hasScrollableContent","setHasScrollableContent","parentHeight","contentHeight","frozenFrameHeight","keyboardStableFrameHeight","fitSizingStyle","flex","height","maxHeight","contentContainerStyle","minHeight","keyboardFrozenOverride","panGestureRef","RNGHScrollView","useRNGHScrollView","currentScrollOffset","lastEmittedScrollOffset","lockedScrollY","focusedInputScrollFrame","setScrollEnabled","next","lockTo","_ref","lockY","scrollLockY","current","enabled","_scrollRef_current_scrollTo","_scrollRef_current","scrollTo","call","x","y","animated","forceScrollTo","emitManualScroll","useCallback","node","scrollStartY","nativeEvent","contentOffset","scrollLeft","contentSize","scrollHeight","width","scrollWidth","layoutMeasurement","offsetHeight","offsetWidth","timeStamp","Date","now","scrollFocusedInputClearOfKeyboard","getScrollableNode","active","document","activeElement","contains","keyboardHeight","activeRect","getBoundingClientRect","nodeRect","margin","keyboardTop","visibleTop","top","visibleBottom","min","bottom","nextScrollTop","scrollTop","ceil","maxScrollTop","clientHeight","scheduleFocusedInputScroll","cancelAnimationFrame","requestAnimationFrame","_window_visualViewport","window","addEventListener","visualViewport","_window_visualViewport2","removeEventListener","updateScrollable","recordFitHeight","gestureProps","onManualScroll","contentWrapper","onLayout","e","floor","layout","RNGHComponent","style","scrollEventThrottle","simultaneousHandlers","bounces","keyboardShouldPersistTaps","keyboardDismissMode","className"],"sources":["../../src/SheetScrollView.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,20 +1,20 @@
1
1
  import { useComposedRefs } from "@hanzogui/compose-refs";
2
- import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
2
+ import { isWeb, useIsomorphicLayoutEffect } from "@hanzogui/constants";
3
3
  import { View } from "@hanzogui/core";
4
4
  import { composeEventHandlers, withStaticProperties } from "@hanzogui/helpers";
5
5
  import { resolveViewZIndex } from "@hanzogui/portal";
6
6
  import { RemoveScroll } from "@hanzogui/remove-scroll";
7
7
  import { useDidFinishSSR } from "@hanzogui/use-did-finish-ssr";
8
8
  import { StackZIndexContext } from "@hanzogui/z-index-stack";
9
- import { forwardRef, useMemo, useEffect, useRef } from "react";
9
+ import { forwardRef, useEffect, useMemo, useRef } from "react";
10
10
  import { Platform } from "react-native-web";
11
11
  import { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from "./constants.mjs";
12
- import { getNativeSheet } from "./nativeSheet.mjs";
13
12
  import { useSheetContext } from "./SheetContext.mjs";
14
13
  import { SheetImplementationCustom } from "./SheetImplementationCustom.mjs";
15
14
  import { SheetScrollView } from "./SheetScrollView.mjs";
16
15
  import { useSheetController } from "./useSheetController.mjs";
17
16
  import { useSheetOffscreenSize } from "./useSheetOffscreenSize.mjs";
17
+ import { getMaxViewportHeight } from "./webViewport.mjs";
18
18
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
19
19
  function createSheet({
20
20
  Handle,
@@ -62,11 +62,12 @@ function createSheet({
62
62
  const element = useMemo(() => {
63
63
  return /* @__PURE__ */jsx(Overlay, {
64
64
  ...props,
65
+ ref,
65
66
  onPress: composeEventHandlers(props.onPress, context.dismissOnOverlayPress ? () => {
66
67
  context.setOpen(false);
67
68
  } : void 0)
68
69
  });
69
- }, [props.onPress, props.opacity, context.dismissOnOverlayPress]);
70
+ }, [props, ref, context.dismissOnOverlayPress, context.setOpen]);
70
71
  useIsomorphicLayoutEffect(() => {
71
72
  context.onOverlayComponent?.(element);
72
73
  }, [element]);
@@ -121,13 +122,15 @@ function createSheet({
121
122
  }), !disableHideBottomOverflow && /* @__PURE__ */jsx(Frame, {
122
123
  ...props,
123
124
  componentName: "SheetCover",
125
+ "data-sheet-cover": "",
124
126
  children: null,
125
127
  testID: void 0,
126
128
  id: void 0,
127
129
  position: "absolute",
128
- bottom: "-100%",
130
+ top: "100%",
129
131
  zIndex: -1,
130
- height: context.frameSize,
132
+ height: isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize,
133
+ maxHeight: isWeb ? "none" : void 0,
131
134
  left: 0,
132
135
  right: 0,
133
136
  borderWidth: 0,
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","useIsomorphicLayoutEffect","View","composeEventHandlers","withStaticProperties","resolveViewZIndex","RemoveScroll","useDidFinishSSR","StackZIndexContext","forwardRef","useMemo","useEffect","useRef","Platform","SHEET_HANDLE_NAME","SHEET_NAME","SHEET_OVERLAY_NAME","getNativeSheet","useSheetContext","SheetImplementationCustom","SheetScrollView","useSheetController","useSheetOffscreenSize","Fragment","jsx","jsxs","createSheet","Handle","Frame","Overlay","SheetHandle","styleable","__scopeSheet","props","forwardedRef","context","composedRef","handleRef","wasDraggingRef","scrollBridge","onParentDragging","isDragging","current","onlyShowFrame","ref","onPressIn","onPress","max","snapPoints","length","dismissOnSnapToBottom","nextPos","position","setPosition","open","SheetOverlay","propsIn","element","dismissOnOverlayPress","setOpen","opacity","onOverlayComponent","SheetFrame","adjustPaddingForOffscreenContent","disableHideBottomOverflow","children","hasFit","disableRemoveScroll","frameSize","contentRef","composedContentRef","offscreenSize","stableFrameSize","sheetContents","shouldUseFixedHeight","flex","flexBasis","height","pointerEvents","zIndex","width","enabled","componentName","testID","id","bottom","left","right","borderWidth","borderRadius","shadowOpacity","Sheet","Sheet2","hydrated","isShowingNonSheet","SheetImplementation","native","OS","components","ScrollView","Controlled"],"sources":["../../src/createSheet.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useComposedRefs","isWeb","useIsomorphicLayoutEffect","View","composeEventHandlers","withStaticProperties","resolveViewZIndex","RemoveScroll","useDidFinishSSR","StackZIndexContext","forwardRef","useEffect","useMemo","useRef","Platform","SHEET_HANDLE_NAME","SHEET_NAME","SHEET_OVERLAY_NAME","useSheetContext","SheetImplementationCustom","SheetScrollView","useSheetController","useSheetOffscreenSize","getMaxViewportHeight","Fragment","jsx","jsxs","createSheet","Handle","Frame","Overlay","SheetHandle","styleable","__scopeSheet","props","forwardedRef","context","composedRef","handleRef","wasDraggingRef","scrollBridge","onParentDragging","isDragging","current","onlyShowFrame","ref","onPressIn","onPress","max","snapPoints","length","dismissOnSnapToBottom","nextPos","position","setPosition","open","SheetOverlay","propsIn","element","dismissOnOverlayPress","setOpen","onOverlayComponent","SheetFrame","adjustPaddingForOffscreenContent","disableHideBottomOverflow","children","hasFit","disableRemoveScroll","frameSize","contentRef","composedContentRef","offscreenSize","stableFrameSize","sheetContents","shouldUseFixedHeight","flex","flexBasis","height","pointerEvents","zIndex","width","enabled","componentName","testID","id","top","Math","maxHeight","left","right","borderWidth","borderRadius","shadowOpacity","Sheet","Sheet2","hydrated","isShowingNonSheet","SheetImplementation","native","OS","components","ScrollView","Controlled"],"sources":["createSheet.mjs"],"sourcesContent":["import { useComposedRefs } from \"@hanzogui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@hanzogui/constants\";\nimport { View } from \"@hanzogui/core\";\nimport { composeEventHandlers, withStaticProperties } from \"@hanzogui/helpers\";\nimport { resolveViewZIndex } from \"@hanzogui/portal\";\nimport { RemoveScroll } from \"@hanzogui/remove-scroll\";\nimport { useDidFinishSSR } from \"@hanzogui/use-did-finish-ssr\";\nimport { StackZIndexContext } from \"@hanzogui/z-index-stack\";\nimport { forwardRef, useEffect, useMemo, useRef } from \"react\";\nimport { Platform } from \"react-native-web\";\nimport { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from \"./constants\";\nimport { useSheetContext } from \"./SheetContext\";\nimport { SheetImplementationCustom } from \"./SheetImplementationCustom\";\nimport { SheetScrollView } from \"./SheetScrollView\";\nimport { useSheetController } from \"./useSheetController\";\nimport { useSheetOffscreenSize } from \"./useSheetOffscreenSize\";\nimport { getMaxViewportHeight } from \"./webViewport\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n\nfunction createSheet({ Handle, Frame, Overlay }) {\n\tconst SheetHandle = Handle.styleable(({ __scopeSheet, ...props }, forwardedRef) => {\n\t\tconst context = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet);\n\t\tconst composedRef = useComposedRefs(context.handleRef, forwardedRef);\n\t\tconst wasDraggingRef = useRef(false);\n\t\tuseEffect(() => {\n\t\t\tif (!context.scrollBridge) return;\n\t\t\treturn context.scrollBridge.onParentDragging((isDragging) => {\n\t\t\t\tif (isDragging) wasDraggingRef.current = true;\n\t\t\t});\n\t\t}, [context.scrollBridge]);\n\t\tif (context.onlyShowFrame) return null;\n\t\treturn /* @__PURE__ */ jsx(Handle, {\n\t\t\tref: composedRef,\n\t\t\tonPressIn: () => {\n\t\t\t\twasDraggingRef.current = false;\n\t\t\t},\n\t\t\tonPress: () => {\n\t\t\t\tif (wasDraggingRef.current) {\n\t\t\t\t\twasDraggingRef.current = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);\n\t\t\t\tconst nextPos = (context.position + 1) % max;\n\t\t\t\tcontext.setPosition(nextPos);\n\t\t\t},\n\t\t\topen: context.open,\n\t\t\t...props\n\t\t});\n\t});\n\tconst SheetOverlay = Overlay.styleable((propsIn, ref) => {\n\t\tconst { __scopeSheet, ...props } = propsIn;\n\t\tconst context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet);\n\t\tconst element = useMemo(() => {\n\t\t\treturn /* @__PURE__ */ jsx(Overlay, {\n\t\t\t\t...props,\n\t\t\t\tref,\n\t\t\t\tonPress: composeEventHandlers(props.onPress, context.dismissOnOverlayPress ? () => {\n\t\t\t\t\tcontext.setOpen(false);\n\t\t\t\t} : void 0)\n\t\t\t});\n\t\t}, [\n\t\t\tprops,\n\t\t\tref,\n\t\t\tcontext.dismissOnOverlayPress,\n\t\t\tcontext.setOpen\n\t\t]);\n\t\tuseIsomorphicLayoutEffect(() => {\n\t\t\tcontext.onOverlayComponent?.(element);\n\t\t}, [element]);\n\t\tif (context.onlyShowFrame) return null;\n\t\treturn null;\n\t});\n\tconst SheetFrame = Frame.styleable(({ __scopeSheet, adjustPaddingForOffscreenContent, disableHideBottomOverflow, children, ...props }, forwardedRef) => {\n\t\tconst context = useSheetContext(SHEET_NAME, __scopeSheet);\n\t\tconst { hasFit, disableRemoveScroll, frameSize, contentRef, open } = context;\n\t\tconst composedContentRef = useComposedRefs(forwardedRef, contentRef);\n\t\tconst offscreenSize = useSheetOffscreenSize(context);\n\t\tconst stableFrameSize = useRef(frameSize);\n\t\tuseEffect(() => {\n\t\t\tif (open && frameSize) stableFrameSize.current = frameSize;\n\t\t}, [open, frameSize]);\n\t\tconst sheetContents = useMemo(() => {\n\t\t\tconst shouldUseFixedHeight = hasFit && !open && stableFrameSize.current;\n\t\t\treturn /* @__PURE__ */ jsxs(Frame, {\n\t\t\t\tref: composedContentRef,\n\t\t\t\tflex: hasFit && open ? 0 : 1,\n\t\t\t\tflexBasis: hasFit ? \"auto\" : void 0,\n\t\t\t\theight: shouldUseFixedHeight ? stableFrameSize.current : hasFit ? void 0 : frameSize,\n\t\t\t\tpointerEvents: open ? \"auto\" : \"none\",\n\t\t\t\t\"data-state\": open ? \"open\" : \"closed\",\n\t\t\t\t...props,\n\t\t\t\tchildren: [/* @__PURE__ */ jsx(StackZIndexContext, {\n\t\t\t\t\tzIndex: resolveViewZIndex(props.zIndex),\n\t\t\t\t\tchildren\n\t\t\t\t}), adjustPaddingForOffscreenContent && /* @__PURE__ */ jsx(View, {\n\t\t\t\t\t\"data-sheet-offscreen-pad\": true,\n\t\t\t\t\theight: offscreenSize,\n\t\t\t\t\twidth: \"100%\"\n\t\t\t\t})]\n\t\t\t});\n\t\t}, [\n\t\t\topen,\n\t\t\tprops,\n\t\t\tframeSize,\n\t\t\toffscreenSize,\n\t\t\tadjustPaddingForOffscreenContent,\n\t\t\thasFit\n\t\t]);\n\t\treturn /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(RemoveScroll, {\n\t\t\tenabled: !disableRemoveScroll && context.open,\n\t\t\tchildren: sheetContents\n\t\t}), !disableHideBottomOverflow && /* @__PURE__ */ jsx(Frame, {\n\t\t\t...props,\n\t\t\tcomponentName: \"SheetCover\",\n\t\t\t\"data-sheet-cover\": \"\",\n\t\t\tchildren: null,\n\t\t\ttestID: void 0,\n\t\t\tid: void 0,\n\t\t\tposition: \"absolute\",\n\t\t\ttop: \"100%\",\n\t\t\tzIndex: -1,\n\t\t\theight: isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize,\n\t\t\tmaxHeight: isWeb ? \"none\" : void 0,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tborderWidth: 0,\n\t\t\tborderRadius: 0,\n\t\t\tshadowOpacity: 0\n\t\t})] });\n\t});\n\tconst Sheet = forwardRef(function Sheet2(props, ref) {\n\t\tconst hydrated = useDidFinishSSR();\n\t\tconst { isShowingNonSheet } = useSheetController();\n\t\tlet SheetImplementation = SheetImplementationCustom;\n\t\tif (props.native && Platform.OS === \"ios\") {}\n\t\tif (isShowingNonSheet || !hydrated) return null;\n\t\treturn /* @__PURE__ */ jsx(SheetImplementation, {\n\t\t\tref,\n\t\t\t...props\n\t\t});\n\t});\n\tconst components = {\n\t\tFrame: SheetFrame,\n\t\tOverlay: SheetOverlay,\n\t\tHandle: SheetHandle,\n\t\tScrollView: SheetScrollView\n\t};\n\tconst Controlled = withStaticProperties(Sheet, components);\n\treturn withStaticProperties(Sheet, {\n\t\t...components,\n\t\tControlled\n\t});\n}\n\nexport { createSheet };"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,13 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useComposedRefs } from "@hanzogui/compose-refs";
3
- import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
3
+ import { isWeb, useIsomorphicLayoutEffect } from "@hanzogui/constants";
4
4
  import { View } from "@hanzogui/core";
5
5
  import { composeEventHandlers, withStaticProperties } from "@hanzogui/helpers";
6
6
  import { resolveViewZIndex } from "@hanzogui/portal";
7
7
  import { RemoveScroll } from "@hanzogui/remove-scroll";
8
8
  import { useDidFinishSSR } from "@hanzogui/use-did-finish-ssr";
9
9
  import { StackZIndexContext } from "@hanzogui/z-index-stack";
10
- import { forwardRef, useMemo, useEffect, useRef } from "react";
10
+ import { forwardRef, useEffect, useMemo, useRef } from "react";
11
11
  import { Platform } from "react-native";
12
12
  import { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from "./constants.native.js";
13
13
  import { getNativeSheet } from "./nativeSheet.native.js";
@@ -16,6 +16,7 @@ import { SheetImplementationCustom } from "./SheetImplementationCustom.native.js
16
16
  import { SheetScrollView } from "./SheetScrollView.native.js";
17
17
  import { useSheetController } from "./useSheetController.native.js";
18
18
  import { useSheetOffscreenSize } from "./useSheetOffscreenSize.native.js";
19
+ import { getMaxViewportHeight } from "./webViewport.native.js";
19
20
  function createSheet(param) {
20
21
  var {
21
22
  Handle,
@@ -37,7 +38,7 @@ function createSheet(param) {
37
38
  });
38
39
  }, [context.scrollBridge]);
39
40
  if (context.onlyShowFrame) return null;
40
- return /* @__PURE__ */_jsx(Handle, {
41
+ return /* @__PURE__ */jsx(Handle, {
41
42
  ref: composedRef,
42
43
  onPressIn: function () {
43
44
  wasDraggingRef.current = false;
@@ -62,13 +63,14 @@ function createSheet(param) {
62
63
  } = propsIn;
63
64
  var context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet);
64
65
  var element = useMemo(function () {
65
- return /* @__PURE__ */_jsx(Overlay, {
66
+ return /* @__PURE__ */jsx(Overlay, {
66
67
  ...props,
68
+ ref,
67
69
  onPress: composeEventHandlers(props.onPress, context.dismissOnOverlayPress ? function () {
68
70
  context.setOpen(false);
69
71
  } : void 0)
70
72
  });
71
- }, [props.onPress, props.opacity, context.dismissOnOverlayPress]);
73
+ }, [props, ref, context.dismissOnOverlayPress, context.setOpen]);
72
74
  useIsomorphicLayoutEffect(function () {
73
75
  var _context_onOverlayComponent;
74
76
  (_context_onOverlayComponent = context.onOverlayComponent) === null || _context_onOverlayComponent === void 0 || _context_onOverlayComponent.call(context, element);
@@ -100,7 +102,7 @@ function createSheet(param) {
100
102
  }, [open, frameSize]);
101
103
  var sheetContents = useMemo(function () {
102
104
  var shouldUseFixedHeight = hasFit && !open && stableFrameSize.current;
103
- return /* @__PURE__ */_jsxs(Frame, {
105
+ return /* @__PURE__ */jsxs(Frame, {
104
106
  ref: composedContentRef,
105
107
  flex: hasFit && open ? 0 : 1,
106
108
  flexBasis: hasFit ? "auto" : void 0,
@@ -108,30 +110,32 @@ function createSheet(param) {
108
110
  pointerEvents: open ? "auto" : "none",
109
111
  "data-state": open ? "open" : "closed",
110
112
  ...props,
111
- children: [/* @__PURE__ */_jsx(StackZIndexContext, {
113
+ children: [/* @__PURE__ */jsx(StackZIndexContext, {
112
114
  zIndex: resolveViewZIndex(props.zIndex),
113
115
  children
114
- }), adjustPaddingForOffscreenContent && /* @__PURE__ */_jsx(View, {
116
+ }), adjustPaddingForOffscreenContent && /* @__PURE__ */jsx(View, {
115
117
  "data-sheet-offscreen-pad": true,
116
118
  height: offscreenSize,
117
119
  width: "100%"
118
120
  })]
119
121
  });
120
122
  }, [open, props, frameSize, offscreenSize, adjustPaddingForOffscreenContent, hasFit]);
121
- return /* @__PURE__ */_jsxs(_Fragment, {
122
- children: [/* @__PURE__ */_jsx(RemoveScroll, {
123
+ return /* @__PURE__ */jsxs(Fragment, {
124
+ children: [/* @__PURE__ */jsx(RemoveScroll, {
123
125
  enabled: !disableRemoveScroll && context.open,
124
126
  children: sheetContents
125
- }), !disableHideBottomOverflow && /* @__PURE__ */_jsx(Frame, {
127
+ }), !disableHideBottomOverflow && /* @__PURE__ */jsx(Frame, {
126
128
  ...props,
127
129
  componentName: "SheetCover",
130
+ "data-sheet-cover": "",
128
131
  children: null,
129
132
  testID: void 0,
130
133
  id: void 0,
131
134
  position: "absolute",
132
- bottom: "-100%",
135
+ top: "100%",
133
136
  zIndex: -1,
134
- height: context.frameSize,
137
+ height: isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize,
138
+ maxHeight: isWeb ? "none" : void 0,
135
139
  left: 0,
136
140
  right: 0,
137
141
  borderWidth: 0,
@@ -151,7 +155,7 @@ function createSheet(param) {
151
155
  if (impl) SheetImplementation = impl;
152
156
  }
153
157
  if (isShowingNonSheet || !hydrated) return null;
154
- return /* @__PURE__ */_jsx(SheetImplementation, {
158
+ return /* @__PURE__ */jsx(SheetImplementation, {
155
159
  ref,
156
160
  ...props
157
161
  });
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useComposedRefs","useIsomorphicLayoutEffect","View","composeEventHandlers","withStaticProperties","resolveViewZIndex","RemoveScroll","useDidFinishSSR","StackZIndexContext","forwardRef","useMemo","useEffect","useRef","Platform","SHEET_HANDLE_NAME","SHEET_NAME","SHEET_OVERLAY_NAME","getNativeSheet","useSheetContext","SheetImplementationCustom","SheetScrollView","useSheetController","useSheetOffscreenSize","createSheet","param","Handle","Frame","Overlay","SheetHandle","styleable","param2","forwardedRef","__scopeSheet","props","context","composedRef","handleRef","wasDraggingRef","scrollBridge","onParentDragging","isDragging","current","onlyShowFrame","ref","onPressIn","onPress","max","snapPoints","length","dismissOnSnapToBottom","nextPos","position","setPosition","open","SheetOverlay","propsIn","element","dismissOnOverlayPress","setOpen","opacity","_context_onOverlayComponent","onOverlayComponent","call","SheetFrame","adjustPaddingForOffscreenContent","disableHideBottomOverflow","children","hasFit","disableRemoveScroll","frameSize","contentRef","composedContentRef","offscreenSize","stableFrameSize","sheetContents","shouldUseFixedHeight","flex","flexBasis","height","pointerEvents","zIndex","width","enabled","componentName","testID","id","bottom","left","right","borderWidth","borderRadius","shadowOpacity","Sheet","Sheet2","hydrated","isShowingNonSheet","SheetImplementation","native","OS","impl","components","ScrollView","Controlled"],"sources":["../../src/createSheet.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Fragment","jsx","jsxs","useComposedRefs","isWeb","useIsomorphicLayoutEffect","View","composeEventHandlers","withStaticProperties","resolveViewZIndex","RemoveScroll","useDidFinishSSR","StackZIndexContext","forwardRef","useEffect","useMemo","useRef","Platform","SHEET_HANDLE_NAME","SHEET_NAME","SHEET_OVERLAY_NAME","getNativeSheet","useSheetContext","SheetImplementationCustom","SheetScrollView","useSheetController","useSheetOffscreenSize","getMaxViewportHeight","createSheet","param","Handle","Frame","Overlay","SheetHandle","styleable","param2","forwardedRef","__scopeSheet","props","context","composedRef","handleRef","wasDraggingRef","scrollBridge","onParentDragging","isDragging","current","onlyShowFrame","ref","onPressIn","onPress","max","snapPoints","length","dismissOnSnapToBottom","nextPos","position","setPosition","open","SheetOverlay","propsIn","element","dismissOnOverlayPress","setOpen","_context_onOverlayComponent","onOverlayComponent","call","SheetFrame","adjustPaddingForOffscreenContent","disableHideBottomOverflow","children","hasFit","disableRemoveScroll","frameSize","contentRef","composedContentRef","offscreenSize","stableFrameSize","sheetContents","shouldUseFixedHeight","flex","flexBasis","height","pointerEvents","zIndex","width","enabled","componentName","testID","id","top","Math","maxHeight","left","right","borderWidth","borderRadius","shadowOpacity","Sheet","Sheet2","hydrated","isShowingNonSheet","SheetImplementation","native","OS","impl","components","ScrollView","Controlled"],"sources":["createSheet.native.js"],"sourcesContent":["import { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { useComposedRefs } from \"@hanzogui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@hanzogui/constants\";\nimport { View } from \"@hanzogui/core\";\nimport { composeEventHandlers, withStaticProperties } from \"@hanzogui/helpers\";\nimport { resolveViewZIndex } from \"@hanzogui/portal\";\nimport { RemoveScroll } from \"@hanzogui/remove-scroll\";\nimport { useDidFinishSSR } from \"@hanzogui/use-did-finish-ssr\";\nimport { StackZIndexContext } from \"@hanzogui/z-index-stack\";\nimport { forwardRef, useEffect, useMemo, useRef } from \"react\";\nimport { Platform } from \"react-native\";\nimport { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from \"./constants\";\nimport { getNativeSheet } from \"./nativeSheet\";\nimport { useSheetContext } from \"./SheetContext\";\nimport { SheetImplementationCustom } from \"./SheetImplementationCustom\";\nimport { SheetScrollView } from \"./SheetScrollView\";\nimport { useSheetController } from \"./useSheetController\";\nimport { useSheetOffscreenSize } from \"./useSheetOffscreenSize\";\nimport { getMaxViewportHeight } from \"./webViewport\";\n\nfunction createSheet(param) {\n\tvar { Handle, Frame, Overlay } = param;\n\tvar SheetHandle = Handle.styleable(function(param2, forwardedRef) {\n\t\tvar { __scopeSheet, ...props } = param2;\n\t\tvar context = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet);\n\t\tvar composedRef = useComposedRefs(context.handleRef, forwardedRef);\n\t\tvar wasDraggingRef = useRef(false);\n\t\tuseEffect(function() {\n\t\t\tif (!context.scrollBridge) return;\n\t\t\treturn context.scrollBridge.onParentDragging(function(isDragging) {\n\t\t\t\tif (isDragging) wasDraggingRef.current = true;\n\t\t\t});\n\t\t}, [context.scrollBridge]);\n\t\tif (context.onlyShowFrame) return null;\n\t\treturn /* @__PURE__ */ jsx(Handle, {\n\t\t\tref: composedRef,\n\t\t\tonPressIn: function() {\n\t\t\t\twasDraggingRef.current = false;\n\t\t\t},\n\t\t\tonPress: function() {\n\t\t\t\tif (wasDraggingRef.current) {\n\t\t\t\t\twasDraggingRef.current = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar max = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0);\n\t\t\t\tvar nextPos = (context.position + 1) % max;\n\t\t\t\tcontext.setPosition(nextPos);\n\t\t\t},\n\t\t\topen: context.open,\n\t\t\t...props\n\t\t});\n\t});\n\tvar SheetOverlay = Overlay.styleable(function(propsIn, ref) {\n\t\tvar { __scopeSheet, ...props } = propsIn;\n\t\tvar context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet);\n\t\tvar element = useMemo(function() {\n\t\t\treturn /* @__PURE__ */ jsx(Overlay, {\n\t\t\t\t...props,\n\t\t\t\tref,\n\t\t\t\tonPress: composeEventHandlers(props.onPress, context.dismissOnOverlayPress ? function() {\n\t\t\t\t\tcontext.setOpen(false);\n\t\t\t\t} : void 0)\n\t\t\t});\n\t\t}, [\n\t\t\tprops,\n\t\t\tref,\n\t\t\tcontext.dismissOnOverlayPress,\n\t\t\tcontext.setOpen\n\t\t]);\n\t\tuseIsomorphicLayoutEffect(function() {\n\t\t\tvar _context_onOverlayComponent;\n\t\t\t(_context_onOverlayComponent = context.onOverlayComponent) === null || _context_onOverlayComponent === void 0 || _context_onOverlayComponent.call(context, element);\n\t\t}, [element]);\n\t\tif (context.onlyShowFrame) return null;\n\t\treturn null;\n\t});\n\tvar SheetFrame = Frame.styleable(function(param2, forwardedRef) {\n\t\tvar { __scopeSheet, adjustPaddingForOffscreenContent, disableHideBottomOverflow, children, ...props } = param2;\n\t\tvar context = useSheetContext(SHEET_NAME, __scopeSheet);\n\t\tvar { hasFit, disableRemoveScroll, frameSize, contentRef, open } = context;\n\t\tvar composedContentRef = useComposedRefs(forwardedRef, contentRef);\n\t\tvar offscreenSize = useSheetOffscreenSize(context);\n\t\tvar stableFrameSize = useRef(frameSize);\n\t\tuseEffect(function() {\n\t\t\tif (open && frameSize) stableFrameSize.current = frameSize;\n\t\t}, [open, frameSize]);\n\t\tvar sheetContents = useMemo(function() {\n\t\t\tvar shouldUseFixedHeight = hasFit && !open && stableFrameSize.current;\n\t\t\treturn /* @__PURE__ */ jsxs(Frame, {\n\t\t\t\tref: composedContentRef,\n\t\t\t\tflex: hasFit && open ? 0 : 1,\n\t\t\t\tflexBasis: hasFit ? \"auto\" : void 0,\n\t\t\t\theight: shouldUseFixedHeight ? stableFrameSize.current : hasFit ? void 0 : frameSize,\n\t\t\t\tpointerEvents: open ? \"auto\" : \"none\",\n\t\t\t\t\"data-state\": open ? \"open\" : \"closed\",\n\t\t\t\t...props,\n\t\t\t\tchildren: [/* @__PURE__ */ jsx(StackZIndexContext, {\n\t\t\t\t\tzIndex: resolveViewZIndex(props.zIndex),\n\t\t\t\t\tchildren\n\t\t\t\t}), adjustPaddingForOffscreenContent && /* @__PURE__ */ jsx(View, {\n\t\t\t\t\t\"data-sheet-offscreen-pad\": true,\n\t\t\t\t\theight: offscreenSize,\n\t\t\t\t\twidth: \"100%\"\n\t\t\t\t})]\n\t\t\t});\n\t\t}, [\n\t\t\topen,\n\t\t\tprops,\n\t\t\tframeSize,\n\t\t\toffscreenSize,\n\t\t\tadjustPaddingForOffscreenContent,\n\t\t\thasFit\n\t\t]);\n\t\treturn /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(RemoveScroll, {\n\t\t\tenabled: !disableRemoveScroll && context.open,\n\t\t\tchildren: sheetContents\n\t\t}), !disableHideBottomOverflow && /* @__PURE__ */ jsx(Frame, {\n\t\t\t...props,\n\t\t\tcomponentName: \"SheetCover\",\n\t\t\t\"data-sheet-cover\": \"\",\n\t\t\tchildren: null,\n\t\t\ttestID: void 0,\n\t\t\tid: void 0,\n\t\t\tposition: \"absolute\",\n\t\t\ttop: \"100%\",\n\t\t\tzIndex: -1,\n\t\t\theight: isWeb ? Math.max(context.frameSize, getMaxViewportHeight()) : context.frameSize,\n\t\t\tmaxHeight: isWeb ? \"none\" : void 0,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tborderWidth: 0,\n\t\t\tborderRadius: 0,\n\t\t\tshadowOpacity: 0\n\t\t})] });\n\t});\n\tvar Sheet = /* @__PURE__ */ forwardRef(function Sheet2(props, ref) {\n\t\tvar hydrated = useDidFinishSSR();\n\t\tvar { isShowingNonSheet } = useSheetController();\n\t\tvar SheetImplementation = SheetImplementationCustom;\n\t\tif (props.native && Platform.OS === \"ios\") {\n\t\t\tvar impl = getNativeSheet(\"ios\");\n\t\t\tif (impl) SheetImplementation = impl;\n\t\t}\n\t\tif (isShowingNonSheet || !hydrated) return null;\n\t\treturn /* @__PURE__ */ jsx(SheetImplementation, {\n\t\t\tref,\n\t\t\t...props\n\t\t});\n\t});\n\tvar components = {\n\t\tFrame: SheetFrame,\n\t\tOverlay: SheetOverlay,\n\t\tHandle: SheetHandle,\n\t\tScrollView: SheetScrollView\n\t};\n\tvar Controlled = withStaticProperties(Sheet, components);\n\treturn withStaticProperties(Sheet, {\n\t\t...components,\n\t\tControlled\n\t});\n}\n\nexport { createSheet };"],"mappings":"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","ignoreList":[]}