@lodev09/react-native-true-sheet 4.0.0-beta.0 → 4.0.0-beta.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 (367) 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 +150 -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 +1217 -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/ViewUtils.kt +30 -0
  37. package/android/src/main/jni/CMakeLists.txt +63 -0
  38. package/android/src/main/jni/TrueSheetSpec.h +19 -0
  39. package/android/src/main/jni/TrueSheetStateUpdater.cpp +96 -0
  40. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewComponentDescriptor.h +24 -0
  41. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.cpp +43 -0
  42. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.h +28 -0
  43. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.cpp +11 -0
  44. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.h +37 -0
  45. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewComponentDescriptor.h +24 -0
  46. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +56 -0
  47. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.h +28 -0
  48. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.cpp +11 -0
  49. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.h +41 -0
  50. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.cpp +18 -0
  51. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.h +16 -0
  52. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewComponentDescriptor.h +28 -0
  53. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.cpp +61 -0
  54. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.h +45 -0
  55. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.cpp +23 -0
  56. package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.h +52 -0
  57. package/ios/TrueSheetContainerView.h +81 -6
  58. package/ios/TrueSheetContainerView.mm +275 -21
  59. package/ios/TrueSheetContentView.h +38 -1
  60. package/ios/TrueSheetContentView.mm +413 -43
  61. package/ios/TrueSheetFooterView.h +27 -2
  62. package/ios/TrueSheetFooterView.mm +141 -35
  63. package/ios/{events/OnDidDismissEvent.h → TrueSheetHeaderView.h} +10 -7
  64. package/ios/TrueSheetHeaderView.mm +64 -0
  65. package/ios/TrueSheetModule.mm +92 -5
  66. package/ios/TrueSheetPeekView.h +32 -0
  67. package/ios/TrueSheetPeekView.mm +99 -0
  68. package/ios/TrueSheetView.h +7 -15
  69. package/ios/TrueSheetView.mm +633 -215
  70. package/ios/TrueSheetViewController.h +84 -16
  71. package/ios/TrueSheetViewController.mm +1136 -333
  72. package/ios/core/RNScreensEventObserver.h +46 -0
  73. package/ios/core/RNScreensEventObserver.mm +280 -0
  74. package/ios/core/TrueSheetBlurView.h +27 -0
  75. package/ios/core/TrueSheetBlurView.mm +82 -0
  76. package/ios/core/TrueSheetDetentCalculator.h +107 -0
  77. package/ios/core/TrueSheetDetentCalculator.mm +197 -0
  78. package/ios/core/TrueSheetGrabberView.h +72 -0
  79. package/ios/core/TrueSheetGrabberView.mm +178 -0
  80. package/ios/core/TrueSheetKeyboardObserver.h +39 -0
  81. package/ios/core/TrueSheetKeyboardObserver.mm +112 -0
  82. package/ios/events/TrueSheetDragEvents.h +39 -0
  83. package/ios/events/TrueSheetDragEvents.mm +62 -0
  84. package/ios/events/{OnPositionChangeEvent.h → TrueSheetFocusEvents.h} +8 -5
  85. package/ios/events/TrueSheetFocusEvents.mm +49 -0
  86. package/ios/events/TrueSheetLifecycleEvents.h +40 -0
  87. package/ios/events/TrueSheetLifecycleEvents.mm +71 -0
  88. package/ios/events/TrueSheetStateEvents.h +35 -0
  89. package/ios/events/TrueSheetStateEvents.mm +49 -0
  90. package/ios/tvos/TrueSheetStubs.mm +154 -0
  91. package/ios/{events/OnMountEvent.h → utils/BlurUtil.h} +5 -7
  92. package/ios/utils/BlurUtil.mm +69 -0
  93. package/ios/utils/GestureUtil.h +7 -0
  94. package/ios/utils/GestureUtil.mm +12 -0
  95. package/ios/utils/PlatformUtil.h +15 -0
  96. package/ios/utils/UIView+FirstResponder.h +15 -0
  97. package/ios/utils/UIView+FirstResponder.mm +26 -0
  98. package/ios/{events/OnWillDismissEvent.h → utils/UIView+ScrollEdgeInteraction.h} +6 -7
  99. package/ios/utils/UIView+ScrollEdgeInteraction.mm +62 -0
  100. package/ios/utils/WindowUtil.mm +17 -1
  101. package/lib/module/TrueSheet.js +224 -64
  102. package/lib/module/TrueSheet.js.map +1 -1
  103. package/lib/module/TrueSheet.web.js +1201 -0
  104. package/lib/module/TrueSheet.web.js.map +1 -0
  105. package/lib/module/TrueSheetPeek.js +15 -0
  106. package/lib/module/TrueSheetPeek.js.map +1 -0
  107. package/lib/module/TrueSheetPeek.web.js +55 -0
  108. package/lib/module/TrueSheetPeek.web.js.map +1 -0
  109. package/lib/module/TrueSheetProvider.js +28 -0
  110. package/lib/module/TrueSheetProvider.js.map +1 -0
  111. package/lib/module/TrueSheetProvider.web.js +157 -0
  112. package/lib/module/TrueSheetProvider.web.js.map +1 -0
  113. package/lib/module/fabric/TrueSheetContainerViewNativeComponent.ts +1 -1
  114. package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +5 -1
  115. package/lib/module/fabric/TrueSheetFooterViewNativeComponent.ts +10 -2
  116. package/lib/module/fabric/TrueSheetHeaderViewNativeComponent.ts +8 -0
  117. package/lib/module/fabric/TrueSheetPeekViewNativeComponent.ts +8 -0
  118. package/lib/module/fabric/TrueSheetViewNativeComponent.ts +105 -18
  119. package/lib/module/index.js +3 -3
  120. package/lib/module/index.js.map +1 -1
  121. package/lib/module/mocks/index.js +93 -0
  122. package/lib/module/mocks/index.js.map +1 -0
  123. package/lib/module/mocks/navigation.js +85 -0
  124. package/lib/module/mocks/navigation.js.map +1 -0
  125. package/lib/module/mocks/reanimated.js +91 -0
  126. package/lib/module/mocks/reanimated.js.map +1 -0
  127. package/lib/module/navigation/TrueSheetRouter.js +170 -0
  128. package/lib/module/navigation/TrueSheetRouter.js.map +1 -0
  129. package/lib/module/navigation/TrueSheetView.js +71 -0
  130. package/lib/module/navigation/TrueSheetView.js.map +1 -0
  131. package/lib/module/navigation/createTrueSheetNavigator.js +63 -0
  132. package/lib/module/navigation/createTrueSheetNavigator.js.map +1 -0
  133. package/lib/module/navigation/index.js +6 -0
  134. package/lib/module/navigation/index.js.map +1 -0
  135. package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js +56 -0
  136. package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js.map +1 -0
  137. package/lib/module/navigation/screen/TrueSheetScreen.js +49 -0
  138. package/lib/module/navigation/screen/TrueSheetScreen.js.map +1 -0
  139. package/lib/module/navigation/screen/index.js +5 -0
  140. package/lib/module/navigation/screen/index.js.map +1 -0
  141. package/lib/module/navigation/screen/types.js +4 -0
  142. package/lib/module/navigation/screen/types.js.map +1 -0
  143. package/lib/module/navigation/screen/useSheetScreenState.js +68 -0
  144. package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -0
  145. package/lib/module/navigation/types.js +4 -0
  146. package/lib/module/navigation/types.js.map +1 -0
  147. package/lib/module/navigation/useTrueSheetNavigation.js +24 -0
  148. package/lib/module/navigation/useTrueSheetNavigation.js.map +1 -0
  149. package/lib/module/reanimated/ReanimatedTrueSheet.js +15 -9
  150. package/lib/module/reanimated/ReanimatedTrueSheet.js.map +1 -1
  151. package/lib/module/reanimated/ReanimatedTrueSheet.web.js +81 -0
  152. package/lib/module/reanimated/ReanimatedTrueSheet.web.js.map +1 -0
  153. package/lib/module/reanimated/ReanimatedTrueSheetProvider.js +4 -2
  154. package/lib/module/reanimated/ReanimatedTrueSheetProvider.js.map +1 -1
  155. package/lib/module/reanimated/index.js +2 -2
  156. package/lib/module/reanimated/index.js.map +1 -1
  157. package/lib/module/reanimated/useReanimatedPositionChangeHandler.web.js +20 -0
  158. package/lib/module/reanimated/useReanimatedPositionChangeHandler.web.js.map +1 -0
  159. package/lib/module/specs/NativeTrueSheetModule.js.map +1 -1
  160. package/lib/module/web/constants.js +16 -0
  161. package/lib/module/web/constants.js.map +1 -0
  162. package/lib/module/web/vaul/README.md +9 -0
  163. package/lib/module/web/vaul/browser.js +30 -0
  164. package/lib/module/web/vaul/browser.js.map +1 -0
  165. package/lib/module/web/vaul/constants.js +15 -0
  166. package/lib/module/web/vaul/constants.js.map +1 -0
  167. package/lib/module/web/vaul/context.js +59 -0
  168. package/lib/module/web/vaul/context.js.map +1 -0
  169. package/lib/module/web/vaul/helpers.js +93 -0
  170. package/lib/module/web/vaul/helpers.js.map +1 -0
  171. package/lib/module/web/vaul/index.js +1309 -0
  172. package/lib/module/web/vaul/index.js.map +1 -0
  173. package/lib/module/web/vaul/style.css +287 -0
  174. package/lib/module/web/vaul/style.css.d.js +2 -0
  175. package/lib/module/web/vaul/style.css.d.js.map +1 -0
  176. package/lib/module/web/vaul/types.js +2 -0
  177. package/lib/module/web/vaul/types.js.map +1 -0
  178. package/lib/module/web/vaul/use-composed-refs.js +34 -0
  179. package/lib/module/web/vaul/use-composed-refs.js.map +1 -0
  180. package/lib/module/web/vaul/use-controllable-state.js +54 -0
  181. package/lib/module/web/vaul/use-controllable-state.js.map +1 -0
  182. package/lib/module/web/vaul/use-position-fixed.js +123 -0
  183. package/lib/module/web/vaul/use-position-fixed.js.map +1 -0
  184. package/lib/module/web/vaul/use-prevent-scroll.js +258 -0
  185. package/lib/module/web/vaul/use-prevent-scroll.js.map +1 -0
  186. package/lib/module/web/vaul/use-scale-background.js +57 -0
  187. package/lib/module/web/vaul/use-scale-background.js.map +1 -0
  188. package/lib/module/web/vaul/use-snap-points.js +305 -0
  189. package/lib/module/web/vaul/use-snap-points.js.map +1 -0
  190. package/lib/typescript/src/TrueSheet.d.ts +51 -14
  191. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  192. package/lib/typescript/src/TrueSheet.types.d.ts +463 -54
  193. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
  194. package/lib/typescript/src/TrueSheet.web.d.ts +5 -0
  195. package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -0
  196. package/lib/typescript/src/TrueSheetPeek.d.ts +9 -0
  197. package/lib/typescript/src/TrueSheetPeek.d.ts.map +1 -0
  198. package/lib/typescript/src/TrueSheetPeek.web.d.ts +28 -0
  199. package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -0
  200. package/lib/typescript/src/TrueSheetProvider.d.ts +18 -0
  201. package/lib/typescript/src/TrueSheetProvider.d.ts.map +1 -0
  202. package/lib/typescript/src/TrueSheetProvider.web.d.ts +27 -0
  203. package/lib/typescript/src/TrueSheetProvider.web.d.ts.map +1 -0
  204. package/lib/typescript/src/fabric/TrueSheetContainerViewNativeComponent.d.ts.map +1 -1
  205. package/lib/typescript/src/fabric/TrueSheetContentViewNativeComponent.d.ts.map +1 -1
  206. package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts +2 -0
  207. package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts.map +1 -1
  208. package/lib/typescript/src/fabric/TrueSheetHeaderViewNativeComponent.d.ts +6 -0
  209. package/lib/typescript/src/fabric/TrueSheetHeaderViewNativeComponent.d.ts.map +1 -0
  210. package/lib/typescript/src/fabric/TrueSheetPeekViewNativeComponent.d.ts +6 -0
  211. package/lib/typescript/src/fabric/TrueSheetPeekViewNativeComponent.d.ts.map +1 -0
  212. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +67 -16
  213. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
  214. package/lib/typescript/src/index.d.ts +2 -2
  215. package/lib/typescript/src/index.d.ts.map +1 -1
  216. package/lib/typescript/src/mocks/index.d.ts +43 -0
  217. package/lib/typescript/src/mocks/index.d.ts.map +1 -0
  218. package/lib/typescript/src/mocks/navigation.d.ts +66 -0
  219. package/lib/typescript/src/mocks/navigation.d.ts.map +1 -0
  220. package/lib/typescript/src/mocks/reanimated.d.ts +48 -0
  221. package/lib/typescript/src/mocks/reanimated.d.ts.map +1 -0
  222. package/lib/typescript/src/navigation/TrueSheetRouter.d.ts +57 -0
  223. package/lib/typescript/src/navigation/TrueSheetRouter.d.ts.map +1 -0
  224. package/lib/typescript/src/navigation/TrueSheetView.d.ts +10 -0
  225. package/lib/typescript/src/navigation/TrueSheetView.d.ts.map +1 -0
  226. package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts +35 -0
  227. package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts.map +1 -0
  228. package/lib/typescript/src/navigation/index.d.ts +6 -0
  229. package/lib/typescript/src/navigation/index.d.ts.map +1 -0
  230. package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts +3 -0
  231. package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts.map +1 -0
  232. package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts +3 -0
  233. package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts.map +1 -0
  234. package/lib/typescript/src/navigation/screen/index.d.ts +4 -0
  235. package/lib/typescript/src/navigation/screen/index.d.ts.map +1 -0
  236. package/lib/typescript/src/navigation/screen/types.d.ts +15 -0
  237. package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -0
  238. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +35 -0
  239. package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -0
  240. package/lib/typescript/src/navigation/types.d.ts +153 -0
  241. package/lib/typescript/src/navigation/types.d.ts.map +1 -0
  242. package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts +23 -0
  243. package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts.map +1 -0
  244. package/lib/typescript/src/reanimated/ReanimatedTrueSheet.d.ts.map +1 -1
  245. package/lib/typescript/src/reanimated/ReanimatedTrueSheet.web.d.ts +41 -0
  246. package/lib/typescript/src/reanimated/ReanimatedTrueSheet.web.d.ts.map +1 -0
  247. package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts +8 -2
  248. package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts.map +1 -1
  249. package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.web.d.ts +15 -0
  250. package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.web.d.ts.map +1 -0
  251. package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts +25 -3
  252. package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts.map +1 -1
  253. package/lib/typescript/src/web/constants.d.ts +14 -0
  254. package/lib/typescript/src/web/constants.d.ts.map +1 -0
  255. package/lib/typescript/src/web/vaul/browser.d.ts +8 -0
  256. package/lib/typescript/src/web/vaul/browser.d.ts.map +1 -0
  257. package/lib/typescript/src/web/vaul/constants.d.ts +13 -0
  258. package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -0
  259. package/lib/typescript/src/web/vaul/context.d.ts +53 -0
  260. package/lib/typescript/src/web/vaul/context.d.ts.map +1 -0
  261. package/lib/typescript/src/web/vaul/helpers.d.ts +17 -0
  262. package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -0
  263. package/lib/typescript/src/web/vaul/index.d.ts +228 -0
  264. package/lib/typescript/src/web/vaul/index.d.ts.map +1 -0
  265. package/lib/typescript/src/web/vaul/types.d.ts +7 -0
  266. package/lib/typescript/src/web/vaul/types.d.ts.map +1 -0
  267. package/lib/typescript/src/web/vaul/use-composed-refs.d.ts +14 -0
  268. package/lib/typescript/src/web/vaul/use-composed-refs.d.ts.map +1 -0
  269. package/lib/typescript/src/web/vaul/use-controllable-state.d.ts +9 -0
  270. package/lib/typescript/src/web/vaul/use-controllable-state.d.ts.map +1 -0
  271. package/lib/typescript/src/web/vaul/use-position-fixed.d.ts +19 -0
  272. package/lib/typescript/src/web/vaul/use-position-fixed.d.ts.map +1 -0
  273. package/lib/typescript/src/web/vaul/use-prevent-scroll.d.ts +18 -0
  274. package/lib/typescript/src/web/vaul/use-prevent-scroll.d.ts.map +1 -0
  275. package/lib/typescript/src/web/vaul/use-scale-background.d.ts +2 -0
  276. package/lib/typescript/src/web/vaul/use-scale-background.d.ts.map +1 -0
  277. package/lib/typescript/src/web/vaul/use-snap-points.d.ts +38 -0
  278. package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -0
  279. package/package.json +78 -34
  280. package/react-native.config.js +9 -2
  281. package/src/TrueSheet.tsx +276 -60
  282. package/src/TrueSheet.types.ts +525 -71
  283. package/src/TrueSheet.web.tsx +1366 -0
  284. package/src/TrueSheetPeek.tsx +11 -0
  285. package/src/TrueSheetPeek.web.tsx +63 -0
  286. package/src/TrueSheetProvider.tsx +33 -0
  287. package/src/TrueSheetProvider.web.tsx +220 -0
  288. package/src/fabric/TrueSheetContainerViewNativeComponent.ts +1 -1
  289. package/src/fabric/TrueSheetContentViewNativeComponent.ts +5 -1
  290. package/src/fabric/TrueSheetFooterViewNativeComponent.ts +10 -2
  291. package/src/fabric/TrueSheetHeaderViewNativeComponent.ts +8 -0
  292. package/src/fabric/TrueSheetPeekViewNativeComponent.ts +8 -0
  293. package/src/fabric/TrueSheetViewNativeComponent.ts +105 -18
  294. package/src/index.ts +2 -2
  295. package/src/mocks/index.ts +89 -0
  296. package/src/mocks/navigation.ts +72 -0
  297. package/src/mocks/reanimated.ts +101 -0
  298. package/src/navigation/TrueSheetRouter.ts +234 -0
  299. package/src/navigation/TrueSheetView.tsx +99 -0
  300. package/src/navigation/createTrueSheetNavigator.tsx +93 -0
  301. package/src/navigation/index.ts +14 -0
  302. package/src/navigation/screen/ReanimatedTrueSheetScreen.tsx +61 -0
  303. package/src/navigation/screen/TrueSheetScreen.tsx +54 -0
  304. package/src/navigation/screen/index.ts +3 -0
  305. package/src/navigation/screen/types.ts +21 -0
  306. package/src/navigation/screen/useSheetScreenState.ts +107 -0
  307. package/src/navigation/types.ts +219 -0
  308. package/src/navigation/useTrueSheetNavigation.ts +26 -0
  309. package/src/reanimated/ReanimatedTrueSheet.tsx +12 -7
  310. package/src/reanimated/ReanimatedTrueSheet.web.tsx +75 -0
  311. package/src/reanimated/ReanimatedTrueSheetProvider.tsx +12 -8
  312. package/src/reanimated/useReanimatedPositionChangeHandler.web.ts +31 -0
  313. package/src/specs/NativeTrueSheetModule.ts +28 -3
  314. package/src/web/constants.ts +13 -0
  315. package/src/web/vaul/README.md +9 -0
  316. package/src/web/vaul/browser.ts +38 -0
  317. package/src/web/vaul/constants.ts +20 -0
  318. package/src/web/vaul/context.ts +101 -0
  319. package/src/web/vaul/helpers.ts +124 -0
  320. package/src/web/vaul/index.tsx +1740 -0
  321. package/src/web/vaul/style.css +287 -0
  322. package/src/web/vaul/style.css.d.ts +1 -0
  323. package/src/web/vaul/types.ts +7 -0
  324. package/src/web/vaul/use-composed-refs.ts +35 -0
  325. package/src/web/vaul/use-controllable-state.ts +66 -0
  326. package/src/web/vaul/use-position-fixed.ts +147 -0
  327. package/src/web/vaul/use-prevent-scroll.ts +309 -0
  328. package/src/web/vaul/use-scale-background.ts +64 -0
  329. package/src/web/vaul/use-snap-points.ts +455 -0
  330. package/android/src/main/java/com/lodev09/truesheet/events/DetentChangeEvent.kt +0 -26
  331. package/android/src/main/java/com/lodev09/truesheet/events/DidDismissEvent.kt +0 -20
  332. package/android/src/main/java/com/lodev09/truesheet/events/DidPresentEvent.kt +0 -26
  333. package/android/src/main/java/com/lodev09/truesheet/events/DragBeginEvent.kt +0 -26
  334. package/android/src/main/java/com/lodev09/truesheet/events/DragChangeEvent.kt +0 -26
  335. package/android/src/main/java/com/lodev09/truesheet/events/DragEndEvent.kt +0 -26
  336. package/android/src/main/java/com/lodev09/truesheet/events/MountEvent.kt +0 -20
  337. package/android/src/main/java/com/lodev09/truesheet/events/PositionChangeEvent.kt +0 -32
  338. package/android/src/main/java/com/lodev09/truesheet/events/SizeChangeEvent.kt +0 -27
  339. package/android/src/main/java/com/lodev09/truesheet/events/WillDismissEvent.kt +0 -20
  340. package/android/src/main/java/com/lodev09/truesheet/events/WillPresentEvent.kt +0 -26
  341. package/android/src/main/res/values/styles.xml +0 -8
  342. package/ios/events/OnDetentChangeEvent.h +0 -28
  343. package/ios/events/OnDetentChangeEvent.mm +0 -30
  344. package/ios/events/OnDidDismissEvent.mm +0 -25
  345. package/ios/events/OnDidPresentEvent.h +0 -28
  346. package/ios/events/OnDidPresentEvent.mm +0 -30
  347. package/ios/events/OnDragBeginEvent.h +0 -28
  348. package/ios/events/OnDragBeginEvent.mm +0 -30
  349. package/ios/events/OnDragChangeEvent.h +0 -28
  350. package/ios/events/OnDragChangeEvent.mm +0 -30
  351. package/ios/events/OnDragEndEvent.h +0 -28
  352. package/ios/events/OnDragEndEvent.mm +0 -30
  353. package/ios/events/OnMountEvent.mm +0 -25
  354. package/ios/events/OnPositionChangeEvent.mm +0 -32
  355. package/ios/events/OnSizeChangeEvent.h +0 -28
  356. package/ios/events/OnSizeChangeEvent.mm +0 -30
  357. package/ios/events/OnWillDismissEvent.mm +0 -25
  358. package/ios/events/OnWillPresentEvent.h +0 -28
  359. package/ios/events/OnWillPresentEvent.mm +0 -30
  360. package/ios/utils/LayoutUtil.h +0 -44
  361. package/ios/utils/LayoutUtil.mm +0 -50
  362. package/lib/module/TrueSheetGrabber.js +0 -51
  363. package/lib/module/TrueSheetGrabber.js.map +0 -1
  364. package/lib/typescript/src/TrueSheetGrabber.d.ts +0 -39
  365. package/lib/typescript/src/TrueSheetGrabber.d.ts.map +0 -1
  366. package/src/TrueSheetGrabber.tsx +0 -82
  367. package/src/__mocks__/index.js +0 -67
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ import React, { createElement, isValidElement } from 'react';
4
+ import { View } from 'react-native';
5
+ /**
6
+ * Mock TrueSheet component for testing.
7
+ * Import from '@lodev09/react-native-true-sheet/mock' in your test setup.
8
+ */
9
+ export class TrueSheet extends React.Component {
10
+ static instances = {};
11
+ static dismiss = jest.fn((_name, _animated) => Promise.resolve());
12
+ static dismissStack = jest.fn((_name, _animated) => Promise.resolve());
13
+ static present = jest.fn((_name, _index, _animated) => Promise.resolve());
14
+ static resize = jest.fn((_name, _index) => Promise.resolve());
15
+ static dismissAll = jest.fn(_animated => Promise.resolve());
16
+ dismiss = jest.fn(_animated => Promise.resolve());
17
+ dismissStack = jest.fn(_animated => Promise.resolve());
18
+ present = jest.fn((_index, _animated) => Promise.resolve());
19
+ resize = jest.fn(_index => Promise.resolve());
20
+ componentDidMount() {
21
+ const {
22
+ name
23
+ } = this.props;
24
+ if (name) {
25
+ TrueSheet.instances[name] = this;
26
+ }
27
+ }
28
+ componentWillUnmount() {
29
+ const {
30
+ name
31
+ } = this.props;
32
+ if (name) {
33
+ delete TrueSheet.instances[name];
34
+ }
35
+ }
36
+ renderHeader() {
37
+ const {
38
+ header
39
+ } = this.props;
40
+ if (!header) return null;
41
+ return /*#__PURE__*/isValidElement(header) ? header : /*#__PURE__*/createElement(header);
42
+ }
43
+ renderFooter() {
44
+ const {
45
+ footer
46
+ } = this.props;
47
+ if (!footer) return null;
48
+ return /*#__PURE__*/isValidElement(footer) ? footer : /*#__PURE__*/createElement(footer);
49
+ }
50
+ render() {
51
+ const {
52
+ children,
53
+ style
54
+ } = this.props;
55
+ return /*#__PURE__*/React.createElement(View, {
56
+ style
57
+ }, this.renderHeader(), children, this.renderFooter());
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Mock TrueSheetPeek component for testing.
63
+ */
64
+ export function TrueSheetPeek({
65
+ children,
66
+ ...rest
67
+ }) {
68
+ return /*#__PURE__*/React.createElement(View, rest, children);
69
+ }
70
+
71
+ /**
72
+ * Mock TrueSheetProvider for testing.
73
+ */
74
+ export function TrueSheetProvider({
75
+ children
76
+ }) {
77
+ return children;
78
+ }
79
+
80
+ /**
81
+ * Mock useTrueSheet hook for testing.
82
+ */
83
+ export function useTrueSheet() {
84
+ return {
85
+ present: TrueSheet.present,
86
+ dismiss: TrueSheet.dismiss,
87
+ dismissStack: TrueSheet.dismissStack,
88
+ resize: TrueSheet.resize,
89
+ dismissAll: TrueSheet.dismissAll
90
+ };
91
+ }
92
+ export * from "../TrueSheet.types.js";
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createElement","isValidElement","View","TrueSheet","Component","instances","dismiss","jest","fn","_name","_animated","Promise","resolve","dismissStack","present","_index","resize","dismissAll","componentDidMount","name","props","componentWillUnmount","renderHeader","header","renderFooter","footer","render","children","style","TrueSheetPeek","rest","TrueSheetProvider","useTrueSheet"],"sourceRoot":"../../../src","sources":["mocks/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Mock createTrueSheetNavigator for testing.
5
+ * Import from '@lodev09/react-native-true-sheet/navigation/mock' in your test setup.
6
+ */
7
+ export const createTrueSheetNavigator = jest.fn(() => ({
8
+ Navigator: jest.fn(({
9
+ children
10
+ }) => children),
11
+ Screen: jest.fn(() => null),
12
+ Group: jest.fn(() => null)
13
+ }));
14
+
15
+ /**
16
+ * Mock TrueSheetActions for testing.
17
+ */
18
+ export const TrueSheetActions = {
19
+ push: jest.fn((name, params) => ({
20
+ type: 'PUSH',
21
+ payload: {
22
+ name,
23
+ params
24
+ }
25
+ })),
26
+ pop: jest.fn(count => ({
27
+ type: 'POP',
28
+ payload: {
29
+ count
30
+ }
31
+ })),
32
+ popTo: jest.fn((name, params) => ({
33
+ type: 'POP_TO',
34
+ payload: {
35
+ name,
36
+ params
37
+ }
38
+ })),
39
+ popToTop: jest.fn(() => ({
40
+ type: 'POP_TO_TOP'
41
+ })),
42
+ replace: jest.fn((name, params) => ({
43
+ type: 'REPLACE',
44
+ payload: {
45
+ name,
46
+ params
47
+ }
48
+ })),
49
+ resize: jest.fn(index => ({
50
+ type: 'RESIZE',
51
+ index
52
+ })),
53
+ dismiss: jest.fn(() => ({
54
+ type: 'DISMISS'
55
+ })),
56
+ remove: jest.fn(() => ({
57
+ type: 'REMOVE'
58
+ }))
59
+ };
60
+
61
+ /**
62
+ * Mock useTrueSheetNavigation hook for testing.
63
+ */
64
+ export const useTrueSheetNavigation = jest.fn(() => ({
65
+ navigate: jest.fn(),
66
+ goBack: jest.fn(),
67
+ reset: jest.fn(),
68
+ setParams: jest.fn(),
69
+ dispatch: jest.fn(),
70
+ isFocused: jest.fn(() => true),
71
+ canGoBack: jest.fn(() => true),
72
+ getId: jest.fn(),
73
+ getParent: jest.fn(),
74
+ getState: jest.fn(),
75
+ addListener: jest.fn(() => jest.fn()),
76
+ removeListener: jest.fn(),
77
+ setOptions: jest.fn(),
78
+ push: jest.fn(),
79
+ pop: jest.fn(),
80
+ popTo: jest.fn(),
81
+ popToTop: jest.fn(),
82
+ replace: jest.fn(),
83
+ resize: jest.fn()
84
+ }));
85
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createTrueSheetNavigator","jest","fn","Navigator","children","Screen","Group","TrueSheetActions","push","name","params","type","payload","pop","count","popTo","popToTop","replace","resize","index","dismiss","remove","useTrueSheetNavigation","navigate","goBack","reset","setParams","dispatch","isFocused","canGoBack","getId","getParent","getState","addListener","removeListener","setOptions"],"sourceRoot":"../../../src","sources":["mocks/navigation.ts"],"mappings":";;AAIA;AACA;AACA;AACA;AACA,OAAO,MAAMA,wBAAwB,GAAGC,IAAI,CAACC,EAAE,CAAC,OAAO;EACrDC,SAAS,EAAEF,IAAI,CAACC,EAAE,CAAC,CAAC;IAAEE;EAAwC,CAAC,KAAKA,QAAQ,CAAC;EAC7EC,MAAM,EAAEJ,IAAI,CAACC,EAAE,CAAC,MAAM,IAAI,CAAC;EAC3BI,KAAK,EAAEL,IAAI,CAACC,EAAE,CAAC,MAAM,IAAI;AAC3B,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA,OAAO,MAAMK,gBAAgB,GAAG;EAC9BC,IAAI,EAAEP,IAAI,CAACC,EAAE,CAAC,CAACO,IAAY,EAAEC,MAAe,MAAM;IAAEC,IAAI,EAAE,MAAM;IAAEC,OAAO,EAAE;MAAEH,IAAI;MAAEC;IAAO;EAAE,CAAC,CAAC,CAAC;EAC/FG,GAAG,EAAEZ,IAAI,CAACC,EAAE,CAAEY,KAAc,KAAM;IAAEH,IAAI,EAAE,KAAK;IAAEC,OAAO,EAAE;MAAEE;IAAM;EAAE,CAAC,CAAC,CAAC;EACvEC,KAAK,EAAEd,IAAI,CAACC,EAAE,CAAC,CAACO,IAAY,EAAEC,MAAe,MAAM;IACjDC,IAAI,EAAE,QAAQ;IACdC,OAAO,EAAE;MAAEH,IAAI;MAAEC;IAAO;EAC1B,CAAC,CAAC,CAAC;EACHM,QAAQ,EAAEf,IAAI,CAACC,EAAE,CAAC,OAAO;IAAES,IAAI,EAAE;EAAa,CAAC,CAAC,CAAC;EACjDM,OAAO,EAAEhB,IAAI,CAACC,EAAE,CAAC,CAACO,IAAY,EAAEC,MAAe,MAAM;IACnDC,IAAI,EAAE,SAAS;IACfC,OAAO,EAAE;MAAEH,IAAI;MAAEC;IAAO;EAC1B,CAAC,CAAC,CAAC;EACHQ,MAAM,EAAEjB,IAAI,CAACC,EAAE,CAAEiB,KAAa,KAAM;IAAER,IAAI,EAAE,QAAQ;IAAEQ;EAAM,CAAC,CAAC,CAAC;EAC/DC,OAAO,EAAEnB,IAAI,CAACC,EAAE,CAAC,OAAO;IAAES,IAAI,EAAE;EAAU,CAAC,CAAC,CAAC;EAC7CU,MAAM,EAAEpB,IAAI,CAACC,EAAE,CAAC,OAAO;IAAES,IAAI,EAAE;EAAS,CAAC,CAAC;AAC5C,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMW,sBAAsB,GAAGrB,IAAI,CAACC,EAAE,CAC3C,OACG;EACCqB,QAAQ,EAAEtB,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBsB,MAAM,EAAEvB,IAAI,CAACC,EAAE,CAAC,CAAC;EACjBuB,KAAK,EAAExB,IAAI,CAACC,EAAE,CAAC,CAAC;EAChBwB,SAAS,EAAEzB,IAAI,CAACC,EAAE,CAAC,CAAC;EACpByB,QAAQ,EAAE1B,IAAI,CAACC,EAAE,CAAC,CAAC;EACnB0B,SAAS,EAAE3B,IAAI,CAACC,EAAE,CAAC,MAAM,IAAI,CAAC;EAC9B2B,SAAS,EAAE5B,IAAI,CAACC,EAAE,CAAC,MAAM,IAAI,CAAC;EAC9B4B,KAAK,EAAE7B,IAAI,CAACC,EAAE,CAAC,CAAC;EAChB6B,SAAS,EAAE9B,IAAI,CAACC,EAAE,CAAC,CAAC;EACpB8B,QAAQ,EAAE/B,IAAI,CAACC,EAAE,CAAC,CAAC;EACnB+B,WAAW,EAAEhC,IAAI,CAACC,EAAE,CAAC,MAAMD,IAAI,CAACC,EAAE,CAAC,CAAC,CAAC;EACrCgC,cAAc,EAAEjC,IAAI,CAACC,EAAE,CAAC,CAAC;EACzBiC,UAAU,EAAElC,IAAI,CAACC,EAAE,CAAC,CAAC;EACrBM,IAAI,EAAEP,IAAI,CAACC,EAAE,CAAC,CAAC;EACfW,GAAG,EAAEZ,IAAI,CAACC,EAAE,CAAC,CAAC;EACda,KAAK,EAAEd,IAAI,CAACC,EAAE,CAAC,CAAC;EAChBc,QAAQ,EAAEf,IAAI,CAACC,EAAE,CAAC,CAAC;EACnBe,OAAO,EAAEhB,IAAI,CAACC,EAAE,CAAC,CAAC;EAClBgB,MAAM,EAAEjB,IAAI,CAACC,EAAE,CAAC;AAClB,CAAC,CACL,CAAC","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ import React, { createElement, isValidElement } from 'react';
4
+ import { View } from 'react-native';
5
+ const createMockSharedValue = initialValue => ({
6
+ value: initialValue,
7
+ get: () => initialValue,
8
+ set: () => {},
9
+ addListener: () => () => {},
10
+ removeListener: () => {},
11
+ modify: () => {}
12
+ });
13
+
14
+ /**
15
+ * Mock ReanimatedTrueSheet component for testing.
16
+ * Import from '@lodev09/react-native-true-sheet/reanimated/mock' in your test setup.
17
+ */
18
+ export class ReanimatedTrueSheet extends React.Component {
19
+ static instances = {};
20
+ static dismiss = jest.fn((_name, _animated) => Promise.resolve());
21
+ static dismissStack = jest.fn((_name, _animated) => Promise.resolve());
22
+ static present = jest.fn((_name, _index, _animated) => Promise.resolve());
23
+ static resize = jest.fn((_name, _index) => Promise.resolve());
24
+ dismiss = jest.fn(_animated => Promise.resolve());
25
+ dismissStack = jest.fn(_animated => Promise.resolve());
26
+ present = jest.fn((_index, _animated) => Promise.resolve());
27
+ resize = jest.fn(_index => Promise.resolve());
28
+ componentDidMount() {
29
+ const {
30
+ name
31
+ } = this.props;
32
+ if (name) {
33
+ ReanimatedTrueSheet.instances[name] = this;
34
+ }
35
+ }
36
+ componentWillUnmount() {
37
+ const {
38
+ name
39
+ } = this.props;
40
+ if (name) {
41
+ delete ReanimatedTrueSheet.instances[name];
42
+ }
43
+ }
44
+ renderHeader() {
45
+ const {
46
+ header
47
+ } = this.props;
48
+ if (!header) return null;
49
+ return /*#__PURE__*/isValidElement(header) ? header : /*#__PURE__*/createElement(header);
50
+ }
51
+ renderFooter() {
52
+ const {
53
+ footer
54
+ } = this.props;
55
+ if (!footer) return null;
56
+ return /*#__PURE__*/isValidElement(footer) ? footer : /*#__PURE__*/createElement(footer);
57
+ }
58
+ render() {
59
+ const {
60
+ children,
61
+ style
62
+ } = this.props;
63
+ return /*#__PURE__*/React.createElement(View, {
64
+ style
65
+ }, this.renderHeader(), children, this.renderFooter());
66
+ }
67
+ }
68
+
69
+ /**
70
+ * Mock ReanimatedTrueSheetProvider for testing.
71
+ */
72
+ export function ReanimatedTrueSheetProvider({
73
+ children
74
+ }) {
75
+ return children;
76
+ }
77
+
78
+ /**
79
+ * Mock useReanimatedTrueSheet hook for testing.
80
+ */
81
+ export const useReanimatedTrueSheet = jest.fn(() => ({
82
+ animatedPosition: createMockSharedValue(0),
83
+ animatedIndex: createMockSharedValue(-1),
84
+ animatedDetent: createMockSharedValue(0)
85
+ }));
86
+
87
+ /**
88
+ * Mock useReanimatedPositionChangeHandler hook for testing.
89
+ */
90
+ export const useReanimatedPositionChangeHandler = jest.fn((_handler, _dependencies) => jest.fn());
91
+ //# sourceMappingURL=reanimated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createElement","isValidElement","View","createMockSharedValue","initialValue","value","get","set","addListener","removeListener","modify","ReanimatedTrueSheet","Component","instances","dismiss","jest","fn","_name","_animated","Promise","resolve","dismissStack","present","_index","resize","componentDidMount","name","props","componentWillUnmount","renderHeader","header","renderFooter","footer","render","children","style","ReanimatedTrueSheetProvider","useReanimatedTrueSheet","animatedPosition","animatedIndex","animatedDetent","useReanimatedPositionChangeHandler","_handler","_dependencies"],"sourceRoot":"../../../src","sources":["mocks/reanimated.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ import { nanoid } from 'nanoid/non-secure';
4
+ import { StackRouter, StackActions } from '@react-navigation/core';
5
+ export const TrueSheetActions = {
6
+ ...StackActions,
7
+ resize: index => ({
8
+ type: 'RESIZE',
9
+ index
10
+ }),
11
+ dismiss: () => ({
12
+ type: 'DISMISS'
13
+ }),
14
+ remove: () => ({
15
+ type: 'REMOVE'
16
+ })
17
+ };
18
+ const ensureBaseRoute = (state, baseRouteName, routeParamList) => {
19
+ if (!baseRouteName) {
20
+ return state;
21
+ }
22
+ const hasBaseRoute = state.routes.some(r => r.name === baseRouteName);
23
+ if (!hasBaseRoute) {
24
+ const baseRoute = {
25
+ key: `${baseRouteName}-${nanoid()}`,
26
+ name: baseRouteName,
27
+ params: routeParamList?.[baseRouteName]
28
+ };
29
+ return {
30
+ ...state,
31
+ index: state.routes.length,
32
+ routes: [baseRoute, ...state.routes]
33
+ };
34
+ }
35
+ return state;
36
+ };
37
+ export const TrueSheetRouter = routerOptions => {
38
+ const baseRouter = StackRouter(routerOptions);
39
+ return {
40
+ ...baseRouter,
41
+ type: 'true-sheet',
42
+ getInitialState(options) {
43
+ const state = baseRouter.getInitialState(options);
44
+ const baseRouteName = routerOptions.initialRouteName ?? options.routeNames[0];
45
+ const stateWithBaseRoute = ensureBaseRoute(state, baseRouteName, options.routeParamList);
46
+ return {
47
+ ...stateWithBaseRoute,
48
+ stale: false,
49
+ type: 'true-sheet',
50
+ key: `true-sheet-${nanoid()}`
51
+ };
52
+ },
53
+ getStateForAction(state, action, options) {
54
+ switch (action.type) {
55
+ case 'RESIZE':
56
+ {
57
+ const routeIndex = action.target === state.key && action.source ? state.routes.findIndex(r => r.key === action.source) : state.index;
58
+ return {
59
+ ...state,
60
+ routes: state.routes.map((route, i) => i === routeIndex ? {
61
+ ...route,
62
+ resizeIndex: action.index,
63
+ resizeKey: (route.resizeKey ?? 0) + 1
64
+ } : route)
65
+ };
66
+ }
67
+ case 'GO_BACK':
68
+ case 'DISMISS':
69
+ {
70
+ return this.getStateForAction(state, StackActions.pop(1), options);
71
+ }
72
+ case 'POP':
73
+ {
74
+ // Only base screen remains - let parent navigator handle it
75
+ if (state.routes.length <= 1) {
76
+ return null;
77
+ }
78
+ const count = 'payload' in action && typeof action.payload?.count === 'number' ? action.payload.count : 1;
79
+
80
+ // Calculate how many routes we can actually pop (don't pop base screen)
81
+ const maxPopCount = state.routes.length - 1;
82
+ const actualCount = Math.min(count, maxPopCount);
83
+
84
+ // Base screen - let parent navigator handle it
85
+ if (actualCount <= 0) {
86
+ return null;
87
+ }
88
+
89
+ // Target index is the route we want to stay on (land on after pop)
90
+ // closingIndex is the first route to be dismissed (the one after target)
91
+ const targetIndex = state.routes.length - 1 - actualCount;
92
+ const closingIndex = targetIndex + 1;
93
+
94
+ // Mark only the bottom-most route to pop as closing
95
+ // The sheet's dismiss() will handle dismissing sheets above it first
96
+ return {
97
+ ...state,
98
+ index: closingIndex,
99
+ routes: state.routes.map((route, i) => i === closingIndex ? {
100
+ ...route,
101
+ closing: true
102
+ } : route)
103
+ };
104
+ }
105
+ case 'POP_TO_TOP':
106
+ {
107
+ const popCount = state.routes.length - 1;
108
+ return this.getStateForAction(state, StackActions.pop(popCount), options);
109
+ }
110
+ case 'POP_TO':
111
+ {
112
+ const targetName = 'payload' in action && typeof action.payload?.name === 'string' ? action.payload.name : null;
113
+ if (!targetName) {
114
+ return null;
115
+ }
116
+ const targetIndex = state.routes.findIndex(r => r.name === targetName);
117
+
118
+ // Target not found or is the current route
119
+ if (targetIndex === -1 || targetIndex >= state.index) {
120
+ return null;
121
+ }
122
+ const popCount = state.routes.length - 1 - targetIndex;
123
+ return this.getStateForAction(state, StackActions.pop(popCount), options);
124
+ }
125
+ case 'REMOVE':
126
+ {
127
+ // Actually remove the closing route and all routes above it
128
+ const routeKey = action.source;
129
+ const routeIndex = routeKey ? state.routes.findIndex(r => r.key === routeKey) : state.routes.findIndex(r => r.closing);
130
+ if (routeIndex === -1) {
131
+ return state;
132
+ }
133
+
134
+ // Remove the route and all routes above it (they were dismissed together)
135
+ const routes = state.routes.filter((_, i) => i < routeIndex);
136
+ return {
137
+ ...state,
138
+ index: Math.min(state.index, routes.length - 1),
139
+ routes
140
+ };
141
+ }
142
+ default:
143
+ return baseRouter.getStateForAction(state, action, options);
144
+ }
145
+ },
146
+ getRehydratedState(partialState, {
147
+ routeNames,
148
+ routeParamList,
149
+ routeGetIdList
150
+ }) {
151
+ if (partialState.stale === false) {
152
+ return partialState;
153
+ }
154
+ const state = baseRouter.getRehydratedState(partialState, {
155
+ routeNames,
156
+ routeParamList,
157
+ routeGetIdList
158
+ });
159
+ const baseRouteName = routerOptions.initialRouteName ?? routeNames[0];
160
+ const stateWithBaseRoute = ensureBaseRoute(state, baseRouteName, routeParamList);
161
+ return {
162
+ ...stateWithBaseRoute,
163
+ type: 'true-sheet',
164
+ key: `true-sheet-${nanoid()}`
165
+ };
166
+ },
167
+ actionCreators: TrueSheetActions
168
+ };
169
+ };
170
+ //# sourceMappingURL=TrueSheetRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["nanoid","StackRouter","StackActions","TrueSheetActions","resize","index","type","dismiss","remove","ensureBaseRoute","state","baseRouteName","routeParamList","hasBaseRoute","routes","some","r","name","baseRoute","key","params","length","TrueSheetRouter","routerOptions","baseRouter","getInitialState","options","initialRouteName","routeNames","stateWithBaseRoute","stale","getStateForAction","action","routeIndex","target","source","findIndex","map","route","i","resizeIndex","resizeKey","pop","count","payload","maxPopCount","actualCount","Math","min","targetIndex","closingIndex","closing","popCount","targetName","routeKey","filter","_","getRehydratedState","partialState","routeGetIdList","actionCreators"],"sourceRoot":"../../../src","sources":["navigation/TrueSheetRouter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ import { TrueSheetScreen } from "./screen/index.js";
4
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
5
+ let ReanimatedTrueSheetScreen = null;
6
+ const getReanimatedScreen = () => {
7
+ if (!ReanimatedTrueSheetScreen) {
8
+ ReanimatedTrueSheetScreen = require('./screen/ReanimatedTrueSheetScreen').ReanimatedTrueSheetScreen;
9
+ }
10
+ return ReanimatedTrueSheetScreen;
11
+ };
12
+ const DEFAULT_DETENTS = ['auto'];
13
+ const clampDetentIndex = (index, detentsLength) => Math.min(index, Math.max(detentsLength - 1, 0));
14
+ export const TrueSheetView = ({
15
+ state,
16
+ navigation,
17
+ descriptors
18
+ }) => {
19
+ // First route is the base screen, rest are sheets
20
+ const [baseRoute, ...sheetRoutes] = state.routes;
21
+ const baseDescriptor = baseRoute ? descriptors[baseRoute.key] : null;
22
+ return /*#__PURE__*/_jsxs(_Fragment, {
23
+ children: [baseDescriptor?.render(), sheetRoutes.map(route => {
24
+ const descriptor = descriptors[route.key];
25
+ if (!descriptor) {
26
+ return null;
27
+ }
28
+ const {
29
+ options,
30
+ navigation: screenNavigation,
31
+ render
32
+ } = descriptor;
33
+ const {
34
+ detentIndex = 0,
35
+ detents = DEFAULT_DETENTS,
36
+ reanimated,
37
+ positionChangeHandler,
38
+ ...sheetProps
39
+ } = options;
40
+ const resolvedIndex = clampDetentIndex(route.resizeIndex ?? detentIndex, detents.length);
41
+ if (reanimated) {
42
+ const ReanimatedScreen = getReanimatedScreen();
43
+ return /*#__PURE__*/_jsx(ReanimatedScreen, {
44
+ routeKey: route.key,
45
+ closing: route.closing,
46
+ detentIndex: resolvedIndex,
47
+ resizeKey: route.resizeKey,
48
+ detents: detents,
49
+ navigation: screenNavigation,
50
+ emit: navigation.emit,
51
+ positionChangeHandler: positionChangeHandler,
52
+ ...sheetProps,
53
+ children: render()
54
+ }, route.key);
55
+ }
56
+ return /*#__PURE__*/_jsx(TrueSheetScreen, {
57
+ routeKey: route.key,
58
+ closing: route.closing,
59
+ detentIndex: resolvedIndex,
60
+ resizeKey: route.resizeKey,
61
+ detents: detents,
62
+ navigation: screenNavigation,
63
+ emit: navigation.emit,
64
+ positionChangeHandler: positionChangeHandler,
65
+ ...sheetProps,
66
+ children: render()
67
+ }, route.key);
68
+ })]
69
+ });
70
+ };
71
+ //# sourceMappingURL=TrueSheetView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TrueSheetScreen","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ReanimatedTrueSheetScreen","getReanimatedScreen","require","DEFAULT_DETENTS","clampDetentIndex","index","detentsLength","Math","min","max","TrueSheetView","state","navigation","descriptors","baseRoute","sheetRoutes","routes","baseDescriptor","key","children","render","map","route","descriptor","options","screenNavigation","detentIndex","detents","reanimated","positionChangeHandler","sheetProps","resolvedIndex","resizeIndex","length","ReanimatedScreen","routeKey","closing","resizeKey","emit"],"sourceRoot":"../../../src","sources":["navigation/TrueSheetView.tsx"],"mappings":";;AAOA,SAASA,eAAe,QAAmC,mBAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEtE,IAAIC,yBAA2E,GAAG,IAAI;AAEtF,MAAMC,mBAAmB,GAAGA,CAAA,KAAiD;EAC3E,IAAI,CAACD,yBAAyB,EAAE;IAC9BA,yBAAyB,GACvBE,OAAO,CAAC,oCAAoC,CAAC,CAACF,yBAAyB;EAC3E;EACA,OAAOA,yBAAyB;AAClC,CAAC;AAED,MAAMG,eAAoC,GAAG,CAAC,MAAM,CAAC;AAErD,MAAMC,gBAAgB,GAAGA,CAACC,KAAa,EAAEC,aAAqB,KAC5DC,IAAI,CAACC,GAAG,CAACH,KAAK,EAAEE,IAAI,CAACE,GAAG,CAACH,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAQjD,OAAO,MAAMI,aAAa,GAAGA,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC;AAAgC,CAAC,KAAK;EACvF;EACA,MAAM,CAACC,SAAS,EAAE,GAAGC,WAAW,CAAC,GAAGJ,KAAK,CAACK,MAAM;EAEhD,MAAMC,cAAc,GAAGH,SAAS,GAAGD,WAAW,CAACC,SAAS,CAACI,GAAG,CAAC,GAAG,IAAI;EAEpE,oBACEnB,KAAA,CAAAF,SAAA;IAAAsB,QAAA,GAEGF,cAAc,EAAEG,MAAM,CAAC,CAAC,EAGxBL,WAAW,CAACM,GAAG,CAAEC,KAAK,IAAK;MAC1B,MAAMC,UAAU,GAAGV,WAAW,CAACS,KAAK,CAACJ,GAAG,CAAC;MAEzC,IAAI,CAACK,UAAU,EAAE;QACf,OAAO,IAAI;MACb;MAEA,MAAM;QAAEC,OAAO;QAAEZ,UAAU,EAAEa,gBAAgB;QAAEL;MAAO,CAAC,GAAGG,UAAU;MACpE,MAAM;QACJG,WAAW,GAAG,CAAC;QACfC,OAAO,GAAGxB,eAAe;QACzByB,UAAU;QACVC,qBAAqB;QACrB,GAAGC;MACL,CAAC,GAAGN,OAAO;MACX,MAAMO,aAAa,GAAG3B,gBAAgB,CAACkB,KAAK,CAACU,WAAW,IAAIN,WAAW,EAAEC,OAAO,CAACM,MAAM,CAAC;MAExF,IAAIL,UAAU,EAAE;QACd,MAAMM,gBAAgB,GAAGjC,mBAAmB,CAAC,CAAC;QAC9C,oBACEN,IAAA,CAACuC,gBAAgB;UAEfC,QAAQ,EAAEb,KAAK,CAACJ,GAAI;UACpBkB,OAAO,EAAEd,KAAK,CAACc,OAAQ;UACvBV,WAAW,EAAEK,aAAc;UAC3BM,SAAS,EAAEf,KAAK,CAACe,SAAU;UAC3BV,OAAO,EAAEA,OAAQ;UACjBf,UAAU,EAAEa,gBAAiB;UAC7Ba,IAAI,EAAE1B,UAAU,CAAC0B,IAAK;UACtBT,qBAAqB,EAAEA,qBAAsB;UAAA,GACzCC,UAAU;UAAAX,QAAA,EAEbC,MAAM,CAAC;QAAC,GAXJE,KAAK,CAACJ,GAYK,CAAC;MAEvB;MAEA,oBACEvB,IAAA,CAACF,eAAe;QAEd0C,QAAQ,EAAEb,KAAK,CAACJ,GAAI;QACpBkB,OAAO,EAAEd,KAAK,CAACc,OAAQ;QACvBV,WAAW,EAAEK,aAAc;QAC3BM,SAAS,EAAEf,KAAK,CAACe,SAAU;QAC3BV,OAAO,EAAEA,OAAQ;QACjBf,UAAU,EAAEa,gBAAiB;QAC7Ba,IAAI,EAAE1B,UAAU,CAAC0B,IAAK;QACtBT,qBAAqB,EAAEA,qBAAsB;QAAA,GACzCC,UAAU;QAAAX,QAAA,EAEbC,MAAM,CAAC;MAAC,GAXJE,KAAK,CAACJ,GAYI,CAAC;IAEtB,CAAC,CAAC;EAAA,CACF,CAAC;AAEP,CAAC","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ import { createNavigatorFactory, useNavigationBuilder } from '@react-navigation/core';
4
+ import { TrueSheetRouter } from "./TrueSheetRouter.js";
5
+ import { TrueSheetView } from "./TrueSheetView.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const TrueSheetNavigator = ({
8
+ id,
9
+ initialRouteName,
10
+ children,
11
+ layout,
12
+ screenListeners,
13
+ screenOptions,
14
+ screenLayout
15
+ }) => {
16
+ const {
17
+ state,
18
+ descriptors,
19
+ navigation,
20
+ NavigationContent
21
+ } = useNavigationBuilder(TrueSheetRouter, {
22
+ id,
23
+ initialRouteName,
24
+ children,
25
+ layout,
26
+ screenListeners,
27
+ screenOptions,
28
+ screenLayout
29
+ });
30
+ return /*#__PURE__*/_jsx(NavigationContent, {
31
+ children: /*#__PURE__*/_jsx(TrueSheetView, {
32
+ state: state,
33
+ navigation: navigation,
34
+ descriptors: descriptors
35
+ })
36
+ });
37
+ };
38
+
39
+ /**
40
+ * Creates a TrueSheet navigator.
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * const Sheet = createTrueSheetNavigator();
45
+ *
46
+ * function App() {
47
+ * return (
48
+ * <Sheet.Navigator>
49
+ * <Sheet.Screen name="Home" component={HomeScreen} />
50
+ * <Sheet.Screen
51
+ * name="Details"
52
+ * component={DetailsSheet}
53
+ * options={{ detents: [0.5, 1] }}
54
+ * />
55
+ * </Sheet.Navigator>
56
+ * );
57
+ * }
58
+ * ```
59
+ */
60
+ export const createTrueSheetNavigator = config => {
61
+ return createNavigatorFactory(TrueSheetNavigator)(config);
62
+ };
63
+ //# sourceMappingURL=createTrueSheetNavigator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createNavigatorFactory","useNavigationBuilder","TrueSheetRouter","TrueSheetView","jsx","_jsx","TrueSheetNavigator","id","initialRouteName","children","layout","screenListeners","screenOptions","screenLayout","state","descriptors","navigation","NavigationContent","createTrueSheetNavigator","config"],"sourceRoot":"../../../src","sources":["navigation/createTrueSheetNavigator.tsx"],"mappings":";;AAAA,SACEA,sBAAsB,EAKtBC,oBAAoB,QACf,wBAAwB;AAE/B,SAASC,eAAe,QAAqC,sBAAmB;AAChF,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUhD,MAAMC,kBAAkB,GAAGA,CAAC;EAC1BC,EAAE;EACFC,gBAAgB;EAChBC,QAAQ;EACRC,MAAM;EACNC,eAAe;EACfC,aAAa;EACbC;AACuB,CAAC,KAAK;EAC7B,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GAAGhB,oBAAoB,CAMhFC,eAAe,EAAE;IACjBK,EAAE;IACFC,gBAAgB;IAChBC,QAAQ;IACRC,MAAM;IACNC,eAAe;IACfC,aAAa;IACbC;EACF,CAAC,CAAC;EAEF,oBACER,IAAA,CAACY,iBAAiB;IAAAR,QAAA,eAChBJ,IAAA,CAACF,aAAa;MAACW,KAAK,EAAEA,KAAM;MAACE,UAAU,EAAEA,UAAW;MAACD,WAAW,EAAEA;IAAY,CAAE;EAAC,CAChE,CAAC;AAExB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,wBAAwB,GAgBnCC,MAAe,IACqB;EACpC,OAAOnB,sBAAsB,CAACM,kBAAkB,CAAC,CAACa,MAAM,CAAC;AAC3D,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { createTrueSheetNavigator } from "./createTrueSheetNavigator.js";
4
+ export { TrueSheetActions } from "./TrueSheetRouter.js";
5
+ export { useTrueSheetNavigation } from "./useTrueSheetNavigation.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createTrueSheetNavigator","TrueSheetActions","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,SAASA,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,gBAAgB,QAAkC,sBAAmB;AAC9E,SAASC,sBAAsB,QAAQ,6BAA0B","ignoreList":[]}