@hanzogui/sheet 7.0.0 → 7.3.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 (332) hide show
  1. package/LICENSE +40 -19
  2. package/dist/cjs/GestureDetectorWrapper.cjs +54 -0
  3. package/dist/cjs/GestureDetectorWrapper.native.js +58 -0
  4. package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -0
  5. package/dist/cjs/GestureSheetContext.cjs +54 -0
  6. package/dist/cjs/GestureSheetContext.native.js +58 -0
  7. package/dist/cjs/GestureSheetContext.native.js.map +1 -0
  8. package/dist/cjs/Sheet.cjs +119 -0
  9. package/dist/cjs/Sheet.native.js +122 -0
  10. package/dist/cjs/Sheet.native.js.map +1 -0
  11. package/dist/cjs/SheetContext.cjs +34 -0
  12. package/dist/cjs/SheetContext.native.js +37 -0
  13. package/dist/cjs/SheetContext.native.js.map +1 -0
  14. package/dist/cjs/SheetController.cjs +73 -0
  15. package/dist/cjs/SheetController.native.js +79 -0
  16. package/dist/cjs/SheetController.native.js.map +1 -0
  17. package/dist/cjs/SheetImplementationCustom.cjs +589 -0
  18. package/dist/cjs/SheetImplementationCustom.native.js +615 -0
  19. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -0
  20. package/dist/cjs/SheetScrollView.cjs +216 -0
  21. package/dist/cjs/SheetScrollView.native.js +223 -0
  22. package/dist/cjs/SheetScrollView.native.js.map +1 -0
  23. package/dist/cjs/constants.cjs +34 -0
  24. package/dist/cjs/constants.native.js +37 -0
  25. package/dist/cjs/constants.native.js.map +1 -0
  26. package/dist/cjs/contexts.cjs +44 -0
  27. package/dist/cjs/contexts.native.js +47 -0
  28. package/dist/cjs/contexts.native.js.map +1 -0
  29. package/dist/cjs/controller.cjs +31 -0
  30. package/dist/cjs/controller.native.js +34 -0
  31. package/dist/cjs/controller.native.js.map +1 -0
  32. package/dist/cjs/createSheet.cjs +190 -0
  33. package/dist/cjs/createSheet.native.js +200 -0
  34. package/dist/cjs/createSheet.native.js.map +1 -0
  35. package/dist/cjs/gestureState.cjs +41 -0
  36. package/dist/cjs/gestureState.native.js +44 -0
  37. package/dist/cjs/gestureState.native.js.map +1 -0
  38. package/dist/cjs/helpers.cjs +35 -0
  39. package/dist/cjs/helpers.native.js +39 -0
  40. package/dist/cjs/helpers.native.js.map +1 -0
  41. package/dist/cjs/index.cjs +30 -0
  42. package/dist/cjs/index.native.js +33 -0
  43. package/dist/cjs/index.native.js.map +1 -0
  44. package/dist/cjs/nativeSheet.cjs +96 -0
  45. package/dist/cjs/nativeSheet.native.js +106 -0
  46. package/dist/cjs/nativeSheet.native.js.map +1 -0
  47. package/dist/cjs/setupGestureHandler.cjs +52 -0
  48. package/dist/cjs/setupGestureHandler.native.js +55 -0
  49. package/dist/cjs/setupGestureHandler.native.js.map +1 -0
  50. package/dist/cjs/types.cjs +18 -0
  51. package/dist/cjs/types.native.js +21 -0
  52. package/dist/cjs/types.native.js.map +1 -0
  53. package/dist/cjs/useGestureHandlerPan.cjs +206 -0
  54. package/dist/cjs/useGestureHandlerPan.native.js +213 -0
  55. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -0
  56. package/dist/cjs/useKeyboardControllerSheet.cjs +40 -0
  57. package/dist/cjs/useKeyboardControllerSheet.native.js +132 -0
  58. package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -0
  59. package/dist/cjs/useSheet.cjs +29 -0
  60. package/dist/cjs/useSheet.native.js +34 -0
  61. package/dist/cjs/useSheet.native.js.map +1 -0
  62. package/dist/cjs/useSheetController.cjs +52 -0
  63. package/dist/cjs/useSheetController.native.js +55 -0
  64. package/dist/cjs/useSheetController.native.js.map +1 -0
  65. package/dist/cjs/useSheetOffscreenSize.cjs +63 -0
  66. package/dist/cjs/useSheetOffscreenSize.native.js +70 -0
  67. package/dist/cjs/useSheetOffscreenSize.native.js.map +1 -0
  68. package/dist/cjs/useSheetOpenState.cjs +52 -0
  69. package/dist/cjs/useSheetOpenState.native.js +58 -0
  70. package/dist/cjs/useSheetOpenState.native.js.map +1 -0
  71. package/dist/cjs/useSheetProviderProps.cjs +181 -0
  72. package/dist/cjs/useSheetProviderProps.native.js +196 -0
  73. package/dist/cjs/useSheetProviderProps.native.js.map +1 -0
  74. package/dist/cjs/useSheetScrollViewGestures.cjs +166 -0
  75. package/dist/cjs/useSheetScrollViewGestures.native.js +159 -0
  76. package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -0
  77. package/dist/esm/GestureDetectorWrapper.mjs +29 -0
  78. package/dist/esm/GestureDetectorWrapper.mjs.map +1 -0
  79. package/dist/esm/GestureDetectorWrapper.native.js +30 -0
  80. package/dist/esm/GestureDetectorWrapper.native.js.map +1 -0
  81. package/dist/esm/GestureSheetContext.mjs +28 -0
  82. package/dist/esm/GestureSheetContext.mjs.map +1 -0
  83. package/dist/esm/GestureSheetContext.native.js +29 -0
  84. package/dist/esm/GestureSheetContext.native.js.map +1 -0
  85. package/dist/esm/Sheet.mjs +89 -0
  86. package/dist/esm/Sheet.mjs.map +1 -0
  87. package/dist/esm/Sheet.native.js +89 -0
  88. package/dist/esm/Sheet.native.js.map +1 -0
  89. package/dist/esm/SheetContext.mjs +6 -0
  90. package/dist/esm/SheetContext.mjs.map +1 -0
  91. package/dist/esm/SheetContext.native.js +6 -0
  92. package/dist/esm/SheetContext.native.js.map +1 -0
  93. package/dist/esm/SheetController.mjs +37 -0
  94. package/dist/esm/SheetController.mjs.map +1 -0
  95. package/dist/esm/SheetController.native.js +40 -0
  96. package/dist/esm/SheetController.native.js.map +1 -0
  97. package/dist/esm/SheetImplementationCustom.mjs +552 -0
  98. package/dist/esm/SheetImplementationCustom.mjs.map +1 -0
  99. package/dist/esm/SheetImplementationCustom.native.js +572 -0
  100. package/dist/esm/SheetImplementationCustom.native.js.map +1 -0
  101. package/dist/esm/SheetScrollView.mjs +180 -0
  102. package/dist/esm/SheetScrollView.mjs.map +1 -0
  103. package/dist/esm/SheetScrollView.native.js +184 -0
  104. package/dist/esm/SheetScrollView.native.js.map +1 -0
  105. package/dist/esm/constants.mjs +6 -0
  106. package/dist/esm/constants.mjs.map +1 -0
  107. package/dist/esm/constants.native.js +6 -0
  108. package/dist/esm/constants.native.js.map +1 -0
  109. package/dist/esm/contexts.mjs +7 -0
  110. package/dist/esm/contexts.mjs.map +1 -0
  111. package/dist/esm/contexts.native.js +7 -0
  112. package/dist/esm/contexts.native.js.map +1 -0
  113. package/dist/esm/controller.mjs +4 -0
  114. package/dist/esm/controller.mjs.map +1 -0
  115. package/dist/esm/controller.native.js +4 -0
  116. package/dist/esm/controller.native.js.map +1 -0
  117. package/dist/esm/createSheet.mjs +165 -0
  118. package/dist/esm/createSheet.mjs.map +1 -0
  119. package/dist/esm/createSheet.native.js +172 -0
  120. package/dist/esm/createSheet.native.js.map +1 -0
  121. package/dist/esm/gestureState.mjs +13 -0
  122. package/dist/esm/gestureState.mjs.map +1 -0
  123. package/dist/esm/gestureState.native.js +13 -0
  124. package/dist/esm/gestureState.native.js.map +1 -0
  125. package/dist/esm/helpers.mjs +10 -0
  126. package/dist/esm/helpers.mjs.map +1 -0
  127. package/dist/esm/helpers.native.js +11 -0
  128. package/dist/esm/helpers.native.js.map +1 -0
  129. package/dist/esm/index.js +12 -0
  130. package/dist/esm/index.js.map +1 -0
  131. package/dist/esm/index.mjs +12 -0
  132. package/dist/esm/index.mjs.map +1 -0
  133. package/dist/esm/index.native.js +12 -0
  134. package/dist/esm/index.native.js.map +1 -0
  135. package/dist/esm/nativeSheet.mjs +70 -0
  136. package/dist/esm/nativeSheet.mjs.map +1 -0
  137. package/dist/esm/nativeSheet.native.js +77 -0
  138. package/dist/esm/nativeSheet.native.js.map +1 -0
  139. package/dist/esm/setupGestureHandler.mjs +26 -0
  140. package/dist/esm/setupGestureHandler.mjs.map +1 -0
  141. package/dist/esm/setupGestureHandler.native.js +26 -0
  142. package/dist/esm/setupGestureHandler.native.js.map +1 -0
  143. package/dist/esm/types.mjs +2 -0
  144. package/dist/esm/types.mjs.map +1 -0
  145. package/dist/esm/types.native.js +2 -0
  146. package/dist/esm/types.native.js.map +1 -0
  147. package/dist/esm/useGestureHandlerPan.mjs +181 -0
  148. package/dist/esm/useGestureHandlerPan.mjs.map +1 -0
  149. package/dist/esm/useGestureHandlerPan.native.js +185 -0
  150. package/dist/esm/useGestureHandlerPan.native.js.map +1 -0
  151. package/dist/esm/useKeyboardControllerSheet.mjs +15 -0
  152. package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -0
  153. package/dist/esm/useKeyboardControllerSheet.native.js +104 -0
  154. package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -0
  155. package/dist/esm/useSheet.mjs +4 -0
  156. package/dist/esm/useSheet.mjs.map +1 -0
  157. package/dist/esm/useSheet.native.js +6 -0
  158. package/dist/esm/useSheet.native.js.map +1 -0
  159. package/dist/esm/useSheetController.mjs +15 -0
  160. package/dist/esm/useSheetController.mjs.map +1 -0
  161. package/dist/esm/useSheetController.native.js +15 -0
  162. package/dist/esm/useSheetController.native.js.map +1 -0
  163. package/dist/esm/useSheetOffscreenSize.mjs +38 -0
  164. package/dist/esm/useSheetOffscreenSize.mjs.map +1 -0
  165. package/dist/esm/useSheetOffscreenSize.native.js +42 -0
  166. package/dist/esm/useSheetOffscreenSize.native.js.map +1 -0
  167. package/dist/esm/useSheetOpenState.mjs +27 -0
  168. package/dist/esm/useSheetOpenState.mjs.map +1 -0
  169. package/dist/esm/useSheetOpenState.native.js +30 -0
  170. package/dist/esm/useSheetOpenState.native.js.map +1 -0
  171. package/dist/esm/useSheetProviderProps.mjs +145 -0
  172. package/dist/esm/useSheetProviderProps.mjs.map +1 -0
  173. package/dist/esm/useSheetProviderProps.native.js +157 -0
  174. package/dist/esm/useSheetProviderProps.native.js.map +1 -0
  175. package/dist/esm/useSheetScrollViewGestures.mjs +141 -0
  176. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -0
  177. package/dist/esm/useSheetScrollViewGestures.native.js +131 -0
  178. package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -0
  179. package/dist/jsx/GestureDetectorWrapper.mjs +29 -0
  180. package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -0
  181. package/dist/jsx/GestureDetectorWrapper.native.js +58 -0
  182. package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -0
  183. package/dist/jsx/GestureSheetContext.mjs +28 -0
  184. package/dist/jsx/GestureSheetContext.mjs.map +1 -0
  185. package/dist/jsx/GestureSheetContext.native.js +58 -0
  186. package/dist/jsx/GestureSheetContext.native.js.map +1 -0
  187. package/dist/jsx/Sheet.mjs +89 -0
  188. package/dist/jsx/Sheet.mjs.map +1 -0
  189. package/dist/jsx/Sheet.native.js +122 -0
  190. package/dist/jsx/Sheet.native.js.map +1 -0
  191. package/dist/jsx/SheetContext.mjs +6 -0
  192. package/dist/jsx/SheetContext.mjs.map +1 -0
  193. package/dist/jsx/SheetContext.native.js +37 -0
  194. package/dist/jsx/SheetContext.native.js.map +1 -0
  195. package/dist/jsx/SheetController.mjs +37 -0
  196. package/dist/jsx/SheetController.mjs.map +1 -0
  197. package/dist/jsx/SheetController.native.js +79 -0
  198. package/dist/jsx/SheetController.native.js.map +1 -0
  199. package/dist/jsx/SheetImplementationCustom.mjs +552 -0
  200. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -0
  201. package/dist/jsx/SheetImplementationCustom.native.js +615 -0
  202. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -0
  203. package/dist/jsx/SheetScrollView.mjs +180 -0
  204. package/dist/jsx/SheetScrollView.mjs.map +1 -0
  205. package/dist/jsx/SheetScrollView.native.js +223 -0
  206. package/dist/jsx/SheetScrollView.native.js.map +1 -0
  207. package/dist/jsx/constants.mjs +6 -0
  208. package/dist/jsx/constants.mjs.map +1 -0
  209. package/dist/jsx/constants.native.js +37 -0
  210. package/dist/jsx/constants.native.js.map +1 -0
  211. package/dist/jsx/contexts.mjs +7 -0
  212. package/dist/jsx/contexts.mjs.map +1 -0
  213. package/dist/jsx/contexts.native.js +47 -0
  214. package/dist/jsx/contexts.native.js.map +1 -0
  215. package/dist/jsx/controller.mjs +4 -0
  216. package/dist/jsx/controller.mjs.map +1 -0
  217. package/dist/jsx/controller.native.js +34 -0
  218. package/dist/jsx/controller.native.js.map +1 -0
  219. package/dist/jsx/createSheet.mjs +165 -0
  220. package/dist/jsx/createSheet.mjs.map +1 -0
  221. package/dist/jsx/createSheet.native.js +200 -0
  222. package/dist/jsx/createSheet.native.js.map +1 -0
  223. package/dist/jsx/gestureState.mjs +13 -0
  224. package/dist/jsx/gestureState.mjs.map +1 -0
  225. package/dist/jsx/gestureState.native.js +44 -0
  226. package/dist/jsx/gestureState.native.js.map +1 -0
  227. package/dist/jsx/helpers.mjs +10 -0
  228. package/dist/jsx/helpers.mjs.map +1 -0
  229. package/dist/jsx/helpers.native.js +39 -0
  230. package/dist/jsx/helpers.native.js.map +1 -0
  231. package/dist/jsx/index.js +12 -0
  232. package/dist/jsx/index.js.map +1 -0
  233. package/dist/jsx/index.mjs +12 -0
  234. package/dist/jsx/index.mjs.map +1 -0
  235. package/dist/jsx/index.native.js +33 -0
  236. package/dist/jsx/index.native.js.map +1 -0
  237. package/dist/jsx/nativeSheet.mjs +70 -0
  238. package/dist/jsx/nativeSheet.mjs.map +1 -0
  239. package/dist/jsx/nativeSheet.native.js +106 -0
  240. package/dist/jsx/nativeSheet.native.js.map +1 -0
  241. package/dist/jsx/setupGestureHandler.mjs +26 -0
  242. package/dist/jsx/setupGestureHandler.mjs.map +1 -0
  243. package/dist/jsx/setupGestureHandler.native.js +55 -0
  244. package/dist/jsx/setupGestureHandler.native.js.map +1 -0
  245. package/dist/jsx/types.mjs +2 -0
  246. package/dist/jsx/types.mjs.map +1 -0
  247. package/dist/jsx/types.native.js +21 -0
  248. package/dist/jsx/types.native.js.map +1 -0
  249. package/dist/jsx/useGestureHandlerPan.mjs +181 -0
  250. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -0
  251. package/dist/jsx/useGestureHandlerPan.native.js +213 -0
  252. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -0
  253. package/dist/jsx/useKeyboardControllerSheet.mjs +15 -0
  254. package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -0
  255. package/dist/jsx/useKeyboardControllerSheet.native.js +132 -0
  256. package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -0
  257. package/dist/jsx/useSheet.mjs +4 -0
  258. package/dist/jsx/useSheet.mjs.map +1 -0
  259. package/dist/jsx/useSheet.native.js +34 -0
  260. package/dist/jsx/useSheet.native.js.map +1 -0
  261. package/dist/jsx/useSheetController.mjs +15 -0
  262. package/dist/jsx/useSheetController.mjs.map +1 -0
  263. package/dist/jsx/useSheetController.native.js +55 -0
  264. package/dist/jsx/useSheetController.native.js.map +1 -0
  265. package/dist/jsx/useSheetOffscreenSize.mjs +38 -0
  266. package/dist/jsx/useSheetOffscreenSize.mjs.map +1 -0
  267. package/dist/jsx/useSheetOffscreenSize.native.js +70 -0
  268. package/dist/jsx/useSheetOffscreenSize.native.js.map +1 -0
  269. package/dist/jsx/useSheetOpenState.mjs +27 -0
  270. package/dist/jsx/useSheetOpenState.mjs.map +1 -0
  271. package/dist/jsx/useSheetOpenState.native.js +58 -0
  272. package/dist/jsx/useSheetOpenState.native.js.map +1 -0
  273. package/dist/jsx/useSheetProviderProps.mjs +145 -0
  274. package/dist/jsx/useSheetProviderProps.mjs.map +1 -0
  275. package/dist/jsx/useSheetProviderProps.native.js +196 -0
  276. package/dist/jsx/useSheetProviderProps.native.js.map +1 -0
  277. package/dist/jsx/useSheetScrollViewGestures.mjs +141 -0
  278. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -0
  279. package/dist/jsx/useSheetScrollViewGestures.native.js +159 -0
  280. package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -0
  281. package/package.json +36 -26
  282. package/src/Sheet.tsx +3 -3
  283. package/src/SheetImplementationCustom.tsx +5 -5
  284. package/src/createSheet.tsx +9 -9
  285. package/src/setupGestureHandler.ts +2 -2
  286. package/src/useSheetProviderProps.tsx +4 -4
  287. package/types/GestureDetectorWrapper.d.ts +1 -1
  288. package/types/GestureDetectorWrapper.d.ts.map +1 -0
  289. package/types/GestureSheetContext.d.ts +1 -1
  290. package/types/GestureSheetContext.d.ts.map +1 -0
  291. package/types/Sheet.d.ts +15 -15
  292. package/types/Sheet.d.ts.map +1 -0
  293. package/types/SheetContext.d.ts +4 -4
  294. package/types/SheetContext.d.ts.map +1 -0
  295. package/types/SheetController.d.ts +2 -1
  296. package/types/SheetController.d.ts.map +1 -0
  297. package/types/SheetImplementationCustom.d.ts.map +1 -0
  298. package/types/SheetScrollView.d.ts +1 -1
  299. package/types/SheetScrollView.d.ts.map +1 -0
  300. package/types/constants.d.ts.map +1 -0
  301. package/types/contexts.d.ts.map +1 -0
  302. package/types/controller.d.ts.map +1 -0
  303. package/types/createSheet.d.ts +11 -11
  304. package/types/createSheet.d.ts.map +1 -0
  305. package/types/gestureState.d.ts.map +1 -0
  306. package/types/helpers.d.ts.map +1 -0
  307. package/types/index.d.ts.map +1 -0
  308. package/types/nativeSheet.d.ts.map +1 -0
  309. package/types/setupGestureHandler.d.ts.map +1 -0
  310. package/types/types.d.ts.map +1 -0
  311. package/types/useGestureHandlerPan.d.ts.map +1 -0
  312. package/types/useKeyboardControllerSheet.d.ts.map +1 -0
  313. package/types/useKeyboardControllerSheet.native.d.ts.map +1 -0
  314. package/types/useSheet.d.ts.map +1 -0
  315. package/types/useSheetController.d.ts.map +1 -0
  316. package/types/useSheetOffscreenSize.d.ts.map +1 -0
  317. package/types/useSheetOpenState.d.ts.map +1 -0
  318. package/types/useSheetProviderProps.d.ts +3 -3
  319. package/types/useSheetProviderProps.d.ts.map +1 -0
  320. package/types/useSheetScrollViewGestures.d.ts.map +1 -0
  321. package/types/useSheetScrollViewGestures.native.d.ts.map +1 -0
  322. package/controller/index.cjs +0 -2
  323. package/controller/index.d.ts +0 -5
  324. package/controller/index.js +0 -2
  325. package/controller/index.native.cjs +0 -2
  326. package/controller/index.native.js +0 -2
  327. package/next.md +0 -78
  328. package/setup-gesture-handler/index.cjs +0 -2
  329. package/setup-gesture-handler/index.js +0 -2
  330. package/setup-gesture-handler/index.native.cjs +0 -2
  331. package/setup-gesture-handler/index.native.js +0 -2
  332. package/tsconfig.json +0 -56
@@ -0,0 +1,181 @@
1
+ import { useCallback, useMemo, useRef } from "react";
2
+ import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.mjs";
3
+ const AT_TOP_THRESHOLD = 5;
4
+ function useGestureHandlerPan(config) {
5
+ const {
6
+ positions,
7
+ frameSize,
8
+ setPosition,
9
+ animateTo,
10
+ stopSpring,
11
+ scrollBridge,
12
+ setIsDragging,
13
+ getCurrentPosition,
14
+ resisted,
15
+ disableDrag,
16
+ isShowingInnerSheet,
17
+ setAnimatedPosition,
18
+ scrollGestureRef
19
+ } = config;
20
+ const gestureHandlerEnabled = isGestureHandlerEnabled();
21
+ const panGestureRef = useRef(null);
22
+ const gestureStateRef = useRef({
23
+ startY: 0,
24
+ // track last translation when pan was active (for position calculation after handoff)
25
+ lastPanTranslationY: 0,
26
+ // accumulated position offset from all pan movements
27
+ accumulatedOffset: 0,
28
+ // track previous translation for direction detection (like actions-sheet)
29
+ prevTranslationY: 0,
30
+ // track if scroll was engaged (scrollY > 0) at some point
31
+ scrollEngaged: false,
32
+ // positions frozen at gesture start — keyboard may dismiss during drag (input blur),
33
+ // causing positions to revert. Frozen positions ensure stable snap calculation.
34
+ frozenPositions: [],
35
+ frozenMinY: 0,
36
+ // whether pan gesture actually started (vs just a tap in onBegin)
37
+ panStarted: false
38
+ });
39
+ const onStart = useCallback(() => {
40
+ stopSpring();
41
+ }, [stopSpring]);
42
+ const onEnd = useCallback((closestPoint, animationOverride) => {
43
+ setIsDragging(false);
44
+ scrollBridge.setParentDragging(false);
45
+ scrollBridge.setScrollEnabled?.(true);
46
+ setPosition(closestPoint);
47
+ animateTo(closestPoint, animationOverride);
48
+ }, [setIsDragging, scrollBridge, setPosition, animateTo]);
49
+ const panGesture = useMemo(() => {
50
+ if (!gestureHandlerEnabled || disableDrag || isShowingInnerSheet || !frameSize) {
51
+ return null;
52
+ }
53
+ const {
54
+ Gesture
55
+ } = getGestureHandlerState();
56
+ if (!Gesture) {
57
+ return null;
58
+ }
59
+ const minY = positions[0];
60
+ const gs = gestureStateRef.current;
61
+ const gesture = Gesture.Pan().withRef(panGestureRef).activeOffsetY([-10, 10]).failOffsetX([-20, 20]).shouldCancelWhenOutside(false).onBegin(() => {
62
+ gs.panStarted = false;
63
+ if (config.pauseKeyboardHandler) {
64
+ config.pauseKeyboardHandler.current = true;
65
+ }
66
+ const pos = getCurrentPosition();
67
+ const atTop = pos <= minY + AT_TOP_THRESHOLD;
68
+ const currentScrollY = scrollBridge.y;
69
+ gs.startY = pos;
70
+ gs.lastPanTranslationY = 0;
71
+ gs.accumulatedOffset = 0;
72
+ gs.prevTranslationY = 0;
73
+ gs.scrollEngaged = currentScrollY > 0;
74
+ gs.frozenPositions = [...positions];
75
+ gs.frozenMinY = minY;
76
+ if (!atTop) {
77
+ scrollBridge.setScrollEnabled?.(false, 0);
78
+ }
79
+ }).onStart(() => {
80
+ gs.panStarted = true;
81
+ setIsDragging(true);
82
+ scrollBridge.initialPosition = gs.startY;
83
+ onStart();
84
+ }).onChange(event => {
85
+ const {
86
+ translationY
87
+ } = event;
88
+ const isSwipingDown = gs.prevTranslationY < translationY;
89
+ const deltaY = translationY - gs.prevTranslationY;
90
+ gs.prevTranslationY = translationY;
91
+ const scrollY = scrollBridge.y;
92
+ if (scrollY > 0) {
93
+ gs.scrollEngaged = true;
94
+ }
95
+ const currentPos = gs.startY + gs.accumulatedOffset;
96
+ const isCurrentlyAtTop = currentPos <= minY + AT_TOP_THRESHOLD;
97
+ const nodeIsScrolling = scrollY > 0;
98
+ let panHandles = false;
99
+ const hasScrollableContent = scrollBridge.hasScrollableContent !== false;
100
+ if (!isCurrentlyAtTop) {
101
+ if (isSwipingDown) {
102
+ panHandles = !nodeIsScrolling || !hasScrollableContent;
103
+ } else {
104
+ panHandles = true;
105
+ }
106
+ } else {
107
+ if (isSwipingDown) {
108
+ if (nodeIsScrolling && hasScrollableContent) {
109
+ panHandles = false;
110
+ } else if (gs.scrollEngaged && hasScrollableContent) {
111
+ panHandles = true;
112
+ } else {
113
+ panHandles = true;
114
+ }
115
+ } else {
116
+ if (hasScrollableContent) {
117
+ panHandles = false;
118
+ } else {
119
+ panHandles = true;
120
+ }
121
+ }
122
+ }
123
+ if (panHandles) {
124
+ const lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
125
+ scrollBridge.setScrollEnabled?.(false, lockTo);
126
+ gs.accumulatedOffset += deltaY;
127
+ const newPosition = resisted(gs.startY + gs.accumulatedOffset, minY);
128
+ scrollBridge.paneY = newPosition;
129
+ setAnimatedPosition(newPosition);
130
+ scrollBridge.setParentDragging(newPosition > minY);
131
+ } else {
132
+ scrollBridge.setScrollEnabled?.(true);
133
+ }
134
+ }).onEnd(event => {
135
+ const {
136
+ velocityY
137
+ } = event;
138
+ const currentPos = gs.startY + gs.accumulatedOffset;
139
+ scrollBridge.scrollLockY = void 0;
140
+ const snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
141
+ const snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
142
+ if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
143
+ onEnd(0);
144
+ return;
145
+ }
146
+ const velocity = velocityY / 1e3;
147
+ const projectedEnd = currentPos + frameSize * velocity * 0.2;
148
+ let closestPoint = 0;
149
+ let minDist = Number.POSITIVE_INFINITY;
150
+ for (let i = 0; i < snapPositions.length; i++) {
151
+ const pos = snapPositions[i];
152
+ const dist = Math.abs(projectedEnd - pos);
153
+ if (dist < minDist) {
154
+ minDist = dist;
155
+ closestPoint = i;
156
+ }
157
+ }
158
+ onEnd(closestPoint);
159
+ }).onFinalize(() => {
160
+ scrollBridge.scrollLockY = void 0;
161
+ if (gs.panStarted) {
162
+ setIsDragging(false);
163
+ } else {
164
+ if (config.pauseKeyboardHandler) {
165
+ config.pauseKeyboardHandler.current = false;
166
+ }
167
+ }
168
+ }).runOnJS(true);
169
+ if (scrollGestureRef?.current) {
170
+ return gesture.simultaneousWithExternalGesture(scrollGestureRef.current);
171
+ }
172
+ return gesture;
173
+ }, [gestureHandlerEnabled, disableDrag, isShowingInnerSheet, frameSize, positions, scrollBridge, getCurrentPosition, resisted, onStart, onEnd, setIsDragging, setAnimatedPosition]);
174
+ return {
175
+ panGesture,
176
+ panGestureRef,
177
+ gestureHandlerEnabled
178
+ };
179
+ }
180
+ export { useGestureHandlerPan };
181
+ //# sourceMappingURL=useGestureHandlerPan.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","useRef","getGestureHandlerState","isGestureHandlerEnabled","AT_TOP_THRESHOLD","useGestureHandlerPan","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","panGestureRef","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","panStarted","onStart","onEnd","closestPoint","animationOverride","setParentDragging","setScrollEnabled","panGesture","Gesture","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","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":[]}
@@ -0,0 +1,185 @@
1
+ import { useCallback, useMemo, useRef } from "react";
2
+ import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.native.js";
3
+ var AT_TOP_THRESHOLD = 5;
4
+ function useGestureHandlerPan(config) {
5
+ var {
6
+ positions,
7
+ frameSize,
8
+ setPosition,
9
+ animateTo,
10
+ stopSpring,
11
+ scrollBridge,
12
+ setIsDragging,
13
+ getCurrentPosition,
14
+ resisted,
15
+ disableDrag,
16
+ isShowingInnerSheet,
17
+ setAnimatedPosition,
18
+ scrollGestureRef
19
+ } = config;
20
+ var gestureHandlerEnabled = isGestureHandlerEnabled();
21
+ var panGestureRef = useRef(null);
22
+ var gestureStateRef = useRef({
23
+ startY: 0,
24
+ // track last translation when pan was active (for position calculation after handoff)
25
+ lastPanTranslationY: 0,
26
+ // accumulated position offset from all pan movements
27
+ accumulatedOffset: 0,
28
+ // track previous translation for direction detection (like actions-sheet)
29
+ prevTranslationY: 0,
30
+ // track if scroll was engaged (scrollY > 0) at some point
31
+ scrollEngaged: false,
32
+ // positions frozen at gesture start — keyboard may dismiss during drag (input blur),
33
+ // causing positions to revert. Frozen positions ensure stable snap calculation.
34
+ frozenPositions: [],
35
+ frozenMinY: 0,
36
+ // whether pan gesture actually started (vs just a tap in onBegin)
37
+ panStarted: false
38
+ });
39
+ var onStart = useCallback(function () {
40
+ stopSpring();
41
+ }, [stopSpring]);
42
+ var onEnd = useCallback(function (closestPoint, animationOverride) {
43
+ var _scrollBridge_setScrollEnabled;
44
+ setIsDragging(false);
45
+ scrollBridge.setParentDragging(false);
46
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, true);
47
+ setPosition(closestPoint);
48
+ animateTo(closestPoint, animationOverride);
49
+ }, [setIsDragging, scrollBridge, setPosition, animateTo]);
50
+ var panGesture = useMemo(function () {
51
+ if (!gestureHandlerEnabled || disableDrag || isShowingInnerSheet || !frameSize) {
52
+ return null;
53
+ }
54
+ var {
55
+ Gesture
56
+ } = getGestureHandlerState();
57
+ if (!Gesture) {
58
+ return null;
59
+ }
60
+ var minY = positions[0];
61
+ var gs = gestureStateRef.current;
62
+ var gesture = Gesture.Pan().withRef(panGestureRef).activeOffsetY([-10, 10]).failOffsetX([-20, 20]).shouldCancelWhenOutside(false).onBegin(function () {
63
+ gs.panStarted = false;
64
+ if (config.pauseKeyboardHandler) {
65
+ config.pauseKeyboardHandler.current = true;
66
+ }
67
+ var pos = getCurrentPosition();
68
+ var atTop = pos <= minY + AT_TOP_THRESHOLD;
69
+ var currentScrollY = scrollBridge.y;
70
+ gs.startY = pos;
71
+ gs.lastPanTranslationY = 0;
72
+ gs.accumulatedOffset = 0;
73
+ gs.prevTranslationY = 0;
74
+ gs.scrollEngaged = currentScrollY > 0;
75
+ gs.frozenPositions = [...positions];
76
+ gs.frozenMinY = minY;
77
+ if (!atTop) {
78
+ var _scrollBridge_setScrollEnabled;
79
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, 0);
80
+ }
81
+ }).onStart(function () {
82
+ gs.panStarted = true;
83
+ setIsDragging(true);
84
+ scrollBridge.initialPosition = gs.startY;
85
+ onStart();
86
+ }).onChange(function (event) {
87
+ var {
88
+ translationY
89
+ } = event;
90
+ var isSwipingDown = gs.prevTranslationY < translationY;
91
+ var deltaY = translationY - gs.prevTranslationY;
92
+ gs.prevTranslationY = translationY;
93
+ var scrollY = scrollBridge.y;
94
+ if (scrollY > 0) {
95
+ gs.scrollEngaged = true;
96
+ }
97
+ var currentPos = gs.startY + gs.accumulatedOffset;
98
+ var isCurrentlyAtTop = currentPos <= minY + AT_TOP_THRESHOLD;
99
+ var nodeIsScrolling = scrollY > 0;
100
+ var panHandles = false;
101
+ var hasScrollableContent = scrollBridge.hasScrollableContent !== false;
102
+ if (!isCurrentlyAtTop) {
103
+ if (isSwipingDown) {
104
+ panHandles = !nodeIsScrolling || !hasScrollableContent;
105
+ } else {
106
+ panHandles = true;
107
+ }
108
+ } else {
109
+ if (isSwipingDown) {
110
+ if (nodeIsScrolling && hasScrollableContent) {
111
+ panHandles = false;
112
+ } else if (gs.scrollEngaged && hasScrollableContent) {
113
+ panHandles = true;
114
+ } else {
115
+ panHandles = true;
116
+ }
117
+ } else {
118
+ if (hasScrollableContent) {
119
+ panHandles = false;
120
+ } else {
121
+ panHandles = true;
122
+ }
123
+ }
124
+ }
125
+ if (panHandles) {
126
+ var _scrollBridge_setScrollEnabled;
127
+ var lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? void 0 : 0;
128
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 ? void 0 : _scrollBridge_setScrollEnabled.call(scrollBridge, false, lockTo);
129
+ gs.accumulatedOffset += deltaY;
130
+ var newPosition = resisted(gs.startY + gs.accumulatedOffset, minY);
131
+ scrollBridge.paneY = newPosition;
132
+ setAnimatedPosition(newPosition);
133
+ scrollBridge.setParentDragging(newPosition > minY);
134
+ } else {
135
+ var _scrollBridge_setScrollEnabled1;
136
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 ? void 0 : _scrollBridge_setScrollEnabled1.call(scrollBridge, true);
137
+ }
138
+ }).onEnd(function (event) {
139
+ var {
140
+ velocityY
141
+ } = event;
142
+ var currentPos = gs.startY + gs.accumulatedOffset;
143
+ scrollBridge.scrollLockY = void 0;
144
+ var snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
145
+ var snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
146
+ if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
147
+ onEnd(0);
148
+ return;
149
+ }
150
+ var velocity = velocityY / 1e3;
151
+ var projectedEnd = currentPos + frameSize * velocity * 0.2;
152
+ var closestPoint = 0;
153
+ var minDist = Number.POSITIVE_INFINITY;
154
+ for (var i = 0; i < snapPositions.length; i++) {
155
+ var pos = snapPositions[i];
156
+ var dist = Math.abs(projectedEnd - pos);
157
+ if (dist < minDist) {
158
+ minDist = dist;
159
+ closestPoint = i;
160
+ }
161
+ }
162
+ onEnd(closestPoint);
163
+ }).onFinalize(function () {
164
+ scrollBridge.scrollLockY = void 0;
165
+ if (gs.panStarted) {
166
+ setIsDragging(false);
167
+ } else {
168
+ if (config.pauseKeyboardHandler) {
169
+ config.pauseKeyboardHandler.current = false;
170
+ }
171
+ }
172
+ }).runOnJS(true);
173
+ if (scrollGestureRef === null || scrollGestureRef === void 0 ? void 0 : scrollGestureRef.current) {
174
+ return gesture.simultaneousWithExternalGesture(scrollGestureRef.current);
175
+ }
176
+ return gesture;
177
+ }, [gestureHandlerEnabled, disableDrag, isShowingInnerSheet, frameSize, positions, scrollBridge, getCurrentPosition, resisted, onStart, onEnd, setIsDragging, setAnimatedPosition]);
178
+ return {
179
+ panGesture,
180
+ panGestureRef,
181
+ gestureHandlerEnabled
182
+ };
183
+ }
184
+ export { useGestureHandlerPan };
185
+ //# sourceMappingURL=useGestureHandlerPan.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","useRef","getGestureHandlerState","isGestureHandlerEnabled","AT_TOP_THRESHOLD","useGestureHandlerPan","config","positions","frameSize","setPosition","animateTo","stopSpring","scrollBridge","setIsDragging","getCurrentPosition","resisted","disableDrag","isShowingInnerSheet","setAnimatedPosition","scrollGestureRef","gestureHandlerEnabled","panGestureRef","gestureStateRef","startY","lastPanTranslationY","accumulatedOffset","prevTranslationY","scrollEngaged","frozenPositions","frozenMinY","panStarted","onStart","onEnd","closestPoint","animationOverride","_scrollBridge_setScrollEnabled","setParentDragging","setScrollEnabled","call","panGesture","Gesture","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":[]}
@@ -0,0 +1,15 @@
1
+ import { useRef } from "react";
2
+ const noop = () => {};
3
+ function useKeyboardControllerSheet(_options) {
4
+ const pauseKeyboardHandler = useRef(false);
5
+ return {
6
+ keyboardControllerEnabled: false,
7
+ keyboardHeight: 0,
8
+ isKeyboardVisible: false,
9
+ dismissKeyboard: noop,
10
+ pauseKeyboardHandler,
11
+ flushPendingHide: noop
12
+ };
13
+ }
14
+ export { useKeyboardControllerSheet };
15
+ //# sourceMappingURL=useKeyboardControllerSheet.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useRef","noop","useKeyboardControllerSheet","_options","pauseKeyboardHandler","keyboardControllerEnabled","keyboardHeight","isKeyboardVisible","dismissKeyboard","flushPendingHide"],"sources":["../../src/useKeyboardControllerSheet.ts"],"sourcesContent":[null],"mappings":"AAKA,SAASA,MAAA,QAAc;AAMvB,MAAMC,IAAA,GAAOA,CAAA,KAAM,CAAC;AAEb,SAASC,2BACdC,QAAA,EAC+B;EAC/B,MAAMC,oBAAA,GAAuBJ,MAAA,CAAO,KAAK;EACzC,OAAO;IACLK,yBAAA,EAA2B;IAC3BC,cAAA,EAAgB;IAChBC,iBAAA,EAAmB;IACnBC,eAAA,EAAiBP,IAAA;IACjBG,oBAAA;IACAK,gBAAA,EAAkBR;EACpB;AACF","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ import { useCallback, useEffect, useRef, useState } from "react";
2
+ import { Keyboard, Platform } from "react-native";
3
+ var isKeyboardControllerEnabled = function () {
4
+ return false;
5
+ };
6
+ var getKeyboardControllerState = function () {
7
+ return {};
8
+ };
9
+ try {
10
+ var nativeModule = require("@hanzogui/native");
11
+ isKeyboardControllerEnabled = nativeModule.isKeyboardControllerEnabled;
12
+ getKeyboardControllerState = nativeModule.getKeyboardControllerState;
13
+ } catch (e) {}
14
+ function useKeyboardControllerSheet(options) {
15
+ var {
16
+ enabled
17
+ } = options;
18
+ var [keyboardHeight, setKeyboardHeight] = useState(0);
19
+ var [isKeyboardVisible, setIsKeyboardVisible] = useState(false);
20
+ var keyboardControllerEnabled = isKeyboardControllerEnabled();
21
+ var pauseKeyboardHandler = useRef(false);
22
+ var pendingHide = useRef(false);
23
+ var dismissKeyboard = useCallback(function () {
24
+ Keyboard.dismiss();
25
+ if (keyboardControllerEnabled) {
26
+ try {
27
+ var _KeyboardController_dismiss;
28
+ var {
29
+ KeyboardController
30
+ } = getKeyboardControllerState();
31
+ KeyboardController === null || KeyboardController === void 0 ? void 0 : (_KeyboardController_dismiss = KeyboardController.dismiss) === null || _KeyboardController_dismiss === void 0 ? void 0 : _KeyboardController_dismiss.call(KeyboardController);
32
+ } catch (e) {}
33
+ }
34
+ },
35
+ // ignore errors from keyboard-controller
36
+ [keyboardControllerEnabled]);
37
+ var flushPendingHide = useCallback(function () {
38
+ if (pendingHide.current) {
39
+ pendingHide.current = false;
40
+ setIsKeyboardVisible(false);
41
+ setKeyboardHeight(0);
42
+ }
43
+ }, []);
44
+ useEffect(function () {
45
+ if (!enabled || !keyboardControllerEnabled) return;
46
+ var {
47
+ KeyboardEvents
48
+ } = getKeyboardControllerState();
49
+ if (!(KeyboardEvents === null || KeyboardEvents === void 0 ? void 0 : KeyboardEvents.addListener)) return;
50
+ var showSub = KeyboardEvents.addListener("keyboardWillShow", function (e) {
51
+ var _e_height;
52
+ var height = (_e_height = e === null || e === void 0 ? void 0 : e.height) !== null && _e_height !== void 0 ? _e_height : 0;
53
+ if (height > 0) {
54
+ setKeyboardHeight(height);
55
+ }
56
+ setIsKeyboardVisible(true);
57
+ });
58
+ var hideSub = KeyboardEvents.addListener("keyboardWillHide", function () {
59
+ if (pauseKeyboardHandler.current) {
60
+ pendingHide.current = true;
61
+ return;
62
+ }
63
+ setIsKeyboardVisible(false);
64
+ setKeyboardHeight(0);
65
+ });
66
+ return function () {
67
+ var _showSub_remove, _hideSub_remove;
68
+ showSub === null || showSub === void 0 ? void 0 : (_showSub_remove = showSub.remove) === null || _showSub_remove === void 0 ? void 0 : _showSub_remove.call(showSub);
69
+ hideSub === null || hideSub === void 0 ? void 0 : (_hideSub_remove = hideSub.remove) === null || _hideSub_remove === void 0 ? void 0 : _hideSub_remove.call(hideSub);
70
+ };
71
+ }, [enabled, keyboardControllerEnabled]);
72
+ useEffect(function () {
73
+ if (!enabled) return;
74
+ if (keyboardControllerEnabled) return;
75
+ var showEvent = Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
76
+ var hideEvent = Platform.OS === "ios" ? "keyboardWillHide" : "keyboardDidHide";
77
+ var showListener = Keyboard.addListener(showEvent, function (e) {
78
+ setKeyboardHeight(e.endCoordinates.height);
79
+ setIsKeyboardVisible(true);
80
+ });
81
+ var hideListener = Keyboard.addListener(hideEvent, function () {
82
+ if (pauseKeyboardHandler.current) {
83
+ pendingHide.current = true;
84
+ return;
85
+ }
86
+ setIsKeyboardVisible(false);
87
+ setKeyboardHeight(0);
88
+ });
89
+ return function () {
90
+ showListener.remove();
91
+ hideListener.remove();
92
+ };
93
+ }, [enabled, keyboardControllerEnabled]);
94
+ return {
95
+ keyboardControllerEnabled,
96
+ keyboardHeight,
97
+ isKeyboardVisible,
98
+ dismissKeyboard,
99
+ pauseKeyboardHandler,
100
+ flushPendingHide
101
+ };
102
+ }
103
+ export { useKeyboardControllerSheet };
104
+ //# sourceMappingURL=useKeyboardControllerSheet.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","Keyboard","Platform","isKeyboardControllerEnabled","getKeyboardControllerState","nativeModule","require","e","useKeyboardControllerSheet","options","enabled","keyboardHeight","setKeyboardHeight","isKeyboardVisible","setIsKeyboardVisible","keyboardControllerEnabled","pauseKeyboardHandler","pendingHide","dismissKeyboard","dismiss","_KeyboardController_dismiss","KeyboardController","call","flushPendingHide","current","KeyboardEvents","addListener","showSub","_e_height","height","hideSub","_showSub_remove","_hideSub_remove","remove","showEvent","OS","hideEvent","showListener","endCoordinates","hideListener"],"sources":["../../src/useKeyboardControllerSheet.native.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import { useSheetContext } from "./SheetContext.mjs";
2
+ const useSheet = () => useSheetContext("", void 0);
3
+ export { useSheet };
4
+ //# sourceMappingURL=useSheet.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSheetContext","useSheet"],"sources":["../../src/useSheet.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAEzB,MAAMC,QAAA,GAAWA,CAAA,KAAMD,eAAA,CAAgB,IAAI,MAAS","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import { useSheetContext } from "./SheetContext.native.js";
2
+ var useSheet = function () {
3
+ return useSheetContext("", void 0);
4
+ };
5
+ export { useSheet };
6
+ //# sourceMappingURL=useSheet.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSheetContext","useSheet"],"sources":["../../src/useSheet.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAEzB,IAAAC,QAAM,YAAAA,CAAA,EAAiB","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ const useSheetController = () => {
3
+ const controller = React.useContext(SheetControllerContext);
4
+ const isHidden = controller?.hidden;
5
+ const isShowingNonSheet = isHidden && controller?.open;
6
+ return {
7
+ controller,
8
+ isHidden,
9
+ isShowingNonSheet,
10
+ disableDrag: controller?.disableDrag
11
+ };
12
+ };
13
+ const SheetControllerContext = React.createContext(null);
14
+ export { SheetControllerContext, useSheetController };
15
+ //# sourceMappingURL=useSheetController.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useSheetController","controller","useContext","SheetControllerContext","isHidden","hidden","isShowingNonSheet","open","disableDrag","createContext"],"sources":["../../src/useSheetController.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAEX,MAAMC,kBAAA,GAAqBA,CAAA,KAAM;EACtC,MAAMC,UAAA,GAAaF,KAAA,CAAMG,UAAA,CAAWC,sBAAsB;EAC1D,MAAMC,QAAA,GAAWH,UAAA,EAAYI,MAAA;EAC7B,MAAMC,iBAAA,GAAoBF,QAAA,IAAYH,UAAA,EAAYM,IAAA;EAClD,OAAO;IACLN,UAAA;IACAG,QAAA;IACAE,iBAAA;IACAE,WAAA,EAAaP,UAAA,EAAYO;EAC3B;AACF;AAEO,MAAML,sBAAA,GACXJ,KAAA,CAAMU,aAAA,CAAkD,IAAI","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ var useSheetController = function () {
3
+ var controller = React.useContext(SheetControllerContext);
4
+ var isHidden = controller === null || controller === void 0 ? void 0 : controller.hidden;
5
+ var isShowingNonSheet = isHidden && (controller === null || controller === void 0 ? void 0 : controller.open);
6
+ return {
7
+ controller,
8
+ isHidden,
9
+ isShowingNonSheet,
10
+ disableDrag: controller === null || controller === void 0 ? void 0 : controller.disableDrag
11
+ };
12
+ };
13
+ var SheetControllerContext = /* @__PURE__ */React.createContext(null);
14
+ export { SheetControllerContext, useSheetController };
15
+ //# sourceMappingURL=useSheetController.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useSheetController","controller","useContext","SheetControllerContext","isHidden","hidden","isShowingNonSheet","open","disableDrag","createContext"],"sources":["../../src/useSheetController.tsx"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAEX,IAAAC,kBAAM,YAAAA,CAAA,EAA2B;EACtC,IAAAC,UAAM,GAAAF,KAAa,CAAAG,UAAM,CAAAC,sBAAW;EACpC,IAAAC,QAAM,GAAAH,UAAW,KAAY,QAAAA,UAAA,uBAAAA,UAAA,CAAAI,MAAA;EAC7B,IAAAC,iBAAM,GAAAF,QAAoB,KAAAH,UAAY,KAAY,QAAAA,UAAA,uBAAAA,UAAA,CAAAM,IAAA;EAClD,OAAO;IACLN,UAAA;IACAG,QAAA;IACAE,iBAAA;IACAE,WAAA,EAAaP,UAAA,KAAY,QAAAA,UAAA,uBAAAA,UAAA,CAAAO;EAC3B;AACF;AAEO,IAAAL,sBAAM,kBACLJ,KAAA,CAAkDU,aAAI","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ const useSheetOffscreenSize = ({
2
+ snapPoints,
3
+ position,
4
+ screenSize,
5
+ frameSize,
6
+ snapPointsMode
7
+ }) => {
8
+ if (snapPointsMode === "fit") {
9
+ return 0;
10
+ }
11
+ if (snapPointsMode === "constant") {
12
+ const maxSize2 = Number(snapPoints[0]);
13
+ const currentSize2 = Number(snapPoints[position] ?? 0);
14
+ const offscreenSize2 = maxSize2 - currentSize2;
15
+ return offscreenSize2;
16
+ }
17
+ if (snapPointsMode === "percent") {
18
+ const maxPercentOpened = Number(snapPoints[0]) / 100;
19
+ const percentOpened = Number(snapPoints[position] ?? 0) / 100;
20
+ const percentHidden = maxPercentOpened - percentOpened;
21
+ const offscreenSize2 = percentHidden * screenSize;
22
+ return offscreenSize2;
23
+ }
24
+ const maxSnapPoint = snapPoints[0];
25
+ if (maxSnapPoint === "fit") {
26
+ return 0;
27
+ }
28
+ const maxSize = typeof maxSnapPoint === "string" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint;
29
+ const currentSnapPoint = snapPoints[position] ?? 0;
30
+ const currentSize = typeof currentSnapPoint === "string" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint;
31
+ const offscreenSize = maxSize - currentSize;
32
+ if (Number.isNaN(offscreenSize)) {
33
+ return 0;
34
+ }
35
+ return offscreenSize;
36
+ };
37
+ export { useSheetOffscreenSize };
38
+ //# sourceMappingURL=useSheetOffscreenSize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSheetOffscreenSize","snapPoints","position","screenSize","frameSize","snapPointsMode","maxSize","Number","currentSize","offscreenSize","maxSize2","currentSize2","maxPercentOpened","percentOpened","percentHidden","maxSnapPoint","slice","currentSnapPoint","isNaN"],"sources":["../../src/useSheetOffscreenSize.tsx"],"sourcesContent":[null],"mappings":"AAEO,MAAMA,qBAAA,GAAwBA,CAAC;EACpCC,UAAA;EACAC,QAAA;EACAC,UAAA;EACAC,SAAA;EACAC;AACF,MAAyB;EACvB,IAAIA,cAAA,KAAmB,OAAO;IAC5B,OAAO;EACT;EAEA,IAAIA,cAAA,KAAmB,YAAY;IACjC,MAAMC,QAAA,GAAUC,MAAA,CAAON,UAAA,CAAW,CAAC,CAAC;IACpC,MAAMO,YAAA,GAAcD,MAAA,CAAON,UAAA,CAAWC,QAAQ,KAAK,CAAC;IACpD,MAAMO,cAAA,GAAgBC,QAAA,GAAUC,YAAA;IAChC,OAAOF,cAAA;EACT;EAEA,IAAIJ,cAAA,KAAmB,WAAW;IAChC,MAAMO,gBAAA,GAAmBL,MAAA,CAAON,UAAA,CAAW,CAAC,CAAC,IAAI;IACjD,MAAMY,aAAA,GAAgBN,MAAA,CAAON,UAAA,CAAWC,QAAQ,KAAK,CAAC,IAAI;IAC1D,MAAMY,aAAA,GAAgBF,gBAAA,GAAmBC,aAAA;IACzC,MAAMJ,cAAA,GAAgBK,aAAA,GAAgBX,UAAA;IACtC,OAAOM,cAAA;EACT;EAGA,MAAMM,YAAA,GAAed,UAAA,CAAW,CAAC;EACjC,IAAIc,YAAA,KAAiB,OAAO;IAC1B,OAAO;EACT;EAEA,MAAMT,OAAA,GACJ,OAAOS,YAAA,KAAiB,WACnBR,MAAA,CAAOQ,YAAA,CAAaC,KAAA,CAAM,GAAG,EAAE,CAAC,IAAI,MAAOb,UAAA,GAC5CY,YAAA;EACN,MAAME,gBAAA,GAAmBhB,UAAA,CAAWC,QAAQ,KAAK;EACjD,MAAMM,WAAA,GACJ,OAAOS,gBAAA,KAAqB,WACvBV,MAAA,CAAOU,gBAAA,CAAiBD,KAAA,CAAM,GAAG,EAAE,CAAC,IAAI,MAAOb,UAAA,GAChDc,gBAAA;EACN,MAAMR,aAAA,GAAgBH,OAAA,GAAUE,WAAA;EAChC,IAAID,MAAA,CAAOW,KAAA,CAAMT,aAAa,GAAG;IAC/B,OAAO;EACT;EACA,OAAOA,aAAA;AACT","ignoreList":[]}