@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.
- package/LICENSE +1 -1
- package/README.md +42 -31
- package/RNTrueSheet.podspec +10 -2
- package/android/build.gradle +2 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +174 -49
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerViewManager.kt +7 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +371 -18
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentViewManager.kt +14 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +150 -21
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterViewManager.kt +14 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetHeaderView.kt +38 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetHeaderViewManager.kt +28 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetModule.kt +84 -24
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetPackage.kt +5 -4
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetPeekView.kt +72 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetPeekViewManager.kt +33 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetStateUpdater.kt +45 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +526 -231
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +1217 -603
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +136 -29
- package/android/src/main/java/com/lodev09/truesheet/core/RNScreensEventObserver.kt +63 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetBehavior.kt +36 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +255 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +303 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +277 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDimView.kt +162 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetGrabberView.kt +180 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetKeyboardObserver.kt +207 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetStackManager.kt +220 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetDragEvents.kt +71 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetFocusEvents.kt +65 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetLifecycleEvents.kt +112 -0
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetStateEvents.kt +56 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/KeyboardUtils.kt +84 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/ScreenUtils.kt +93 -67
- package/android/src/main/java/com/lodev09/truesheet/utils/ViewUtils.kt +30 -0
- package/android/src/main/jni/CMakeLists.txt +63 -0
- package/android/src/main/jni/TrueSheetSpec.h +19 -0
- package/android/src/main/jni/TrueSheetStateUpdater.cpp +96 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewComponentDescriptor.h +24 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.cpp +43 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.h +28 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.cpp +11 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.h +37 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewComponentDescriptor.h +24 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +56 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.h +28 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.cpp +11 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.h +41 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.cpp +18 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.h +16 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewComponentDescriptor.h +28 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.cpp +61 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.h +45 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.cpp +23 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.h +52 -0
- package/ios/TrueSheetContainerView.h +81 -6
- package/ios/TrueSheetContainerView.mm +275 -21
- package/ios/TrueSheetContentView.h +38 -1
- package/ios/TrueSheetContentView.mm +413 -43
- package/ios/TrueSheetFooterView.h +27 -2
- package/ios/TrueSheetFooterView.mm +141 -35
- package/ios/{events/OnDidDismissEvent.h → TrueSheetHeaderView.h} +10 -7
- package/ios/TrueSheetHeaderView.mm +64 -0
- package/ios/TrueSheetModule.mm +92 -5
- package/ios/TrueSheetPeekView.h +32 -0
- package/ios/TrueSheetPeekView.mm +99 -0
- package/ios/TrueSheetView.h +7 -15
- package/ios/TrueSheetView.mm +633 -215
- package/ios/TrueSheetViewController.h +84 -16
- package/ios/TrueSheetViewController.mm +1136 -333
- package/ios/core/RNScreensEventObserver.h +46 -0
- package/ios/core/RNScreensEventObserver.mm +280 -0
- package/ios/core/TrueSheetBlurView.h +27 -0
- package/ios/core/TrueSheetBlurView.mm +82 -0
- package/ios/core/TrueSheetDetentCalculator.h +107 -0
- package/ios/core/TrueSheetDetentCalculator.mm +197 -0
- package/ios/core/TrueSheetGrabberView.h +72 -0
- package/ios/core/TrueSheetGrabberView.mm +178 -0
- package/ios/core/TrueSheetKeyboardObserver.h +39 -0
- package/ios/core/TrueSheetKeyboardObserver.mm +112 -0
- package/ios/events/TrueSheetDragEvents.h +39 -0
- package/ios/events/TrueSheetDragEvents.mm +62 -0
- package/ios/events/{OnPositionChangeEvent.h → TrueSheetFocusEvents.h} +8 -5
- package/ios/events/TrueSheetFocusEvents.mm +49 -0
- package/ios/events/TrueSheetLifecycleEvents.h +40 -0
- package/ios/events/TrueSheetLifecycleEvents.mm +71 -0
- package/ios/events/TrueSheetStateEvents.h +35 -0
- package/ios/events/TrueSheetStateEvents.mm +49 -0
- package/ios/tvos/TrueSheetStubs.mm +154 -0
- package/ios/{events/OnMountEvent.h → utils/BlurUtil.h} +5 -7
- package/ios/utils/BlurUtil.mm +69 -0
- package/ios/utils/GestureUtil.h +7 -0
- package/ios/utils/GestureUtil.mm +12 -0
- package/ios/utils/PlatformUtil.h +15 -0
- package/ios/utils/UIView+FirstResponder.h +15 -0
- package/ios/utils/UIView+FirstResponder.mm +26 -0
- package/ios/{events/OnWillDismissEvent.h → utils/UIView+ScrollEdgeInteraction.h} +6 -7
- package/ios/utils/UIView+ScrollEdgeInteraction.mm +62 -0
- package/ios/utils/WindowUtil.mm +17 -1
- package/lib/module/TrueSheet.js +224 -64
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheet.web.js +1201 -0
- package/lib/module/TrueSheet.web.js.map +1 -0
- package/lib/module/TrueSheetPeek.js +15 -0
- package/lib/module/TrueSheetPeek.js.map +1 -0
- package/lib/module/TrueSheetPeek.web.js +55 -0
- package/lib/module/TrueSheetPeek.web.js.map +1 -0
- package/lib/module/TrueSheetProvider.js +28 -0
- package/lib/module/TrueSheetProvider.js.map +1 -0
- package/lib/module/TrueSheetProvider.web.js +157 -0
- package/lib/module/TrueSheetProvider.web.js.map +1 -0
- package/lib/module/fabric/TrueSheetContainerViewNativeComponent.ts +1 -1
- package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +5 -1
- package/lib/module/fabric/TrueSheetFooterViewNativeComponent.ts +10 -2
- package/lib/module/fabric/TrueSheetHeaderViewNativeComponent.ts +8 -0
- package/lib/module/fabric/TrueSheetPeekViewNativeComponent.ts +8 -0
- package/lib/module/fabric/TrueSheetViewNativeComponent.ts +105 -18
- package/lib/module/index.js +3 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/mocks/index.js +93 -0
- package/lib/module/mocks/index.js.map +1 -0
- package/lib/module/mocks/navigation.js +85 -0
- package/lib/module/mocks/navigation.js.map +1 -0
- package/lib/module/mocks/reanimated.js +91 -0
- package/lib/module/mocks/reanimated.js.map +1 -0
- package/lib/module/navigation/TrueSheetRouter.js +170 -0
- package/lib/module/navigation/TrueSheetRouter.js.map +1 -0
- package/lib/module/navigation/TrueSheetView.js +71 -0
- package/lib/module/navigation/TrueSheetView.js.map +1 -0
- package/lib/module/navigation/createTrueSheetNavigator.js +63 -0
- package/lib/module/navigation/createTrueSheetNavigator.js.map +1 -0
- package/lib/module/navigation/index.js +6 -0
- package/lib/module/navigation/index.js.map +1 -0
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js +56 -0
- package/lib/module/navigation/screen/ReanimatedTrueSheetScreen.js.map +1 -0
- package/lib/module/navigation/screen/TrueSheetScreen.js +49 -0
- package/lib/module/navigation/screen/TrueSheetScreen.js.map +1 -0
- package/lib/module/navigation/screen/index.js +5 -0
- package/lib/module/navigation/screen/index.js.map +1 -0
- package/lib/module/navigation/screen/types.js +4 -0
- package/lib/module/navigation/screen/types.js.map +1 -0
- package/lib/module/navigation/screen/useSheetScreenState.js +68 -0
- package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -0
- package/lib/module/navigation/types.js +4 -0
- package/lib/module/navigation/types.js.map +1 -0
- package/lib/module/navigation/useTrueSheetNavigation.js +24 -0
- package/lib/module/navigation/useTrueSheetNavigation.js.map +1 -0
- package/lib/module/reanimated/ReanimatedTrueSheet.js +15 -9
- package/lib/module/reanimated/ReanimatedTrueSheet.js.map +1 -1
- package/lib/module/reanimated/ReanimatedTrueSheet.web.js +81 -0
- package/lib/module/reanimated/ReanimatedTrueSheet.web.js.map +1 -0
- package/lib/module/reanimated/ReanimatedTrueSheetProvider.js +4 -2
- package/lib/module/reanimated/ReanimatedTrueSheetProvider.js.map +1 -1
- package/lib/module/reanimated/index.js +2 -2
- package/lib/module/reanimated/index.js.map +1 -1
- package/lib/module/reanimated/useReanimatedPositionChangeHandler.web.js +20 -0
- package/lib/module/reanimated/useReanimatedPositionChangeHandler.web.js.map +1 -0
- package/lib/module/specs/NativeTrueSheetModule.js.map +1 -1
- package/lib/module/web/constants.js +16 -0
- package/lib/module/web/constants.js.map +1 -0
- package/lib/module/web/vaul/README.md +9 -0
- package/lib/module/web/vaul/browser.js +30 -0
- package/lib/module/web/vaul/browser.js.map +1 -0
- package/lib/module/web/vaul/constants.js +15 -0
- package/lib/module/web/vaul/constants.js.map +1 -0
- package/lib/module/web/vaul/context.js +59 -0
- package/lib/module/web/vaul/context.js.map +1 -0
- package/lib/module/web/vaul/helpers.js +93 -0
- package/lib/module/web/vaul/helpers.js.map +1 -0
- package/lib/module/web/vaul/index.js +1309 -0
- package/lib/module/web/vaul/index.js.map +1 -0
- package/lib/module/web/vaul/style.css +287 -0
- package/lib/module/web/vaul/style.css.d.js +2 -0
- package/lib/module/web/vaul/style.css.d.js.map +1 -0
- package/lib/module/web/vaul/types.js +2 -0
- package/lib/module/web/vaul/types.js.map +1 -0
- package/lib/module/web/vaul/use-composed-refs.js +34 -0
- package/lib/module/web/vaul/use-composed-refs.js.map +1 -0
- package/lib/module/web/vaul/use-controllable-state.js +54 -0
- package/lib/module/web/vaul/use-controllable-state.js.map +1 -0
- package/lib/module/web/vaul/use-position-fixed.js +123 -0
- package/lib/module/web/vaul/use-position-fixed.js.map +1 -0
- package/lib/module/web/vaul/use-prevent-scroll.js +258 -0
- package/lib/module/web/vaul/use-prevent-scroll.js.map +1 -0
- package/lib/module/web/vaul/use-scale-background.js +57 -0
- package/lib/module/web/vaul/use-scale-background.js.map +1 -0
- package/lib/module/web/vaul/use-snap-points.js +305 -0
- package/lib/module/web/vaul/use-snap-points.js.map +1 -0
- package/lib/typescript/src/TrueSheet.d.ts +51 -14
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.types.d.ts +463 -54
- package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.web.d.ts +5 -0
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetPeek.d.ts +9 -0
- package/lib/typescript/src/TrueSheetPeek.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetPeek.web.d.ts +28 -0
- package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetProvider.d.ts +18 -0
- package/lib/typescript/src/TrueSheetProvider.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetProvider.web.d.ts +27 -0
- package/lib/typescript/src/TrueSheetProvider.web.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetContainerViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetContentViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts +2 -0
- package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetHeaderViewNativeComponent.d.ts +6 -0
- package/lib/typescript/src/fabric/TrueSheetHeaderViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetPeekViewNativeComponent.d.ts +6 -0
- package/lib/typescript/src/fabric/TrueSheetPeekViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +67 -16
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/mocks/index.d.ts +43 -0
- package/lib/typescript/src/mocks/index.d.ts.map +1 -0
- package/lib/typescript/src/mocks/navigation.d.ts +66 -0
- package/lib/typescript/src/mocks/navigation.d.ts.map +1 -0
- package/lib/typescript/src/mocks/reanimated.d.ts +48 -0
- package/lib/typescript/src/mocks/reanimated.d.ts.map +1 -0
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts +57 -0
- package/lib/typescript/src/navigation/TrueSheetRouter.d.ts.map +1 -0
- package/lib/typescript/src/navigation/TrueSheetView.d.ts +10 -0
- package/lib/typescript/src/navigation/TrueSheetView.d.ts.map +1 -0
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts +35 -0
- package/lib/typescript/src/navigation/createTrueSheetNavigator.d.ts.map +1 -0
- package/lib/typescript/src/navigation/index.d.ts +6 -0
- package/lib/typescript/src/navigation/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts +3 -0
- package/lib/typescript/src/navigation/screen/ReanimatedTrueSheetScreen.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts +3 -0
- package/lib/typescript/src/navigation/screen/TrueSheetScreen.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/index.d.ts +4 -0
- package/lib/typescript/src/navigation/screen/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/types.d.ts +15 -0
- package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +35 -0
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -0
- package/lib/typescript/src/navigation/types.d.ts +153 -0
- package/lib/typescript/src/navigation/types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts +23 -0
- package/lib/typescript/src/navigation/useTrueSheetNavigation.d.ts.map +1 -0
- package/lib/typescript/src/reanimated/ReanimatedTrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/reanimated/ReanimatedTrueSheet.web.d.ts +41 -0
- package/lib/typescript/src/reanimated/ReanimatedTrueSheet.web.d.ts.map +1 -0
- package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts +8 -2
- package/lib/typescript/src/reanimated/ReanimatedTrueSheetProvider.d.ts.map +1 -1
- package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.web.d.ts +15 -0
- package/lib/typescript/src/reanimated/useReanimatedPositionChangeHandler.web.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts +25 -3
- package/lib/typescript/src/specs/NativeTrueSheetModule.d.ts.map +1 -1
- package/lib/typescript/src/web/constants.d.ts +14 -0
- package/lib/typescript/src/web/constants.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/browser.d.ts +8 -0
- package/lib/typescript/src/web/vaul/browser.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/constants.d.ts +13 -0
- package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/context.d.ts +53 -0
- package/lib/typescript/src/web/vaul/context.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/helpers.d.ts +17 -0
- package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/index.d.ts +228 -0
- package/lib/typescript/src/web/vaul/index.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/types.d.ts +7 -0
- package/lib/typescript/src/web/vaul/types.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-composed-refs.d.ts +14 -0
- package/lib/typescript/src/web/vaul/use-composed-refs.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-controllable-state.d.ts +9 -0
- package/lib/typescript/src/web/vaul/use-controllable-state.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-position-fixed.d.ts +19 -0
- package/lib/typescript/src/web/vaul/use-position-fixed.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-prevent-scroll.d.ts +18 -0
- package/lib/typescript/src/web/vaul/use-prevent-scroll.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-scale-background.d.ts +2 -0
- package/lib/typescript/src/web/vaul/use-scale-background.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/use-snap-points.d.ts +38 -0
- package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -0
- package/package.json +78 -34
- package/react-native.config.js +9 -2
- package/src/TrueSheet.tsx +276 -60
- package/src/TrueSheet.types.ts +525 -71
- package/src/TrueSheet.web.tsx +1366 -0
- package/src/TrueSheetPeek.tsx +11 -0
- package/src/TrueSheetPeek.web.tsx +63 -0
- package/src/TrueSheetProvider.tsx +33 -0
- package/src/TrueSheetProvider.web.tsx +220 -0
- package/src/fabric/TrueSheetContainerViewNativeComponent.ts +1 -1
- package/src/fabric/TrueSheetContentViewNativeComponent.ts +5 -1
- package/src/fabric/TrueSheetFooterViewNativeComponent.ts +10 -2
- package/src/fabric/TrueSheetHeaderViewNativeComponent.ts +8 -0
- package/src/fabric/TrueSheetPeekViewNativeComponent.ts +8 -0
- package/src/fabric/TrueSheetViewNativeComponent.ts +105 -18
- package/src/index.ts +2 -2
- package/src/mocks/index.ts +89 -0
- package/src/mocks/navigation.ts +72 -0
- package/src/mocks/reanimated.ts +101 -0
- package/src/navigation/TrueSheetRouter.ts +234 -0
- package/src/navigation/TrueSheetView.tsx +99 -0
- package/src/navigation/createTrueSheetNavigator.tsx +93 -0
- package/src/navigation/index.ts +14 -0
- package/src/navigation/screen/ReanimatedTrueSheetScreen.tsx +61 -0
- package/src/navigation/screen/TrueSheetScreen.tsx +54 -0
- package/src/navigation/screen/index.ts +3 -0
- package/src/navigation/screen/types.ts +21 -0
- package/src/navigation/screen/useSheetScreenState.ts +107 -0
- package/src/navigation/types.ts +219 -0
- package/src/navigation/useTrueSheetNavigation.ts +26 -0
- package/src/reanimated/ReanimatedTrueSheet.tsx +12 -7
- package/src/reanimated/ReanimatedTrueSheet.web.tsx +75 -0
- package/src/reanimated/ReanimatedTrueSheetProvider.tsx +12 -8
- package/src/reanimated/useReanimatedPositionChangeHandler.web.ts +31 -0
- package/src/specs/NativeTrueSheetModule.ts +28 -3
- package/src/web/constants.ts +13 -0
- package/src/web/vaul/README.md +9 -0
- package/src/web/vaul/browser.ts +38 -0
- package/src/web/vaul/constants.ts +20 -0
- package/src/web/vaul/context.ts +101 -0
- package/src/web/vaul/helpers.ts +124 -0
- package/src/web/vaul/index.tsx +1740 -0
- package/src/web/vaul/style.css +287 -0
- package/src/web/vaul/style.css.d.ts +1 -0
- package/src/web/vaul/types.ts +7 -0
- package/src/web/vaul/use-composed-refs.ts +35 -0
- package/src/web/vaul/use-controllable-state.ts +66 -0
- package/src/web/vaul/use-position-fixed.ts +147 -0
- package/src/web/vaul/use-prevent-scroll.ts +309 -0
- package/src/web/vaul/use-scale-background.ts +64 -0
- package/src/web/vaul/use-snap-points.ts +455 -0
- package/android/src/main/java/com/lodev09/truesheet/events/DetentChangeEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/DidDismissEvent.kt +0 -20
- package/android/src/main/java/com/lodev09/truesheet/events/DidPresentEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/DragBeginEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/DragChangeEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/DragEndEvent.kt +0 -26
- package/android/src/main/java/com/lodev09/truesheet/events/MountEvent.kt +0 -20
- package/android/src/main/java/com/lodev09/truesheet/events/PositionChangeEvent.kt +0 -32
- package/android/src/main/java/com/lodev09/truesheet/events/SizeChangeEvent.kt +0 -27
- package/android/src/main/java/com/lodev09/truesheet/events/WillDismissEvent.kt +0 -20
- package/android/src/main/java/com/lodev09/truesheet/events/WillPresentEvent.kt +0 -26
- package/android/src/main/res/values/styles.xml +0 -8
- package/ios/events/OnDetentChangeEvent.h +0 -28
- package/ios/events/OnDetentChangeEvent.mm +0 -30
- package/ios/events/OnDidDismissEvent.mm +0 -25
- package/ios/events/OnDidPresentEvent.h +0 -28
- package/ios/events/OnDidPresentEvent.mm +0 -30
- package/ios/events/OnDragBeginEvent.h +0 -28
- package/ios/events/OnDragBeginEvent.mm +0 -30
- package/ios/events/OnDragChangeEvent.h +0 -28
- package/ios/events/OnDragChangeEvent.mm +0 -30
- package/ios/events/OnDragEndEvent.h +0 -28
- package/ios/events/OnDragEndEvent.mm +0 -30
- package/ios/events/OnMountEvent.mm +0 -25
- package/ios/events/OnPositionChangeEvent.mm +0 -32
- package/ios/events/OnSizeChangeEvent.h +0 -28
- package/ios/events/OnSizeChangeEvent.mm +0 -30
- package/ios/events/OnWillDismissEvent.mm +0 -25
- package/ios/events/OnWillPresentEvent.h +0 -28
- package/ios/events/OnWillPresentEvent.mm +0 -30
- package/ios/utils/LayoutUtil.h +0 -44
- package/ios/utils/LayoutUtil.mm +0 -50
- package/lib/module/TrueSheetGrabber.js +0 -51
- package/lib/module/TrueSheetGrabber.js.map +0 -1
- package/lib/typescript/src/TrueSheetGrabber.d.ts +0 -39
- package/lib/typescript/src/TrueSheetGrabber.d.ts.map +0 -1
- package/src/TrueSheetGrabber.tsx +0 -82
- package/src/__mocks__/index.js +0 -67
|
@@ -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
|
+
navigation,
|
|
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
|
+
navigation,
|
|
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","navigation","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,UAAU;EACVC,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,UAAU;IACVE,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
|
+
navigation,
|
|
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
|
+
navigation,
|
|
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","navigation","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,UAAU;EACVC,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,UAAU;IACVE,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 @@
|
|
|
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 @@
|
|
|
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 "../TrueSheetRouter.js";
|
|
5
|
+
export const useSheetScreenState = props => {
|
|
6
|
+
const {
|
|
7
|
+
detentIndex,
|
|
8
|
+
resizeKey,
|
|
9
|
+
closing,
|
|
10
|
+
navigation,
|
|
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
|
+
navigation.dispatch({
|
|
42
|
+
...TrueSheetActions.remove(),
|
|
43
|
+
source: routeKey
|
|
44
|
+
});
|
|
45
|
+
}, [emitEvent, navigation, 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","navigation","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","dispatch","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;AAwB/D,SAASC,gBAAgB,QAAQ,uBAAoB;AAcrD,OAAO,MAAMC,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAM;IAAEC,WAAW;IAAEC,SAAS;IAAEC,OAAO;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGN,KAAK;EAE7E,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,CAA0B,CAAC;EAC7B,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,UAAU,CAACgB,QAAQ,CAAC;MAAE,GAAGtB,gBAAgB,CAACuB,MAAM,CAAC,CAAC;MAAEC,MAAM,EAAEjB;IAAS,CAAC,CAAC;EACzE,CAAC,EAAE,CAACS,SAAS,EAAEV,UAAU,EAAEC,QAAQ,CAAC,CAAC;EAErC,MAAMkB,aAAa,GAAG3B,OAAO,CAC3B,OAAO;IACL4B,aAAa,EAAGC,CAAmB,IAAKX,SAAS,CAAC,kBAAkB,EAAEW,CAAC,CAACC,WAAW,CAAC;IACpFC,YAAY,EAAGF,CAAkB,IAAKX,SAAS,CAAC,iBAAiB,EAAEW,CAAC,CAACC,WAAW,CAAC;IACjFE,aAAa,EAAGC,EAAoB,IAAKf,SAAS,CAAC,kBAAkB,EAAEK,SAAS,CAAC;IACjFD,YAAY;IACZY,cAAc,EAAGL,CAAoB,IAAKX,SAAS,CAAC,mBAAmB,EAAEW,CAAC,CAACC,WAAW,CAAC;IACvFK,WAAW,EAAGN,CAAiB,IAAKX,SAAS,CAAC,gBAAgB,EAAEW,CAAC,CAACC,WAAW,CAAC;IAC9EM,YAAY,EAAGP,CAAkB,IAAKX,SAAS,CAAC,iBAAiB,EAAEW,CAAC,CAACC,WAAW,CAAC;IACjFO,SAAS,EAAGR,CAAe,IAAKX,SAAS,CAAC,cAAc,EAAEW,CAAC,CAACC,WAAW,CAAC;IACxEQ,gBAAgB,EAAGT,CAAsB,IAAKX,SAAS,CAAC,qBAAqB,EAAEW,CAAC,CAACC,WAAW,CAAC;IAC7FS,WAAW,EAAGN,EAAkB,IAAKf,SAAS,CAAC,gBAAgB,EAAEK,SAAS,CAAC;IAC3EiB,UAAU,EAAGP,EAAiB,IAAKf,SAAS,CAAC,eAAe,EAAEK,SAAS,CAAC;IACxEkB,UAAU,EAAGR,EAAiB,IAAKf,SAAS,CAAC,eAAe,EAAEK,SAAS,CAAC;IACxEmB,SAAS,EAAGT,EAAgB,IAAKf,SAAS,CAAC,cAAc,EAAEK,SAAS;EACtE,CAAC,CAAC,EACF,CAACL,SAAS,EAAEI,YAAY,CAC1B,CAAC;EAED,OAAO;IACLX,GAAG;IACHgC,kBAAkB,EAAE7B,qBAAqB,CAACC,OAAO;IACjDG,SAAS;IACTS;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -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/core';
|
|
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,wBAAwB;AAI1E;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
|
|
6
|
+
import { TrueSheet } from '../TrueSheet';
|
|
7
7
|
import { useReanimatedTrueSheet } from "./ReanimatedTrueSheetProvider.js";
|
|
8
|
-
import { useReanimatedPositionChangeHandler } from
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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","
|
|
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
|
-
|
|
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;
|
|
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
|
|
3
|
+
export * from './ReanimatedTrueSheet';
|
|
4
4
|
export * from "./ReanimatedTrueSheetProvider.js";
|
|
5
|
-
export * from
|
|
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,
|
|
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;
|
|
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,9 @@
|
|
|
1
|
+
# vaul
|
|
2
|
+
|
|
3
|
+
Originally forked from [vaul](https://github.com/emilkowalski/vaul) by Emil Kowalski at `v1.1.2`. Upstream is unmaintained; maintained here as part of truesheet's web renderer.
|
|
4
|
+
|
|
5
|
+
Only external runtime dep: `@radix-ui/react-dialog`.
|
|
6
|
+
|
|
7
|
+
## License
|
|
8
|
+
|
|
9
|
+
vaul is MIT-licensed. See the [upstream LICENSE](https://github.com/emilkowalski/vaul/blob/main/LICENSE.md). Original copyright remains with Emil Kowalski.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export function isMobileFirefox() {
|
|
4
|
+
const userAgent = navigator.userAgent;
|
|
5
|
+
return typeof window !== 'undefined' && (/Firefox/.test(userAgent) && /Mobile/.test(userAgent) ||
|
|
6
|
+
// Android Firefox
|
|
7
|
+
/FxiOS/.test(userAgent)) // iOS Firefox
|
|
8
|
+
;
|
|
9
|
+
}
|
|
10
|
+
export function isMac() {
|
|
11
|
+
return testPlatform(/^Mac/);
|
|
12
|
+
}
|
|
13
|
+
export function isIPhone() {
|
|
14
|
+
return testPlatform(/^iPhone/);
|
|
15
|
+
}
|
|
16
|
+
export function isSafari() {
|
|
17
|
+
return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
18
|
+
}
|
|
19
|
+
export function isIPad() {
|
|
20
|
+
return testPlatform(/^iPad/) ||
|
|
21
|
+
// iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
|
|
22
|
+
isMac() && navigator.maxTouchPoints > 1;
|
|
23
|
+
}
|
|
24
|
+
export function isIOS() {
|
|
25
|
+
return isIPhone() || isIPad();
|
|
26
|
+
}
|
|
27
|
+
export function testPlatform(re) {
|
|
28
|
+
return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.platform) : undefined;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isMobileFirefox","userAgent","navigator","window","test","isMac","testPlatform","isIPhone","isSafari","isIPad","maxTouchPoints","isIOS","re","platform","undefined"],"sourceRoot":"../../../../src","sources":["web/vaul/browser.ts"],"mappings":";;AAAA,OAAO,SAASA,eAAeA,CAAA,EAAwB;EACrD,MAAMC,SAAS,GAAGC,SAAS,CAACD,SAAS;EACrC,OACE,OAAOE,MAAM,KAAK,WAAW,KAC3B,SAAS,CAACC,IAAI,CAACH,SAAS,CAAC,IAAI,QAAQ,CAACG,IAAI,CAACH,SAAS,CAAC;EAAK;EAC1D,OAAO,CAACG,IAAI,CAACH,SAAS,CAAC,CAAC,CAAC;AAAA;AAE/B;AAEA,OAAO,SAASI,KAAKA,CAAA,EAAwB;EAC3C,OAAOC,YAAY,CAAC,MAAM,CAAC;AAC7B;AAEA,OAAO,SAASC,QAAQA,CAAA,EAAwB;EAC9C,OAAOD,YAAY,CAAC,SAAS,CAAC;AAChC;AAEA,OAAO,SAASE,QAAQA,CAAA,EAAwB;EAC9C,OAAO,gCAAgC,CAACJ,IAAI,CAACF,SAAS,CAACD,SAAS,CAAC;AACnE;AAEA,OAAO,SAASQ,MAAMA,CAAA,EAAwB;EAC5C,OACEH,YAAY,CAAC,OAAO,CAAC;EACrB;EACCD,KAAK,CAAC,CAAC,IAAIH,SAAS,CAACQ,cAAc,GAAG,CAAE;AAE7C;AAEA,OAAO,SAASC,KAAKA,CAAA,EAAwB;EAC3C,OAAOJ,QAAQ,CAAC,CAAC,IAAIE,MAAM,CAAC,CAAC;AAC/B;AAEA,OAAO,SAASH,YAAYA,CAACM,EAAU,EAAuB;EAC5D,OAAO,OAAOT,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACD,SAAS,IAAI,IAAI,GAC5DU,EAAE,CAACR,IAAI,CAACD,MAAM,CAACD,SAAS,CAACW,QAAQ,CAAC,GAClCC,SAAS;AACf","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const TRANSITIONS = {
|
|
4
|
+
DURATION: 0.5,
|
|
5
|
+
EASE: [0.32, 0.72, 0, 1]
|
|
6
|
+
};
|
|
7
|
+
export const VELOCITY_THRESHOLD = 0.4;
|
|
8
|
+
export const DEFAULT_PEEK_HEIGHT = 150;
|
|
9
|
+
export const CLOSE_THRESHOLD = 0.25;
|
|
10
|
+
export const SCROLL_LOCK_TIMEOUT = 100;
|
|
11
|
+
export const BORDER_RADIUS = 8;
|
|
12
|
+
export const NESTED_DISPLACEMENT = 16;
|
|
13
|
+
export const WINDOW_TOP_OFFSET = 26;
|
|
14
|
+
export const DRAG_CLASS = 'vaul-dragging';
|
|
15
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TRANSITIONS","DURATION","EASE","VELOCITY_THRESHOLD","DEFAULT_PEEK_HEIGHT","CLOSE_THRESHOLD","SCROLL_LOCK_TIMEOUT","BORDER_RADIUS","NESTED_DISPLACEMENT","WINDOW_TOP_OFFSET","DRAG_CLASS"],"sourceRoot":"../../../../src","sources":["web/vaul/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,WAAW,GAAG;EACzBC,QAAQ,EAAE,GAAG;EACbC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAG,GAAG;AAErC,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,eAAe,GAAG,IAAI;AAEnC,OAAO,MAAMC,mBAAmB,GAAG,GAAG;AAEtC,OAAO,MAAMC,aAAa,GAAG,CAAC;AAE9B,OAAO,MAAMC,mBAAmB,GAAG,EAAE;AAErC,OAAO,MAAMC,iBAAiB,GAAG,EAAE;AAEnC,OAAO,MAAMC,UAAU,GAAG,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
export const DrawerContext = /*#__PURE__*/React.createContext({
|
|
5
|
+
drawerRef: {
|
|
6
|
+
current: null
|
|
7
|
+
},
|
|
8
|
+
overlayRef: {
|
|
9
|
+
current: null
|
|
10
|
+
},
|
|
11
|
+
onPress: () => {},
|
|
12
|
+
onRelease: () => {},
|
|
13
|
+
onDrag: () => {},
|
|
14
|
+
onTouchDrag: () => {},
|
|
15
|
+
onTouchRelease: () => {},
|
|
16
|
+
onNestedDrag: () => {},
|
|
17
|
+
onNestedOpenChange: () => {},
|
|
18
|
+
onNestedRelease: () => {},
|
|
19
|
+
openProp: undefined,
|
|
20
|
+
dismissible: false,
|
|
21
|
+
isOpen: false,
|
|
22
|
+
isDragging: false,
|
|
23
|
+
keyboardIsOpen: {
|
|
24
|
+
current: false
|
|
25
|
+
},
|
|
26
|
+
snapPointsOffset: null,
|
|
27
|
+
snapPoints: null,
|
|
28
|
+
handleOnly: false,
|
|
29
|
+
modal: false,
|
|
30
|
+
shouldFade: false,
|
|
31
|
+
activeSnapPoint: null,
|
|
32
|
+
onOpenChange: () => {},
|
|
33
|
+
setActiveSnapPoint: () => {},
|
|
34
|
+
closeDrawer: () => {},
|
|
35
|
+
direction: 'bottom',
|
|
36
|
+
shouldAnimate: {
|
|
37
|
+
current: true
|
|
38
|
+
},
|
|
39
|
+
shouldScaleBackground: false,
|
|
40
|
+
setBackgroundColorOnScale: true,
|
|
41
|
+
noBodyStyles: false,
|
|
42
|
+
container: null,
|
|
43
|
+
autoFocus: false,
|
|
44
|
+
onPositionChangeRef: {
|
|
45
|
+
current: undefined
|
|
46
|
+
},
|
|
47
|
+
setContentHeight: () => {},
|
|
48
|
+
detached: false,
|
|
49
|
+
detachedOffset: 0,
|
|
50
|
+
detachedRadius: 0
|
|
51
|
+
});
|
|
52
|
+
export const useDrawerContext = () => {
|
|
53
|
+
const context = React.useContext(DrawerContext);
|
|
54
|
+
if (!context) {
|
|
55
|
+
throw new Error('useDrawerContext must be used within a Drawer.Root');
|
|
56
|
+
}
|
|
57
|
+
return context;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","DrawerContext","createContext","drawerRef","current","overlayRef","onPress","onRelease","onDrag","onTouchDrag","onTouchRelease","onNestedDrag","onNestedOpenChange","onNestedRelease","openProp","undefined","dismissible","isOpen","isDragging","keyboardIsOpen","snapPointsOffset","snapPoints","handleOnly","modal","shouldFade","activeSnapPoint","onOpenChange","setActiveSnapPoint","closeDrawer","direction","shouldAnimate","shouldScaleBackground","setBackgroundColorOnScale","noBodyStyles","container","autoFocus","onPositionChangeRef","setContentHeight","detached","detachedOffset","detachedRadius","useDrawerContext","context","useContext","Error"],"sourceRoot":"../../../../src","sources":["web/vaul/context.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAuDzB,OAAO,MAAMC,aAAa,gBAAGD,KAAK,CAACE,aAAa,CAAqB;EACnEC,SAAS,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC;EAC5BC,UAAU,EAAE;IAAED,OAAO,EAAE;EAAK,CAAC;EAC7BE,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBC,SAAS,EAAEA,CAAA,KAAM,CAAC,CAAC;EACnBC,MAAM,EAAEA,CAAA,KAAM,CAAC,CAAC;EAChBC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,cAAc,EAAEA,CAAA,KAAM,CAAC,CAAC;EACxBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,QAAQ,EAAEC,SAAS;EACnBC,WAAW,EAAE,KAAK;EAClBC,MAAM,EAAE,KAAK;EACbC,UAAU,EAAE,KAAK;EACjBC,cAAc,EAAE;IAAEf,OAAO,EAAE;EAAM,CAAC;EAClCgB,gBAAgB,EAAE,IAAI;EACtBC,UAAU,EAAE,IAAI;EAChBC,UAAU,EAAE,KAAK;EACjBC,KAAK,EAAE,KAAK;EACZC,UAAU,EAAE,KAAK;EACjBC,eAAe,EAAE,IAAI;EACrBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,SAAS,EAAE,QAAQ;EACnBC,aAAa,EAAE;IAAE1B,OAAO,EAAE;EAAK,CAAC;EAChC2B,qBAAqB,EAAE,KAAK;EAC5BC,yBAAyB,EAAE,IAAI;EAC/BC,YAAY,EAAE,KAAK;EACnBC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE;IAAEhC,OAAO,EAAEW;EAAU,CAAC;EAC3CsB,gBAAgB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC1BC,QAAQ,EAAE,KAAK;EACfC,cAAc,EAAE,CAAC;EACjBC,cAAc,EAAE;AAClB,CAAC,CAAC;AAEF,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,OAAO,GAAG1C,KAAK,CAAC2C,UAAU,CAAC1C,aAAa,CAAC;EAC/C,IAAI,CAACyC,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOF,OAAO;AAChB,CAAC","ignoreList":[]}
|