@tamagui/sheet 2.0.0-rc.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/controller/index.cjs +2 -1
  3. package/controller/index.js +2 -0
  4. package/controller/index.native.cjs +2 -0
  5. package/controller/index.native.js +2 -0
  6. package/dist/cjs/GestureDetectorWrapper.cjs +27 -21
  7. package/dist/cjs/GestureDetectorWrapper.native.js +33 -28
  8. package/dist/cjs/GestureDetectorWrapper.native.js.map +1 -1
  9. package/dist/cjs/GestureSheetContext.cjs +14 -12
  10. package/dist/cjs/GestureSheetContext.native.js +29 -27
  11. package/dist/cjs/GestureSheetContext.native.js.map +1 -1
  12. package/dist/cjs/Sheet.cjs +88 -86
  13. package/dist/cjs/Sheet.native.js +88 -86
  14. package/dist/cjs/Sheet.native.js.map +1 -1
  15. package/dist/cjs/SheetContext.cjs +16 -14
  16. package/dist/cjs/SheetContext.native.js +16 -14
  17. package/dist/cjs/SheetContext.native.js.map +1 -1
  18. package/dist/cjs/SheetController.cjs +40 -32
  19. package/dist/cjs/SheetController.native.js +62 -54
  20. package/dist/cjs/SheetController.native.js.map +1 -1
  21. package/dist/cjs/SheetImplementationCustom.cjs +568 -429
  22. package/dist/cjs/SheetImplementationCustom.native.js +592 -474
  23. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  24. package/dist/cjs/SheetScrollView.cjs +184 -135
  25. package/dist/cjs/SheetScrollView.native.js +202 -163
  26. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  27. package/dist/cjs/constants.cjs +16 -14
  28. package/dist/cjs/constants.native.js +16 -14
  29. package/dist/cjs/constants.native.js.map +1 -1
  30. package/dist/cjs/contexts.cjs +27 -25
  31. package/dist/cjs/contexts.native.js +29 -27
  32. package/dist/cjs/contexts.native.js.map +1 -1
  33. package/dist/cjs/controller.cjs +14 -12
  34. package/dist/cjs/controller.native.js +14 -12
  35. package/dist/cjs/controller.native.js.map +1 -1
  36. package/dist/cjs/createSheet.cjs +159 -160
  37. package/dist/cjs/createSheet.native.js +172 -180
  38. package/dist/cjs/createSheet.native.js.map +1 -1
  39. package/dist/cjs/gestureState.cjs +12 -10
  40. package/dist/cjs/gestureState.native.js +12 -10
  41. package/dist/cjs/gestureState.native.js.map +1 -1
  42. package/dist/cjs/helpers.cjs +17 -13
  43. package/dist/cjs/helpers.native.js +17 -13
  44. package/dist/cjs/helpers.native.js.map +1 -1
  45. package/dist/cjs/index.cjs +7 -5
  46. package/dist/cjs/index.native.js +7 -5
  47. package/dist/cjs/index.native.js.map +1 -1
  48. package/dist/cjs/keyboardAvoidance.cjs +42 -0
  49. package/dist/cjs/keyboardAvoidance.native.js +46 -0
  50. package/dist/cjs/keyboardAvoidance.native.js.map +1 -0
  51. package/dist/cjs/nativeSheet.cjs +65 -55
  52. package/dist/cjs/nativeSheet.native.js +74 -68
  53. package/dist/cjs/nativeSheet.native.js.map +1 -1
  54. package/dist/cjs/setupGestureHandler.cjs +24 -18
  55. package/dist/cjs/setupGestureHandler.native.js +24 -19
  56. package/dist/cjs/setupGestureHandler.native.js.map +1 -1
  57. package/dist/cjs/types.cjs +7 -5
  58. package/dist/cjs/types.native.js +7 -5
  59. package/dist/cjs/types.native.js.map +1 -1
  60. package/dist/cjs/useGestureHandlerPan.cjs +181 -111
  61. package/dist/cjs/useGestureHandlerPan.native.js +183 -115
  62. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  63. package/dist/cjs/useKeyboardControllerSheet.cjs +15 -13
  64. package/dist/cjs/useKeyboardControllerSheet.native.js +100 -82
  65. package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -1
  66. package/dist/cjs/useSheet.cjs +12 -10
  67. package/dist/cjs/useSheet.native.js +16 -14
  68. package/dist/cjs/useSheet.native.js.map +1 -1
  69. package/dist/cjs/useSheetController.cjs +35 -33
  70. package/dist/cjs/useSheetController.native.js +37 -35
  71. package/dist/cjs/useSheetController.native.js.map +1 -1
  72. package/dist/cjs/useSheetOffscreenSize.cjs +35 -23
  73. package/dist/cjs/useSheetOffscreenSize.native.js +36 -27
  74. package/dist/cjs/useSheetOffscreenSize.native.js.map +1 -1
  75. package/dist/cjs/useSheetOpenState.cjs +28 -25
  76. package/dist/cjs/useSheetOpenState.native.js +39 -37
  77. package/dist/cjs/useSheetOpenState.native.js.map +1 -1
  78. package/dist/cjs/useSheetProviderProps.cjs +129 -81
  79. package/dist/cjs/useSheetProviderProps.native.js +165 -122
  80. package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
  81. package/dist/cjs/useSheetScrollViewGestures.cjs +124 -81
  82. package/dist/cjs/useSheetScrollViewGestures.native.js +128 -79
  83. package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -1
  84. package/dist/esm/GestureDetectorWrapper.mjs +12 -8
  85. package/dist/esm/GestureDetectorWrapper.mjs.map +1 -1
  86. package/dist/esm/GestureDetectorWrapper.native.js +18 -15
  87. package/dist/esm/GestureDetectorWrapper.native.js.map +1 -1
  88. package/dist/esm/GestureSheetContext.native.js +14 -14
  89. package/dist/esm/GestureSheetContext.native.js.map +1 -1
  90. package/dist/esm/Sheet.mjs +70 -70
  91. package/dist/esm/Sheet.mjs.map +1 -1
  92. package/dist/esm/Sheet.native.js +70 -70
  93. package/dist/esm/Sheet.native.js.map +1 -1
  94. package/dist/esm/SheetContext.mjs +2 -2
  95. package/dist/esm/SheetContext.mjs.map +1 -1
  96. package/dist/esm/SheetContext.native.js +2 -2
  97. package/dist/esm/SheetContext.native.js.map +1 -1
  98. package/dist/esm/SheetController.mjs +12 -6
  99. package/dist/esm/SheetController.mjs.map +1 -1
  100. package/dist/esm/SheetController.native.js +18 -12
  101. package/dist/esm/SheetController.native.js.map +1 -1
  102. package/dist/esm/SheetImplementationCustom.mjs +526 -389
  103. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  104. package/dist/esm/SheetImplementationCustom.native.js +546 -434
  105. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  106. package/dist/esm/SheetScrollView.mjs +150 -103
  107. package/dist/esm/SheetScrollView.mjs.map +1 -1
  108. package/dist/esm/SheetScrollView.native.js +169 -132
  109. package/dist/esm/SheetScrollView.native.js.map +1 -1
  110. package/dist/esm/constants.mjs +4 -4
  111. package/dist/esm/constants.mjs.map +1 -1
  112. package/dist/esm/constants.native.js +4 -4
  113. package/dist/esm/constants.native.js.map +1 -1
  114. package/dist/esm/contexts.mjs +3 -3
  115. package/dist/esm/contexts.mjs.map +1 -1
  116. package/dist/esm/contexts.native.js +3 -3
  117. package/dist/esm/contexts.native.js.map +1 -1
  118. package/dist/esm/createSheet.mjs +130 -133
  119. package/dist/esm/createSheet.mjs.map +1 -1
  120. package/dist/esm/createSheet.native.js +142 -152
  121. package/dist/esm/createSheet.native.js.map +1 -1
  122. package/dist/esm/helpers.mjs +5 -3
  123. package/dist/esm/helpers.mjs.map +1 -1
  124. package/dist/esm/helpers.native.js +5 -3
  125. package/dist/esm/helpers.native.js.map +1 -1
  126. package/dist/esm/index.js +11 -11
  127. package/dist/esm/index.js.map +1 -6
  128. package/dist/esm/keyboardAvoidance.mjs +17 -0
  129. package/dist/esm/keyboardAvoidance.mjs.map +1 -0
  130. package/dist/esm/keyboardAvoidance.native.js +18 -0
  131. package/dist/esm/keyboardAvoidance.native.js.map +1 -0
  132. package/dist/esm/nativeSheet.mjs +46 -38
  133. package/dist/esm/nativeSheet.mjs.map +1 -1
  134. package/dist/esm/nativeSheet.native.js +52 -48
  135. package/dist/esm/nativeSheet.native.js.map +1 -1
  136. package/dist/esm/setupGestureHandler.mjs +12 -8
  137. package/dist/esm/setupGestureHandler.mjs.map +1 -1
  138. package/dist/esm/setupGestureHandler.native.js +12 -9
  139. package/dist/esm/setupGestureHandler.native.js.map +1 -1
  140. package/dist/esm/useGestureHandlerPan.mjs +167 -99
  141. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  142. package/dist/esm/useGestureHandlerPan.native.js +168 -102
  143. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  144. package/dist/esm/useKeyboardControllerSheet.mjs +3 -3
  145. package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -1
  146. package/dist/esm/useKeyboardControllerSheet.native.js +85 -69
  147. package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -1
  148. package/dist/esm/useSheetController.mjs +11 -11
  149. package/dist/esm/useSheetController.mjs.map +1 -1
  150. package/dist/esm/useSheetController.native.js +11 -11
  151. package/dist/esm/useSheetController.native.js.map +1 -1
  152. package/dist/esm/useSheetOffscreenSize.mjs +23 -13
  153. package/dist/esm/useSheetOffscreenSize.mjs.map +1 -1
  154. package/dist/esm/useSheetOffscreenSize.native.js +24 -17
  155. package/dist/esm/useSheetOffscreenSize.native.js.map +1 -1
  156. package/dist/esm/useSheetOpenState.mjs +14 -13
  157. package/dist/esm/useSheetOpenState.mjs.map +1 -1
  158. package/dist/esm/useSheetOpenState.native.js +17 -17
  159. package/dist/esm/useSheetOpenState.native.js.map +1 -1
  160. package/dist/esm/useSheetProviderProps.mjs +101 -55
  161. package/dist/esm/useSheetProviderProps.mjs.map +1 -1
  162. package/dist/esm/useSheetProviderProps.native.js +137 -96
  163. package/dist/esm/useSheetProviderProps.native.js.map +1 -1
  164. package/dist/esm/useSheetScrollViewGestures.mjs +112 -71
  165. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
  166. package/dist/esm/useSheetScrollViewGestures.native.js +116 -69
  167. package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -1
  168. package/dist/jsx/GestureDetectorWrapper.mjs +12 -8
  169. package/dist/jsx/GestureDetectorWrapper.mjs.map +1 -1
  170. package/dist/jsx/GestureDetectorWrapper.native.js +33 -28
  171. package/dist/jsx/GestureDetectorWrapper.native.js.map +1 -1
  172. package/dist/jsx/GestureSheetContext.native.js +29 -27
  173. package/dist/jsx/GestureSheetContext.native.js.map +1 -1
  174. package/dist/jsx/Sheet.mjs +70 -70
  175. package/dist/jsx/Sheet.mjs.map +1 -1
  176. package/dist/jsx/Sheet.native.js +88 -86
  177. package/dist/jsx/Sheet.native.js.map +1 -1
  178. package/dist/jsx/SheetContext.mjs +2 -2
  179. package/dist/jsx/SheetContext.mjs.map +1 -1
  180. package/dist/jsx/SheetContext.native.js +16 -14
  181. package/dist/jsx/SheetContext.native.js.map +1 -1
  182. package/dist/jsx/SheetController.mjs +12 -6
  183. package/dist/jsx/SheetController.mjs.map +1 -1
  184. package/dist/jsx/SheetController.native.js +62 -54
  185. package/dist/jsx/SheetController.native.js.map +1 -1
  186. package/dist/jsx/SheetImplementationCustom.mjs +526 -389
  187. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  188. package/dist/jsx/SheetImplementationCustom.native.js +592 -474
  189. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  190. package/dist/jsx/SheetScrollView.mjs +150 -103
  191. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  192. package/dist/jsx/SheetScrollView.native.js +202 -163
  193. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  194. package/dist/jsx/constants.mjs +4 -4
  195. package/dist/jsx/constants.mjs.map +1 -1
  196. package/dist/jsx/constants.native.js +16 -14
  197. package/dist/jsx/constants.native.js.map +1 -1
  198. package/dist/jsx/contexts.mjs +3 -3
  199. package/dist/jsx/contexts.mjs.map +1 -1
  200. package/dist/jsx/contexts.native.js +29 -27
  201. package/dist/jsx/contexts.native.js.map +1 -1
  202. package/dist/jsx/controller.native.js +14 -12
  203. package/dist/jsx/createSheet.mjs +130 -133
  204. package/dist/jsx/createSheet.mjs.map +1 -1
  205. package/dist/jsx/createSheet.native.js +172 -180
  206. package/dist/jsx/createSheet.native.js.map +1 -1
  207. package/dist/jsx/gestureState.native.js +12 -10
  208. package/dist/jsx/gestureState.native.js.map +1 -1
  209. package/dist/jsx/helpers.mjs +5 -3
  210. package/dist/jsx/helpers.mjs.map +1 -1
  211. package/dist/jsx/helpers.native.js +17 -13
  212. package/dist/jsx/helpers.native.js.map +1 -1
  213. package/dist/jsx/index.js +11 -11
  214. package/dist/jsx/index.js.map +1 -6
  215. package/dist/jsx/index.native.js +7 -5
  216. package/dist/jsx/index.native.js.map +1 -1
  217. package/dist/jsx/keyboardAvoidance.mjs +17 -0
  218. package/dist/jsx/keyboardAvoidance.mjs.map +1 -0
  219. package/dist/jsx/keyboardAvoidance.native.js +46 -0
  220. package/dist/jsx/keyboardAvoidance.native.js.map +1 -0
  221. package/dist/jsx/nativeSheet.mjs +46 -38
  222. package/dist/jsx/nativeSheet.mjs.map +1 -1
  223. package/dist/jsx/nativeSheet.native.js +74 -68
  224. package/dist/jsx/nativeSheet.native.js.map +1 -1
  225. package/dist/jsx/setupGestureHandler.mjs +12 -8
  226. package/dist/jsx/setupGestureHandler.mjs.map +1 -1
  227. package/dist/jsx/setupGestureHandler.native.js +24 -19
  228. package/dist/jsx/setupGestureHandler.native.js.map +1 -1
  229. package/dist/jsx/types.native.js +7 -5
  230. package/dist/jsx/useGestureHandlerPan.mjs +167 -99
  231. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  232. package/dist/jsx/useGestureHandlerPan.native.js +183 -115
  233. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  234. package/dist/jsx/useKeyboardControllerSheet.mjs +3 -3
  235. package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -1
  236. package/dist/jsx/useKeyboardControllerSheet.native.js +100 -82
  237. package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -1
  238. package/dist/jsx/useSheet.native.js +16 -14
  239. package/dist/jsx/useSheetController.mjs +11 -11
  240. package/dist/jsx/useSheetController.mjs.map +1 -1
  241. package/dist/jsx/useSheetController.native.js +37 -35
  242. package/dist/jsx/useSheetController.native.js.map +1 -1
  243. package/dist/jsx/useSheetOffscreenSize.mjs +23 -13
  244. package/dist/jsx/useSheetOffscreenSize.mjs.map +1 -1
  245. package/dist/jsx/useSheetOffscreenSize.native.js +36 -27
  246. package/dist/jsx/useSheetOffscreenSize.native.js.map +1 -1
  247. package/dist/jsx/useSheetOpenState.mjs +14 -13
  248. package/dist/jsx/useSheetOpenState.mjs.map +1 -1
  249. package/dist/jsx/useSheetOpenState.native.js +39 -37
  250. package/dist/jsx/useSheetOpenState.native.js.map +1 -1
  251. package/dist/jsx/useSheetProviderProps.mjs +101 -55
  252. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  253. package/dist/jsx/useSheetProviderProps.native.js +165 -122
  254. package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
  255. package/dist/jsx/useSheetScrollViewGestures.mjs +112 -71
  256. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
  257. package/dist/jsx/useSheetScrollViewGestures.native.js +128 -79
  258. package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -1
  259. package/next.md +78 -0
  260. package/package.json +29 -39
  261. package/setup-gesture-handler/index.cjs +2 -0
  262. package/setup-gesture-handler/index.js +2 -0
  263. package/setup-gesture-handler/index.native.cjs +2 -0
  264. package/setup-gesture-handler/index.native.js +2 -0
  265. package/src/GestureDetectorWrapper.tsx +0 -3
  266. package/src/SheetController.tsx +4 -1
  267. package/src/SheetImplementationCustom.tsx +131 -45
  268. package/src/SheetScrollView.tsx +33 -7
  269. package/src/keyboardAvoidance.ts +30 -0
  270. package/src/nativeSheet.tsx +6 -1
  271. package/src/types.tsx +5 -0
  272. package/src/useGestureHandlerPan.tsx +5 -15
  273. package/src/useSheetController.tsx +4 -0
  274. package/src/useSheetProviderProps.tsx +1 -0
  275. package/test/keyboardAvoidance.test.ts +53 -0
  276. package/tsconfig.json +57 -0
  277. package/types/GestureDetectorWrapper.d.ts.map +1 -1
  278. package/types/Sheet.d.ts +3 -0
  279. package/types/Sheet.d.ts.map +1 -1
  280. package/types/SheetContext.d.ts +1 -0
  281. package/types/SheetContext.d.ts.map +1 -1
  282. package/types/SheetController.d.ts +1 -1
  283. package/types/SheetController.d.ts.map +1 -1
  284. package/types/SheetImplementationCustom.d.ts +3 -0
  285. package/types/SheetImplementationCustom.d.ts.map +1 -1
  286. package/types/SheetScrollView.d.ts.map +1 -1
  287. package/types/createSheet.d.ts +3 -0
  288. package/types/createSheet.d.ts.map +1 -1
  289. package/types/keyboardAvoidance.d.ts +8 -0
  290. package/types/keyboardAvoidance.d.ts.map +1 -0
  291. package/types/nativeSheet.d.ts.map +1 -1
  292. package/types/types.d.ts +6 -0
  293. package/types/types.d.ts.map +1 -1
  294. package/types/useGestureHandlerPan.d.ts.map +1 -1
  295. package/types/useSheetController.d.ts +3 -0
  296. package/types/useSheetController.d.ts.map +1 -1
  297. package/types/useSheetProviderProps.d.ts +1 -0
  298. package/types/useSheetProviderProps.d.ts.map +1 -1
  299. package/dist/cjs/GestureDetectorWrapper.js +0 -29
  300. package/dist/cjs/GestureDetectorWrapper.js.map +0 -6
  301. package/dist/cjs/GestureSheetContext.js +0 -43
  302. package/dist/cjs/GestureSheetContext.js.map +0 -6
  303. package/dist/cjs/Sheet.js +0 -104
  304. package/dist/cjs/Sheet.js.map +0 -6
  305. package/dist/cjs/SheetContext.js +0 -28
  306. package/dist/cjs/SheetContext.js.map +0 -6
  307. package/dist/cjs/SheetController.js +0 -52
  308. package/dist/cjs/SheetController.js.map +0 -6
  309. package/dist/cjs/SheetImplementationCustom.js +0 -393
  310. package/dist/cjs/SheetImplementationCustom.js.map +0 -6
  311. package/dist/cjs/SheetScrollView.js +0 -137
  312. package/dist/cjs/SheetScrollView.js.map +0 -6
  313. package/dist/cjs/constants.js +0 -24
  314. package/dist/cjs/constants.js.map +0 -6
  315. package/dist/cjs/contexts.js +0 -33
  316. package/dist/cjs/contexts.js.map +0 -6
  317. package/dist/cjs/controller.js +0 -23
  318. package/dist/cjs/controller.js.map +0 -6
  319. package/dist/cjs/createSheet.js +0 -152
  320. package/dist/cjs/createSheet.js.map +0 -6
  321. package/dist/cjs/gestureState.js +0 -34
  322. package/dist/cjs/gestureState.js.map +0 -6
  323. package/dist/cjs/helpers.js +0 -26
  324. package/dist/cjs/helpers.js.map +0 -6
  325. package/dist/cjs/index.js +0 -25
  326. package/dist/cjs/index.js.map +0 -6
  327. package/dist/cjs/nativeSheet.js +0 -56
  328. package/dist/cjs/nativeSheet.js.map +0 -6
  329. package/dist/cjs/setupGestureHandler.js +0 -38
  330. package/dist/cjs/setupGestureHandler.js.map +0 -6
  331. package/dist/cjs/types.js +0 -14
  332. package/dist/cjs/types.js.map +0 -6
  333. package/dist/cjs/useGestureHandlerPan.js +0 -126
  334. package/dist/cjs/useGestureHandlerPan.js.map +0 -6
  335. package/dist/cjs/useKeyboardControllerSheet.js +0 -34
  336. package/dist/cjs/useKeyboardControllerSheet.js.map +0 -6
  337. package/dist/cjs/useSheet.js +0 -22
  338. package/dist/cjs/useSheet.js.map +0 -6
  339. package/dist/cjs/useSheetController.js +0 -39
  340. package/dist/cjs/useSheetController.js.map +0 -6
  341. package/dist/cjs/useSheetOffscreenSize.js +0 -43
  342. package/dist/cjs/useSheetOffscreenSize.js.map +0 -6
  343. package/dist/cjs/useSheetOpenState.js +0 -37
  344. package/dist/cjs/useSheetOpenState.js.map +0 -6
  345. package/dist/cjs/useSheetProviderProps.js +0 -130
  346. package/dist/cjs/useSheetProviderProps.js.map +0 -6
  347. package/dist/cjs/useSheetScrollViewGestures.js +0 -102
  348. package/dist/cjs/useSheetScrollViewGestures.js.map +0 -6
  349. package/dist/esm/GestureDetectorWrapper.js +0 -15
  350. package/dist/esm/GestureDetectorWrapper.js.map +0 -6
  351. package/dist/esm/GestureSheetContext.js +0 -28
  352. package/dist/esm/GestureSheetContext.js.map +0 -6
  353. package/dist/esm/Sheet.js +0 -92
  354. package/dist/esm/Sheet.js.map +0 -6
  355. package/dist/esm/SheetContext.js +0 -13
  356. package/dist/esm/SheetContext.js.map +0 -6
  357. package/dist/esm/SheetController.js +0 -31
  358. package/dist/esm/SheetController.js.map +0 -6
  359. package/dist/esm/SheetImplementationCustom.js +0 -395
  360. package/dist/esm/SheetImplementationCustom.js.map +0 -6
  361. package/dist/esm/SheetScrollView.js +0 -122
  362. package/dist/esm/SheetScrollView.js.map +0 -6
  363. package/dist/esm/constants.js +0 -8
  364. package/dist/esm/constants.js.map +0 -6
  365. package/dist/esm/contexts.js +0 -9
  366. package/dist/esm/contexts.js.map +0 -6
  367. package/dist/esm/controller.js +0 -11
  368. package/dist/esm/controller.js.map +0 -6
  369. package/dist/esm/createSheet.js +0 -153
  370. package/dist/esm/createSheet.js.map +0 -6
  371. package/dist/esm/gestureState.js +0 -18
  372. package/dist/esm/gestureState.js.map +0 -6
  373. package/dist/esm/helpers.js +0 -10
  374. package/dist/esm/helpers.js.map +0 -6
  375. package/dist/esm/nativeSheet.js +0 -46
  376. package/dist/esm/nativeSheet.js.map +0 -6
  377. package/dist/esm/setupGestureHandler.js +0 -22
  378. package/dist/esm/setupGestureHandler.js.map +0 -6
  379. package/dist/esm/types.js +0 -1
  380. package/dist/esm/types.js.map +0 -6
  381. package/dist/esm/useGestureHandlerPan.js +0 -111
  382. package/dist/esm/useGestureHandlerPan.js.map +0 -6
  383. package/dist/esm/useKeyboardControllerSheet.js +0 -18
  384. package/dist/esm/useKeyboardControllerSheet.js.map +0 -6
  385. package/dist/esm/useSheet.js +0 -6
  386. package/dist/esm/useSheet.js.map +0 -6
  387. package/dist/esm/useSheetController.js +0 -15
  388. package/dist/esm/useSheetController.js.map +0 -6
  389. package/dist/esm/useSheetOffscreenSize.js +0 -27
  390. package/dist/esm/useSheetOffscreenSize.js.map +0 -6
  391. package/dist/esm/useSheetOpenState.js +0 -22
  392. package/dist/esm/useSheetOpenState.js.map +0 -6
  393. package/dist/esm/useSheetProviderProps.js +0 -109
  394. package/dist/esm/useSheetProviderProps.js.map +0 -6
  395. package/dist/esm/useSheetScrollViewGestures.js +0 -86
  396. package/dist/esm/useSheetScrollViewGestures.js.map +0 -6
  397. package/dist/jsx/GestureDetectorWrapper.js +0 -15
  398. package/dist/jsx/GestureDetectorWrapper.js.map +0 -6
  399. package/dist/jsx/GestureSheetContext.js +0 -28
  400. package/dist/jsx/GestureSheetContext.js.map +0 -6
  401. package/dist/jsx/Sheet.js +0 -92
  402. package/dist/jsx/Sheet.js.map +0 -6
  403. package/dist/jsx/SheetContext.js +0 -13
  404. package/dist/jsx/SheetContext.js.map +0 -6
  405. package/dist/jsx/SheetController.js +0 -31
  406. package/dist/jsx/SheetController.js.map +0 -6
  407. package/dist/jsx/SheetImplementationCustom.js +0 -395
  408. package/dist/jsx/SheetImplementationCustom.js.map +0 -6
  409. package/dist/jsx/SheetScrollView.js +0 -122
  410. package/dist/jsx/SheetScrollView.js.map +0 -6
  411. package/dist/jsx/constants.js +0 -8
  412. package/dist/jsx/constants.js.map +0 -6
  413. package/dist/jsx/contexts.js +0 -9
  414. package/dist/jsx/contexts.js.map +0 -6
  415. package/dist/jsx/controller.js +0 -11
  416. package/dist/jsx/controller.js.map +0 -6
  417. package/dist/jsx/createSheet.js +0 -153
  418. package/dist/jsx/createSheet.js.map +0 -6
  419. package/dist/jsx/gestureState.js +0 -18
  420. package/dist/jsx/gestureState.js.map +0 -6
  421. package/dist/jsx/helpers.js +0 -10
  422. package/dist/jsx/helpers.js.map +0 -6
  423. package/dist/jsx/nativeSheet.js +0 -46
  424. package/dist/jsx/nativeSheet.js.map +0 -6
  425. package/dist/jsx/setupGestureHandler.js +0 -22
  426. package/dist/jsx/setupGestureHandler.js.map +0 -6
  427. package/dist/jsx/types.js +0 -1
  428. package/dist/jsx/types.js.map +0 -6
  429. package/dist/jsx/useGestureHandlerPan.js +0 -111
  430. package/dist/jsx/useGestureHandlerPan.js.map +0 -6
  431. package/dist/jsx/useKeyboardControllerSheet.js +0 -18
  432. package/dist/jsx/useKeyboardControllerSheet.js.map +0 -6
  433. package/dist/jsx/useSheet.js +0 -6
  434. package/dist/jsx/useSheet.js.map +0 -6
  435. package/dist/jsx/useSheetController.js +0 -15
  436. package/dist/jsx/useSheetController.js.map +0 -6
  437. package/dist/jsx/useSheetOffscreenSize.js +0 -27
  438. package/dist/jsx/useSheetOffscreenSize.js.map +0 -6
  439. package/dist/jsx/useSheetOpenState.js +0 -22
  440. package/dist/jsx/useSheetOpenState.js.map +0 -6
  441. package/dist/jsx/useSheetProviderProps.js +0 -109
  442. package/dist/jsx/useSheetProviderProps.js.map +0 -6
  443. package/dist/jsx/useSheetScrollViewGestures.js +0 -86
  444. package/dist/jsx/useSheetScrollViewGestures.js.map +0 -6
  445. package/types/GestureDetectorWrapper.native.d.ts +0 -14
  446. package/types/gestureState.native.d.ts +0 -12
  447. package/types/setupGestureHandler.native.d.ts +0 -41
  448. package/types/useGestureHandlerPan.native.d.ts +0 -33
  449. package/types/useSheetScrollViewGestures.web.d.ts +0 -15
  450. package/types/useSheetScrollViewGestures.web.d.ts.map +0 -1
@@ -4,517 +4,635 @@ var __create = Object.create;
4
4
  var __defProp = Object.defineProperty;
5
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf,
8
- __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
9
  var __export = (target, all) => {
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: !0
13
- });
14
- },
15
- __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
18
  get: () => from[key],
18
19
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
20
  });
20
- return to;
21
- };
21
+ }
22
+ return to;
23
+ };
22
24
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: !0
30
- }) : target, mod)),
31
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: !0
33
- }), mod);
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
+ value: true
35
+ }), mod);
34
36
  var SheetImplementationCustom_exports = {};
35
37
  __export(SheetImplementationCustom_exports, {
36
38
  SheetImplementationCustom: () => SheetImplementationCustom
37
39
  });
38
40
  module.exports = __toCommonJS(SheetImplementationCustom_exports);
39
- var import_jsx_runtime = require("react/jsx-runtime"),
40
- import_adapt = require("@tamagui/adapt"),
41
- import_animate_presence = require("@tamagui/animate-presence"),
42
- import_compose_refs = require("@tamagui/compose-refs"),
43
- import_constants = require("@tamagui/constants"),
44
- import_core = require("@tamagui/core"),
45
- import_native = require("@tamagui/native"),
46
- import_portal = require("@tamagui/portal"),
47
- import_react = __toESM(require("react"), 1),
48
- import_react_native = require("react-native"),
49
- import_contexts = require("./contexts.native.js"),
50
- import_GestureDetectorWrapper = require("./GestureDetectorWrapper.native.js"),
51
- import_GestureSheetContext = require("./GestureSheetContext.native.js"),
52
- import_helpers = require("./helpers.native.js"),
53
- import_SheetContext = require("./SheetContext.native.js"),
54
- import_useGestureHandlerPan = require("./useGestureHandlerPan.native.js"),
55
- import_useKeyboardControllerSheet = require("./useKeyboardControllerSheet.native.js"),
56
- import_useSheetOpenState = require("./useSheetOpenState.native.js"),
57
- import_useSheetProviderProps = require("./useSheetProviderProps.native.js"),
58
- hiddenSize = 10000.1,
59
- _cachedSafeAreaTop;
41
+ var import_jsx_runtime = require("react/jsx-runtime");
42
+ var import_adapt = require("@tamagui/adapt");
43
+ var import_animate_presence = require("@tamagui/animate-presence");
44
+ var import_compose_refs = require("@tamagui/compose-refs");
45
+ var import_constants = require("@tamagui/constants");
46
+ var import_core = require("@tamagui/core");
47
+ var import_native = require("@tamagui/native");
48
+ var import_portal = require("@tamagui/portal");
49
+ var import_react = __toESM(require("react"), 1);
50
+ var import_react_native = require("react-native");
51
+ var import_contexts = require("./contexts.native.js");
52
+ var import_GestureDetectorWrapper = require("./GestureDetectorWrapper.native.js");
53
+ var import_gestureState = require("./gestureState.native.js");
54
+ var import_GestureSheetContext = require("./GestureSheetContext.native.js");
55
+ var import_helpers = require("./helpers.native.js");
56
+ var import_keyboardAvoidance = require("./keyboardAvoidance.native.js");
57
+ var import_SheetContext = require("./SheetContext.native.js");
58
+ var import_useGestureHandlerPan = require("./useGestureHandlerPan.native.js");
59
+ var import_useKeyboardControllerSheet = require("./useKeyboardControllerSheet.native.js");
60
+ var import_useSheetOpenState = require("./useSheetOpenState.native.js");
61
+ var import_useSheetProviderProps = require("./useSheetProviderProps.native.js");
62
+ var hiddenSize = 10000.1;
63
+ var rnghRootStyleOpen = {
64
+ width: "100%",
65
+ height: "100%"
66
+ };
67
+ var rnghRootStyleClosed = {
68
+ width: "100%",
69
+ height: 0
70
+ };
71
+ var _cachedSafeAreaTop;
60
72
  function getSafeAreaTopInset() {
61
- return _cachedSafeAreaTop !== void 0 || (_cachedSafeAreaTop = (0, import_native.getSafeArea)().getInsets().top), _cachedSafeAreaTop;
73
+ if (_cachedSafeAreaTop !== void 0) return _cachedSafeAreaTop;
74
+ _cachedSafeAreaTop = (0, import_native.getSafeArea)().getInsets().top;
75
+ return _cachedSafeAreaTop;
62
76
  }
63
- var relativeDimensionTo = import_constants.isWeb ? "window" : "screen",
64
- SheetImplementationCustom = /* @__PURE__ */import_react.default.forwardRef(function (props, forwardedRef) {
65
- var parentSheet = import_react.default.useContext(import_contexts.ParentSheetContext),
66
- {
67
- transition,
68
- transitionConfig: transitionConfigProp,
69
- modal = !1,
70
- zIndex = parentSheet.zIndex + 1,
71
- moveOnKeyboardChange = !1,
72
- unmountChildrenWhenHidden = !1,
73
- portalProps,
74
- containerComponent: ContainerComponent = import_react.default.Fragment
75
- } = props,
76
- state = (0, import_useSheetOpenState.useSheetOpenState)(props),
77
- [overlayComponent, setOverlayComponent] = import_react.default.useState(null),
78
- providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state, {
79
- onOverlayComponent: setOverlayComponent
80
- }),
81
- {
82
- frameSize,
83
- setFrameSize,
84
- snapPoints,
85
- snapPointsMode,
86
- hasFit,
87
- position,
88
- setPosition,
89
- scrollBridge,
90
- screenSize,
91
- setMaxContentSize,
92
- maxSnapPoint
93
- } = providerProps,
94
- {
95
- open,
96
- controller,
97
- isHidden
98
- } = state,
99
- sheetRef = import_react.default.useRef(void 0),
100
- ref = (0, import_compose_refs.useComposedRefs)(forwardedRef, sheetRef, providerProps.contentRef),
101
- {
102
- animationDriver
103
- } = (0, import_core.useConfiguration)();
104
- if (!animationDriver) throw new Error("Sheet requires an animation driver to be set");
105
- var transitionConfig = function () {
106
- var _animationDriver_animations;
107
- if (transitionConfigProp) return transitionConfigProp;
108
- var [animationProp, animationPropConfig] = transition ? Array.isArray(transition) ? transition : [transition] : [];
109
- return animationProp && !((_animationDriver_animations = animationDriver.animations) === null || _animationDriver_animations === void 0) && _animationDriver_animations[animationProp] ? {
110
- ...animationDriver.animations[animationProp],
111
- ...animationPropConfig
112
- } : null;
113
- }(),
114
- [isShowingInnerSheet, setIsShowingInnerSheet] = import_react.default.useState(!1),
115
- shouldHideParentSheet = !import_constants.isWeb && modal && isShowingInnerSheet && (0, import_portal.needsPortalRepropagation)(),
116
- sheetInsideSheet = import_react.default.useContext(import_contexts.SheetInsideSheetContext),
117
- onInnerSheet = import_react.default.useCallback(function (hasChild) {
118
- setIsShowingInnerSheet(hasChild);
119
- }, []),
120
- stableFrameSize = import_react.default.useRef(frameSize);
121
- import_react.default.useEffect(function () {
122
- open && frameSize && (stableFrameSize.current = frameSize);
123
- }, [open, frameSize]);
124
- var effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize,
125
- positions = import_react.default.useMemo(function () {
126
- return snapPoints.map(function (point) {
127
- return getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize);
128
- });
129
- }, [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]),
130
- {
131
- keyboardHeight,
132
- isKeyboardVisible,
133
- dismissKeyboard,
134
- pauseKeyboardHandler,
135
- flushPendingHide
136
- } = (0, import_useKeyboardControllerSheet.useKeyboardControllerSheet)({
137
- enabled: !import_constants.isWeb && !!moveOnKeyboardChange
138
- }),
139
- [isDragging, setIsDragging_] = import_react.default.useState(!1),
140
- isDraggingRef = import_react.default.useRef(!1),
141
- setIsDragging = import_react.default.useCallback(function (val) {
142
- isDraggingRef.current = val, pauseKeyboardHandler.current = val, setIsDragging_(val), val || flushPendingHide();
143
- }, [pauseKeyboardHandler, flushPendingHide]),
144
- activePositionsRef = import_react.default.useRef(positions),
145
- activePositions = import_react.default.useMemo(function () {
146
- if (isDragging || isDraggingRef.current) return activePositionsRef.current;
147
- var result;
148
- if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else {
149
- var safeAreaTop = import_constants.isWeb ? 0 : getSafeAreaTopInset();
150
- result = positions.map(function (p) {
151
- return screenSize && p >= screenSize ? p : Math.max(safeAreaTop, p - keyboardHeight);
152
- });
153
- }
154
- return activePositionsRef.current = result, result;
155
- }, [positions, isKeyboardVisible, keyboardHeight, screenSize, isDragging]),
156
- {
157
- useAnimatedNumber,
158
- useAnimatedNumberStyle,
159
- useAnimatedNumberReaction
160
- } = animationDriver,
161
- _animationDriver_View,
162
- AnimatedView = (_animationDriver_View = animationDriver.View) !== null && _animationDriver_View !== void 0 ? _animationDriver_View : import_core.View;
163
- (0, import_constants.useIsomorphicLayoutEffect)(function () {
164
- if (sheetInsideSheet && open) return sheetInsideSheet(!0), function () {
165
- sheetInsideSheet(!1);
166
- };
167
- }, [sheetInsideSheet, open]);
168
- var nextParentContext = import_react.default.useMemo(function () {
169
- return {
170
- zIndex
171
- };
172
- }, [zIndex]),
173
- isMounted = (0, import_core.useDidFinishSSR)(),
174
- startPosition = isMounted && screenSize ? screenSize : hiddenSize,
175
- animatedNumber = useAnimatedNumber(startPosition),
176
- at = import_react.default.useRef(startPosition),
177
- hasntMeasured = at.current === hiddenSize,
178
- [disableAnimation, setDisableAnimation] = (0, import_react.useState)(hasntMeasured),
179
- skipAdaptAnimation = import_react.default.useRef(!1);
180
- controller?.skipNextAnimation && (skipAdaptAnimation.current = !0);
181
- var hasScrollView = import_react.default.useRef(!1);
182
- useAnimatedNumberReaction({
183
- value: animatedNumber,
184
- hostRef: sheetRef
185
- }, import_react.default.useCallback(function (value) {
186
- at.current = value, scrollBridge.paneY = value;
187
- var minY = activePositions[0],
188
- wasAtTop = scrollBridge.isAtTop,
189
- nowAtTop = value <= minY + 5;
190
- if (wasAtTop !== nowAtTop) if (scrollBridge.isAtTop = nowAtTop, nowAtTop) {
77
+ var relativeDimensionTo = import_constants.isWeb ? "window" : "screen";
78
+ var SheetImplementationCustom = /* @__PURE__ */import_react.default.forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
79
+ var parentSheet = import_react.default.useContext(import_contexts.ParentSheetContext);
80
+ var {
81
+ transition,
82
+ transitionConfig: transitionConfigProp,
83
+ modal = false,
84
+ zIndex = parentSheet.zIndex + 1,
85
+ moveOnKeyboardChange = false,
86
+ unmountChildrenWhenHidden = false,
87
+ portalProps,
88
+ containerComponent: ContainerComponent = import_react.default.Fragment,
89
+ onAnimationComplete
90
+ } = props;
91
+ var state = (0, import_useSheetOpenState.useSheetOpenState)(props);
92
+ var [overlayComponent, setOverlayComponent] = import_react.default.useState(null);
93
+ var providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state, {
94
+ onOverlayComponent: setOverlayComponent
95
+ });
96
+ var {
97
+ frameSize,
98
+ setFrameSize,
99
+ snapPoints,
100
+ snapPointsMode,
101
+ hasFit,
102
+ position,
103
+ setPosition,
104
+ scrollBridge,
105
+ screenSize,
106
+ setMaxContentSize,
107
+ maxSnapPoint
108
+ } = providerProps;
109
+ var {
110
+ open,
111
+ controller,
112
+ isHidden
113
+ } = state;
114
+ var openRef = import_react.default.useRef(open);
115
+ openRef.current = open;
116
+ var sheetRef = import_react.default.useRef(void 0);
117
+ var ref = (0, import_compose_refs.useComposedRefs)(forwardedRef, sheetRef, providerProps.contentRef);
118
+ var {
119
+ animationDriver
120
+ } = (0, import_core.useConfiguration)();
121
+ if (!animationDriver) throw new Error(`Sheet requires an animation driver to be set`);
122
+ var transitionConfig = function () {
123
+ var _animationDriver_animations;
124
+ if (transitionConfigProp) return transitionConfigProp;
125
+ var [animationProp, animationPropConfig] = !transition ? [] : Array.isArray(transition) ? transition : [transition];
126
+ if (animationProp && ((_animationDriver_animations = animationDriver.animations) === null || _animationDriver_animations === void 0 ? void 0 : _animationDriver_animations[animationProp])) return {
127
+ ...animationDriver.animations[animationProp],
128
+ ...animationPropConfig
129
+ };
130
+ return null;
131
+ }();
132
+ var [isShowingInnerSheet, setIsShowingInnerSheet] = import_react.default.useState(false);
133
+ var shouldHideParentSheet = !import_constants.isWeb && modal && isShowingInnerSheet && (0, import_portal.needsPortalRepropagation)();
134
+ var sheetInsideSheet = import_react.default.useContext(import_contexts.SheetInsideSheetContext);
135
+ var onInnerSheet = import_react.default.useCallback(function (hasChild) {
136
+ setIsShowingInnerSheet(hasChild);
137
+ }, []);
138
+ var stableFrameSize = import_react.default.useRef(frameSize);
139
+ import_react.default.useEffect(function () {
140
+ if (open && frameSize) stableFrameSize.current = frameSize;
141
+ }, [open, frameSize]);
142
+ var effectiveFrameSize = open ? frameSize : stableFrameSize.current || frameSize;
143
+ var positions = import_react.default.useMemo(function () {
144
+ return snapPoints.map(function (point) {
145
+ return getYPositions(snapPointsMode, point, screenSize, effectiveFrameSize);
146
+ });
147
+ }, [screenSize, effectiveFrameSize, snapPoints, snapPointsMode]);
148
+ var {
149
+ keyboardHeight,
150
+ isKeyboardVisible,
151
+ dismissKeyboard,
152
+ pauseKeyboardHandler,
153
+ flushPendingHide
154
+ } = (0, import_useKeyboardControllerSheet.useKeyboardControllerSheet)({
155
+ enabled: !import_constants.isWeb && Boolean(moveOnKeyboardChange)
156
+ });
157
+ var [isDragging, setIsDragging_] = import_react.default.useState(false);
158
+ var isDraggingRef = import_react.default.useRef(false);
159
+ var setIsDragging = import_react.default.useCallback(function (val) {
160
+ isDraggingRef.current = val;
161
+ pauseKeyboardHandler.current = val;
162
+ setIsDragging_(val);
163
+ if (!val) flushPendingHide();
164
+ }, [pauseKeyboardHandler, flushPendingHide]);
165
+ var activePositionsRef = import_react.default.useRef(positions);
166
+ var activePositions = import_react.default.useMemo(function () {
167
+ if (isDragging || isDraggingRef.current) return activePositionsRef.current;
168
+ var result;
169
+ if (!isKeyboardVisible || keyboardHeight <= 0) result = positions;else {
170
+ var safeAreaTop = import_constants.isWeb ? 0 : getSafeAreaTopInset();
171
+ result = positions.map(function (p) {
172
+ if (screenSize && p >= screenSize) return p;
173
+ return Math.max(safeAreaTop, p - keyboardHeight);
174
+ });
175
+ }
176
+ activePositionsRef.current = result;
177
+ return result;
178
+ }, [positions, isKeyboardVisible, keyboardHeight, screenSize, isDragging]);
179
+ var keyboardOccludedHeight = (0, import_keyboardAvoidance.getKeyboardOccludedHeight)({
180
+ frameSize,
181
+ isKeyboardVisible: !import_constants.isWeb && isKeyboardVisible,
182
+ keyboardHeight,
183
+ screenSize,
184
+ sheetY: position >= 0 ? activePositions[position] : void 0
185
+ });
186
+ var {
187
+ useAnimatedNumber,
188
+ useAnimatedNumberStyle,
189
+ useAnimatedNumberReaction
190
+ } = animationDriver;
191
+ var _animationDriver_View;
192
+ var AnimatedView = (_animationDriver_View = animationDriver.View) !== null && _animationDriver_View !== void 0 ? _animationDriver_View : import_core.View;
193
+ (0, import_constants.useIsomorphicLayoutEffect)(function () {
194
+ if (!(sheetInsideSheet && open)) return;
195
+ sheetInsideSheet(true);
196
+ return function () {
197
+ sheetInsideSheet(false);
198
+ };
199
+ }, [sheetInsideSheet, open]);
200
+ var nextParentContext = import_react.default.useMemo(function () {
201
+ return {
202
+ zIndex
203
+ };
204
+ }, [zIndex]);
205
+ var startPosition = (0, import_core.useDidFinishSSR)() && screenSize ? screenSize : hiddenSize;
206
+ var animatedNumber = useAnimatedNumber(startPosition);
207
+ var at = import_react.default.useRef(startPosition);
208
+ var hasntMeasured = at.current === hiddenSize;
209
+ var [disableAnimation, setDisableAnimation] = (0, import_react.useState)(hasntMeasured);
210
+ var skipAdaptAnimation = import_react.default.useRef(false);
211
+ if (controller === null || controller === void 0 ? void 0 : controller.skipNextAnimation) skipAdaptAnimation.current = true;
212
+ var hasScrollView = import_react.default.useRef(false);
213
+ var opacityFallbackTimer = import_react.default.useRef(null);
214
+ useAnimatedNumberReaction({
215
+ value: animatedNumber,
216
+ hostRef: sheetRef
217
+ }, import_react.default.useCallback(function (value) {
218
+ at.current = value;
219
+ scrollBridge.paneY = value;
220
+ var minY = activePositions[0];
221
+ var wasAtTop = scrollBridge.isAtTop;
222
+ var nowAtTop = value <= minY + 5;
223
+ if (wasAtTop !== nowAtTop) {
224
+ scrollBridge.isAtTop = nowAtTop;
225
+ if (nowAtTop) {
191
226
  var _scrollBridge_setScrollEnabled;
192
- scrollBridge.scrollLockY = void 0, (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !0);
227
+ if (scrollBridge.y > 0) {
228
+ var _scrollBridge_forceScrollTo;
229
+ (_scrollBridge_forceScrollTo = scrollBridge.forceScrollTo) === null || _scrollBridge_forceScrollTo === void 0 || _scrollBridge_forceScrollTo.call(scrollBridge, 0);
230
+ scrollBridge.y = 0;
231
+ }
232
+ scrollBridge.scrollLockY = void 0;
233
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, true);
193
234
  } else {
194
235
  var _scrollBridge_setScrollEnabled1;
195
- scrollBridge.scrollLockY = 0, (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, !1);
236
+ scrollBridge.scrollLockY = 0;
237
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, false);
196
238
  }
197
- }, [animationDriver, activePositions]));
198
- function stopSpring() {
199
- animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
200
239
  }
201
- var animateTo = (0, import_core.useEvent)(function (position2, animationOverride) {
202
- if (frameSize !== 0) {
203
- var toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
204
- if (at.current !== toValue) {
205
- if (at.current = toValue, stopSpring(), skipAdaptAnimation.current) {
206
- skipAdaptAnimation.current = !1, animatedNumber.setValue(toValue, {
207
- type: "timing",
208
- duration: 0
209
- });
210
- return;
211
- }
212
- animatedNumber.setValue(toValue, animationOverride || {
213
- type: "spring",
214
- ...transitionConfig
215
- });
216
- }
217
- }
218
- });
219
- (0, import_constants.useIsomorphicLayoutEffect)(function () {
220
- if (hasntMeasured && screenSize && frameSize) {
221
- at.current = screenSize, animatedNumber.setValue(screenSize, {
222
- type: "timing",
223
- duration: 0
224
- }, function () {
225
- setTimeout(function () {
226
- setDisableAnimation(!1);
227
- }, 10);
228
- });
229
- return;
230
- }
231
- if (!disableAnimation && !(!frameSize || !screenSize || isHidden || hasntMeasured && !open) && (animateTo(position), position === -1 && (scrollBridge.scrollLock = !1, scrollBridge.scrollStartY = -1), open && position >= 0)) {
232
- var isTopPosition = position === 0;
233
- if (scrollBridge.isAtTop = isTopPosition, isTopPosition) {
234
- var _scrollBridge_setScrollEnabled;
235
- scrollBridge.scrollLockY = void 0, (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, !0);
236
- } else {
237
- var _scrollBridge_setScrollEnabled1;
238
- scrollBridge.scrollLockY = 0, (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, !1);
239
- }
240
+ }, [animationDriver, activePositions]));
241
+ function stopSpring() {
242
+ animatedNumber.stop();
243
+ if (scrollBridge.onFinishAnimate) {
244
+ scrollBridge.onFinishAnimate();
245
+ scrollBridge.onFinishAnimate = void 0;
246
+ }
247
+ }
248
+ var animateTo = (0, import_core.useEvent)(function (position2, animationOverride) {
249
+ if (frameSize === 0) return;
250
+ var toValue = isHidden || position2 === -1 ? screenSize : activePositions[position2];
251
+ if (at.current === toValue) return;
252
+ at.current = toValue;
253
+ stopSpring();
254
+ var isOpenAnimation = position2 !== -1 && !isHidden;
255
+ if (opacityFallbackTimer.current) {
256
+ clearTimeout(opacityFallbackTimer.current);
257
+ opacityFallbackTimer.current = null;
258
+ }
259
+ var animationCompleteCallback = function () {
260
+ var _controller_onAnimationComplete;
261
+ if (opacityFallbackTimer.current) {
262
+ clearTimeout(opacityFallbackTimer.current);
263
+ opacityFallbackTimer.current = null;
240
264
  }
241
- }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
242
- var _props_disableDrag,
243
- disableDrag = (_props_disableDrag = props.disableDrag) !== null && _props_disableDrag !== void 0 ? _props_disableDrag : controller?.disableDrag,
244
- themeName = (0, import_core.useThemeName)(),
245
- [blockPan, setBlockPan] = import_react.default.useState(!1),
246
- panResponder = import_react.default.useMemo(function () {
247
- if (disableDrag || !frameSize || isShowingInnerSheet) return;
248
- var minY = positions[0];
249
- scrollBridge.paneMinY = minY;
250
- var startY = at.current;
251
- function setPanning(val) {
252
- setIsDragging(val);
253
- }
254
- var release = function (param) {
255
- var {
256
- vy
257
- } = param;
258
- if (scrollBridge.setParentDragging(!1), !scrollBridge.scrollLock) {
259
- isExternalDrag = !1, previouslyScrolling = !1, setPanning(!1);
260
- for (var currentPos = at.current, end = currentPos + frameSize * vy * 0.2, closestPoint = 0, dist = Number.POSITIVE_INFINITY, i = 0; i < positions.length; i++) {
261
- var position2 = positions[i],
262
- curDist = end > position2 ? end - position2 : position2 - end;
263
- curDist < dist && (dist = curDist, closestPoint = i);
264
- }
265
- setPosition(closestPoint), animateTo(closestPoint);
266
- }
267
- },
268
- finish = function (_e, state2) {
269
- release({
270
- vy: state2.vy,
271
- dragAt: state2.dy
272
- });
273
- },
274
- previouslyScrolling = !1,
275
- onMoveShouldSet = function (e, param) {
276
- var {
277
- dy
278
- } = param;
279
- function getShouldSet() {
280
- if (e.target === providerProps.handleRef.current) return !0;
281
- if (scrollBridge.hasScrollableContent === !0) {
282
- if (scrollBridge.scrollLock) return !1;
283
- var isScrolled = scrollBridge.y !== 0,
284
- isDraggingUp = dy < 0,
285
- isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
286
- if (isScrolled) return previouslyScrolling = !0, !1;
287
- if (isNearTop && hasScrollView.current && isDraggingUp) return !1;
288
- }
289
- return Math.abs(dy) > 10;
290
- }
291
- var granted = getShouldSet();
292
- return granted && scrollBridge.setParentDragging(!0), granted;
293
- },
294
- grant = function () {
295
- setPanning(!0), stopSpring(), startY = at.current;
296
- },
297
- isExternalDrag = !1;
298
- return scrollBridge.drag = function (dy) {
299
- isExternalDrag || (isExternalDrag = !0, grant());
300
- var to = dy + startY;
301
- animatedNumber.setValue((0, import_helpers.resisted)(to, minY), {
302
- type: "direct"
303
- });
304
- }, scrollBridge.release = release, scrollBridge.snapToPosition = function (positionIndex) {
305
- isExternalDrag = !1, previouslyScrolling = !1, setPanning(!1), setPosition(positionIndex), animateTo(positionIndex);
306
- }, import_react_native.PanResponder.create({
307
- onMoveShouldSetPanResponder: onMoveShouldSet,
308
- onPanResponderGrant: grant,
309
- onPanResponderMove: function (_e, param) {
310
- var {
311
- dy
312
- } = param,
313
- toFull = dy + startY,
314
- to = (0, import_helpers.resisted)(toFull, minY),
315
- isAtTop = to <= minY;
316
- isAtTop ? scrollBridge.setParentDragging(!1) : scrollBridge.setParentDragging(!0), animatedNumber.setValue(to, {
317
- type: "direct"
318
- });
319
- },
320
- onPanResponderEnd: finish,
321
- onPanResponderTerminate: finish,
322
- onPanResponderRelease: finish
323
- });
324
- }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]);
325
- import_react.default.useEffect(function () {
326
- isDragging || isHidden || !open || disableAnimation || !frameSize || !screenSize || animateTo(position, {
265
+ if (!isOpenAnimation && !openRef.current) setOpacity(0);
266
+ onAnimationComplete === null || onAnimationComplete === void 0 || onAnimationComplete({
267
+ open: isOpenAnimation
268
+ });
269
+ controller === null || controller === void 0 || (_controller_onAnimationComplete = controller.onAnimationComplete) == null || _controller_onAnimationComplete.call(controller, {
270
+ open: isOpenAnimation
271
+ });
272
+ };
273
+ if (!isOpenAnimation) opacityFallbackTimer.current = setTimeout(function () {
274
+ opacityFallbackTimer.current = null;
275
+ if (!openRef.current) setOpacity(0);
276
+ }, 1e3);
277
+ if (skipAdaptAnimation.current) {
278
+ skipAdaptAnimation.current = false;
279
+ animatedNumber.setValue(toValue, {
280
+ type: "timing",
281
+ duration: 0
282
+ }, animationCompleteCallback);
283
+ return;
284
+ }
285
+ animatedNumber.setValue(toValue, animationOverride || {
286
+ type: "spring",
287
+ ...transitionConfig
288
+ }, animationCompleteCallback);
289
+ });
290
+ (0, import_constants.useIsomorphicLayoutEffect)(function () {
291
+ if (hasntMeasured && screenSize && frameSize) {
292
+ at.current = screenSize;
293
+ animatedNumber.setValue(screenSize, {
327
294
  type: "timing",
328
- duration: 250
295
+ duration: 0
296
+ }, function () {
297
+ setTimeout(function () {
298
+ setDisableAnimation(false);
299
+ }, 10);
329
300
  });
330
- }, [isKeyboardVisible, keyboardHeight]);
331
- var wasDragging = import_react.default.useRef(!1);
332
- import_react.default.useEffect(function () {
333
- if (isDragging) {
334
- wasDragging.current = !0;
335
- return;
301
+ return;
302
+ }
303
+ if (disableAnimation) return;
304
+ if (!frameSize || !screenSize || isHidden || hasntMeasured && !open) return;
305
+ animateTo(position);
306
+ if (position === -1) {
307
+ scrollBridge.scrollLock = false;
308
+ scrollBridge.scrollStartY = -1;
309
+ }
310
+ if (open && position >= 0) {
311
+ var isTopPosition = position === 0;
312
+ scrollBridge.isAtTop = isTopPosition;
313
+ if (isTopPosition) {
314
+ var _scrollBridge_setScrollEnabled;
315
+ scrollBridge.scrollLockY = void 0;
316
+ (_scrollBridge_setScrollEnabled = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled === void 0 || _scrollBridge_setScrollEnabled.call(scrollBridge, true);
317
+ } else {
318
+ var _scrollBridge_setScrollEnabled1;
319
+ scrollBridge.scrollLockY = 0;
320
+ (_scrollBridge_setScrollEnabled1 = scrollBridge.setScrollEnabled) === null || _scrollBridge_setScrollEnabled1 === void 0 || _scrollBridge_setScrollEnabled1.call(scrollBridge, false);
336
321
  }
337
- wasDragging.current && (wasDragging.current = !1, !(!frameSize || !screenSize || isHidden || !open) && animateTo(position));
338
- }, [isDragging]), import_react.default.useEffect(function () {
339
- !open && isKeyboardVisible && dismissKeyboard();
340
- }, [open]);
341
- var {
342
- panGesture,
343
- panGestureRef,
344
- gestureHandlerEnabled
345
- } = (0, import_useGestureHandlerPan.useGestureHandlerPan)({
346
- positions: activePositions,
347
- frameSize,
348
- setPosition,
349
- animateTo,
350
- stopSpring,
351
- scrollBridge,
352
- setIsDragging,
353
- getCurrentPosition: function () {
354
- return at.current;
355
- },
356
- resisted: import_helpers.resisted,
357
- disableDrag,
358
- isShowingInnerSheet,
359
- setAnimatedPosition: function (val) {
360
- at.current = val, animatedNumber.setValue(val, {
361
- type: "direct"
362
- });
363
- },
364
- pauseKeyboardHandler
365
- }),
366
- handleAnimationViewLayout = import_react.default.useCallback(function (e) {
367
- var _e_nativeEvent;
368
- if (!(!open && stableFrameSize.current !== 0)) {
369
- var layoutHeight = (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height,
370
- next = modal ? Math.min(layoutHeight, import_react_native.Dimensions.get(relativeDimensionTo).height) : layoutHeight;
371
- next && setFrameSize(next);
322
+ }
323
+ }, [hasntMeasured, disableAnimation, isHidden, frameSize, screenSize, open, position]);
324
+ var _props_disableDrag;
325
+ var disableDrag = (_props_disableDrag = props.disableDrag) !== null && _props_disableDrag !== void 0 ? _props_disableDrag : controller === null || controller === void 0 ? void 0 : controller.disableDrag;
326
+ (0, import_core.useThemeName)();
327
+ var [blockPan, setBlockPan] = import_react.default.useState(false);
328
+ var panResponder = import_react.default.useMemo(function () {
329
+ if (disableDrag) return;
330
+ if (!frameSize) return;
331
+ if (isShowingInnerSheet) return;
332
+ var minY = positions[0];
333
+ scrollBridge.paneMinY = minY;
334
+ var startY = at.current;
335
+ function setPanning(val) {
336
+ setIsDragging(val);
337
+ }
338
+ var release = function (param) {
339
+ var {
340
+ vy
341
+ } = param;
342
+ scrollBridge.setParentDragging(false);
343
+ if (scrollBridge.scrollLock) return;
344
+ isExternalDrag = false;
345
+ previouslyScrolling = false;
346
+ setPanning(false);
347
+ var end = at.current + frameSize * vy * .2;
348
+ var closestPoint = 0;
349
+ var dist = Number.POSITIVE_INFINITY;
350
+ for (var i = 0; i < positions.length; i++) {
351
+ var position2 = positions[i];
352
+ var curDist = end > position2 ? end - position2 : position2 - end;
353
+ if (curDist < dist) {
354
+ dist = curDist;
355
+ closestPoint = i;
372
356
  }
373
- }, [open, modal]),
374
- handleMaxContentViewLayout = import_react.default.useCallback(function (e) {
375
- var _e_nativeEvent,
376
- next = Math.min((_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height, import_react_native.Dimensions.get(relativeDimensionTo).height);
377
- next && setMaxContentSize(next);
378
- }, []),
379
- animatedStyle = useAnimatedNumberStyle(animatedNumber, function (val) {
380
- "worklet";
381
-
382
- var translateY = frameSize === 0 ? hiddenSize : val;
383
- return {
384
- transform: [{
385
- translateY
386
- }]
387
- };
388
- }),
389
- [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
390
- open && opacity === 0 && setOpacity(1), import_react.default.useEffect(function () {
391
- if (!open) {
392
- var tm = setTimeout(function () {
393
- setOpacity(0);
394
- }, 400);
395
- return function () {
396
- clearTimeout(tm);
397
- };
398
357
  }
399
- }, [open]);
400
- var forcedContentHeight = hasFit ? void 0 : snapPointsMode === "percent" ?
401
- // Use dvh for modal (viewport-relative), % for inline (container-relative)
402
- `${maxSnapPoint}${import_constants.isWeb && modal ? "dvh" : "%"}` : maxSnapPoint,
403
- setHasScrollView = import_react.default.useCallback(function (val) {
404
- hasScrollView.current = val;
405
- }, []),
406
- contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_core.LayoutMeasurementController, {
407
- disable: !open,
408
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_contexts.ParentSheetContext.Provider, {
409
- value: nextParentContext,
410
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {
411
- ...providerProps,
412
- setHasScrollView,
413
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_GestureSheetContext.GestureSheetProvider, {
414
- isDragging,
415
- blockPan,
416
- setBlockPan,
417
- panGesture,
418
- panGestureRef,
419
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_animate_presence.AnimatePresence, {
420
- custom: {
421
- open
422
- },
423
- children: shouldHideParentSheet || !open ? null : overlayComponent
424
- }), snapPointsMode !== "percent" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
425
- style: {
426
- opacity: 0,
427
- position: "absolute",
428
- top: 0,
429
- left: 0,
430
- right: 0,
431
- bottom: 0,
432
- pointerEvents: "none"
433
- },
434
- onLayout: handleMaxContentViewLayout
435
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(AnimatedView, {
436
- ref,
437
- onLayout: handleAnimationViewLayout,
438
- // @ts-ignore for CSS driver this is necessary to attach the transition
439
- // also motion driver at least though i suspect all drivers?
440
- transition: isDragging || disableAnimation ? null : transition,
441
- // @ts-ignore
442
- disableClassName: !0,
443
- style: [{
444
- position: "absolute",
445
- zIndex,
446
- width: "100%",
447
- height: forcedContentHeight,
448
- minHeight: forcedContentHeight,
449
- opacity: shouldHideParentSheet ? 0 : opacity,
450
- ...((shouldHideParentSheet || !open) && {
451
- pointerEvents: "none"
452
- })
453
- }, animatedStyle],
454
- children: (/* wrap children with plain RN View for panResponder - tamagui views no longer handle responder events on web */
455
- gestureHandlerEnabled && panGesture ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_GestureDetectorWrapper.GestureDetectorWrapper, {
456
- gesture: panGesture,
457
- style: {
458
- flex: 1
459
- },
460
- children: props.children
461
- }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
462
- ...panResponder?.panHandlers,
463
- style: {
464
- flex: 1,
465
- width: "100%",
466
- height: "100%"
467
- },
468
- children: props.children
469
- }))
470
- })]
471
- })
472
- })
473
- })
358
+ setPosition(closestPoint);
359
+ animateTo(closestPoint);
360
+ };
361
+ var finish = function (_e, state2) {
362
+ release({
363
+ vy: state2.vy,
364
+ dragAt: state2.dy
474
365
  });
475
- if ((0, import_portal.needsPortalRepropagation)()) {
476
- var adaptContext = (0, import_adapt.useAdaptContext)();
477
- contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_adapt.ProvideAdaptContext, {
478
- ...adaptContext,
479
- children: (/* @ts-ignore */
480
- contents)
366
+ };
367
+ var previouslyScrolling = false;
368
+ var onMoveShouldSet = function (e, param) {
369
+ var {
370
+ dy
371
+ } = param;
372
+ function getShouldSet() {
373
+ if (e.target === providerProps.handleRef.current) return true;
374
+ if (scrollBridge.hasScrollableContent === true) {
375
+ if (scrollBridge.scrollLock) return false;
376
+ var isScrolled = scrollBridge.y !== 0;
377
+ var isDraggingUp = dy < 0;
378
+ var isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
379
+ if (isScrolled) return false;
380
+ if (isNearTop) {
381
+ if (hasScrollView.current && isDraggingUp) return false;
382
+ }
383
+ }
384
+ return Math.abs(dy) > 10;
385
+ }
386
+ var granted = getShouldSet();
387
+ if (granted) scrollBridge.setParentDragging(true);
388
+ return granted;
389
+ };
390
+ var grant = function () {
391
+ setPanning(true);
392
+ stopSpring();
393
+ startY = at.current;
394
+ };
395
+ var isExternalDrag = false;
396
+ scrollBridge.drag = function (dy) {
397
+ if (!isExternalDrag) {
398
+ isExternalDrag = true;
399
+ grant();
400
+ }
401
+ var to = dy + startY;
402
+ animatedNumber.setValue((0, import_helpers.resisted)(to, minY), {
403
+ type: "direct"
481
404
  });
405
+ };
406
+ scrollBridge.release = release;
407
+ scrollBridge.snapToPosition = function (positionIndex) {
408
+ isExternalDrag = false;
409
+ setPanning(false);
410
+ setPosition(positionIndex);
411
+ animateTo(positionIndex);
412
+ };
413
+ return import_react_native.PanResponder.create({
414
+ onMoveShouldSetPanResponder: onMoveShouldSet,
415
+ onPanResponderGrant: grant,
416
+ onPanResponderMove: function (_e, param) {
417
+ var {
418
+ dy
419
+ } = param;
420
+ var toFull = dy + startY;
421
+ var to = (0, import_helpers.resisted)(toFull, minY);
422
+ if (to <= minY) scrollBridge.setParentDragging(false);else scrollBridge.setParentDragging(true);
423
+ animatedNumber.setValue(to, {
424
+ type: "direct"
425
+ });
426
+ },
427
+ onPanResponderEnd: finish,
428
+ onPanResponderTerminate: finish,
429
+ onPanResponderRelease: finish
430
+ });
431
+ }, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]);
432
+ import_react.default.useEffect(function () {
433
+ if (isDragging || isHidden || !open || disableAnimation) return;
434
+ if (!frameSize || !screenSize) return;
435
+ animateTo(position, {
436
+ type: "timing",
437
+ duration: 250
438
+ });
439
+ }, [isKeyboardVisible, keyboardHeight]);
440
+ var wasDragging = import_react.default.useRef(false);
441
+ import_react.default.useEffect(function () {
442
+ if (isDragging) {
443
+ wasDragging.current = true;
444
+ return;
482
445
  }
483
- var shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : !0;
484
- if (modal) {
485
- var modalContents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_portal.Portal, {
486
- stackZIndex: zIndex,
487
- ...portalProps,
488
- children: shouldMountChildren && /* @__PURE__ */(0, import_jsx_runtime.jsx)(ContainerComponent, {
489
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_core.Theme, {
490
- contain: !0,
491
- forceClassName: !0,
492
- name: themeName,
493
- children: contents
494
- })
495
- })
496
- });
497
- return import_constants.isWeb ? modalContents : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_contexts.SheetInsideSheetContext.Provider, {
498
- value: onInnerSheet,
499
- children: modalContents
446
+ if (!wasDragging.current) return;
447
+ wasDragging.current = false;
448
+ if (!frameSize || !screenSize || isHidden || !open) return;
449
+ animateTo(position);
450
+ }, [isDragging]);
451
+ import_react.default.useEffect(function () {
452
+ if (!open && isKeyboardVisible) dismissKeyboard();
453
+ }, [open]);
454
+ var {
455
+ panGesture,
456
+ panGestureRef,
457
+ gestureHandlerEnabled
458
+ } = (0, import_useGestureHandlerPan.useGestureHandlerPan)({
459
+ positions: activePositions,
460
+ frameSize,
461
+ setPosition,
462
+ animateTo,
463
+ stopSpring,
464
+ scrollBridge,
465
+ setIsDragging,
466
+ getCurrentPosition: function () {
467
+ return at.current;
468
+ },
469
+ resisted: import_helpers.resisted,
470
+ disableDrag,
471
+ isShowingInnerSheet,
472
+ setAnimatedPosition: function (val) {
473
+ at.current = val;
474
+ animatedNumber.setValue(val, {
475
+ type: "direct"
500
476
  });
477
+ },
478
+ pauseKeyboardHandler
479
+ });
480
+ var handleAnimationViewLayout = (0, import_core.useEvent)(function (e) {
481
+ var _e_nativeEvent;
482
+ if (!open && stableFrameSize.current !== 0) return;
483
+ var layoutHeight = (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height;
484
+ var next = modal ? Math.min(layoutHeight, import_react_native.Dimensions.get(relativeDimensionTo).height) : layoutHeight;
485
+ if (!next) return;
486
+ setFrameSize(next);
487
+ });
488
+ var handleMaxContentViewLayout = import_react.default.useCallback(function (e) {
489
+ var _e_nativeEvent;
490
+ var next = Math.min((_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.layout.height, import_react_native.Dimensions.get(relativeDimensionTo).height);
491
+ if (!next) return;
492
+ setMaxContentSize(next);
493
+ }, []);
494
+ var animatedStyle = useAnimatedNumberStyle(animatedNumber, import_react.default.useCallback(function (val) {
495
+ "worklet";
496
+
497
+ return {
498
+ transform: [{
499
+ translateY: frameSize === 0 ? hiddenSize : val
500
+ }]
501
+ };
502
+ }, [frameSize]));
503
+ var [opacity, setOpacity] = import_react.default.useState(open ? 1 : 0);
504
+ if (open && opacity === 0) {
505
+ setOpacity(1);
506
+ if (opacityFallbackTimer.current) {
507
+ clearTimeout(opacityFallbackTimer.current);
508
+ opacityFallbackTimer.current = null;
501
509
  }
502
- return contents;
510
+ }
511
+ var forcedContentHeight = hasFit ? void 0 : snapPointsMode === "percent" ? `${maxSnapPoint}${import_constants.isWeb ? modal ? "dvh" : "%" : "%"}` : maxSnapPoint;
512
+ var setHasScrollView = import_react.default.useCallback(function (val) {
513
+ hasScrollView.current = val;
514
+ }, []);
515
+ var contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_core.LayoutMeasurementController, {
516
+ disable: !open,
517
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_contexts.ParentSheetContext.Provider, {
518
+ value: nextParentContext,
519
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_SheetContext.SheetProvider, {
520
+ ...providerProps,
521
+ keyboardOccludedHeight,
522
+ setHasScrollView,
523
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_GestureSheetContext.GestureSheetProvider, {
524
+ isDragging,
525
+ blockPan,
526
+ setBlockPan,
527
+ panGesture,
528
+ panGestureRef,
529
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_animate_presence.AnimatePresence, {
530
+ custom: {
531
+ open
532
+ },
533
+ children: shouldHideParentSheet || !open ? null : overlayComponent
534
+ }), snapPointsMode !== "percent" && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
535
+ style: {
536
+ opacity: 0,
537
+ position: "absolute",
538
+ top: 0,
539
+ left: 0,
540
+ right: 0,
541
+ bottom: 0,
542
+ pointerEvents: "none"
543
+ },
544
+ onLayout: handleMaxContentViewLayout
545
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(AnimatedView, {
546
+ ref,
547
+ onLayout: handleAnimationViewLayout,
548
+ transition: isDragging || disableAnimation ? null : transition,
549
+ disableClassName: true,
550
+ style: [{
551
+ position: "absolute",
552
+ zIndex,
553
+ width: "100%",
554
+ height: forcedContentHeight,
555
+ minHeight: forcedContentHeight,
556
+ opacity: !shouldHideParentSheet ? opacity : 0,
557
+ ...((shouldHideParentSheet || !open) && {
558
+ pointerEvents: "none"
559
+ })
560
+ }, animatedStyle],
561
+ children: gestureHandlerEnabled && panGesture ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_GestureDetectorWrapper.GestureDetectorWrapper, {
562
+ gesture: panGesture,
563
+ style: {
564
+ flex: 1
565
+ },
566
+ children: props.children
567
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
568
+ ...(panResponder === null || panResponder === void 0 ? void 0 : panResponder.panHandlers),
569
+ style: {
570
+ flex: 1,
571
+ width: "100%",
572
+ height: "100%"
573
+ },
574
+ children: props.children
575
+ })
576
+ })]
577
+ })
578
+ })
579
+ })
503
580
  });
581
+ if ((0, import_portal.needsPortalRepropagation)()) {
582
+ var adaptContext = (0, import_adapt.useAdaptContext)();
583
+ contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_adapt.ProvideAdaptContext, {
584
+ ...adaptContext,
585
+ children: contents
586
+ });
587
+ }
588
+ var shouldMountChildren = unmountChildrenWhenHidden ? !!opacity : true;
589
+ if (modal) {
590
+ var RNGHRoot = (0, import_gestureState.getGestureHandlerState)().RootView;
591
+ var mountedContents = shouldMountChildren ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ContainerComponent, {
592
+ children: contents
593
+ }) : null;
594
+ var modalContents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_portal.Portal, {
595
+ stackZIndex: zIndex,
596
+ ...portalProps,
597
+ children: mountedContents && RNGHRoot ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(RNGHRoot, {
598
+ style: open ? rnghRootStyleOpen : rnghRootStyleClosed,
599
+ children: mountedContents
600
+ }) : mountedContents
601
+ });
602
+ if (import_constants.isWeb) return modalContents;
603
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_contexts.SheetInsideSheetContext.Provider, {
604
+ value: onInnerSheet,
605
+ children: modalContents
606
+ });
607
+ }
608
+ return contents;
609
+ });
504
610
  function getYPositions(mode, point, screenSize, frameSize) {
505
611
  if (!screenSize || !frameSize) return 0;
506
612
  if (mode === "mixed") {
507
- if (typeof point == "number") return screenSize - Math.min(screenSize, Math.max(0, point));
613
+ if (typeof point === "number") return screenSize - Math.min(screenSize, Math.max(0, point));
508
614
  if (point === "fit") return screenSize - Math.min(screenSize, frameSize);
509
615
  if (point.endsWith("%")) {
510
616
  var pct = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100;
511
- return Number.isNaN(pct) ? (console.warn("Invalid snapPoint percentage string"), 0) : Math.round(screenSize - pct * screenSize);
617
+ if (Number.isNaN(pct)) {
618
+ console.warn("Invalid snapPoint percentage string");
619
+ return 0;
620
+ }
621
+ return Math.round(screenSize - pct * screenSize);
512
622
  }
513
- return console.warn("Invalid snapPoint unknown value"), 0;
623
+ console.warn("Invalid snapPoint unknown value");
624
+ return 0;
625
+ }
626
+ if (mode === "fit") {
627
+ if (point === 0) return screenSize;
628
+ return screenSize - Math.min(screenSize, frameSize);
514
629
  }
515
- if (mode === "fit") return point === 0 ? screenSize : screenSize - Math.min(screenSize, frameSize);
516
- if (mode === "constant" && typeof point == "number") return screenSize - Math.min(screenSize, Math.max(0, point));
630
+ if (mode === "constant" && typeof point === "number") return screenSize - Math.min(screenSize, Math.max(0, point));
517
631
  var pct1 = Math.min(100, Math.max(0, Number(point))) / 100;
518
- return Number.isNaN(pct1) ? (console.warn("Invalid snapPoint percentage"), 0) : Math.round(screenSize - pct1 * screenSize);
632
+ if (Number.isNaN(pct1)) {
633
+ console.warn("Invalid snapPoint percentage");
634
+ return 0;
635
+ }
636
+ return Math.round(screenSize - pct1 * screenSize);
519
637
  }
520
638
  //# sourceMappingURL=SheetImplementationCustom.native.js.map