@lodev09/react-native-true-sheet 4.0.0-beta.0 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +42 -31
  3. package/RNTrueSheet.podspec +10 -2
  4. package/android/build.gradle +2 -1
  5. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +174 -49
  6. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerViewManager.kt +7 -0
  7. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +371 -18
  8. package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentViewManager.kt +14 -0
  9. package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +156 -21
  10. package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterViewManager.kt +14 -0
  11. package/android/src/main/java/com/lodev09/truesheet/TrueSheetHeaderView.kt +38 -0
  12. package/android/src/main/java/com/lodev09/truesheet/TrueSheetHeaderViewManager.kt +28 -0
  13. package/android/src/main/java/com/lodev09/truesheet/TrueSheetModule.kt +84 -24
  14. package/android/src/main/java/com/lodev09/truesheet/TrueSheetPackage.kt +5 -4
  15. package/android/src/main/java/com/lodev09/truesheet/TrueSheetPeekView.kt +72 -0
  16. package/android/src/main/java/com/lodev09/truesheet/TrueSheetPeekViewManager.kt +33 -0
  17. package/android/src/main/java/com/lodev09/truesheet/TrueSheetStateUpdater.kt +45 -0
  18. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +526 -231
  19. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +1224 -603
  20. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +136 -29
  21. package/android/src/main/java/com/lodev09/truesheet/core/RNScreensEventObserver.kt +63 -0
  22. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetBehavior.kt +36 -0
  23. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +255 -0
  24. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +303 -0
  25. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +277 -0
  26. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDimView.kt +162 -0
  27. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetGrabberView.kt +180 -0
  28. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetKeyboardObserver.kt +207 -0
  29. package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetStackManager.kt +220 -0
  30. package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetDragEvents.kt +71 -0
  31. package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetFocusEvents.kt +65 -0
  32. package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetLifecycleEvents.kt +112 -0
  33. package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetStateEvents.kt +56 -0
  34. package/android/src/main/java/com/lodev09/truesheet/utils/KeyboardUtils.kt +84 -0
  35. package/android/src/main/java/com/lodev09/truesheet/utils/ScreenUtils.kt +93 -67
  36. package/android/src/main/java/com/lodev09/truesheet/utils/TouchEventDeduper.kt +31 -0
  37. package/android/src/main/java/com/lodev09/truesheet/utils/ViewUtils.kt +30 -0
  38. package/android/src/main/jni/CMakeLists.txt +63 -0
  39. package/android/src/main/jni/TrueSheetSpec.h +19 -0
  40. package/android/src/main/jni/TrueSheetStateUpdater.cpp +96 -0
  41. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewComponentDescriptor.h +24 -0
  42. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.cpp +43 -0
  43. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.h +28 -0
  44. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.cpp +11 -0
  45. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.h +37 -0
  46. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewComponentDescriptor.h +24 -0
  47. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +56 -0
  48. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.h +28 -0
  49. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.cpp +11 -0
  50. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.h +41 -0
  51. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.cpp +18 -0
  52. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.h +16 -0
  53. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewComponentDescriptor.h +28 -0
  54. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.cpp +61 -0
  55. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.h +45 -0
  56. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.cpp +23 -0
  57. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.h +52 -0
  58. package/ios/TrueSheetContainerView.h +81 -6
  59. package/ios/TrueSheetContainerView.mm +275 -21
  60. package/ios/TrueSheetContentView.h +38 -1
  61. package/ios/TrueSheetContentView.mm +413 -43
  62. package/ios/TrueSheetFooterView.h +27 -2
  63. package/ios/TrueSheetFooterView.mm +141 -35
  64. package/ios/{events/OnDidDismissEvent.h → TrueSheetHeaderView.h} +10 -7
  65. package/ios/TrueSheetHeaderView.mm +64 -0
  66. package/ios/TrueSheetModule.mm +92 -5
  67. package/ios/TrueSheetPeekView.h +32 -0
  68. package/ios/TrueSheetPeekView.mm +99 -0
  69. package/ios/TrueSheetView.h +7 -15
  70. package/ios/TrueSheetView.mm +633 -215
  71. package/ios/TrueSheetViewController.h +84 -16
  72. package/ios/TrueSheetViewController.mm +1133 -333
  73. package/ios/core/RNScreensEventObserver.h +46 -0
  74. package/ios/core/RNScreensEventObserver.mm +280 -0
  75. package/ios/core/TrueSheetBlurView.h +27 -0
  76. package/ios/core/TrueSheetBlurView.mm +82 -0
  77. package/ios/core/TrueSheetDetentCalculator.h +107 -0
  78. package/ios/core/TrueSheetDetentCalculator.mm +197 -0
  79. package/ios/core/TrueSheetGrabberView.h +72 -0
  80. package/ios/core/TrueSheetGrabberView.mm +178 -0
  81. package/ios/core/TrueSheetKeyboardObserver.h +39 -0
  82. package/ios/core/TrueSheetKeyboardObserver.mm +112 -0
  83. package/ios/events/TrueSheetDragEvents.h +39 -0
  84. package/ios/events/TrueSheetDragEvents.mm +62 -0
  85. package/ios/events/{OnPositionChangeEvent.h → TrueSheetFocusEvents.h} +8 -5
  86. package/ios/events/TrueSheetFocusEvents.mm +49 -0
  87. package/ios/events/TrueSheetLifecycleEvents.h +40 -0
  88. package/ios/events/TrueSheetLifecycleEvents.mm +71 -0
  89. package/ios/events/TrueSheetStateEvents.h +35 -0
  90. package/ios/events/TrueSheetStateEvents.mm +49 -0
  91. package/ios/tvos/TrueSheetStubs.mm +154 -0
  92. package/ios/{events/OnMountEvent.h → utils/BlurUtil.h} +5 -7
  93. package/ios/utils/BlurUtil.mm +69 -0
  94. package/ios/utils/GestureUtil.h +7 -0
  95. package/ios/utils/GestureUtil.mm +12 -0
  96. package/ios/utils/PlatformUtil.h +15 -0
  97. package/ios/utils/UIView+FirstResponder.h +15 -0
  98. package/ios/utils/UIView+FirstResponder.mm +26 -0
  99. package/ios/{events/OnWillDismissEvent.h → utils/UIView+ScrollEdgeInteraction.h} +6 -7
  100. package/ios/utils/UIView+ScrollEdgeInteraction.mm +62 -0
  101. package/ios/utils/WindowUtil.mm +17 -1
  102. package/lib/module/TrueSheet.js +230 -64
  103. package/lib/module/TrueSheet.js.map +1 -1
  104. package/lib/module/TrueSheet.web.js +1203 -0
  105. package/lib/module/TrueSheet.web.js.map +1 -0
  106. package/lib/module/TrueSheetPeek.js +15 -0
  107. package/lib/module/TrueSheetPeek.js.map +1 -0
  108. package/lib/module/TrueSheetPeek.web.js +55 -0
  109. package/lib/module/TrueSheetPeek.web.js.map +1 -0
  110. package/lib/module/TrueSheetProvider.js +28 -0
  111. package/lib/module/TrueSheetProvider.js.map +1 -0
  112. package/lib/module/TrueSheetProvider.web.js +157 -0
  113. package/lib/module/TrueSheetProvider.web.js.map +1 -0
  114. package/lib/module/fabric/TrueSheetContainerViewNativeComponent.ts +1 -1
  115. package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +5 -1
  116. package/lib/module/fabric/TrueSheetFooterViewNativeComponent.ts +10 -2
  117. package/lib/module/fabric/TrueSheetHeaderViewNativeComponent.ts +8 -0
  118. package/lib/module/fabric/TrueSheetPeekViewNativeComponent.ts +8 -0
  119. package/lib/module/fabric/TrueSheetViewNativeComponent.ts +105 -18
  120. package/lib/module/index.js +3 -3
  121. package/lib/module/index.js.map +1 -1
  122. package/lib/module/mocks/index.js +93 -0
  123. package/lib/module/mocks/index.js.map +1 -0
  124. package/lib/module/mocks/navigation.js +95 -0
  125. package/lib/module/mocks/navigation.js.map +1 -0
  126. package/lib/module/mocks/navigationExpoRouter.js +21 -0
  127. package/lib/module/mocks/navigationExpoRouter.js.map +1 -0
  128. package/lib/module/mocks/reanimated.js +91 -0
  129. package/lib/module/mocks/reanimated.js.map +1 -0
  130. package/lib/module/navigation/TrueSheetNavigatorContent.js +73 -0
  131. package/lib/module/navigation/TrueSheetNavigatorContent.js.map +1 -0
  132. package/lib/module/navigation/actions.js +50 -0
  133. package/lib/module/navigation/actions.js.map +1 -0
  134. package/lib/module/navigation/createTrueSheetRouter.js +166 -0
  135. package/lib/module/navigation/createTrueSheetRouter.js.map +1 -0
  136. package/lib/module/navigation/expo-router/index.js +48 -0
  137. package/lib/module/navigation/expo-router/index.js.map +1 -0
  138. package/lib/module/navigation/index.js +47 -0
  139. package/lib/module/navigation/index.js.map +1 -0
  140. package/lib/module/navigation/navigator.js +10 -0
  141. package/lib/module/navigation/navigator.js.map +1 -0
  142. package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js +56 -0
  143. package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js.map +1 -0
  144. package/lib/module/navigation/screen/TrueSheetScreen.js +49 -0
  145. package/lib/module/navigation/screen/TrueSheetScreen.js.map +1 -0
  146. package/lib/module/navigation/screen/index.js +5 -0
  147. package/lib/module/navigation/screen/index.js.map +1 -0
  148. package/lib/module/navigation/screen/types.js +4 -0
  149. package/lib/module/navigation/screen/types.js.map +1 -0
  150. package/lib/module/navigation/screen/useSheetScreenState.js +68 -0
  151. package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -0
  152. package/lib/module/navigation/types.js +4 -0
  153. package/lib/module/navigation/types.js.map +1 -0
  154. package/lib/module/navigation/useTrueSheetNavigation.js +24 -0
  155. package/lib/module/navigation/useTrueSheetNavigation.js.map +1 -0
  156. package/lib/module/reanimated/ReanimatedTrueSheet.js +15 -9
  157. package/lib/module/reanimated/ReanimatedTrueSheet.js.map +1 -1
  158. package/lib/module/reanimated/ReanimatedTrueSheet.web.js +81 -0
  159. package/lib/module/reanimated/ReanimatedTrueSheet.web.js.map +1 -0
  160. package/lib/module/reanimated/ReanimatedTrueSheetProvider.js +4 -2
  161. package/lib/module/reanimated/ReanimatedTrueSheetProvider.js.map +1 -1
  162. package/lib/module/reanimated/index.js +2 -2
  163. package/lib/module/reanimated/index.js.map +1 -1
  164. package/lib/module/reanimated/useReanimatedPositionChangeHandler.web.js +20 -0
  165. package/lib/module/reanimated/useReanimatedPositionChangeHandler.web.js.map +1 -0
  166. package/lib/module/specs/NativeTrueSheetModule.js.map +1 -1
  167. package/lib/module/web/constants.js +16 -0
  168. package/lib/module/web/constants.js.map +1 -0
  169. package/lib/module/web/dom.js +10 -0
  170. package/lib/module/web/dom.js.map +1 -0
  171. package/lib/module/web/vaul/README.md +9 -0
  172. package/lib/module/web/vaul/browser.js +30 -0
  173. package/lib/module/web/vaul/browser.js.map +1 -0
  174. package/lib/module/web/vaul/constants.js +15 -0
  175. package/lib/module/web/vaul/constants.js.map +1 -0
  176. package/lib/module/web/vaul/context.js +59 -0
  177. package/lib/module/web/vaul/context.js.map +1 -0
  178. package/lib/module/web/vaul/helpers.js +99 -0
  179. package/lib/module/web/vaul/helpers.js.map +1 -0
  180. package/lib/module/web/vaul/index.js +1309 -0
  181. package/lib/module/web/vaul/index.js.map +1 -0
  182. package/lib/module/web/vaul/style.css +287 -0
  183. package/lib/module/web/vaul/style.css.d.js +2 -0
  184. package/lib/module/web/vaul/style.css.d.js.map +1 -0
  185. package/lib/module/web/vaul/types.js +2 -0
  186. package/lib/module/web/vaul/types.js.map +1 -0
  187. package/lib/module/web/vaul/use-composed-refs.js +34 -0
  188. package/lib/module/web/vaul/use-composed-refs.js.map +1 -0
  189. package/lib/module/web/vaul/use-controllable-state.js +54 -0
  190. package/lib/module/web/vaul/use-controllable-state.js.map +1 -0
  191. package/lib/module/web/vaul/use-position-fixed.js +123 -0
  192. package/lib/module/web/vaul/use-position-fixed.js.map +1 -0
  193. package/lib/module/web/vaul/use-prevent-scroll.js +258 -0
  194. package/lib/module/web/vaul/use-prevent-scroll.js.map +1 -0
  195. package/lib/module/web/vaul/use-scale-background.js +57 -0
  196. package/lib/module/web/vaul/use-scale-background.js.map +1 -0
  197. package/lib/module/web/vaul/use-snap-points.js +305 -0
  198. package/lib/module/web/vaul/use-snap-points.js.map +1 -0
  199. package/lib/typescript/src/TrueSheet.d.ts +51 -14
  200. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  201. package/lib/typescript/src/TrueSheet.types.d.ts +463 -54
  202. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
  203. package/lib/typescript/src/TrueSheet.web.d.ts +5 -0
  204. package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -0
  205. package/lib/typescript/src/TrueSheetPeek.d.ts +9 -0
  206. package/lib/typescript/src/TrueSheetPeek.d.ts.map +1 -0
  207. package/lib/typescript/src/TrueSheetPeek.web.d.ts +28 -0
  208. package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -0
  209. package/lib/typescript/src/TrueSheetProvider.d.ts +18 -0
  210. package/lib/typescript/src/TrueSheetProvider.d.ts.map +1 -0
  211. package/lib/typescript/src/TrueSheetProvider.web.d.ts +27 -0
  212. package/lib/typescript/src/TrueSheetProvider.web.d.ts.map +1 -0
  213. package/lib/typescript/src/fabric/TrueSheetContainerViewNativeComponent.d.ts.map +1 -1
  214. package/lib/typescript/src/fabric/TrueSheetContentViewNativeComponent.d.ts.map +1 -1
  215. package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts +2 -0
  216. package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts.map +1 -1
  217. package/lib/typescript/src/fabric/TrueSheetHeaderViewNativeComponent.d.ts +6 -0
  218. package/lib/typescript/src/fabric/TrueSheetHeaderViewNativeComponent.d.ts.map +1 -0
  219. package/lib/typescript/src/fabric/TrueSheetPeekViewNativeComponent.d.ts +6 -0
  220. package/lib/typescript/src/fabric/TrueSheetPeekViewNativeComponent.d.ts.map +1 -0
  221. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +67 -16
  222. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
  223. package/lib/typescript/src/index.d.ts +2 -2
  224. package/lib/typescript/src/index.d.ts.map +1 -1
  225. package/lib/typescript/src/mocks/index.d.ts +43 -0
  226. package/lib/typescript/src/mocks/index.d.ts.map +1 -0
  227. package/lib/typescript/src/mocks/navigation.d.ts +70 -0
  228. package/lib/typescript/src/mocks/navigation.d.ts.map +1 -0
  229. package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +22 -0
  230. package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -0
  231. package/lib/typescript/src/mocks/reanimated.d.ts +48 -0
  232. package/lib/typescript/src/mocks/reanimated.d.ts.map +1 -0
  233. package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts +5 -0
  234. package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts.map +1 -0
  235. package/lib/typescript/src/navigation/actions.d.ts +71 -0
  236. package/lib/typescript/src/navigation/actions.d.ts.map +1 -0
  237. package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +14 -0
  238. package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -0
  239. package/lib/typescript/src/navigation/expo-router/index.d.ts +37 -0
  240. package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -0
  241. package/lib/typescript/src/navigation/index.d.ts +46 -0
  242. package/lib/typescript/src/navigation/index.d.ts.map +1 -0
  243. package/lib/typescript/src/navigation/navigator.d.ts +7 -0
  244. package/lib/typescript/src/navigation/navigator.d.ts.map +1 -0
  245. package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts +3 -0
  246. package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts.map +1 -0
  247. package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts +3 -0
  248. package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts.map +1 -0
  249. package/lib/typescript/src/navigation/screen/index.d.ts +4 -0
  250. package/lib/typescript/src/navigation/screen/index.d.ts.map +1 -0
  251. package/lib/typescript/src/navigation/screen/types.d.ts +14 -0
  252. package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -0
  253. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +33 -0
  254. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -0
  255. package/lib/typescript/src/navigation/types.d.ts +177 -0
  256. package/lib/typescript/src/navigation/types.d.ts.map +1 -0
  257. package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts +23 -0
  258. package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts.map +1 -0
  259. package/lib/typescript/src/reanimated/ReanimatedTrueSheet.d.ts.map +1 -1
  260. package/lib/typescript/src/reanimated/ReanimatedTrueSheet.web.d.ts +41 -0
  261. package/lib/typescript/src/reanimated/ReanimatedTrueSheet.web.d.ts.map +1 -0
  262. package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts +8 -2
  263. package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts.map +1 -1
  264. package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.web.d.ts +15 -0
  265. package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.web.d.ts.map +1 -0
  266. package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts +25 -3
  267. package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts.map +1 -1
  268. package/lib/typescript/src/web/constants.d.ts +14 -0
  269. package/lib/typescript/src/web/constants.d.ts.map +1 -0
  270. package/lib/typescript/src/web/dom.d.ts +7 -0
  271. package/lib/typescript/src/web/dom.d.ts.map +1 -0
  272. package/lib/typescript/src/web/vaul/browser.d.ts +8 -0
  273. package/lib/typescript/src/web/vaul/browser.d.ts.map +1 -0
  274. package/lib/typescript/src/web/vaul/constants.d.ts +13 -0
  275. package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -0
  276. package/lib/typescript/src/web/vaul/context.d.ts +53 -0
  277. package/lib/typescript/src/web/vaul/context.d.ts.map +1 -0
  278. package/lib/typescript/src/web/vaul/helpers.d.ts +17 -0
  279. package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -0
  280. package/lib/typescript/src/web/vaul/index.d.ts +228 -0
  281. package/lib/typescript/src/web/vaul/index.d.ts.map +1 -0
  282. package/lib/typescript/src/web/vaul/types.d.ts +7 -0
  283. package/lib/typescript/src/web/vaul/types.d.ts.map +1 -0
  284. package/lib/typescript/src/web/vaul/use-composed-refs.d.ts +14 -0
  285. package/lib/typescript/src/web/vaul/use-composed-refs.d.ts.map +1 -0
  286. package/lib/typescript/src/web/vaul/use-controllable-state.d.ts +9 -0
  287. package/lib/typescript/src/web/vaul/use-controllable-state.d.ts.map +1 -0
  288. package/lib/typescript/src/web/vaul/use-position-fixed.d.ts +19 -0
  289. package/lib/typescript/src/web/vaul/use-position-fixed.d.ts.map +1 -0
  290. package/lib/typescript/src/web/vaul/use-prevent-scroll.d.ts +18 -0
  291. package/lib/typescript/src/web/vaul/use-prevent-scroll.d.ts.map +1 -0
  292. package/lib/typescript/src/web/vaul/use-scale-background.d.ts +2 -0
  293. package/lib/typescript/src/web/vaul/use-scale-background.d.ts.map +1 -0
  294. package/lib/typescript/src/web/vaul/use-snap-points.d.ts +38 -0
  295. package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -0
  296. package/package.json +95 -36
  297. package/react-native.config.js +9 -2
  298. package/src/TrueSheet.tsx +281 -62
  299. package/src/TrueSheet.types.ts +525 -71
  300. package/src/TrueSheet.web.tsx +1362 -0
  301. package/src/TrueSheetPeek.tsx +11 -0
  302. package/src/TrueSheetPeek.web.tsx +64 -0
  303. package/src/TrueSheetProvider.tsx +33 -0
  304. package/src/TrueSheetProvider.web.tsx +220 -0
  305. package/src/fabric/TrueSheetContainerViewNativeComponent.ts +1 -1
  306. package/src/fabric/TrueSheetContentViewNativeComponent.ts +5 -1
  307. package/src/fabric/TrueSheetFooterViewNativeComponent.ts +10 -2
  308. package/src/fabric/TrueSheetHeaderViewNativeComponent.ts +8 -0
  309. package/src/fabric/TrueSheetPeekViewNativeComponent.ts +8 -0
  310. package/src/fabric/TrueSheetViewNativeComponent.ts +105 -18
  311. package/src/index.ts +2 -2
  312. package/src/mocks/index.ts +89 -0
  313. package/src/mocks/navigation.ts +79 -0
  314. package/src/mocks/navigationExpoRouter.ts +40 -0
  315. package/src/mocks/reanimated.ts +100 -0
  316. package/src/navigation/TrueSheetNavigatorContent.tsx +106 -0
  317. package/src/navigation/actions.ts +78 -0
  318. package/src/navigation/createTrueSheetRouter.ts +222 -0
  319. package/src/navigation/expo-router/index.ts +89 -0
  320. package/src/navigation/index.ts +81 -0
  321. package/src/navigation/navigator.ts +18 -0
  322. package/src/navigation/screen/ReanimatedTrueSheetScreen.tsx +61 -0
  323. package/src/navigation/screen/TrueSheetScreen.tsx +54 -0
  324. package/src/navigation/screen/index.ts +3 -0
  325. package/src/navigation/screen/types.ts +19 -0
  326. package/src/navigation/screen/useSheetScreenState.ts +100 -0
  327. package/src/navigation/types.ts +251 -0
  328. package/src/navigation/useTrueSheetNavigation.ts +26 -0
  329. package/src/reanimated/ReanimatedTrueSheet.tsx +12 -7
  330. package/src/reanimated/ReanimatedTrueSheet.web.tsx +75 -0
  331. package/src/reanimated/ReanimatedTrueSheetProvider.tsx +12 -8
  332. package/src/reanimated/useReanimatedPositionChangeHandler.web.ts +31 -0
  333. package/src/specs/NativeTrueSheetModule.ts +28 -3
  334. package/src/web/constants.ts +13 -0
  335. package/src/web/dom.ts +9 -0
  336. package/src/web/vaul/README.md +9 -0
  337. package/src/web/vaul/browser.ts +38 -0
  338. package/src/web/vaul/constants.ts +20 -0
  339. package/src/web/vaul/context.ts +101 -0
  340. package/src/web/vaul/helpers.ts +131 -0
  341. package/src/web/vaul/index.tsx +1740 -0
  342. package/src/web/vaul/style.css +287 -0
  343. package/src/web/vaul/style.css.d.ts +1 -0
  344. package/src/web/vaul/types.ts +7 -0
  345. package/src/web/vaul/use-composed-refs.ts +35 -0
  346. package/src/web/vaul/use-controllable-state.ts +66 -0
  347. package/src/web/vaul/use-position-fixed.ts +147 -0
  348. package/src/web/vaul/use-prevent-scroll.ts +309 -0
  349. package/src/web/vaul/use-scale-background.ts +64 -0
  350. package/src/web/vaul/use-snap-points.ts +455 -0
  351. package/android/src/main/java/com/lodev09/truesheet/events/DetentChangeEvent.kt +0 -26
  352. package/android/src/main/java/com/lodev09/truesheet/events/DidDismissEvent.kt +0 -20
  353. package/android/src/main/java/com/lodev09/truesheet/events/DidPresentEvent.kt +0 -26
  354. package/android/src/main/java/com/lodev09/truesheet/events/DragBeginEvent.kt +0 -26
  355. package/android/src/main/java/com/lodev09/truesheet/events/DragChangeEvent.kt +0 -26
  356. package/android/src/main/java/com/lodev09/truesheet/events/DragEndEvent.kt +0 -26
  357. package/android/src/main/java/com/lodev09/truesheet/events/MountEvent.kt +0 -20
  358. package/android/src/main/java/com/lodev09/truesheet/events/PositionChangeEvent.kt +0 -32
  359. package/android/src/main/java/com/lodev09/truesheet/events/SizeChangeEvent.kt +0 -27
  360. package/android/src/main/java/com/lodev09/truesheet/events/WillDismissEvent.kt +0 -20
  361. package/android/src/main/java/com/lodev09/truesheet/events/WillPresentEvent.kt +0 -26
  362. package/android/src/main/res/values/styles.xml +0 -8
  363. package/ios/events/OnDetentChangeEvent.h +0 -28
  364. package/ios/events/OnDetentChangeEvent.mm +0 -30
  365. package/ios/events/OnDidDismissEvent.mm +0 -25
  366. package/ios/events/OnDidPresentEvent.h +0 -28
  367. package/ios/events/OnDidPresentEvent.mm +0 -30
  368. package/ios/events/OnDragBeginEvent.h +0 -28
  369. package/ios/events/OnDragBeginEvent.mm +0 -30
  370. package/ios/events/OnDragChangeEvent.h +0 -28
  371. package/ios/events/OnDragChangeEvent.mm +0 -30
  372. package/ios/events/OnDragEndEvent.h +0 -28
  373. package/ios/events/OnDragEndEvent.mm +0 -30
  374. package/ios/events/OnMountEvent.mm +0 -25
  375. package/ios/events/OnPositionChangeEvent.mm +0 -32
  376. package/ios/events/OnSizeChangeEvent.h +0 -28
  377. package/ios/events/OnSizeChangeEvent.mm +0 -30
  378. package/ios/events/OnWillDismissEvent.mm +0 -25
  379. package/ios/events/OnWillPresentEvent.h +0 -28
  380. package/ios/events/OnWillPresentEvent.mm +0 -30
  381. package/ios/utils/LayoutUtil.h +0 -44
  382. package/ios/utils/LayoutUtil.mm +0 -50
  383. package/lib/module/TrueSheetGrabber.js +0 -51
  384. package/lib/module/TrueSheetGrabber.js.map +0 -1
  385. package/lib/typescript/src/TrueSheetGrabber.d.ts +0 -39
  386. package/lib/typescript/src/TrueSheetGrabber.d.ts.map +0 -1
  387. package/src/TrueSheetGrabber.tsx +0 -82
  388. package/src/__mocks__/index.js +0 -67
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ import { StackRouter, unstable_integrateWithRouter, useNavigation } from 'expo-router';
4
+ import { createTrueSheetRouter } from "../createTrueSheetRouter.js";
5
+ import { trueSheetNavigator } from "../navigator.js";
6
+ const SheetNavigator = unstable_integrateWithRouter(trueSheetNavigator,
7
+ // expo-router's vendored StackRouter is structurally identical to @react-navigation's
8
+ createTrueSheetRouter(StackRouter), {
9
+ createProps: ({
10
+ state,
11
+ dispatch
12
+ }) => ({
13
+ routes: state.routes,
14
+ dispatch
15
+ })
16
+ });
17
+
18
+ // Public props: `routes`/`dispatch` are injected by `createProps` (optional here
19
+ // so the navigator type stays comparable), and expo-router intersects the event
20
+ // map with an index signature which breaks precisely typed `screenListeners`
21
+ // callbacks - replace it with the exact map
22
+
23
+ /**
24
+ * TrueSheet navigator layout for Expo Router.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * // app/sheet/_layout.tsx
29
+ * import { Sheet } from '@lodev09/react-native-true-sheet/navigation/expo-router';
30
+ *
31
+ * export default function SheetLayout() {
32
+ * return (
33
+ * <Sheet initialRouteName="(home)">
34
+ * <Sheet.Screen name="details" options={{ detents: [0.5, 1] }} />
35
+ * </Sheet>
36
+ * );
37
+ * }
38
+ * ```
39
+ */
40
+ export const Sheet = SheetNavigator;
41
+
42
+ /**
43
+ * Hook to access TrueSheet navigation with the resize helper.
44
+ * Built on expo-router's `useNavigation`.
45
+ */
46
+ export const useTrueSheetNavigation = () => useNavigation();
47
+ export { TrueSheetActions } from "../actions.js";
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StackRouter","unstable_integrateWithRouter","useNavigation","createTrueSheetRouter","trueSheetNavigator","SheetNavigator","createProps","state","dispatch","routes","Sheet","useTrueSheetNavigation","TrueSheetActions"],"sourceRoot":"../../../../src","sources":["navigation/expo-router/index.ts"],"mappings":";;AACA,SAASA,WAAW,EAAEC,4BAA4B,EAAEC,aAAa,QAAQ,aAAa;AAEtF,SACEC,qBAAqB,QAGhB,6BAA0B;AACjC,SAASC,kBAAkB,QAAQ,iBAAc;AAUjD,MAAMC,cAAc,GAAGJ,4BAA4B,CAOjDG,kBAAkB;AAClB;AACAD,qBAAqB,CAACH,WAAiC,CAAC,EACxD;EACEM,WAAW,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAAS,CAAC,MAAM;IACrCC,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBD;EACF,CAAC;AACH,CACF,CAAC;;AAED;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,KAAK,GAAGL,cAGpB;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,sBAAsB,GAAGA,CAAA,KAEHT,aAAa,CAA6B,CAAC;AAE9E,SAASU,gBAAgB,QAAkC,eAAY","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ import { createStandardNavigationFactories, StackRouter } from '@react-navigation/native';
4
+ import { createTrueSheetRouter } from "./createTrueSheetRouter.js";
5
+ import { trueSheetNavigator } from "./navigator.js";
6
+ const {
7
+ createNavigator,
8
+ createScreen
9
+ } = createStandardNavigationFactories(trueSheetNavigator, createTrueSheetRouter(StackRouter), ({
10
+ state,
11
+ navigation
12
+ }) => ({
13
+ routes: state.routes,
14
+ dispatch: navigation.dispatch
15
+ }));
16
+
17
+ /**
18
+ * Creates a TrueSheet navigator.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * const Sheet = createTrueSheetNavigator();
23
+ *
24
+ * function App() {
25
+ * return (
26
+ * <Sheet.Navigator>
27
+ * <Sheet.Screen name="Home" component={HomeScreen} />
28
+ * <Sheet.Screen
29
+ * name="Details"
30
+ * component={DetailsSheet}
31
+ * options={{ detents: [0.5, 1] }}
32
+ * />
33
+ * </Sheet.Navigator>
34
+ * );
35
+ * }
36
+ * ```
37
+ */
38
+ export const createTrueSheetNavigator = createNavigator;
39
+
40
+ /**
41
+ * Creates a screen configuration for the static API.
42
+ */
43
+ export const createTrueSheetScreen = createScreen;
44
+ export { TrueSheetActions } from "./actions.js";
45
+ export { createTrueSheetRouter } from "./createTrueSheetRouter.js";
46
+ export { useTrueSheetNavigation } from "./useTrueSheetNavigation.js";
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createStandardNavigationFactories","StackRouter","createTrueSheetRouter","trueSheetNavigator","createNavigator","createScreen","state","navigation","routes","dispatch","createTrueSheetNavigator","createTrueSheetScreen","TrueSheetActions","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,SACEA,iCAAiC,EACjCC,WAAW,QAEN,0BAA0B;AAEjC,SAASC,qBAAqB,QAAiC,4BAAyB;AACxF,SAASC,kBAAkB,QAAQ,gBAAa;AAkBhD,MAAM;EAAEC,eAAe;EAAEC;AAAa,CAAC,GAAGL,iCAAiC,CAKzEG,kBAAkB,EAClBD,qBAAqB,CAACD,WAAiC,CAAC,EACxD,CAAC;EAAEK,KAAK;EAAEC;AAAW,CAAC,MAAM;EAAEC,MAAM,EAAEF,KAAK,CAACE,MAAM;EAAEC,QAAQ,EAAEF,UAAU,CAACE;AAAS,CAAC,CACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAGN,eAAe;;AAEvD;AACA;AACA;AACA,OAAO,MAAMO,qBAAqB,GAAGN,YAAY;AAEjD,SAASO,gBAAgB,QAAkC,cAAW;AACtE,SACEV,qBAAqB,QAGhB,4BAAyB;AAChC,SAASW,sBAAsB,QAAQ,6BAA0B","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ import { createStandardNavigator } from 'standard-navigation';
4
+ import { TrueSheetNavigatorContent } from "./TrueSheetNavigatorContent.js";
5
+ /**
6
+ * Framework-agnostic TrueSheet navigator.
7
+ * Wired into React Navigation via `./index` and Expo Router via `./expo-router`.
8
+ */
9
+ export const trueSheetNavigator = createStandardNavigator(TrueSheetNavigatorContent);
10
+ //# sourceMappingURL=navigator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createStandardNavigator","TrueSheetNavigatorContent","trueSheetNavigator"],"sourceRoot":"../../../src","sources":["navigation/navigator.ts"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,qBAAqB;AAE7D,SAASC,yBAAyB,QAAQ,gCAA6B;AAOvE;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAGF,uBAAuB,CAIvDC,yBAAyB,CAAC","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ import Animated from 'react-native-reanimated';
4
+ import { scheduleOnRN } from 'react-native-worklets';
5
+ import { useReanimatedPositionChangeHandler } from "../../reanimated/index.js";
6
+ import { TrueSheet } from '../../TrueSheet';
7
+ import { useSheetScreenState } from "./useSheetScreenState.js";
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ const AnimatedTrueSheet = Animated.createAnimatedComponent(TrueSheet);
10
+ export const ReanimatedTrueSheetScreen = ({
11
+ detentIndex,
12
+ resizeKey,
13
+ dispatch,
14
+ emit,
15
+ routeKey,
16
+ closing,
17
+ detents,
18
+ children,
19
+ positionChangeHandler,
20
+ ...sheetProps
21
+ }) => {
22
+ const {
23
+ ref,
24
+ initialDetentIndex,
25
+ eventHandlers: {
26
+ onPositionChange,
27
+ ...eventHandlers
28
+ }
29
+ } = useSheetScreenState({
30
+ detentIndex,
31
+ resizeKey,
32
+ closing,
33
+ dispatch,
34
+ routeKey,
35
+ emit
36
+ });
37
+ const reanimatedPositionChangeHandler = useReanimatedPositionChangeHandler(payload => {
38
+ 'worklet';
39
+
40
+ positionChangeHandler?.(payload);
41
+ scheduleOnRN(onPositionChange, {
42
+ nativeEvent: payload
43
+ });
44
+ }, [onPositionChange, positionChangeHandler]);
45
+ return /*#__PURE__*/_jsx(AnimatedTrueSheet, {
46
+ ref: ref,
47
+ name: `navigation-sheet-${routeKey}`,
48
+ initialDetentIndex: initialDetentIndex,
49
+ detents: detents,
50
+ onPositionChange: reanimatedPositionChangeHandler,
51
+ ...sheetProps,
52
+ ...eventHandlers,
53
+ children: children
54
+ });
55
+ };
56
+ //# sourceMappingURL=ReanimatedTrueSheetScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Animated","scheduleOnRN","useReanimatedPositionChangeHandler","TrueSheet","useSheetScreenState","jsx","_jsx","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheetScreen","detentIndex","resizeKey","dispatch","emit","routeKey","closing","detents","children","positionChangeHandler","sheetProps","ref","initialDetentIndex","eventHandlers","onPositionChange","reanimatedPositionChangeHandler","payload","nativeEvent","name"],"sourceRoot":"../../../../src","sources":["navigation/screen/ReanimatedTrueSheetScreen.tsx"],"mappings":";;AAAA,OAAOA,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,YAAY,QAAQ,uBAAuB;AAEpD,SAASC,kCAAkC,QAAQ,2BAAkB;AACrE,SAASC,SAAS,QAAQ,iBAAiB;AAG3C,SAASC,mBAAmB,QAAQ,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5D,MAAMC,iBAAiB,GAAGP,QAAQ,CAACQ,uBAAuB,CAACL,SAAS,CAAC;AAErE,OAAO,MAAMM,yBAAyB,GAAGA,CAAC;EACxCC,WAAW;EACXC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,OAAO;EACPC,OAAO;EACPC,QAAQ;EACRC,qBAAqB;EACrB,GAAGC;AACiB,CAAC,KAAK;EAC1B,MAAM;IACJC,GAAG;IACHC,kBAAkB;IAClBC,aAAa,EAAE;MAAEC,gBAAgB;MAAE,GAAGD;IAAc;EACtD,CAAC,GAAGlB,mBAAmB,CAAC;IACtBM,WAAW;IACXC,SAAS;IACTI,OAAO;IACPH,QAAQ;IACRE,QAAQ;IACRD;EACF,CAAC,CAAC;EAEF,MAAMW,+BAA+B,GAAGtB,kCAAkC,CACvEuB,OAAO,IAAK;IACX,SAAS;;IACTP,qBAAqB,GAAGO,OAAO,CAAC;IAChCxB,YAAY,CAACsB,gBAAgB,EAAE;MAC7BG,WAAW,EAAED;IACf,CAAwB,CAAC;EAC3B,CAAC,EACD,CAACF,gBAAgB,EAAEL,qBAAqB,CAC1C,CAAC;EAED,oBACEZ,IAAA,CAACC,iBAAiB;IAChBa,GAAG,EAAEA,GAAI;IACTO,IAAI,EAAE,oBAAoBb,QAAQ,EAAG;IACrCO,kBAAkB,EAAEA,kBAAmB;IACvCL,OAAO,EAAEA,OAAQ;IACjBO,gBAAgB,EAAEC,+BAAgC;IAAA,GAC9CL,UAAU;IAAA,GACVG,aAAa;IAAAL,QAAA,EAEhBA;EAAQ,CACQ,CAAC;AAExB,CAAC","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ import { useCallback } from 'react';
4
+ import { TrueSheet } from '../../TrueSheet';
5
+ import { useSheetScreenState } from "./useSheetScreenState.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const TrueSheetScreen = ({
8
+ detentIndex,
9
+ resizeKey,
10
+ dispatch,
11
+ emit,
12
+ routeKey,
13
+ closing,
14
+ detents,
15
+ children,
16
+ positionChangeHandler,
17
+ ...sheetProps
18
+ }) => {
19
+ const {
20
+ ref,
21
+ initialDetentIndex,
22
+ eventHandlers: {
23
+ onPositionChange,
24
+ ...eventHandlers
25
+ }
26
+ } = useSheetScreenState({
27
+ detentIndex,
28
+ resizeKey,
29
+ closing,
30
+ dispatch,
31
+ routeKey,
32
+ emit
33
+ });
34
+ const handlePositionChange = useCallback(e => {
35
+ onPositionChange(e);
36
+ positionChangeHandler?.(e.nativeEvent);
37
+ }, [onPositionChange, positionChangeHandler]);
38
+ return /*#__PURE__*/_jsx(TrueSheet, {
39
+ ref: ref,
40
+ name: `navigation-sheet-${routeKey}`,
41
+ initialDetentIndex: initialDetentIndex,
42
+ detents: detents,
43
+ onPositionChange: handlePositionChange,
44
+ ...sheetProps,
45
+ ...eventHandlers,
46
+ children: children
47
+ });
48
+ };
49
+ //# sourceMappingURL=TrueSheetScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","TrueSheet","useSheetScreenState","jsx","_jsx","TrueSheetScreen","detentIndex","resizeKey","dispatch","emit","routeKey","closing","detents","children","positionChangeHandler","sheetProps","ref","initialDetentIndex","eventHandlers","onPositionChange","handlePositionChange","e","nativeEvent","name"],"sourceRoot":"../../../../src","sources":["navigation/screen/TrueSheetScreen.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,SAAS,QAAQ,iBAAiB;AAG3C,SAASC,mBAAmB,QAAQ,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5D,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,WAAW;EACXC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,OAAO;EACPC,OAAO;EACPC,QAAQ;EACRC,qBAAqB;EACrB,GAAGC;AACiB,CAAC,KAAK;EAC1B,MAAM;IACJC,GAAG;IACHC,kBAAkB;IAClBC,aAAa,EAAE;MAAEC,gBAAgB;MAAE,GAAGD;IAAc;EACtD,CAAC,GAAGhB,mBAAmB,CAAC;IACtBI,WAAW;IACXC,SAAS;IACTI,OAAO;IACPH,QAAQ;IACRE,QAAQ;IACRD;EACF,CAAC,CAAC;EAEF,MAAMW,oBAAoB,GAAGpB,WAAW,CACrCqB,CAAsB,IAAK;IAC1BF,gBAAgB,CAACE,CAAC,CAAC;IACnBP,qBAAqB,GAAGO,CAAC,CAACC,WAAW,CAAC;EACxC,CAAC,EACD,CAACH,gBAAgB,EAAEL,qBAAqB,CAC1C,CAAC;EAED,oBACEV,IAAA,CAACH,SAAS;IACRe,GAAG,EAAEA,GAAI;IACTO,IAAI,EAAE,oBAAoBb,QAAQ,EAAG;IACrCO,kBAAkB,EAAEA,kBAAmB;IACvCL,OAAO,EAAEA,OAAQ;IACjBO,gBAAgB,EAAEC,oBAAqB;IAAA,GACnCL,UAAU;IAAA,GACVG,aAAa;IAAAL,QAAA,EAEhBA;EAAQ,CACA,CAAC;AAEhB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export { TrueSheetScreen } from "./TrueSheetScreen.js";
4
+ export { useSheetScreenState } from "./useSheetScreenState.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TrueSheetScreen","useSheetScreenState"],"sourceRoot":"../../../../src","sources":["navigation/screen/index.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,sBAAmB;AACnD,SAASC,mBAAmB,QAAQ,0BAAuB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["navigation/screen/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
4
+ import { TrueSheetActions } from "../actions.js";
5
+ export const useSheetScreenState = props => {
6
+ const {
7
+ detentIndex,
8
+ resizeKey,
9
+ closing,
10
+ dispatch,
11
+ routeKey,
12
+ emit
13
+ } = props;
14
+ const ref = useRef(null);
15
+ const isDismissedRef = useRef(false);
16
+ const isFirstRenderRef = useRef(true);
17
+ const initialDetentIndexRef = useRef(detentIndex);
18
+ useEffect(() => {
19
+ if (closing && !isDismissedRef.current) {
20
+ isDismissedRef.current = true;
21
+ ref.current?.dismiss();
22
+ }
23
+ }, [closing]);
24
+ useEffect(() => {
25
+ if (isFirstRenderRef.current) {
26
+ isFirstRenderRef.current = false;
27
+ return;
28
+ }
29
+ ref.current?.resize(detentIndex);
30
+ }, [detentIndex, resizeKey]);
31
+ const emitEvent = useCallback((type, data) => {
32
+ emit({
33
+ type,
34
+ target: routeKey,
35
+ data
36
+ });
37
+ }, [emit, routeKey]);
38
+ const onDidDismiss = useCallback(() => {
39
+ emitEvent('sheetDidDismiss', undefined);
40
+ isDismissedRef.current = true;
41
+ dispatch({
42
+ ...TrueSheetActions.remove(),
43
+ source: routeKey
44
+ });
45
+ }, [emitEvent, dispatch, routeKey]);
46
+ const eventHandlers = useMemo(() => ({
47
+ onWillPresent: e => emitEvent('sheetWillPresent', e.nativeEvent),
48
+ onDidPresent: e => emitEvent('sheetDidPresent', e.nativeEvent),
49
+ onWillDismiss: _e => emitEvent('sheetWillDismiss', undefined),
50
+ onDidDismiss,
51
+ onDetentChange: e => emitEvent('sheetDetentChange', e.nativeEvent),
52
+ onDragBegin: e => emitEvent('sheetDragBegin', e.nativeEvent),
53
+ onDragChange: e => emitEvent('sheetDragChange', e.nativeEvent),
54
+ onDragEnd: e => emitEvent('sheetDragEnd', e.nativeEvent),
55
+ onPositionChange: e => emitEvent('sheetPositionChange', e.nativeEvent),
56
+ onWillFocus: _e => emitEvent('sheetWillFocus', undefined),
57
+ onDidFocus: _e => emitEvent('sheetDidFocus', undefined),
58
+ onWillBlur: _e => emitEvent('sheetWillBlur', undefined),
59
+ onDidBlur: _e => emitEvent('sheetDidBlur', undefined)
60
+ }), [emitEvent, onDidDismiss]);
61
+ return {
62
+ ref,
63
+ initialDetentIndex: initialDetentIndexRef.current,
64
+ emitEvent,
65
+ eventHandlers
66
+ };
67
+ };
68
+ //# sourceMappingURL=useSheetScreenState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","dispatch","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","remove","source","eventHandlers","onWillPresent","e","nativeEvent","onDidPresent","onWillDismiss","_e","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","initialDetentIndex"],"sourceRoot":"../../../../src","sources":["navigation/screen/useSheetScreenState.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAoB/D,SAASC,gBAAgB,QAAQ,eAAY;AAW7C,OAAO,MAAMC,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAM;IAAEC,WAAW;IAAEC,SAAS;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGN,KAAK;EAE3E,MAAMO,GAAG,GAAGV,MAAM,CAAY,IAAI,CAAC;EACnC,MAAMW,cAAc,GAAGX,MAAM,CAAC,KAAK,CAAC;EACpC,MAAMY,gBAAgB,GAAGZ,MAAM,CAAC,IAAI,CAAC;EACrC,MAAMa,qBAAqB,GAAGb,MAAM,CAACI,WAAW,CAAC;EAEjDN,SAAS,CAAC,MAAM;IACd,IAAIQ,OAAO,IAAI,CAACK,cAAc,CAACG,OAAO,EAAE;MACtCH,cAAc,CAACG,OAAO,GAAG,IAAI;MAC7BJ,GAAG,CAACI,OAAO,EAAEC,OAAO,CAAC,CAAC;IACxB;EACF,CAAC,EAAE,CAACT,OAAO,CAAC,CAAC;EAEbR,SAAS,CAAC,MAAM;IACd,IAAIc,gBAAgB,CAACE,OAAO,EAAE;MAC5BF,gBAAgB,CAACE,OAAO,GAAG,KAAK;MAChC;IACF;IACAJ,GAAG,CAACI,OAAO,EAAEE,MAAM,CAACZ,WAAW,CAAC;EAClC,CAAC,EAAE,CAACA,WAAW,EAAEC,SAAS,CAAC,CAAC;EAE5B,MAAMY,SAAS,GAAGpB,WAAW,CAC3B,CACEqB,IAAuC,EACvCC,IAAqE,KAClE;IACHV,IAAI,CAAC;MACHS,IAAI;MACJE,MAAM,EAAEZ,QAAQ;MAChBW;IACF,CAAmC,CAAC;EACtC,CAAC,EACD,CAACV,IAAI,EAAED,QAAQ,CACjB,CAAC;EAED,MAAMa,YAAY,GAAGxB,WAAW,CAAC,MAAM;IACrCoB,SAAS,CAAC,iBAAiB,EAAEK,SAAS,CAAC;IACvCX,cAAc,CAACG,OAAO,GAAG,IAAI;IAC7BP,QAAQ,CAAC;MAAE,GAAGN,gBAAgB,CAACsB,MAAM,CAAC,CAAC;MAAEC,MAAM,EAAEhB;IAAS,CAAC,CAAC;EAC9D,CAAC,EAAE,CAACS,SAAS,EAAEV,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAEnC,MAAMiB,aAAa,GAAG1B,OAAO,CAC3B,OAAO;IACL2B,aAAa,EAAGC,CAAmB,IAAKV,SAAS,CAAC,kBAAkB,EAAEU,CAAC,CAACC,WAAW,CAAC;IACpFC,YAAY,EAAGF,CAAkB,IAAKV,SAAS,CAAC,iBAAiB,EAAEU,CAAC,CAACC,WAAW,CAAC;IACjFE,aAAa,EAAGC,EAAoB,IAAKd,SAAS,CAAC,kBAAkB,EAAEK,SAAS,CAAC;IACjFD,YAAY;IACZW,cAAc,EAAGL,CAAoB,IAAKV,SAAS,CAAC,mBAAmB,EAAEU,CAAC,CAACC,WAAW,CAAC;IACvFK,WAAW,EAAGN,CAAiB,IAAKV,SAAS,CAAC,gBAAgB,EAAEU,CAAC,CAACC,WAAW,CAAC;IAC9EM,YAAY,EAAGP,CAAkB,IAAKV,SAAS,CAAC,iBAAiB,EAAEU,CAAC,CAACC,WAAW,CAAC;IACjFO,SAAS,EAAGR,CAAe,IAAKV,SAAS,CAAC,cAAc,EAAEU,CAAC,CAACC,WAAW,CAAC;IACxEQ,gBAAgB,EAAGT,CAAsB,IAAKV,SAAS,CAAC,qBAAqB,EAAEU,CAAC,CAACC,WAAW,CAAC;IAC7FS,WAAW,EAAGN,EAAkB,IAAKd,SAAS,CAAC,gBAAgB,EAAEK,SAAS,CAAC;IAC3EgB,UAAU,EAAGP,EAAiB,IAAKd,SAAS,CAAC,eAAe,EAAEK,SAAS,CAAC;IACxEiB,UAAU,EAAGR,EAAiB,IAAKd,SAAS,CAAC,eAAe,EAAEK,SAAS,CAAC;IACxEkB,SAAS,EAAGT,EAAgB,IAAKd,SAAS,CAAC,cAAc,EAAEK,SAAS;EACtE,CAAC,CAAC,EACF,CAACL,SAAS,EAAEI,YAAY,CAC1B,CAAC;EAED,OAAO;IACLX,GAAG;IACH+B,kBAAkB,EAAE5B,qBAAqB,CAACC,OAAO;IACjDG,SAAS;IACTQ;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["navigation/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ import { useNavigation } from '@react-navigation/native';
4
+ /**
5
+ * Hook to access TrueSheet navigation with the resize helper.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * function MySheet() {
10
+ * const navigation = useTrueSheetNavigation();
11
+ *
12
+ * // Resize to a specific detent
13
+ * const handleExpand = () => {
14
+ * navigation.resize(1); // Resize to second detent
15
+ * };
16
+ *
17
+ * return (
18
+ * <Button title="Expand" onPress={handleExpand} />
19
+ * );
20
+ * }
21
+ * ```
22
+ */
23
+ export const useTrueSheetNavigation = () => useNavigation();
24
+ //# sourceMappingURL=useTrueSheetNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useNavigation","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/useTrueSheetNavigation.ts"],"mappings":";;AAAA,SAASA,aAAa,QAA4B,0BAA0B;AAI5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAEHD,aAAa,CAA6B,CAAC","ignoreList":[]}
@@ -3,9 +3,9 @@
3
3
  import { forwardRef } from 'react';
4
4
  import Animated, { withSpring, withTiming, Easing } from 'react-native-reanimated';
5
5
  import { Platform } from 'react-native';
6
- import { TrueSheet } from "../TrueSheet.js";
6
+ import { TrueSheet } from '../TrueSheet';
7
7
  import { useReanimatedTrueSheet } from "./ReanimatedTrueSheetProvider.js";
8
- import { useReanimatedPositionChangeHandler } from "./useReanimatedPositionChangeHandler.js";
8
+ import { useReanimatedPositionChangeHandler } from './useReanimatedPositionChangeHandler';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const SPRING_CONFIG = {
11
11
  damping: 500,
@@ -57,23 +57,29 @@ export const ReanimatedTrueSheet = /*#__PURE__*/forwardRef((props, ref) => {
57
57
  } = props;
58
58
  const {
59
59
  animatedPosition,
60
- animatedIndex
60
+ animatedIndex,
61
+ animatedDetent
61
62
  } = useReanimatedTrueSheet();
62
63
  const positionChangeHandler = useReanimatedPositionChangeHandler(payload => {
63
64
  'worklet';
64
65
 
65
- // When transitioning=true, we animate the position manually for smooth transitions.
66
- // This is used when native can't provide real-time position updates during animations.
67
- if (payload.transitioning) {
66
+ if (payload.realtime) {
67
+ // Update directly when we have real-time values (during drag or animation tracking)
68
+ animatedPosition.value = payload.position;
69
+ animatedIndex.value = payload.index;
70
+ animatedDetent.value = payload.detent;
71
+ } else {
72
+ // Animate position, index, and detent when not real-time
68
73
  if (Platform.OS === 'android') {
69
74
  animatedPosition.value = withTiming(payload.position, TIMING_CONFIG);
75
+ animatedIndex.value = withTiming(payload.index, TIMING_CONFIG);
76
+ animatedDetent.value = withTiming(payload.detent, TIMING_CONFIG);
70
77
  } else {
71
78
  animatedPosition.value = withSpring(payload.position, SPRING_CONFIG);
79
+ animatedIndex.value = withSpring(payload.index, SPRING_CONFIG);
80
+ animatedDetent.value = withSpring(payload.detent, SPRING_CONFIG);
72
81
  }
73
- } else {
74
- animatedPosition.value = payload.position;
75
82
  }
76
- animatedIndex.value = payload.index;
77
83
  onPositionChange?.({
78
84
  nativeEvent: payload
79
85
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","Animated","withSpring","withTiming","Easing","Platform","TrueSheet","useReanimatedTrueSheet","useReanimatedPositionChangeHandler","jsx","_jsx","SPRING_CONFIG","damping","stiffness","mass","overshootClamping","TIMING_CONFIG","duration","easing","bezier","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheet","props","ref","onPositionChange","rest","animatedPosition","animatedIndex","positionChangeHandler","payload","transitioning","OS","value","position","index","nativeEvent"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheet.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,OAAOC,QAAQ,IAGbC,UAAU,EACVC,UAAU,EACVC,MAAM,QACD,yBAAyB;AAChC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,SAAS,QAAQ,iBAAc;AAExC,SAASC,sBAAsB,QAAQ,kCAA+B;AACtE,SAASC,kCAAkC,QAAQ,yCAAsC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1F,MAAMC,aAA+B,GAAG;EACtCC,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAI,EAAE,CAAC;EACPC,iBAAiB,EAAE;AACrB,CAAC;AAED,MAAMC,aAA+B,GAAG;EACtCC,QAAQ,EAAE,GAAG;EACbC,MAAM,EAAEd,MAAM,CAACe,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAWD;AACA,MAAMC,iBAAiB,GAAGnB,QAAQ,CAACoB,uBAAuB,CAACf,SAAS,CAAC;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgB,mBAAmB,gBAAGtB,UAAU,CAAsC,CAACuB,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;IAAEC,gBAAgB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAE3C,MAAM;IAAEI,gBAAgB;IAAEC;EAAc,CAAC,GAAGrB,sBAAsB,CAAC,CAAC;EAEpE,MAAMsB,qBAAqB,GAAGrB,kCAAkC,CAAEsB,OAAO,IAAK;IAC5E,SAAS;;IAET;IACA;IACA,IAAIA,OAAO,CAACC,aAAa,EAAE;MACzB,IAAI1B,QAAQ,CAAC2B,EAAE,KAAK,SAAS,EAAE;QAC7BL,gBAAgB,CAACM,KAAK,GAAG9B,UAAU,CAAC2B,OAAO,CAACI,QAAQ,EAAElB,aAAa,CAAC;MACtE,CAAC,MAAM;QACLW,gBAAgB,CAACM,KAAK,GAAG/B,UAAU,CAAC4B,OAAO,CAACI,QAAQ,EAAEvB,aAAa,CAAC;MACtE;IACF,CAAC,MAAM;MACLgB,gBAAgB,CAACM,KAAK,GAAGH,OAAO,CAACI,QAAQ;IAC3C;IAEAN,aAAa,CAACK,KAAK,GAAGH,OAAO,CAACK,KAAK;IACnCV,gBAAgB,GAAG;MAAEW,WAAW,EAAEN;IAAQ,CAAwB,CAAC;EACrE,CAAC,CAAC;EAEF,oBAAOpB,IAAA,CAACU,iBAAiB;IAACI,GAAG,EAAEA,GAAI;IAACC,gBAAgB,EAAEI,qBAAsB;IAAA,GAAKH;EAAI,CAAG,CAAC;AAC3F,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","Animated","withSpring","withTiming","Easing","Platform","TrueSheet","useReanimatedTrueSheet","useReanimatedPositionChangeHandler","jsx","_jsx","SPRING_CONFIG","damping","stiffness","mass","overshootClamping","TIMING_CONFIG","duration","easing","bezier","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheet","props","ref","onPositionChange","rest","animatedPosition","animatedIndex","animatedDetent","positionChangeHandler","payload","realtime","value","position","index","detent","OS","nativeEvent"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheet.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,OAAOC,QAAQ,IAGbC,UAAU,EACVC,UAAU,EACVC,MAAM,QACD,yBAAyB;AAChC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,SAAS,QAAQ,cAAc;AAExC,SAASC,sBAAsB,QAAQ,kCAA+B;AACtE,SAASC,kCAAkC,QAAQ,sCAAsC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1F,MAAMC,aAA+B,GAAG;EACtCC,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAI,EAAE,CAAC;EACPC,iBAAiB,EAAE;AACrB,CAAC;AAED,MAAMC,aAA+B,GAAG;EACtCC,QAAQ,EAAE,GAAG;EACbC,MAAM,EAAEd,MAAM,CAACe,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAWD;AACA,MAAMC,iBAAiB,GAAGnB,QAAQ,CAACoB,uBAAuB,CAACf,SAAS,CAAC;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgB,mBAAmB,gBAAGtB,UAAU,CAAsC,CAACuB,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;IAAEC,gBAAgB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAE3C,MAAM;IAAEI,gBAAgB;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGtB,sBAAsB,CAAC,CAAC;EAEpF,MAAMuB,qBAAqB,GAAGtB,kCAAkC,CAAEuB,OAAO,IAAK;IAC5E,SAAS;;IAET,IAAIA,OAAO,CAACC,QAAQ,EAAE;MACpB;MACAL,gBAAgB,CAACM,KAAK,GAAGF,OAAO,CAACG,QAAQ;MACzCN,aAAa,CAACK,KAAK,GAAGF,OAAO,CAACI,KAAK;MACnCN,cAAc,CAACI,KAAK,GAAGF,OAAO,CAACK,MAAM;IACvC,CAAC,MAAM;MACL;MACA,IAAI/B,QAAQ,CAACgC,EAAE,KAAK,SAAS,EAAE;QAC7BV,gBAAgB,CAACM,KAAK,GAAG9B,UAAU,CAAC4B,OAAO,CAACG,QAAQ,EAAElB,aAAa,CAAC;QACpEY,aAAa,CAACK,KAAK,GAAG9B,UAAU,CAAC4B,OAAO,CAACI,KAAK,EAAEnB,aAAa,CAAC;QAC9Da,cAAc,CAACI,KAAK,GAAG9B,UAAU,CAAC4B,OAAO,CAACK,MAAM,EAAEpB,aAAa,CAAC;MAClE,CAAC,MAAM;QACLW,gBAAgB,CAACM,KAAK,GAAG/B,UAAU,CAAC6B,OAAO,CAACG,QAAQ,EAAEvB,aAAa,CAAC;QACpEiB,aAAa,CAACK,KAAK,GAAG/B,UAAU,CAAC6B,OAAO,CAACI,KAAK,EAAExB,aAAa,CAAC;QAC9DkB,cAAc,CAACI,KAAK,GAAG/B,UAAU,CAAC6B,OAAO,CAACK,MAAM,EAAEzB,aAAa,CAAC;MAClE;IACF;IAEAc,gBAAgB,GAAG;MAAEa,WAAW,EAAEP;IAAQ,CAAwB,CAAC;EACrE,CAAC,CAAC;EAEF,oBAAOrB,IAAA,CAACU,iBAAiB;IAACI,GAAG,EAAEA,GAAI;IAACC,gBAAgB,EAAEK,qBAAsB;IAAA,GAAKJ;EAAI,CAAG,CAAC;AAC3F,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useEffect } from 'react';
4
+ import { useWindowDimensions } from 'react-native';
5
+ import { TrueSheet } from '../TrueSheet';
6
+ import { useReanimatedTrueSheet } from "./ReanimatedTrueSheetProvider.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ /**
9
+ * Reanimated-enabled version of TrueSheet for web that automatically syncs
10
+ * position with the provider's shared value.
11
+ * Must be used within a ReanimatedTrueSheetProvider.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { ReanimatedTrueSheet, ReanimatedTrueSheetProvider } from '@lodev09/react-native-true-sheet/reanimated'
16
+ *
17
+ * function MyScreen() {
18
+ * const sheetRef = useRef<TrueSheet>(null)
19
+ *
20
+ * return (
21
+ * <ReanimatedTrueSheetProvider>
22
+ * <View>
23
+ * <ReanimatedTrueSheet
24
+ * ref={sheetRef}
25
+ * detents={[0.25, 0.5, 1]}
26
+ * initialDetentIndex={1}
27
+ * >
28
+ * <Text>Sheet Content</Text>
29
+ * </ReanimatedTrueSheet>
30
+ * </View>
31
+ * </ReanimatedTrueSheetProvider>
32
+ * )
33
+ * }
34
+ * ```
35
+ */
36
+ export const ReanimatedTrueSheet = /*#__PURE__*/forwardRef((props, ref) => {
37
+ const {
38
+ onPositionChange,
39
+ detents = [0.5, 1],
40
+ ...rest
41
+ } = props;
42
+ const {
43
+ height: windowHeight
44
+ } = useWindowDimensions();
45
+ const {
46
+ animatedPosition,
47
+ animatedIndex,
48
+ animatedDetent
49
+ } = useReanimatedTrueSheet();
50
+
51
+ // Reset animated values when component unmounts
52
+ useEffect(() => {
53
+ return () => {
54
+ animatedPosition.value = windowHeight;
55
+ animatedIndex.value = -1;
56
+ animatedDetent.value = 0;
57
+ };
58
+ }, [windowHeight]);
59
+ const handlePositionChange = event => {
60
+ const {
61
+ position,
62
+ index,
63
+ detent
64
+ } = event.nativeEvent;
65
+
66
+ // Sync with provider's shared values
67
+ animatedPosition.value = position;
68
+ animatedIndex.value = index;
69
+ animatedDetent.value = detent;
70
+
71
+ // Call user's callback
72
+ onPositionChange?.(event);
73
+ };
74
+ return /*#__PURE__*/_jsx(TrueSheet, {
75
+ ref: ref,
76
+ detents: detents,
77
+ onPositionChange: handlePositionChange,
78
+ ...rest
79
+ });
80
+ });
81
+ //# sourceMappingURL=ReanimatedTrueSheet.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useEffect","useWindowDimensions","TrueSheet","useReanimatedTrueSheet","jsx","_jsx","ReanimatedTrueSheet","props","ref","onPositionChange","detents","rest","height","windowHeight","animatedPosition","animatedIndex","animatedDetent","value","handlePositionChange","event","position","index","detent","nativeEvent"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheet.web.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,SAAS,QAAQ,OAAO;AAC7C,SAASC,mBAAmB,QAAQ,cAAc;AAElD,SAASC,SAAS,QAAQ,cAAc;AAExC,SAASC,sBAAsB,QAAQ,kCAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAWvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,gBAAGP,UAAU,CAAsC,CAACQ,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;IAAEC,gBAAgB;IAAEC,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,GAAGC;EAAK,CAAC,GAAGJ,KAAK;EAC/D,MAAM;IAAEK,MAAM,EAAEC;EAAa,CAAC,GAAGZ,mBAAmB,CAAC,CAAC;EAEtD,MAAM;IAAEa,gBAAgB;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGb,sBAAsB,CAAC,CAAC;;EAEpF;EACAH,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXc,gBAAgB,CAACG,KAAK,GAAGJ,YAAY;MACrCE,aAAa,CAACE,KAAK,GAAG,CAAC,CAAC;MACxBD,cAAc,CAACC,KAAK,GAAG,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,CAACJ,YAAY,CAAC,CAAC;EAElB,MAAMK,oBAAoB,GAAIC,KAA0B,IAAK;IAC3D,MAAM;MAAEC,QAAQ;MAAEC,KAAK;MAAEC;IAAO,CAAC,GAAGH,KAAK,CAACI,WAAW;;IAErD;IACAT,gBAAgB,CAACG,KAAK,GAAGG,QAAQ;IACjCL,aAAa,CAACE,KAAK,GAAGI,KAAK;IAC3BL,cAAc,CAACC,KAAK,GAAGK,MAAM;;IAE7B;IACAb,gBAAgB,GAAGU,KAAK,CAAC;EAC3B,CAAC;EAED,oBACEd,IAAA,CAACH,SAAS;IAACM,GAAG,EAAEA,GAAI;IAACE,OAAO,EAAEA,OAAQ;IAACD,gBAAgB,EAAES,oBAAqB;IAAA,GAAKP;EAAI,CAAG,CAAC;AAE/F,CAAC,CAAC","ignoreList":[]}
@@ -30,10 +30,12 @@ export const ReanimatedTrueSheetProvider = ({
30
30
  } = useWindowDimensions();
31
31
  const animatedPosition = useSharedValue(height);
32
32
  const animatedIndex = useSharedValue(-1);
33
+ const animatedDetent = useSharedValue(0);
33
34
  const value = useMemo(() => ({
34
35
  animatedPosition,
35
- animatedIndex
36
- }), [animatedPosition, animatedIndex]);
36
+ animatedIndex,
37
+ animatedDetent
38
+ }), [animatedPosition, animatedIndex, animatedDetent]);
37
39
  return /*#__PURE__*/_jsx(ReanimatedTrueSheetContext.Provider, {
38
40
  value: value,
39
41
  children: children
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useMemo","useWindowDimensions","useSharedValue","jsx","_jsx","ReanimatedTrueSheetContext","ReanimatedTrueSheetProvider","children","height","animatedPosition","animatedIndex","value","Provider","useReanimatedTrueSheet","context","Error"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheetProvider.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAwB,OAAO;AAC1E,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAASC,cAAc,QAA0B,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAa3E,MAAMC,0BAA0B,gBAAGP,aAAa,CAAyC,IAAI,CAAC;AAM9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMQ,2BAA2B,GAAGA,CAAC;EAAEC;AAA2C,CAAC,KAAK;EAC7F,MAAM;IAAEC;EAAO,CAAC,GAAGP,mBAAmB,CAAC,CAAC;EACxC,MAAMQ,gBAAgB,GAAGP,cAAc,CAACM,MAAM,CAAC;EAC/C,MAAME,aAAa,GAAGR,cAAc,CAAC,CAAC,CAAC,CAAC;EAExC,MAAMS,KAAK,GAAGX,OAAO,CACnB,OAAO;IACLS,gBAAgB;IAChBC;EACF,CAAC,CAAC,EACF,CAACD,gBAAgB,EAAEC,aAAa,CAClC,CAAC;EAED,oBACEN,IAAA,CAACC,0BAA0B,CAACO,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAJ,QAAA,EAC/CA;EAAQ,CAC0B,CAAC;AAE1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMM,sBAAsB,GAAGA,CAAA,KAAuC;EAC3E,MAAMC,OAAO,GAAGf,UAAU,CAACM,0BAA0B,CAAC;EAEtD,IAAI,CAACS,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,4EAA4E,GAC1E,2EACJ,CAAC;EACH;EAEA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useMemo","useWindowDimensions","useSharedValue","jsx","_jsx","ReanimatedTrueSheetContext","ReanimatedTrueSheetProvider","children","height","animatedPosition","animatedIndex","animatedDetent","value","Provider","useReanimatedTrueSheet","context","Error"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheetProvider.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAwB,OAAO;AAC1E,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAASC,cAAc,QAA0B,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAmB3E,MAAMC,0BAA0B,gBAAGP,aAAa,CAAyC,IAAI,CAAC;AAM9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMQ,2BAA2B,GAAGA,CAAC;EAAEC;AAA2C,CAAC,KAAK;EAC7F,MAAM;IAAEC;EAAO,CAAC,GAAGP,mBAAmB,CAAC,CAAC;EACxC,MAAMQ,gBAAgB,GAAGP,cAAc,CAACM,MAAM,CAAC;EAC/C,MAAME,aAAa,GAAGR,cAAc,CAAC,CAAC,CAAC,CAAC;EACxC,MAAMS,cAAc,GAAGT,cAAc,CAAC,CAAC,CAAC;EAExC,MAAMU,KAAK,GAAGZ,OAAO,CACnB,OAAO;IAAES,gBAAgB;IAAEC,aAAa;IAAEC;EAAe,CAAC,CAAC,EAC3D,CAACF,gBAAgB,EAAEC,aAAa,EAAEC,cAAc,CAClD,CAAC;EAED,oBACEP,IAAA,CAACC,0BAA0B,CAACQ,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAL,QAAA,EAC/CA;EAAQ,CAC0B,CAAC;AAE1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,sBAAsB,GAAGA,CAAA,KAAuC;EAC3E,MAAMC,OAAO,GAAGhB,UAAU,CAACM,0BAA0B,CAAC;EAEtD,IAAI,CAACU,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,4EAA4E,GAC1E,2EACJ,CAAC;EACH;EAEA,OAAOD,OAAO;AAChB,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- export * from "./ReanimatedTrueSheet.js";
3
+ export * from './ReanimatedTrueSheet';
4
4
  export * from "./ReanimatedTrueSheetProvider.js";
5
- export * from "./useReanimatedPositionChangeHandler.js";
5
+ export * from './useReanimatedPositionChangeHandler';
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["reanimated/index.ts"],"mappings":";;AAAA,cAAc,0BAAuB;AACrC,cAAc,kCAA+B;AAC7C,cAAc,yCAAsC","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["reanimated/index.ts"],"mappings":";;AAAA,cAAc,uBAAuB;AACrC,cAAc,kCAA+B;AAC7C,cAAc,sCAAsC","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ import { useCallback } from 'react';
4
+ /**
5
+ * Web implementation of useReanimatedPositionChangeHandler.
6
+ *
7
+ * Returns a simple callback wrapper. The worklet directive is ignored on web
8
+ * since there's no native UI thread.
9
+ *
10
+ * @param handler - The position change handler function
11
+ * @param _dependencies - Unused on web, kept for API compatibility
12
+ * @returns An event handler compatible with onPositionChange prop
13
+ */
14
+ export const useReanimatedPositionChangeHandler = (handler, _dependencies = []) => {
15
+ const context = {};
16
+ return useCallback(event => {
17
+ handler(event.nativeEvent, context);
18
+ }, [handler]);
19
+ };
20
+ //# sourceMappingURL=useReanimatedPositionChangeHandler.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useReanimatedPositionChangeHandler","handler","_dependencies","context","event","nativeEvent"],"sourceRoot":"../../../src","sources":["reanimated/useReanimatedPositionChangeHandler.web.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAQnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,kCAAkC,GAAGA,CAChDC,OAA8B,EAC9BC,aAAwB,GAAG,EAAE,KAC1B;EACH,MAAMC,OAAgC,GAAG,CAAC,CAAC;EAE3C,OAAOJ,WAAW,CACfK,KAA0B,IAAK;IAC9BH,OAAO,CAACG,KAAK,CAACC,WAAW,EAAEF,OAAO,CAAC;EACrC,CAAC,EACD,CAACF,OAAO,CACV,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeTrueSheetModule.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,mBAAmB,QAAQ,cAAc;AA6BlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,iBAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeTrueSheetModule.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,mBAAmB,QAAQ,cAAc;AAsDlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,iBAAiB,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ export const DEFAULT_CORNER_RADIUS = 16;
4
+ export const DEFAULT_MAX_WIDTH = 640;
5
+ export const DEFAULT_FORM_SHEET_WIDTH = 580;
6
+ export const DEFAULT_FORM_SHEET_HEIGHT_RATIO = 0.5;
7
+ export const COLOR_SURFACE_CONTAINER_LOW_LIGHT = '#F7F2FA';
8
+ export const COLOR_SURFACE_CONTAINER_LOW_DARK = '#1D1B20';
9
+ export const DEFAULT_ANCHOR_OFFSET = 16;
10
+ export const DEFAULT_DETACHED_OFFSET = 16;
11
+ export const DEFAULT_GRABBER_COLOR_LIGHT = 'rgba(0, 0, 0, 0.3)';
12
+ export const DEFAULT_GRABBER_COLOR_DARK = 'rgba(255, 255, 255, 0.3)';
13
+ export const DEFAULT_GRABBER_WIDTH = 32;
14
+ export const DEFAULT_GRABBER_HEIGHT = 4;
15
+ export const DEFAULT_GRABBER_TOP_MARGIN = 8;
16
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_CORNER_RADIUS","DEFAULT_MAX_WIDTH","DEFAULT_FORM_SHEET_WIDTH","DEFAULT_FORM_SHEET_HEIGHT_RATIO","COLOR_SURFACE_CONTAINER_LOW_LIGHT","COLOR_SURFACE_CONTAINER_LOW_DARK","DEFAULT_ANCHOR_OFFSET","DEFAULT_DETACHED_OFFSET","DEFAULT_GRABBER_COLOR_LIGHT","DEFAULT_GRABBER_COLOR_DARK","DEFAULT_GRABBER_WIDTH","DEFAULT_GRABBER_HEIGHT","DEFAULT_GRABBER_TOP_MARGIN"],"sourceRoot":"../../../src","sources":["web/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,qBAAqB,GAAG,EAAE;AACvC,OAAO,MAAMC,iBAAiB,GAAG,GAAG;AACpC,OAAO,MAAMC,wBAAwB,GAAG,GAAG;AAC3C,OAAO,MAAMC,+BAA+B,GAAG,GAAG;AAClD,OAAO,MAAMC,iCAAiC,GAAG,SAAS;AAC1D,OAAO,MAAMC,gCAAgC,GAAG,SAAS;AACzD,OAAO,MAAMC,qBAAqB,GAAG,EAAE;AACvC,OAAO,MAAMC,uBAAuB,GAAG,EAAE;AACzC,OAAO,MAAMC,2BAA2B,GAAG,oBAAoB;AAC/D,OAAO,MAAMC,0BAA0B,GAAG,0BAA0B;AACpE,OAAO,MAAMC,qBAAqB,GAAG,EAAE;AACvC,OAAO,MAAMC,sBAAsB,GAAG,CAAC;AACvC,OAAO,MAAMC,0BAA0B,GAAG,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ /// <reference lib="dom" />
4
+
5
+ /**
6
+ * Resolves a React Native web `View` ref value to its underlying DOM element —
7
+ * RN-web refs expose the host DOM node directly.
8
+ */
9
+ export const getDOMElement = view => view instanceof HTMLElement ? view : null;
10
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getDOMElement","view","HTMLElement"],"sourceRoot":"../../../src","sources":["web/dom.ts"],"mappings":";;AAAA;;AAGA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAIC,IAAiB,IAC7CA,IAAI,YAAYC,WAAW,GAAGD,IAAI,GAAG,IAAI","ignoreList":[]}