@lodev09/react-native-true-sheet 4.0.0-beta.3 → 4.0.0-beta.30
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/README.md +28 -5
- package/android/build.gradle +23 -1
- package/android/proguard-rules.pro +3 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContainerView.kt +50 -16
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentView.kt +303 -184
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetContentViewManager.kt +5 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetFooterView.kt +38 -109
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetModule.kt +13 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetOverlayView.kt +127 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetOverlayViewManager.kt +45 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetPackage.kt +2 -1
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetStateUpdater.kt +29 -3
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +234 -66
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +491 -186
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +64 -10
- package/android/src/main/java/com/lodev09/truesheet/core/RNScreensEventObserver.kt +31 -14
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetBehavior.kt +135 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetBottomSheetView.kt +23 -23
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetCoordinatorLayout.kt +130 -6
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDetentCalculator.kt +104 -39
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDimView.kt +14 -17
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetGrabberView.kt +2 -4
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetOverlayRootView.kt +148 -0
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetStackManager.kt +33 -40
- package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetLifecycleEvents.kt +15 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/ColorUtils.kt +19 -0
- package/android/src/main/java/com/lodev09/truesheet/utils/KeyboardUtils.kt +15 -2
- package/android/src/main/java/com/lodev09/truesheet/utils/ScreenUtils.kt +0 -12
- package/android/src/main/java/com/lodev09/truesheet/utils/ViewUtils.kt +19 -7
- package/android/src/main/jni/TrueSheetSpec.h +1 -0
- package/android/src/main/jni/TrueSheetStateUpdater.cpp +37 -6
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewComponentDescriptor.h +1 -9
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.cpp +114 -30
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewShadowNode.h +30 -7
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.cpp +2 -2
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetContentViewState.h +9 -8
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewComponentDescriptor.h +3 -5
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.cpp +14 -3
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewShadowNode.h +5 -6
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.cpp +1 -1
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetFooterViewState.h +10 -6
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.cpp +1 -1
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetInsets.h +1 -1
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetLayoutUtils.h +43 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewComponentDescriptor.h +21 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewShadowNode.cpp +17 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetOverlayViewShadowNode.h +33 -0
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewComponentDescriptor.h +3 -5
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.cpp +7 -40
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewShadowNode.h +3 -7
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.cpp +3 -5
- package/common/cpp/react/renderer/components/TrueSheetSpec/TrueSheetViewState.h +4 -5
- package/ios/TrueSheetContainerView.h +23 -7
- package/ios/TrueSheetContainerView.mm +45 -25
- package/ios/TrueSheetContentView.h +44 -15
- package/ios/TrueSheetContentView.mm +221 -190
- package/ios/TrueSheetFooterView.mm +133 -28
- package/ios/TrueSheetModule.h +2 -7
- package/ios/TrueSheetModule.mm +18 -18
- package/ios/TrueSheetOverlayView.h +42 -0
- package/ios/TrueSheetOverlayView.mm +175 -0
- package/ios/TrueSheetView.h +2 -0
- package/ios/TrueSheetView.mm +268 -52
- package/ios/TrueSheetViewController.h +36 -3
- package/ios/TrueSheetViewController.mm +797 -102
- package/ios/core/RNScreensEventObserver.mm +31 -28
- package/ios/core/TrueSheetBlurView.h +0 -2
- package/ios/core/TrueSheetBlurView.mm +3 -36
- package/ios/core/TrueSheetDetentCalculator.h +18 -1
- package/ios/core/TrueSheetDetentCalculator.mm +44 -9
- package/ios/core/TrueSheetDimView.h +27 -0
- package/ios/core/TrueSheetDimView.mm +41 -0
- package/ios/core/TrueSheetGrabberView.mm +13 -3
- package/ios/core/TrueSheetKeyboardObserver.h +7 -0
- package/ios/core/TrueSheetKeyboardObserver.mm +107 -15
- package/ios/core/TrueSheetOverlayContainerView.h +31 -0
- package/ios/core/TrueSheetOverlayContainerView.mm +35 -0
- package/ios/events/TrueSheetLifecycleEvents.h +2 -0
- package/ios/events/TrueSheetLifecycleEvents.mm +8 -0
- package/ios/tvos/TrueSheetStubs.mm +12 -0
- package/ios/utils/UIView+ScrollEdgeInteraction.h +1 -0
- package/ios/utils/UIView+ScrollEdgeInteraction.mm +24 -2
- package/lib/module/TrueSheet.js +222 -54
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/module/TrueSheet.web.js +364 -275
- package/lib/module/TrueSheet.web.js.map +1 -1
- package/lib/module/TrueSheetBackground.js +15 -0
- package/lib/module/TrueSheetBackground.js.map +1 -0
- package/lib/module/TrueSheetOverlay.js +30 -0
- package/lib/module/TrueSheetOverlay.js.map +1 -0
- package/lib/module/TrueSheetOverlay.web.js +35 -0
- package/lib/module/TrueSheetOverlay.web.js.map +1 -0
- package/lib/module/TrueSheetPeek.web.js +20 -15
- package/lib/module/TrueSheetPeek.web.js.map +1 -1
- package/lib/module/TrueSheetProvider.web.js +13 -9
- package/lib/module/TrueSheetProvider.web.js.map +1 -1
- package/lib/module/detentBackgrounds.js +21 -0
- package/lib/module/detentBackgrounds.js.map +1 -0
- package/lib/module/fabric/TrueSheetContentViewNativeComponent.ts +1 -1
- package/lib/module/fabric/TrueSheetFooterViewNativeComponent.ts +2 -3
- package/lib/module/fabric/TrueSheetOverlayViewNativeComponent.ts +12 -0
- package/lib/module/fabric/TrueSheetViewNativeComponent.ts +89 -73
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/mocks/index.js +18 -2
- package/lib/module/mocks/index.js.map +1 -1
- package/lib/module/mocks/navigationExpoRouter.js.map +1 -1
- package/lib/module/navigation/base-types.js +2 -0
- package/lib/module/navigation/base-types.js.map +1 -0
- package/lib/module/navigation/createTrueSheetRouter.js +158 -100
- package/lib/module/navigation/createTrueSheetRouter.js.map +1 -1
- package/lib/module/navigation/expo-router/base-types.js +2 -0
- package/lib/module/navigation/expo-router/base-types.js.map +1 -0
- package/lib/module/navigation/expo-router/extendTrueSheetRouter.js +71 -0
- package/lib/module/navigation/expo-router/extendTrueSheetRouter.js.map +1 -0
- package/lib/module/navigation/expo-router/index.js +18 -7
- package/lib/module/navigation/expo-router/index.js.map +1 -1
- package/lib/module/navigation/expo-router/types.js +4 -0
- package/lib/module/navigation/expo-router/types.js.map +1 -0
- package/lib/module/navigation/index.js.map +1 -1
- package/lib/module/navigation/screen/useSheetScreenState.js +1 -0
- package/lib/module/navigation/screen/useSheetScreenState.js.map +1 -1
- package/lib/module/scrollable.js +28 -0
- package/lib/module/scrollable.js.map +1 -0
- package/lib/module/web/constants.js +1 -1
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/keyboard.js +69 -0
- package/lib/module/web/keyboard.js.map +1 -0
- package/lib/module/web/layout.js +168 -0
- package/lib/module/web/layout.js.map +1 -0
- package/lib/module/web/vaul/constants.js +9 -0
- package/lib/module/web/vaul/constants.js.map +1 -1
- package/lib/module/web/vaul/context.js +4 -0
- package/lib/module/web/vaul/context.js.map +1 -1
- package/lib/module/web/vaul/helpers.js +1 -0
- package/lib/module/web/vaul/helpers.js.map +1 -1
- package/lib/module/web/vaul/index.js +83 -21
- package/lib/module/web/vaul/index.js.map +1 -1
- package/lib/module/web/vaul/use-snap-points.js +57 -28
- package/lib/module/web/vaul/use-snap-points.js.map +1 -1
- package/lib/typescript/src/TrueSheet.d.ts +18 -1
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.types.d.ts +209 -35
- package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheet.web.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheetBackground.d.ts +3 -0
- package/lib/typescript/src/TrueSheetBackground.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetOverlay.d.ts +8 -0
- package/lib/typescript/src/TrueSheetOverlay.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetOverlay.web.d.ts +8 -0
- package/lib/typescript/src/TrueSheetOverlay.web.d.ts.map +1 -0
- package/lib/typescript/src/TrueSheetPeek.web.d.ts +8 -4
- package/lib/typescript/src/TrueSheetPeek.web.d.ts.map +1 -1
- package/lib/typescript/src/TrueSheetProvider.web.d.ts +5 -1
- package/lib/typescript/src/TrueSheetProvider.web.d.ts.map +1 -1
- package/lib/typescript/src/detentBackgrounds.d.ts +10 -0
- package/lib/typescript/src/detentBackgrounds.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts +2 -3
- package/lib/typescript/src/fabric/TrueSheetFooterViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/fabric/TrueSheetOverlayViewNativeComponent.d.ts +6 -0
- package/lib/typescript/src/fabric/TrueSheetOverlayViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +76 -65
- package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/mocks/index.d.ts +4 -0
- package/lib/typescript/src/mocks/index.d.ts.map +1 -1
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts +3 -3
- package/lib/typescript/src/mocks/navigationExpoRouter.d.ts.map +1 -1
- package/lib/typescript/src/navigation/base-types.d.ts +9 -0
- package/lib/typescript/src/navigation/base-types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts +36 -10
- package/lib/typescript/src/navigation/createTrueSheetRouter.d.ts.map +1 -1
- package/lib/typescript/src/navigation/expo-router/base-types.d.ts +8 -0
- package/lib/typescript/src/navigation/expo-router/base-types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/extendTrueSheetRouter.d.ts +33 -0
- package/lib/typescript/src/navigation/expo-router/extendTrueSheetRouter.d.ts.map +1 -0
- package/lib/typescript/src/navigation/expo-router/index.d.ts +9 -6
- package/lib/typescript/src/navigation/expo-router/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/expo-router/types.d.ts +44 -0
- package/lib/typescript/src/navigation/expo-router/types.d.ts.map +1 -0
- package/lib/typescript/src/navigation/index.d.ts +3 -4
- package/lib/typescript/src/navigation/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts +2 -1
- package/lib/typescript/src/navigation/screen/useSheetScreenState.d.ts.map +1 -1
- package/lib/typescript/src/navigation/types.d.ts +43 -6
- package/lib/typescript/src/navigation/types.d.ts.map +1 -1
- package/lib/typescript/src/scrollable.d.ts +2 -0
- package/lib/typescript/src/scrollable.d.ts.map +1 -0
- package/lib/typescript/src/web/constants.d.ts +1 -1
- package/lib/typescript/src/web/constants.d.ts.map +1 -1
- package/lib/typescript/src/web/keyboard.d.ts +15 -0
- package/lib/typescript/src/web/keyboard.d.ts.map +1 -0
- package/lib/typescript/src/web/layout.d.ts +20 -0
- package/lib/typescript/src/web/layout.d.ts.map +1 -0
- package/lib/typescript/src/web/vaul/constants.d.ts +3 -0
- package/lib/typescript/src/web/vaul/constants.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/context.d.ts +5 -1
- package/lib/typescript/src/web/vaul/context.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/helpers.d.ts +1 -0
- package/lib/typescript/src/web/vaul/helpers.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/index.d.ts +20 -1
- package/lib/typescript/src/web/vaul/index.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/types.d.ts +9 -0
- package/lib/typescript/src/web/vaul/types.d.ts.map +1 -1
- package/lib/typescript/src/web/vaul/use-snap-points.d.ts +6 -4
- package/lib/typescript/src/web/vaul/use-snap-points.d.ts.map +1 -1
- package/package.json +18 -8
- package/react-native.config.js +1 -0
- package/src/TrueSheet.tsx +257 -62
- package/src/TrueSheet.types.ts +225 -35
- package/src/TrueSheet.web.tsx +445 -333
- package/src/TrueSheetBackground.tsx +17 -0
- package/src/TrueSheetOverlay.tsx +24 -0
- package/src/TrueSheetOverlay.web.tsx +33 -0
- package/src/TrueSheetPeek.web.tsx +25 -23
- package/src/TrueSheetProvider.web.tsx +22 -13
- package/src/detentBackgrounds.ts +24 -0
- package/src/fabric/TrueSheetContentViewNativeComponent.ts +1 -1
- package/src/fabric/TrueSheetFooterViewNativeComponent.ts +2 -3
- package/src/fabric/TrueSheetOverlayViewNativeComponent.ts +12 -0
- package/src/fabric/TrueSheetViewNativeComponent.ts +89 -73
- package/src/index.ts +1 -0
- package/src/mocks/index.ts +17 -2
- package/src/mocks/navigationExpoRouter.ts +6 -5
- package/src/navigation/base-types.ts +20 -0
- package/src/navigation/createTrueSheetRouter.ts +220 -144
- package/src/navigation/expo-router/base-types.ts +18 -0
- package/src/navigation/expo-router/extendTrueSheetRouter.ts +99 -0
- package/src/navigation/expo-router/index.ts +41 -30
- package/src/navigation/expo-router/types.ts +116 -0
- package/src/navigation/index.ts +6 -7
- package/src/navigation/screen/useSheetScreenState.ts +2 -0
- package/src/navigation/types.ts +81 -23
- package/src/scrollable.ts +25 -0
- package/src/web/constants.ts +1 -1
- package/src/web/keyboard.ts +79 -0
- package/src/web/layout.ts +196 -0
- package/src/web/vaul/constants.ts +9 -0
- package/src/web/vaul/context.ts +7 -1
- package/src/web/vaul/helpers.ts +5 -0
- package/src/web/vaul/index.tsx +113 -16
- package/src/web/vaul/types.ts +10 -0
- package/src/web/vaul/use-snap-points.ts +86 -33
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { TrueSheetActions } from "../actions.js";
|
|
4
|
+
import { getResizeRouteIndex, getStateForNavigateToBase, getTrueSheetStateForAction } from "../createTrueSheetRouter.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* `RouterActionHandling.Unhandled` from Expo Router 58+, which deprecates `null`.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* `extendRouter` from Expo Router 58+. Declared locally because the
|
|
12
|
+
* Expo Router types this package builds against predate it.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Router for Expo Router 58+, where navigator state is seeded by Expo Router
|
|
17
|
+
* (no `getInitialState`/`getRehydratedState`) and `getStateForAction` returns
|
|
18
|
+
* `{ state, affectedRouteKey }`.
|
|
19
|
+
*/
|
|
20
|
+
export const extendTrueSheetRouter = (extendRouter, stackRouter, unhandled) => extendRouter(stackRouter, ({
|
|
21
|
+
baseRouter,
|
|
22
|
+
options
|
|
23
|
+
}) => {
|
|
24
|
+
if (__DEV__ && options.initialRouteName === undefined) {
|
|
25
|
+
console.warn("TrueSheet: this Sheet layout has no `unstable_settings.anchor`. On Expo Router 58+, a sheet route opened directly (deep link or push from another navigator) renders without its base screen. Export `unstable_settings = { anchor: '<base route>' }` from the layout.");
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
getStateForAction(state, action, config) {
|
|
29
|
+
const {
|
|
30
|
+
type,
|
|
31
|
+
payload
|
|
32
|
+
} = action;
|
|
33
|
+
|
|
34
|
+
// Expo Router keeps preloaded routes in `routes`, and the navigator presents every
|
|
35
|
+
// route there as a sheet. A parent navigator's route bubbles up to it, as in a `Stack`.
|
|
36
|
+
if (type === 'PRELOAD') {
|
|
37
|
+
return payload?.name && state.routeNames.includes(payload.name) ? {
|
|
38
|
+
state
|
|
39
|
+
} : unhandled;
|
|
40
|
+
}
|
|
41
|
+
const navigated = getStateForNavigateToBase(state, action, popAction => {
|
|
42
|
+
const popped = baseRouter.getStateForAction(state, popAction, config);
|
|
43
|
+
return popped === unhandled ? undefined : popped.state;
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// Expo Router resolves the destination's nested state in the affected route
|
|
47
|
+
if (navigated) {
|
|
48
|
+
return {
|
|
49
|
+
state: navigated,
|
|
50
|
+
affectedRouteKey: navigated.routes[0]?.key
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const result = getTrueSheetStateForAction(state, action);
|
|
54
|
+
if (result === undefined) {
|
|
55
|
+
return baseRouter.getStateForAction(state, action, config);
|
|
56
|
+
}
|
|
57
|
+
if (result === null) {
|
|
58
|
+
return unhandled;
|
|
59
|
+
}
|
|
60
|
+
const affectedIndex = action.type === 'RESIZE' ? getResizeRouteIndex(state, action) : result.index;
|
|
61
|
+
return {
|
|
62
|
+
state: result,
|
|
63
|
+
affectedRouteKey: result.routes[affectedIndex]?.key
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
actionCreators: TrueSheetActions
|
|
67
|
+
};
|
|
68
|
+
}, {
|
|
69
|
+
type: 'true-sheet'
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=extendTrueSheetRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TrueSheetActions","getResizeRouteIndex","getStateForNavigateToBase","getTrueSheetStateForAction","extendTrueSheetRouter","extendRouter","stackRouter","unhandled","baseRouter","options","__DEV__","initialRouteName","undefined","console","warn","getStateForAction","state","action","config","type","payload","name","routeNames","includes","navigated","popAction","popped","affectedRouteKey","routes","key","result","affectedIndex","index","actionCreators"],"sourceRoot":"../../../../src","sources":["navigation/expo-router/extendTrueSheetRouter.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAkC,eAAY;AACvE,SACEC,mBAAmB,EACnBC,yBAAyB,EACzBC,0BAA0B,QACrB,6BAA0B;;AAKjC;AACA;AACA;;AAcA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGA,CACnCC,YAA0B,EAC1BC,WAA+B,EAC/BC,SAAoB,KAEpBF,YAAY,CACVC,WAAW,EACX,CAAC;EAAEE,UAAU;EAAEC;AAAQ,CAAC,KAAK;EAC3B,IAAIC,OAAO,IAAID,OAAO,CAACE,gBAAgB,KAAKC,SAAS,EAAE;IACrDC,OAAO,CAACC,IAAI,CACV,wQACF,CAAC;EACH;EAEA,OAAO;IACLC,iBAAiBA,CACfC,KAA2B,EAC3BC,MAA2B,EAC3BC,MAAc,EACY;MAC1B,MAAM;QAAEC,IAAI;QAAEC;MAAQ,CAAC,GAAGH,MAAuD;;MAEjF;MACA;MACA,IAAIE,IAAI,KAAK,SAAS,EAAE;QACtB,OAAOC,OAAO,EAAEC,IAAI,IAAIL,KAAK,CAACM,UAAU,CAACC,QAAQ,CAACH,OAAO,CAACC,IAAI,CAAC,GAAG;UAAEL;QAAM,CAAC,GAAGT,SAAS;MACzF;MAEA,MAAMiB,SAAS,GAAGtB,yBAAyB,CAACc,KAAK,EAAEC,MAAM,EAAGQ,SAAS,IAAK;QACxE,MAAMC,MAAM,GAAGlB,UAAU,CAACO,iBAAiB,CAACC,KAAK,EAAES,SAAS,EAAEP,MAAM,CAAC;QACrE,OAAOQ,MAAM,KAAKnB,SAAS,GAAGK,SAAS,GAAGc,MAAM,CAACV,KAAK;MACxD,CAAC,CAAC;;MAEF;MACA,IAAIQ,SAAS,EAAE;QACb,OAAO;UAAER,KAAK,EAAEQ,SAAS;UAAEG,gBAAgB,EAAEH,SAAS,CAACI,MAAM,CAAC,CAAC,CAAC,EAAEC;QAAI,CAAC;MACzE;MAEA,MAAMC,MAAM,GAAG3B,0BAA0B,CAACa,KAAK,EAAEC,MAAM,CAAC;MAExD,IAAIa,MAAM,KAAKlB,SAAS,EAAE;QACxB,OAAOJ,UAAU,CAACO,iBAAiB,CAACC,KAAK,EAAEC,MAAM,EAAEC,MAAM,CAAC;MAC5D;MAEA,IAAIY,MAAM,KAAK,IAAI,EAAE;QACnB,OAAOvB,SAAS;MAClB;MAEA,MAAMwB,aAAa,GACjBd,MAAM,CAACE,IAAI,KAAK,QAAQ,GAAGlB,mBAAmB,CAACe,KAAK,EAAEC,MAAM,CAAC,GAAGa,MAAM,CAACE,KAAK;MAE9E,OAAO;QAAEhB,KAAK,EAAEc,MAAM;QAAEH,gBAAgB,EAAEG,MAAM,CAACF,MAAM,CAACG,aAAa,CAAC,EAAEF;MAAI,CAAC;IAC/E,CAAC;IACDI,cAAc,EAAEjC;EAClB,CAAC;AACH,CAAC,EACD;EAAEmB,IAAI,EAAE;AAAa,CACvB,CAAC","ignoreList":[]}
|
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import * as ExpoRouter from 'expo-router';
|
|
3
4
|
import { StackRouter, unstable_integrateWithRouter, useNavigation } from 'expo-router';
|
|
4
5
|
import { createTrueSheetRouter } from "../createTrueSheetRouter.js";
|
|
5
6
|
import { trueSheetNavigator } from "../navigator.js";
|
|
6
|
-
|
|
7
|
-
//
|
|
8
|
-
|
|
7
|
+
import { extendTrueSheetRouter } from "./extendTrueSheetRouter.js";
|
|
8
|
+
// Expo Router 58+ replaced the React Navigation router contract and ships `extendRouter`
|
|
9
|
+
// and `RouterActionHandling` for it. Before that, the vendored StackRouter is structurally
|
|
10
|
+
// identical to @react-navigation's. Pinned to this entry's own router types:
|
|
11
|
+
// `createTrueSheetRouter` is shared and typed against React Navigation, which resolves to
|
|
12
|
+
// `any` in apps that only install expo-router.
|
|
13
|
+
const {
|
|
14
|
+
extendRouter,
|
|
15
|
+
RouterActionHandling
|
|
16
|
+
} = ExpoRouter;
|
|
17
|
+
const sheetRouter = extendRouter ? extendTrueSheetRouter(extendRouter, StackRouter, RouterActionHandling.Unhandled) : createTrueSheetRouter(StackRouter);
|
|
18
|
+
|
|
19
|
+
// `routes`/`dispatch` are injected by `createProps`, so they are declared as
|
|
20
|
+
// CreateProps (last generic) and excluded from the public navigator props
|
|
21
|
+
const SheetNavigator = unstable_integrateWithRouter(trueSheetNavigator, sheetRouter, {
|
|
9
22
|
createProps: ({
|
|
10
23
|
state,
|
|
11
24
|
dispatch
|
|
@@ -15,10 +28,8 @@ createTrueSheetRouter(StackRouter), {
|
|
|
15
28
|
})
|
|
16
29
|
});
|
|
17
30
|
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
// map with an index signature which breaks precisely typed `screenListeners`
|
|
21
|
-
// callbacks - replace it with the exact map
|
|
31
|
+
// expo-router intersects the event map with an index signature which breaks
|
|
32
|
+
// precisely typed `screenListeners` callbacks - replace it with the exact map
|
|
22
33
|
|
|
23
34
|
/**
|
|
24
35
|
* TrueSheet navigator layout for Expo Router.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StackRouter","unstable_integrateWithRouter","useNavigation","createTrueSheetRouter","trueSheetNavigator","SheetNavigator","createProps","state","dispatch","routes","Sheet","useTrueSheetNavigation","TrueSheetActions"],"sourceRoot":"../../../../src","sources":["navigation/expo-router/index.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["ExpoRouter","StackRouter","unstable_integrateWithRouter","useNavigation","createTrueSheetRouter","trueSheetNavigator","extendTrueSheetRouter","extendRouter","RouterActionHandling","sheetRouter","Unhandled","SheetNavigator","createProps","state","dispatch","routes","Sheet","useTrueSheetNavigation","TrueSheetActions"],"sourceRoot":"../../../../src","sources":["navigation/expo-router/index.ts"],"mappings":";;AAAA,OAAO,KAAKA,UAAU,MAAM,aAAa;AACzC,SAASC,WAAW,EAAEC,4BAA4B,EAAEC,aAAa,QAAQ,aAAa;AAEtF,SAASC,qBAAqB,QAAQ,6BAA0B;AAChE,SAASC,kBAAkB,QAAQ,iBAAc;AAEjD,SAASC,qBAAqB,QAA2C,4BAAyB;AAalG;AACA;AACA;AACA;AACA;AACA,MAAM;EAAEC,YAAY;EAAEC;AAAqB,CAAC,GAAGR,UAG9C;AAED,MAAMS,WAAmC,GAAGF,YAAY,GACpDD,qBAAqB,CACnBC,YAAY,EACZN,WAAW,EACXO,oBAAoB,CAAEE,SACxB,CAAC,GACDN,qBAAqB,CAACH,WAAiC,CAAC;;AAE5D;AACA;AACA,MAAMU,cAAc,GAAGT,4BAA4B,CAOjDG,kBAAkB,EAAEI,WAAW,EAAE;EACjCG,WAAW,EAAEA,CAAC;IAAEC,KAAK;IAAEC;EAAS,CAAC,MAAM;IACrCC,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBD;EACF,CAAC;AACH,CAAC,CAAC;;AAEF;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,KAAK,GAAGL,cAGpB;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,sBAAsB,GAAGA,CAAA,KAEHd,aAAa,CAA6B,CAAC;AAE9E,SAASe,gBAAgB,QAAkC,eAAY","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["navigation/expo-router/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createStandardNavigationFactories","StackRouter","createTrueSheetRouter","trueSheetNavigator","createNavigator","createScreen","state","navigation","routes","dispatch","createTrueSheetNavigator","createTrueSheetScreen","TrueSheetActions","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,SACEA,iCAAiC,EACjCC,WAAW,QAEN,0BAA0B;AAEjC,SAASC,qBAAqB,
|
|
1
|
+
{"version":3,"names":["createStandardNavigationFactories","StackRouter","createTrueSheetRouter","trueSheetNavigator","createNavigator","createScreen","state","navigation","routes","dispatch","createTrueSheetNavigator","createTrueSheetScreen","TrueSheetActions","useTrueSheetNavigation"],"sourceRoot":"../../../src","sources":["navigation/index.ts"],"mappings":";;AAAA,SACEA,iCAAiC,EACjCC,WAAW,QAEN,0BAA0B;AAEjC,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,kBAAkB,QAAQ,gBAAa;AAmBhD,MAAM;EAAEC,eAAe;EAAEC;AAAa,CAAC,GAAGL,iCAAiC,CAKzEG,kBAAkB,EAClBD,qBAAqB,CAACD,WAAiC,CAAC,EACxD,CAAC;EAAEK,KAAK;EAAEC;AAAW,CAAC,MAAM;EAAEC,MAAM,EAAEF,KAAK,CAACE,MAAM;EAAEC,QAAQ,EAAEF,UAAU,CAACE;AAAS,CAAC,CACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAGN,eAAe;;AAEvD;AACA;AACA;AACA,OAAO,MAAMO,qBAAqB,GAAGN,YAAY;AAEjD,SAASO,gBAAgB,QAAkC,cAAW;AACtE,SAASV,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASW,sBAAsB,QAAQ,6BAA0B","ignoreList":[]}
|
|
@@ -48,6 +48,7 @@ export const useSheetScreenState = props => {
|
|
|
48
48
|
onDidPresent: e => emitEvent('sheetDidPresent', e.nativeEvent),
|
|
49
49
|
onWillDismiss: _e => emitEvent('sheetWillDismiss', undefined),
|
|
50
50
|
onDidDismiss,
|
|
51
|
+
onDismissAttempt: _e => emitEvent('sheetDismissAttempt', undefined),
|
|
51
52
|
onDetentChange: e => emitEvent('sheetDetentChange', e.nativeEvent),
|
|
52
53
|
onDragBegin: e => emitEvent('sheetDragBegin', e.nativeEvent),
|
|
53
54
|
onDragChange: e => emitEvent('sheetDragChange', e.nativeEvent),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","dispatch","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","remove","source","eventHandlers","onWillPresent","e","nativeEvent","onDidPresent","onWillDismiss","_e","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","initialDetentIndex"],"sourceRoot":"../../../../src","sources":["navigation/screen/useSheetScreenState.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","TrueSheetActions","useSheetScreenState","props","detentIndex","resizeKey","closing","dispatch","routeKey","emit","ref","isDismissedRef","isFirstRenderRef","initialDetentIndexRef","current","dismiss","resize","emitEvent","type","data","target","onDidDismiss","undefined","remove","source","eventHandlers","onWillPresent","e","nativeEvent","onDidPresent","onWillDismiss","_e","onDismissAttempt","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;AAqB/D,SAASC,gBAAgB,QAAQ,eAAY;AAW7C,OAAO,MAAMC,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAM;IAAEC,WAAW;IAAEC,SAAS;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAGN,KAAK;EAE3E,MAAMO,GAAG,GAAGV,MAAM,CAAY,IAAI,CAAC;EACnC,MAAMW,cAAc,GAAGX,MAAM,CAAC,KAAK,CAAC;EACpC,MAAMY,gBAAgB,GAAGZ,MAAM,CAAC,IAAI,CAAC;EACrC,MAAMa,qBAAqB,GAAGb,MAAM,CAACI,WAAW,CAAC;EAEjDN,SAAS,CAAC,MAAM;IACd,IAAIQ,OAAO,IAAI,CAACK,cAAc,CAACG,OAAO,EAAE;MACtCH,cAAc,CAACG,OAAO,GAAG,IAAI;MAC7BJ,GAAG,CAACI,OAAO,EAAEC,OAAO,CAAC,CAAC;IACxB;EACF,CAAC,EAAE,CAACT,OAAO,CAAC,CAAC;EAEbR,SAAS,CAAC,MAAM;IACd,IAAIc,gBAAgB,CAACE,OAAO,EAAE;MAC5BF,gBAAgB,CAACE,OAAO,GAAG,KAAK;MAChC;IACF;IACAJ,GAAG,CAACI,OAAO,EAAEE,MAAM,CAACZ,WAAW,CAAC;EAClC,CAAC,EAAE,CAACA,WAAW,EAAEC,SAAS,CAAC,CAAC;EAE5B,MAAMY,SAAS,GAAGpB,WAAW,CAC3B,CACEqB,IAAuC,EACvCC,IAAqE,KAClE;IACHV,IAAI,CAAC;MACHS,IAAI;MACJE,MAAM,EAAEZ,QAAQ;MAChBW;IACF,CAAmC,CAAC;EACtC,CAAC,EACD,CAACV,IAAI,EAAED,QAAQ,CACjB,CAAC;EAED,MAAMa,YAAY,GAAGxB,WAAW,CAAC,MAAM;IACrCoB,SAAS,CAAC,iBAAiB,EAAEK,SAAS,CAAC;IACvCX,cAAc,CAACG,OAAO,GAAG,IAAI;IAC7BP,QAAQ,CAAC;MAAE,GAAGN,gBAAgB,CAACsB,MAAM,CAAC,CAAC;MAAEC,MAAM,EAAEhB;IAAS,CAAC,CAAC;EAC9D,CAAC,EAAE,CAACS,SAAS,EAAEV,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAEnC,MAAMiB,aAAa,GAAG1B,OAAO,CAC3B,OAAO;IACL2B,aAAa,EAAGC,CAAmB,IAAKV,SAAS,CAAC,kBAAkB,EAAEU,CAAC,CAACC,WAAW,CAAC;IACpFC,YAAY,EAAGF,CAAkB,IAAKV,SAAS,CAAC,iBAAiB,EAAEU,CAAC,CAACC,WAAW,CAAC;IACjFE,aAAa,EAAGC,EAAoB,IAAKd,SAAS,CAAC,kBAAkB,EAAEK,SAAS,CAAC;IACjFD,YAAY;IACZW,gBAAgB,EAAGD,EAAuB,IAAKd,SAAS,CAAC,qBAAqB,EAAEK,SAAS,CAAC;IAC1FW,cAAc,EAAGN,CAAoB,IAAKV,SAAS,CAAC,mBAAmB,EAAEU,CAAC,CAACC,WAAW,CAAC;IACvFM,WAAW,EAAGP,CAAiB,IAAKV,SAAS,CAAC,gBAAgB,EAAEU,CAAC,CAACC,WAAW,CAAC;IAC9EO,YAAY,EAAGR,CAAkB,IAAKV,SAAS,CAAC,iBAAiB,EAAEU,CAAC,CAACC,WAAW,CAAC;IACjFQ,SAAS,EAAGT,CAAe,IAAKV,SAAS,CAAC,cAAc,EAAEU,CAAC,CAACC,WAAW,CAAC;IACxES,gBAAgB,EAAGV,CAAsB,IAAKV,SAAS,CAAC,qBAAqB,EAAEU,CAAC,CAACC,WAAW,CAAC;IAC7FU,WAAW,EAAGP,EAAkB,IAAKd,SAAS,CAAC,gBAAgB,EAAEK,SAAS,CAAC;IAC3EiB,UAAU,EAAGR,EAAiB,IAAKd,SAAS,CAAC,eAAe,EAAEK,SAAS,CAAC;IACxEkB,UAAU,EAAGT,EAAiB,IAAKd,SAAS,CAAC,eAAe,EAAEK,SAAS,CAAC;IACxEmB,SAAS,EAAGV,EAAgB,IAAKd,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;IACTQ;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const ACCESSORS = ['getScrollableNode', 'getNativeScrollRef'];
|
|
4
|
+
|
|
5
|
+
// Resolves a `scrollableRef` value to its scroll node: a native tag on native,
|
|
6
|
+
// a DOM node on web. Imperative-handle lists (e.g. LegendList, FlashList) are
|
|
7
|
+
// not host components, so they go through the accessors ScrollView/FlatList
|
|
8
|
+
// also expose. A composite result is resolved again until it yields a tag or
|
|
9
|
+
// host node. `getScrollResponder` is skipped: it returns the ScrollView class
|
|
10
|
+
// instance, which findNodeHandle resolves to its first host child (the
|
|
11
|
+
// SwipeRefreshLayout on Android when a refreshControl is set).
|
|
12
|
+
export function resolveScrollable(scrollable) {
|
|
13
|
+
if (!scrollable || typeof scrollable !== 'object') return scrollable;
|
|
14
|
+
for (const name of ACCESSORS) {
|
|
15
|
+
const accessor = scrollable[name];
|
|
16
|
+
if (typeof accessor !== 'function') continue;
|
|
17
|
+
let node;
|
|
18
|
+
try {
|
|
19
|
+
node = accessor.call(scrollable);
|
|
20
|
+
} catch {
|
|
21
|
+
// e.g. LegendList forwarding to a custom scroll component that lacks it
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (node != null && node !== scrollable) return resolveScrollable(node);
|
|
25
|
+
}
|
|
26
|
+
return scrollable;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=scrollable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ACCESSORS","resolveScrollable","scrollable","name","accessor","node","call"],"sourceRoot":"../../src","sources":["scrollable.ts"],"mappings":";;AAAA,MAAMA,SAAS,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAU;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,UAAmB,EAAW;EAC9D,IAAI,CAACA,UAAU,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE,OAAOA,UAAU;EACpE,KAAK,MAAMC,IAAI,IAAIH,SAAS,EAAE;IAC5B,MAAMI,QAAQ,GAAIF,UAAU,CAA6BC,IAAI,CAAC;IAC9D,IAAI,OAAOC,QAAQ,KAAK,UAAU,EAAE;IACpC,IAAIC,IAAa;IACjB,IAAI;MACFA,IAAI,GAAGD,QAAQ,CAACE,IAAI,CAACJ,UAAU,CAAC;IAClC,CAAC,CAAC,MAAM;MACN;MACA;IACF;IACA,IAAIG,IAAI,IAAI,IAAI,IAAIA,IAAI,KAAKH,UAAU,EAAE,OAAOD,iBAAiB,CAACI,IAAI,CAAC;EACzE;EACA,OAAOH,UAAU;AACnB","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ export const DEFAULT_FORM_SHEET_WIDTH = 580;
|
|
|
6
6
|
export const DEFAULT_FORM_SHEET_HEIGHT_RATIO = 0.5;
|
|
7
7
|
export const COLOR_SURFACE_CONTAINER_LOW_LIGHT = '#F7F2FA';
|
|
8
8
|
export const COLOR_SURFACE_CONTAINER_LOW_DARK = '#1D1B20';
|
|
9
|
-
export const
|
|
9
|
+
export const DEFAULT_PLACEMENT_OFFSET = 16;
|
|
10
10
|
export const DEFAULT_DETACHED_OFFSET = 16;
|
|
11
11
|
export const DEFAULT_GRABBER_COLOR_LIGHT = 'rgba(0, 0, 0, 0.3)';
|
|
12
12
|
export const DEFAULT_GRABBER_COLOR_DARK = 'rgba(255, 255, 255, 0.3)';
|
|
@@ -1 +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","
|
|
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_PLACEMENT_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,wBAAwB,GAAG,EAAE;AAC1C,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,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/// <reference lib="dom" />
|
|
4
|
+
import { useEffect, useState } from 'react';
|
|
5
|
+
import { FOOTER_INSET } from "./layout.js";
|
|
6
|
+
import { getScrollParent } from "./vaul/use-prevent-scroll.js";
|
|
7
|
+
// Subpixel tolerance between the visual and layout viewport heights
|
|
8
|
+
const VIEWPORT_EPSILON = 1;
|
|
9
|
+
const readKeyboardViewport = () => {
|
|
10
|
+
const vv = window.visualViewport;
|
|
11
|
+
if (!vv) return undefined;
|
|
12
|
+
const layoutHeight = document.documentElement.clientHeight;
|
|
13
|
+
// Pinch-zoom shrinks the visual viewport too — scaling it back out leaves
|
|
14
|
+
// only what the keyboard covers.
|
|
15
|
+
if (vv.height * vv.scale >= layoutHeight - VIEWPORT_EPSILON) return undefined;
|
|
16
|
+
return {
|
|
17
|
+
top: vv.offsetTop,
|
|
18
|
+
height: vv.height,
|
|
19
|
+
layoutHeight
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
const isSameViewport = (a, b) => a === b || a !== undefined && b !== undefined && a.top === b.top && a.height === b.height && a.layoutHeight === b.layoutHeight;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Tracks the visual viewport while a soft keyboard shrinks it. iOS Safari and
|
|
26
|
+
* Chrome (default `interactive-widget`) keep the layout viewport — and every
|
|
27
|
+
* fixed element — full height under the keyboard, so the sheet has to be laid
|
|
28
|
+
* out against the visual viewport instead.
|
|
29
|
+
*/
|
|
30
|
+
export function useKeyboardViewport(enabled) {
|
|
31
|
+
const [viewport, setViewport] = useState();
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
const vv = window.visualViewport;
|
|
34
|
+
if (!enabled || !vv) {
|
|
35
|
+
setViewport(undefined);
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
const update = () => {
|
|
39
|
+
const next = readKeyboardViewport();
|
|
40
|
+
setViewport(current => isSameViewport(current, next) ? current : next);
|
|
41
|
+
};
|
|
42
|
+
update();
|
|
43
|
+
vv.addEventListener('resize', update);
|
|
44
|
+
vv.addEventListener('scroll', update);
|
|
45
|
+
window.addEventListener('resize', update);
|
|
46
|
+
return () => {
|
|
47
|
+
vv.removeEventListener('resize', update);
|
|
48
|
+
vv.removeEventListener('scroll', update);
|
|
49
|
+
window.removeEventListener('resize', update);
|
|
50
|
+
};
|
|
51
|
+
}, [enabled]);
|
|
52
|
+
return viewport;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Scrolls the focused field in `container` back above its scroll parent's
|
|
57
|
+
* bottom edge, clearing a floating footer. The browser only reveals it on
|
|
58
|
+
* focus — before the sheet fits above the keyboard.
|
|
59
|
+
*/
|
|
60
|
+
export function revealFocusedElement(container) {
|
|
61
|
+
const focused = document.activeElement;
|
|
62
|
+
if (!(focused instanceof HTMLElement) || !container.contains(focused)) return;
|
|
63
|
+
const scroller = getScrollParent(focused);
|
|
64
|
+
if (!container.contains(scroller)) return;
|
|
65
|
+
const footerInset = parseFloat(getComputedStyle(scroller).getPropertyValue(FOOTER_INSET)) || 0;
|
|
66
|
+
const overflow = focused.getBoundingClientRect().bottom - (scroller.getBoundingClientRect().bottom - footerInset);
|
|
67
|
+
if (overflow > 0) scroller.scrollTop += overflow;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=keyboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","FOOTER_INSET","getScrollParent","VIEWPORT_EPSILON","readKeyboardViewport","vv","window","visualViewport","undefined","layoutHeight","document","documentElement","clientHeight","height","scale","top","offsetTop","isSameViewport","a","b","useKeyboardViewport","enabled","viewport","setViewport","update","next","current","addEventListener","removeEventListener","revealFocusedElement","container","focused","activeElement","HTMLElement","contains","scroller","footerInset","parseFloat","getComputedStyle","getPropertyValue","overflow","getBoundingClientRect","bottom","scrollTop"],"sourceRoot":"../../../src","sources":["web/keyboard.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/// <reference lib="dom" />
|
|
4
|
+
|
|
5
|
+
export const FOOTER_INSET = '--truesheet-footer-inset';
|
|
6
|
+
export function observeSheetLayout({
|
|
7
|
+
drawer,
|
|
8
|
+
layout,
|
|
9
|
+
getContent,
|
|
10
|
+
getHeader,
|
|
11
|
+
getFooter,
|
|
12
|
+
getScrollable,
|
|
13
|
+
absoluteHeader,
|
|
14
|
+
absoluteFooter,
|
|
15
|
+
footerInsetAdjustment,
|
|
16
|
+
measureContent,
|
|
17
|
+
onHeightChange
|
|
18
|
+
}) {
|
|
19
|
+
let frame = 0;
|
|
20
|
+
let disposed = false;
|
|
21
|
+
let width = -1;
|
|
22
|
+
let height = -1;
|
|
23
|
+
let scroller = null;
|
|
24
|
+
let originalPadding = '';
|
|
25
|
+
let insetPadding = '';
|
|
26
|
+
let appliedInset = 0;
|
|
27
|
+
const observed = new Set();
|
|
28
|
+
|
|
29
|
+
// This tree has no viewport constraint or injected footer inset. Its resize
|
|
30
|
+
// observer catches intrinsic changes without observing the live flex layout.
|
|
31
|
+
const measurement = measureContent ? document.createElement('div') : null;
|
|
32
|
+
if (measurement) {
|
|
33
|
+
Object.assign(measurement.style, {
|
|
34
|
+
position: 'absolute',
|
|
35
|
+
top: '0',
|
|
36
|
+
left: '0',
|
|
37
|
+
display: 'flex',
|
|
38
|
+
flexDirection: 'column',
|
|
39
|
+
visibility: 'hidden',
|
|
40
|
+
pointerEvents: 'none'
|
|
41
|
+
});
|
|
42
|
+
measurement.style.setProperty(FOOTER_INSET, '0px');
|
|
43
|
+
measurement.inert = true;
|
|
44
|
+
measurement.setAttribute('aria-hidden', 'true');
|
|
45
|
+
measurement.setAttribute('data-truesheet-measure', '');
|
|
46
|
+
drawer.appendChild(measurement);
|
|
47
|
+
}
|
|
48
|
+
const measure = () => {
|
|
49
|
+
if (!measurement?.isConnected) return;
|
|
50
|
+
const headerHeight = absoluteHeader ? 0 : getHeader()?.offsetHeight ?? 0;
|
|
51
|
+
const footerHeight = !absoluteFooter || footerInsetAdjustment && scroller ? getFooter()?.offsetHeight ?? 0 : 0;
|
|
52
|
+
const next = measurement.offsetHeight + headerHeight + footerHeight;
|
|
53
|
+
if (height === next) return;
|
|
54
|
+
height = next;
|
|
55
|
+
onHeightChange(next);
|
|
56
|
+
};
|
|
57
|
+
const updateInset = () => {
|
|
58
|
+
let inset = 0;
|
|
59
|
+
const footer = getFooter();
|
|
60
|
+
if (footerInsetAdjustment && scroller && footer) {
|
|
61
|
+
let bottom = scroller.offsetTop + scroller.offsetHeight;
|
|
62
|
+
let parent = scroller.offsetParent;
|
|
63
|
+
while (parent instanceof HTMLElement && parent !== layout) {
|
|
64
|
+
bottom += parent.offsetTop;
|
|
65
|
+
parent = parent.offsetParent;
|
|
66
|
+
}
|
|
67
|
+
if (parent === layout) {
|
|
68
|
+
inset = Math.min(footer.offsetHeight, Math.max(0, bottom - (layout.clientHeight - footer.offsetHeight)));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (inset === appliedInset) return;
|
|
72
|
+
appliedInset = inset;
|
|
73
|
+
layout.style.setProperty(FOOTER_INSET, `${inset}px`);
|
|
74
|
+
};
|
|
75
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
76
|
+
if (measurement && width !== layout.clientWidth) {
|
|
77
|
+
width = layout.clientWidth;
|
|
78
|
+
measurement.style.width = `${width}px`;
|
|
79
|
+
}
|
|
80
|
+
updateInset();
|
|
81
|
+
measure();
|
|
82
|
+
});
|
|
83
|
+
const measurementObserver = new ResizeObserver(measure);
|
|
84
|
+
if (measurement) measurementObserver.observe(measurement);
|
|
85
|
+
const restorePadding = () => {
|
|
86
|
+
if (scroller && scroller.style.paddingBottom === insetPadding) {
|
|
87
|
+
scroller.style.paddingBottom = originalPadding;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const sync = () => {
|
|
91
|
+
if (disposed) return;
|
|
92
|
+
const content = getContent();
|
|
93
|
+
const nextScroller = getScrollable();
|
|
94
|
+
if (nextScroller !== scroller) {
|
|
95
|
+
restorePadding();
|
|
96
|
+
scroller = nextScroller;
|
|
97
|
+
insetPadding = '';
|
|
98
|
+
}
|
|
99
|
+
if (footerInsetAdjustment && scroller && (!insetPadding || scroller.style.paddingBottom !== insetPadding)) {
|
|
100
|
+
originalPadding = scroller.style.paddingBottom;
|
|
101
|
+
const base = getComputedStyle(scroller).paddingBottom;
|
|
102
|
+
insetPadding = `calc(${base} + var(${FOOTER_INSET}, 0px))`;
|
|
103
|
+
scroller.style.paddingBottom = insetPadding;
|
|
104
|
+
insetPadding = scroller.style.paddingBottom;
|
|
105
|
+
}
|
|
106
|
+
const nodes = new Set([layout]);
|
|
107
|
+
for (const node of [getHeader(), getFooter(), scroller]) {
|
|
108
|
+
if (node) nodes.add(node);
|
|
109
|
+
}
|
|
110
|
+
for (const node of observed) {
|
|
111
|
+
if (!nodes.has(node)) {
|
|
112
|
+
resizeObserver.unobserve(node);
|
|
113
|
+
observed.delete(node);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
for (const node of nodes) {
|
|
117
|
+
if (!observed.has(node)) {
|
|
118
|
+
resizeObserver.observe(node);
|
|
119
|
+
observed.add(node);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (measurement && content) {
|
|
123
|
+
width = layout.clientWidth;
|
|
124
|
+
measurement.style.width = `${width}px`;
|
|
125
|
+
measurement.replaceChildren(content.cloneNode(true));
|
|
126
|
+
}
|
|
127
|
+
updateInset();
|
|
128
|
+
measure();
|
|
129
|
+
};
|
|
130
|
+
const mutationObserver = new MutationObserver(mutations => {
|
|
131
|
+
const changed = mutations.some(mutation => mutation.target !== layout || mutation.type === 'childList');
|
|
132
|
+
if (!changed || frame) return;
|
|
133
|
+
frame = requestAnimationFrame(() => {
|
|
134
|
+
frame = 0;
|
|
135
|
+
sync();
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
sync();
|
|
139
|
+
mutationObserver.observe(layout, {
|
|
140
|
+
childList: true,
|
|
141
|
+
characterData: true,
|
|
142
|
+
attributes: true,
|
|
143
|
+
attributeFilter: ['style', 'class'],
|
|
144
|
+
subtree: true
|
|
145
|
+
});
|
|
146
|
+
const footer = getFooter();
|
|
147
|
+
if (absoluteFooter && footer) {
|
|
148
|
+
mutationObserver.observe(footer, {
|
|
149
|
+
childList: true,
|
|
150
|
+
characterData: true,
|
|
151
|
+
subtree: true
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
measure,
|
|
156
|
+
disconnect: () => {
|
|
157
|
+
disposed = true;
|
|
158
|
+
cancelAnimationFrame(frame);
|
|
159
|
+
mutationObserver.disconnect();
|
|
160
|
+
resizeObserver.disconnect();
|
|
161
|
+
measurementObserver.disconnect();
|
|
162
|
+
restorePadding();
|
|
163
|
+
layout.style.removeProperty(FOOTER_INSET);
|
|
164
|
+
measurement?.remove();
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FOOTER_INSET","observeSheetLayout","drawer","layout","getContent","getHeader","getFooter","getScrollable","absoluteHeader","absoluteFooter","footerInsetAdjustment","measureContent","onHeightChange","frame","disposed","width","height","scroller","originalPadding","insetPadding","appliedInset","observed","Set","measurement","document","createElement","Object","assign","style","position","top","left","display","flexDirection","visibility","pointerEvents","setProperty","inert","setAttribute","appendChild","measure","isConnected","headerHeight","offsetHeight","footerHeight","next","updateInset","inset","footer","bottom","offsetTop","parent","offsetParent","HTMLElement","Math","min","max","clientHeight","resizeObserver","ResizeObserver","clientWidth","measurementObserver","observe","restorePadding","paddingBottom","sync","content","nextScroller","base","getComputedStyle","nodes","node","add","has","unobserve","delete","replaceChildren","cloneNode","mutationObserver","MutationObserver","mutations","changed","some","mutation","target","type","requestAnimationFrame","childList","characterData","attributes","attributeFilter","subtree","disconnect","cancelAnimationFrame","removeProperty","remove"],"sourceRoot":"../../../src","sources":["web/layout.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,15 @@ export const TRANSITIONS = {
|
|
|
7
7
|
export const VELOCITY_THRESHOLD = 0.4;
|
|
8
8
|
export const DEFAULT_PEEK_HEIGHT = 150;
|
|
9
9
|
export const CLOSE_THRESHOLD = 0.25;
|
|
10
|
+
|
|
11
|
+
// Compose Material3 SheetState's dismiss thresholds, used by the 'short'
|
|
12
|
+
// dismiss threshold: velocity in px/ms, distance in px.
|
|
13
|
+
export const SHORT_DISMISS_VELOCITY = 0.125;
|
|
14
|
+
export const SHORT_DISMISS_DISTANCE = 56;
|
|
15
|
+
|
|
16
|
+
// Minimum downward pull (px) on a non-dismissible drawer at its first snap
|
|
17
|
+
// point before the release counts as a dismiss attempt.
|
|
18
|
+
export const DISMISS_ATTEMPT_THRESHOLD = 24;
|
|
10
19
|
export const SCROLL_LOCK_TIMEOUT = 100;
|
|
11
20
|
export const BORDER_RADIUS = 8;
|
|
12
21
|
export const NESTED_DISPLACEMENT = 16;
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"names":["TRANSITIONS","DURATION","EASE","VELOCITY_THRESHOLD","DEFAULT_PEEK_HEIGHT","CLOSE_THRESHOLD","SHORT_DISMISS_VELOCITY","SHORT_DISMISS_DISTANCE","DISMISS_ATTEMPT_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;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG,KAAK;AAC3C,OAAO,MAAMC,sBAAsB,GAAG,EAAE;;AAExC;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAG,EAAE;AAE3C,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":[]}
|
|
@@ -36,6 +36,10 @@ export const DrawerContext = /*#__PURE__*/React.createContext({
|
|
|
36
36
|
shouldAnimate: {
|
|
37
37
|
current: true
|
|
38
38
|
},
|
|
39
|
+
initialAnimated: true,
|
|
40
|
+
hasPresented: {
|
|
41
|
+
current: false
|
|
42
|
+
},
|
|
39
43
|
shouldScaleBackground: false,
|
|
40
44
|
setBackgroundColorOnScale: true,
|
|
41
45
|
noBodyStyles: false,
|
|
@@ -1 +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;
|
|
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","initialAnimated","hasPresented","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;AA2DzB,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,eAAe,EAAE,IAAI;EACrBC,YAAY,EAAE;IAAE5B,OAAO,EAAE;EAAM,CAAC;EAChC6B,qBAAqB,EAAE,KAAK;EAC5BC,yBAAyB,EAAE,IAAI;EAC/BC,YAAY,EAAE,KAAK;EACnBC,SAAS,EAAE,IAAI;EACfC,SAAS,EAAE,KAAK;EAChBC,mBAAmB,EAAE;IAAElC,OAAO,EAAEW;EAAU,CAAC;EAC3CwB,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,GAAG5C,KAAK,CAAC6C,UAAU,CAAC5C,aAAa,CAAC;EAC/C,IAAI,CAAC2C,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOF,OAAO;AAChB,CAAC","ignoreList":[]}
|
|
@@ -54,6 +54,7 @@ export const isVertical = direction => {
|
|
|
54
54
|
return direction;
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
|
+
export const getSnapPointTransform = direction => isVertical(direction) ? 'translate3d(0, var(--snap-point-height), 0)' : 'translate3d(var(--snap-point-height), 0, 0)';
|
|
57
58
|
export function getTranslate(element, direction) {
|
|
58
59
|
if (!element) {
|
|
59
60
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cache","WeakMap","isInView","el","rect","getBoundingClientRect","window","visualViewport","top","left","bottom","height","right","width","set","styles","ignoreCache","HTMLElement","originalStyles","style","Object","entries","forEach","key","value","startsWith","setProperty","reset","prop","get","isVertical","direction","getTranslate","element","getComputedStyle","transform","webkitTransform","mozTransform","mat","match","parseFloat","split","dampenValue","v","Math","log","assignStyle","prevStyle","cssText","assign","chain","fns","args","fn"],"sourceRoot":"../../../../src","sources":["web/vaul/helpers.ts"],"mappings":";;AAMA;AACA;AACA;;AAGA,MAAMA,KAAK,GAAG,IAAIC,OAAO,CAAkD,CAAC;AAE5E,OAAO,SAASC,QAAQA,CAACC,EAAe,EAAW;EACjD,MAAMC,IAAI,GAAGD,EAAE,CAACE,qBAAqB,CAAC,CAAC;EAEvC,IAAI,CAACC,MAAM,CAACC,cAAc,EAAE,OAAO,KAAK;EAExC,OACEH,IAAI,CAACI,GAAG,IAAI,CAAC,IACbJ,IAAI,CAACK,IAAI,IAAI,CAAC;EACd;EACAL,IAAI,CAACM,MAAM,IAAIJ,MAAM,CAACC,cAAc,CAACI,MAAM,GAAG,EAAE,IAChDP,IAAI,CAACQ,KAAK,IAAIN,MAAM,CAACC,cAAc,CAACM,KAAK;AAE7C;AAEA,OAAO,SAASC,GAAGA,CACjBX,EAA4C,EAC5CY,MAAa,EACbC,WAAW,GAAG,KAAK,EACnB;EACA,IAAI,CAACb,EAAE,IAAI,EAAEA,EAAE,YAAYc,WAAW,CAAC,EAAE;EACzC,IAAIC,cAAkD,GAAG,CAAC,CAAC;EAC3D,MAAMC,KAAK,GAAGhB,EAAE,CAACgB,KAAuB;EAExCC,MAAM,CAACC,OAAO,CAACN,MAAM,CAAC,CAACO,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAmB,KAAK;IACjE,IAAID,GAAG,CAACE,UAAU,CAAC,IAAI,CAAC,EAAE;MACxBtB,EAAE,CAACgB,KAAK,CAACO,WAAW,CAACH,GAAG,EAAEC,KAAK,CAAC;MAChC;IACF;IAEAN,cAAc,CAACK,GAAG,CAAC,GAAGJ,KAAK,CAACI,GAAG,CAAC;IAChCJ,KAAK,CAACI,GAAG,CAAC,GAAGC,KAAK;EACpB,CAAC,CAAC;EAEF,IAAIR,WAAW,EAAE;EAEjBhB,KAAK,CAACc,GAAG,CAACX,EAAE,EAAEe,cAAc,CAAC;AAC/B;AAEA,OAAO,SAASS,KAAKA,CAACxB,EAAgC,EAAEyB,IAAa,EAAE;EACrE,IAAI,CAACzB,EAAE,IAAI,EAAEA,EAAE,YAAYc,WAAW,CAAC,EAAE;EACzC,IAAIC,cAAc,GAAGlB,KAAK,CAAC6B,GAAG,CAAC1B,EAAE,CAAC;EAElC,IAAI,CAACe,cAAc,EAAE;IACnB;EACF;EAEA,MAAMC,KAAK,GAAGhB,EAAE,CAACgB,KAAuB;EACxC,IAAIS,IAAI,EAAE;IACRT,KAAK,CAACS,IAAI,CAAC,GAAGV,cAAc,CAACU,IAAI,CAAC;EACpC,CAAC,MAAM;IACLR,MAAM,CAACC,OAAO,CAACH,cAAc,CAAC,CAACI,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;MACvDL,KAAK,CAACI,GAAG,CAAC,GAAGC,KAAK;IACpB,CAAC,CAAC;EACJ;AACF;AAEA,OAAO,MAAMM,UAAU,GAAIC,SAA0B,IAAK;EACxD,QAAQA,SAAS;IACf,KAAK,KAAK;IACV,KAAK,QAAQ;MACX,OAAO,IAAI;IACb,KAAK,MAAM;IACX,KAAK,OAAO;MACV,OAAO,KAAK;IACd;MACE,OAAOA,SAAS;EACpB;AACF,CAAC;AAED,OAAO,
|
|
1
|
+
{"version":3,"names":["cache","WeakMap","isInView","el","rect","getBoundingClientRect","window","visualViewport","top","left","bottom","height","right","width","set","styles","ignoreCache","HTMLElement","originalStyles","style","Object","entries","forEach","key","value","startsWith","setProperty","reset","prop","get","isVertical","direction","getSnapPointTransform","getTranslate","element","getComputedStyle","transform","webkitTransform","mozTransform","mat","match","parseFloat","split","dampenValue","v","Math","log","assignStyle","prevStyle","cssText","assign","chain","fns","args","fn"],"sourceRoot":"../../../../src","sources":["web/vaul/helpers.ts"],"mappings":"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","ignoreList":[]}
|