@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
@@ -1,611 +0,0 @@
1
- import { AnimatePresence } from "@hanzogui/animate-presence";
2
- import { useComposedRefs } from "@hanzogui/compose-refs";
3
- import { isWeb, useIsomorphicLayoutEffect } from "@hanzogui/constants";
4
- import { LayoutMeasurementController, View, useConfiguration, useDidFinishSSR, useEvent, useThemeName } from "@hanzogui/core";
5
- import { Portal, needsPortalRepropagation } from "@hanzogui/portal";
6
- import React, { useState } from "react";
7
- import { Dimensions, PanResponder, View as View$1 } from "react-native-web";
8
- import { ParentSheetContext, SheetInsideSheetContext } from "./contexts.mjs";
9
- import { GestureDetectorWrapper } from "./GestureDetectorWrapper.mjs";
10
- import { getGestureHandlerState } from "./gestureState.mjs";
11
- import { GestureSheetProvider } from "./GestureSheetContext.mjs";
12
- import { resisted } from "./helpers.mjs";
13
- import { getKeyboardAdjustedSheetY, getKeyboardOccludedHeight, getSheetReleasePosition } from "./keyboardAvoidance.mjs";
14
- import { MIN_KEYBOARD_HEIGHT, getMaxViewportHeight, getStableLayoutViewportHeight, getWebKeyboardResizeHeight, getWebVisualViewportOffsetTop } from "./webViewport.mjs";
15
- import { SheetProvider } from "./SheetContext.mjs";
16
- import { useGestureHandlerPan } from "./useGestureHandlerPan.mjs";
17
- import { useKeyboardControllerSheet } from "./useKeyboardControllerSheet.mjs";
18
- import { useSafeAreaInsets } from "./useSafeAreaInsets.mjs";
19
- import { useSheetOpenState } from "./useSheetOpenState.mjs";
20
- import { useSheetProviderProps } from "./useSheetProviderProps.mjs";
21
- import { jsx, jsxs } from "react/jsx-runtime";
22
- const hiddenSize = 10000.1;
23
- const rnghRootStyleOpen = {
24
- width: "100%",
25
- height: "100%"
26
- };
27
- const rnghRootStyleClosed = {
28
- width: "100%",
29
- height: 0
30
- };
31
- let sheetHiddenStyleSheet = null;
32
- const relativeDimensionTo = isWeb ? "window" : "screen";
33
- function getStableViewportHeight() {
34
- if (isWeb && typeof window !== "undefined") return getStableLayoutViewportHeight();
35
- return Dimensions.get(relativeDimensionTo).height;
36
- }
37
- const SheetImplementationCustom = React.forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
38
- const parentSheet = React.useContext(ParentSheetContext);
39
- const safeAreaTopInset = useSafeAreaInsets()?.top ?? 0;
40
- const {
41
- transition,
42
- transitionConfig: transitionConfigProp,
43
- modal = false,
44
- zIndex = parentSheet.zIndex + 1,
45
- moveOnKeyboardChange = false,
46
- unmountChildrenWhenHidden = false,
47
- disableTransparencyHide = false,
48
- portalProps,
49
- containerComponent: ContainerComponent = React.Fragment,
50
- onAnimationComplete
51
- } = props;
52
- const state = useSheetOpenState(props);
53
- const [overlayComponent, setOverlayComponent] = React.useState(null);
54
- const providerProps = useSheetProviderProps(props, state, {
55
- onOverlayComponent: setOverlayComponent
56
- });
57
- const {
58
- frameSize,
59
- setFrameSize,
60
- dismissOnSnapToBottom,
61
- snapPoints,
62
- snapPointsMode,
63
- hasFit,
64
- position,
65
- setPosition,
66
- scrollBridge,
67
- screenSize,
68
- setMaxContentSize,
69
- maxSnapPoint
70
- } = providerProps;
71
- const {
72
- open,
73
- controller,
74
- isHidden
75
- } = state;
76
- const openRef = React.useRef(open);
77
- openRef.current = open;
78
- const ref = useComposedRefs(forwardedRef, React.useRef(void 0), providerProps.contentRef);
79
- const {
80
- animationDriver
81
- } = useConfiguration();
82
- if (!animationDriver) throw new Error(`Sheet requires an animation driver to be set`);
83
- const transitionConfig = (() => {
84
- if (transitionConfigProp) return transitionConfigProp;
85
- const [animationProp, animationPropConfig] = !transition ? [] : Array.isArray(transition) ? transition : [transition];
86
- if (animationProp && animationDriver.animations?.[animationProp]) return {
87
- ...animationDriver.animations[animationProp],
88
- ...animationPropConfig
89
- };
90
- return null;
91
- })();
92
- const [isShowingInnerSheet, setIsShowingInnerSheet] = React.useState(false);
93
- const shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet && needsPortalRepropagation();
94
- const sheetInsideSheet = React.useContext(SheetInsideSheetContext);
95
- const onInnerSheet = React.useCallback(hasChild => {
96
- setIsShowingInnerSheet(hasChild);
97
- }, []);
98
- const {
99
- keyboardHeight,
100
- isKeyboardVisible,
101
- dismissKeyboard,
102
- pauseKeyboardHandler,
103
- flushPendingHide
104
- } = useKeyboardControllerSheet({
105
- enabled: Boolean(moveOnKeyboardChange)
106
- });
107
- const stableFrameSize = React.useRef(frameSize);
108
- React.useEffect(() => {
109
- if (open && frameSize) stableFrameSize.current = frameSize;
110
- }, [open, frameSize]);
111
- const isWebKbSheet = isWeb && hasFit && moveOnKeyboardChange;
112
- const isNativeKbFitSheet = !isWeb && hasFit && Boolean(moveOnKeyboardChange);
113
- const preKeyboardFrameSize = React.useRef(0);
114
- React.useEffect(() => {
115
- if (isNativeKbFitSheet && open && !isKeyboardVisible && frameSize > 0) preKeyboardFrameSize.current = frameSize;
116
- }, [isNativeKbFitSheet, open, isKeyboardVisible, frameSize]);
117
- const effScreenSize = isWebKbSheet ? getStableViewportHeight() : screenSize;
118
- const effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize;
119
- const positions = React.useMemo(() => snapPoints.map(point => getYPositions(snapPointsMode, point, effScreenSize, effectiveFrameSize)), [effScreenSize, effectiveFrameSize, snapPoints, snapPointsMode]);
120
- const [isDragging, setIsDragging_] = React.useState(false);
121
- const isDraggingRef = React.useRef(false);
122
- const setIsDragging = React.useCallback(val => {
123
- isDraggingRef.current = val;
124
- pauseKeyboardHandler.current = val;
125
- setIsDragging_(val);
126
- if (!val) flushPendingHide();
127
- }, [pauseKeyboardHandler, flushPendingHide]);
128
- const activePositionsRef = React.useRef(positions);
129
- const activePositions = React.useMemo(() => {
130
- if (isDragging || isDraggingRef.current) return activePositionsRef.current;
131
- let result;
132
- if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else result = positions.map(p => getKeyboardAdjustedSheetY({
133
- sheetY: p,
134
- screenSize: effScreenSize,
135
- isKeyboardVisible,
136
- keyboardHeight,
137
- shouldTranslate: true,
138
- safeAreaTop: isWeb ? getWebVisualViewportOffsetTop() : safeAreaTopInset
139
- }));
140
- activePositionsRef.current = result;
141
- return result;
142
- }, [positions, isKeyboardVisible, keyboardHeight, effScreenSize, isDragging, safeAreaTopInset]);
143
- const keyboardOccludedHeight = getKeyboardOccludedHeight({
144
- frameSize: effectiveFrameSize,
145
- isKeyboardVisible,
146
- keyboardHeight,
147
- screenSize: effScreenSize,
148
- sheetY: position >= 0 ? activePositions[position] : void 0
149
- });
150
- const keyboardStableFrameHeight = isWebKbSheet && isKeyboardVisible && frameSize > 0 ? frameSize : isNativeKbFitSheet && isKeyboardVisible && preKeyboardFrameSize.current > 0 ? preKeyboardFrameSize.current : 0;
151
- const {
152
- useAnimatedNumber,
153
- useAnimatedNumberStyle
154
- } = animationDriver;
155
- const AnimatedView = animationDriver.View ?? View;
156
- useIsomorphicLayoutEffect(() => {
157
- if (!(sheetInsideSheet && open)) return;
158
- sheetInsideSheet(true);
159
- return () => {
160
- sheetInsideSheet(false);
161
- };
162
- }, [sheetInsideSheet, open]);
163
- const nextParentContext = React.useMemo(() => ({
164
- zIndex
165
- }), [zIndex]);
166
- const startPosition = useDidFinishSSR() && screenSize ? screenSize : hiddenSize;
167
- const animatedNumber = useAnimatedNumber(startPosition);
168
- const at = React.useRef(startPosition);
169
- const hasntMeasured = at.current === hiddenSize;
170
- const [disableAnimation, setDisableAnimation] = useState(hasntMeasured);
171
- const skipAdaptAnimation = React.useRef(false);
172
- if (controller?.skipNextAnimation) skipAdaptAnimation.current = true;
173
- const hasScrollView = React.useRef(false);
174
- const opacityFallbackTimer = React.useRef(null);
175
- const syncAnimatedPosition = useEvent(value => {
176
- at.current = value;
177
- scrollBridge.paneY = value;
178
- const minY = activePositions[0];
179
- const wasAtTop = scrollBridge.isAtTop;
180
- const nowAtTop = value <= minY + 5;
181
- if (wasAtTop === nowAtTop) return;
182
- scrollBridge.isAtTop = nowAtTop;
183
- if (nowAtTop) {
184
- if (scrollBridge.lockScrollAtTop) {
185
- if (scrollBridge.y > 0) {
186
- scrollBridge.forceScrollTo?.(0);
187
- scrollBridge.y = 0;
188
- }
189
- scrollBridge.scrollLockY = 0;
190
- scrollBridge.setScrollEnabled?.(false, 0);
191
- return;
192
- }
193
- if (scrollBridge.y > 0) {
194
- scrollBridge.forceScrollTo?.(0);
195
- scrollBridge.y = 0;
196
- }
197
- scrollBridge.scrollLockY = void 0;
198
- scrollBridge.setScrollEnabled?.(true);
199
- } else {
200
- scrollBridge.scrollLockY = 0;
201
- scrollBridge.setScrollEnabled?.(false);
202
- }
203
- });
204
- const setAnimatedPositionDirect = useEvent(value => {
205
- syncAnimatedPosition(value);
206
- animatedNumber.setValue(value, {
207
- type: "direct"
208
- });
209
- });
210
- const getAnimatedPosition = useEvent(() => {
211
- const value = animatedNumber.getValue();
212
- syncAnimatedPosition(value);
213
- return value;
214
- });
215
- function stopSpring() {
216
- animatedNumber.stop();
217
- if (scrollBridge.onFinishAnimate) {
218
- scrollBridge.onFinishAnimate();
219
- scrollBridge.onFinishAnimate = void 0;
220
- }
221
- }
222
- const animateTo = useEvent((position2, animationOverride) => {
223
- if (frameSize === 0) return;
224
- const closeTarget = isWeb ? Math.max(effScreenSize, getMaxViewportHeight()) : effScreenSize;
225
- let toValue = isHidden || position2 === -1 ? closeTarget : activePositions[position2];
226
- if (at.current === toValue) return;
227
- at.current = toValue;
228
- stopSpring();
229
- const isOpenAnimation = position2 !== -1 && !isHidden;
230
- if (opacityFallbackTimer.current) {
231
- clearTimeout(opacityFallbackTimer.current);
232
- opacityFallbackTimer.current = null;
233
- }
234
- const animationCompleteCallback = () => {
235
- syncAnimatedPosition(toValue);
236
- if (opacityFallbackTimer.current) {
237
- clearTimeout(opacityFallbackTimer.current);
238
- opacityFallbackTimer.current = null;
239
- }
240
- if (!isOpenAnimation && !openRef.current) setOpacity(0);
241
- onAnimationComplete?.({
242
- open: isOpenAnimation
243
- });
244
- controller?.onAnimationComplete?.({
245
- open: isOpenAnimation
246
- });
247
- };
248
- if (!isOpenAnimation) opacityFallbackTimer.current = setTimeout(() => {
249
- opacityFallbackTimer.current = null;
250
- if (!openRef.current) setOpacity(0);
251
- }, 1e3);
252
- if (skipAdaptAnimation.current) {
253
- skipAdaptAnimation.current = false;
254
- animatedNumber.setValue(toValue, {
255
- type: "timing",
256
- duration: 0
257
- }, animationCompleteCallback);
258
- return;
259
- }
260
- animatedNumber.setValue(toValue, animationOverride || {
261
- type: "spring",
262
- ...transitionConfig
263
- }, animationCompleteCallback);
264
- });
265
- useIsomorphicLayoutEffect(() => {
266
- if (hasntMeasured && screenSize && frameSize) {
267
- at.current = screenSize;
268
- animatedNumber.setValue(screenSize, {
269
- type: "timing",
270
- duration: 0
271
- }, () => {
272
- syncAnimatedPosition(screenSize);
273
- setTimeout(() => {
274
- setDisableAnimation(false);
275
- }, 10);
276
- });
277
- return;
278
- }
279
- if (disableAnimation) return;
280
- if (isDraggingRef.current) return;
281
- if (!frameSize || !screenSize || isHidden || hasntMeasured && !open) return;
282
- animateTo(position);
283
- if (position === -1) {
284
- scrollBridge.scrollLock = false;
285
- scrollBridge.scrollStartY = -1;
286
- }
287
- if (open && position >= 0) {
288
- const isTopPosition = position === 0;
289
- scrollBridge.isAtTop = isTopPosition;
290
- if (isTopPosition) {
291
- scrollBridge.scrollLockY = void 0;
292
- scrollBridge.setScrollEnabled?.(true);
293
- } else {
294
- scrollBridge.scrollLockY = 0;
295
- scrollBridge.setScrollEnabled?.(false);
296
- }
297
- }
298
- }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
299
- const disableDrag = props.disableDrag ?? controller?.disableDrag;
300
- useThemeName();
301
- const [blockPan, setBlockPan] = React.useState(false);
302
- const panResponder = React.useMemo(() => {
303
- if (disableDrag) return;
304
- if (!frameSize) return;
305
- if (isShowingInnerSheet) return;
306
- const minY = activePositions[0];
307
- scrollBridge.paneMinY = minY;
308
- let startY = at.current;
309
- function setPanning(val) {
310
- setIsDragging(val);
311
- if (!sheetHiddenStyleSheet) {
312
- sheetHiddenStyleSheet = document.createElement("style");
313
- if (typeof document.head !== "undefined") document.head.appendChild(sheetHiddenStyleSheet);
314
- }
315
- if (!val) sheetHiddenStyleSheet.innerText = "";else sheetHiddenStyleSheet.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }";
316
- }
317
- const release = ({
318
- vy
319
- }) => {
320
- scrollBridge.setParentDragging(false);
321
- if (scrollBridge.scrollLock) return;
322
- isExternalDrag = false;
323
- previouslyScrolling = false;
324
- setPanning(false);
325
- const currentPos = at.current;
326
- const closestPoint = getSheetReleasePosition({
327
- positions: activePositions,
328
- projectedEnd: currentPos + frameSize * vy * .2,
329
- currentPosition: currentPos,
330
- frameSize,
331
- dismissOnSnapToBottom,
332
- snapPointsMode,
333
- isKeyboardVisible,
334
- isWeb
335
- });
336
- setPosition(closestPoint);
337
- animateTo(closestPoint);
338
- };
339
- const finish = (_e, state2) => {
340
- release({
341
- vy: state2.vy,
342
- dragAt: state2.dy
343
- });
344
- };
345
- let previouslyScrolling = false;
346
- const onMoveShouldSet = (e, {
347
- dy
348
- }) => {
349
- function getShouldSet() {
350
- if (e.target === providerProps.handleRef.current) return true;
351
- if (scrollBridge.scrollNodeTouched) return false;
352
- if (scrollBridge.hasScrollableContent === true) {
353
- if (scrollBridge.scrollLock) return false;
354
- const isScrolled = scrollBridge.y !== 0;
355
- const isDraggingUp = dy < 0;
356
- const isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
357
- if (isScrolled) return false;
358
- if (isNearTop) {
359
- if (hasScrollView.current && isDraggingUp) return false;
360
- }
361
- }
362
- return Math.abs(dy) > 10;
363
- }
364
- const granted = getShouldSet();
365
- if (granted) scrollBridge.setParentDragging(true);
366
- return granted;
367
- };
368
- const grant = () => {
369
- setPanning(true);
370
- stopSpring();
371
- startY = getAnimatedPosition();
372
- };
373
- let isExternalDrag = false;
374
- scrollBridge.startPanDrag = () => {
375
- isExternalDrag = true;
376
- grant();
377
- };
378
- scrollBridge.drag = dy => {
379
- if (!isExternalDrag) {
380
- isExternalDrag = true;
381
- grant();
382
- }
383
- setAnimatedPositionDirect(resisted(dy + startY, minY));
384
- };
385
- scrollBridge.release = release;
386
- scrollBridge.snapToPosition = positionIndex => {
387
- isExternalDrag = false;
388
- setPanning(false);
389
- setPosition(positionIndex);
390
- animateTo(positionIndex);
391
- };
392
- return PanResponder.create({
393
- onMoveShouldSetPanResponder: onMoveShouldSet,
394
- onPanResponderTerminationRequest: () => false,
395
- onPanResponderGrant: grant,
396
- onPanResponderMove: (_e, {
397
- dy
398
- }) => {
399
- const to = resisted(dy + startY, minY);
400
- if (to <= minY) scrollBridge.setParentDragging(false);else scrollBridge.setParentDragging(true);
401
- setAnimatedPositionDirect(to);
402
- },
403
- onPanResponderEnd: finish,
404
- onPanResponderTerminate: finish,
405
- onPanResponderRelease: finish
406
- });
407
- }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, activePositions, setPosition, dismissOnSnapToBottom, snapPointsMode]);
408
- React.useEffect(() => {
409
- if (isDragging || isHidden || !open || disableAnimation) return;
410
- if (!frameSize || !screenSize) return;
411
- animateTo(position, {
412
- type: "timing",
413
- duration: 250
414
- });
415
- }, [isKeyboardVisible, keyboardHeight]);
416
- const wasDragging = React.useRef(false);
417
- React.useEffect(() => {
418
- if (isDragging) {
419
- wasDragging.current = true;
420
- return;
421
- }
422
- if (!wasDragging.current) return;
423
- wasDragging.current = false;
424
- if (!frameSize || !screenSize || isHidden || !open) return;
425
- animateTo(position);
426
- }, [isDragging]);
427
- React.useEffect(() => {
428
- if (!open && isKeyboardVisible) {
429
- dismissKeyboard();
430
- pauseKeyboardHandler.current = false;
431
- flushPendingHide();
432
- }
433
- }, [open]);
434
- const {
435
- panGesture,
436
- panGestureRef,
437
- gestureHandlerEnabled
438
- } = useGestureHandlerPan({
439
- positions: activePositions,
440
- frameSize,
441
- setPosition,
442
- animateTo,
443
- stopSpring,
444
- scrollBridge,
445
- setIsDragging,
446
- getCurrentPosition: getAnimatedPosition,
447
- resisted,
448
- disableDrag,
449
- isShowingInnerSheet,
450
- setAnimatedPosition: setAnimatedPositionDirect,
451
- dismissOnSnapToBottom,
452
- snapPointsMode,
453
- isKeyboardVisible,
454
- pauseKeyboardHandler
455
- });
456
- const ignoreLayoutForKeyboard = useEvent(() => isWeb && moveOnKeyboardChange && getWebKeyboardResizeHeight() >= MIN_KEYBOARD_HEIGHT);
457
- const handleAnimationViewLayout = useEvent(e => {
458
- if (!open && stableFrameSize.current !== 0) return;
459
- const layoutHeight = e.nativeEvent?.layout.height;
460
- if (ignoreLayoutForKeyboard() && frameSize > 0) return;
461
- const next = modal ? Math.min(layoutHeight, getStableViewportHeight()) : layoutHeight;
462
- if (!next) return;
463
- setFrameSize(Math.round(next));
464
- });
465
- const handleMaxContentViewLayout = React.useCallback(e => {
466
- if (ignoreLayoutForKeyboard() && screenSize > 0) return;
467
- const next = Math.min(e.nativeEvent?.layout.height, getStableViewportHeight());
468
- if (!next) return;
469
- setMaxContentSize(Math.round(next));
470
- }, [ignoreLayoutForKeyboard, screenSize]);
471
- const animatedStyle = useAnimatedNumberStyle(animatedNumber, React.useCallback(val => {
472
- "worklet";
473
-
474
- return {
475
- transform: [{
476
- translateY: frameSize === 0 ? hiddenSize : val
477
- }]
478
- };
479
- }, [frameSize]));
480
- const [opacity, setOpacity] = React.useState(open ? 1 : 0);
481
- if (open && opacity === 0) {
482
- setOpacity(1);
483
- if (opacityFallbackTimer.current) {
484
- clearTimeout(opacityFallbackTimer.current);
485
- opacityFallbackTimer.current = null;
486
- }
487
- }
488
- const forcedContentHeight = hasFit ? void 0 : snapPointsMode === "percent" ? `${maxSnapPoint}${isWeb ? modal ? "dvh" : "%" : "%"}` : maxSnapPoint;
489
- const setHasScrollView = React.useCallback(val => {
490
- hasScrollView.current = val;
491
- }, []);
492
- let contents = /* @__PURE__ */jsx(LayoutMeasurementController, {
493
- disable: !open,
494
- children: /* @__PURE__ */jsx(ParentSheetContext.Provider, {
495
- value: nextParentContext,
496
- children: /* @__PURE__ */jsx(SheetProvider, {
497
- ...providerProps,
498
- keyboardOccludedHeight,
499
- isKeyboardVisible,
500
- keyboardStableFrameHeight,
501
- setHasScrollView,
502
- children: /* @__PURE__ */jsxs(GestureSheetProvider, {
503
- isDragging,
504
- blockPan,
505
- setBlockPan,
506
- panGesture,
507
- panGestureRef,
508
- children: [/* @__PURE__ */jsx(AnimatePresence, {
509
- custom: {
510
- open
511
- },
512
- children: shouldHideParentSheet || !open ? null : overlayComponent
513
- }), snapPointsMode !== "percent" && /* @__PURE__ */jsx(View$1, {
514
- style: {
515
- opacity: 0,
516
- position: "absolute",
517
- top: 0,
518
- left: 0,
519
- right: 0,
520
- bottom: 0,
521
- pointerEvents: "none"
522
- },
523
- onLayout: handleMaxContentViewLayout
524
- }), /* @__PURE__ */jsx(AnimatedView, {
525
- ref,
526
- onLayout: handleAnimationViewLayout,
527
- transition: isDragging || disableAnimation ? null : transition,
528
- disableClassName: true,
529
- style: [{
530
- position: "absolute",
531
- zIndex,
532
- width: "100%",
533
- height: forcedContentHeight,
534
- minHeight: forcedContentHeight,
535
- opacity: shouldHideParentSheet ? 0 : disableTransparencyHide ? 1 : opacity,
536
- ...((shouldHideParentSheet || !open) && {
537
- pointerEvents: "none"
538
- })
539
- }, animatedStyle],
540
- children: gestureHandlerEnabled && panGesture ? /* @__PURE__ */jsx(GestureDetectorWrapper, {
541
- gesture: panGesture,
542
- style: {
543
- flex: 1
544
- },
545
- children: props.children
546
- }) : /* @__PURE__ */jsx(View$1, {
547
- ...panResponder?.panHandlers,
548
- style: {
549
- flex: 1,
550
- width: "100%",
551
- height: "100%"
552
- },
553
- children: props.children
554
- })
555
- })]
556
- })
557
- })
558
- })
559
- });
560
- const shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : true;
561
- if (modal) {
562
- const RNGHRoot = getGestureHandlerState().RootView;
563
- const mountedContents = shouldMountChildren ? /* @__PURE__ */jsx(ContainerComponent, {
564
- children: contents
565
- }) : null;
566
- const modalContents = /* @__PURE__ */jsx(Portal, {
567
- stackZIndex: zIndex,
568
- ...portalProps,
569
- children: mountedContents && RNGHRoot ? /* @__PURE__ */jsx(RNGHRoot, {
570
- style: open ? rnghRootStyleOpen : rnghRootStyleClosed,
571
- children: mountedContents
572
- }) : mountedContents
573
- });
574
- if (isWeb) return modalContents;
575
- return /* @__PURE__ */jsx(SheetInsideSheetContext.Provider, {
576
- value: onInnerSheet,
577
- children: modalContents
578
- });
579
- }
580
- return contents;
581
- });
582
- function getYPositions(mode, point, screenSize, frameSize) {
583
- if (!screenSize || !frameSize) return 0;
584
- if (mode === "mixed") {
585
- if (typeof point === "number") return screenSize - Math.min(screenSize, Math.max(0, point));
586
- if (point === "fit") return screenSize - Math.min(screenSize, frameSize);
587
- if (point.endsWith("%")) {
588
- const pct2 = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100;
589
- if (Number.isNaN(pct2)) {
590
- console.warn("Invalid snapPoint percentage string");
591
- return 0;
592
- }
593
- return Math.round(screenSize - pct2 * screenSize);
594
- }
595
- console.warn("Invalid snapPoint unknown value");
596
- return 0;
597
- }
598
- if (mode === "fit") {
599
- if (point === 0) return screenSize;
600
- return screenSize - Math.min(screenSize, frameSize);
601
- }
602
- if (mode === "constant" && typeof point === "number") return screenSize - Math.min(screenSize, Math.max(0, point));
603
- const pct = Math.min(100, Math.max(0, Number(point))) / 100;
604
- if (Number.isNaN(pct)) {
605
- console.warn("Invalid snapPoint percentage");
606
- return 0;
607
- }
608
- return Math.round(screenSize - pct * screenSize);
609
- }
610
- export { SheetImplementationCustom };
611
- //# sourceMappingURL=SheetImplementationCustom.mjs.map