@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
@@ -25,9 +25,12 @@ __export(useGestureHandlerPan_exports, {
25
25
  useGestureHandlerPan: () => useGestureHandlerPan
26
26
  });
27
27
  module.exports = __toCommonJS(useGestureHandlerPan_exports);
28
+ var import_constants = require("@hanzogui/constants");
28
29
  var import_react = require("react");
29
30
  var import_gestureState = require("./gestureState.cjs");
31
+ var import_keyboardAvoidance = require("./keyboardAvoidance.cjs");
30
32
  const AT_TOP_THRESHOLD = 5;
33
+ const SCROLL_HANDOFF_THRESHOLD = 160;
31
34
  function useGestureHandlerPan(config) {
32
35
  const {
33
36
  positions,
@@ -46,6 +49,16 @@ function useGestureHandlerPan(config) {
46
49
  } = config;
47
50
  const gestureHandlerEnabled = (0, import_gestureState.isGestureHandlerEnabled)();
48
51
  const panGestureRef = (0, import_react.useRef)(null);
52
+ const releaseConfigRef = (0, import_react.useRef)({
53
+ dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
54
+ snapPointsMode: config.snapPointsMode ?? "percent",
55
+ isKeyboardVisible: config.isKeyboardVisible === true
56
+ });
57
+ releaseConfigRef.current = {
58
+ dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
59
+ snapPointsMode: config.snapPointsMode ?? "percent",
60
+ isKeyboardVisible: config.isKeyboardVisible === true
61
+ };
49
62
  const gestureStateRef = (0, import_react.useRef)({
50
63
  startY: 0,
51
64
  // track last translation when pan was active (for position calculation after handoff)
@@ -60,16 +73,43 @@ function useGestureHandlerPan(config) {
60
73
  // causing positions to revert. Frozen positions ensure stable snap calculation.
61
74
  frozenPositions: [],
62
75
  frozenMinY: 0,
76
+ frozenIsKeyboardVisible: false,
63
77
  // whether pan gesture actually started (vs just a tap in onBegin)
64
- panStarted: false
78
+ panStarted: false,
79
+ startedBelowTop: false,
80
+ upwardDragAfterTop: 0,
81
+ scrollUnlockedAfterTop: false,
82
+ keepScrollLockedAfterEnd: false
65
83
  });
84
+ const unlockScrollTimer = (0, import_react.useRef)(null);
85
+ (0, import_react.useEffect)(() => {
86
+ return () => {
87
+ if (unlockScrollTimer.current) {
88
+ clearTimeout(unlockScrollTimer.current);
89
+ unlockScrollTimer.current = null;
90
+ }
91
+ };
92
+ }, []);
66
93
  const onStart = (0, import_react.useCallback)(() => {
67
94
  stopSpring();
68
95
  }, [stopSpring]);
69
- const onEnd = (0, import_react.useCallback)((closestPoint, animationOverride) => {
96
+ const onEnd = (0, import_react.useCallback)((closestPoint, animationOverride, keepScrollLocked = false) => {
97
+ if (unlockScrollTimer.current) {
98
+ clearTimeout(unlockScrollTimer.current);
99
+ unlockScrollTimer.current = null;
100
+ }
70
101
  setIsDragging(false);
71
102
  scrollBridge.setParentDragging(false);
72
- scrollBridge.setScrollEnabled?.(true);
103
+ scrollBridge.lockScrollAtTop = false;
104
+ if (keepScrollLocked) {
105
+ scrollBridge.setScrollEnabled?.(false, 0);
106
+ unlockScrollTimer.current = setTimeout(() => {
107
+ unlockScrollTimer.current = null;
108
+ scrollBridge.setScrollEnabled?.(true);
109
+ }, 160);
110
+ } else {
111
+ scrollBridge.setScrollEnabled?.(true);
112
+ }
73
113
  setPosition(closestPoint);
74
114
  animateTo(closestPoint, animationOverride);
75
115
  }, [setIsDragging, scrollBridge, setPosition, animateTo]);
@@ -100,6 +140,16 @@ function useGestureHandlerPan(config) {
100
140
  gs.scrollEngaged = currentScrollY > 0;
101
141
  gs.frozenPositions = [...positions];
102
142
  gs.frozenMinY = minY;
143
+ gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible;
144
+ gs.startedBelowTop = !atTop;
145
+ gs.upwardDragAfterTop = 0;
146
+ gs.scrollUnlockedAfterTop = false;
147
+ gs.keepScrollLockedAfterEnd = false;
148
+ scrollBridge.lockScrollAtTop = false;
149
+ if (unlockScrollTimer.current) {
150
+ clearTimeout(unlockScrollTimer.current);
151
+ unlockScrollTimer.current = null;
152
+ }
103
153
  if (!atTop) {
104
154
  scrollBridge.setScrollEnabled?.(false, 0);
105
155
  }
@@ -141,13 +191,24 @@ function useGestureHandlerPan(config) {
141
191
  }
142
192
  } else {
143
193
  if (hasScrollableContent) {
144
- panHandles = false;
194
+ if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
195
+ gs.upwardDragAfterTop += Math.max(0, -deltaY);
196
+ if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
197
+ gs.scrollUnlockedAfterTop = true;
198
+ panHandles = false;
199
+ } else {
200
+ panHandles = true;
201
+ }
202
+ } else {
203
+ panHandles = false;
204
+ }
145
205
  } else {
146
206
  panHandles = true;
147
207
  }
148
208
  }
149
209
  }
150
210
  if (panHandles) {
211
+ scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
151
212
  const lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
152
213
  scrollBridge.setScrollEnabled?.(false, lockTo);
153
214
  gs.accumulatedOffset += deltaY;
@@ -156,35 +217,42 @@ function useGestureHandlerPan(config) {
156
217
  setAnimatedPosition(newPosition);
157
218
  scrollBridge.setParentDragging(newPosition > minY);
158
219
  } else {
220
+ scrollBridge.lockScrollAtTop = false;
159
221
  scrollBridge.setScrollEnabled?.(true);
222
+ scrollBridge.setParentDragging(false);
160
223
  }
161
224
  }).onEnd(event => {
162
225
  const {
163
226
  velocityY
164
227
  } = event;
165
228
  const currentPos = gs.startY + gs.accumulatedOffset;
166
- scrollBridge.scrollLockY = void 0;
229
+ const keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
230
+ scrollBridge.lockScrollAtTop = false;
231
+ scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : void 0;
232
+ gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
167
233
  const snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
168
234
  const snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
169
235
  if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
170
- onEnd(0);
236
+ onEnd(0, void 0, keepScrollLockedAfterEnd);
171
237
  return;
172
238
  }
173
239
  const velocity = velocityY / 1e3;
174
240
  const projectedEnd = currentPos + frameSize * velocity * 0.2;
175
- let closestPoint = 0;
176
- let minDist = Number.POSITIVE_INFINITY;
177
- for (let i = 0; i < snapPositions.length; i++) {
178
- const pos = snapPositions[i];
179
- const dist = Math.abs(projectedEnd - pos);
180
- if (dist < minDist) {
181
- minDist = dist;
182
- closestPoint = i;
183
- }
184
- }
185
- onEnd(closestPoint);
241
+ const releaseConfig = releaseConfigRef.current;
242
+ const closestPoint = (0, import_keyboardAvoidance.getSheetReleasePosition)({
243
+ positions: snapPositions,
244
+ projectedEnd,
245
+ currentPosition: currentPos,
246
+ frameSize,
247
+ dismissOnSnapToBottom: releaseConfig.dismissOnSnapToBottom,
248
+ snapPointsMode: releaseConfig.snapPointsMode,
249
+ isKeyboardVisible: gs.frozenIsKeyboardVisible,
250
+ isWeb: import_constants.isWeb
251
+ });
252
+ onEnd(closestPoint, void 0, keepScrollLockedAfterEnd);
186
253
  }).onFinalize(() => {
187
- scrollBridge.scrollLockY = void 0;
254
+ scrollBridge.lockScrollAtTop = false;
255
+ scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : void 0;
188
256
  if (gs.panStarted) {
189
257
  setIsDragging(false);
190
258
  } else {
@@ -27,9 +27,12 @@ __export(useGestureHandlerPan_exports, {
27
27
  useGestureHandlerPan: () => useGestureHandlerPan
28
28
  });
29
29
  module.exports = __toCommonJS(useGestureHandlerPan_exports);
30
+ var import_constants = require("@hanzogui/constants");
30
31
  var import_react = require("react");
31
32
  var import_gestureState = require("./gestureState.native.js");
33
+ var import_keyboardAvoidance = require("./keyboardAvoidance.native.js");
32
34
  var AT_TOP_THRESHOLD = 5;
35
+ var SCROLL_HANDOFF_THRESHOLD = 160;
33
36
  function useGestureHandlerPan(config) {
34
37
  var {
35
38
  positions,
@@ -48,6 +51,18 @@ function useGestureHandlerPan(config) {
48
51
  } = config;
49
52
  var gestureHandlerEnabled = (0, import_gestureState.isGestureHandlerEnabled)();
50
53
  var panGestureRef = (0, import_react.useRef)(null);
54
+ var _config_snapPointsMode;
55
+ var releaseConfigRef = (0, import_react.useRef)({
56
+ dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
57
+ snapPointsMode: (_config_snapPointsMode = config.snapPointsMode) !== null && _config_snapPointsMode !== void 0 ? _config_snapPointsMode : "percent",
58
+ isKeyboardVisible: config.isKeyboardVisible === true
59
+ });
60
+ var _config_snapPointsMode1;
61
+ releaseConfigRef.current = {
62
+ dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
63
+ snapPointsMode: (_config_snapPointsMode1 = config.snapPointsMode) !== null && _config_snapPointsMode1 !== void 0 ? _config_snapPointsMode1 : "percent",
64
+ isKeyboardVisible: config.isKeyboardVisible === true
65
+ };
51
66
  var gestureStateRef = (0, import_react.useRef)({
52
67
  startY: 0,
53
68
  // track last translation when pan was active (for position calculation after handoff)
@@ -62,17 +77,47 @@ function useGestureHandlerPan(config) {
62
77
  // causing positions to revert. Frozen positions ensure stable snap calculation.
63
78
  frozenPositions: [],
64
79
  frozenMinY: 0,
80
+ frozenIsKeyboardVisible: false,
65
81
  // whether pan gesture actually started (vs just a tap in onBegin)
66
- panStarted: false
82
+ panStarted: false,
83
+ startedBelowTop: false,
84
+ upwardDragAfterTop: 0,
85
+ scrollUnlockedAfterTop: false,
86
+ keepScrollLockedAfterEnd: false
67
87
  });
88
+ var unlockScrollTimer = (0, import_react.useRef)(null);
89
+ (0, import_react.useEffect)(function () {
90
+ return function () {
91
+ if (unlockScrollTimer.current) {
92
+ clearTimeout(unlockScrollTimer.current);
93
+ unlockScrollTimer.current = null;
94
+ }
95
+ };
96
+ }, []);
68
97
  var onStart = (0, import_react.useCallback)(function () {
69
98
  stopSpring();
70
99
  }, [stopSpring]);
71
100
  var onEnd = (0, import_react.useCallback)(function (closestPoint, animationOverride) {
72
- var _scrollBridge_setScrollEnabled;
101
+ var keepScrollLocked = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
102
+ if (unlockScrollTimer.current) {
103
+ clearTimeout(unlockScrollTimer.current);
104
+ unlockScrollTimer.current = null;
105
+ }
73
106
  setIsDragging(false);
74
107
  scrollBridge.setParentDragging(false);
75
- (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, true);
108
+ scrollBridge.lockScrollAtTop = false;
109
+ if (keepScrollLocked) {
110
+ var _scrollBridge_setScrollEnabled;
111
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, 0);
112
+ unlockScrollTimer.current = setTimeout(function () {
113
+ var _scrollBridge_setScrollEnabled2;
114
+ unlockScrollTimer.current = null;
115
+ (_scrollBridge_setScrollEnabled2 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled2 === void 0 ? void 0 : _scrollBridge_setScrollEnabled2.call(scrollBridge, true);
116
+ }, 160);
117
+ } else {
118
+ var _scrollBridge_setScrollEnabled1;
119
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 ? void 0 : _scrollBridge_setScrollEnabled1.call(scrollBridge, true);
120
+ }
76
121
  setPosition(closestPoint);
77
122
  animateTo(closestPoint, animationOverride);
78
123
  }, [setIsDragging, scrollBridge, setPosition, animateTo]);
@@ -103,6 +148,16 @@ function useGestureHandlerPan(config) {
103
148
  gs.scrollEngaged = currentScrollY > 0;
104
149
  gs.frozenPositions = [...positions];
105
150
  gs.frozenMinY = minY;
151
+ gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible;
152
+ gs.startedBelowTop = !atTop;
153
+ gs.upwardDragAfterTop = 0;
154
+ gs.scrollUnlockedAfterTop = false;
155
+ gs.keepScrollLockedAfterEnd = false;
156
+ scrollBridge.lockScrollAtTop = false;
157
+ if (unlockScrollTimer.current) {
158
+ clearTimeout(unlockScrollTimer.current);
159
+ unlockScrollTimer.current = null;
160
+ }
106
161
  if (!atTop) {
107
162
  var _scrollBridge_setScrollEnabled;
108
163
  (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, 0);
@@ -145,7 +200,17 @@ function useGestureHandlerPan(config) {
145
200
  }
146
201
  } else {
147
202
  if (hasScrollableContent) {
148
- panHandles = false;
203
+ if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
204
+ gs.upwardDragAfterTop += Math.max(0, -deltaY);
205
+ if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
206
+ gs.scrollUnlockedAfterTop = true;
207
+ panHandles = false;
208
+ } else {
209
+ panHandles = true;
210
+ }
211
+ } else {
212
+ panHandles = false;
213
+ }
149
214
  } else {
150
215
  panHandles = true;
151
216
  }
@@ -153,6 +218,7 @@ function useGestureHandlerPan(config) {
153
218
  }
154
219
  if (panHandles) {
155
220
  var _scrollBridge_setScrollEnabled;
221
+ scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
156
222
  var lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
157
223
  (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, lockTo);
158
224
  gs.accumulatedOffset += deltaY;
@@ -162,35 +228,42 @@ function useGestureHandlerPan(config) {
162
228
  scrollBridge.setParentDragging(newPosition > minY);
163
229
  } else {
164
230
  var _scrollBridge_setScrollEnabled1;
231
+ scrollBridge.lockScrollAtTop = false;
165
232
  (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 ? void 0 : _scrollBridge_setScrollEnabled1.call(scrollBridge, true);
233
+ scrollBridge.setParentDragging(false);
166
234
  }
167
235
  }).onEnd(function (event) {
168
236
  var {
169
237
  velocityY
170
238
  } = event;
171
239
  var currentPos = gs.startY + gs.accumulatedOffset;
172
- scrollBridge.scrollLockY = void 0;
240
+ var keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
241
+ scrollBridge.lockScrollAtTop = false;
242
+ scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : void 0;
243
+ gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
173
244
  var snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
174
245
  var snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
175
246
  if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
176
- onEnd(0);
247
+ onEnd(0, void 0, keepScrollLockedAfterEnd);
177
248
  return;
178
249
  }
179
250
  var velocity = velocityY / 1e3;
180
251
  var projectedEnd = currentPos + frameSize * velocity * 0.2;
181
- var closestPoint = 0;
182
- var minDist = Number.POSITIVE_INFINITY;
183
- for (var i = 0; i < snapPositions.length; i++) {
184
- var pos = snapPositions[i];
185
- var dist = Math.abs(projectedEnd - pos);
186
- if (dist < minDist) {
187
- minDist = dist;
188
- closestPoint = i;
189
- }
190
- }
191
- onEnd(closestPoint);
252
+ var releaseConfig = releaseConfigRef.current;
253
+ var closestPoint = (0, import_keyboardAvoidance.getSheetReleasePosition)({
254
+ positions: snapPositions,
255
+ projectedEnd,
256
+ currentPosition: currentPos,
257
+ frameSize,
258
+ dismissOnSnapToBottom: releaseConfig.dismissOnSnapToBottom,
259
+ snapPointsMode: releaseConfig.snapPointsMode,
260
+ isKeyboardVisible: gs.frozenIsKeyboardVisible,
261
+ isWeb: import_constants.isWeb
262
+ });
263
+ onEnd(closestPoint, void 0, keepScrollLockedAfterEnd);
192
264
  }).onFinalize(function () {
193
- scrollBridge.scrollLockY = void 0;
265
+ scrollBridge.lockScrollAtTop = false;
266
+ scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : void 0;
194
267
  if (gs.panStarted) {
195
268
  setIsDragging(false);
196
269
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useGestureHandlerPan_exports","__export","useGestureHandlerPan","module","exports","import_react","require","import_gestureState","AT_TOP_THRESHOLD","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","isGestureHandlerEnabled","panGestureRef","useRef","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","panStarted","onStart","useCallback","onEnd","closestPoint","animationOverride","_scrollBridge_setScrollEnabled","setParentDragging","setScrollEnabled","call","panGesture","useMemo","Gesture","getGestureHandlerState","minY","gs","current","gesture","Pan","withRef","activeOffsetY","failOffsetX","shouldCancelWhenOutside","onBegin","pauseKeyboardHandler","pos","atTop","currentScrollY","y","initialPosition","onChange","event","translationY","isSwipingDown","deltaY","scrollY","currentPos","isCurrentlyAtTop","nodeIsScrolling","panHandles","hasScrollableContent","lockTo","newPosition","paneY","_scrollBridge_setScrollEnabled1","velocityY","scrollLockY","snapPositions","length","snapMinY","velocity","projectedEnd","minDist","Number","POSITIVE_INFINITY","i","dist","Math","abs","onFinalize","runOnJS","simultaneousWithExternalGesture"],"sources":["../../src/useGestureHandlerPan.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useGestureHandlerPan_exports","__export","useGestureHandlerPan","module","exports","import_constants","require","import_react","import_gestureState","import_keyboardAvoidance","AT_TOP_THRESHOLD","SCROLL_HANDOFF_THRESHOLD","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","isGestureHandlerEnabled","panGestureRef","useRef","_config_snapPointsMode","releaseConfigRef","dismissOnSnapToBottom","snapPointsMode","isKeyboardVisible","_config_snapPointsMode1","current","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","frozenIsKeyboardVisible","panStarted","startedBelowTop","upwardDragAfterTop","scrollUnlockedAfterTop","keepScrollLockedAfterEnd","unlockScrollTimer","useEffect","clearTimeout","onStart","useCallback","onEnd","closestPoint","animationOverride","keepScrollLocked","arguments","length","setParentDragging","lockScrollAtTop","_scrollBridge_setScrollEnabled","setScrollEnabled","call","setTimeout","_scrollBridge_setScrollEnabled2","_scrollBridge_setScrollEnabled1","panGesture","useMemo","Gesture","getGestureHandlerState","minY","gs","gesture","Pan","withRef","activeOffsetY","failOffsetX","shouldCancelWhenOutside","onBegin","pauseKeyboardHandler","pos","atTop","currentScrollY","y","initialPosition","onChange","event","translationY","isSwipingDown","deltaY","scrollY","currentPos","isCurrentlyAtTop","nodeIsScrolling","panHandles","hasScrollableContent","Math","max","lockTo","newPosition","paneY","velocityY","scrollLockY","snapPositions","snapMinY","velocity","projectedEnd","releaseConfig","getSheetReleasePosition","currentPosition","isWeb","onFinalize","runOnJS","simultaneousWithExternalGesture"],"sources":["../../src/useGestureHandlerPan.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -26,15 +26,77 @@ __export(useKeyboardControllerSheet_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(useKeyboardControllerSheet_exports);
28
28
  var import_react = require("react");
29
- const noop = () => {};
30
- function useKeyboardControllerSheet(_options) {
29
+ var import_constants = require("@hanzogui/constants");
30
+ var import_webViewport = require("./webViewport.cjs");
31
+ function useKeyboardControllerSheet(options) {
32
+ const {
33
+ enabled
34
+ } = options;
35
+ const [keyboardHeight, setKeyboardHeight] = (0, import_react.useState)(() => import_constants.isWeb && enabled && typeof window !== "undefined" && window.visualViewport ? (() => {
36
+ const resizeHeight = (0, import_webViewport.getWebKeyboardResizeHeight)();
37
+ return resizeHeight >= import_webViewport.MIN_KEYBOARD_HEIGHT && (0, import_webViewport.isEditableElement)(document.activeElement) ? (0, import_webViewport.getWebKeyboardBottomInset)() : 0;
38
+ })() : 0);
39
+ const [isKeyboardVisible, setIsKeyboardVisible] = (0, import_react.useState)(() => keyboardHeight > 0);
31
40
  const pauseKeyboardHandler = (0, import_react.useRef)(false);
41
+ const pendingHide = (0, import_react.useRef)(false);
42
+ const isVisibleRef = (0, import_react.useRef)(false);
43
+ isVisibleRef.current = isKeyboardVisible;
44
+ const dismissKeyboard = (0, import_react.useCallback)(() => {
45
+ if (typeof document === "undefined") return;
46
+ const active = document.activeElement;
47
+ if ((0, import_webViewport.isEditableElement)(active)) {
48
+ active?.blur?.();
49
+ }
50
+ }, []);
51
+ const flushPendingHide = (0, import_react.useCallback)(() => {
52
+ if (pendingHide.current) {
53
+ pendingHide.current = false;
54
+ setIsKeyboardVisible(false);
55
+ setKeyboardHeight(0);
56
+ }
57
+ }, []);
58
+ (0, import_react.useEffect)(() => {
59
+ if (!import_constants.isWeb || !enabled) return;
60
+ if (typeof window === "undefined") return;
61
+ const vv = window.visualViewport;
62
+ if (!vv) return;
63
+ const update = () => {
64
+ const resizeHeight = (0, import_webViewport.getWebKeyboardResizeHeight)();
65
+ const height = (0, import_webViewport.getWebKeyboardBottomInset)();
66
+ const tall = resizeHeight >= import_webViewport.MIN_KEYBOARD_HEIGHT;
67
+ const editableFocused = (0, import_webViewport.isEditableElement)(document.activeElement);
68
+ const visible = tall && (editableFocused || isVisibleRef.current);
69
+ if (!visible) {
70
+ if (pauseKeyboardHandler.current && isVisibleRef.current) {
71
+ pendingHide.current = true;
72
+ return;
73
+ }
74
+ setIsKeyboardVisible(false);
75
+ setKeyboardHeight(0);
76
+ return;
77
+ }
78
+ pendingHide.current = false;
79
+ setIsKeyboardVisible(true);
80
+ setKeyboardHeight(prev => prev === height ? prev : height);
81
+ };
82
+ vv.addEventListener("resize", update);
83
+ vv.addEventListener("scroll", update);
84
+ window.addEventListener("focusin", update);
85
+ window.addEventListener("focusout", update);
86
+ update();
87
+ return () => {
88
+ vv.removeEventListener("resize", update);
89
+ vv.removeEventListener("scroll", update);
90
+ window.removeEventListener("focusin", update);
91
+ window.removeEventListener("focusout", update);
92
+ };
93
+ }, [enabled]);
32
94
  return {
33
95
  keyboardControllerEnabled: false,
34
- keyboardHeight: 0,
35
- isKeyboardVisible: false,
36
- dismissKeyboard: noop,
96
+ keyboardHeight,
97
+ isKeyboardVisible,
98
+ dismissKeyboard,
37
99
  pauseKeyboardHandler,
38
- flushPendingHide: noop
100
+ flushPendingHide
39
101
  };
40
102
  }
@@ -0,0 +1,44 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
34
+ var useSafeAreaInsets_exports = {};
35
+ __export(useSafeAreaInsets_exports, {
36
+ SafeAreaInsetsContext: () => SafeAreaInsetsContext,
37
+ useSafeAreaInsets: () => useSafeAreaInsets
38
+ });
39
+ module.exports = __toCommonJS(useSafeAreaInsets_exports);
40
+ var React = __toESM(require("react"), 1);
41
+ const SafeAreaInsetsContext = React.createContext(null);
42
+ function useSafeAreaInsets() {
43
+ return null;
44
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
+ value: true
35
+ }), mod);
36
+ var useSafeAreaInsets_native_exports = {};
37
+ __export(useSafeAreaInsets_native_exports, {
38
+ SafeAreaInsetsContext: () => SafeAreaInsetsContext,
39
+ useSafeAreaInsets: () => useSafeAreaInsets
40
+ });
41
+ module.exports = __toCommonJS(useSafeAreaInsets_native_exports);
42
+ var React = __toESM(require("react"), 1);
43
+ var import_react_native_safe_area_context = require("react-native-safe-area-context");
44
+ var SafeAreaInsetsContext = import_react_native_safe_area_context.SafeAreaInsetsContext;
45
+ function useSafeAreaInsets() {
46
+ return React.useContext(SafeAreaInsetsContext);
47
+ }
48
+ //# sourceMappingURL=useSafeAreaInsets.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSafeAreaInsets_native_exports","__export","SafeAreaInsetsContext","useSafeAreaInsets","module","exports","__toCommonJS","React","__toESM","require","import_react_native_safe_area_context","useContext"],"sources":["../../src/useSafeAreaInsets.native.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gCAAA;AAAAC,QAAA,CAAAD,gCAAA;EAAAE,qBAAA,EAAAA,CAAA,KAAAA,qBAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAN,gCAAA;AAAA,IAAAO,KAAA,GAAuBC,OAAA,CAAAC,OAAA;AACvB,IAAAC,qCAAA,GAAiED,OAAA;AAI1D,IAAIP,qBAAA,GAAwBQ,qCAAA,CAAAR,qBAAA;AAexB,SAASC,kBAAA,EAAoB;EACpC,OAAOI,KAAA,CAAMI,UAAA,CAAWT,qBAAqB;AACjD","ignoreList":[]}
@@ -108,7 +108,7 @@ function useSheetProviderProps(props, state, options = {}) {
108
108
  animationDriver
109
109
  } = (0, import_core.useConfiguration)();
110
110
  if (!animationDriver) {
111
- throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in gui.config.ts");
111
+ throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in hanzogui.config.ts");
112
112
  }
113
113
  const scrollBridge = (0, import_use_constant.useConstant)(() => {
114
114
  const parentDragListeners = /* @__PURE__ */new Set();
@@ -119,7 +119,7 @@ function useSheetProviderProps(props, state) {
119
119
  animationDriver
120
120
  } = (0, import_core.useConfiguration)();
121
121
  if (!animationDriver) {
122
- throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in gui.config.ts");
122
+ throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in hanzogui.config.ts");
123
123
  }
124
124
  var scrollBridge = (0, import_use_constant.useConstant)(function () {
125
125
  var parentDragListeners = /* @__PURE__ */new Set();