react-native-bottom-sheet-stack 1.0.2 → 1.1.0
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 +262 -50
- package/lib/commonjs/BottomSheet.context.js.map +1 -1
- package/lib/commonjs/BottomSheetBackdrop.js +76 -0
- package/lib/commonjs/BottomSheetBackdrop.js.map +1 -0
- package/lib/commonjs/BottomSheetHost.js +280 -38
- package/lib/commonjs/BottomSheetHost.js.map +1 -1
- package/lib/commonjs/BottomSheetManaged.js +128 -38
- package/lib/commonjs/BottomSheetManaged.js.map +1 -1
- package/lib/commonjs/BottomSheetManager.context.js.map +1 -1
- package/lib/commonjs/BottomSheetManager.provider.js +41 -13
- package/lib/commonjs/BottomSheetManager.provider.js.map +1 -1
- package/lib/commonjs/BottomSheetPortal.js +46 -0
- package/lib/commonjs/BottomSheetPortal.js.map +1 -0
- package/lib/commonjs/BottomSheetScaleView.js +67 -0
- package/lib/commonjs/BottomSheetScaleView.js.map +1 -0
- package/lib/commonjs/animatedRegistry.js +25 -0
- package/lib/commonjs/animatedRegistry.js.map +1 -0
- package/lib/commonjs/bottomSheet.store.js +19 -0
- package/lib/commonjs/bottomSheet.store.js.map +1 -1
- package/lib/commonjs/bottomSheetCoordinator.js +5 -6
- package/lib/commonjs/bottomSheetCoordinator.js.map +1 -1
- package/lib/commonjs/index.js +17 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/portal.types.js +2 -0
- package/lib/commonjs/portal.types.js.map +1 -0
- package/lib/commonjs/useBottomSheetControl.js +81 -0
- package/lib/commonjs/useBottomSheetControl.js.map +1 -0
- package/lib/commonjs/useBottomSheetManager.js +88 -44
- package/lib/commonjs/useBottomSheetManager.js.map +1 -1
- package/lib/commonjs/useBottomSheetState.js +40 -10
- package/lib/commonjs/useBottomSheetState.js.map +1 -1
- package/lib/commonjs/useScaleAnimation.js +108 -0
- package/lib/commonjs/useScaleAnimation.js.map +1 -0
- package/lib/typescript/example/src/App.d.ts +0 -2
- package/lib/typescript/example/src/App.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetBackdrop.d.ts +12 -0
- package/lib/typescript/src/BottomSheetBackdrop.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheetHost.d.ts +1 -2
- package/lib/typescript/src/BottomSheetHost.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetManaged.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetManager.context.d.ts +2 -0
- package/lib/typescript/src/BottomSheetManager.context.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetManager.provider.d.ts +4 -3
- package/lib/typescript/src/BottomSheetManager.provider.d.ts.map +1 -1
- package/lib/typescript/src/BottomSheetPortal.d.ts +9 -0
- package/lib/typescript/src/BottomSheetPortal.d.ts.map +1 -0
- package/lib/typescript/src/BottomSheetScaleView.d.ts +18 -0
- package/lib/typescript/src/BottomSheetScaleView.d.ts.map +1 -0
- package/lib/typescript/src/animatedRegistry.d.ts +4 -0
- package/lib/typescript/src/animatedRegistry.d.ts.map +1 -0
- package/lib/typescript/src/bottomSheet.store.d.ts +9 -3
- package/lib/typescript/src/bottomSheet.store.d.ts.map +1 -1
- package/lib/typescript/src/bottomSheetCoordinator.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/portal.types.d.ts +24 -0
- package/lib/typescript/src/portal.types.d.ts.map +1 -0
- package/lib/typescript/src/useBottomSheetControl.d.ts +10 -0
- package/lib/typescript/src/useBottomSheetControl.d.ts.map +1 -0
- package/lib/typescript/src/useBottomSheetManager.d.ts +2 -0
- package/lib/typescript/src/useBottomSheetManager.d.ts.map +1 -1
- package/lib/typescript/src/useBottomSheetState.d.ts.map +1 -1
- package/lib/typescript/src/useScaleAnimation.d.ts +43 -0
- package/lib/typescript/src/useScaleAnimation.d.ts.map +1 -0
- package/package.json +11 -2
- package/src/BottomSheetBackdrop.tsx +61 -0
- package/src/BottomSheetHost.tsx +74 -15
- package/src/BottomSheetManaged.tsx +26 -33
- package/src/BottomSheetManager.context.tsx +2 -0
- package/src/BottomSheetManager.provider.tsx +15 -8
- package/src/BottomSheetPortal.tsx +39 -0
- package/src/BottomSheetScaleView.tsx +41 -0
- package/src/animatedRegistry.ts +22 -0
- package/src/bottomSheet.store.ts +150 -123
- package/src/bottomSheetCoordinator.ts +5 -6
- package/src/index.tsx +8 -4
- package/src/portal.types.ts +25 -0
- package/src/useBottomSheetControl.ts +52 -0
- package/src/useBottomSheetManager.tsx +37 -48
- package/src/useBottomSheetState.ts +2 -6
- package/src/useScaleAnimation.ts +114 -0
- package/lib/commonjs/ScaleBackgroundWrapper.js +0 -71
- package/lib/commonjs/ScaleBackgroundWrapper.js.map +0 -1
- package/lib/typescript/src/ScaleBackgroundWrapper.d.ts +0 -32
- package/lib/typescript/src/ScaleBackgroundWrapper.d.ts.map +0 -1
- package/src/ScaleBackgroundWrapper.tsx +0 -97
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_bottomSheet","_BottomSheetManager","_refsMap","_shallow","e","__esModule","default","useBottomSheetManager","$","_compilerRuntime","c","bottomSheetManagerContext","useMaybeBottomSheetManagerContext","pushBottomSheet","replaceBottomSheet","switchBottomSheet","startClosing","storeClearAll","useBottomSheetStore","_temp","shallow","t0","groupId","content","t1","options","undefined","id","Math","random","toString","ref","React","createRef","sheetRefs","contentWithRef","cloneElement","sheetData","scaleBackground","mode","openBottomSheet","id_0","close","t2","clearAll","t3","exports","store","replace","push","switch"],"sourceRoot":"../../src","sources":["useBottomSheetManager.tsx"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AAA0C,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnC,MAAMG,qBAAqB,GAAGA,CAAA;EAAA,MAAAC,CAAA,OAAAC,gBAAA,CAAAC,CAAA;EACnC,MAAAC,yBAAA,GAAkC,IAAAC,qDAAiC,EAAC,CAAC;EAErE;IAAAC,eAAA;IAAAC,kBAAA;IAAAC,iBAAA;IAAAC,YAAA;IAAAC;EAAA,IAMI,IAAAC,gCAAmB,EACrBC,KAME,EACFC,gBACF,CAAC;EAAC,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAG,yBAAA,EAAAW,OAAA,IAAAd,CAAA,QAAAK,eAAA,IAAAL,CAAA,QAAAM,kBAAA,IAAAN,CAAA,QAAAO,iBAAA;IAEsBM,EAAA,GAAAA,CAAAE,OAAA,EAAAC,EAAA;MAEtB,MAAAC,OAAA,GAAAD,EAKM,KALNE,SAKM,GALN,CAKK,CAAC,GALNF,EAKM;MAEN,MAAAF,OAAA,GACEG,OAAO,CAAAH,OAA8C,IAAlCX,yBAAyB,EAAAW,OAAsB,IAAlE,SAAkE;MAEpE,MAAAK,EAAA,GAAWF,OAAO,CAAAE,EAAiC,IAA1BC,IAAI,CAAAC,MAAO,CAAC,CAAC,CAAAC,QAAS,CAAC,EAAE,CAAC;MACnD,MAAAC,GAAA,gBAAYC,cAAK,CAAAC,SAAU,CAAqB,CAAC;MAEjDC,kBAAS,CAACP,EAAE,IAAII,GAAH;MAGb,MAAAI,cAAA,gBAAuBH,cAAK,CAAAI,YAAa,CAACb,OAAO,EAAE;QAAAQ;MAAM,CAAC,CAAC;MAE3D,MAAAM,SAAA,GAAkB;QAAAV,EAAA;QAAAL,OAAA;QAAAC,OAAA,EAGPY,cAAc;QAAAG,eAAA,EACNb,OAAO,CAAAa;MAC1B,CAAC;MAED,IAAIb,OAAO,CAAAc,IAAK,KAAK,SAAS;QAC5BzB,kBAAkB,CAACuB,SAAS,CAAC;MAAA;QACxB,IAAIZ,OAAO,CAAAc,IAAK,KAAK,QAAQ;UAClCxB,iBAAiB,CAACsB,SAAS,CAAC;QAAA;UAE5BxB,eAAe,CAACwB,SAAS,CAAC;QAAA;MAC3B;MAAA,OAEMV,EAAE;IAAA,CACV;IAAAnB,CAAA,MAAAG,yBAAA,EAAAW,OAAA;IAAAd,CAAA,MAAAK,eAAA;IAAAL,CAAA,MAAAM,kBAAA;IAAAN,CAAA,MAAAO,iBAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EApCD,MAAAgC,eAAA,GAAwBnB,EAoCvB;EAAC,IAAAG,EAAA;EAAA,IAAAhB,CAAA,QAAAQ,YAAA;IAEYQ,EAAA,GAAAiB,IAAA;MACZzB,YAAY,CAACW,IAAE,CAAC;IAAA,CACjB;IAAAnB,CAAA,MAAAQ,YAAA;IAAAR,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAFD,MAAAkC,KAAA,GAAclB,EAEb;EAAC,IAAAmB,EAAA;EAAA,IAAAnC,CAAA,QAAAS,aAAA;IAEe0B,EAAA,GAAAA,CAAA;MACf1B,aAAa,CAAC,CAAC;IAAA,CAChB;IAAAT,CAAA,MAAAS,aAAA;IAAAT,CAAA,MAAAmC,EAAA;EAAA;IAAAA,EAAA,GAAAnC,CAAA;EAAA;EAFD,MAAAoC,QAAA,GAAiBD,EAEhB;EAAC,IAAAE,EAAA;EAAA,IAAArC,CAAA,QAAAoC,QAAA,IAAApC,CAAA,SAAAkC,KAAA,IAAAlC,CAAA,SAAAgC,eAAA,IAAAhC,CAAA,SAAAK,eAAA,IAAAL,CAAA,SAAAM,kBAAA;IAEK+B,EAAA;MAAAD,QAAA;MAAAF,KAAA;MAAAF,eAAA;MAAA3B,eAAA;MAAAC;IAMP,CAAC;IAAAN,CAAA,MAAAoC,QAAA;IAAApC,CAAA,OAAAkC,KAAA;IAAAlC,CAAA,OAAAgC,eAAA;IAAAhC,CAAA,OAAAK,eAAA;IAAAL,CAAA,OAAAM,kBAAA;IAAAN,CAAA,OAAAqC,EAAA;EAAA;IAAAA,EAAA,GAAArC,CAAA;EAAA;EAAA,OANMqC,EAMN;AAAA,CACF;AAACC,OAAA,CAAAvC,qBAAA,GAAAA,qBAAA;AAzEmC,SAAAY,MAAA4B,KAAA;EAAA,OAUrB;IAAA9B,aAAA,EACK8B,KAAK,CAAAH,QAAS;IAAA9B,kBAAA,EACTiC,KAAK,CAAAC,OAAQ;IAAAnC,eAAA,EAChBkC,KAAK,CAAAE,IAAK;IAAAlC,iBAAA,EACRgC,KAAK,CAAAG,MAAO;IAAAlC,YAAA,EACjB+B,KAAK,CAAA/B;EACrB,CAAC;AAAA","ignoreList":[]}
|
|
@@ -4,21 +4,51 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useBottomSheetState = useBottomSheetState;
|
|
7
|
-
var
|
|
7
|
+
var _compilerRuntime = require("react/compiler-runtime");
|
|
8
8
|
var _BottomSheet = require("./BottomSheet.context");
|
|
9
9
|
var _bottomSheet = require("./bottomSheet.store");
|
|
10
10
|
function useBottomSheetState() {
|
|
11
|
+
const $ = (0, _compilerRuntime.c)(8);
|
|
11
12
|
const context = (0, _BottomSheet.useMaybeBottomSheetContext)();
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
let t0;
|
|
14
|
+
if ($[0] !== context?.id) {
|
|
15
|
+
t0 = state => state.sheetsById[context?.id];
|
|
16
|
+
$[0] = context?.id;
|
|
17
|
+
$[1] = t0;
|
|
18
|
+
} else {
|
|
19
|
+
t0 = $[1];
|
|
20
|
+
}
|
|
21
|
+
const bottomSheetState = (0, _bottomSheet.useBottomSheetStore)(t0);
|
|
22
|
+
const startClosing = (0, _bottomSheet.useBottomSheetStore)(_temp);
|
|
14
23
|
if (!bottomSheetState) {
|
|
15
|
-
throw new Error(
|
|
24
|
+
throw new Error("useBottomSheetState must be used within a BottomSheetProvider");
|
|
25
|
+
}
|
|
26
|
+
let t1;
|
|
27
|
+
if ($[2] !== bottomSheetState || $[3] !== startClosing) {
|
|
28
|
+
t1 = () => startClosing(bottomSheetState.id);
|
|
29
|
+
$[2] = bottomSheetState;
|
|
30
|
+
$[3] = startClosing;
|
|
31
|
+
$[4] = t1;
|
|
32
|
+
} else {
|
|
33
|
+
t1 = $[4];
|
|
16
34
|
}
|
|
17
|
-
const close =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
35
|
+
const close = t1;
|
|
36
|
+
let t2;
|
|
37
|
+
if ($[5] !== bottomSheetState || $[6] !== close) {
|
|
38
|
+
t2 = {
|
|
39
|
+
bottomSheetState,
|
|
40
|
+
close,
|
|
41
|
+
closeBottomSheet: close
|
|
42
|
+
};
|
|
43
|
+
$[5] = bottomSheetState;
|
|
44
|
+
$[6] = close;
|
|
45
|
+
$[7] = t2;
|
|
46
|
+
} else {
|
|
47
|
+
t2 = $[7];
|
|
48
|
+
}
|
|
49
|
+
return t2;
|
|
50
|
+
}
|
|
51
|
+
function _temp(state_0) {
|
|
52
|
+
return state_0.startClosing;
|
|
23
53
|
}
|
|
24
54
|
//# sourceMappingURL=useBottomSheetState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_BottomSheet","require","_bottomSheet","useBottomSheetState","$","_compilerRuntime","c","context","useMaybeBottomSheetContext","t0","id","state","sheetsById","bottomSheetState","useBottomSheetStore","startClosing","_temp","Error","t1","close","t2","closeBottomSheet","state_0"],"sourceRoot":"../../src","sources":["useBottomSheetState.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAKO,SAAAE,oBAAA;EAAA,MAAAC,CAAA,OAAAC,gBAAA,CAAAC,CAAA;EAKL,MAAAC,OAAA,GAAgB,IAAAC,uCAA0B,EAAC,CAAC;EAAC,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAG,OAAA,EAAAG,EAAA;IAG3CD,EAAA,GAAAE,KAAA,IAAWA,KAAK,CAAAC,UAAW,CAACL,OAAO,EAAAG,EAAI,CAAE;IAAAN,CAAA,MAAAG,OAAA,EAAAG,EAAA;IAAAN,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAD3C,MAAAS,gBAAA,GAAyB,IAAAC,gCAAmB,EAC1CL,EACF,CAAC;EAED,MAAAM,YAAA,GAAqB,IAAAD,gCAAmB,EAACE,KAA6B,CAAC;EAEvE,IAAI,CAACH,gBAAgB;IACnB,MAAM,IAAII,KAAK,CACb,+DACF,CAAC;EAAC;EACH,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAS,gBAAA,IAAAT,CAAA,QAAAW,YAAA;IAEaG,EAAA,GAAAA,CAAA,KAAMH,YAAY,CAACF,gBAAgB,CAAAH,EAAG,CAAC;IAAAN,CAAA,MAAAS,gBAAA;IAAAT,CAAA,MAAAW,YAAA;IAAAX,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAArD,MAAAe,KAAA,GAAcD,EAAuC;EAAC,IAAAE,EAAA;EAAA,IAAAhB,CAAA,QAAAS,gBAAA,IAAAT,CAAA,QAAAe,KAAA;IAE/CC,EAAA;MAAAP,gBAAA;MAAAM,KAAA;MAAAE,gBAAA,EAGaF;IACpB,CAAC;IAAAf,CAAA,MAAAS,gBAAA;IAAAT,CAAA,MAAAe,KAAA;IAAAf,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,OAJMgB,EAIN;AAAA;AAzBI,SAAAJ,MAAAM,OAAA;EAAA,OAW+CX,OAAK,CAAAI,YAAa;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useScaleAnimatedStyle = useScaleAnimatedStyle;
|
|
7
|
+
exports.useScaleDepth = useScaleDepth;
|
|
8
|
+
var _compilerRuntime = require("react/compiler-runtime");
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
11
|
+
var _bottomSheet = require("./bottomSheet.store");
|
|
12
|
+
const DEFAULT_CONFIG = {
|
|
13
|
+
scale: 0.92,
|
|
14
|
+
translateY: 10,
|
|
15
|
+
borderRadius: 12,
|
|
16
|
+
duration: 300
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Returns the number of sheets with scaleBackground above a given element.
|
|
21
|
+
* For background wrapper, pass undefined as sheetId - returns 0 or 1 (binary).
|
|
22
|
+
* For sheets, returns the count of scaleBackground sheets above it.
|
|
23
|
+
* Uses shallow comparison internally for optimal re-renders.
|
|
24
|
+
*/
|
|
25
|
+
function useScaleDepth(groupId, sheetId) {
|
|
26
|
+
const $ = (0, _compilerRuntime.c)(3);
|
|
27
|
+
const prevDepthRef = (0, _react.useRef)(0);
|
|
28
|
+
let t0;
|
|
29
|
+
if ($[0] !== groupId || $[1] !== sheetId) {
|
|
30
|
+
t0 = state => {
|
|
31
|
+
const {
|
|
32
|
+
stackOrder,
|
|
33
|
+
sheetsById
|
|
34
|
+
} = state;
|
|
35
|
+
const startIndex = sheetId ? stackOrder.indexOf(sheetId) + 1 : 0;
|
|
36
|
+
if (sheetId && startIndex === 0) {
|
|
37
|
+
return prevDepthRef.current;
|
|
38
|
+
}
|
|
39
|
+
let depth = 0;
|
|
40
|
+
for (let i = startIndex; i < stackOrder.length; i++) {
|
|
41
|
+
const id = stackOrder[i];
|
|
42
|
+
const sheet = sheetsById[id];
|
|
43
|
+
if (sheet && sheet.groupId === groupId && sheet.scaleBackground && sheet.status !== "closing") {
|
|
44
|
+
depth++;
|
|
45
|
+
if (!sheetId) {
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
prevDepthRef.current = depth;
|
|
51
|
+
return depth;
|
|
52
|
+
};
|
|
53
|
+
$[0] = groupId;
|
|
54
|
+
$[1] = sheetId;
|
|
55
|
+
$[2] = t0;
|
|
56
|
+
} else {
|
|
57
|
+
t0 = $[2];
|
|
58
|
+
}
|
|
59
|
+
const scaleDepthSelector = t0;
|
|
60
|
+
return (0, _bottomSheet.useBottomSheetStore)(scaleDepthSelector);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Returns animated style for scale effect based on depth.
|
|
65
|
+
* Uses power scaling: scale^depth for cascading effect.
|
|
66
|
+
*/
|
|
67
|
+
function useScaleAnimatedStyle(depth, config) {
|
|
68
|
+
const {
|
|
69
|
+
scale: t0,
|
|
70
|
+
translateY: t1,
|
|
71
|
+
borderRadius: t2,
|
|
72
|
+
duration: t3
|
|
73
|
+
} = config ?? {};
|
|
74
|
+
const scale = t0 === undefined ? DEFAULT_CONFIG.scale : t0;
|
|
75
|
+
const translateY = t1 === undefined ? DEFAULT_CONFIG.translateY : t1;
|
|
76
|
+
const borderRadius = t2 === undefined ? DEFAULT_CONFIG.borderRadius : t2;
|
|
77
|
+
const duration = t3 === undefined ? DEFAULT_CONFIG.duration : t3;
|
|
78
|
+
const progress = (0, _reactNativeReanimated.useDerivedValue)(() => (0, _reactNativeReanimated.withTiming)(depth, {
|
|
79
|
+
duration
|
|
80
|
+
}));
|
|
81
|
+
return (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
82
|
+
const p = progress.value;
|
|
83
|
+
if (p === 0) {
|
|
84
|
+
return {
|
|
85
|
+
transform: [{
|
|
86
|
+
scale: 1
|
|
87
|
+
}, {
|
|
88
|
+
translateY: 0
|
|
89
|
+
}],
|
|
90
|
+
borderRadius: 0,
|
|
91
|
+
overflow: "visible"
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const currentScale = Math.pow(scale, p);
|
|
95
|
+
const currentTranslateY = translateY * p;
|
|
96
|
+
const currentBorderRadius = Math.min(borderRadius * p, borderRadius);
|
|
97
|
+
return {
|
|
98
|
+
transform: [{
|
|
99
|
+
scale: currentScale
|
|
100
|
+
}, {
|
|
101
|
+
translateY: currentTranslateY
|
|
102
|
+
}],
|
|
103
|
+
borderRadius: currentBorderRadius,
|
|
104
|
+
overflow: "hidden"
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=useScaleAnimation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_bottomSheet","DEFAULT_CONFIG","scale","translateY","borderRadius","duration","useScaleDepth","groupId","sheetId","$","_compilerRuntime","c","prevDepthRef","useRef","t0","state","stackOrder","sheetsById","startIndex","indexOf","current","depth","i","length","id","sheet","scaleBackground","status","scaleDepthSelector","useBottomSheetStore","useScaleAnimatedStyle","config","t1","t2","t3","undefined","progress","useDerivedValue","withTiming","useAnimatedStyle","p","value","transform","overflow","currentScale","Math","pow","currentTranslateY","currentBorderRadius","min"],"sourceRoot":"../../src","sources":["useScaleAnimation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../example/src/App.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../example/src/App.tsx"],"names":[],"mappings":"AA+CA,MAAM,CAAC,OAAO,UAAU,GAAG,4CAuB1B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface BottomSheetBackdropProps {
|
|
2
|
+
sheetId: string;
|
|
3
|
+
onPress?: () => void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Custom backdrop component rendered separately from the scaled sheet content.
|
|
7
|
+
* This ensures the backdrop doesn't scale with the sheet.
|
|
8
|
+
* Opacity is interpolated from the bottom sheet's animatedIndex for smooth animation.
|
|
9
|
+
*/
|
|
10
|
+
export declare function BottomSheetBackdrop({ sheetId, onPress, }: BottomSheetBackdropProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=BottomSheetBackdrop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheetBackdrop.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetBackdrop.tsx"],"names":[],"mappings":"AASA,UAAU,wBAAwB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACR,EAAE,wBAAwB,2CA6B1B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
declare function BottomSheetHostComp(): import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
export declare const BottomSheetHost:
|
|
2
|
+
export declare const BottomSheetHost: typeof BottomSheetHostComp;
|
|
4
3
|
export {};
|
|
5
4
|
//# sourceMappingURL=BottomSheetHost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetHost.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetHost.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BottomSheetHost.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetHost.tsx"],"names":[],"mappings":"AAmCA,iBAAS,mBAAmB,4CA+B3B;AAgED,eAAO,MAAM,eAAe,4BAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetManaged.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetManaged.tsx"],"names":[],"mappings":"AAAA,OAA4B,
|
|
1
|
+
{"version":3,"file":"BottomSheetManaged.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetManaged.tsx"],"names":[],"mappings":"AAAA,OAA4B,EAE1B,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,cAAe,SAAQ,kBAAkB;CAAG;AAE7D,UAAU,uBAAwB,SAAQ,gBAAgB;CAAG;AAK7D,eAAO,MAAM,kBAAkB,gGA8D9B,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { ScaleConfig } from './useScaleAnimation';
|
|
2
3
|
export interface BottomSheetManagerContextValue {
|
|
3
4
|
groupId: string;
|
|
5
|
+
scaleConfig?: ScaleConfig;
|
|
4
6
|
}
|
|
5
7
|
export declare const BottomSheetManagerContext: React.Context<BottomSheetManagerContextValue | null>;
|
|
6
8
|
//# sourceMappingURL=BottomSheetManager.context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetManager.context.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetManager.context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomSheetManager.context.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetManager.context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,eAAO,MAAM,yBAAyB,sDAC4B,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type PropsWithChildren } from 'react';
|
|
2
2
|
import { type BottomSheetManagerContextValue } from './BottomSheetManager.context';
|
|
3
|
+
import type { ScaleConfig } from './useScaleAnimation';
|
|
3
4
|
interface ProviderProps extends PropsWithChildren {
|
|
4
5
|
id: string;
|
|
6
|
+
scaleConfig?: ScaleConfig;
|
|
5
7
|
}
|
|
6
|
-
declare function
|
|
7
|
-
export declare const BottomSheetManagerProvider: React.MemoExoticComponent<typeof BottomSheetManagerProviderComp>;
|
|
8
|
+
export declare function BottomSheetManagerProvider({ id, scaleConfig, children, }: ProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
9
|
export declare const useBottomSheetManagerContext: () => BottomSheetManagerContextValue;
|
|
9
10
|
export declare const useMaybeBottomSheetManagerContext: () => BottomSheetManagerContextValue | null;
|
|
10
11
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomSheetManager.provider.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetManager.provider.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"BottomSheetManager.provider.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetManager.provider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,UAAU,aAAc,SAAQ,iBAAiB;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,EAAE,EACF,WAAW,EACX,QAAQ,GACT,EAAE,aAAa,2CAUf;AAED,eAAO,MAAM,4BAA4B,QACnC,8BASH,CAAC;AAEJ,eAAO,MAAM,iCAAiC,QACxC,8BAA8B,GAAG,IAOpC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BottomSheetPortalId } from './portal.types';
|
|
3
|
+
interface BottomSheetPortalProps {
|
|
4
|
+
id: BottomSheetPortalId;
|
|
5
|
+
children: React.ReactElement;
|
|
6
|
+
}
|
|
7
|
+
export declare function BottomSheetPortal({ id, children }: BottomSheetPortalProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=BottomSheetPortal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheetPortal.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetPortal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,UAAU,sBAAsB;IAC9B,EAAE,EAAE,mBAAmB,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,sBAAsB,kDAuBzE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type PropsWithChildren } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Wraps your app content with iOS-style scale animation when a bottom sheet
|
|
4
|
+
* with scaleBackground: true is open. Place your main content inside this
|
|
5
|
+
* component, but keep BottomSheetHost outside of it.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <BottomSheetManagerProvider id="default" scaleConfig={{ scale: 0.92 }}>
|
|
10
|
+
* <BottomSheetScaleView>
|
|
11
|
+
* <MainContent />
|
|
12
|
+
* </BottomSheetScaleView>
|
|
13
|
+
* <BottomSheetHost />
|
|
14
|
+
* </BottomSheetManagerProvider>
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function BottomSheetScaleView({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=BottomSheetScaleView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheetScaleView.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetScaleView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAM3D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAanE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animatedRegistry.d.ts","sourceRoot":"","sources":["../../../src/animatedRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQxE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CASrE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1D"}
|
|
@@ -7,25 +7,31 @@ export interface BottomSheetState {
|
|
|
7
7
|
content: ReactNode;
|
|
8
8
|
status: BottomSheetStatus;
|
|
9
9
|
scaleBackground?: boolean;
|
|
10
|
+
usePortal?: boolean;
|
|
10
11
|
}
|
|
11
12
|
type TriggerState = Omit<BottomSheetState, 'status'>;
|
|
12
13
|
interface BottomSheetStoreState {
|
|
13
14
|
sheetsById: Record<string, BottomSheetState>;
|
|
14
15
|
stackOrder: string[];
|
|
15
16
|
}
|
|
17
|
+
export interface PortalOpenOptions {
|
|
18
|
+
scaleBackground?: boolean;
|
|
19
|
+
}
|
|
16
20
|
interface BottomSheetStoreActions {
|
|
17
21
|
push(sheet: TriggerState): void;
|
|
18
22
|
switch(sheet: TriggerState): void;
|
|
19
23
|
replace(sheet: TriggerState): void;
|
|
24
|
+
openPortal(id: string, groupId: string, options?: PortalOpenOptions): void;
|
|
20
25
|
markOpen(id: string): void;
|
|
21
26
|
startClosing(id: string): void;
|
|
22
27
|
finishClosing(id: string): void;
|
|
23
28
|
clearAll(): void;
|
|
24
29
|
}
|
|
25
|
-
export
|
|
30
|
+
export type BottomSheetStore = BottomSheetStoreState & BottomSheetStoreActions;
|
|
31
|
+
export declare const useBottomSheetStore: import("zustand/traditional").UseBoundStoreWithEqualityFn<Omit<import("zustand/vanilla").StoreApi<BottomSheetStore>, "subscribe"> & {
|
|
26
32
|
subscribe: {
|
|
27
|
-
(listener: (selectedState:
|
|
28
|
-
<U>(selector: (state:
|
|
33
|
+
(listener: (selectedState: BottomSheetStore, previousSelectedState: BottomSheetStore) => void): () => void;
|
|
34
|
+
<U>(selector: (state: BottomSheetStore) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
29
35
|
equalityFn?: ((a: U, b: U) => boolean) | undefined;
|
|
30
36
|
fireImmediately?: boolean;
|
|
31
37
|
} | undefined): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottomSheet.store.d.ts","sourceRoot":"","sources":["../../../src/bottomSheet.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"bottomSheet.store.d.ts","sourceRoot":"","sources":["../../../src/bottomSheet.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,KAAK,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAErD,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,uBAAuB;IAC/B,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3E,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAE/E,eAAO,MAAM,mBAAmB;;;;;;;;EAuJ/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottomSheetCoordinator.d.ts","sourceRoot":"","sources":["../../../src/bottomSheetCoordinator.ts"],"names":[],"mappings":"AAGA,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"bottomSheetCoordinator.d.ts","sourceRoot":"","sources":["../../../src/bottomSheetCoordinator.ts"],"names":[],"mappings":"AAGA,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,cAgCzD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM;+BAIpB,MAAM,WAAW,MAAM;;EA8B1D"}
|
|
@@ -3,5 +3,9 @@ export { BottomSheetManagerProvider } from './BottomSheetManager.provider';
|
|
|
3
3
|
export { useBottomSheetManager } from './useBottomSheetManager';
|
|
4
4
|
export { useBottomSheetState } from './useBottomSheetState';
|
|
5
5
|
export { BottomSheetManaged } from './BottomSheetManaged';
|
|
6
|
-
export {
|
|
6
|
+
export { BottomSheetScaleView } from './BottomSheetScaleView';
|
|
7
|
+
export { type ScaleConfig } from './useScaleAnimation';
|
|
8
|
+
export { BottomSheetPortal } from './BottomSheetPortal';
|
|
9
|
+
export { useBottomSheetControl } from './useBottomSheetControl';
|
|
10
|
+
export type { BottomSheetPortalRegistry, BottomSheetPortalId, } from './portal.types';
|
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry for portal-based bottom sheets.
|
|
3
|
+
* Augment this interface in your app to get type-safe sheet IDs:
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* declare module 'react-native-bottom-sheet-stack' {
|
|
8
|
+
* interface BottomSheetPortalRegistry {
|
|
9
|
+
* 'my-sheet': true;
|
|
10
|
+
* 'settings-sheet': true;
|
|
11
|
+
* 'profile-sheet': true;
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export interface BottomSheetPortalRegistry {
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Type-safe portal sheet ID.
|
|
20
|
+
* If BottomSheetPortalRegistry is augmented, this will be a union of the registered keys.
|
|
21
|
+
* Otherwise, it falls back to `string` for flexibility.
|
|
22
|
+
*/
|
|
23
|
+
export type BottomSheetPortalId = keyof BottomSheetPortalRegistry extends never ? string : Extract<keyof BottomSheetPortalRegistry, string>;
|
|
24
|
+
//# sourceMappingURL=portal.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal.types.d.ts","sourceRoot":"","sources":["../../../src/portal.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,yBAAyB;CAAG;AAE7C;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,yBAAyB,SAAS,KAAK,GAC3E,MAAM,GACN,OAAO,CAAC,MAAM,yBAAyB,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type BottomSheetStatus, type PortalOpenOptions } from './bottomSheet.store';
|
|
2
|
+
import type { BottomSheetPortalId } from './portal.types';
|
|
3
|
+
export interface UseBottomSheetControlReturn {
|
|
4
|
+
open: (options?: PortalOpenOptions) => void;
|
|
5
|
+
close: () => void;
|
|
6
|
+
isOpen: boolean;
|
|
7
|
+
status: BottomSheetStatus | null;
|
|
8
|
+
}
|
|
9
|
+
export declare function useBottomSheetControl(id: BottomSheetPortalId): UseBottomSheetControlReturn;
|
|
10
|
+
//# sourceMappingURL=useBottomSheetControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBottomSheetControl.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAClC;AAED,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,mBAAmB,GACtB,2BAA2B,CA8B7B"}
|
|
@@ -14,12 +14,14 @@ export declare const useBottomSheetManager: () => {
|
|
|
14
14
|
id: string;
|
|
15
15
|
content: React.ReactNode;
|
|
16
16
|
scaleBackground?: boolean | undefined;
|
|
17
|
+
usePortal?: boolean | undefined;
|
|
17
18
|
}) => void;
|
|
18
19
|
replaceBottomSheet: (sheet: {
|
|
19
20
|
groupId: string;
|
|
20
21
|
id: string;
|
|
21
22
|
content: React.ReactNode;
|
|
22
23
|
scaleBackground?: boolean | undefined;
|
|
24
|
+
usePortal?: boolean | undefined;
|
|
23
25
|
}) => void;
|
|
24
26
|
};
|
|
25
27
|
//# sourceMappingURL=useBottomSheetManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBottomSheetManager.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetManager.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useBottomSheetManager.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMzE,eAAO,MAAM,qBAAqB;;gBA0Db,MAAM;+BArCd,KAAK,CAAC,YAAY,YAClB;QACP,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;;;;;;;;;;;;;;;CA8CJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBottomSheetState.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useBottomSheetState.d.ts","sourceRoot":"","sources":["../../../src/useBottomSheetState.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,mBAAmB,IAAI;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B,CAsBA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface ScaleConfig {
|
|
2
|
+
/** Scale factor when sheet is open (default: 0.92) */
|
|
3
|
+
scale?: number;
|
|
4
|
+
/** Vertical translation when sheet is open (default: 10) */
|
|
5
|
+
translateY?: number;
|
|
6
|
+
/** Border radius when sheet is open (default: 12) */
|
|
7
|
+
borderRadius?: number;
|
|
8
|
+
/** Animation duration in ms (default: 300) */
|
|
9
|
+
duration?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Returns the number of sheets with scaleBackground above a given element.
|
|
13
|
+
* For background wrapper, pass undefined as sheetId - returns 0 or 1 (binary).
|
|
14
|
+
* For sheets, returns the count of scaleBackground sheets above it.
|
|
15
|
+
* Uses shallow comparison internally for optimal re-renders.
|
|
16
|
+
*/
|
|
17
|
+
export declare function useScaleDepth(groupId: string, sheetId?: string): number;
|
|
18
|
+
/**
|
|
19
|
+
* Returns animated style for scale effect based on depth.
|
|
20
|
+
* Uses power scaling: scale^depth for cascading effect.
|
|
21
|
+
*/
|
|
22
|
+
export declare function useScaleAnimatedStyle(depth: number, config?: ScaleConfig): {
|
|
23
|
+
transform: ({
|
|
24
|
+
scale: number;
|
|
25
|
+
translateY?: undefined;
|
|
26
|
+
} | {
|
|
27
|
+
translateY: number;
|
|
28
|
+
scale?: undefined;
|
|
29
|
+
})[];
|
|
30
|
+
borderRadius: number;
|
|
31
|
+
overflow: "visible";
|
|
32
|
+
} | {
|
|
33
|
+
transform: ({
|
|
34
|
+
scale: number;
|
|
35
|
+
translateY?: undefined;
|
|
36
|
+
} | {
|
|
37
|
+
translateY: number;
|
|
38
|
+
scale?: undefined;
|
|
39
|
+
})[];
|
|
40
|
+
borderRadius: number;
|
|
41
|
+
overflow: "hidden";
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=useScaleAnimation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScaleAnimation.d.ts","sourceRoot":"","sources":["../../../src/useScaleAnimation.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAuCvE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;EAiCxE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-bottom-sheet-stack",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Bottom Sheet Stack Manager",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "lib/commonjs/index.js",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"registry": "https://registry.npmjs.org/"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
+
"@babel/cli": "^7.28.6",
|
|
41
42
|
"@commitlint/config-conventional": "^19.6.0",
|
|
42
43
|
"@eslint/compat": "^1.2.7",
|
|
43
44
|
"@eslint/eslintrc": "^3.3.0",
|
|
@@ -48,6 +49,7 @@
|
|
|
48
49
|
"@release-it/conventional-changelog": "^9.0.2",
|
|
49
50
|
"@types/jest": "^29.5.5",
|
|
50
51
|
"@types/react": "^19.0.12",
|
|
52
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
51
53
|
"commitlint": "^19.6.1",
|
|
52
54
|
"del-cli": "^5.1.0",
|
|
53
55
|
"eslint": "^9.22.0",
|
|
@@ -61,6 +63,7 @@
|
|
|
61
63
|
"react-native-gesture-handler": "^2.30.0",
|
|
62
64
|
"react-native-reanimated": "^4.2.1",
|
|
63
65
|
"react-native-safe-area-context": "^5.6.2",
|
|
66
|
+
"react-native-teleport": "^0.5.6",
|
|
64
67
|
"react-native-worklets": "^0.7.1",
|
|
65
68
|
"release-it": "^17.10.0",
|
|
66
69
|
"typescript": "^5.2.2",
|
|
@@ -73,6 +76,7 @@
|
|
|
73
76
|
"react-native-gesture-handler": ">=2.0.0",
|
|
74
77
|
"react-native-reanimated": ">=3.0.0",
|
|
75
78
|
"react-native-safe-area-context": ">=5.0.0",
|
|
79
|
+
"react-native-teleport": ">=0.5.0",
|
|
76
80
|
"zustand": ">=5.0.0"
|
|
77
81
|
},
|
|
78
82
|
"workspaces": [
|
|
@@ -121,7 +125,12 @@
|
|
|
121
125
|
"source": "src",
|
|
122
126
|
"output": "lib",
|
|
123
127
|
"targets": [
|
|
124
|
-
|
|
128
|
+
[
|
|
129
|
+
"commonjs",
|
|
130
|
+
{
|
|
131
|
+
"configFile": true
|
|
132
|
+
}
|
|
133
|
+
],
|
|
125
134
|
"typescript"
|
|
126
135
|
]
|
|
127
136
|
},
|