react-native-bottom-sheet-stack 0.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.
Files changed (56) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +82 -0
  3. package/lib/commonjs/BottomSheet.context.js +14 -0
  4. package/lib/commonjs/BottomSheet.context.js.map +1 -0
  5. package/lib/commonjs/BottomSheetHost.js +73 -0
  6. package/lib/commonjs/BottomSheetHost.js.map +1 -0
  7. package/lib/commonjs/BottomSheetManaged.js +72 -0
  8. package/lib/commonjs/BottomSheetManaged.js.map +1 -0
  9. package/lib/commonjs/BottomSheetManager.provider.js +39 -0
  10. package/lib/commonjs/BottomSheetManager.provider.js.map +1 -0
  11. package/lib/commonjs/bottomSheet.store.js +101 -0
  12. package/lib/commonjs/bottomSheet.store.js.map +1 -0
  13. package/lib/commonjs/bottomSheetCoordinator.js +43 -0
  14. package/lib/commonjs/bottomSheetCoordinator.js.map +1 -0
  15. package/lib/commonjs/index.js +41 -0
  16. package/lib/commonjs/index.js.map +1 -0
  17. package/lib/commonjs/package.json +1 -0
  18. package/lib/commonjs/refsMap.js +8 -0
  19. package/lib/commonjs/refsMap.js.map +1 -0
  20. package/lib/commonjs/useBottomSheetManager.js +78 -0
  21. package/lib/commonjs/useBottomSheetManager.js.map +1 -0
  22. package/lib/commonjs/useBottomSheetState.js +27 -0
  23. package/lib/commonjs/useBottomSheetState.js.map +1 -0
  24. package/lib/typescript/example/src/App.d.ts +4 -0
  25. package/lib/typescript/example/src/App.d.ts.map +1 -0
  26. package/lib/typescript/src/BottomSheet.context.d.ts +7 -0
  27. package/lib/typescript/src/BottomSheet.context.d.ts.map +1 -0
  28. package/lib/typescript/src/BottomSheetHost.d.ts +5 -0
  29. package/lib/typescript/src/BottomSheetHost.d.ts.map +1 -0
  30. package/lib/typescript/src/BottomSheetManaged.d.ts +10 -0
  31. package/lib/typescript/src/BottomSheetManaged.d.ts.map +1 -0
  32. package/lib/typescript/src/BottomSheetManager.provider.d.ts +14 -0
  33. package/lib/typescript/src/BottomSheetManager.provider.d.ts.map +1 -0
  34. package/lib/typescript/src/bottomSheet.store.d.ts +32 -0
  35. package/lib/typescript/src/bottomSheet.store.d.ts.map +1 -0
  36. package/lib/typescript/src/bottomSheetCoordinator.d.ts +2 -0
  37. package/lib/typescript/src/bottomSheetCoordinator.d.ts.map +1 -0
  38. package/lib/typescript/src/index.d.ts +6 -0
  39. package/lib/typescript/src/index.d.ts.map +1 -0
  40. package/lib/typescript/src/refsMap.d.ts +3 -0
  41. package/lib/typescript/src/refsMap.d.ts.map +1 -0
  42. package/lib/typescript/src/useBottomSheetManager.d.ts +22 -0
  43. package/lib/typescript/src/useBottomSheetManager.d.ts.map +1 -0
  44. package/lib/typescript/src/useBottomSheetState.d.ts +6 -0
  45. package/lib/typescript/src/useBottomSheetState.d.ts.map +1 -0
  46. package/package.json +130 -0
  47. package/src/BottomSheet.context.ts +15 -0
  48. package/src/BottomSheetHost.tsx +70 -0
  49. package/src/BottomSheetManaged.tsx +89 -0
  50. package/src/BottomSheetManager.provider.tsx +39 -0
  51. package/src/bottomSheet.store.ts +107 -0
  52. package/src/bottomSheetCoordinator.ts +34 -0
  53. package/src/index.tsx +5 -0
  54. package/src/refsMap.ts +6 -0
  55. package/src/useBottomSheetManager.tsx +87 -0
  56. package/src/useBottomSheetState.ts +31 -0
package/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Arek Kubaczkowski
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,82 @@
1
+ # 🧩 BottomSheet Stack Manager
2
+
3
+ Manage a stack of [@gorhom/bottom-sheet](https://github.com/gorhom/react-native-bottom-sheet) components with `push`, `switch`, and `replace` navigation — without unmounting underlying sheets.
4
+
5
+ ---
6
+
7
+ ## 🚀 Features
8
+
9
+ - 🧱 `push` — stack a new sheet above the current one
10
+ - 🔄 `switch` — override current sheet temporarily, restore the previous one when closing
11
+ - 🔁 `replace` — fully swap and remove the current sheet
12
+ - 🧠 Underlying sheets remain mounted
13
+ - 🗂️ Group support for isolated stacks
14
+
15
+ ---
16
+
17
+ ## 📦 Installation
18
+
19
+ ```bash
20
+ yarn add zustand @gorhom/bottom-sheet
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ ### 🧠 Important: Use <BottomSheetManaged /> instead of <BottomSheet />
26
+
27
+ To make the stack manager work, you must replace all instances of BottomSheet from @gorhom/bottom-sheet with the provided:
28
+
29
+ ```tsx
30
+ import { BottomSheetManaged } from 'react-native-bottom-sheet-stack';
31
+ ```
32
+
33
+ In your app entry:
34
+
35
+ ```tsx
36
+ import {
37
+ BottomSheetHost,
38
+ BottomSheetManager,
39
+ initBottomSheetCoordinator,
40
+ } from 'react-native-bottom-sheet-stack';
41
+
42
+ initBottomSheetCoordinator();
43
+
44
+ export default function App() {
45
+ return (
46
+ <BottomSheetManager id="default">
47
+ <BottomSheetHost />
48
+ {/* your app content */}
49
+ </BottomSheetManager>
50
+ );
51
+ }
52
+ ```
53
+
54
+ In a component:
55
+
56
+ ```tsx
57
+ import { useBottomSheetManager } from 'react-native-bottom-sheet-stack';
58
+
59
+ export default function YouComponent() {
60
+ const { openBottomSheet } = useBottomSheetManager();
61
+
62
+ return (
63
+ <TouchableOpacity onPress={() => openBottomSheet(<YourBottomSheet />, { mode: 'switch' })}>
64
+ <Text>Open Bottom Sheet</Text>
65
+ </TouchableOpacity>
66
+ );
67
+ }
68
+ ```
69
+
70
+ Define your bottom sheet:
71
+
72
+ ```tsx
73
+ import { BottomSheetManaged } from 'react-native-bottom-sheet-stack';
74
+
75
+ export default function YourBottomSheet() {
76
+ return (
77
+ <BottomSheetManaged snapPoints={['50%']}>
78
+ {/* Sheet content */}
79
+ </BottomSheetManaged>
80
+ );
81
+ }
82
+ ```
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BottomSheetContext = void 0;
7
+ exports.useMaybeBottomSheetContext = useMaybeBottomSheetContext;
8
+ var _react = require("react");
9
+ const BottomSheetContext = exports.BottomSheetContext = /*#__PURE__*/(0, _react.createContext)(undefined);
10
+ function useMaybeBottomSheetContext() {
11
+ const context = (0, _react.useContext)(BottomSheetContext);
12
+ return context;
13
+ }
14
+ //# sourceMappingURL=BottomSheet.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","BottomSheetContext","exports","createContext","undefined","useMaybeBottomSheetContext","context","useContext"],"sourceRoot":"../../src","sources":["BottomSheet.context.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMO,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAG,IAAAE,oBAAa,EAE7CC,SAAS,CAAC;AAEL,SAASC,0BAA0BA,CAAA,EAAG;EAC3C,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACN,kBAAkB,CAAC;EAE9C,OAAOK,OAAO;AAChB","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BottomSheetHost = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _BottomSheet = require("./BottomSheet.context");
10
+ var _bottomSheet = require("./bottomSheet.store");
11
+ var _bottomSheetCoordinator = require("./bottomSheetCoordinator");
12
+ var _BottomSheetManager = require("./BottomSheetManager.provider");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ (0, _bottomSheetCoordinator.initBottomSheetCoordinator)();
17
+ function BottomSheetHostComp() {
18
+ const {
19
+ bottomSheetsStack,
20
+ clearAll
21
+ } = (0, _bottomSheet.useBottomSheetStore)(store => ({
22
+ bottomSheetsStack: store.stack,
23
+ clearAll: store.clearAll
24
+ }));
25
+ const {
26
+ width,
27
+ height
28
+ } = (0, _reactNative.useWindowDimensions)();
29
+ const {
30
+ groupId
31
+ } = (0, _BottomSheetManager.useBottomSheetManagerContext)();
32
+ const filteredQueue = (0, _react.useMemo)(() => bottomSheetsStack.filter(bottomSheet => bottomSheet.groupId === groupId), [bottomSheetsStack, groupId]);
33
+ (0, _react.useEffect)(() => {
34
+ return () => {
35
+ clearAll();
36
+ };
37
+ }, [clearAll]);
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
39
+ children: filteredQueue.map(({
40
+ id,
41
+ content
42
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_BottomSheet.BottomSheetContext.Provider, {
43
+ value: {
44
+ id
45
+ },
46
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
47
+ style: [_reactNative.StyleSheet.absoluteFillObject, styles.container, {
48
+ width,
49
+ height
50
+ }],
51
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(MemoizedContent, {
52
+ id: id,
53
+ children: content
54
+ })
55
+ })
56
+ }, id))
57
+ });
58
+ }
59
+ const MemoizedContent = /*#__PURE__*/_react.default.memo(({
60
+ children
61
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
62
+ children: children
63
+ }), (prevProps, nextProps) => {
64
+ return prevProps.id === nextProps.id;
65
+ });
66
+ const BottomSheetHost = exports.BottomSheetHost = /*#__PURE__*/_react.default.memo(BottomSheetHostComp);
67
+ const styles = _reactNative.StyleSheet.create({
68
+ container: {
69
+ zIndex: 100_000_000,
70
+ pointerEvents: 'box-none'
71
+ }
72
+ });
73
+ //# sourceMappingURL=BottomSheetHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_BottomSheet","_bottomSheet","_bottomSheetCoordinator","_BottomSheetManager","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","initBottomSheetCoordinator","BottomSheetHostComp","bottomSheetsStack","clearAll","useBottomSheetStore","store","stack","width","height","useWindowDimensions","groupId","useBottomSheetManagerContext","filteredQueue","useMemo","filter","bottomSheet","useEffect","jsx","Fragment","children","map","id","content","BottomSheetContext","Provider","value","View","style","StyleSheet","absoluteFillObject","styles","container","MemoizedContent","React","memo","prevProps","nextProps","BottomSheetHost","exports","create","zIndex","pointerEvents"],"sourceRoot":"../../src","sources":["BottomSheetHost.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BottomSheetManaged = void 0;
7
+ var _bottomSheet = _interopRequireWildcard(require("@gorhom/bottom-sheet"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _bottomSheet2 = require("./bottomSheet.store");
10
+ var _useBottomSheetState = require("./useBottomSheetState");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ const BottomSheetManaged = exports.BottomSheetManaged = /*#__PURE__*/_react.default.forwardRef(({
16
+ children,
17
+ onAnimate,
18
+ onClose,
19
+ enablePanDownToClose = true,
20
+ ...props
21
+ }, ref) => {
22
+ const {
23
+ startClosing,
24
+ finishClosing
25
+ } = _bottomSheet2.useBottomSheetStore.getState();
26
+ const {
27
+ bottomSheetState
28
+ } = (0, _useBottomSheetState.useBottomSheetState)();
29
+ const handleOnAnimate = (from, to) => {
30
+ if (to === -1) {
31
+ if (bottomSheetState.status === 'open' || bottomSheetState.status === 'opening') {
32
+ startClosing(bottomSheetState.id);
33
+ }
34
+ }
35
+ if (from === -1 && to >= 0) {
36
+ const currentState = _bottomSheet2.useBottomSheetStore.getState();
37
+ _bottomSheet2.useBottomSheetStore.setState({
38
+ stack: currentState.stack.map(s => s.id === bottomSheetState.id ? {
39
+ ...s,
40
+ status: 'open'
41
+ } : s)
42
+ });
43
+ }
44
+ onAnimate?.(from, to);
45
+ };
46
+ const config = (0, _bottomSheet.useBottomSheetSpringConfigs)({
47
+ stiffness: 400,
48
+ damping: 80,
49
+ mass: 0.7
50
+ });
51
+ const handleClose = () => {
52
+ onClose?.();
53
+ if (bottomSheetState.status !== 'hidden') {
54
+ finishClosing(bottomSheetState.id);
55
+ }
56
+ };
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_bottomSheet.default, {
58
+ animationConfigs: config,
59
+ ref: ref,
60
+ ...props,
61
+ onClose: handleClose,
62
+ onAnimate: handleOnAnimate,
63
+ enablePanDownToClose: enablePanDownToClose,
64
+ backdropComponent: props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_bottomSheet.BottomSheetBackdrop, {
65
+ ...props,
66
+ disappearsOnIndex: -1,
67
+ appearsOnIndex: 0
68
+ }),
69
+ children: children
70
+ });
71
+ });
72
+ //# sourceMappingURL=BottomSheetManaged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_bottomSheet","_interopRequireWildcard","require","_react","_interopRequireDefault","_bottomSheet2","_useBottomSheetState","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BottomSheetManaged","exports","React","forwardRef","children","onAnimate","onClose","enablePanDownToClose","props","ref","startClosing","finishClosing","useBottomSheetStore","getState","bottomSheetState","useBottomSheetState","handleOnAnimate","from","to","status","id","currentState","setState","stack","map","s","config","useBottomSheetSpringConfigs","stiffness","damping","mass","handleClose","jsx","animationConfigs","backdropComponent","BottomSheetBackdrop","disappearsOnIndex","appearsOnIndex"],"sourceRoot":"../../src","sources":["BottomSheetManaged.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useMaybeBottomSheetManagerContext = exports.useBottomSheetManagerContext = exports.BottomSheetManagerProvider = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const Context = /*#__PURE__*/_react.default.createContext(null);
11
+ function BottomSheetManagerProviderComp({
12
+ id,
13
+ children
14
+ }) {
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Context.Provider, {
16
+ value: {
17
+ groupId: id
18
+ },
19
+ children: children
20
+ }, id);
21
+ }
22
+ const BottomSheetManagerProvider = exports.BottomSheetManagerProvider = /*#__PURE__*/_react.default.memo(BottomSheetManagerProviderComp);
23
+ const useBottomSheetManagerContext = () => {
24
+ const context = _react.default.useContext(Context);
25
+ if (!context) {
26
+ throw new Error('useBottomSheetManagerContext must be used within a BottomSheetManagerProvider');
27
+ }
28
+ return context;
29
+ };
30
+ exports.useBottomSheetManagerContext = useBottomSheetManagerContext;
31
+ const useMaybeBottomSheetManagerContext = () => {
32
+ const context = _react.default.useContext(Context);
33
+ if (!context) {
34
+ return null;
35
+ }
36
+ return context;
37
+ };
38
+ exports.useMaybeBottomSheetManagerContext = useMaybeBottomSheetManagerContext;
39
+ //# sourceMappingURL=BottomSheetManager.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","Context","React","createContext","BottomSheetManagerProviderComp","id","children","jsx","Provider","value","groupId","BottomSheetManagerProvider","exports","memo","useBottomSheetManagerContext","context","useContext","Error","useMaybeBottomSheetManagerContext"],"sourceRoot":"../../src","sources":["BottomSheetManager.provider.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAsD,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD,MAAMG,OAAO,gBAAGC,cAAK,CAACC,aAAa,CAA6B,IAAI,CAAC;AAMrE,SAASC,8BAA8BA,CAAC;EAAEC,EAAE;EAAEC;AAAgB,CAAC,EAAE;EAC/D,oBACE,IAAAT,WAAA,CAAAU,GAAA,EAACN,OAAO,CAACO,QAAQ;IAAUC,KAAK,EAAE;MAAEC,OAAO,EAAEL;IAAG,CAAE;IAAAC,QAAA,EAC/CA;EAAQ,GADYD,EAEL,CAAC;AAEvB;AAEO,MAAMM,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,gBAAGT,cAAK,CAACW,IAAI,CAClDT,8BACF,CAAC;AAEM,MAAMU,4BAA4B,GAAGA,CAAA,KAAM;EAChD,MAAMC,OAAO,GAAGb,cAAK,CAACc,UAAU,CAACf,OAAO,CAAC;EAEzC,IAAI,CAACc,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CACb,+EACF,CAAC;EACH;EACA,OAAOF,OAAO;AAChB,CAAC;AAACH,OAAA,CAAAE,4BAAA,GAAAA,4BAAA;AAEK,MAAMI,iCAAiC,GAAGA,CAAA,KAAM;EACrD,MAAMH,OAAO,GAAGb,cAAK,CAACc,UAAU,CAACf,OAAO,CAAC;EAEzC,IAAI,CAACc,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EACA,OAAOA,OAAO;AAChB,CAAC;AAACH,OAAA,CAAAM,iCAAA,GAAAA,iCAAA","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBottomSheetStore = void 0;
7
+ var _middleware = require("zustand/middleware");
8
+ var _traditional = require("zustand/traditional");
9
+ const useBottomSheetStore = exports.useBottomSheetStore = (0, _traditional.createWithEqualityFn)((0, _middleware.subscribeWithSelector)(set => ({
10
+ stack: [],
11
+ push: sheet => set(state => ({
12
+ stack: [...state.stack, {
13
+ ...sheet,
14
+ status: 'opening'
15
+ }]
16
+ })),
17
+ switch: sheet => set(state => {
18
+ const stack = [...state.stack];
19
+ if (stack.length) {
20
+ const topIndex = stack.length - 1;
21
+ if (stack[topIndex]) {
22
+ stack[topIndex] = {
23
+ ...stack[topIndex],
24
+ status: 'hidden'
25
+ };
26
+ }
27
+ }
28
+ stack.push({
29
+ ...sheet,
30
+ status: 'opening'
31
+ });
32
+ return {
33
+ stack
34
+ };
35
+ }),
36
+ replace: sheet => set(state => {
37
+ const stack = [...state.stack];
38
+ const prevTop = stack.pop();
39
+ if (prevTop) {
40
+ stack.push({
41
+ ...prevTop,
42
+ status: 'closing'
43
+ });
44
+ }
45
+ stack.push({
46
+ ...sheet,
47
+ status: 'opening'
48
+ });
49
+ return {
50
+ stack
51
+ };
52
+ }),
53
+ startClosing: id => set(state => {
54
+ const stack = [...state.stack];
55
+ const index = stack.findIndex(s => s.id === id);
56
+ if (index === -1) {
57
+ return {
58
+ stack
59
+ };
60
+ }
61
+ const closing = stack[index];
62
+ if (closing?.status === 'hidden') {
63
+ return {
64
+ stack
65
+ };
66
+ }
67
+ if (closing) {
68
+ stack[index] = {
69
+ ...closing,
70
+ status: 'closing'
71
+ };
72
+ }
73
+ const below = stack[index - 1];
74
+ if (below && below.status === 'hidden') {
75
+ stack[index - 1] = {
76
+ ...below,
77
+ status: 'opening'
78
+ };
79
+ }
80
+ return {
81
+ stack
82
+ };
83
+ }),
84
+ finishClosing: id => set(state => {
85
+ const stack = state.stack.filter(s => s.id !== id);
86
+ const topIndex = stack.length - 1;
87
+ if (topIndex >= 0 && stack[topIndex]?.status === 'hidden') {
88
+ stack[topIndex] = {
89
+ ...stack[topIndex],
90
+ status: 'opening'
91
+ };
92
+ }
93
+ return {
94
+ stack
95
+ };
96
+ }),
97
+ clearAll: () => set(() => ({
98
+ stack: []
99
+ }))
100
+ })));
101
+ //# sourceMappingURL=bottomSheet.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_middleware","require","_traditional","useBottomSheetStore","exports","create","subscribeWithSelector","set","stack","push","sheet","state","status","switch","length","topIndex","replace","prevTop","pop","startClosing","id","index","findIndex","s","closing","below","finishClosing","filter","clearAll"],"sourceRoot":"../../src","sources":["bottomSheet.store.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.initBottomSheetCoordinator = initBottomSheetCoordinator;
7
+ var _bottomSheet = require("./bottomSheet.store");
8
+ var _refsMap = require("./refsMap");
9
+ function initBottomSheetCoordinator() {
10
+ _bottomSheet.useBottomSheetStore.subscribe(s => s.stack.map(({
11
+ id,
12
+ status
13
+ }) => ({
14
+ id,
15
+ status
16
+ })), (next, prev) => {
17
+ next.forEach(({
18
+ id,
19
+ status
20
+ }) => {
21
+ const prevStatus = prev.find(p => p.id === id)?.status;
22
+ if (prevStatus === status) {
23
+ return;
24
+ }
25
+ const ref = _refsMap.sheetRefs[id]?.current;
26
+ if (!ref) {
27
+ return;
28
+ }
29
+ switch (status) {
30
+ case 'opening':
31
+ ref.expand();
32
+ break;
33
+ case 'hidden':
34
+ ref.close();
35
+ break;
36
+ case 'closing':
37
+ ref.close();
38
+ break;
39
+ }
40
+ });
41
+ });
42
+ }
43
+ //# sourceMappingURL=bottomSheetCoordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_bottomSheet","require","_refsMap","initBottomSheetCoordinator","useBottomSheetStore","subscribe","s","stack","map","id","status","next","prev","forEach","prevStatus","find","p","ref","sheetRefs","current","expand","close"],"sourceRoot":"../../src","sources":["bottomSheetCoordinator.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEO,SAASE,0BAA0BA,CAAA,EAAG;EAC3CC,gCAAmB,CAACC,SAAS,CAC3BC,CAAC,IAAIA,CAAC,CAACC,KAAK,CAACC,GAAG,CAAC,CAAC;IAAEC,EAAE;IAAEC;EAAO,CAAC,MAAM;IAAED,EAAE;IAAEC;EAAO,CAAC,CAAC,CAAC,EACtD,CAACC,IAAI,EAAEC,IAAI,KAAK;IACdD,IAAI,CAACE,OAAO,CAAC,CAAC;MAAEJ,EAAE;MAAEC;IAAO,CAAC,KAAK;MAC/B,MAAMI,UAAU,GAAGF,IAAI,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACP,EAAE,KAAKA,EAAE,CAAC,EAAEC,MAAM;MAEtD,IAAII,UAAU,KAAKJ,MAAM,EAAE;QACzB;MACF;MAEA,MAAMO,GAAG,GAAGC,kBAAS,CAACT,EAAE,CAAC,EAAEU,OAAO;MAClC,IAAI,CAACF,GAAG,EAAE;QACR;MACF;MAEA,QAAQP,MAAM;QACZ,KAAK,SAAS;UACZO,GAAG,CAACG,MAAM,CAAC,CAAC;UACZ;QACF,KAAK,QAAQ;UACXH,GAAG,CAACI,KAAK,CAAC,CAAC;UACX;QACF,KAAK,SAAS;UACZJ,GAAG,CAACI,KAAK,CAAC,CAAC;UACX;MACJ;IACF,CAAC,CAAC;EACJ,CACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "BottomSheetHost", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _BottomSheetHost.BottomSheetHost;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "BottomSheetManaged", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _BottomSheetManaged.BottomSheetManaged;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "BottomSheetManagerProvider", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _BottomSheetManager.BottomSheetManagerProvider;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useBottomSheetManager", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _useBottomSheetManager.useBottomSheetManager;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useBottomSheetState", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _useBottomSheetState.useBottomSheetState;
34
+ }
35
+ });
36
+ var _BottomSheetHost = require("./BottomSheetHost");
37
+ var _BottomSheetManager = require("./BottomSheetManager.provider");
38
+ var _useBottomSheetManager = require("./useBottomSheetManager");
39
+ var _useBottomSheetState = require("./useBottomSheetState");
40
+ var _BottomSheetManaged = require("./BottomSheetManaged");
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_BottomSheetHost","require","_BottomSheetManager","_useBottomSheetManager","_useBottomSheetState","_BottomSheetManaged"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sheetRefs = void 0;
7
+ const sheetRefs = exports.sheetRefs = {};
8
+ //# sourceMappingURL=refsMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sheetRefs","exports"],"sourceRoot":"../../src","sources":["refsMap.ts"],"mappings":";;;;;;AAEO,MAAMA,SAGZ,GAAAC,OAAA,CAAAD,SAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBottomSheetManager = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _bottomSheet = require("./bottomSheet.store");
9
+ var _BottomSheetManager = require("./BottomSheetManager.provider");
10
+ var _refsMap = require("./refsMap");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const useBottomSheetManager = () => {
13
+ const bottomSheetManagerContext = (0, _BottomSheetManager.useMaybeBottomSheetManagerContext)();
14
+ const {
15
+ pushBottomSheet,
16
+ replaceBottomSheet,
17
+ switchBottomSheet,
18
+ stack,
19
+ startClosing,
20
+ storeClearAll
21
+ } = (0, _bottomSheet.useBottomSheetStore)(store => ({
22
+ storeClearAll: store.clearAll,
23
+ replaceBottomSheet: store.replace,
24
+ pushBottomSheet: store.push,
25
+ switchBottomSheet: store.switch,
26
+ stack: store.stack,
27
+ startClosing: store.startClosing
28
+ }));
29
+ const openBottomSheet = (content, options = {}) => {
30
+ const groupId = options.groupId || bottomSheetManagerContext?.groupId || 'default';
31
+ const id = Math.random().toString(36);
32
+ const ref = /*#__PURE__*/_react.default.createRef();
33
+ _refsMap.sheetRefs[id] = ref;
34
+
35
+ // @ts-ignore
36
+ const contentWithRef = /*#__PURE__*/_react.default.cloneElement(content, {
37
+ ref
38
+ });
39
+ if (options.mode === 'replace') {
40
+ replaceBottomSheet({
41
+ id,
42
+ groupId,
43
+ content: contentWithRef
44
+ });
45
+ } else if (options.mode === 'switch') {
46
+ switchBottomSheet({
47
+ id,
48
+ groupId,
49
+ content: contentWithRef
50
+ });
51
+ } else {
52
+ pushBottomSheet({
53
+ id,
54
+ groupId,
55
+ content: contentWithRef
56
+ });
57
+ }
58
+ return id;
59
+ };
60
+ const closeTop = () => {
61
+ const top = stack.at(-1);
62
+ if (top) {
63
+ startClosing(top.id);
64
+ }
65
+ };
66
+ const clearAll = () => {
67
+ storeClearAll();
68
+ };
69
+ return {
70
+ clearAll,
71
+ closeTop,
72
+ openBottomSheet,
73
+ pushBottomSheet,
74
+ replaceBottomSheet
75
+ };
76
+ };
77
+ exports.useBottomSheetManager = useBottomSheetManager;
78
+ //# sourceMappingURL=useBottomSheetManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_bottomSheet","_BottomSheetManager","_refsMap","e","__esModule","default","useBottomSheetManager","bottomSheetManagerContext","useMaybeBottomSheetManagerContext","pushBottomSheet","replaceBottomSheet","switchBottomSheet","stack","startClosing","storeClearAll","useBottomSheetStore","store","clearAll","replace","push","switch","openBottomSheet","content","options","groupId","id","Math","random","toString","ref","React","createRef","sheetRefs","contentWithRef","cloneElement","mode","closeTop","top","at","exports"],"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;AAAsC,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG/B,MAAMG,qBAAqB,GAAGA,CAAA,KAAM;EACzC,MAAMC,yBAAyB,GAAG,IAAAC,qDAAiC,EAAC,CAAC;EAErE,MAAM;IACJC,eAAe;IACfC,kBAAkB;IAClBC,iBAAiB;IACjBC,KAAK;IACLC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,gCAAmB,EAAEC,KAAK,KAAM;IAClCF,aAAa,EAAEE,KAAK,CAACC,QAAQ;IAC7BP,kBAAkB,EAAEM,KAAK,CAACE,OAAO;IACjCT,eAAe,EAAEO,KAAK,CAACG,IAAI;IAC3BR,iBAAiB,EAAEK,KAAK,CAACI,MAAM;IAC/BR,KAAK,EAAEI,KAAK,CAACJ,KAAK;IAClBC,YAAY,EAAEG,KAAK,CAACH;EACtB,CAAC,CAAC,CAAC;EAEH,MAAMQ,eAAe,GAAGA,CACtBC,OAA2B,EAC3BC,OAIC,GAAG,CAAC,CAAC,KACH;IACH,MAAMC,OAAO,GACXD,OAAO,CAACC,OAAO,IAAIjB,yBAAyB,EAAEiB,OAAO,IAAI,SAAS;IAEpE,MAAMC,EAAE,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;IACrC,MAAMC,GAAG,gBAAGC,cAAK,CAACC,SAAS,CAAqB,CAAC;IAEjDC,kBAAS,CAACP,EAAE,CAAC,GAAGI,GAAG;;IAEnB;IACA,MAAMI,cAAc,gBAAGH,cAAK,CAACI,YAAY,CAACZ,OAAO,EAAE;MAAEO;IAAI,CAAC,CAAC;IAE3D,IAAIN,OAAO,CAACY,IAAI,KAAK,SAAS,EAAE;MAC9BzB,kBAAkB,CAAC;QACjBe,EAAE;QACFD,OAAO;QACPF,OAAO,EAAEW;MACX,CAAC,CAAC;IACJ,CAAC,MAAM,IAAIV,OAAO,CAACY,IAAI,KAAK,QAAQ,EAAE;MACpCxB,iBAAiB,CAAC;QAChBc,EAAE;QACFD,OAAO;QACPF,OAAO,EAAEW;MACX,CAAC,CAAC;IACJ,CAAC,MAAM;MACLxB,eAAe,CAAC;QACdgB,EAAE;QACFD,OAAO;QACPF,OAAO,EAAEW;MACX,CAAC,CAAC;IACJ;IAEA,OAAOR,EAAE;EACX,CAAC;EAED,MAAMW,QAAQ,GAAGA,CAAA,KAAM;IACrB,MAAMC,GAAG,GAAGzB,KAAK,CAAC0B,EAAE,CAAC,CAAC,CAAC,CAAC;IACxB,IAAID,GAAG,EAAE;MACPxB,YAAY,CAACwB,GAAG,CAACZ,EAAE,CAAC;IACtB;EACF,CAAC;EAED,MAAMR,QAAQ,GAAGA,CAAA,KAAM;IACrBH,aAAa,CAAC,CAAC;EACjB,CAAC;EAED,OAAO;IACLG,QAAQ;IACRmB,QAAQ;IACRf,eAAe;IACfZ,eAAe;IACfC;EACF,CAAC;AACH,CAAC;AAAC6B,OAAA,CAAAjC,qBAAA,GAAAA,qBAAA","ignoreList":[]}