@oxyhq/bloom 0.59.1 → 0.59.3
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 +4 -3
- package/lib/commonjs/bottom-sheet/BottomSheetBase.js +38 -23
- package/lib/commonjs/bottom-sheet/BottomSheetBase.js.map +1 -1
- package/lib/commonjs/dialog/Dialog.js +2 -5
- package/lib/commonjs/dialog/Dialog.js.map +1 -1
- package/lib/commonjs/dialog/DialogBottomSheet.js +0 -4
- package/lib/commonjs/dialog/DialogBottomSheet.js.map +1 -1
- package/lib/commonjs/dialog/SheetShell.js +2 -2
- package/lib/commonjs/dialog/SheetShell.js.map +1 -1
- package/lib/commonjs/overlay/blur-target.js +53 -0
- package/lib/commonjs/overlay/blur-target.js.map +1 -0
- package/lib/commonjs/overlay/index.js +15 -5
- package/lib/commonjs/overlay/index.js.map +1 -1
- package/lib/commonjs/provider/index.js +4 -6
- package/lib/commonjs/provider/index.js.map +1 -1
- package/lib/commonjs/styles/radii.js +9 -0
- package/lib/commonjs/styles/radii.js.map +1 -0
- package/lib/module/bottom-sheet/BottomSheetBase.js +40 -25
- package/lib/module/bottom-sheet/BottomSheetBase.js.map +1 -1
- package/lib/module/dialog/Dialog.js +2 -5
- package/lib/module/dialog/Dialog.js.map +1 -1
- package/lib/module/dialog/DialogBottomSheet.js +1 -5
- package/lib/module/dialog/DialogBottomSheet.js.map +1 -1
- package/lib/module/dialog/SheetShell.js +2 -2
- package/lib/module/dialog/SheetShell.js.map +1 -1
- package/lib/module/overlay/blur-target.js +48 -0
- package/lib/module/overlay/blur-target.js.map +1 -0
- package/lib/module/overlay/index.js +14 -5
- package/lib/module/overlay/index.js.map +1 -1
- package/lib/module/provider/index.js +4 -6
- package/lib/module/provider/index.js.map +1 -1
- package/lib/module/styles/radii.js +5 -0
- package/lib/module/styles/radii.js.map +1 -0
- package/lib/typescript/commonjs/bottom-sheet/BottomSheetBase.d.ts +4 -5
- package/lib/typescript/commonjs/bottom-sheet/BottomSheetBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/Dialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/DialogBottomSheet.d.ts.map +1 -1
- package/lib/typescript/commonjs/dialog/SheetShell.d.ts.map +1 -1
- package/lib/typescript/commonjs/overlay/blur-target.d.ts +21 -0
- package/lib/typescript/commonjs/overlay/blur-target.d.ts.map +1 -0
- package/lib/typescript/commonjs/overlay/index.d.ts +7 -2
- package/lib/typescript/commonjs/overlay/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/provider/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/styles/radii.d.ts +3 -0
- package/lib/typescript/commonjs/styles/radii.d.ts.map +1 -0
- package/lib/typescript/module/bottom-sheet/BottomSheetBase.d.ts +4 -5
- package/lib/typescript/module/bottom-sheet/BottomSheetBase.d.ts.map +1 -1
- package/lib/typescript/module/dialog/Dialog.d.ts.map +1 -1
- package/lib/typescript/module/dialog/DialogBottomSheet.d.ts.map +1 -1
- package/lib/typescript/module/dialog/SheetShell.d.ts.map +1 -1
- package/lib/typescript/module/overlay/blur-target.d.ts +21 -0
- package/lib/typescript/module/overlay/blur-target.d.ts.map +1 -0
- package/lib/typescript/module/overlay/index.d.ts +7 -2
- package/lib/typescript/module/overlay/index.d.ts.map +1 -1
- package/lib/typescript/module/provider/index.d.ts.map +1 -1
- package/lib/typescript/module/styles/radii.d.ts +3 -0
- package/lib/typescript/module/styles/radii.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/BottomSheet.test.tsx +46 -1
- package/src/__tests__/BottomSheetGesture.test.tsx +21 -3
- package/src/bottom-sheet/BottomSheetBase.tsx +46 -29
- package/src/dialog/Dialog.tsx +2 -4
- package/src/dialog/DialogBottomSheet.tsx +0 -4
- package/src/dialog/SheetShell.tsx +2 -2
- package/src/overlay/blur-target.tsx +45 -0
- package/src/overlay/index.tsx +21 -5
- package/src/provider/index.tsx +14 -11
- package/src/styles/radii.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useImperativeHandle","useMemo","useRef","Pressable","StyleSheet","View","BottomSheet","Z_INDEX","useTheme","Context","jsx","_jsx","jsxs","_jsxs","SheetShell","control","label","header","onClose","contentStyle","children","theme","ref","closeCallbacks","callQueuedCallbacks","queued","current","cb","e","console","error","open","present","close","push","dismiss","handleDismiss","context","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","onDismiss","enablePanDownToClose","detached","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useImperativeHandle","useMemo","useRef","Pressable","StyleSheet","View","BottomSheet","DETACHED_SHEET_RADIUS","Z_INDEX","useTheme","Context","jsx","_jsx","jsxs","_jsxs","SheetShell","control","label","header","onClose","contentStyle","children","theme","ref","closeCallbacks","callQueuedCallbacks","queued","current","cb","e","console","error","open","present","close","push","dismiss","handleDismiss","context","isWithinDialog","sheetStyle","maxWidth","backgroundColor","colors","background","borderRadius","onDismiss","enablePanDownToClose","detached","style","Provider","value","SheetHandle","onPress","accessibilityLabel","styles","body","handleContainer","accessibilityHint","hitSlop","top","bottom","left","right","handleBar","text","create","position","width","alignItems","zIndex","floating","height","alignSelf","opacity","paddingTop","paddingHorizontal","paddingBottom"],"sourceRoot":"../../../src","sources":["dialog/SheetShell.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext, useRef } from 'react';
|
|
4
|
+
import { BlurTargetView } from 'expo-blur';
|
|
5
|
+
import { Platform, StyleSheet } from 'react-native';
|
|
6
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const BlurTargetContext = /*#__PURE__*/createContext(null);
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Gives Android overlay blurs a real view to sample.
|
|
11
|
+
*
|
|
12
|
+
* Expo Blur 56+ intentionally disables the Dimezis implementation unless a
|
|
13
|
+
* `BlurTargetView` is supplied. Bloom's sheets render their backdrop inside a
|
|
14
|
+
* native `Modal`, so the target must live around the app content in the
|
|
15
|
+
* underlying window and travel to the modal through React context.
|
|
16
|
+
*
|
|
17
|
+
* Only modal backdrops consume this target. Ordinary in-tree BlurViews never
|
|
18
|
+
* target their own ancestor, avoiding the recursive capture/crash that causes.
|
|
19
|
+
*/
|
|
20
|
+
export function BloomBlurTargetProvider({
|
|
21
|
+
children
|
|
22
|
+
}) {
|
|
23
|
+
const targetRef = useRef(null);
|
|
24
|
+
if (Platform.OS !== 'android') {
|
|
25
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
26
|
+
children: children
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return /*#__PURE__*/_jsx(BlurTargetContext.Provider, {
|
|
30
|
+
value: targetRef,
|
|
31
|
+
children: /*#__PURE__*/_jsx(BlurTargetView, {
|
|
32
|
+
ref: targetRef,
|
|
33
|
+
style: styles.target,
|
|
34
|
+
children: children
|
|
35
|
+
})
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Internal target used only by Bloom's native modal backdrops. */
|
|
40
|
+
export function useBloomBlurTarget() {
|
|
41
|
+
return useContext(BlurTargetContext);
|
|
42
|
+
}
|
|
43
|
+
const styles = StyleSheet.create({
|
|
44
|
+
target: {
|
|
45
|
+
flex: 1
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=blur-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useRef","BlurTargetView","Platform","StyleSheet","Fragment","_Fragment","jsx","_jsx","BlurTargetContext","BloomBlurTargetProvider","children","targetRef","OS","Provider","value","ref","style","styles","target","useBloomBlurTarget","create","flex"],"sourceRoot":"../../../src","sources":["overlay/blur-target.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,MAAM,QAAwC,OAAO;AACzF,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,QAAQ,EAAEC,UAAU,QAAmB,cAAc;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAI/D,MAAMC,iBAAiB,gBAAGV,aAAa,CAAuB,IAAI,CAAC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASW,uBAAuBA,CAAC;EAAEC;AAAkC,CAAC,EAAE;EAC7E,MAAMC,SAAS,GAAGX,MAAM,CAAO,IAAI,CAAC;EAEpC,IAAIE,QAAQ,CAACU,EAAE,KAAK,SAAS,EAAE;IAC7B,oBAAOL,IAAA,CAAAF,SAAA;MAAAK,QAAA,EAAGA;IAAQ,CAAG,CAAC;EACxB;EAEA,oBACEH,IAAA,CAACC,iBAAiB,CAACK,QAAQ;IAACC,KAAK,EAAEH,SAAU;IAAAD,QAAA,eAC3CH,IAAA,CAACN,cAAc;MAACc,GAAG,EAAEJ,SAAU;MAACK,KAAK,EAAEC,MAAM,CAACC,MAAO;MAAAR,QAAA,EAClDA;IAAQ,CACK;EAAC,CACS,CAAC;AAEjC;;AAEA;AACA,OAAO,SAASS,kBAAkBA,CAAA,EAAyB;EACzD,OAAOpB,UAAU,CAACS,iBAAiB,CAAC;AACtC;AAEA,MAAMS,MAAM,GAAGd,UAAU,CAACiB,MAAM,CAAC;EAC/BF,MAAM,EAAE;IACNG,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
*/
|
|
44
44
|
import { forwardRef, memo } from 'react';
|
|
45
45
|
import { BlurView } from 'expo-blur';
|
|
46
|
+
import Animated, { useAnimatedProps } from 'react-native-reanimated';
|
|
46
47
|
import { Platform, Pressable, StyleSheet, View } from 'react-native';
|
|
47
48
|
import { WEB_POSITION_FIXED } from "../styles/web-view-style.js";
|
|
48
49
|
|
|
@@ -54,6 +55,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
54
55
|
export const BACKDROP_BLUR_INTENSITY = 40;
|
|
55
56
|
/** Dim laid over the blur — the blur alone does not give enough contrast. */
|
|
56
57
|
export const BACKDROP_DIM_OPACITY = 0.45;
|
|
58
|
+
const AnimatedBlurView = Animated.createAnimatedComponent(BlurView);
|
|
57
59
|
/**
|
|
58
60
|
* Outermost node of a portaled surface. Fills the viewport and re-enables
|
|
59
61
|
* pointer events for its own children while empty gaps stay click-through
|
|
@@ -85,12 +87,17 @@ export const Backdrop = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Backd
|
|
|
85
87
|
blurTint = 'dark',
|
|
86
88
|
dimColor = '#000',
|
|
87
89
|
dimOpacity = BACKDROP_DIM_OPACITY,
|
|
90
|
+
blurTarget,
|
|
91
|
+
blurProgress,
|
|
88
92
|
style,
|
|
89
93
|
children,
|
|
90
94
|
accessibilityLabel = 'Dismiss',
|
|
91
95
|
testID
|
|
92
96
|
}, ref) {
|
|
93
97
|
const inert = disabled || !onPress;
|
|
98
|
+
const animatedBlurProps = useAnimatedProps(() => ({
|
|
99
|
+
intensity: Math.max(0, Math.min(100, blurIntensity * (blurProgress?.value ?? 1)))
|
|
100
|
+
}), [blurIntensity, blurProgress]);
|
|
94
101
|
return /*#__PURE__*/_jsxs(Pressable
|
|
95
102
|
// MUST forward the ref: surfaces animate the backdrop through
|
|
96
103
|
// `Animated.createAnimatedComponent(Backdrop)`, and reanimated applies
|
|
@@ -112,13 +119,15 @@ export const Backdrop = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Backd
|
|
|
112
119
|
accessibilityLabel: inert ? undefined : accessibilityLabel,
|
|
113
120
|
testID: testID,
|
|
114
121
|
style: [StyleSheet.absoluteFill, style],
|
|
115
|
-
children: [blurIntensity > 0 ? /*#__PURE__*/_jsx(
|
|
122
|
+
children: [blurIntensity > 0 ? /*#__PURE__*/_jsx(AnimatedBlurView, {
|
|
116
123
|
intensity: blurIntensity,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
124
|
+
animatedProps: animatedBlurProps,
|
|
125
|
+
tint: blurTint,
|
|
126
|
+
blurTarget: blurTarget
|
|
127
|
+
// Expo disables Android blur without an explicit target. Sheets get
|
|
128
|
+
// one from BloomProvider; targetless surfaces degrade without warning.
|
|
120
129
|
,
|
|
121
|
-
|
|
130
|
+
blurMethod: Platform.OS === 'android' && blurTarget ? 'dimezisBlurViewSdk31Plus' : undefined,
|
|
122
131
|
pointerEvents: "none",
|
|
123
132
|
style: StyleSheet.absoluteFill
|
|
124
133
|
}) : null, /*#__PURE__*/_jsx(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","memo","BlurView","Platform","Pressable","StyleSheet","View","WEB_POSITION_FIXED","jsx","_jsx","jsxs","_jsxs","BACKDROP_BLUR_INTENSITY","BACKDROP_DIM_OPACITY","OverlayRoot","children","style","testID","pointerEvents","styles","root","displayName","Backdrop","onPress","disabled","blurIntensity","blurTint","dimColor","dimOpacity","accessibilityLabel","ref","inert","undefined","focusable","accessibilityRole","absoluteFill","
|
|
1
|
+
{"version":3,"names":["forwardRef","memo","BlurView","Animated","useAnimatedProps","Platform","Pressable","StyleSheet","View","WEB_POSITION_FIXED","jsx","_jsx","jsxs","_jsxs","BACKDROP_BLUR_INTENSITY","BACKDROP_DIM_OPACITY","AnimatedBlurView","createAnimatedComponent","OverlayRoot","children","style","testID","pointerEvents","styles","root","displayName","Backdrop","onPress","disabled","blurIntensity","blurTint","dimColor","dimOpacity","blurTarget","blurProgress","accessibilityLabel","ref","inert","animatedBlurProps","intensity","Math","max","min","value","undefined","focusable","accessibilityRole","absoluteFill","animatedProps","tint","blurMethod","OS","backgroundColor","opacity","create","position","top","left","right","bottom"],"sourceRoot":"../../../src","sources":["overlay/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
|
|
36
36
|
import { ImageResolverProvider } from "../image-resolver/index.js";
|
|
37
37
|
import { BloomHapticsProvider } from "../hooks/useHaptics.js";
|
|
38
|
+
import { BloomBlurTargetProvider } from "../overlay/blur-target.js";
|
|
38
39
|
import { TabBarMinimizeProvider } from "../tab-bar/minimize-context.js";
|
|
39
40
|
import { BloomThemeProvider } from "../theme/index.js";
|
|
40
41
|
import { ScrollRestorationProvider } from './scroll-provider';
|
|
@@ -45,11 +46,8 @@ export function BloomProvider({
|
|
|
45
46
|
haptics = true,
|
|
46
47
|
...themeProps
|
|
47
48
|
}) {
|
|
48
|
-
return (
|
|
49
|
-
/*#__PURE__*/
|
|
50
|
-
// `value` is passed unconditionally (null when unset) so toggling a resolver
|
|
51
|
-
// never changes the tree shape and remounts everything below it.
|
|
52
|
-
_jsx(ImageResolverProvider, {
|
|
49
|
+
return /*#__PURE__*/_jsx(BloomBlurTargetProvider, {
|
|
50
|
+
children: /*#__PURE__*/_jsx(ImageResolverProvider, {
|
|
53
51
|
value: imageResolver ?? null,
|
|
54
52
|
children: /*#__PURE__*/_jsx(BloomThemeProvider, {
|
|
55
53
|
...themeProps,
|
|
@@ -63,7 +61,7 @@ export function BloomProvider({
|
|
|
63
61
|
})
|
|
64
62
|
})
|
|
65
63
|
})
|
|
66
|
-
);
|
|
64
|
+
});
|
|
67
65
|
}
|
|
68
66
|
BloomProvider.displayName = 'BloomProvider';
|
|
69
67
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ImageResolverProvider","BloomHapticsProvider","TabBarMinimizeProvider","BloomThemeProvider","ScrollRestorationProvider","jsx","_jsx","BloomProvider","children","imageResolver","haptics","themeProps","value","enabled","displayName"],"sourceRoot":"../../../src","sources":["provider/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,qBAAqB,QAA4B,4BAAmB;AAC7E,SAASC,oBAAoB,QAAQ,wBAAqB;AAC1D,SAASC,sBAAsB,QAAQ,gCAA6B;AACpE,SAASC,kBAAkB,QAAsC,mBAAU;AAC3E,SAASC,yBAAyB,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAc9D,OAAO,SAASC,aAAaA,CAAC;EAC5BC,QAAQ;EACRC,aAAa;EACbC,OAAO,GAAG,IAAI;EACd,GAAGC;AACe,CAAC,EAAE;EACrB
|
|
1
|
+
{"version":3,"names":["ImageResolverProvider","BloomHapticsProvider","BloomBlurTargetProvider","TabBarMinimizeProvider","BloomThemeProvider","ScrollRestorationProvider","jsx","_jsx","BloomProvider","children","imageResolver","haptics","themeProps","value","enabled","displayName"],"sourceRoot":"../../../src","sources":["provider/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,qBAAqB,QAA4B,4BAAmB;AAC7E,SAASC,oBAAoB,QAAQ,wBAAqB;AAC1D,SAASC,uBAAuB,QAAQ,2BAAwB;AAChE,SAASC,sBAAsB,QAAQ,gCAA6B;AACpE,SAASC,kBAAkB,QAAsC,mBAAU;AAC3E,SAASC,yBAAyB,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAc9D,OAAO,SAASC,aAAaA,CAAC;EAC5BC,QAAQ;EACRC,aAAa;EACbC,OAAO,GAAG,IAAI;EACd,GAAGC;AACe,CAAC,EAAE;EACrB,oBACEL,IAAA,CAACL,uBAAuB;IAAAO,QAAA,eAGtBF,IAAA,CAACP,qBAAqB;MAACa,KAAK,EAAEH,aAAa,IAAI,IAAK;MAAAD,QAAA,eAClDF,IAAA,CAACH,kBAAkB;QAAA,GAAKQ,UAAU;QAAAH,QAAA,eAChCF,IAAA,CAACF,yBAAyB;UAAAI,QAAA,eACxBF,IAAA,CAACN,oBAAoB;YAACa,OAAO,EAAEH,OAAQ;YAAAF,QAAA,eACrCF,IAAA,CAACJ,sBAAsB;cAAAM,QAAA,EAAEA;YAAQ,CAAyB;UAAC,CACvC;QAAC,CACE;MAAC,CACV;IAAC,CACA;EAAC,CACD,CAAC;AAE9B;AAEAD,aAAa,CAACO,WAAW,GAAG,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DETACHED_SHEET_RADIUS"],"sourceRoot":"../../../src","sources":["styles/radii.ts"],"mappings":";;AAAA;AACA,OAAO,MAAMA,qBAAqB,GAAG,EAAE","ignoreList":[]}
|
|
@@ -82,12 +82,11 @@ export interface BottomSheetProps {
|
|
|
82
82
|
*/
|
|
83
83
|
manualActivation?: boolean;
|
|
84
84
|
/**
|
|
85
|
-
* When `true`, the backdrop
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* `backdropOpacity` still controls the resting dim level.
|
|
85
|
+
* When `true`, the backdrop and native blur fade proportionally with drag
|
|
86
|
+
* distance — fully visible at rest and fully gone once the sheet leaves the
|
|
87
|
+
* viewport. The base `backdropOpacity` still controls the resting dim level.
|
|
89
88
|
*
|
|
90
|
-
* Defaults to `false`
|
|
89
|
+
* Defaults to `true`. Set to `false` only for a deliberately fixed backdrop.
|
|
91
90
|
*/
|
|
92
91
|
dynamicBackdrop?: boolean;
|
|
93
92
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetBase.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/BottomSheetBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAMH,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAItB,OAAiB,EACb,KAAK,aAAa,EAGlB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"BottomSheetBase.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/BottomSheetBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAMH,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAItB,OAAiB,EACb,KAAK,aAAa,EAGlB,KAAK,WAAW,EAOnB,MAAM,yBAAyB,CAAC;AA2BjC,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACjH;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IAClC,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACrD;AAID,eAAO,MAAM,eAAe,6FA8nB1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/dialog/Dialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/dialog/Dialog.tsx"],"names":[],"mappings":"AA2CA,OAAO,EAIL,4BAA4B,EAK7B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,WAAW,2CAab;AA4fD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,OAAO,EACP,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,2CAoBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogBottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/dialog/DialogBottomSheet.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DialogBottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/dialog/DialogBottomSheet.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAsB,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,IAAI,EAAE,cAAc,EACpB,SAAS,EACT,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,MAAM,EACN,cAAyC,EACzC,UAAiB,EACjB,iBAAwB,EACxB,cAA+C,EAC/C,UAAU,EACV,KAAK,EACL,KAAK,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,QAAQ,GACT,EAAE,sBAAsB,2CAgPxB;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,WAAW,EACT,SAAS,GACT,MAAM,GACN,WAAW,GACX,SAAS,GACT,QAAQ,GACR,OAAO,GACP,aAAa,GACb,SAAS,GACT,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,gBAAgB,GAChB,YAAY,GACZ,OAAO,GACP,OAAO,GACP,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,OAAO,GACP,UAAU,CACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SheetShell.d.ts","sourceRoot":"","sources":["../../../../src/dialog/SheetShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"SheetShell.d.ts","sourceRoot":"","sources":["../../../../src/dialog/SheetShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAO3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qEAAqE;IACrE,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,YAAY,EACZ,QAAQ,GACT,EAAE,eAAe,2CAuEjB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
2
|
+
import { type View } from 'react-native';
|
|
3
|
+
type BlurTargetRef = RefObject<View | null>;
|
|
4
|
+
/**
|
|
5
|
+
* Gives Android overlay blurs a real view to sample.
|
|
6
|
+
*
|
|
7
|
+
* Expo Blur 56+ intentionally disables the Dimezis implementation unless a
|
|
8
|
+
* `BlurTargetView` is supplied. Bloom's sheets render their backdrop inside a
|
|
9
|
+
* native `Modal`, so the target must live around the app content in the
|
|
10
|
+
* underlying window and travel to the modal through React context.
|
|
11
|
+
*
|
|
12
|
+
* Only modal backdrops consume this target. Ordinary in-tree BlurViews never
|
|
13
|
+
* target their own ancestor, avoiding the recursive capture/crash that causes.
|
|
14
|
+
*/
|
|
15
|
+
export declare function BloomBlurTargetProvider({ children }: {
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
/** Internal target used only by Bloom's native modal backdrops. */
|
|
19
|
+
export declare function useBloomBlurTarget(): BlurTargetRef | null;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=blur-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blur-target.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blur-target.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1F,OAAO,EAAwB,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAE/D,KAAK,aAAa,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAI5C;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAc5E;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,IAAI,aAAa,GAAG,IAAI,CAEzD"}
|
|
@@ -39,8 +39,9 @@
|
|
|
39
39
|
* Use `<OverlayRoot>` for the surface's outermost node and `<Backdrop>` for its
|
|
40
40
|
* dimming layer; do not re-implement either with raw `View`s.
|
|
41
41
|
*/
|
|
42
|
-
import { type ReactNode } from 'react';
|
|
43
|
-
import {
|
|
42
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
43
|
+
import { type SharedValue } from 'react-native-reanimated';
|
|
44
|
+
import { View, type StyleProp, type View as NativeView, type ViewStyle } from 'react-native';
|
|
44
45
|
/**
|
|
45
46
|
* One blur radius for every Bloom overlay. Surfaces differ in what they show,
|
|
46
47
|
* not in how the app behind them recedes.
|
|
@@ -76,6 +77,10 @@ export interface BackdropProps {
|
|
|
76
77
|
dimColor?: string;
|
|
77
78
|
/** Dim opacity, 0–1. */
|
|
78
79
|
dimOpacity?: number;
|
|
80
|
+
/** Android view sampled by the native blur. Modal surfaces receive this from BloomProvider. */
|
|
81
|
+
blurTarget?: RefObject<NativeView | null>;
|
|
82
|
+
/** Live visibility progress used to reduce native blur while a surface leaves. */
|
|
83
|
+
blurProgress?: SharedValue<number>;
|
|
79
84
|
/** Extra style on the press target — animated opacity, insets, z-index. */
|
|
80
85
|
style?: StyleProp<ViewStyle>;
|
|
81
86
|
/** Rendered ON TOP of the dim, inside the press target (Dialog's panel does this). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/overlay/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/overlay/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,OAAiB,EAAE,KAAK,WAAW,EAAoB,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAIL,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,IAAI,IAAI,UAAU,EACvB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAIzC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CAMxE;yBANe,WAAW;;;AAU3B,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC1C,kFAAkF;IAClF,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,2FA+DlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAI9E,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAG5E,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC;IACnF,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,aAAa,EACb,OAAc,EACd,GAAG,UAAU,EACd,EAAE,kBAAkB,2CAgBpB;yBArBe,aAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radii.d.ts","sourceRoot":"","sources":["../../../../src/styles/radii.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
|
|
@@ -82,12 +82,11 @@ export interface BottomSheetProps {
|
|
|
82
82
|
*/
|
|
83
83
|
manualActivation?: boolean;
|
|
84
84
|
/**
|
|
85
|
-
* When `true`, the backdrop
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* `backdropOpacity` still controls the resting dim level.
|
|
85
|
+
* When `true`, the backdrop and native blur fade proportionally with drag
|
|
86
|
+
* distance — fully visible at rest and fully gone once the sheet leaves the
|
|
87
|
+
* viewport. The base `backdropOpacity` still controls the resting dim level.
|
|
89
88
|
*
|
|
90
|
-
* Defaults to `false`
|
|
89
|
+
* Defaults to `true`. Set to `false` only for a deliberately fixed backdrop.
|
|
91
90
|
*/
|
|
92
91
|
dynamicBackdrop?: boolean;
|
|
93
92
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetBase.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/BottomSheetBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAMH,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAItB,OAAiB,EACb,KAAK,aAAa,EAGlB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"BottomSheetBase.d.ts","sourceRoot":"","sources":["../../../../src/bottom-sheet/BottomSheetBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAMH,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAItB,OAAiB,EACb,KAAK,aAAa,EAGlB,KAAK,WAAW,EAOnB,MAAM,yBAAyB,CAAC;AA2BjC,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACjH;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IAClC,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC1D,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACrD;AAID,eAAO,MAAM,eAAe,6FA8nB1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/dialog/Dialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/dialog/Dialog.tsx"],"names":[],"mappings":"AA2CA,OAAO,EAIL,4BAA4B,EAK7B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,WAAW,2CAab;AA4fD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,OAAO,EACP,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,2CAoBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogBottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/dialog/DialogBottomSheet.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DialogBottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/dialog/DialogBottomSheet.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAsB,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,IAAI,EAAE,cAAc,EACpB,SAAS,EACT,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,MAAM,EACN,cAAyC,EACzC,UAAiB,EACjB,iBAAwB,EACxB,cAA+C,EAC/C,UAAU,EACV,KAAK,EACL,KAAK,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,QAAQ,GACT,EAAE,sBAAsB,2CAgPxB;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,WAAW,EACT,SAAS,GACT,MAAM,GACN,WAAW,GACX,SAAS,GACT,QAAQ,GACR,OAAO,GACP,aAAa,GACb,SAAS,GACT,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,gBAAgB,GAChB,YAAY,GACZ,OAAO,GACP,OAAO,GACP,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,OAAO,GACP,UAAU,CACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SheetShell.d.ts","sourceRoot":"","sources":["../../../../src/dialog/SheetShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"SheetShell.d.ts","sourceRoot":"","sources":["../../../../src/dialog/SheetShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAO3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qEAAqE;IACrE,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,YAAY,EACZ,QAAQ,GACT,EAAE,eAAe,2CAuEjB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
2
|
+
import { type View } from 'react-native';
|
|
3
|
+
type BlurTargetRef = RefObject<View | null>;
|
|
4
|
+
/**
|
|
5
|
+
* Gives Android overlay blurs a real view to sample.
|
|
6
|
+
*
|
|
7
|
+
* Expo Blur 56+ intentionally disables the Dimezis implementation unless a
|
|
8
|
+
* `BlurTargetView` is supplied. Bloom's sheets render their backdrop inside a
|
|
9
|
+
* native `Modal`, so the target must live around the app content in the
|
|
10
|
+
* underlying window and travel to the modal through React context.
|
|
11
|
+
*
|
|
12
|
+
* Only modal backdrops consume this target. Ordinary in-tree BlurViews never
|
|
13
|
+
* target their own ancestor, avoiding the recursive capture/crash that causes.
|
|
14
|
+
*/
|
|
15
|
+
export declare function BloomBlurTargetProvider({ children }: {
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
/** Internal target used only by Bloom's native modal backdrops. */
|
|
19
|
+
export declare function useBloomBlurTarget(): BlurTargetRef | null;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=blur-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blur-target.d.ts","sourceRoot":"","sources":["../../../../src/overlay/blur-target.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1F,OAAO,EAAwB,KAAK,IAAI,EAAE,MAAM,cAAc,CAAC;AAE/D,KAAK,aAAa,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAI5C;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAc5E;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,IAAI,aAAa,GAAG,IAAI,CAEzD"}
|
|
@@ -39,8 +39,9 @@
|
|
|
39
39
|
* Use `<OverlayRoot>` for the surface's outermost node and `<Backdrop>` for its
|
|
40
40
|
* dimming layer; do not re-implement either with raw `View`s.
|
|
41
41
|
*/
|
|
42
|
-
import { type ReactNode } from 'react';
|
|
43
|
-
import {
|
|
42
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
43
|
+
import { type SharedValue } from 'react-native-reanimated';
|
|
44
|
+
import { View, type StyleProp, type View as NativeView, type ViewStyle } from 'react-native';
|
|
44
45
|
/**
|
|
45
46
|
* One blur radius for every Bloom overlay. Surfaces differ in what they show,
|
|
46
47
|
* not in how the app behind them recedes.
|
|
@@ -76,6 +77,10 @@ export interface BackdropProps {
|
|
|
76
77
|
dimColor?: string;
|
|
77
78
|
/** Dim opacity, 0–1. */
|
|
78
79
|
dimOpacity?: number;
|
|
80
|
+
/** Android view sampled by the native blur. Modal surfaces receive this from BloomProvider. */
|
|
81
|
+
blurTarget?: RefObject<NativeView | null>;
|
|
82
|
+
/** Live visibility progress used to reduce native blur while a surface leaves. */
|
|
83
|
+
blurProgress?: SharedValue<number>;
|
|
79
84
|
/** Extra style on the press target — animated opacity, insets, z-index. */
|
|
80
85
|
style?: StyleProp<ViewStyle>;
|
|
81
86
|
/** Rendered ON TOP of the dim, inside the press target (Dialog's panel does this). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/overlay/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/overlay/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,OAAiB,EAAE,KAAK,WAAW,EAAoB,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAIL,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,IAAI,IAAI,UAAU,EACvB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAIzC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CAMxE;yBANe,WAAW;;;AAU3B,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC1C,kFAAkF;IAClF,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,2FA+DlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAI9E,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAG5E,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC;IACnF,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,aAAa,EACb,OAAc,EACd,GAAG,UAAU,EACd,EAAE,kBAAkB,2CAgBpB;yBArBe,aAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radii.d.ts","sourceRoot":"","sources":["../../../../src/styles/radii.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React, { createRef } from 'react';
|
|
2
|
-
import { Dimensions, Text } from 'react-native';
|
|
2
|
+
import { Dimensions, Platform, Text } from 'react-native';
|
|
3
3
|
import { act, render, within } from '@testing-library/react-native';
|
|
4
4
|
|
|
5
5
|
import { BloomThemeProvider } from '../theme/BloomThemeProvider';
|
|
6
6
|
import BottomSheet, { type BottomSheetRef } from '../bottom-sheet';
|
|
7
|
+
import { BloomBlurTargetProvider } from '../overlay/blur-target';
|
|
7
8
|
|
|
8
9
|
function renderWithTheme(ui: React.ReactElement) {
|
|
9
10
|
return render(
|
|
@@ -107,6 +108,50 @@ describe('BottomSheet', () => {
|
|
|
107
108
|
});
|
|
108
109
|
});
|
|
109
110
|
|
|
111
|
+
describe('detached material', () => {
|
|
112
|
+
it('keeps the Android blur visible over a lighter dim and uses the rounder floating shape', () => {
|
|
113
|
+
const previousOS = Platform.OS;
|
|
114
|
+
Platform.OS = 'android';
|
|
115
|
+
try {
|
|
116
|
+
const ref = createRef<BottomSheetRef>();
|
|
117
|
+
const { UNSAFE_getByType, UNSAFE_getAllByType } = renderWithTheme(
|
|
118
|
+
<BloomBlurTargetProvider>
|
|
119
|
+
<BottomSheet ref={ref} detached>
|
|
120
|
+
<Text>Floating content</Text>
|
|
121
|
+
</BottomSheet>
|
|
122
|
+
</BloomBlurTargetProvider>,
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
act(() => {
|
|
126
|
+
ref.current?.present();
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
UNSAFE_getByType('BlurTargetView' as never);
|
|
130
|
+
const blur = UNSAFE_getByType('BlurView' as never);
|
|
131
|
+
expect(blur.props.blurMethod).toBe('dimezisBlurViewSdk31Plus');
|
|
132
|
+
expect(blur.props.blurTarget).toEqual(expect.objectContaining({ current: null }));
|
|
133
|
+
|
|
134
|
+
const views = UNSAFE_getAllByType('View' as never);
|
|
135
|
+
expect(
|
|
136
|
+
views.some((view) => {
|
|
137
|
+
const style = JSON.stringify(view.props.style);
|
|
138
|
+
return style.includes('"backgroundColor":"#000"') && style.includes('"opacity":0.45');
|
|
139
|
+
}),
|
|
140
|
+
).toBe(true);
|
|
141
|
+
|
|
142
|
+
const animatedViews = UNSAFE_getAllByType('Animated.View' as never);
|
|
143
|
+
expect(
|
|
144
|
+
animatedViews.some((view) => {
|
|
145
|
+
const style = JSON.stringify(view.props.style);
|
|
146
|
+
return style.includes('"left":16') && style.includes('"borderRadius":32');
|
|
147
|
+
}),
|
|
148
|
+
).toBe(true);
|
|
149
|
+
} finally {
|
|
150
|
+
Platform.OS = previousOS;
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
|
|
110
155
|
describe('scrollable prop', () => {
|
|
111
156
|
it('renders children directly when scrollable is false (no internal ScrollView wrap)', () => {
|
|
112
157
|
// When scrollable={false}, the screen owns its own scrolling primitive
|
|
@@ -77,18 +77,19 @@ jest.mock('react-native-gesture-handler', () => {
|
|
|
77
77
|
|
|
78
78
|
function renderSheet(onDismiss: () => void) {
|
|
79
79
|
const ref = createRef<BottomSheetRef>();
|
|
80
|
-
const
|
|
80
|
+
const tree = () => (
|
|
81
81
|
<BloomThemeProvider mode="light" colorPreset="teal">
|
|
82
82
|
<BottomSheet ref={ref} onDismiss={onDismiss}>
|
|
83
83
|
<Text>Body</Text>
|
|
84
84
|
</BottomSheet>
|
|
85
|
-
</BloomThemeProvider
|
|
85
|
+
</BloomThemeProvider>
|
|
86
86
|
);
|
|
87
|
+
const utils = render(tree());
|
|
87
88
|
// Present so the sheet mounts and the pan gesture is constructed.
|
|
88
89
|
act(() => {
|
|
89
90
|
ref.current?.present();
|
|
90
91
|
});
|
|
91
|
-
return utils;
|
|
92
|
+
return { ...utils, rerenderSheet: () => utils.rerender(tree()) };
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
describe('BottomSheet pan-to-dismiss gesture', () => {
|
|
@@ -132,4 +133,21 @@ describe('BottomSheet pan-to-dismiss gesture', () => {
|
|
|
132
133
|
});
|
|
133
134
|
expect(onDismiss).not.toHaveBeenCalled();
|
|
134
135
|
});
|
|
136
|
+
|
|
137
|
+
it('reduces native blur intensity continuously with the downward drag by default', () => {
|
|
138
|
+
const utils = renderSheet(() => {});
|
|
139
|
+
const bodyPan = mockPanGestures.find((g) => typeof g.onEnd === 'function');
|
|
140
|
+
const sheet = utils
|
|
141
|
+
.UNSAFE_getAllByType('Animated.View' as never)
|
|
142
|
+
.find((view) => typeof view.props.onLayout === 'function');
|
|
143
|
+
|
|
144
|
+
act(() => {
|
|
145
|
+
sheet?.props.onLayout({ nativeEvent: { layout: { height: 800 } } });
|
|
146
|
+
bodyPan?.onUpdate?.({ translationY: 400 });
|
|
147
|
+
utils.rerenderSheet();
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
const blur = utils.UNSAFE_getByType('BlurView' as never);
|
|
151
|
+
expect(blur.props.animatedProps.intensity).toBeCloseTo(20);
|
|
152
|
+
});
|
|
135
153
|
});
|