@tamagui/sheet 2.0.0-rc.4 → 2.0.0-rc.40

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