@lodev09/react-native-true-sheet 4.0.0-beta.0 → 4.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +156 -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 +1224 -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/TouchEventDeduper.kt +31 -0
- 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 +1133 -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 +230 -64
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheet.web.js +1203 -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 +95 -0
- package/lib/module/mocks/navigation.js.map +1 -0
- package/lib/module/mocks/navigationExpoRouter.js +21 -0
- package/lib/module/mocks/navigationExpoRouter.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/TrueSheetNavigatorContent.js +73 -0
- package/lib/module/navigation/TrueSheetNavigatorContent.js.map +1 -0
- package/lib/module/navigation/actions.js +50 -0
- package/lib/module/navigation/actions.js.map +1 -0
- package/lib/module/navigation/createTrueSheetRouter.js +166 -0
- package/lib/module/navigation/createTrueSheetRouter.js.map +1 -0
- package/lib/module/navigation/expo-router/index.js +48 -0
- package/lib/module/navigation/expo-router/index.js.map +1 -0
- package/lib/module/navigation/index.js +47 -0
- package/lib/module/navigation/index.js.map +1 -0
- package/lib/module/navigation/navigator.js +10 -0
- package/lib/module/navigation/navigator.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/dom.js +10 -0
- package/lib/module/web/dom.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 +99 -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 +70 -0
- package/lib/typescript/src/mocks/navigation.d.ts.map +1 -0
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +22 -0
- package/lib/typescript/src/mocks/navigationExpoRouter.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/TrueSheetNavigatorContent.d.ts +5 -0
- package/lib/typescript/src/navigation/TrueSheetNavigatorContent.d.ts.map +1 -0
- package/lib/typescript/src/navigation/actions.d.ts +71 -0
- package/lib/typescript/src/navigation/actions.d.ts.map +1 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +14 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts +37 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/index.d.ts +46 -0
- package/lib/typescript/src/navigation/index.d.ts.map +1 -0
- package/lib/typescript/src/navigation/navigator.d.ts +7 -0
- package/lib/typescript/src/navigation/navigator.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 +14 -0
- package/lib/typescript/src/navigation/screen/types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +33 -0
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -0
- package/lib/typescript/src/navigation/types.d.ts +177 -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/dom.d.ts +7 -0
- package/lib/typescript/src/web/dom.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 +95 -36
- package/react-native.config.js +9 -2
- package/src/TrueSheet.tsx +281 -62
- package/src/TrueSheet.types.ts +525 -71
- package/src/TrueSheet.web.tsx +1362 -0
- package/src/TrueSheetPeek.tsx +11 -0
- package/src/TrueSheetPeek.web.tsx +64 -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 +79 -0
- package/src/mocks/navigationExpoRouter.ts +40 -0
- package/src/mocks/reanimated.ts +100 -0
- package/src/navigation/TrueSheetNavigatorContent.tsx +106 -0
- package/src/navigation/actions.ts +78 -0
- package/src/navigation/createTrueSheetRouter.ts +222 -0
- package/src/navigation/expo-router/index.ts +89 -0
- package/src/navigation/index.ts +81 -0
- package/src/navigation/navigator.ts +18 -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 +19 -0
- package/src/navigation/screen/useSheetScreenState.ts +100 -0
- package/src/navigation/types.ts +251 -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/dom.ts +9 -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 +131 -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 @@
|
|
|
1
|
+
{"version":3,"names":["React","DialogPrimitive","Presence","DrawerContext","useDrawerContext","isIOS","isMobileFirefox","BORDER_RADIUS","CLOSE_THRESHOLD","DRAG_CLASS","NESTED_DISPLACEMENT","SCROLL_LOCK_TIMEOUT","TRANSITIONS","VELOCITY_THRESHOLD","WINDOW_TOP_OFFSET","dampenValue","getTranslate","isVertical","reset","set","useComposedRefs","useControllableState","usePositionFixed","isInput","isScrollable","usePreventScroll","useScaleBackground","useSnapPoints","jsx","_jsx","jsxs","_jsxs","Root","open","openProp","onOpenChange","children","onDrag","onDragProp","onRelease","onReleaseProp","snapPoints","shouldScaleBackground","setBackgroundColorOnScale","closeThreshold","scrollLockTimeout","dismissible","draggable","handleOnly","fadeFromIndex","length","activeSnapPoint","activeSnapPointProp","setActiveSnapPoint","setActiveSnapPointProp","fixed","modal","onClose","nested","noBodyStyles","direction","defaultOpen","disablePreventScroll","snapToSequentialPoint","preventScrollRestoration","repositionInputs","onAnimationEnd","onPositionChange","container","autoFocus","detached","detachedOffset","detachedRadius","detachedWrapperStyle","maxContentHeight","peekHeight","initialAnimated","onContentHeightChange","contentHeight","contentHeightProp","isOpen","setIsOpen","defaultProp","prop","onChange","o","restorePositionSetting","setTimeout","DURATION","hasBeenOpened","setHasBeenOpened","useState","isDragging","setIsDragging","justReleased","setJustReleased","overlayRef","useRef","openTime","dragStartTime","dragEndTime","lastTimeDragPrevented","isAllowedToDrag","nestedOpenChangeTimer","pointerStart","keyboardIsOpen","shouldAnimate","previousDiffFromInitial","drawerRef","drawerHeightRef","current","getBoundingClientRect","height","drawerWidthRef","width","initialDrawerHeight","measuredContentHeight","setContentHeight","onContentHeightChangeRef","useEffect","onSnapPointChange","useCallback","activeSnapPointIndex","snapPointsOffset","Date","onReleaseSnapPoints","onDragSnapPoints","shouldFade","getPercentageDragged","getSnapPointsPercentageDragged","isDisabled","frozenScrollablesRef","freezeScrollables","target","frozen","element","HTMLElement","push","overflowX","style","overflowY","parentElement","unfreezeScrollables","getScale","window","innerWidth","onPress","event","contains","addEventListener","once","setPointerCapture","pointerId","pageY","pageX","shouldDrag","el","isDraggingInDirection","highlightedText","getSelection","toString","swipeAmount","date","tagName","hasAttribute","closest","getTime","atLastSnapPoint","restOffset","scrollHeight","clientHeight","scrollTop","getAttribute","parentNode","drag","pointerEvent","directionMultiplier","draggedDistance","noCloseSnapPointsPreCondition","absDraggedDistance","Math","abs","wrapper","document","querySelector","drawerDimension","percentageDragged","snapPointPercentageDragged","classList","add","pointerType","transition","dampenedDraggedDistance","translateValue","min","transform","opacityValue","opacity","scaleValue","borderRadiusValue","max","borderRadius","requestAnimationFrame","undefined","onPositionChangeRef","onVisualViewportChange","focusedElement","activeElement","visualViewportHeight","visualViewport","totalHeight","innerHeight","diffFromInitial","drawerHeight","isTallEnough","offsetFromTop","top","activeSnapPointHeight","newDrawerHeight","bottom","removeEventListener","closeDrawer","fromWithin","cancelDrag","resetDrawer","currentSwipeAmount","EASE","join","overflow","transformOrigin","transitionProperty","transitionDuration","transitionTimingFunction","remove","release","wrapperSwipeAmount","hasMoved","Boolean","Number","isNaN","timeTaken","distMoved","velocity","visibleDrawerHeight","visibleDrawerWidth","isHorizontalSwipe","documentElement","scrollBehavior","onNestedOpenChange","scale","initialTranslate","clearTimeout","onNestedDrag","_event","initialScale","newScale","newTranslate","onNestedRelease","dim","translate","Provider","value","onTouchDrag","onTouchRelease","Overlay","forwardRef","rest","ref","composedRef","hasSnapPoints","delayedSnapPoints","setDelayedSnapPoints","onMouseUp","isBelowFade","present","overlayStyle","displayName","pointerEvents","Content","onPointerDownOutside","onEscapeKeyDown","onOpenAutoFocus","detachedSiblings","detachedWrapperStyleProp","autoRoRef","setAutoSizeNode","node","disconnect","measure","offsetHeight","ro","ResizeObserver","observe","pointerStartRef","lastKnownPointerEventRef","continuingCanceledTouchRef","wasBeyondThePointRef","isDeltaInDirection","delta","dir","threshold","deltaY","y","deltaX","x","isDeltaX","dFactor","includes","isReverseDirection","positionTrackingRef","drawer","state","rafId","movingCount","lastPosition","NaN","start","stop","emit","cb","position","tick","onTransitionRun","e","propertyName","onTransitionDone","onAnimationStart","onAnimationDone","cancelAnimationFrame","handleOnPointerUp","wrapperStyle","useMemo","left","right","contain","borderBottomLeftRadius","borderBottomRightRadius","wasOpenRef","viewportH","contentNode","onPointerDown","preventDefault","defaultPrevented","onFocusOutside","onPointerMove","yPosition","xPosition","swipeStartThreshold","isAllowedToSwipe","onPointerUp","onPointerCancel","onPointerOut","onTouchMove","touch","touches","onTouchEnd","changedTouches","onTouchCancel","onContextMenu","autoSizeWrapperStyle","display","LONG_HANDLE_PRESS_TIMEOUT","DOUBLE_TAP_TIMEOUT","Handle","preventCycle","closeTimeoutIdRef","shouldCancelInteractionRef","handleStartCycle","handleCancelInteraction","handleCycleSnapPoints","isLastSnapPoint","currentSnapIndex","findIndex","point","nextSnapPoint","handleStartInteraction","onClick","NestedRoot","nestedIsOpen","Error","p","Portal","props","context","portalProps","Drawer","Trigger","Close","Title","Description"],"sourceRoot":"../../../../src","sources":["web/vaul/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/* Registered so it can transition in sync with `transform` during snaps.
|
|
2
|
+
Descendants derive their visible-height layout from it, so `inherits: true`
|
|
3
|
+
is required. Unsupported browsers ignore this and the value just jumps to
|
|
4
|
+
the snap target instead of animating. */
|
|
5
|
+
@property --snap-point-height {
|
|
6
|
+
syntax: '<length>';
|
|
7
|
+
inherits: true;
|
|
8
|
+
initial-value: 0px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
[data-vaul-drawer] {
|
|
12
|
+
touch-action: none;
|
|
13
|
+
will-change: transform;
|
|
14
|
+
transition:
|
|
15
|
+
transform 0.5s cubic-bezier(0.32, 0.72, 0, 1),
|
|
16
|
+
--snap-point-height 0.5s cubic-bezier(0.32, 0.72, 0, 1);
|
|
17
|
+
animation-duration: 0.5s;
|
|
18
|
+
animation-timing-function: cubic-bezier(0.32, 0.72, 0, 1);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
[data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='bottom'][data-state='open'] {
|
|
22
|
+
animation-name: slideFromBottom;
|
|
23
|
+
}
|
|
24
|
+
[data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='bottom'][data-state='closed'] {
|
|
25
|
+
animation-name: slideToBottom;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Drawers always dismiss by sliding the wrapper off-screen, so we don't want
|
|
29
|
+
vaul's default `slideTo*` drawer keyframes (they'd stack with the wrapper
|
|
30
|
+
translate and look twice as fast). Override with a no-op animation of
|
|
31
|
+
matching duration so Radix Presence still waits for it before unmounting.
|
|
32
|
+
Specificity needs to beat the 4-attribute `slideTo*` selectors above. */
|
|
33
|
+
[data-vaul-drawer][data-vaul-drawer-direction='bottom'][data-vaul-animate='true'][data-state='closed'] {
|
|
34
|
+
animation-name: vaulHold;
|
|
35
|
+
animation-duration: 0.5s;
|
|
36
|
+
}
|
|
37
|
+
@keyframes vaulHold {
|
|
38
|
+
from {
|
|
39
|
+
opacity: 1;
|
|
40
|
+
}
|
|
41
|
+
to {
|
|
42
|
+
opacity: 1;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
[data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='top'][data-state='open'] {
|
|
47
|
+
animation-name: slideFromTop;
|
|
48
|
+
}
|
|
49
|
+
[data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='top'][data-state='closed'] {
|
|
50
|
+
animation-name: slideToTop;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
[data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='left'][data-state='open'] {
|
|
54
|
+
animation-name: slideFromLeft;
|
|
55
|
+
}
|
|
56
|
+
[data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='left'][data-state='closed'] {
|
|
57
|
+
animation-name: slideToLeft;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
[data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='right'][data-state='open'] {
|
|
61
|
+
animation-name: slideFromRight;
|
|
62
|
+
}
|
|
63
|
+
[data-vaul-drawer][data-vaul-snap-points='false'][data-vaul-drawer-direction='right'][data-state='closed'] {
|
|
64
|
+
animation-name: slideToRight;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
[data-vaul-drawer][data-vaul-snap-points='true'][data-vaul-drawer-direction='bottom'] {
|
|
68
|
+
transform: translate3d(0, var(--initial-transform, 100%), 0);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
[data-vaul-drawer][data-vaul-snap-points='true'][data-vaul-drawer-direction='top'] {
|
|
72
|
+
transform: translate3d(0, calc(var(--initial-transform, 100%) * -1), 0);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
[data-vaul-drawer][data-vaul-snap-points='true'][data-vaul-drawer-direction='left'] {
|
|
76
|
+
transform: translate3d(calc(var(--initial-transform, 100%) * -1), 0, 0);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
[data-vaul-drawer][data-vaul-snap-points='true'][data-vaul-drawer-direction='right'] {
|
|
80
|
+
transform: translate3d(var(--initial-transform, 100%), 0, 0);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
[data-vaul-drawer][data-vaul-delayed-snap-points='true'][data-vaul-drawer-direction='top'] {
|
|
84
|
+
transform: translate3d(0, var(--snap-point-height, 0), 0);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
[data-vaul-drawer][data-vaul-delayed-snap-points='true'][data-vaul-drawer-direction='bottom'] {
|
|
88
|
+
transform: translate3d(0, var(--snap-point-height, 0), 0);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
[data-vaul-drawer][data-vaul-delayed-snap-points='true'][data-vaul-drawer-direction='left'] {
|
|
92
|
+
transform: translate3d(var(--snap-point-height, 0), 0, 0);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
[data-vaul-drawer][data-vaul-delayed-snap-points='true'][data-vaul-drawer-direction='right'] {
|
|
96
|
+
transform: translate3d(var(--snap-point-height, 0), 0, 0);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Below the last snap point, vertical touch pans should move the sheet — not
|
|
100
|
+
scroll the content (matches native). touch-action is latched at gesture
|
|
101
|
+
start and ancestors above a scroller aren't consulted, so every descendant
|
|
102
|
+
(nested scrollers included) must opt out of vertical panning ahead of time.
|
|
103
|
+
pan-x keeps horizontal carousels inside the content working. Wheel/trackpad
|
|
104
|
+
scrolling is unaffected. */
|
|
105
|
+
[data-vaul-scroll-locked],
|
|
106
|
+
[data-vaul-scroll-locked] * {
|
|
107
|
+
touch-action: pan-x !important;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
[data-vaul-overlay][data-vaul-snap-points='false'] {
|
|
111
|
+
animation-duration: 0.5s;
|
|
112
|
+
animation-timing-function: cubic-bezier(0.32, 0.72, 0, 1);
|
|
113
|
+
}
|
|
114
|
+
[data-vaul-overlay][data-vaul-snap-points='false'][data-state='open'] {
|
|
115
|
+
animation-name: fadeIn;
|
|
116
|
+
}
|
|
117
|
+
[data-vaul-overlay][data-state='closed'] {
|
|
118
|
+
animation-name: fadeOut;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
[data-vaul-animate='false'] {
|
|
122
|
+
animation: none !important;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
[data-vaul-overlay][data-vaul-snap-points='true'] {
|
|
126
|
+
opacity: 0;
|
|
127
|
+
transition: opacity 0.5s cubic-bezier(0.32, 0.72, 0, 1);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
[data-vaul-drawer]:not([data-vaul-custom-container='true'])::after {
|
|
131
|
+
content: '';
|
|
132
|
+
position: absolute;
|
|
133
|
+
background: inherit;
|
|
134
|
+
background-color: inherit;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
[data-vaul-drawer][data-vaul-drawer-direction='top']::after {
|
|
138
|
+
top: initial;
|
|
139
|
+
bottom: 100%;
|
|
140
|
+
left: 0;
|
|
141
|
+
right: 0;
|
|
142
|
+
height: 200%;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
[data-vaul-drawer][data-vaul-drawer-direction='bottom']::after {
|
|
146
|
+
top: 100%;
|
|
147
|
+
bottom: initial;
|
|
148
|
+
left: 0;
|
|
149
|
+
right: 0;
|
|
150
|
+
height: 200%;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
[data-vaul-drawer][data-vaul-drawer-direction='left']::after {
|
|
154
|
+
left: initial;
|
|
155
|
+
right: 100%;
|
|
156
|
+
top: 0;
|
|
157
|
+
bottom: 0;
|
|
158
|
+
width: 200%;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
[data-vaul-drawer][data-vaul-drawer-direction='right']::after {
|
|
162
|
+
left: 100%;
|
|
163
|
+
right: initial;
|
|
164
|
+
top: 0;
|
|
165
|
+
bottom: 0;
|
|
166
|
+
width: 200%;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
[data-vaul-overlay][data-vaul-snap-points='true'][data-vaul-delayed-snap-points='true'][data-vaul-snap-points-overlay='true'] {
|
|
170
|
+
opacity: 1;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
[data-vaul-handle] {
|
|
174
|
+
display: block;
|
|
175
|
+
position: relative;
|
|
176
|
+
opacity: 0.7;
|
|
177
|
+
background: #e2e2e4;
|
|
178
|
+
margin-left: auto;
|
|
179
|
+
margin-right: auto;
|
|
180
|
+
height: 5px;
|
|
181
|
+
width: 32px;
|
|
182
|
+
border-radius: 1rem;
|
|
183
|
+
touch-action: pan-y;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
[data-vaul-handle]:hover,
|
|
187
|
+
[data-vaul-handle]:active {
|
|
188
|
+
opacity: 1;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
[data-vaul-handle-hitarea] {
|
|
192
|
+
position: absolute;
|
|
193
|
+
left: 50%;
|
|
194
|
+
top: 50%;
|
|
195
|
+
transform: translate(-50%, -50%);
|
|
196
|
+
width: max(100%, 2.75rem); /* 44px */
|
|
197
|
+
height: max(100%, 2.75rem); /* 44px */
|
|
198
|
+
touch-action: inherit;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
@media (hover: hover) and (pointer: fine) {
|
|
202
|
+
[data-vaul-drawer] {
|
|
203
|
+
user-select: none;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@media (pointer: fine) {
|
|
208
|
+
[data-vaul-handle-hitarea] {
|
|
209
|
+
width: 100%;
|
|
210
|
+
height: 100%;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@keyframes fadeIn {
|
|
215
|
+
from {
|
|
216
|
+
opacity: 0;
|
|
217
|
+
}
|
|
218
|
+
to {
|
|
219
|
+
opacity: 1;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@keyframes fadeOut {
|
|
224
|
+
to {
|
|
225
|
+
opacity: 0;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
@keyframes slideFromBottom {
|
|
230
|
+
from {
|
|
231
|
+
transform: translate3d(0, var(--initial-transform, 100%), 0);
|
|
232
|
+
}
|
|
233
|
+
to {
|
|
234
|
+
transform: translate3d(0, 0, 0);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
@keyframes slideToBottom {
|
|
239
|
+
to {
|
|
240
|
+
transform: translate3d(0, var(--initial-transform, 100%), 0);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
@keyframes slideFromTop {
|
|
245
|
+
from {
|
|
246
|
+
transform: translate3d(0, calc(var(--initial-transform, 100%) * -1), 0);
|
|
247
|
+
}
|
|
248
|
+
to {
|
|
249
|
+
transform: translate3d(0, 0, 0);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
@keyframes slideToTop {
|
|
254
|
+
to {
|
|
255
|
+
transform: translate3d(0, calc(var(--initial-transform, 100%) * -1), 0);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
@keyframes slideFromLeft {
|
|
260
|
+
from {
|
|
261
|
+
transform: translate3d(calc(var(--initial-transform, 100%) * -1), 0, 0);
|
|
262
|
+
}
|
|
263
|
+
to {
|
|
264
|
+
transform: translate3d(0, 0, 0);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
@keyframes slideToLeft {
|
|
269
|
+
to {
|
|
270
|
+
transform: translate3d(calc(var(--initial-transform, 100%) * -1), 0, 0);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
@keyframes slideFromRight {
|
|
275
|
+
from {
|
|
276
|
+
transform: translate3d(var(--initial-transform, 100%), 0, 0);
|
|
277
|
+
}
|
|
278
|
+
to {
|
|
279
|
+
transform: translate3d(0, 0, 0);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
@keyframes slideToRight {
|
|
284
|
+
to {
|
|
285
|
+
transform: translate3d(var(--initial-transform, 100%), 0, 0);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["web/vaul/style.css.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["web/vaul/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// This code comes from https://github.com/radix-ui/primitives/tree/main/packages/react/compose-refs
|
|
4
|
+
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
/**
|
|
7
|
+
* Set a given ref to a given value
|
|
8
|
+
* This utility takes care of different types of refs: callback refs and RefObject(s)
|
|
9
|
+
*/
|
|
10
|
+
function setRef(ref, value) {
|
|
11
|
+
if (typeof ref === 'function') {
|
|
12
|
+
ref(value);
|
|
13
|
+
} else if (ref !== null && ref !== undefined) {
|
|
14
|
+
ref.current = value;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A utility to compose multiple refs together
|
|
20
|
+
* Accepts callback refs and RefObject(s)
|
|
21
|
+
*/
|
|
22
|
+
function composeRefs(...refs) {
|
|
23
|
+
return node => refs.forEach(ref => setRef(ref, node));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* A custom hook that composes multiple refs
|
|
28
|
+
* Accepts callback refs and RefObject(s)
|
|
29
|
+
*/
|
|
30
|
+
function useComposedRefs(...refs) {
|
|
31
|
+
return React.useCallback(composeRefs(...refs), refs);
|
|
32
|
+
}
|
|
33
|
+
export { composeRefs, useComposedRefs };
|
|
34
|
+
//# sourceMappingURL=use-composed-refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","setRef","ref","value","undefined","current","composeRefs","refs","node","forEach","useComposedRefs","useCallback"],"sourceRoot":"../../../../src","sources":["web/vaul/use-composed-refs.ts"],"mappings":";;AAAA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA;AACA;AACA;AACA,SAASC,MAAMA,CAAIC,GAAmB,EAAEC,KAAQ,EAAE;EAChD,IAAI,OAAOD,GAAG,KAAK,UAAU,EAAE;IAC7BA,GAAG,CAACC,KAAK,CAAC;EACZ,CAAC,MAAM,IAAID,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAKE,SAAS,EAAE;IAC3CF,GAAG,CAA+BG,OAAO,GAAGF,KAAK;EACpD;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASG,WAAWA,CAAI,GAAGC,IAAsB,EAAE;EACjD,OAAQC,IAAO,IAAKD,IAAI,CAACE,OAAO,CAAEP,GAAG,IAAKD,MAAM,CAACC,GAAG,EAAEM,IAAI,CAAC,CAAC;AAC9D;;AAEA;AACA;AACA;AACA;AACA,SAASE,eAAeA,CAAI,GAAGH,IAAsB,EAAE;EACrD,OAAOP,KAAK,CAACW,WAAW,CAACL,WAAW,CAAC,GAAGC,IAAI,CAAC,EAAEA,IAAI,CAAC;AACtD;AAEA,SAASD,WAAW,EAAEI,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// This code comes from https://github.com/radix-ui/primitives/blob/main/packages/react/use-controllable-state/src/useControllableState.tsx
|
|
4
|
+
|
|
5
|
+
import React from 'react';
|
|
6
|
+
function useCallbackRef(callback) {
|
|
7
|
+
const callbackRef = React.useRef(callback);
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
callbackRef.current = callback;
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
// https://github.com/facebook/react/issues/19240
|
|
13
|
+
return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);
|
|
14
|
+
}
|
|
15
|
+
function useUncontrolledState({
|
|
16
|
+
defaultProp,
|
|
17
|
+
onChange
|
|
18
|
+
}) {
|
|
19
|
+
const uncontrolledState = React.useState(defaultProp);
|
|
20
|
+
const [value] = uncontrolledState;
|
|
21
|
+
const prevValueRef = React.useRef(value);
|
|
22
|
+
const handleChange = useCallbackRef(onChange);
|
|
23
|
+
React.useEffect(() => {
|
|
24
|
+
if (prevValueRef.current !== value) {
|
|
25
|
+
handleChange(value);
|
|
26
|
+
prevValueRef.current = value;
|
|
27
|
+
}
|
|
28
|
+
}, [value, prevValueRef, handleChange]);
|
|
29
|
+
return uncontrolledState;
|
|
30
|
+
}
|
|
31
|
+
export function useControllableState({
|
|
32
|
+
prop,
|
|
33
|
+
defaultProp,
|
|
34
|
+
onChange = () => {}
|
|
35
|
+
}) {
|
|
36
|
+
const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({
|
|
37
|
+
defaultProp,
|
|
38
|
+
onChange
|
|
39
|
+
});
|
|
40
|
+
const isControlled = prop !== undefined;
|
|
41
|
+
const value = isControlled ? prop : uncontrolledProp;
|
|
42
|
+
const handleChange = useCallbackRef(onChange);
|
|
43
|
+
const setValue = React.useCallback(nextValue => {
|
|
44
|
+
if (isControlled) {
|
|
45
|
+
const setter = nextValue;
|
|
46
|
+
const next = typeof nextValue === 'function' ? setter(prop) : nextValue;
|
|
47
|
+
if (next !== prop) handleChange(next);
|
|
48
|
+
} else {
|
|
49
|
+
setUncontrolledProp(nextValue);
|
|
50
|
+
}
|
|
51
|
+
}, [isControlled, prop, setUncontrolledProp, handleChange]);
|
|
52
|
+
return [value, setValue];
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=use-controllable-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallbackRef","callback","callbackRef","useRef","useEffect","current","useMemo","args","useUncontrolledState","defaultProp","onChange","uncontrolledState","useState","value","prevValueRef","handleChange","useControllableState","prop","uncontrolledProp","setUncontrolledProp","isControlled","undefined","setValue","useCallback","nextValue","setter","next"],"sourceRoot":"../../../../src","sources":["web/vaul/use-controllable-state.ts"],"mappings":";;AAAA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAUzB,SAASC,cAAcA,CAAoCC,QAAuB,EAAK;EACrF,MAAMC,WAAW,GAAGH,KAAK,CAACI,MAAM,CAACF,QAAQ,CAAC;EAE1CF,KAAK,CAACK,SAAS,CAAC,MAAM;IACpBF,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAChC,CAAC,CAAC;;EAEF;EACA,OAAOF,KAAK,CAACO,OAAO,CAAC,MAAO,CAAC,GAAGC,IAAI,KAAKL,WAAW,CAACG,OAAO,GAAG,GAAGE,IAAI,CAAO,EAAE,EAAE,CAAC;AACpF;AAEA,SAASC,oBAAoBA,CAAI;EAC/BC,WAAW;EACXC;AAC2C,CAAC,EAAE;EAC9C,MAAMC,iBAAiB,GAAGZ,KAAK,CAACa,QAAQ,CAAgBH,WAAW,CAAC;EACpE,MAAM,CAACI,KAAK,CAAC,GAAGF,iBAAiB;EACjC,MAAMG,YAAY,GAAGf,KAAK,CAACI,MAAM,CAACU,KAAK,CAAC;EACxC,MAAME,YAAY,GAAGf,cAAc,CAACU,QAAQ,CAAC;EAE7CX,KAAK,CAACK,SAAS,CAAC,MAAM;IACpB,IAAIU,YAAY,CAACT,OAAO,KAAKQ,KAAK,EAAE;MAClCE,YAAY,CAACF,KAAU,CAAC;MACxBC,YAAY,CAACT,OAAO,GAAGQ,KAAK;IAC9B;EACF,CAAC,EAAE,CAACA,KAAK,EAAEC,YAAY,EAAEC,YAAY,CAAC,CAAC;EAEvC,OAAOJ,iBAAiB;AAC1B;AACA,OAAO,SAASK,oBAAoBA,CAAI;EACtCC,IAAI;EACJR,WAAW;EACXC,QAAQ,GAAGA,CAAA,KAAM,CAAC;AACW,CAAC,EAAE;EAChC,MAAM,CAACQ,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGX,oBAAoB,CAAC;IAAEC,WAAW;IAAEC;EAAS,CAAC,CAAC;EAC/F,MAAMU,YAAY,GAAGH,IAAI,KAAKI,SAAS;EACvC,MAAMR,KAAK,GAAGO,YAAY,GAAGH,IAAI,GAAGC,gBAAgB;EACpD,MAAMH,YAAY,GAAGf,cAAc,CAACU,QAAQ,CAAC;EAE7C,MAAMY,QAA6D,GAAGvB,KAAK,CAACwB,WAAW,CACpFC,SAAS,IAAK;IACb,IAAIJ,YAAY,EAAE;MAChB,MAAMK,MAAM,GAAGD,SAA0B;MACzC,MAAME,IAAI,GAAG,OAAOF,SAAS,KAAK,UAAU,GAAGC,MAAM,CAACR,IAAI,CAAC,GAAGO,SAAS;MACvE,IAAIE,IAAI,KAAKT,IAAI,EAAEF,YAAY,CAACW,IAAS,CAAC;IAC5C,CAAC,MAAM;MACLP,mBAAmB,CAACK,SAAS,CAAC;IAChC;EACF,CAAC,EACD,CAACJ,YAAY,EAAEH,IAAI,EAAEE,mBAAmB,EAAEJ,YAAY,CACxD,CAAC;EAED,OAAO,CAACF,KAAK,EAAES,QAAQ,CAAC;AAC1B","ignoreList":[]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { isSafari } from "./browser.js";
|
|
5
|
+
let previousBodyPosition = null;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* This hook is necessary to prevent buggy behavior on iOS devices (need to test on Android).
|
|
9
|
+
* I won't get into too much detail about what bugs it solves, but so far I've found that setting the body to `position: fixed` is the most reliable way to prevent those bugs.
|
|
10
|
+
* Issues that this hook solves:
|
|
11
|
+
* https://github.com/emilkowalski/vaul/issues/435
|
|
12
|
+
* https://github.com/emilkowalski/vaul/issues/433
|
|
13
|
+
* And more that I discovered, but were just not reported.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export function usePositionFixed({
|
|
17
|
+
isOpen,
|
|
18
|
+
modal,
|
|
19
|
+
nested,
|
|
20
|
+
hasBeenOpened,
|
|
21
|
+
preventScrollRestoration,
|
|
22
|
+
noBodyStyles
|
|
23
|
+
}) {
|
|
24
|
+
const [activeUrl, setActiveUrl] = React.useState(() => typeof window !== 'undefined' ? window.location.href : '');
|
|
25
|
+
const scrollPos = React.useRef(0);
|
|
26
|
+
const setPositionFixed = React.useCallback(() => {
|
|
27
|
+
// All browsers on iOS will return true here.
|
|
28
|
+
if (!isSafari()) return;
|
|
29
|
+
|
|
30
|
+
// If previousBodyPosition is already set, don't set it again.
|
|
31
|
+
if (previousBodyPosition === null && isOpen && !noBodyStyles) {
|
|
32
|
+
previousBodyPosition = {
|
|
33
|
+
position: document.body.style.position,
|
|
34
|
+
top: document.body.style.top,
|
|
35
|
+
left: document.body.style.left,
|
|
36
|
+
height: document.body.style.height,
|
|
37
|
+
right: 'unset'
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Update the dom inside an animation frame
|
|
41
|
+
const {
|
|
42
|
+
scrollX,
|
|
43
|
+
innerHeight
|
|
44
|
+
} = window;
|
|
45
|
+
document.body.style.setProperty('position', 'fixed', 'important');
|
|
46
|
+
Object.assign(document.body.style, {
|
|
47
|
+
top: `${-scrollPos.current}px`,
|
|
48
|
+
left: `${-scrollX}px`,
|
|
49
|
+
right: '0px',
|
|
50
|
+
height: 'auto'
|
|
51
|
+
});
|
|
52
|
+
window.setTimeout(() => window.requestAnimationFrame(() => {
|
|
53
|
+
// Attempt to check if the bottom bar appeared due to the position change
|
|
54
|
+
const bottomBarHeight = innerHeight - window.innerHeight;
|
|
55
|
+
if (bottomBarHeight && scrollPos.current >= innerHeight) {
|
|
56
|
+
// Move the content further up so that the bottom bar doesn't hide it
|
|
57
|
+
document.body.style.top = `${-(scrollPos.current + bottomBarHeight)}px`;
|
|
58
|
+
}
|
|
59
|
+
}), 300);
|
|
60
|
+
}
|
|
61
|
+
}, [isOpen]);
|
|
62
|
+
const restorePositionSetting = React.useCallback(() => {
|
|
63
|
+
// All browsers on iOS will return true here.
|
|
64
|
+
if (!isSafari()) return;
|
|
65
|
+
if (previousBodyPosition !== null && !noBodyStyles) {
|
|
66
|
+
// Convert the position from "px" to Int
|
|
67
|
+
const y = -parseInt(document.body.style.top, 10);
|
|
68
|
+
const x = -parseInt(document.body.style.left, 10);
|
|
69
|
+
|
|
70
|
+
// Restore styles
|
|
71
|
+
Object.assign(document.body.style, previousBodyPosition);
|
|
72
|
+
window.requestAnimationFrame(() => {
|
|
73
|
+
if (preventScrollRestoration && activeUrl !== window.location.href) {
|
|
74
|
+
setActiveUrl(window.location.href);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
window.scrollTo(x, y);
|
|
78
|
+
});
|
|
79
|
+
previousBodyPosition = null;
|
|
80
|
+
}
|
|
81
|
+
}, [activeUrl]);
|
|
82
|
+
React.useEffect(() => {
|
|
83
|
+
function onScroll() {
|
|
84
|
+
scrollPos.current = window.scrollY;
|
|
85
|
+
}
|
|
86
|
+
onScroll();
|
|
87
|
+
window.addEventListener('scroll', onScroll);
|
|
88
|
+
return () => {
|
|
89
|
+
window.removeEventListener('scroll', onScroll);
|
|
90
|
+
};
|
|
91
|
+
}, []);
|
|
92
|
+
React.useEffect(() => {
|
|
93
|
+
if (!modal) return;
|
|
94
|
+
return () => {
|
|
95
|
+
if (typeof document === 'undefined') return;
|
|
96
|
+
|
|
97
|
+
// Another drawer is opened, safe to ignore the execution
|
|
98
|
+
const hasDrawerOpened = !!document.querySelector('[data-vaul-drawer]');
|
|
99
|
+
if (hasDrawerOpened) return;
|
|
100
|
+
restorePositionSetting();
|
|
101
|
+
};
|
|
102
|
+
}, [modal, restorePositionSetting]);
|
|
103
|
+
React.useEffect(() => {
|
|
104
|
+
if (nested || !hasBeenOpened) return;
|
|
105
|
+
// This is needed to force Safari toolbar to show **before** the drawer starts animating to prevent a gnarly shift from happening
|
|
106
|
+
if (isOpen) {
|
|
107
|
+
// avoid for standalone mode (PWA)
|
|
108
|
+
const isStandalone = window.matchMedia('(display-mode: standalone)').matches;
|
|
109
|
+
!isStandalone && setPositionFixed();
|
|
110
|
+
if (!modal) {
|
|
111
|
+
window.setTimeout(() => {
|
|
112
|
+
restorePositionSetting();
|
|
113
|
+
}, 500);
|
|
114
|
+
}
|
|
115
|
+
} else {
|
|
116
|
+
restorePositionSetting();
|
|
117
|
+
}
|
|
118
|
+
}, [isOpen, hasBeenOpened, activeUrl, modal, nested, setPositionFixed, restorePositionSetting]);
|
|
119
|
+
return {
|
|
120
|
+
restorePositionSetting
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=use-position-fixed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","isSafari","previousBodyPosition","usePositionFixed","isOpen","modal","nested","hasBeenOpened","preventScrollRestoration","noBodyStyles","activeUrl","setActiveUrl","useState","window","location","href","scrollPos","useRef","setPositionFixed","useCallback","position","document","body","style","top","left","height","right","scrollX","innerHeight","setProperty","Object","assign","current","setTimeout","requestAnimationFrame","bottomBarHeight","restorePositionSetting","y","parseInt","x","scrollTo","useEffect","onScroll","scrollY","addEventListener","removeEventListener","hasDrawerOpened","querySelector","isStandalone","matchMedia","matches"],"sourceRoot":"../../../../src","sources":["web/vaul/use-position-fixed.ts"],"mappings":"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","ignoreList":[]}
|