@hanzogui/sheet 8.3.0 → 8.3.2

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 (559) hide show
  1. package/dist/cjs/GestureDetectorWrapper.js +23 -0
  2. package/dist/cjs/GestureDetectorWrapper.js.map +1 -0
  3. package/dist/cjs/GestureSheetContext.js +21 -0
  4. package/dist/cjs/GestureSheetContext.js.map +1 -0
  5. package/dist/cjs/Sheet.js +102 -0
  6. package/dist/cjs/Sheet.js.map +1 -0
  7. package/dist/cjs/SheetContext.js +8 -0
  8. package/dist/cjs/SheetContext.js.map +1 -0
  9. package/dist/cjs/SheetController.js +33 -0
  10. package/dist/cjs/SheetController.js.map +1 -0
  11. package/dist/cjs/SheetImplementationCustom.js +866 -0
  12. package/dist/cjs/SheetImplementationCustom.js.map +1 -0
  13. package/dist/cjs/SheetScrollView.js +278 -0
  14. package/dist/cjs/SheetScrollView.js.map +1 -0
  15. package/dist/cjs/constants.js +8 -0
  16. package/dist/cjs/constants.js.map +1 -0
  17. package/dist/cjs/contexts.js +10 -0
  18. package/dist/cjs/contexts.js.map +1 -0
  19. package/dist/cjs/controller.js +11 -0
  20. package/dist/cjs/controller.js.map +1 -0
  21. package/dist/cjs/createSheet.js +153 -0
  22. package/dist/cjs/createSheet.js.map +1 -0
  23. package/dist/cjs/gestureState.js +35 -0
  24. package/dist/cjs/gestureState.js.map +1 -0
  25. package/dist/cjs/helpers.js +29 -0
  26. package/dist/cjs/helpers.js.map +1 -0
  27. package/dist/cjs/index.js +19 -0
  28. package/dist/cjs/index.js.map +1 -0
  29. package/dist/cjs/keyboardAvoidance.js +67 -0
  30. package/dist/cjs/keyboardAvoidance.js.map +1 -0
  31. package/dist/cjs/nativeSheet.js +52 -0
  32. package/dist/cjs/nativeSheet.js.map +1 -0
  33. package/dist/cjs/package.json +1 -0
  34. package/dist/cjs/setupGestureHandler.js +31 -0
  35. package/dist/cjs/setupGestureHandler.js.map +1 -0
  36. package/dist/cjs/types.js +3 -0
  37. package/dist/cjs/types.js.map +1 -0
  38. package/dist/cjs/useGestureHandlerPan.js +356 -0
  39. package/dist/cjs/useGestureHandlerPan.js.map +1 -0
  40. package/dist/cjs/useKeyboardControllerSheet.js +124 -0
  41. package/dist/cjs/useKeyboardControllerSheet.js.map +1 -0
  42. package/dist/cjs/useSafeAreaInsets.js +16 -0
  43. package/dist/cjs/useSafeAreaInsets.js.map +1 -0
  44. package/dist/cjs/useSheet.js +7 -0
  45. package/dist/cjs/useSheet.js.map +1 -0
  46. package/dist/cjs/useSheetController.js +19 -0
  47. package/dist/cjs/useSheetController.js.map +1 -0
  48. package/dist/cjs/useSheetOffscreenSize.js +40 -0
  49. package/dist/cjs/useSheetOffscreenSize.js.map +1 -0
  50. package/dist/cjs/useSheetOpenState.js +29 -0
  51. package/dist/cjs/useSheetOpenState.js.map +1 -0
  52. package/dist/cjs/useSheetProviderProps.js +169 -0
  53. package/dist/cjs/useSheetProviderProps.js.map +1 -0
  54. package/dist/cjs/useSheetScrollViewGestures.js +195 -0
  55. package/dist/cjs/useSheetScrollViewGestures.js.map +1 -0
  56. package/dist/cjs/webViewport.js +108 -0
  57. package/dist/cjs/webViewport.js.map +1 -0
  58. package/dist/esm/GestureDetectorWrapper.js +20 -0
  59. package/dist/esm/GestureDetectorWrapper.js.map +1 -0
  60. package/dist/esm/GestureSheetContext.js +17 -0
  61. package/dist/esm/GestureSheetContext.js.map +1 -0
  62. package/dist/esm/Sheet.js +97 -0
  63. package/dist/esm/Sheet.js.map +1 -0
  64. package/dist/esm/SheetContext.js +5 -0
  65. package/dist/esm/SheetContext.js.map +1 -0
  66. package/dist/esm/SheetController.js +28 -0
  67. package/dist/esm/SheetController.js.map +1 -0
  68. package/dist/esm/SheetImplementationCustom.js +862 -0
  69. package/dist/esm/SheetImplementationCustom.js.map +1 -0
  70. package/dist/esm/SheetScrollView.js +274 -0
  71. package/dist/esm/SheetScrollView.js.map +1 -0
  72. package/dist/esm/constants.js +5 -0
  73. package/dist/esm/constants.js.map +1 -0
  74. package/dist/esm/contexts.js +6 -0
  75. package/dist/esm/contexts.js.map +1 -0
  76. package/dist/esm/controller.js +5 -0
  77. package/dist/esm/controller.js.map +1 -0
  78. package/dist/esm/createSheet.js +150 -0
  79. package/dist/esm/createSheet.js.map +1 -0
  80. package/dist/esm/gestureState.js +29 -0
  81. package/dist/esm/gestureState.js.map +1 -0
  82. package/dist/esm/helpers.js +26 -0
  83. package/dist/esm/helpers.js.map +1 -0
  84. package/dist/esm/index.js +13 -14
  85. package/dist/esm/index.js.map +1 -1
  86. package/dist/esm/keyboardAvoidance.js +62 -0
  87. package/dist/esm/keyboardAvoidance.js.map +1 -0
  88. package/dist/esm/nativeSheet.js +48 -0
  89. package/dist/esm/nativeSheet.js.map +1 -0
  90. package/dist/esm/setupGestureHandler.js +27 -0
  91. package/dist/esm/setupGestureHandler.js.map +1 -0
  92. package/dist/esm/types.js +2 -0
  93. package/dist/esm/types.js.map +1 -0
  94. package/dist/esm/useGestureHandlerPan.js +353 -0
  95. package/dist/esm/useGestureHandlerPan.js.map +1 -0
  96. package/dist/esm/useKeyboardControllerSheet.js +121 -0
  97. package/dist/esm/useKeyboardControllerSheet.js.map +1 -0
  98. package/dist/esm/useSafeAreaInsets.js +11 -0
  99. package/dist/esm/useSafeAreaInsets.js.map +1 -0
  100. package/dist/esm/useSheet.js +3 -0
  101. package/dist/esm/useSheet.js.map +1 -0
  102. package/dist/esm/useSheetController.js +14 -0
  103. package/dist/esm/useSheetController.js.map +1 -0
  104. package/dist/esm/useSheetOffscreenSize.js +36 -0
  105. package/dist/esm/useSheetOffscreenSize.js.map +1 -0
  106. package/dist/esm/useSheetOpenState.js +25 -0
  107. package/dist/esm/useSheetOpenState.js.map +1 -0
  108. package/dist/esm/useSheetProviderProps.js +165 -0
  109. package/dist/esm/useSheetProviderProps.js.map +1 -0
  110. package/dist/esm/useSheetScrollViewGestures.js +192 -0
  111. package/dist/esm/useSheetScrollViewGestures.js.map +1 -0
  112. package/dist/esm/webViewport.js +98 -0
  113. package/dist/esm/webViewport.js.map +1 -0
  114. package/dist/native/GestureDetectorWrapper.js +20 -0
  115. package/dist/native/GestureDetectorWrapper.js.map +1 -0
  116. package/dist/native/GestureSheetContext.js +17 -0
  117. package/dist/native/GestureSheetContext.js.map +1 -0
  118. package/dist/native/Sheet.js +97 -0
  119. package/dist/native/Sheet.js.map +1 -0
  120. package/dist/native/SheetContext.js +5 -0
  121. package/dist/native/SheetContext.js.map +1 -0
  122. package/dist/native/SheetController.js +28 -0
  123. package/dist/native/SheetController.js.map +1 -0
  124. package/dist/native/SheetImplementationCustom.js +862 -0
  125. package/dist/native/SheetImplementationCustom.js.map +1 -0
  126. package/dist/native/SheetScrollView.js +274 -0
  127. package/dist/native/SheetScrollView.js.map +1 -0
  128. package/dist/native/constants.js +5 -0
  129. package/dist/native/constants.js.map +1 -0
  130. package/dist/native/contexts.js +6 -0
  131. package/dist/native/contexts.js.map +1 -0
  132. package/dist/native/controller.js +5 -0
  133. package/dist/native/controller.js.map +1 -0
  134. package/dist/native/createSheet.js +150 -0
  135. package/dist/native/createSheet.js.map +1 -0
  136. package/dist/native/gestureState.js +29 -0
  137. package/dist/native/gestureState.js.map +1 -0
  138. package/dist/native/helpers.js +26 -0
  139. package/dist/native/helpers.js.map +1 -0
  140. package/dist/native/index.js +13 -0
  141. package/dist/native/index.js.map +1 -0
  142. package/dist/native/keyboardAvoidance.js +62 -0
  143. package/dist/native/keyboardAvoidance.js.map +1 -0
  144. package/dist/native/nativeSheet.js +48 -0
  145. package/dist/native/nativeSheet.js.map +1 -0
  146. package/dist/native/setupGestureHandler.js +27 -0
  147. package/dist/native/setupGestureHandler.js.map +1 -0
  148. package/dist/native/types.js +2 -0
  149. package/dist/native/types.js.map +1 -0
  150. package/dist/native/useGestureHandlerPan.js +353 -0
  151. package/dist/native/useGestureHandlerPan.js.map +1 -0
  152. package/dist/native/useKeyboardControllerSheet.js +118 -0
  153. package/dist/native/useKeyboardControllerSheet.js.map +1 -0
  154. package/dist/native/useSafeAreaInsets.js +25 -0
  155. package/dist/native/useSafeAreaInsets.js.map +1 -0
  156. package/dist/native/useSheet.js +3 -0
  157. package/dist/native/useSheet.js.map +1 -0
  158. package/dist/native/useSheetController.js +14 -0
  159. package/dist/native/useSheetController.js.map +1 -0
  160. package/dist/native/useSheetOffscreenSize.js +36 -0
  161. package/dist/native/useSheetOffscreenSize.js.map +1 -0
  162. package/dist/native/useSheetOpenState.js +25 -0
  163. package/dist/native/useSheetOpenState.js.map +1 -0
  164. package/dist/native/useSheetProviderProps.js +165 -0
  165. package/dist/native/useSheetProviderProps.js.map +1 -0
  166. package/dist/native/useSheetScrollViewGestures.js +131 -0
  167. package/dist/native/useSheetScrollViewGestures.js.map +1 -0
  168. package/dist/native/webViewport.js +98 -0
  169. package/dist/native/webViewport.js.map +1 -0
  170. package/package.json +46 -49
  171. package/src/GestureDetectorWrapper.tsx +1 -1
  172. package/src/Sheet.tsx +4 -4
  173. package/src/SheetContext.tsx +2 -2
  174. package/src/SheetController.d.ts +7 -0
  175. package/src/SheetController.d.ts.map +1 -0
  176. package/src/SheetController.js +38 -0
  177. package/src/SheetController.js.map +1 -0
  178. package/src/SheetController.tsx +2 -2
  179. package/src/SheetImplementationCustom.tsx +14 -14
  180. package/src/SheetScrollView.tsx +6 -6
  181. package/src/controller.ts +2 -2
  182. package/src/createSheet.tsx +9 -9
  183. package/src/index.ts +12 -12
  184. package/src/nativeSheet.tsx +4 -4
  185. package/src/useGestureHandlerPan.tsx +3 -3
  186. package/src/useKeyboardControllerSheet.native.ts +1 -1
  187. package/src/useKeyboardControllerSheet.ts +2 -2
  188. package/src/useSafeAreaInsets.native.ts +1 -1
  189. package/src/useSheet.tsx +1 -1
  190. package/src/useSheetController.d.ts +20 -0
  191. package/src/useSheetController.d.ts.map +1 -0
  192. package/src/useSheetController.js +14 -0
  193. package/src/useSheetController.js.map +1 -0
  194. package/src/useSheetOffscreenSize.tsx +1 -1
  195. package/src/useSheetOpenState.tsx +2 -2
  196. package/src/useSheetProviderProps.tsx +2 -2
  197. package/src/useSheetScrollViewGestures.native.ts +1 -1
  198. package/src/useSheetScrollViewGestures.ts +1 -1
  199. package/types/GestureDetectorWrapper.d.ts +1 -1
  200. package/types/GestureDetectorWrapper.d.ts.map +1 -1
  201. package/types/GestureSheetContext.d.ts +1 -1
  202. package/types/GestureSheetContext.d.ts.map +1 -1
  203. package/types/Sheet.d.ts +81 -89
  204. package/types/Sheet.d.ts.map +1 -1
  205. package/types/SheetContext.d.ts +5 -5
  206. package/types/SheetContext.d.ts.map +1 -1
  207. package/types/SheetController.d.ts +3 -2
  208. package/types/SheetController.d.ts.map +1 -1
  209. package/types/SheetImplementationCustom.d.ts +3 -3
  210. package/types/SheetImplementationCustom.d.ts.map +1 -1
  211. package/types/SheetScrollView.d.ts +6 -6
  212. package/types/controller.d.ts +2 -2
  213. package/types/controller.d.ts.map +1 -1
  214. package/types/createSheet.d.ts +85 -85
  215. package/types/createSheet.d.ts.map +1 -1
  216. package/types/index.d.ts +12 -12
  217. package/types/index.d.ts.map +1 -1
  218. package/types/nativeSheet.d.ts +1 -1
  219. package/types/nativeSheet.d.ts.map +1 -1
  220. package/types/useGestureHandlerPan.d.ts +1 -1
  221. package/types/useGestureHandlerPan.d.ts.map +1 -1
  222. package/types/useKeyboardControllerSheet.d.ts +1 -1
  223. package/types/useKeyboardControllerSheet.d.ts.map +1 -1
  224. package/types/useKeyboardControllerSheet.native.d.ts +1 -1
  225. package/types/useKeyboardControllerSheet.native.d.ts.map +1 -1
  226. package/types/useSafeAreaInsets.native.d.ts +1 -1
  227. package/types/useSafeAreaInsets.native.d.ts.map +1 -1
  228. package/types/useSheet.d.ts +1 -1
  229. package/types/useSheet.d.ts.map +1 -1
  230. package/types/useSheetOffscreenSize.d.ts +1 -1
  231. package/types/useSheetOffscreenSize.d.ts.map +1 -1
  232. package/types/useSheetOpenState.d.ts +2 -2
  233. package/types/useSheetOpenState.d.ts.map +1 -1
  234. package/types/useSheetProviderProps.d.ts +3 -3
  235. package/types/useSheetProviderProps.d.ts.map +1 -1
  236. package/types/useSheetScrollViewGestures.d.ts +1 -1
  237. package/types/useSheetScrollViewGestures.d.ts.map +1 -1
  238. package/types/useSheetScrollViewGestures.native.d.ts +1 -1
  239. package/types/useSheetScrollViewGestures.native.d.ts.map +1 -1
  240. package/controller/index.cjs +0 -2
  241. package/controller/index.d.ts +0 -5
  242. package/controller/index.js +0 -2
  243. package/controller/index.native.cjs +0 -2
  244. package/controller/index.native.js +0 -2
  245. package/dist/cjs/GestureDetectorWrapper.cjs +0 -54
  246. package/dist/cjs/GestureDetectorWrapper.native.js +0 -58
  247. package/dist/cjs/GestureDetectorWrapper.native.js.map +0 -1
  248. package/dist/cjs/GestureSheetContext.cjs +0 -54
  249. package/dist/cjs/GestureSheetContext.native.js +0 -58
  250. package/dist/cjs/GestureSheetContext.native.js.map +0 -1
  251. package/dist/cjs/Sheet.cjs +0 -119
  252. package/dist/cjs/Sheet.native.js +0 -122
  253. package/dist/cjs/Sheet.native.js.map +0 -1
  254. package/dist/cjs/SheetContext.cjs +0 -34
  255. package/dist/cjs/SheetContext.native.js +0 -37
  256. package/dist/cjs/SheetContext.native.js.map +0 -1
  257. package/dist/cjs/SheetController.cjs +0 -73
  258. package/dist/cjs/SheetController.native.js +0 -79
  259. package/dist/cjs/SheetController.native.js.map +0 -1
  260. package/dist/cjs/SheetImplementationCustom.cjs +0 -652
  261. package/dist/cjs/SheetImplementationCustom.native.js +0 -694
  262. package/dist/cjs/SheetImplementationCustom.native.js.map +0 -1
  263. package/dist/cjs/SheetScrollView.cjs +0 -337
  264. package/dist/cjs/SheetScrollView.native.js +0 -348
  265. package/dist/cjs/SheetScrollView.native.js.map +0 -1
  266. package/dist/cjs/constants.cjs +0 -34
  267. package/dist/cjs/constants.native.js +0 -37
  268. package/dist/cjs/constants.native.js.map +0 -1
  269. package/dist/cjs/contexts.cjs +0 -44
  270. package/dist/cjs/contexts.native.js +0 -47
  271. package/dist/cjs/contexts.native.js.map +0 -1
  272. package/dist/cjs/controller.cjs +0 -31
  273. package/dist/cjs/controller.native.js +0 -34
  274. package/dist/cjs/controller.native.js.map +0 -1
  275. package/dist/cjs/createSheet.cjs +0 -194
  276. package/dist/cjs/createSheet.native.js +0 -204
  277. package/dist/cjs/createSheet.native.js.map +0 -1
  278. package/dist/cjs/gestureState.cjs +0 -52
  279. package/dist/cjs/gestureState.native.js +0 -56
  280. package/dist/cjs/gestureState.native.js.map +0 -1
  281. package/dist/cjs/helpers.cjs +0 -35
  282. package/dist/cjs/helpers.native.js +0 -39
  283. package/dist/cjs/helpers.native.js.map +0 -1
  284. package/dist/cjs/index.cjs +0 -41
  285. package/dist/cjs/index.native.js +0 -44
  286. package/dist/cjs/index.native.js.map +0 -1
  287. package/dist/cjs/keyboardAvoidance.cjs +0 -93
  288. package/dist/cjs/keyboardAvoidance.native.js +0 -99
  289. package/dist/cjs/keyboardAvoidance.native.js.map +0 -1
  290. package/dist/cjs/nativeSheet.cjs +0 -99
  291. package/dist/cjs/nativeSheet.native.js +0 -109
  292. package/dist/cjs/nativeSheet.native.js.map +0 -1
  293. package/dist/cjs/setupGestureHandler.cjs +0 -55
  294. package/dist/cjs/setupGestureHandler.native.js +0 -60
  295. package/dist/cjs/setupGestureHandler.native.js.map +0 -1
  296. package/dist/cjs/types.cjs +0 -18
  297. package/dist/cjs/types.native.js +0 -21
  298. package/dist/cjs/types.native.js.map +0 -1
  299. package/dist/cjs/useGestureHandlerPan.cjs +0 -274
  300. package/dist/cjs/useGestureHandlerPan.native.js +0 -286
  301. package/dist/cjs/useGestureHandlerPan.native.js.map +0 -1
  302. package/dist/cjs/useKeyboardControllerSheet.cjs +0 -102
  303. package/dist/cjs/useKeyboardControllerSheet.native.js +0 -132
  304. package/dist/cjs/useKeyboardControllerSheet.native.js.map +0 -1
  305. package/dist/cjs/useSafeAreaInsets.cjs +0 -44
  306. package/dist/cjs/useSafeAreaInsets.native.js +0 -48
  307. package/dist/cjs/useSafeAreaInsets.native.js.map +0 -1
  308. package/dist/cjs/useSheet.cjs +0 -29
  309. package/dist/cjs/useSheet.native.js +0 -34
  310. package/dist/cjs/useSheet.native.js.map +0 -1
  311. package/dist/cjs/useSheetController.cjs +0 -52
  312. package/dist/cjs/useSheetController.native.js +0 -55
  313. package/dist/cjs/useSheetController.native.js.map +0 -1
  314. package/dist/cjs/useSheetOffscreenSize.cjs +0 -63
  315. package/dist/cjs/useSheetOffscreenSize.native.js +0 -70
  316. package/dist/cjs/useSheetOffscreenSize.native.js.map +0 -1
  317. package/dist/cjs/useSheetOpenState.cjs +0 -52
  318. package/dist/cjs/useSheetOpenState.native.js +0 -58
  319. package/dist/cjs/useSheetOpenState.native.js.map +0 -1
  320. package/dist/cjs/useSheetProviderProps.cjs +0 -181
  321. package/dist/cjs/useSheetProviderProps.native.js +0 -196
  322. package/dist/cjs/useSheetProviderProps.native.js.map +0 -1
  323. package/dist/cjs/useSheetScrollViewGestures.cjs +0 -191
  324. package/dist/cjs/useSheetScrollViewGestures.native.js +0 -163
  325. package/dist/cjs/useSheetScrollViewGestures.native.js.map +0 -1
  326. package/dist/cjs/webViewport.cjs +0 -75
  327. package/dist/cjs/webViewport.native.js +0 -81
  328. package/dist/cjs/webViewport.native.js.map +0 -1
  329. package/dist/esm/GestureDetectorWrapper.mjs +0 -29
  330. package/dist/esm/GestureDetectorWrapper.mjs.map +0 -1
  331. package/dist/esm/GestureDetectorWrapper.native.js +0 -30
  332. package/dist/esm/GestureDetectorWrapper.native.js.map +0 -1
  333. package/dist/esm/GestureSheetContext.mjs +0 -28
  334. package/dist/esm/GestureSheetContext.mjs.map +0 -1
  335. package/dist/esm/GestureSheetContext.native.js +0 -29
  336. package/dist/esm/GestureSheetContext.native.js.map +0 -1
  337. package/dist/esm/Sheet.mjs +0 -89
  338. package/dist/esm/Sheet.mjs.map +0 -1
  339. package/dist/esm/Sheet.native.js +0 -89
  340. package/dist/esm/Sheet.native.js.map +0 -1
  341. package/dist/esm/SheetContext.mjs +0 -6
  342. package/dist/esm/SheetContext.mjs.map +0 -1
  343. package/dist/esm/SheetContext.native.js +0 -6
  344. package/dist/esm/SheetContext.native.js.map +0 -1
  345. package/dist/esm/SheetController.mjs +0 -37
  346. package/dist/esm/SheetController.mjs.map +0 -1
  347. package/dist/esm/SheetController.native.js +0 -40
  348. package/dist/esm/SheetController.native.js.map +0 -1
  349. package/dist/esm/SheetImplementationCustom.mjs +0 -611
  350. package/dist/esm/SheetImplementationCustom.mjs.map +0 -1
  351. package/dist/esm/SheetImplementationCustom.native.js +0 -643
  352. package/dist/esm/SheetImplementationCustom.native.js.map +0 -1
  353. package/dist/esm/SheetScrollView.mjs +0 -301
  354. package/dist/esm/SheetScrollView.mjs.map +0 -1
  355. package/dist/esm/SheetScrollView.native.js +0 -309
  356. package/dist/esm/SheetScrollView.native.js.map +0 -1
  357. package/dist/esm/constants.mjs +0 -6
  358. package/dist/esm/constants.mjs.map +0 -1
  359. package/dist/esm/constants.native.js +0 -6
  360. package/dist/esm/constants.native.js.map +0 -1
  361. package/dist/esm/contexts.mjs +0 -7
  362. package/dist/esm/contexts.mjs.map +0 -1
  363. package/dist/esm/contexts.native.js +0 -7
  364. package/dist/esm/contexts.native.js.map +0 -1
  365. package/dist/esm/controller.mjs +0 -4
  366. package/dist/esm/controller.mjs.map +0 -1
  367. package/dist/esm/controller.native.js +0 -4
  368. package/dist/esm/controller.native.js.map +0 -1
  369. package/dist/esm/createSheet.mjs +0 -168
  370. package/dist/esm/createSheet.mjs.map +0 -1
  371. package/dist/esm/createSheet.native.js +0 -176
  372. package/dist/esm/createSheet.native.js.map +0 -1
  373. package/dist/esm/gestureState.mjs +0 -24
  374. package/dist/esm/gestureState.mjs.map +0 -1
  375. package/dist/esm/gestureState.native.js +0 -25
  376. package/dist/esm/gestureState.native.js.map +0 -1
  377. package/dist/esm/helpers.mjs +0 -10
  378. package/dist/esm/helpers.mjs.map +0 -1
  379. package/dist/esm/helpers.native.js +0 -11
  380. package/dist/esm/helpers.native.js.map +0 -1
  381. package/dist/esm/index.mjs +0 -14
  382. package/dist/esm/index.mjs.map +0 -1
  383. package/dist/esm/index.native.js +0 -14
  384. package/dist/esm/index.native.js.map +0 -1
  385. package/dist/esm/keyboardAvoidance.mjs +0 -66
  386. package/dist/esm/keyboardAvoidance.mjs.map +0 -1
  387. package/dist/esm/keyboardAvoidance.native.js +0 -69
  388. package/dist/esm/keyboardAvoidance.native.js.map +0 -1
  389. package/dist/esm/nativeSheet.mjs +0 -73
  390. package/dist/esm/nativeSheet.mjs.map +0 -1
  391. package/dist/esm/nativeSheet.native.js +0 -80
  392. package/dist/esm/nativeSheet.native.js.map +0 -1
  393. package/dist/esm/setupGestureHandler.mjs +0 -29
  394. package/dist/esm/setupGestureHandler.mjs.map +0 -1
  395. package/dist/esm/setupGestureHandler.native.js +0 -31
  396. package/dist/esm/setupGestureHandler.native.js.map +0 -1
  397. package/dist/esm/types.mjs +0 -2
  398. package/dist/esm/types.mjs.map +0 -1
  399. package/dist/esm/types.native.js +0 -2
  400. package/dist/esm/types.native.js.map +0 -1
  401. package/dist/esm/useGestureHandlerPan.mjs +0 -249
  402. package/dist/esm/useGestureHandlerPan.mjs.map +0 -1
  403. package/dist/esm/useGestureHandlerPan.native.js +0 -258
  404. package/dist/esm/useGestureHandlerPan.native.js.map +0 -1
  405. package/dist/esm/useKeyboardControllerSheet.mjs +0 -77
  406. package/dist/esm/useKeyboardControllerSheet.mjs.map +0 -1
  407. package/dist/esm/useKeyboardControllerSheet.native.js +0 -104
  408. package/dist/esm/useKeyboardControllerSheet.native.js.map +0 -1
  409. package/dist/esm/useSafeAreaInsets.mjs +0 -7
  410. package/dist/esm/useSafeAreaInsets.mjs.map +0 -1
  411. package/dist/esm/useSafeAreaInsets.native.js +0 -8
  412. package/dist/esm/useSafeAreaInsets.native.js.map +0 -1
  413. package/dist/esm/useSheet.mjs +0 -4
  414. package/dist/esm/useSheet.mjs.map +0 -1
  415. package/dist/esm/useSheet.native.js +0 -6
  416. package/dist/esm/useSheet.native.js.map +0 -1
  417. package/dist/esm/useSheetController.mjs +0 -15
  418. package/dist/esm/useSheetController.mjs.map +0 -1
  419. package/dist/esm/useSheetController.native.js +0 -15
  420. package/dist/esm/useSheetController.native.js.map +0 -1
  421. package/dist/esm/useSheetOffscreenSize.mjs +0 -38
  422. package/dist/esm/useSheetOffscreenSize.mjs.map +0 -1
  423. package/dist/esm/useSheetOffscreenSize.native.js +0 -42
  424. package/dist/esm/useSheetOffscreenSize.native.js.map +0 -1
  425. package/dist/esm/useSheetOpenState.mjs +0 -27
  426. package/dist/esm/useSheetOpenState.mjs.map +0 -1
  427. package/dist/esm/useSheetOpenState.native.js +0 -30
  428. package/dist/esm/useSheetOpenState.native.js.map +0 -1
  429. package/dist/esm/useSheetProviderProps.mjs +0 -145
  430. package/dist/esm/useSheetProviderProps.mjs.map +0 -1
  431. package/dist/esm/useSheetProviderProps.native.js +0 -157
  432. package/dist/esm/useSheetProviderProps.native.js.map +0 -1
  433. package/dist/esm/useSheetScrollViewGestures.mjs +0 -166
  434. package/dist/esm/useSheetScrollViewGestures.mjs.map +0 -1
  435. package/dist/esm/useSheetScrollViewGestures.native.js +0 -135
  436. package/dist/esm/useSheetScrollViewGestures.native.js.map +0 -1
  437. package/dist/esm/webViewport.mjs +0 -43
  438. package/dist/esm/webViewport.mjs.map +0 -1
  439. package/dist/esm/webViewport.native.js +0 -46
  440. package/dist/esm/webViewport.native.js.map +0 -1
  441. package/dist/jsx/GestureDetectorWrapper.mjs +0 -29
  442. package/dist/jsx/GestureDetectorWrapper.mjs.map +0 -1
  443. package/dist/jsx/GestureDetectorWrapper.native.js +0 -58
  444. package/dist/jsx/GestureDetectorWrapper.native.js.map +0 -1
  445. package/dist/jsx/GestureSheetContext.mjs +0 -28
  446. package/dist/jsx/GestureSheetContext.mjs.map +0 -1
  447. package/dist/jsx/GestureSheetContext.native.js +0 -58
  448. package/dist/jsx/GestureSheetContext.native.js.map +0 -1
  449. package/dist/jsx/Sheet.mjs +0 -89
  450. package/dist/jsx/Sheet.mjs.map +0 -1
  451. package/dist/jsx/Sheet.native.js +0 -122
  452. package/dist/jsx/Sheet.native.js.map +0 -1
  453. package/dist/jsx/SheetContext.mjs +0 -6
  454. package/dist/jsx/SheetContext.mjs.map +0 -1
  455. package/dist/jsx/SheetContext.native.js +0 -37
  456. package/dist/jsx/SheetContext.native.js.map +0 -1
  457. package/dist/jsx/SheetController.mjs +0 -37
  458. package/dist/jsx/SheetController.mjs.map +0 -1
  459. package/dist/jsx/SheetController.native.js +0 -79
  460. package/dist/jsx/SheetController.native.js.map +0 -1
  461. package/dist/jsx/SheetImplementationCustom.mjs +0 -611
  462. package/dist/jsx/SheetImplementationCustom.mjs.map +0 -1
  463. package/dist/jsx/SheetImplementationCustom.native.js +0 -694
  464. package/dist/jsx/SheetImplementationCustom.native.js.map +0 -1
  465. package/dist/jsx/SheetScrollView.mjs +0 -301
  466. package/dist/jsx/SheetScrollView.mjs.map +0 -1
  467. package/dist/jsx/SheetScrollView.native.js +0 -348
  468. package/dist/jsx/SheetScrollView.native.js.map +0 -1
  469. package/dist/jsx/constants.mjs +0 -6
  470. package/dist/jsx/constants.mjs.map +0 -1
  471. package/dist/jsx/constants.native.js +0 -37
  472. package/dist/jsx/constants.native.js.map +0 -1
  473. package/dist/jsx/contexts.mjs +0 -7
  474. package/dist/jsx/contexts.mjs.map +0 -1
  475. package/dist/jsx/contexts.native.js +0 -47
  476. package/dist/jsx/contexts.native.js.map +0 -1
  477. package/dist/jsx/controller.mjs +0 -4
  478. package/dist/jsx/controller.mjs.map +0 -1
  479. package/dist/jsx/controller.native.js +0 -34
  480. package/dist/jsx/controller.native.js.map +0 -1
  481. package/dist/jsx/createSheet.mjs +0 -168
  482. package/dist/jsx/createSheet.mjs.map +0 -1
  483. package/dist/jsx/createSheet.native.js +0 -204
  484. package/dist/jsx/createSheet.native.js.map +0 -1
  485. package/dist/jsx/gestureState.mjs +0 -24
  486. package/dist/jsx/gestureState.mjs.map +0 -1
  487. package/dist/jsx/gestureState.native.js +0 -56
  488. package/dist/jsx/gestureState.native.js.map +0 -1
  489. package/dist/jsx/helpers.mjs +0 -10
  490. package/dist/jsx/helpers.mjs.map +0 -1
  491. package/dist/jsx/helpers.native.js +0 -39
  492. package/dist/jsx/helpers.native.js.map +0 -1
  493. package/dist/jsx/index.js +0 -14
  494. package/dist/jsx/index.js.map +0 -1
  495. package/dist/jsx/index.mjs +0 -14
  496. package/dist/jsx/index.mjs.map +0 -1
  497. package/dist/jsx/index.native.js +0 -44
  498. package/dist/jsx/index.native.js.map +0 -1
  499. package/dist/jsx/keyboardAvoidance.mjs +0 -66
  500. package/dist/jsx/keyboardAvoidance.mjs.map +0 -1
  501. package/dist/jsx/keyboardAvoidance.native.js +0 -99
  502. package/dist/jsx/keyboardAvoidance.native.js.map +0 -1
  503. package/dist/jsx/nativeSheet.mjs +0 -73
  504. package/dist/jsx/nativeSheet.mjs.map +0 -1
  505. package/dist/jsx/nativeSheet.native.js +0 -109
  506. package/dist/jsx/nativeSheet.native.js.map +0 -1
  507. package/dist/jsx/setupGestureHandler.mjs +0 -29
  508. package/dist/jsx/setupGestureHandler.mjs.map +0 -1
  509. package/dist/jsx/setupGestureHandler.native.js +0 -60
  510. package/dist/jsx/setupGestureHandler.native.js.map +0 -1
  511. package/dist/jsx/types.mjs +0 -2
  512. package/dist/jsx/types.mjs.map +0 -1
  513. package/dist/jsx/types.native.js +0 -21
  514. package/dist/jsx/types.native.js.map +0 -1
  515. package/dist/jsx/useGestureHandlerPan.mjs +0 -249
  516. package/dist/jsx/useGestureHandlerPan.mjs.map +0 -1
  517. package/dist/jsx/useGestureHandlerPan.native.js +0 -286
  518. package/dist/jsx/useGestureHandlerPan.native.js.map +0 -1
  519. package/dist/jsx/useKeyboardControllerSheet.mjs +0 -77
  520. package/dist/jsx/useKeyboardControllerSheet.mjs.map +0 -1
  521. package/dist/jsx/useKeyboardControllerSheet.native.js +0 -132
  522. package/dist/jsx/useKeyboardControllerSheet.native.js.map +0 -1
  523. package/dist/jsx/useSafeAreaInsets.mjs +0 -7
  524. package/dist/jsx/useSafeAreaInsets.mjs.map +0 -1
  525. package/dist/jsx/useSafeAreaInsets.native.js +0 -48
  526. package/dist/jsx/useSafeAreaInsets.native.js.map +0 -1
  527. package/dist/jsx/useSheet.mjs +0 -4
  528. package/dist/jsx/useSheet.mjs.map +0 -1
  529. package/dist/jsx/useSheet.native.js +0 -34
  530. package/dist/jsx/useSheet.native.js.map +0 -1
  531. package/dist/jsx/useSheetController.mjs +0 -15
  532. package/dist/jsx/useSheetController.mjs.map +0 -1
  533. package/dist/jsx/useSheetController.native.js +0 -55
  534. package/dist/jsx/useSheetController.native.js.map +0 -1
  535. package/dist/jsx/useSheetOffscreenSize.mjs +0 -38
  536. package/dist/jsx/useSheetOffscreenSize.mjs.map +0 -1
  537. package/dist/jsx/useSheetOffscreenSize.native.js +0 -70
  538. package/dist/jsx/useSheetOffscreenSize.native.js.map +0 -1
  539. package/dist/jsx/useSheetOpenState.mjs +0 -27
  540. package/dist/jsx/useSheetOpenState.mjs.map +0 -1
  541. package/dist/jsx/useSheetOpenState.native.js +0 -58
  542. package/dist/jsx/useSheetOpenState.native.js.map +0 -1
  543. package/dist/jsx/useSheetProviderProps.mjs +0 -145
  544. package/dist/jsx/useSheetProviderProps.mjs.map +0 -1
  545. package/dist/jsx/useSheetProviderProps.native.js +0 -196
  546. package/dist/jsx/useSheetProviderProps.native.js.map +0 -1
  547. package/dist/jsx/useSheetScrollViewGestures.mjs +0 -166
  548. package/dist/jsx/useSheetScrollViewGestures.mjs.map +0 -1
  549. package/dist/jsx/useSheetScrollViewGestures.native.js +0 -163
  550. package/dist/jsx/useSheetScrollViewGestures.native.js.map +0 -1
  551. package/dist/jsx/webViewport.mjs +0 -43
  552. package/dist/jsx/webViewport.mjs.map +0 -1
  553. package/dist/jsx/webViewport.native.js +0 -81
  554. package/dist/jsx/webViewport.native.js.map +0 -1
  555. package/setup-gesture-handler/index.cjs +0 -2
  556. package/setup-gesture-handler/index.js +0 -2
  557. package/setup-gesture-handler/index.native.cjs +0 -2
  558. package/setup-gesture-handler/index.native.js +0 -2
  559. package/setup-gesture-handler.cjs +0 -1
package/dist/esm/index.js CHANGED
@@ -1,14 +1,13 @@
1
- export * from "./Sheet.mjs";
2
- export * from "./useSheet.mjs";
3
- export * from "./createSheet.mjs";
4
- export * from "./SheetController.mjs";
5
- export * from "./useSheetController.mjs";
6
- export * from "./useSheetOpenState.mjs";
7
- export * from "./useSheetOffscreenSize.mjs";
8
- export * from "./SheetScrollView.mjs";
9
- export * from "./nativeSheet.mjs";
10
- export * from "./types.mjs";
11
- export * from "./contexts.mjs";
12
- import { getGestureHandlerState, isGestureHandlerEnabled } from "./gestureState.mjs";
13
- export { getGestureHandlerState as unstable_getSheetGestureHandlerState, isGestureHandlerEnabled as unstable_isSheetGestureHandlerEnabled };
14
- //# sourceMappingURL=index.js.map
1
+ export * from './Sheet.js';
2
+ export * from './useSheet.js';
3
+ export * from './createSheet.js';
4
+ export * from './SheetController.js';
5
+ export * from './useSheetController.js';
6
+ export * from './useSheetOpenState.js';
7
+ export * from './useSheetOffscreenSize.js';
8
+ export * from './SheetScrollView.js';
9
+ export * from './nativeSheet.js';
10
+ export * from './types.js';
11
+ export * from './contexts.js';
12
+ export { getGestureHandlerState as unstable_getSheetGestureHandlerState, isGestureHandlerEnabled as unstable_isSheetGestureHandlerEnabled, } from './gestureState.js';
13
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getGestureHandlerState","isGestureHandlerEnabled"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAC4BA,sBAAA,EACCC,uBAAA,QACtB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAa,CAAA;AAC3B,cAAc,eAAgB,CAAA;AAC9B,cAAc,kBAAmB,CAAA;AACjC,cAAc,sBAAuB,CAAA;AACrC,cAAc,yBAA0B,CAAA;AACxC,cAAc,wBAAyB,CAAA;AACvC,cAAc,4BAA6B,CAAA;AAC3C,cAAc,sBAAuB,CAAA;AACrC,cAAc,kBAAmB,CAAA;AACjC,cAAc,YAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EACL,sBAAsB,IAAI,oCAAoC,EAC9D,uBAAuB,IAAI,qCAAqC,GACjE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,62 @@
1
+ export function getKeyboardAdjustedSheetY({ sheetY, screenSize, isKeyboardVisible, keyboardHeight, shouldTranslate, safeAreaTop, }) {
2
+ if (!shouldTranslate ||
3
+ !isKeyboardVisible ||
4
+ keyboardHeight <= 0 ||
5
+ screenSize <= 0 ||
6
+ sheetY >= screenSize) {
7
+ return sheetY;
8
+ }
9
+ return Math.max(safeAreaTop, sheetY - keyboardHeight);
10
+ }
11
+ export function getSheetReleasePosition({ positions, projectedEnd, currentPosition, frameSize, dismissOnSnapToBottom, snapPointsMode, isKeyboardVisible, isWeb, }) {
12
+ let closestPoint = 0;
13
+ let dist = Number.POSITIVE_INFINITY;
14
+ for (let i = 0; i < positions.length; i++) {
15
+ const position = positions[i];
16
+ const curDist = Math.abs(projectedEnd - position);
17
+ if (curDist < dist) {
18
+ dist = curDist;
19
+ closestPoint = i;
20
+ }
21
+ }
22
+ // the keyboard-open dismiss threshold is a WEB keyboard-handoff fix
23
+ // (75de9c9694). on native the keyboard is opaque and the sheet snaps purely by
24
+ // projected position (the pre-rework behavior), so gate it to web only —
25
+ // otherwise a native fit+dismiss sheet snaps to the wrong point with the
26
+ // keyboard up.
27
+ const dismissPoint = positions.length - 1;
28
+ const isKeyboardFitDismiss = isWeb &&
29
+ dismissOnSnapToBottom &&
30
+ isKeyboardVisible &&
31
+ snapPointsMode === 'fit' &&
32
+ positions.length === 2 &&
33
+ closestPoint === dismissPoint;
34
+ if (!isKeyboardFitDismiss) {
35
+ return closestPoint;
36
+ }
37
+ const openPosition = positions[0];
38
+ const dismissPosition = positions[dismissPoint];
39
+ const dismissDistance = dismissPosition - openPosition;
40
+ if (dismissDistance <= 0 || frameSize <= 0) {
41
+ return closestPoint;
42
+ }
43
+ const draggedDistance = Math.max(0, currentPosition - openPosition);
44
+ const thresholdBase = Math.min(frameSize, dismissDistance);
45
+ const dismissThreshold = Math.max(120, thresholdBase * 0.35);
46
+ return draggedDistance >= dismissThreshold ? closestPoint : 0;
47
+ }
48
+ export function getKeyboardOccludedHeight({ frameSize, isKeyboardVisible, keyboardHeight, screenSize, sheetY, }) {
49
+ if (!isKeyboardVisible ||
50
+ keyboardHeight <= 0 ||
51
+ screenSize <= 0 ||
52
+ frameSize <= 0 ||
53
+ sheetY === undefined ||
54
+ sheetY >= screenSize) {
55
+ return 0;
56
+ }
57
+ const keyboardTop = screenSize - keyboardHeight;
58
+ const sheetBottom = sheetY + frameSize;
59
+ const occludedHeight = Math.ceil(sheetBottom - keyboardTop);
60
+ return Math.min(frameSize, Math.max(0, occludedHeight));
61
+ }
62
+ //# sourceMappingURL=keyboardAvoidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboardAvoidance.js","sourceRoot":"","sources":["../../src/keyboardAvoidance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { YStack } from '@hanzogui/stacks';
3
+ import { useEffect, useRef } from 'react';
4
+ import { View } from 'react-native';
5
+ import { SheetProvider } from './SheetContext.js';
6
+ import { useSheetOpenState } from './useSheetOpenState.js';
7
+ import { useSheetProviderProps } from './useSheetProviderProps.js';
8
+ const nativeSheets = {
9
+ ios: null,
10
+ };
11
+ export function getNativeSheet(platform) {
12
+ return nativeSheets[platform];
13
+ }
14
+ export function setupNativeSheet(platform, RNIOSModal) {
15
+ const { ModalSheetView, ModalSheetViewMainContent } = RNIOSModal;
16
+ if (platform === 'ios') {
17
+ nativeSheets[platform] = (props) => {
18
+ const state = useSheetOpenState(props);
19
+ const providerProps = useSheetProviderProps(props, state);
20
+ // const { position } = providerProps
21
+ // const { positions } = useSheetSnapPoints(providerProps)
22
+ const { open, setOpen } = state;
23
+ const ref = useRef(undefined);
24
+ useEffect(() => {
25
+ if (open) {
26
+ ref.current?.presentModal();
27
+ }
28
+ else {
29
+ ref.current?.dismissModal();
30
+ }
31
+ }, [open]);
32
+ function setOpenInternal(next) {
33
+ props.onOpenChange?.(open);
34
+ setOpen(next);
35
+ }
36
+ // modalContentPreferredContentSize={{
37
+ // mode: 'percent',
38
+ // percentWidth: '100%',
39
+ // percentHeight:
40
+ // }}
41
+ return (_jsx(_Fragment, { children: _jsxs(SheetProvider, { setHasScrollView: emptyFn, keyboardOccludedHeight: 0, isKeyboardVisible: false, keyboardStableFrameHeight: 0, ...providerProps, onlyShowFrame: true, children: [_jsx(ModalSheetView, { ref: ref, onModalDidDismiss: () => setOpenInternal(false), children: _jsx(ModalSheetViewMainContent, { children: _jsx(View, { style: { flex: 1 }, children: props.children }) }) }), _jsx(YStack, { position: "absolute", opacity: 0, pointerEvents: "none", width: 0, height: 0, children: props.children })] }) }));
42
+ };
43
+ }
44
+ }
45
+ const emptyFn = () => {
46
+ // TODO
47
+ };
48
+ //# sourceMappingURL=nativeSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeSheet.js","sourceRoot":"","sources":["../../src/nativeSheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAoB,CAAA;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA6B,CAAA;AAMnE,MAAM,YAAY,GAAuE;IACvF,GAAG,EAAE,IAAI;CACV,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,QAA8B;IAC3D,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAA8B,EAC9B,UAAmE;IAEnE,MAAM,EAAE,cAAc,EAAE,yBAAyB,EAAE,GAAG,UAAU,CAAA;IAEhE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;YACtC,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACzD,qCAAqC;YACrC,0DAA0D;YAE1D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;YAC/B,MAAM,GAAG,GAAG,MAAM,CAGf,SAAS,CAAC,CAAA;YAEb,SAAS,CAAC,GAAG,EAAE;gBACb,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;gBAC7B,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;gBAC7B,CAAC;YACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAEV,SAAS,eAAe,CAAC,IAAa;gBACpC,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC;YAED,sCAAsC;YACtC,qBAAqB;YACrB,0BAA0B;YAC1B,mBAAmB;YACnB,KAAK;YAEL,OAAO,CACL,4BACE,MAAC,aAAa,IACZ,gBAAgB,EAAE,OAAO,EACzB,sBAAsB,EAAE,CAAC,EACzB,iBAAiB,EAAE,KAAK,EACxB,yBAAyB,EAAE,CAAC,KACxB,aAAa,EACjB,aAAa,mBAEb,KAAC,cAAc,IAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,YACvE,KAAC,yBAAyB,cACxB,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAAG,KAAK,CAAC,QAAQ,GAAQ,GACvB,GACb,EAIjB,KAAC,MAAM,IACL,QAAQ,EAAC,UAAU,EACnB,OAAO,EAAE,CAAC,EACV,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,YAER,KAAK,CAAC,QAAQ,GACR,IACK,GACf,CACJ,CAAA;QACH,CAAC,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,OAAO;AACT,CAAC,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Legacy setup - prefer `import '@hanzogui/native/setup-gesture-handler'` instead.
3
+ */
4
+ import { getGestureHandler } from '@hanzogui/native';
5
+ const SHEET_GESTURE_STATE_KEY = '__hanzogui_sheet_gesture_state__';
6
+ export function isGestureHandlerEnabled() {
7
+ const g = globalThis;
8
+ return g[SHEET_GESTURE_STATE_KEY]?.enabled ?? getGestureHandler().isEnabled;
9
+ }
10
+ export function setupGestureHandler(config) {
11
+ const g = globalThis;
12
+ if (g.__hanzogui_sheet_gesture_handler_setup) {
13
+ return;
14
+ }
15
+ g.__hanzogui_sheet_gesture_handler_setup = true;
16
+ const { Gesture, GestureDetector, ScrollView } = config;
17
+ if (Gesture && GestureDetector) {
18
+ g[SHEET_GESTURE_STATE_KEY] = {
19
+ enabled: true,
20
+ Gesture,
21
+ GestureDetector,
22
+ ScrollView: ScrollView || null,
23
+ RootView: null,
24
+ };
25
+ }
26
+ }
27
+ //# sourceMappingURL=setupGestureHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupGestureHandler.js","sourceRoot":"","sources":["../../src/setupGestureHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAIpD,MAAM,uBAAuB,GAAG,kCAAkC,CAAA;AAElE,MAAM,UAAU,uBAAuB;IACrC,MAAM,CAAC,GAAG,UAET,CAAA;IAED,OAAO,CAAC,CAAC,uBAAuB,CAAC,EAAE,OAAO,IAAI,iBAAiB,EAAE,CAAC,SAAS,CAAA;AAC7E,CAAC;AAQD,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,IAAI,CAAC,CAAC,sCAAsC,EAAE,CAAC;QAC7C,OAAM;IACR,CAAC;IACD,CAAC,CAAC,sCAAsC,GAAG,IAAI,CAAA;IAE/C,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IAEvD,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;QAC/B,CAAC,CAAC,uBAAuB,CAAC,GAAG;YAC3B,OAAO,EAAE,IAAI;YACb,OAAO;YACP,eAAe;YACf,UAAU,EAAE,UAAU,IAAI,IAAI;YAC9B,QAAQ,EAAE,IAAI;SACQ,CAAA;IAC1B,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,353 @@
1
+ import { isWeb } from '@hanzogui/constants';
2
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
3
+ import { getGestureHandlerState, isGestureHandlerEnabled } from './gestureState.js';
4
+ import { getSheetReleasePosition } from './keyboardAvoidance.js';
5
+ // threshold in pixels for considering sheet "at top" position
6
+ // allows for small measurement variations
7
+ const AT_TOP_THRESHOLD = 5;
8
+ const SCROLL_HANDOFF_THRESHOLD = 160;
9
+ /**
10
+ * Hook that creates a Gesture.Pan() handler for use with react-native-gesture-handler.
11
+ * This provides native-quality gesture coordination between Sheet and ScrollView.
12
+ *
13
+ * Uses state-based decision pattern (like gorhom/bottom-sheet and react-native-actions-sheet):
14
+ * - Both pan and scroll gestures run simultaneously
15
+ * - In onChange, we decide whether to process pan or let scroll handle it
16
+ * - scrollBridge.setScrollEnabled toggles scroll on/off as needed
17
+ *
18
+ * Decision matrix:
19
+ * 1. Sheet not fully open + swiping up -> pan handles (disable scroll)
20
+ * 2. Sheet fully open + swiping up -> scroll handles (blockPan)
21
+ * 3. Sheet not fully open + swiping down -> pan handles (unless scrolled)
22
+ * 4. Sheet fully open + swiping down + scrollY=0 -> pan handles
23
+ * 5. Sheet fully open + swiping down + scrollY>0 -> scroll handles (blockPan)
24
+ *
25
+ * Returns null for the gesture if RNGH is not available or drag is disabled.
26
+ */
27
+ export function useGestureHandlerPan(config) {
28
+ const { positions, frameSize, setPosition, animateTo, stopSpring, scrollBridge, setIsDragging, getCurrentPosition, resisted, disableDrag, isShowingInnerSheet, setAnimatedPosition, scrollGestureRef, } = config;
29
+ const gestureHandlerEnabled = isGestureHandlerEnabled();
30
+ const panGestureRef = useRef(null);
31
+ const releaseConfigRef = useRef({
32
+ dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
33
+ snapPointsMode: config.snapPointsMode ?? 'percent',
34
+ isKeyboardVisible: config.isKeyboardVisible === true,
35
+ });
36
+ releaseConfigRef.current = {
37
+ dismissOnSnapToBottom: config.dismissOnSnapToBottom === true,
38
+ snapPointsMode: config.snapPointsMode ?? 'percent',
39
+ isKeyboardVisible: config.isKeyboardVisible === true,
40
+ };
41
+ // use refs for values that need to persist across gesture lifecycle
42
+ // (useMemo closure variables get reset when gesture is recreated)
43
+ const gestureStateRef = useRef({
44
+ startY: 0,
45
+ // track last translation when pan was active (for position calculation after handoff)
46
+ lastPanTranslationY: 0,
47
+ // accumulated position offset from all pan movements
48
+ accumulatedOffset: 0,
49
+ // track previous translation for direction detection (like actions-sheet)
50
+ prevTranslationY: 0,
51
+ // track if scroll was engaged (scrollY > 0) at some point
52
+ scrollEngaged: false,
53
+ // positions frozen at gesture start — keyboard may dismiss during drag (input blur),
54
+ // causing positions to revert. Frozen positions ensure stable snap calculation.
55
+ frozenPositions: [],
56
+ frozenMinY: 0,
57
+ frozenIsKeyboardVisible: false,
58
+ // whether pan gesture actually started (vs just a tap in onBegin)
59
+ panStarted: false,
60
+ startedBelowTop: false,
61
+ upwardDragAfterTop: 0,
62
+ scrollUnlockedAfterTop: false,
63
+ keepScrollLockedAfterEnd: false,
64
+ });
65
+ const unlockScrollTimer = useRef(null);
66
+ useEffect(() => {
67
+ return () => {
68
+ if (unlockScrollTimer.current) {
69
+ clearTimeout(unlockScrollTimer.current);
70
+ unlockScrollTimer.current = null;
71
+ }
72
+ };
73
+ }, []);
74
+ const onStart = useCallback(() => {
75
+ stopSpring();
76
+ }, [stopSpring]);
77
+ const onEnd = useCallback((closestPoint, animationOverride, keepScrollLocked = false) => {
78
+ if (unlockScrollTimer.current) {
79
+ clearTimeout(unlockScrollTimer.current);
80
+ unlockScrollTimer.current = null;
81
+ }
82
+ setIsDragging(false);
83
+ scrollBridge.setParentDragging(false);
84
+ scrollBridge.lockScrollAtTop = false;
85
+ if (keepScrollLocked) {
86
+ scrollBridge.setScrollEnabled?.(false, 0);
87
+ unlockScrollTimer.current = setTimeout(() => {
88
+ unlockScrollTimer.current = null;
89
+ scrollBridge.setScrollEnabled?.(true);
90
+ }, 160);
91
+ }
92
+ else {
93
+ // re-enable scroll when gesture ends
94
+ scrollBridge.setScrollEnabled?.(true);
95
+ }
96
+ setPosition(closestPoint);
97
+ animateTo(closestPoint, animationOverride);
98
+ }, [setIsDragging, scrollBridge, setPosition, animateTo]);
99
+ const panGesture = useMemo(() => {
100
+ // don't create gesture if disabled or RNGH not available
101
+ if (!gestureHandlerEnabled || disableDrag || isShowingInnerSheet || !frameSize) {
102
+ return null;
103
+ }
104
+ const { Gesture } = getGestureHandlerState();
105
+ if (!Gesture) {
106
+ return null;
107
+ }
108
+ const minY = positions[0];
109
+ const gs = gestureStateRef.current; // shorthand
110
+ // simultaneousHandlers pattern from react-native-actions-sheet
111
+ // both gestures run simultaneously, we use blockPan to decide who handles
112
+ const gesture = Gesture.Pan()
113
+ .withRef(panGestureRef)
114
+ // NO manualActivation - let both gestures run via simultaneousHandlers
115
+ // activeOffsetY: activate pan when user moves 10px vertically (required on Android)
116
+ .activeOffsetY([-10, 10])
117
+ // failOffsetX: cancel pan if user moves 20px horizontally (horizontal scroll takes over)
118
+ .failOffsetX([-20, 20])
119
+ .shouldCancelWhenOutside(false)
120
+ .onBegin(() => {
121
+ // onBegin fires on ANY touch (including taps to focus inputs).
122
+ // We do NOT set isDragging here — that would block keyboard animation.
123
+ // Instead, isDragging is set in onStart (actual pan gesture recognized).
124
+ gs.panStarted = false;
125
+ // lightweight: pause keyboard handler to suppress hide events during gesture.
126
+ // This prevents keyboard flicker if input blurs before onStart.
127
+ // If this is just a tap, onFinalize un-pauses without setting isDragging.
128
+ if (config.pauseKeyboardHandler) {
129
+ config.pauseKeyboardHandler.current = true;
130
+ }
131
+ // check position at gesture begin - before direction is known
132
+ const pos = getCurrentPosition();
133
+ const atTop = pos <= minY + AT_TOP_THRESHOLD;
134
+ const currentScrollY = scrollBridge.y;
135
+ gs.startY = pos;
136
+ gs.lastPanTranslationY = 0;
137
+ gs.accumulatedOffset = 0;
138
+ gs.prevTranslationY = 0;
139
+ gs.scrollEngaged = currentScrollY > 0; // track if scroll is already engaged
140
+ // freeze positions at gesture start so keyboard dismiss during drag
141
+ // doesn't change snap targets mid-gesture
142
+ gs.frozenPositions = [...positions];
143
+ gs.frozenMinY = minY;
144
+ gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible;
145
+ gs.startedBelowTop = !atTop;
146
+ gs.upwardDragAfterTop = 0;
147
+ gs.scrollUnlockedAfterTop = false;
148
+ gs.keepScrollLockedAfterEnd = false;
149
+ scrollBridge.lockScrollAtTop = false;
150
+ if (unlockScrollTimer.current) {
151
+ clearTimeout(unlockScrollTimer.current);
152
+ unlockScrollTimer.current = null;
153
+ }
154
+ // if sheet not at top, DISABLE SCROLL immediately and lock to 0
155
+ // this prevents scroll from firing before pan takes over
156
+ if (!atTop) {
157
+ scrollBridge.setScrollEnabled?.(false, 0);
158
+ }
159
+ })
160
+ .onStart(() => {
161
+ // onStart fires only when pan gesture is recognized (finger moved enough).
162
+ // Safe to set isDragging here — this won't fire for taps to focus inputs.
163
+ gs.panStarted = true;
164
+ setIsDragging(true);
165
+ scrollBridge.initialPosition = gs.startY;
166
+ onStart();
167
+ })
168
+ .onChange((event) => {
169
+ const { translationY } = event;
170
+ // determine direction by comparing translations (like react-native-actions-sheet)
171
+ // this is more reliable than velocity which can be noisy during direction changes
172
+ const isSwipingDown = gs.prevTranslationY < translationY;
173
+ const deltaY = translationY - gs.prevTranslationY;
174
+ gs.prevTranslationY = translationY;
175
+ const scrollY = scrollBridge.y;
176
+ // track if scroll has been engaged at some point (needed for handoff detection)
177
+ if (scrollY > 0) {
178
+ gs.scrollEngaged = true;
179
+ }
180
+ // calculate current sheet position based on accumulated offset
181
+ const currentPos = gs.startY + gs.accumulatedOffset;
182
+ const isCurrentlyAtTop = currentPos <= minY + AT_TOP_THRESHOLD;
183
+ const nodeIsScrolling = scrollY > 0;
184
+ // decision matrix (from react-native-actions-sheet pattern)
185
+ // each frame, decide who handles the movement based on current state
186
+ //
187
+ // Key insight: we track accumulated offset separately from translation
188
+ // This allows seamless handoffs between pan and scroll
189
+ let panHandles = false;
190
+ // BUG #1 FIX: Check if scroll content is actually scrollable
191
+ // If content doesn't fill the ScrollView, gestures should pass through to sheet
192
+ const hasScrollableContent = scrollBridge.hasScrollableContent !== false;
193
+ if (!isCurrentlyAtTop) {
194
+ // sheet not at top position
195
+ if (isSwipingDown) {
196
+ // swiping down while sheet not at top
197
+ // BUG #1 FIX: if content not scrollable, pan always handles
198
+ // only scroll if scrollY > 0 AND content is scrollable, otherwise pan handles
199
+ panHandles = !nodeIsScrolling || !hasScrollableContent;
200
+ }
201
+ else {
202
+ // swiping up while sheet not at top -> pan drags sheet up
203
+ panHandles = true;
204
+ }
205
+ }
206
+ else {
207
+ // sheet is at top position
208
+ if (isSwipingDown) {
209
+ // swiping down at top
210
+ if (nodeIsScrolling && hasScrollableContent) {
211
+ // scroll > 0 and content scrollable, let scroll handle (scroll back towards 0)
212
+ panHandles = false;
213
+ }
214
+ else if (gs.scrollEngaged && hasScrollableContent) {
215
+ // scroll WAS > 0 but now is 0 -> handoff from scroll to pan
216
+ // pan takes over to drag sheet down
217
+ panHandles = true;
218
+ }
219
+ else {
220
+ // scroll never engaged OR content not scrollable, just drag sheet down
221
+ panHandles = true;
222
+ }
223
+ }
224
+ else {
225
+ // swiping up at top
226
+ // if there's scrollable content, let scroll handle so user can scroll into content
227
+ // resistance only applies when there's NO scrollable content
228
+ if (hasScrollableContent) {
229
+ if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
230
+ gs.upwardDragAfterTop += Math.max(0, -deltaY);
231
+ if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
232
+ gs.scrollUnlockedAfterTop = true;
233
+ panHandles = false;
234
+ }
235
+ else {
236
+ panHandles = true;
237
+ }
238
+ }
239
+ else {
240
+ // content is scrollable - let scroll handle (user wants to scroll down into content)
241
+ panHandles = false;
242
+ }
243
+ }
244
+ else {
245
+ // no scrollable content -> pan handles for resistance effect
246
+ panHandles = true;
247
+ }
248
+ }
249
+ }
250
+ if (panHandles) {
251
+ scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
252
+ // pan handles - disable scroll and move sheet
253
+ // when swiping down at top after scroll was engaged: lock at current scroll position
254
+ // (handoff from scroll to pan — preserve scroll offset)
255
+ // otherwise: always lock scroll to 0 (prevents scroll from firing during sheet drag)
256
+ const lockTo = isCurrentlyAtTop && isSwipingDown && gs.scrollEngaged ? undefined : 0;
257
+ scrollBridge.setScrollEnabled?.(false, lockTo);
258
+ // accumulate the delta for position calculation
259
+ gs.accumulatedOffset += deltaY;
260
+ const newPosition = resisted(gs.startY + gs.accumulatedOffset, minY);
261
+ // update position
262
+ scrollBridge.paneY = newPosition;
263
+ setAnimatedPosition(newPosition);
264
+ scrollBridge.setParentDragging(newPosition > minY);
265
+ }
266
+ else {
267
+ scrollBridge.lockScrollAtTop = false;
268
+ // scroll handles - enable scroll so it can move freely
269
+ scrollBridge.setScrollEnabled?.(true);
270
+ scrollBridge.setParentDragging(false);
271
+ // don't accumulate offset when scroll is handling
272
+ }
273
+ })
274
+ .onEnd((event) => {
275
+ const { velocityY } = event;
276
+ const currentPos = gs.startY + gs.accumulatedOffset;
277
+ const keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop;
278
+ // clear scroll lock
279
+ scrollBridge.lockScrollAtTop = false;
280
+ scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : undefined;
281
+ gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd;
282
+ // use frozen positions from gesture start — keyboard may have dismissed
283
+ // during drag (input blur), reverting activePositions. Frozen positions
284
+ // ensure the snap index reflects the user's intent at drag start.
285
+ // The onEnd callback's animateTo uses latest activePositions for the
286
+ // actual animation target, so the sheet ends up at the right place.
287
+ const snapPositions = gs.frozenPositions.length > 0 ? gs.frozenPositions : positions;
288
+ const snapMinY = gs.frozenPositions.length > 0 ? gs.frozenMinY : minY;
289
+ // if sheet is at top and scroll is engaged, just stay at top
290
+ if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
291
+ onEnd(0, undefined, keepScrollLockedAfterEnd);
292
+ return;
293
+ }
294
+ // snap calculation using frozen positions
295
+ const velocity = velocityY / 1000;
296
+ const projectedEnd = currentPos + frameSize * velocity * 0.2;
297
+ const releaseConfig = releaseConfigRef.current;
298
+ const closestPoint = getSheetReleasePosition({
299
+ positions: snapPositions,
300
+ projectedEnd,
301
+ currentPosition: currentPos,
302
+ frameSize,
303
+ dismissOnSnapToBottom: releaseConfig.dismissOnSnapToBottom,
304
+ snapPointsMode: releaseConfig.snapPointsMode,
305
+ isKeyboardVisible: gs.frozenIsKeyboardVisible,
306
+ isWeb,
307
+ });
308
+ onEnd(closestPoint, undefined, keepScrollLockedAfterEnd);
309
+ })
310
+ .onFinalize(() => {
311
+ // clear scroll lock on finalize too (safety)
312
+ scrollBridge.lockScrollAtTop = false;
313
+ scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : undefined;
314
+ if (gs.panStarted) {
315
+ // real pan gesture — reset isDragging (also un-pauses keyboard handler + flushes)
316
+ setIsDragging(false);
317
+ }
318
+ else {
319
+ // just a tap (onBegin fired but onStart never did) — un-pause keyboard handler
320
+ // without setting isDragging (which would block keyboard animation effect)
321
+ if (config.pauseKeyboardHandler) {
322
+ config.pauseKeyboardHandler.current = false;
323
+ }
324
+ }
325
+ })
326
+ .runOnJS(true);
327
+ // if we have a scroll gesture ref, make pan simultaneous with it
328
+ // this allows both gestures to run and we decide in onChange who handles it
329
+ if (scrollGestureRef?.current) {
330
+ return gesture.simultaneousWithExternalGesture(scrollGestureRef.current);
331
+ }
332
+ return gesture;
333
+ }, [
334
+ gestureHandlerEnabled,
335
+ disableDrag,
336
+ isShowingInnerSheet,
337
+ frameSize,
338
+ positions,
339
+ scrollBridge,
340
+ getCurrentPosition,
341
+ resisted,
342
+ onStart,
343
+ onEnd,
344
+ setIsDragging,
345
+ setAnimatedPosition,
346
+ ]);
347
+ return {
348
+ panGesture,
349
+ panGestureRef,
350
+ gestureHandlerEnabled,
351
+ };
352
+ }
353
+ //# sourceMappingURL=useGestureHandlerPan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGestureHandlerPan.js","sourceRoot":"","sources":["../../src/useGestureHandlerPan.tsx"],"names":[],"mappings":"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"}