@tamagui/sheet 2.7.7 → 3.0.0-beta.1091.1

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 (477) hide show
  1. package/dist/cjs/GestureSheetContext.cjs +28 -37
  2. package/dist/cjs/GestureSheetContext.native.cjs +48 -0
  3. package/dist/cjs/GestureSheetContext.native.js +29 -37
  4. package/dist/cjs/GestureSheetContext.native.js.map +1 -1
  5. package/dist/cjs/Sheet.cjs +220 -99
  6. package/dist/cjs/Sheet.native.cjs +245 -0
  7. package/dist/cjs/Sheet.native.js +223 -98
  8. package/dist/cjs/Sheet.native.js.map +1 -1
  9. package/dist/cjs/SheetContext.cjs +43 -22
  10. package/dist/cjs/SheetContext.native.cjs +57 -0
  11. package/dist/cjs/SheetContext.native.js +44 -22
  12. package/dist/cjs/SheetContext.native.js.map +1 -1
  13. package/dist/cjs/SheetController.cjs +49 -56
  14. package/dist/cjs/SheetController.native.cjs +71 -0
  15. package/dist/cjs/SheetController.native.js +52 -58
  16. package/dist/cjs/SheetController.native.js.map +1 -1
  17. package/dist/cjs/SheetDragSurface.cjs +50 -0
  18. package/dist/cjs/SheetDragSurface.native.cjs +61 -0
  19. package/dist/cjs/SheetDragSurface.native.js +63 -0
  20. package/dist/cjs/SheetDragSurface.native.js.map +1 -0
  21. package/dist/cjs/SheetImplementationCustom.cjs +664 -610
  22. package/dist/cjs/SheetImplementationCustom.native.cjs +748 -0
  23. package/dist/cjs/SheetImplementationCustom.native.js +704 -649
  24. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  25. package/dist/cjs/SheetScrollView.cjs +291 -312
  26. package/dist/cjs/SheetScrollView.native.cjs +326 -0
  27. package/dist/cjs/SheetScrollView.native.js +299 -319
  28. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  29. package/dist/cjs/constants.cjs +21 -21
  30. package/dist/cjs/constants.native.cjs +36 -0
  31. package/dist/cjs/constants.native.js +21 -20
  32. package/dist/cjs/constants.native.js.map +1 -1
  33. package/dist/cjs/contexts.cjs +19 -28
  34. package/dist/cjs/contexts.native.cjs +37 -0
  35. package/dist/cjs/contexts.native.js +19 -27
  36. package/dist/cjs/contexts.native.js.map +1 -1
  37. package/dist/cjs/controller.cjs +16 -18
  38. package/dist/cjs/controller.native.cjs +31 -0
  39. package/dist/cjs/controller.native.js +16 -17
  40. package/dist/cjs/controller.native.js.map +1 -1
  41. package/dist/cjs/gestureState.cjs +28 -30
  42. package/dist/cjs/gestureState.native.cjs +53 -0
  43. package/dist/cjs/gestureState.native.js +29 -30
  44. package/dist/cjs/gestureState.native.js.map +1 -1
  45. package/dist/cjs/helpers.cjs +20 -24
  46. package/dist/cjs/helpers.native.cjs +34 -0
  47. package/dist/cjs/helpers.native.js +21 -24
  48. package/dist/cjs/helpers.native.js.map +1 -1
  49. package/dist/cjs/index.cjs +14 -21
  50. package/dist/cjs/index.native.cjs +36 -0
  51. package/dist/cjs/index.native.js +15 -21
  52. package/dist/cjs/index.native.js.map +1 -1
  53. package/dist/cjs/keyboardAvoidance.cjs +55 -79
  54. package/dist/cjs/keyboardAvoidance.native.cjs +74 -0
  55. package/dist/cjs/keyboardAvoidance.native.js +55 -78
  56. package/dist/cjs/keyboardAvoidance.native.js.map +1 -1
  57. package/dist/cjs/nativeSheet.cjs +17 -86
  58. package/dist/cjs/nativeSheet.native.cjs +94 -0
  59. package/dist/cjs/nativeSheet.native.js +73 -86
  60. package/dist/cjs/nativeSheet.native.js.map +1 -1
  61. package/dist/cjs/stableViewportHeight.cjs +27 -0
  62. package/dist/cjs/stableViewportHeight.native.cjs +29 -0
  63. package/dist/cjs/stableViewportHeight.native.js +31 -0
  64. package/dist/cjs/stableViewportHeight.native.js.map +1 -0
  65. package/dist/cjs/types.cjs +9 -11
  66. package/dist/cjs/types.native.cjs +18 -0
  67. package/dist/cjs/types.native.js +9 -10
  68. package/dist/cjs/types.native.js.map +1 -1
  69. package/dist/cjs/useGestureHandlerPan.cjs +244 -257
  70. package/dist/cjs/useGestureHandlerPan.native.cjs +272 -0
  71. package/dist/cjs/useGestureHandlerPan.native.js +253 -265
  72. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  73. package/dist/cjs/useKeyboardControllerSheet.cjs +82 -88
  74. package/dist/cjs/useKeyboardControllerSheet.native.cjs +92 -0
  75. package/dist/cjs/useKeyboardControllerSheet.native.js +73 -111
  76. package/dist/cjs/useKeyboardControllerSheet.native.js.map +1 -1
  77. package/dist/cjs/useSafeAreaInsets.cjs +19 -26
  78. package/dist/cjs/useSafeAreaInsets.native.cjs +50 -0
  79. package/dist/cjs/useSafeAreaInsets.native.js +29 -25
  80. package/dist/cjs/useSafeAreaInsets.native.js.map +1 -1
  81. package/dist/cjs/useSheetController.cjs +26 -39
  82. package/dist/cjs/useSheetController.native.cjs +41 -0
  83. package/dist/cjs/useSheetController.native.js +27 -39
  84. package/dist/cjs/useSheetController.native.js.map +1 -1
  85. package/dist/cjs/useSheetOffscreenSize.cjs +43 -53
  86. package/dist/cjs/useSheetOffscreenSize.native.cjs +59 -0
  87. package/dist/cjs/useSheetOffscreenSize.native.js +47 -56
  88. package/dist/cjs/useSheetOffscreenSize.native.js.map +1 -1
  89. package/dist/cjs/useSheetOpenState.cjs +68 -40
  90. package/dist/cjs/useSheetOpenState.native.cjs +87 -0
  91. package/dist/cjs/useSheetOpenState.native.js +73 -42
  92. package/dist/cjs/useSheetOpenState.native.js.map +1 -1
  93. package/dist/cjs/useSheetProviderProps.cjs +145 -164
  94. package/dist/cjs/useSheetProviderProps.native.cjs +175 -0
  95. package/dist/cjs/useSheetProviderProps.native.js +155 -174
  96. package/dist/cjs/useSheetProviderProps.native.js.map +1 -1
  97. package/dist/cjs/useSheetScrollViewGestures.cjs +171 -180
  98. package/dist/cjs/useSheetScrollViewGestures.native.cjs +149 -0
  99. package/dist/cjs/useSheetScrollViewGestures.native.js +135 -147
  100. package/dist/cjs/useSheetScrollViewGestures.native.js.map +1 -1
  101. package/dist/cjs/webViewport.cjs +46 -48
  102. package/dist/cjs/webViewport.native.cjs +78 -0
  103. package/dist/cjs/webViewport.native.js +49 -50
  104. package/dist/cjs/webViewport.native.js.map +1 -1
  105. package/dist/esm/GestureSheetContext.mjs +15 -20
  106. package/dist/esm/GestureSheetContext.mjs.map +1 -1
  107. package/dist/esm/GestureSheetContext.native.js +17 -22
  108. package/dist/esm/GestureSheetContext.native.js.map +1 -1
  109. package/dist/esm/Sheet.mjs +207 -83
  110. package/dist/esm/Sheet.mjs.map +1 -1
  111. package/dist/esm/Sheet.native.js +210 -83
  112. package/dist/esm/Sheet.native.js.map +1 -1
  113. package/dist/esm/SheetContext.mjs +21 -5
  114. package/dist/esm/SheetContext.mjs.map +1 -1
  115. package/dist/esm/SheetContext.native.js +21 -5
  116. package/dist/esm/SheetContext.native.js.map +1 -1
  117. package/dist/esm/SheetController.mjs +34 -30
  118. package/dist/esm/SheetController.mjs.map +1 -1
  119. package/dist/esm/SheetController.native.js +38 -34
  120. package/dist/esm/SheetController.native.js.map +1 -1
  121. package/dist/esm/SheetDragSurface.mjs +25 -0
  122. package/dist/esm/SheetDragSurface.mjs.map +1 -0
  123. package/dist/esm/SheetDragSurface.native.js +34 -0
  124. package/dist/esm/SheetDragSurface.native.js.map +1 -0
  125. package/dist/esm/SheetImplementationCustom.mjs +647 -586
  126. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  127. package/dist/esm/SheetImplementationCustom.native.js +684 -618
  128. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  129. package/dist/esm/SheetScrollView.mjs +278 -288
  130. package/dist/esm/SheetScrollView.mjs.map +1 -1
  131. package/dist/esm/SheetScrollView.native.js +287 -297
  132. package/dist/esm/SheetScrollView.native.js.map +1 -1
  133. package/dist/esm/constants.mjs +5 -3
  134. package/dist/esm/constants.mjs.map +1 -1
  135. package/dist/esm/constants.native.js +5 -3
  136. package/dist/esm/constants.native.js.map +1 -1
  137. package/dist/esm/contexts.mjs +3 -3
  138. package/dist/esm/contexts.mjs.map +1 -1
  139. package/dist/esm/contexts.native.js +3 -3
  140. package/dist/esm/contexts.native.js.map +1 -1
  141. package/dist/esm/controller.mjs +2 -2
  142. package/dist/esm/controller.native.js +2 -2
  143. package/dist/esm/gestureState.mjs +13 -11
  144. package/dist/esm/gestureState.mjs.map +1 -1
  145. package/dist/esm/gestureState.native.js +14 -12
  146. package/dist/esm/gestureState.native.js.map +1 -1
  147. package/dist/esm/helpers.mjs +7 -6
  148. package/dist/esm/helpers.mjs.map +1 -1
  149. package/dist/esm/helpers.native.js +8 -7
  150. package/dist/esm/helpers.native.js.map +1 -1
  151. package/dist/esm/index.js +21 -14
  152. package/dist/esm/index.mjs +21 -14
  153. package/dist/esm/index.native.js +21 -14
  154. package/dist/esm/keyboardAvoidance.mjs +40 -61
  155. package/dist/esm/keyboardAvoidance.mjs.map +1 -1
  156. package/dist/esm/keyboardAvoidance.native.js +40 -61
  157. package/dist/esm/keyboardAvoidance.native.js.map +1 -1
  158. package/dist/esm/nativeSheet.mjs +4 -70
  159. package/dist/esm/nativeSheet.mjs.map +1 -1
  160. package/dist/esm/nativeSheet.native.js +60 -70
  161. package/dist/esm/nativeSheet.native.js.map +1 -1
  162. package/dist/esm/stableViewportHeight.mjs +8 -0
  163. package/dist/esm/stableViewportHeight.mjs.map +1 -0
  164. package/dist/esm/stableViewportHeight.native.js +8 -0
  165. package/dist/esm/stableViewportHeight.native.js.map +1 -0
  166. package/dist/esm/types.mjs +0 -2
  167. package/dist/esm/types.native.js +0 -2
  168. package/dist/esm/useGestureHandlerPan.mjs +232 -239
  169. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  170. package/dist/esm/useGestureHandlerPan.native.js +241 -248
  171. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  172. package/dist/esm/useKeyboardControllerSheet.mjs +71 -71
  173. package/dist/esm/useKeyboardControllerSheet.mjs.map +1 -1
  174. package/dist/esm/useKeyboardControllerSheet.native.js +66 -94
  175. package/dist/esm/useKeyboardControllerSheet.native.js.map +1 -1
  176. package/dist/esm/useSafeAreaInsets.mjs +3 -1
  177. package/dist/esm/useSafeAreaInsets.mjs.map +1 -1
  178. package/dist/esm/useSafeAreaInsets.native.js +15 -3
  179. package/dist/esm/useSafeAreaInsets.native.js.map +1 -1
  180. package/dist/esm/useSheetController.mjs +14 -12
  181. package/dist/esm/useSheetController.mjs.map +1 -1
  182. package/dist/esm/useSheetController.native.js +14 -12
  183. package/dist/esm/useSheetController.native.js.map +1 -1
  184. package/dist/esm/useSheetOffscreenSize.mjs +30 -35
  185. package/dist/esm/useSheetOffscreenSize.mjs.map +1 -1
  186. package/dist/esm/useSheetOffscreenSize.native.js +34 -39
  187. package/dist/esm/useSheetOffscreenSize.native.js.map +1 -1
  188. package/dist/esm/useSheetOpenState.mjs +50 -22
  189. package/dist/esm/useSheetOpenState.mjs.map +1 -1
  190. package/dist/esm/useSheetOpenState.native.js +55 -25
  191. package/dist/esm/useSheetOpenState.native.js.map +1 -1
  192. package/dist/esm/useSheetProviderProps.mjs +130 -138
  193. package/dist/esm/useSheetProviderProps.mjs.map +1 -1
  194. package/dist/esm/useSheetProviderProps.native.js +140 -149
  195. package/dist/esm/useSheetProviderProps.native.js.map +1 -1
  196. package/dist/esm/useSheetScrollViewGestures.mjs +159 -162
  197. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
  198. package/dist/esm/useSheetScrollViewGestures.native.js +123 -130
  199. package/dist/esm/useSheetScrollViewGestures.native.js.map +1 -1
  200. package/dist/esm/webViewport.mjs +26 -25
  201. package/dist/esm/webViewport.mjs.map +1 -1
  202. package/dist/esm/webViewport.native.js +29 -28
  203. package/dist/esm/webViewport.native.js.map +1 -1
  204. package/dist/jsx/GestureSheetContext.mjs +15 -20
  205. package/dist/jsx/GestureSheetContext.mjs.map +1 -1
  206. package/dist/jsx/GestureSheetContext.native.cjs +48 -0
  207. package/dist/jsx/GestureSheetContext.native.js +29 -37
  208. package/dist/jsx/GestureSheetContext.native.js.map +1 -1
  209. package/dist/jsx/Sheet.mjs +207 -83
  210. package/dist/jsx/Sheet.mjs.map +1 -1
  211. package/dist/jsx/Sheet.native.cjs +245 -0
  212. package/dist/jsx/Sheet.native.js +223 -98
  213. package/dist/jsx/Sheet.native.js.map +1 -1
  214. package/dist/jsx/SheetContext.mjs +21 -5
  215. package/dist/jsx/SheetContext.mjs.map +1 -1
  216. package/dist/jsx/SheetContext.native.cjs +57 -0
  217. package/dist/jsx/SheetContext.native.js +44 -22
  218. package/dist/jsx/SheetContext.native.js.map +1 -1
  219. package/dist/jsx/SheetController.mjs +34 -30
  220. package/dist/jsx/SheetController.mjs.map +1 -1
  221. package/dist/jsx/SheetController.native.cjs +71 -0
  222. package/dist/jsx/SheetController.native.js +52 -58
  223. package/dist/jsx/SheetController.native.js.map +1 -1
  224. package/dist/jsx/SheetDragSurface.mjs +25 -0
  225. package/dist/jsx/SheetDragSurface.mjs.map +1 -0
  226. package/dist/jsx/SheetDragSurface.native.cjs +61 -0
  227. package/dist/jsx/SheetDragSurface.native.js +63 -0
  228. package/dist/jsx/SheetDragSurface.native.js.map +1 -0
  229. package/dist/jsx/SheetImplementationCustom.mjs +647 -586
  230. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  231. package/dist/jsx/SheetImplementationCustom.native.cjs +748 -0
  232. package/dist/jsx/SheetImplementationCustom.native.js +704 -649
  233. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  234. package/dist/jsx/SheetScrollView.mjs +278 -288
  235. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  236. package/dist/jsx/SheetScrollView.native.cjs +326 -0
  237. package/dist/jsx/SheetScrollView.native.js +299 -319
  238. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  239. package/dist/jsx/constants.mjs +5 -3
  240. package/dist/jsx/constants.mjs.map +1 -1
  241. package/dist/jsx/constants.native.cjs +36 -0
  242. package/dist/jsx/constants.native.js +21 -20
  243. package/dist/jsx/constants.native.js.map +1 -1
  244. package/dist/jsx/contexts.mjs +3 -3
  245. package/dist/jsx/contexts.mjs.map +1 -1
  246. package/dist/jsx/contexts.native.cjs +37 -0
  247. package/dist/jsx/contexts.native.js +19 -27
  248. package/dist/jsx/contexts.native.js.map +1 -1
  249. package/dist/jsx/controller.mjs +2 -2
  250. package/dist/jsx/controller.native.cjs +31 -0
  251. package/dist/jsx/controller.native.js +16 -17
  252. package/dist/jsx/controller.native.js.map +1 -1
  253. package/dist/jsx/gestureState.mjs +13 -11
  254. package/dist/jsx/gestureState.mjs.map +1 -1
  255. package/dist/jsx/gestureState.native.cjs +53 -0
  256. package/dist/jsx/gestureState.native.js +29 -30
  257. package/dist/jsx/gestureState.native.js.map +1 -1
  258. package/dist/jsx/helpers.mjs +7 -6
  259. package/dist/jsx/helpers.mjs.map +1 -1
  260. package/dist/jsx/helpers.native.cjs +34 -0
  261. package/dist/jsx/helpers.native.js +21 -24
  262. package/dist/jsx/helpers.native.js.map +1 -1
  263. package/dist/jsx/index.js +21 -14
  264. package/dist/jsx/index.mjs +21 -14
  265. package/dist/jsx/index.native.cjs +36 -0
  266. package/dist/jsx/index.native.js +15 -21
  267. package/dist/jsx/index.native.js.map +1 -1
  268. package/dist/jsx/keyboardAvoidance.mjs +40 -61
  269. package/dist/jsx/keyboardAvoidance.mjs.map +1 -1
  270. package/dist/jsx/keyboardAvoidance.native.cjs +74 -0
  271. package/dist/jsx/keyboardAvoidance.native.js +55 -78
  272. package/dist/jsx/keyboardAvoidance.native.js.map +1 -1
  273. package/dist/jsx/nativeSheet.mjs +4 -70
  274. package/dist/jsx/nativeSheet.mjs.map +1 -1
  275. package/dist/jsx/nativeSheet.native.cjs +94 -0
  276. package/dist/jsx/nativeSheet.native.js +73 -86
  277. package/dist/jsx/nativeSheet.native.js.map +1 -1
  278. package/dist/jsx/stableViewportHeight.mjs +8 -0
  279. package/dist/jsx/stableViewportHeight.mjs.map +1 -0
  280. package/dist/jsx/stableViewportHeight.native.cjs +29 -0
  281. package/dist/jsx/stableViewportHeight.native.js +31 -0
  282. package/dist/jsx/stableViewportHeight.native.js.map +1 -0
  283. package/dist/jsx/types.mjs +0 -2
  284. package/dist/jsx/types.native.cjs +18 -0
  285. package/dist/jsx/types.native.js +9 -10
  286. package/dist/jsx/types.native.js.map +1 -1
  287. package/dist/jsx/useGestureHandlerPan.mjs +232 -239
  288. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  289. package/dist/jsx/useGestureHandlerPan.native.cjs +272 -0
  290. package/dist/jsx/useGestureHandlerPan.native.js +253 -265
  291. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  292. package/dist/jsx/useKeyboardControllerSheet.mjs +71 -71
  293. package/dist/jsx/useKeyboardControllerSheet.mjs.map +1 -1
  294. package/dist/jsx/useKeyboardControllerSheet.native.cjs +92 -0
  295. package/dist/jsx/useKeyboardControllerSheet.native.js +73 -111
  296. package/dist/jsx/useKeyboardControllerSheet.native.js.map +1 -1
  297. package/dist/jsx/useSafeAreaInsets.mjs +3 -1
  298. package/dist/jsx/useSafeAreaInsets.mjs.map +1 -1
  299. package/dist/jsx/useSafeAreaInsets.native.cjs +50 -0
  300. package/dist/jsx/useSafeAreaInsets.native.js +29 -25
  301. package/dist/jsx/useSafeAreaInsets.native.js.map +1 -1
  302. package/dist/jsx/useSheetController.mjs +14 -12
  303. package/dist/jsx/useSheetController.mjs.map +1 -1
  304. package/dist/jsx/useSheetController.native.cjs +41 -0
  305. package/dist/jsx/useSheetController.native.js +27 -39
  306. package/dist/jsx/useSheetController.native.js.map +1 -1
  307. package/dist/jsx/useSheetOffscreenSize.mjs +30 -35
  308. package/dist/jsx/useSheetOffscreenSize.mjs.map +1 -1
  309. package/dist/jsx/useSheetOffscreenSize.native.cjs +59 -0
  310. package/dist/jsx/useSheetOffscreenSize.native.js +47 -56
  311. package/dist/jsx/useSheetOffscreenSize.native.js.map +1 -1
  312. package/dist/jsx/useSheetOpenState.mjs +50 -22
  313. package/dist/jsx/useSheetOpenState.mjs.map +1 -1
  314. package/dist/jsx/useSheetOpenState.native.cjs +87 -0
  315. package/dist/jsx/useSheetOpenState.native.js +73 -42
  316. package/dist/jsx/useSheetOpenState.native.js.map +1 -1
  317. package/dist/jsx/useSheetProviderProps.mjs +130 -138
  318. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  319. package/dist/jsx/useSheetProviderProps.native.cjs +175 -0
  320. package/dist/jsx/useSheetProviderProps.native.js +155 -174
  321. package/dist/jsx/useSheetProviderProps.native.js.map +1 -1
  322. package/dist/jsx/useSheetScrollViewGestures.mjs +159 -162
  323. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
  324. package/dist/jsx/useSheetScrollViewGestures.native.cjs +149 -0
  325. package/dist/jsx/useSheetScrollViewGestures.native.js +135 -147
  326. package/dist/jsx/useSheetScrollViewGestures.native.js.map +1 -1
  327. package/dist/jsx/webViewport.mjs +26 -25
  328. package/dist/jsx/webViewport.mjs.map +1 -1
  329. package/dist/jsx/webViewport.native.cjs +78 -0
  330. package/dist/jsx/webViewport.native.js +49 -50
  331. package/dist/jsx/webViewport.native.js.map +1 -1
  332. package/package.json +38 -40
  333. package/src/Sheet.tsx +314 -77
  334. package/src/SheetContext.tsx +57 -7
  335. package/src/SheetController.tsx +7 -6
  336. package/src/SheetDragSurface.native.tsx +42 -0
  337. package/src/SheetDragSurface.tsx +40 -0
  338. package/src/SheetImplementationCustom.tsx +364 -181
  339. package/src/SheetScrollView.tsx +36 -20
  340. package/src/constants.tsx +3 -3
  341. package/src/helpers.tsx +0 -14
  342. package/src/index.ts +3 -6
  343. package/src/{nativeSheet.tsx → nativeSheet.native.tsx} +9 -20
  344. package/src/nativeSheet.ts +19 -0
  345. package/src/stableViewportHeight.native.ts +9 -0
  346. package/src/stableViewportHeight.ts +15 -0
  347. package/src/types.tsx +122 -92
  348. package/src/useKeyboardControllerSheet.native.ts +10 -39
  349. package/src/useSafeAreaInsets.native.ts +20 -13
  350. package/src/useSheetController.tsx +15 -7
  351. package/src/useSheetOpenState.tsx +50 -4
  352. package/src/useSheetProviderProps.tsx +4 -27
  353. package/src/useSheetScrollViewGestures.ts +2 -2
  354. package/types/GestureSheetContext.d.ts +1 -1
  355. package/types/GestureSheetContext.d.ts.map +1 -1
  356. package/types/Sheet.d.ts +247 -151
  357. package/types/Sheet.d.ts.map +1 -1
  358. package/types/SheetContext.d.ts +28 -42
  359. package/types/SheetContext.d.ts.map +1 -1
  360. package/types/SheetController.d.ts +4 -2
  361. package/types/SheetController.d.ts.map +1 -1
  362. package/types/SheetDragSurface.d.ts +11 -0
  363. package/types/SheetDragSurface.d.ts.map +1 -0
  364. package/types/SheetDragSurface.native.d.ts +11 -0
  365. package/types/SheetDragSurface.native.d.ts.map +1 -0
  366. package/types/SheetImplementationCustom.d.ts +4 -36
  367. package/types/SheetImplementationCustom.d.ts.map +1 -1
  368. package/types/SheetScrollView.d.ts +21 -38
  369. package/types/SheetScrollView.d.ts.map +1 -1
  370. package/types/constants.d.ts +3 -2
  371. package/types/constants.d.ts.map +1 -1
  372. package/types/index.d.ts +1 -3
  373. package/types/index.d.ts.map +1 -1
  374. package/types/nativeSheet.d.ts +8 -8
  375. package/types/nativeSheet.d.ts.map +1 -1
  376. package/types/nativeSheet.native.d.ts +5 -0
  377. package/types/nativeSheet.native.d.ts.map +1 -0
  378. package/types/stableViewportHeight.d.ts +12 -0
  379. package/types/stableViewportHeight.d.ts.map +1 -0
  380. package/types/stableViewportHeight.native.d.ts +6 -0
  381. package/types/stableViewportHeight.native.d.ts.map +1 -0
  382. package/types/types.d.ts +43 -17
  383. package/types/types.d.ts.map +1 -1
  384. package/types/useKeyboardControllerSheet.native.d.ts +6 -6
  385. package/types/useKeyboardControllerSheet.native.d.ts.map +1 -1
  386. package/types/useSafeAreaInsets.native.d.ts +4 -12
  387. package/types/useSafeAreaInsets.native.d.ts.map +1 -1
  388. package/types/useSheetController.d.ts +6 -6
  389. package/types/useSheetController.d.ts.map +1 -1
  390. package/types/useSheetOffscreenSize.d.ts.map +1 -1
  391. package/types/useSheetOpenState.d.ts +3 -2
  392. package/types/useSheetOpenState.d.ts.map +1 -1
  393. package/types/useSheetProviderProps.d.ts +5 -8
  394. package/types/useSheetProviderProps.d.ts.map +1 -1
  395. package/types/useSheetScrollViewGestures.d.ts +2 -2
  396. package/types/useSheetScrollViewGestures.d.ts.map +1 -1
  397. package/.turbo/turbo-build.log +0 -2
  398. package/controller/index.cjs +0 -2
  399. package/controller/index.d.ts +0 -5
  400. package/controller/index.js +0 -2
  401. package/controller/index.native.cjs +0 -2
  402. package/controller/index.native.js +0 -2
  403. package/dist/cjs/GestureDetectorWrapper.cjs +0 -54
  404. package/dist/cjs/GestureDetectorWrapper.native.js +0 -58
  405. package/dist/cjs/GestureDetectorWrapper.native.js.map +0 -1
  406. package/dist/cjs/createSheet.cjs +0 -194
  407. package/dist/cjs/createSheet.native.js +0 -204
  408. package/dist/cjs/createSheet.native.js.map +0 -1
  409. package/dist/cjs/setupGestureHandler.cjs +0 -55
  410. package/dist/cjs/setupGestureHandler.native.js +0 -60
  411. package/dist/cjs/setupGestureHandler.native.js.map +0 -1
  412. package/dist/cjs/useSheet.cjs +0 -29
  413. package/dist/cjs/useSheet.native.js +0 -34
  414. package/dist/cjs/useSheet.native.js.map +0 -1
  415. package/dist/esm/GestureDetectorWrapper.mjs +0 -29
  416. package/dist/esm/GestureDetectorWrapper.mjs.map +0 -1
  417. package/dist/esm/GestureDetectorWrapper.native.js +0 -30
  418. package/dist/esm/GestureDetectorWrapper.native.js.map +0 -1
  419. package/dist/esm/controller.mjs.map +0 -1
  420. package/dist/esm/controller.native.js.map +0 -1
  421. package/dist/esm/createSheet.mjs +0 -168
  422. package/dist/esm/createSheet.mjs.map +0 -1
  423. package/dist/esm/createSheet.native.js +0 -176
  424. package/dist/esm/createSheet.native.js.map +0 -1
  425. package/dist/esm/index.js.map +0 -1
  426. package/dist/esm/index.mjs.map +0 -1
  427. package/dist/esm/index.native.js.map +0 -1
  428. package/dist/esm/setupGestureHandler.mjs +0 -29
  429. package/dist/esm/setupGestureHandler.mjs.map +0 -1
  430. package/dist/esm/setupGestureHandler.native.js +0 -31
  431. package/dist/esm/setupGestureHandler.native.js.map +0 -1
  432. package/dist/esm/types.mjs.map +0 -1
  433. package/dist/esm/types.native.js.map +0 -1
  434. package/dist/esm/useSheet.mjs +0 -4
  435. package/dist/esm/useSheet.mjs.map +0 -1
  436. package/dist/esm/useSheet.native.js +0 -6
  437. package/dist/esm/useSheet.native.js.map +0 -1
  438. package/dist/jsx/GestureDetectorWrapper.mjs +0 -29
  439. package/dist/jsx/GestureDetectorWrapper.mjs.map +0 -1
  440. package/dist/jsx/GestureDetectorWrapper.native.js +0 -58
  441. package/dist/jsx/GestureDetectorWrapper.native.js.map +0 -1
  442. package/dist/jsx/controller.mjs.map +0 -1
  443. package/dist/jsx/createSheet.mjs +0 -168
  444. package/dist/jsx/createSheet.mjs.map +0 -1
  445. package/dist/jsx/createSheet.native.js +0 -204
  446. package/dist/jsx/createSheet.native.js.map +0 -1
  447. package/dist/jsx/index.js.map +0 -1
  448. package/dist/jsx/index.mjs.map +0 -1
  449. package/dist/jsx/setupGestureHandler.mjs +0 -29
  450. package/dist/jsx/setupGestureHandler.mjs.map +0 -1
  451. package/dist/jsx/setupGestureHandler.native.js +0 -60
  452. package/dist/jsx/setupGestureHandler.native.js.map +0 -1
  453. package/dist/jsx/types.mjs.map +0 -1
  454. package/dist/jsx/useSheet.mjs +0 -4
  455. package/dist/jsx/useSheet.mjs.map +0 -1
  456. package/dist/jsx/useSheet.native.js +0 -34
  457. package/dist/jsx/useSheet.native.js.map +0 -1
  458. package/next.md +0 -78
  459. package/setup-gesture-handler/index.cjs +0 -2
  460. package/setup-gesture-handler/index.js +0 -2
  461. package/setup-gesture-handler/index.native.cjs +0 -2
  462. package/setup-gesture-handler/index.native.js +0 -2
  463. package/setup-gesture-handler.cjs +0 -1
  464. package/src/GestureDetectorWrapper.tsx +0 -38
  465. package/src/createSheet.tsx +0 -309
  466. package/src/setupGestureHandler.ts +0 -43
  467. package/src/useSheet.tsx +0 -3
  468. package/test/keyboardAvoidance.test.ts +0 -269
  469. package/tsconfig.json +0 -57
  470. package/types/GestureDetectorWrapper.d.ts +0 -14
  471. package/types/GestureDetectorWrapper.d.ts.map +0 -1
  472. package/types/createSheet.d.ts +0 -195
  473. package/types/createSheet.d.ts.map +0 -1
  474. package/types/setupGestureHandler.d.ts +0 -11
  475. package/types/setupGestureHandler.d.ts.map +0 -1
  476. package/types/useSheet.d.ts +0 -2
  477. package/types/useSheet.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","useConfiguration","useConstant","useControllableState","useSheetProviderProps","props","state","options","handleRef","useRef","contentRef","frameSize","setFrameSize","useState","maxContentSize","setMaxContentSize","snapPointsMode","snapPointsProp","snapPoints","hasFit","useMemo","dismissOnSnapToBottom","JSON","stringify","position_","setPositionImmediate","prop","position","defaultProp","defaultPosition","open","onChange","onPositionChange","strategy","setPosition","useCallback","next","length","setOpen","process","env","NODE_ENV","some","p","endsWith","n","Number","slice","console","warn","indexOf","shouldSetPositionOpen","useEffect","animationDriver","Error","scrollBridge","parentDragListeners","Set","bridge","hasScrollableContent","enabled","y","paneY","paneMinY","scrollStartY","drag","release","scrollLock","isParentDragging","onParentDragging","cb","add","delete","setParentDragging","val","forEach","disableRemoveScroll","modal","forceRemoveScrollEnabled","maxSnapPoint","screenSize","providerProps","hidden","isHidden","dismissOnOverlayPress","onOverlayComponent","scope","__scopeSheet","onlyShowFrame"],"sources":["../../src/useSheetProviderProps.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useSheetProviderProps.js","names":[],"sources":["jsx/useSheetProviderProps.js"],"sourcesContent":["import React from \"react\";\nimport { useConfiguration } from \"@tamagui/core\";\nimport { useConstant } from \"@tamagui/use-constant\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nfunction useSheetProviderProps(props, state) {\n const handleRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [frameSize, setFrameSize] = React.useState(0);\n const [maxContentSize, setMaxContentSize] = React.useState(0);\n const snapPointsMode = props.snapPointsMode ?? \"percent\";\n const snapPointsProp = props.snapPoints ?? (snapPointsMode === \"percent\" ? [80] : snapPointsMode === \"constant\" ? [256] : [\"fit\"]);\n const hasFit = snapPointsProp[0] === \"fit\";\n const snapPoints = React.useMemo(\n () => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp,\n [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]\n );\n const [position_, setPositionImmediate] = useControllableState({\n prop: props.position,\n defaultProp: props.defaultPosition || (state.open ? 0 : -1),\n onChange: props.onPositionChange,\n strategy: \"most-recent-wins\"\n });\n const position = state.open === false ? -1 : position_;\n const { open } = state;\n const setPosition = React.useCallback(\n (next) => {\n if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {\n state.setOpen(false);\n } else {\n setPositionImmediate(next);\n }\n },\n [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]\n );\n if (process.env.NODE_ENV === \"development\") {\n if (snapPointsMode === \"mixed\" && snapPoints.some((p) => {\n if (typeof p === \"string\") {\n if (p === \"fit\") {\n return false;\n }\n if (p.endsWith(\"%\")) {\n const n = Number(p.slice(0, -1));\n return n < 0 || n > 100;\n }\n return true;\n }\n return typeof p !== \"number\" || p < 0;\n })) {\n console.warn(\n '\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed'\n );\n }\n if (snapPointsMode === \"mixed\" && snapPoints.indexOf(\"fit\") > 0) {\n console.warn(\n '\\u26A0\\uFE0F Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed'\n );\n }\n if (snapPointsMode === \"fit\" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== \"fit\")) {\n console.warn(\n \"\\u26A0\\uFE0F Invalid snapPoint given, there are no snap points when snapPointsMode is fit\"\n );\n }\n if (snapPointsMode === \"constant\" && snapPoints.some((p) => typeof p !== \"number\" || p < 0)) {\n console.warn(\n \"\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant\"\n );\n }\n if (snapPointsMode === \"percent\" && snapPoints.some((p) => typeof p !== \"number\" || p < 0 || p > 100)) {\n console.warn(\n \"\\u26A0\\uFE0F Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent\"\n );\n }\n }\n if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {\n setPositionImmediate(0);\n }\n const shouldSetPositionOpen = open && position < 0;\n React.useEffect(() => {\n if (shouldSetPositionOpen) {\n setPosition(0);\n }\n }, [setPosition, shouldSetPositionOpen]);\n const { animationDriver } = useConfiguration();\n if (!animationDriver) {\n throw new Error(\n process.env.NODE_ENV === \"production\" ? `\\u274C 008` : \"Must set animations in tamagui.config.ts\"\n );\n }\n const scrollBridge = useConstant(() => {\n const parentDragListeners = /* @__PURE__ */ new Set();\n const bridge = {\n hasScrollableContent: false,\n enabled: false,\n y: 0,\n paneY: 0,\n paneMinY: 0,\n scrollStartY: -1,\n drag: () => {\n },\n release: () => {\n },\n scrollLock: false,\n isParentDragging: false,\n onParentDragging: (cb) => {\n parentDragListeners.add(cb);\n return () => {\n parentDragListeners.delete(cb);\n };\n },\n setParentDragging: (val) => {\n if (val !== bridge.isParentDragging) {\n bridge.isParentDragging = val;\n parentDragListeners.forEach((cb) => cb(val));\n }\n }\n };\n return bridge;\n });\n const disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;\n const maxSnapPoint = snapPoints[0];\n const screenSize = snapPointsMode === \"percent\" ? frameSize / ((typeof maxSnapPoint === \"number\" ? maxSnapPoint : 100) / 100) : maxContentSize;\n const providerProps = {\n screenSize,\n maxSnapPoint,\n disableRemoveScroll,\n scrollBridge,\n modal: !!props.modal,\n open: state.open,\n setOpen: state.setOpen,\n hidden: !!state.isHidden,\n contentRef,\n handleRef,\n frameSize,\n setFrameSize,\n dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,\n dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,\n scope: props.scope ?? \"\",\n hasFit,\n position,\n snapPoints,\n snapPointsMode,\n setMaxContentSize,\n setPosition,\n setPositionImmediate,\n onlyShowContainer: false\n };\n return providerProps;\n}\nexport {\n useSheetProviderProps\n};\n//# sourceMappingURL=useSheetProviderProps.js.map\n"],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
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, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
25
+ value: mod,
26
+ enumerable: true
27
+ }) : target, mod));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var useSheetProviderProps_exports = {};
30
+ __export(useSheetProviderProps_exports, { useSheetProviderProps: () => useSheetProviderProps });
31
+ module.exports = __toCommonJS(useSheetProviderProps_exports);
32
+ var import_react = __toESM(require("react"), 1);
33
+ var import_core = require("@tamagui/core");
34
+ var import_use_constant = require("@tamagui/use-constant");
35
+ var import_use_controllable_state = require("@tamagui/use-controllable-state");
36
+ function useSheetProviderProps(props, state) {
37
+ var handleRef = import_react.default.useRef(null);
38
+ var contentRef = import_react.default.useRef(null);
39
+ var [frameSize, setFrameSize] = import_react.default.useState(0);
40
+ var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
41
+ var _props_snapPointsMode;
42
+ var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : "percent";
43
+ var _props_snapPoints;
44
+ var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"];
45
+ var hasFit = snapPointsProp[0] === "fit";
46
+ var snapPoints = import_react.default.useMemo(function() {
47
+ return props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp;
48
+ }, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
49
+ var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
50
+ prop: props.position,
51
+ defaultProp: props.defaultPosition || (state.open ? 0 : -1),
52
+ onChange: props.onPositionChange,
53
+ strategy: "most-recent-wins"
54
+ });
55
+ var position = state.open === false ? -1 : position_;
56
+ var { open } = state;
57
+ var setPosition = import_react.default.useCallback(function(next) {
58
+ if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
59
+ state.setOpen(false);
60
+ } else {
61
+ setPositionImmediate(next);
62
+ }
63
+ }, [
64
+ props.dismissOnSnapToBottom,
65
+ snapPoints.length,
66
+ setPositionImmediate,
67
+ state.setOpen
68
+ ]);
69
+ if (process.env.NODE_ENV === "development") {
70
+ if (snapPointsMode === "mixed" && snapPoints.some(function(p) {
71
+ if (typeof p === "string") {
72
+ if (p === "fit") {
73
+ return false;
74
+ }
75
+ if (p.endsWith("%")) {
76
+ var n = Number(p.slice(0, -1));
77
+ return n < 0 || n > 100;
78
+ }
79
+ return true;
80
+ }
81
+ return typeof p !== "number" || p < 0;
82
+ })) {
83
+ console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed");
84
+ }
85
+ if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
86
+ console.warn("⚠️ Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed");
87
+ }
88
+ if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
89
+ console.warn("⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
90
+ }
91
+ if (snapPointsMode === "constant" && snapPoints.some(function(p) {
92
+ return typeof p !== "number" || p < 0;
93
+ })) {
94
+ console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
95
+ }
96
+ if (snapPointsMode === "percent" && snapPoints.some(function(p) {
97
+ return typeof p !== "number" || p < 0 || p > 100;
98
+ })) {
99
+ console.warn("⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
100
+ }
101
+ }
102
+ if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
103
+ setPositionImmediate(0);
104
+ }
105
+ var shouldSetPositionOpen = open && position < 0;
106
+ import_react.default.useEffect(function() {
107
+ if (shouldSetPositionOpen) {
108
+ setPosition(0);
109
+ }
110
+ }, [setPosition, shouldSetPositionOpen]);
111
+ var { animationDriver } = (0, import_core.useConfiguration)();
112
+ if (!animationDriver) {
113
+ throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
114
+ }
115
+ var scrollBridge = (0, import_use_constant.useConstant)(function() {
116
+ var parentDragListeners = /* @__PURE__ */ new Set();
117
+ var bridge = {
118
+ hasScrollableContent: false,
119
+ enabled: false,
120
+ y: 0,
121
+ paneY: 0,
122
+ paneMinY: 0,
123
+ scrollStartY: -1,
124
+ drag: function() {},
125
+ release: function() {},
126
+ scrollLock: false,
127
+ isParentDragging: false,
128
+ onParentDragging: function(cb) {
129
+ parentDragListeners.add(cb);
130
+ return function() {
131
+ parentDragListeners.delete(cb);
132
+ };
133
+ },
134
+ setParentDragging: function(val) {
135
+ if (val !== bridge.isParentDragging) {
136
+ bridge.isParentDragging = val;
137
+ parentDragListeners.forEach(function(cb) {
138
+ return cb(val);
139
+ });
140
+ }
141
+ }
142
+ };
143
+ return bridge;
144
+ });
145
+ var disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
146
+ var maxSnapPoint = snapPoints[0];
147
+ var screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
148
+ var _props_dismissOnOverlayPress, _props_dismissOnSnapToBottom, _props_scope;
149
+ var providerProps = {
150
+ screenSize,
151
+ maxSnapPoint,
152
+ disableRemoveScroll,
153
+ scrollBridge,
154
+ modal: !!props.modal,
155
+ open: state.open,
156
+ setOpen: state.setOpen,
157
+ hidden: !!state.isHidden,
158
+ contentRef,
159
+ handleRef,
160
+ frameSize,
161
+ setFrameSize,
162
+ dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,
163
+ dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,
164
+ scope: (_props_scope = props.scope) !== null && _props_scope !== void 0 ? _props_scope : "",
165
+ hasFit,
166
+ position,
167
+ snapPoints,
168
+ snapPointsMode,
169
+ setMaxContentSize,
170
+ setPosition,
171
+ setPositionImmediate,
172
+ onlyShowContainer: false
173
+ };
174
+ return providerProps;
175
+ }
@@ -7,190 +7,171 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
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: true
13
- });
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
14
  };
15
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, {
18
- get: () => from[key],
19
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
- });
21
- }
22
- return to;
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, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
23
  };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
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
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
25
+ value: mod,
26
+ enumerable: true
32
27
  }) : target, mod));
33
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
- value: true
35
- }), mod);
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
29
  var useSheetProviderProps_exports = {};
37
- __export(useSheetProviderProps_exports, {
38
- useSheetProviderProps: () => useSheetProviderProps
39
- });
30
+ __export(useSheetProviderProps_exports, { useSheetProviderProps: () => useSheetProviderProps });
40
31
  module.exports = __toCommonJS(useSheetProviderProps_exports);
41
32
  var import_react = __toESM(require("react"), 1);
42
33
  var import_core = require("@tamagui/core");
43
34
  var import_use_constant = require("@tamagui/use-constant");
44
35
  var import_use_controllable_state = require("@tamagui/use-controllable-state");
45
36
  function useSheetProviderProps(props, state) {
46
- var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
47
- var handleRef = import_react.default.useRef(null);
48
- var contentRef = import_react.default.useRef(null);
49
- var [frameSize, setFrameSize] = import_react.default.useState(0);
50
- var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
51
- var _props_snapPointsMode;
52
- var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : "percent";
53
- var _props_snapPoints;
54
- var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"];
55
- var hasFit = snapPointsProp[0] === "fit";
56
- var snapPoints = import_react.default.useMemo(function () {
57
- return props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp;
58
- }, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
59
- var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
60
- prop: props.position,
61
- defaultProp: props.defaultPosition || (state.open ? 0 : -1),
62
- onChange: props.onPositionChange,
63
- strategy: "most-recent-wins"
64
- });
65
- var position = state.open === false ? -1 : position_;
66
- var {
67
- open
68
- } = state;
69
- var setPosition = import_react.default.useCallback(function (next) {
70
- if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
71
- state.setOpen(false);
72
- } else {
73
- setPositionImmediate(next);
74
- }
75
- }, [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]);
76
- if (process.env.NODE_ENV === "development") {
77
- if (snapPointsMode === "mixed" && snapPoints.some(function (p) {
78
- if (typeof p === "string") {
79
- if (p === "fit") {
80
- return false;
81
- }
82
- if (p.endsWith("%")) {
83
- var n = Number(p.slice(0, -1));
84
- return n < 0 || n > 100;
85
- }
86
- return true;
87
- }
88
- return typeof p !== "number" || p < 0;
89
- })) {
90
- console.warn('\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or "fit" when snapPointsMode is mixed');
91
- }
92
- if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
93
- console.warn('\u26A0\uFE0F Invalid snapPoint given, "fit" must be the first/largest snap point when snapPointsMode is mixed');
94
- }
95
- if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
96
- console.warn("\u26A0\uFE0F Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
97
- }
98
- if (snapPointsMode === "constant" && snapPoints.some(function (p) {
99
- return typeof p !== "number" || p < 0;
100
- })) {
101
- console.warn("\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
102
- }
103
- if (snapPointsMode === "percent" && snapPoints.some(function (p) {
104
- return typeof p !== "number" || p < 0 || p > 100;
105
- })) {
106
- console.warn("\u26A0\uFE0F Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
107
- }
108
- }
109
- if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
110
- setPositionImmediate(0);
111
- }
112
- var shouldSetPositionOpen = open && position < 0;
113
- import_react.default.useEffect(function () {
114
- if (shouldSetPositionOpen) {
115
- setPosition(0);
116
- }
117
- }, [setPosition, shouldSetPositionOpen]);
118
- var {
119
- animationDriver
120
- } = (0, import_core.useConfiguration)();
121
- if (!animationDriver) {
122
- throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
123
- }
124
- var scrollBridge = (0, import_use_constant.useConstant)(function () {
125
- var parentDragListeners = /* @__PURE__ */new Set();
126
- var bridge = {
127
- hasScrollableContent: false,
128
- enabled: false,
129
- y: 0,
130
- paneY: 0,
131
- paneMinY: 0,
132
- scrollStartY: -1,
133
- drag: function () {},
134
- release: function () {},
135
- scrollLock: false,
136
- isParentDragging: false,
137
- onParentDragging: function (cb) {
138
- parentDragListeners.add(cb);
139
- return function () {
140
- parentDragListeners.delete(cb);
141
- };
142
- },
143
- setParentDragging: function (val) {
144
- if (val !== bridge.isParentDragging) {
145
- bridge.isParentDragging = val;
146
- parentDragListeners.forEach(function (cb) {
147
- return cb(val);
148
- });
149
- }
150
- }
151
- };
152
- return bridge;
153
- });
154
- var disableRemoveScroll;
155
- if (props.disableRemoveScroll !== void 0) {
156
- disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
157
- } else if (props.forceRemoveScrollEnabled !== void 0) {
158
- if (process.env.NODE_ENV === "development") {
159
- console.warn("[Sheet] forceRemoveScrollEnabled is deprecated. Use disableRemoveScroll instead.");
160
- }
161
- disableRemoveScroll = !props.forceRemoveScrollEnabled;
162
- } else {
163
- disableRemoveScroll = !open || !props.modal;
164
- }
165
- var maxSnapPoint = snapPoints[0];
166
- var screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
167
- var _props_dismissOnOverlayPress, _props_dismissOnSnapToBottom;
168
- var providerProps = {
169
- screenSize,
170
- maxSnapPoint,
171
- disableRemoveScroll,
172
- scrollBridge,
173
- modal: !!props.modal,
174
- open: state.open,
175
- setOpen: state.setOpen,
176
- hidden: !!state.isHidden,
177
- contentRef,
178
- handleRef,
179
- frameSize,
180
- setFrameSize,
181
- dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,
182
- dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,
183
- onOverlayComponent: options.onOverlayComponent,
184
- scope: props.__scopeSheet,
185
- hasFit,
186
- position,
187
- snapPoints,
188
- snapPointsMode,
189
- setMaxContentSize,
190
- setPosition,
191
- setPositionImmediate,
192
- onlyShowFrame: false
193
- };
194
- return providerProps;
37
+ var handleRef = import_react.default.useRef(null);
38
+ var contentRef = import_react.default.useRef(null);
39
+ var [frameSize, setFrameSize] = import_react.default.useState(0);
40
+ var [maxContentSize, setMaxContentSize] = import_react.default.useState(0);
41
+ var _props_snapPointsMode;
42
+ var snapPointsMode = (_props_snapPointsMode = props.snapPointsMode) !== null && _props_snapPointsMode !== void 0 ? _props_snapPointsMode : "percent";
43
+ var _props_snapPoints;
44
+ var snapPointsProp = (_props_snapPoints = props.snapPoints) !== null && _props_snapPoints !== void 0 ? _props_snapPoints : snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"];
45
+ var hasFit = snapPointsProp[0] === "fit";
46
+ var snapPoints = import_react.default.useMemo(function() {
47
+ return props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp;
48
+ }, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]);
49
+ var [position_, setPositionImmediate] = (0, import_use_controllable_state.useControllableState)({
50
+ prop: props.position,
51
+ defaultProp: props.defaultPosition || (state.open ? 0 : -1),
52
+ onChange: props.onPositionChange,
53
+ strategy: "most-recent-wins"
54
+ });
55
+ var position = state.open === false ? -1 : position_;
56
+ var { open } = state;
57
+ var setPosition = import_react.default.useCallback(function(next) {
58
+ if (props.dismissOnSnapToBottom && next === snapPoints.length - 1) {
59
+ state.setOpen(false);
60
+ } else {
61
+ setPositionImmediate(next);
62
+ }
63
+ }, [
64
+ props.dismissOnSnapToBottom,
65
+ snapPoints.length,
66
+ setPositionImmediate,
67
+ state.setOpen
68
+ ]);
69
+ if (process.env.NODE_ENV === "development") {
70
+ if (snapPointsMode === "mixed" && snapPoints.some(function(p) {
71
+ if (typeof p === "string") {
72
+ if (p === "fit") {
73
+ return false;
74
+ }
75
+ if (p.endsWith("%")) {
76
+ var n = Number(p.slice(0, -1));
77
+ return n < 0 || n > 100;
78
+ }
79
+ return true;
80
+ }
81
+ return typeof p !== "number" || p < 0;
82
+ })) {
83
+ console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or \"fit\" when snapPointsMode is mixed");
84
+ }
85
+ if (snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0) {
86
+ console.warn("⚠️ Invalid snapPoint given, \"fit\" must be the first/largest snap point when snapPointsMode is mixed");
87
+ }
88
+ if (snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit")) {
89
+ console.warn("⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit");
90
+ }
91
+ if (snapPointsMode === "constant" && snapPoints.some(function(p) {
92
+ return typeof p !== "number" || p < 0;
93
+ })) {
94
+ console.warn("⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant");
95
+ }
96
+ if (snapPointsMode === "percent" && snapPoints.some(function(p) {
97
+ return typeof p !== "number" || p < 0 || p > 100;
98
+ })) {
99
+ console.warn("⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent");
100
+ }
101
+ }
102
+ if (open && props.dismissOnSnapToBottom && position === snapPoints.length - 1) {
103
+ setPositionImmediate(0);
104
+ }
105
+ var shouldSetPositionOpen = open && position < 0;
106
+ import_react.default.useEffect(function() {
107
+ if (shouldSetPositionOpen) {
108
+ setPosition(0);
109
+ }
110
+ }, [setPosition, shouldSetPositionOpen]);
111
+ var { animationDriver } = (0, import_core.useConfiguration)();
112
+ if (!animationDriver) {
113
+ throw new Error(process.env.NODE_ENV === "production" ? `\u274C 008` : "Must set animations in tamagui.config.ts");
114
+ }
115
+ var scrollBridge = (0, import_use_constant.useConstant)(function() {
116
+ var parentDragListeners = /* @__PURE__ */ new Set();
117
+ var bridge = {
118
+ hasScrollableContent: false,
119
+ enabled: false,
120
+ y: 0,
121
+ paneY: 0,
122
+ paneMinY: 0,
123
+ scrollStartY: -1,
124
+ drag: function() {},
125
+ release: function() {},
126
+ scrollLock: false,
127
+ isParentDragging: false,
128
+ onParentDragging: function(cb) {
129
+ parentDragListeners.add(cb);
130
+ return function() {
131
+ parentDragListeners.delete(cb);
132
+ };
133
+ },
134
+ setParentDragging: function(val) {
135
+ if (val !== bridge.isParentDragging) {
136
+ bridge.isParentDragging = val;
137
+ parentDragListeners.forEach(function(cb) {
138
+ return cb(val);
139
+ });
140
+ }
141
+ }
142
+ };
143
+ return bridge;
144
+ });
145
+ var disableRemoveScroll = props.disableRemoveScroll || !open || !props.modal;
146
+ var maxSnapPoint = snapPoints[0];
147
+ var screenSize = snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint === "number" ? maxSnapPoint : 100) / 100) : maxContentSize;
148
+ var _props_dismissOnOverlayPress, _props_dismissOnSnapToBottom, _props_scope;
149
+ var providerProps = {
150
+ screenSize,
151
+ maxSnapPoint,
152
+ disableRemoveScroll,
153
+ scrollBridge,
154
+ modal: !!props.modal,
155
+ open: state.open,
156
+ setOpen: state.setOpen,
157
+ hidden: !!state.isHidden,
158
+ contentRef,
159
+ handleRef,
160
+ frameSize,
161
+ setFrameSize,
162
+ dismissOnOverlayPress: (_props_dismissOnOverlayPress = props.dismissOnOverlayPress) !== null && _props_dismissOnOverlayPress !== void 0 ? _props_dismissOnOverlayPress : true,
163
+ dismissOnSnapToBottom: (_props_dismissOnSnapToBottom = props.dismissOnSnapToBottom) !== null && _props_dismissOnSnapToBottom !== void 0 ? _props_dismissOnSnapToBottom : false,
164
+ scope: (_props_scope = props.scope) !== null && _props_scope !== void 0 ? _props_scope : "",
165
+ hasFit,
166
+ position,
167
+ snapPoints,
168
+ snapPointsMode,
169
+ setMaxContentSize,
170
+ setPosition,
171
+ setPositionImmediate,
172
+ onlyShowContainer: false
173
+ };
174
+ return providerProps;
195
175
  }
176
+
196
177
  //# sourceMappingURL=useSheetProviderProps.native.js.map