@niibase/bottom-sheet-manager 1.1.0 → 1.3.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 (63) hide show
  1. package/README.md +372 -38
  2. package/lib/commonjs/events.js +100 -15
  3. package/lib/commonjs/events.js.map +1 -1
  4. package/lib/commonjs/index.js +7 -0
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/manager.js +107 -29
  7. package/lib/commonjs/manager.js.map +1 -1
  8. package/lib/commonjs/provider.js +69 -28
  9. package/lib/commonjs/provider.js.map +1 -1
  10. package/lib/commonjs/router/index.js +50 -21
  11. package/lib/commonjs/router/index.js.map +1 -1
  12. package/lib/commonjs/router/router.js +137 -12
  13. package/lib/commonjs/router/router.js.map +1 -1
  14. package/lib/commonjs/router/view.js +194 -84
  15. package/lib/commonjs/router/view.js.map +1 -1
  16. package/lib/commonjs/sheet.js +125 -76
  17. package/lib/commonjs/sheet.js.map +1 -1
  18. package/lib/module/events.js +100 -15
  19. package/lib/module/events.js.map +1 -1
  20. package/lib/module/index.js +1 -1
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/manager.js +108 -29
  23. package/lib/module/manager.js.map +1 -1
  24. package/lib/module/provider.js +65 -25
  25. package/lib/module/provider.js.map +1 -1
  26. package/lib/module/router/index.js +34 -18
  27. package/lib/module/router/index.js.map +1 -1
  28. package/lib/module/router/router.js +135 -11
  29. package/lib/module/router/router.js.map +1 -1
  30. package/lib/module/router/view.js +194 -84
  31. package/lib/module/router/view.js.map +1 -1
  32. package/lib/module/sheet.js +127 -78
  33. package/lib/module/sheet.js.map +1 -1
  34. package/lib/typescript/events.d.ts +46 -12
  35. package/lib/typescript/events.d.ts.map +1 -1
  36. package/lib/typescript/index.d.ts +1 -1
  37. package/lib/typescript/index.d.ts.map +1 -1
  38. package/lib/typescript/manager.d.ts +57 -7
  39. package/lib/typescript/manager.d.ts.map +1 -1
  40. package/lib/typescript/provider.d.ts +22 -3
  41. package/lib/typescript/provider.d.ts.map +1 -1
  42. package/lib/typescript/router/index.d.ts +33 -17
  43. package/lib/typescript/router/index.d.ts.map +1 -1
  44. package/lib/typescript/router/router.d.ts +44 -5
  45. package/lib/typescript/router/router.d.ts.map +1 -1
  46. package/lib/typescript/router/types.d.ts +113 -17
  47. package/lib/typescript/router/types.d.ts.map +1 -1
  48. package/lib/typescript/router/view.d.ts +1 -1
  49. package/lib/typescript/router/view.d.ts.map +1 -1
  50. package/lib/typescript/sheet.d.ts.map +1 -1
  51. package/lib/typescript/types.d.ts +27 -12
  52. package/lib/typescript/types.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/src/events.ts +118 -27
  55. package/src/index.ts +6 -5
  56. package/src/manager.ts +156 -33
  57. package/src/provider.tsx +98 -44
  58. package/src/router/index.tsx +38 -31
  59. package/src/router/router.ts +184 -15
  60. package/src/router/types.ts +119 -22
  61. package/src/router/view.tsx +252 -132
  62. package/src/sheet.tsx +176 -95
  63. package/src/types.ts +144 -129
@@ -1,5 +1,6 @@
1
- import { eventManager } from "./events";
2
1
  import { providerRegistryStack, sheetsRegistry } from "./provider";
2
+ import { eventManager } from "./events";
3
+
3
4
  // Array of all the ids of Sheets currently rendered in the app.
4
5
  const ids = [];
5
6
  const keys = [];
@@ -7,12 +8,12 @@ const refs = {};
7
8
  const DEFAULT_Z_INDEX = 999;
8
9
  const makeKey = (id, context) => `${id}:${context}`;
9
10
  export const PrivateManager = {
10
- // Return to the previous sheet when the current sheet is closed.
11
+ // Stack of sheet history for restoration when sheets are closed
11
12
  history: [],
12
13
  context(options) {
13
14
  if (!options) options = {};
14
15
  if (!options?.context) {
15
- // If no context is provided, use to current top most context
16
+ // If no context is provided, use the current top-most context
16
17
  // to render the sheet.
17
18
  for (const context of providerRegistryStack.slice().reverse()) {
18
19
  // We only automatically select nested sheet providers.
@@ -27,10 +28,11 @@ export const PrivateManager = {
27
28
  registerRef: (id, context, instance) => {
28
29
  const key = makeKey(id, context);
29
30
  refs[key] = instance;
30
- keys.push(key);
31
+ if (!keys.includes(key)) {
32
+ keys.push(key);
33
+ }
31
34
  },
32
35
  /**
33
- *
34
36
  * Get internal ref of a sheet by the given id.
35
37
  *
36
38
  * @param id Id of the sheet
@@ -38,8 +40,8 @@ export const PrivateManager = {
38
40
  */
39
41
  get: (id, context) => {
40
42
  if (!context) {
41
- for (let ctx of providerRegistryStack.slice().reverse()) {
42
- for (let _id in sheetsRegistry[ctx]) {
43
+ for (const ctx of providerRegistryStack.slice().reverse()) {
44
+ for (const _id in sheetsRegistry[ctx]) {
43
45
  if (_id === id) {
44
46
  context = ctx;
45
47
  break;
@@ -50,25 +52,52 @@ export const PrivateManager = {
50
52
  return refs[makeKey(id, context)];
51
53
  },
52
54
  add: (id, context) => {
53
- if (ids.indexOf(id) < 0) {
54
- ids[ids.length] = makeKey(id, context);
55
+ const key = makeKey(id, context);
56
+ if (!ids.includes(key)) {
57
+ ids.push(key);
55
58
  }
56
59
  },
57
60
  remove: (id, context) => {
58
- if (ids.indexOf(makeKey(id, context)) > -1) {
59
- ids.splice(ids.indexOf(makeKey(id, context)));
61
+ const key = makeKey(id, context);
62
+ const index = ids.indexOf(key);
63
+ if (index > -1) {
64
+ ids.splice(index, 1);
60
65
  }
61
66
  },
62
67
  zIndex: (id, context = "global") => {
63
68
  const index = keys.indexOf(makeKey(id, context));
64
69
  return index > -1 ? DEFAULT_Z_INDEX + index + 1 : DEFAULT_Z_INDEX;
65
70
  },
66
- stack: () => ids.map(id => {
71
+ stack: () => ids.map(id => ({
72
+ id: id.split(":")[0],
73
+ context: id.split(":")?.[1] || "global"
74
+ })),
75
+ /**
76
+ * Get the top-most sheet in the stack
77
+ */
78
+ topSheet: () => {
79
+ if (ids.length === 0) return null;
80
+ const topId = ids[ids.length - 1];
67
81
  return {
68
- id: id.split(":")[0],
69
- context: id.split(":")?.[1] || "global"
82
+ id: topId.split(":")[0],
83
+ context: topId.split(":")?.[1] || "global"
70
84
  };
71
- })
85
+ },
86
+ /**
87
+ * Check if a sheet is currently visible
88
+ */
89
+ isSheetVisible: (id, context) => {
90
+ if (context) {
91
+ return ids.includes(makeKey(id, context));
92
+ }
93
+ return ids.some(key => key.startsWith(`${id}:`));
94
+ },
95
+ /**
96
+ * Clear all history entries
97
+ */
98
+ clearHistory: () => {
99
+ PrivateManager.history = [];
100
+ }
72
101
  };
73
102
  class _SheetManager {
74
103
  /**
@@ -83,30 +112,38 @@ class _SheetManager {
83
112
  ...options,
84
113
  id: id
85
114
  });
86
- const handler = (data, context = "global") => {
115
+ const behavior = options?.stackBehavior ?? "switch";
116
+ const handler = (data, context = "global", _reopened, _behavior) => {
87
117
  if (context !== "global" && currentContext && currentContext !== context) return;
88
118
  options?.onClose?.(data);
89
119
  sub?.unsubscribe();
90
120
  resolve(data);
91
121
  };
92
- var sub = eventManager.subscribe(`onclose_${id}`, handler);
93
- PrivateManager.stack().forEach(({
94
- id,
95
- context
96
- }) => {
97
- eventManager.publish(`hide_${id}`, undefined, context, true);
98
- });
122
+ const sub = eventManager.subscribe(`onclose_${id}`, handler);
123
+
124
+ // Handle existing sheets based on stack behavior
125
+ const currentStack = PrivateManager.stack();
126
+ if (currentStack.length > 0) {
127
+ currentStack.forEach(({
128
+ id: sheetId,
129
+ context
130
+ }) => {
131
+ eventManager.publish(`hide_${sheetId}`, undefined, context, true, behavior);
132
+ });
133
+ }
99
134
 
100
135
  // Check if the sheet is registered with any `SheetProviders`.
101
136
  let isRegisteredWithSheetProvider = false;
102
- for (let ctx in sheetsRegistry) {
103
- for (let _id in sheetsRegistry[ctx]) {
137
+ for (const ctx in sheetsRegistry) {
138
+ for (const _id in sheetsRegistry[ctx]) {
104
139
  if (_id === id) {
105
140
  isRegisteredWithSheetProvider = true;
141
+ break;
106
142
  }
107
143
  }
144
+ if (isRegisteredWithSheetProvider) break;
108
145
  }
109
- eventManager.publish(isRegisteredWithSheetProvider ? `show_wrap_${id}` : `show_${id}`, options?.payload, currentContext || "global");
146
+ eventManager.publish(isRegisteredWithSheetProvider ? `show_wrap_${id}` : `show_${id}`, options?.payload, currentContext || "global", false, behavior);
110
147
  });
111
148
  }
112
149
 
@@ -114,10 +151,10 @@ class _SheetManager {
114
151
  * An async hide function. This is useful when you want to show one Sheet after closing another.
115
152
  *
116
153
  * @param id id of the Sheet to show
117
- * @param data
154
+ * @param options
118
155
  */
119
156
  async hide(id, options) {
120
- let currentContext = PrivateManager.context({
157
+ const currentContext = PrivateManager.context({
121
158
  ...options,
122
159
  id: id
123
160
  });
@@ -137,7 +174,7 @@ class _SheetManager {
137
174
  sub?.unsubscribe();
138
175
  resolve(data);
139
176
  };
140
- var sub = eventManager.subscribe(`onclose_${id}`, hideHandler);
177
+ const sub = eventManager.subscribe(`onclose_${id}`, hideHandler);
141
178
  eventManager.publish(isRegisteredWithSheetProvider ? `hide_wrap_${id}` : `hide_${id}`, options?.payload, !isRegisteredWithSheetProvider ? "global" : currentContext);
142
179
  });
143
180
  }
@@ -148,6 +185,8 @@ class _SheetManager {
148
185
  * @param id Hide all sheets for the specific id.
149
186
  */
150
187
  hideAll(id) {
188
+ // Clear history when hiding all sheets
189
+ PrivateManager.clearHistory();
151
190
  PrivateManager.stack().forEach(({
152
191
  id: _id,
153
192
  context
@@ -156,6 +195,46 @@ class _SheetManager {
156
195
  eventManager.publish(`hide_${_id}`, undefined, context);
157
196
  });
158
197
  }
198
+
199
+ /**
200
+ * Replace the current sheet with a new one using crossfade animation.
201
+ * This is a convenience method for show() with stackBehavior: 'replace'.
202
+ */
203
+ async replace(id, options) {
204
+ return this.show(id, {
205
+ ...options,
206
+ stackBehavior: "replace"
207
+ });
208
+ }
209
+
210
+ /**
211
+ * Push a new sheet on top of the current one, creating a stack.
212
+ * This is a convenience method for show() with stackBehavior: 'push'.
213
+ */
214
+ async push(id, options) {
215
+ return this.show(id, {
216
+ ...options,
217
+ stackBehavior: "push"
218
+ });
219
+ }
220
+
221
+ /**
222
+ * Pop the top sheet from the stack and restore the previous one.
223
+ * Only works when sheets were opened with stackBehavior: 'push'.
224
+ */
225
+ pop() {
226
+ const topSheet = PrivateManager.topSheet();
227
+ if (topSheet) {
228
+ eventManager.publish(`hide_${topSheet.id}`, undefined, topSheet.context);
229
+ }
230
+ }
231
+
232
+ /**
233
+ * Check if a specific sheet is currently visible.
234
+ */
235
+ isVisible(id, context) {
236
+ return PrivateManager.isSheetVisible(id, context);
237
+ }
159
238
  }
160
239
 
161
240
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["eventManager","providerRegistryStack","sheetsRegistry","ids","keys","refs","DEFAULT_Z_INDEX","makeKey","id","context","PrivateManager","history","options","slice","reverse","startsWith","includes","registerRef","instance","key","push","get","ctx","_id","add","indexOf","length","remove","splice","zIndex","index","stack","map","split","_SheetManager","show","Promise","resolve","currentContext","handler","data","onClose","sub","unsubscribe","subscribe","forEach","publish","undefined","isRegisteredWithSheetProvider","payload","hide","hideHandler","hideAll","SheetManager"],"sourceRoot":"../../src","sources":["manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["providerRegistryStack","sheetsRegistry","eventManager","ids","keys","refs","DEFAULT_Z_INDEX","makeKey","id","context","PrivateManager","history","options","slice","reverse","startsWith","includes","registerRef","instance","key","push","get","ctx","_id","add","remove","index","indexOf","splice","zIndex","stack","map","split","topSheet","length","topId","isSheetVisible","some","clearHistory","_SheetManager","show","Promise","resolve","currentContext","behavior","stackBehavior","handler","data","_reopened","_behavior","onClose","sub","unsubscribe","subscribe","currentStack","forEach","sheetId","publish","undefined","isRegisteredWithSheetProvider","payload","hide","hideHandler","hideAll","replace","pop","isVisible","SheetManager"],"sourceRoot":"../../src","sources":["manager.ts"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
+ import Animated, { interpolate, interpolateColor, runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withSpring } from "react-native-reanimated";
1
2
  import { useSafeAreaInsets } from "react-native-safe-area-context";
2
3
  import { BottomSheetModalProvider } from "@gorhom/bottom-sheet";
3
4
  import { StatusBar } from "react-native";
4
5
  import React from "react";
5
- import Animated, { interpolate, interpolateColor, runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withSpring, withTiming } from "react-native-reanimated";
6
6
  import { eventManager } from "./events";
7
7
  export const providerRegistryStack = [];
8
8
 
@@ -23,6 +23,11 @@ export function registerSheet(id, Sheet, ...contexts) {
23
23
  }
24
24
  }
25
25
 
26
+ /**
27
+ * Animation configuration for iOS modal sheet style animations.
28
+ * @deprecated Use duration prop directly instead
29
+ */
30
+
26
31
  /**
27
32
  * The SheetProvider makes available the sheets in a given context. The default context is
28
33
  * `global`. However if you want to render a Sheet within another sheet or if you want to render
@@ -44,7 +49,7 @@ export function registerSheet(id, Sheet, ...contexts) {
44
49
  export function SheetProvider({
45
50
  iosModalSheetTypeOfAnimation = false,
46
51
  context = "global",
47
- duration = 300,
52
+ duration = 150,
48
53
  children
49
54
  }) {
50
55
  const {
@@ -53,25 +58,24 @@ export function SheetProvider({
53
58
  const [, forceUpdate] = React.useReducer(x => x + 1, 0);
54
59
  const sheetIds = Object.keys(sheetsRegistry[context] || sheetsRegistry["global"] || {});
55
60
 
56
- // Rerender when a new sheet is added.
57
- const onRegister = React.useCallback(forceUpdate, [forceUpdate]);
58
-
59
61
  // IOS modal sheet type of animation
60
62
  const isFullScreen = useSharedValue(-1);
61
63
  const colorStyle = useAnimatedStyle(() => ({
62
64
  flex: 1,
63
- backgroundColor: interpolateColor(isFullScreen.value, [0, 1], ["transparent", "#000"])
65
+ backgroundColor: withSpring(interpolateColor(isFullScreen.value, [0, 1], ["transparent", "#000"]), {
66
+ duration
67
+ })
64
68
  }));
65
69
  const animatedStyle = useAnimatedStyle(() => ({
66
70
  flex: 1,
67
71
  overflow: "hidden",
68
72
  borderRadius: interpolate(isFullScreen.value, [0, 0.8, 1], [0, 20, 24], "clamp"),
69
73
  transform: [{
70
- scaleX: withTiming(interpolate(isFullScreen.value, [0, 0.98, 1], [1, 1, 0.92], "clamp"), {
74
+ scaleX: withSpring(interpolate(isFullScreen.value, [0, 0.8], [1, 0.92], "clamp"), {
71
75
  duration
72
76
  })
73
77
  }, {
74
- translateY: withSpring(interpolate(isFullScreen.value, [0, 0.99, 1], [0, top, top + 5], "clamp"), {
78
+ translateY: withSpring(interpolate(isFullScreen.value, [0, 0.8, 1], [0, top, top + 5], "clamp"), {
75
79
  duration,
76
80
  dampingRatio: 1.5
77
81
  })
@@ -89,16 +93,17 @@ export function SheetProvider({
89
93
  }, []);
90
94
  React.useEffect(() => {
91
95
  providerRegistryStack.indexOf(context) > -1 ? providerRegistryStack.indexOf(context) : providerRegistryStack.push(context) - 1;
92
- const unsub = eventManager.subscribe(`${context}-on-register`, onRegister);
96
+ const unsub = eventManager.subscribe(`${context}-on-register`, forceUpdate);
93
97
  return () => {
94
98
  providerRegistryStack.splice(providerRegistryStack.indexOf(context), 1);
95
99
  unsub?.unsubscribe();
96
100
  };
97
- }, [context, onRegister]);
101
+ }, [context, forceUpdate]);
98
102
  return /*#__PURE__*/React.createElement(SheetAnimationContext.Provider, {
99
103
  value: {
100
104
  isFullScreen,
101
- iosModalSheetTypeOfAnimation
105
+ iosModalSheetTypeOfAnimation,
106
+ duration
102
107
  }
103
108
  }, /*#__PURE__*/React.createElement(Animated.View, {
104
109
  style: colorStyle
@@ -107,8 +112,7 @@ export function SheetProvider({
107
112
  }, children)), /*#__PURE__*/React.createElement(BottomSheetModalProvider, null, sheetIds.map(id => /*#__PURE__*/React.createElement(RenderSheet, {
108
113
  key: id,
109
114
  id: id,
110
- context: context,
111
- duration: duration
115
+ context: context
112
116
  }))));
113
117
  }
114
118
  const ProviderContext = /*#__PURE__*/React.createContext("global");
@@ -117,11 +121,20 @@ const SheetAnimationContext = /*#__PURE__*/React.createContext({
117
121
  isFullScreen: {
118
122
  value: 0
119
123
  },
120
- iosModalSheetTypeOfAnimation: false
124
+ iosModalSheetTypeOfAnimation: false,
125
+ duration: 300
121
126
  });
122
127
  export const SheetRefContext = /*#__PURE__*/React.createContext({});
123
128
  const SheetPayloadContext = /*#__PURE__*/React.createContext(undefined);
124
129
 
130
+ // Stack behavior context for managing sheet transitions
131
+
132
+ const StackBehaviorContext = /*#__PURE__*/React.createContext({
133
+ behavior: "switch",
134
+ isTransitioning: false,
135
+ previousSheetId: null
136
+ });
137
+
125
138
  /**
126
139
  * Get id of the current context.
127
140
  */
@@ -134,6 +147,10 @@ export const useSheetIDContext = () => React.useContext(SheetIDContext);
134
147
  * Get the current sheet animation context.
135
148
  */
136
149
  export const useSheetAnimationContext = () => React.useContext(SheetAnimationContext);
150
+ /**
151
+ * Get stack behavior context for the current sheet.
152
+ */
153
+ export const useStackBehaviorContext = () => React.useContext(StackBehaviorContext);
137
154
  /**
138
155
  * Get the current Sheet's internal ref.
139
156
  */
@@ -153,29 +170,44 @@ export function useOnSheet(id, type, listener) {
153
170
  React.useEffect(() => {
154
171
  const subscription = eventManager.subscribe(`${type}_${id}`, listener);
155
172
  return () => subscription.unsubscribe();
156
- }, [id, listener]);
173
+ }, [id, listener, type]);
157
174
  }
158
175
  const RenderSheet = ({
159
176
  id,
160
- context,
161
- duration
177
+ context
162
178
  }) => {
163
179
  const [payload, setPayload] = React.useState();
164
180
  const [visible, setVisible] = React.useState(false);
181
+ const [stackBehavior, setStackBehavior] = React.useState("switch");
182
+ const [isPending, startTransition] = React.useTransition();
183
+ const [previousSheetId, setPreviousSheetId] = React.useState(null);
165
184
  const ref = React.useRef(null);
166
185
  const Sheet = context.startsWith("$$-auto-") ? sheetsRegistry?.global?.[id] : sheetsRegistry[context] ? sheetsRegistry[context]?.[id] : undefined;
167
- const onShow = React.useCallback((data, ctx = "global", reopened) => {
186
+ const onShow = React.useCallback((data, ctx = "global", reopened, behavior) => {
168
187
  if (ctx !== context) return;
169
- if (!reopened) setPayload(data);
170
- setVisible(true);
188
+ if (behavior) {
189
+ setStackBehavior(behavior);
190
+ }
191
+ if (!reopened) {
192
+ setPayload(data);
193
+ }
194
+
195
+ // Smooth transition handling using React's useTransition
196
+ startTransition(() => {
197
+ setVisible(true);
198
+ });
171
199
  }, [context]);
172
- const onClose = React.useCallback((_data, ctx = "global", reopened) => {
200
+ const onClose = React.useCallback((_data, ctx = "global", reopened, nextSheetId) => {
173
201
  if (context !== ctx) return;
202
+ if (nextSheetId) {
203
+ setPreviousSheetId(nextSheetId);
204
+ }
174
205
  if (!reopened) {
175
206
  setPayload(undefined);
176
- setTimeout(() => setVisible(false), Math.max(duration ?? 300, 300));
207
+ setVisible(false);
177
208
  } else {
178
209
  setVisible(false);
210
+ setPreviousSheetId(null);
179
211
  }
180
212
  }, [context]);
181
213
  const onHide = React.useCallback((data, ctx = "global") => {
@@ -187,13 +219,19 @@ const RenderSheet = ({
187
219
  }
188
220
  }, [context, id, payload, visible]);
189
221
  React.useEffect(() => {
190
- let subs = [eventManager.subscribe(`show_wrap_${id}`, onShow), eventManager.subscribe(`onclose_${id}`, onClose), eventManager.subscribe(`hide_wrap_${id}`, onHide)];
222
+ const subs = [eventManager.subscribe(`show_wrap_${id}`, onShow), eventManager.subscribe(`onclose_${id}`, onClose), eventManager.subscribe(`hide_wrap_${id}`, onHide)];
191
223
  return () => {
192
224
  subs.forEach(s => s.unsubscribe());
193
225
  };
194
226
  }, [id, context, onShow, onHide, onClose]);
195
227
  if (!Sheet) return null;
196
- return visible ? /*#__PURE__*/React.createElement(ProviderContext.Provider, {
228
+ const stackContextValue = {
229
+ behavior: stackBehavior,
230
+ isTransitioning: isPending,
231
+ previousSheetId
232
+ };
233
+ if (!visible) return null;
234
+ return /*#__PURE__*/React.createElement(ProviderContext.Provider, {
197
235
  value: context
198
236
  }, /*#__PURE__*/React.createElement(SheetIDContext.Provider, {
199
237
  value: id
@@ -201,10 +239,12 @@ const RenderSheet = ({
201
239
  value: ref
202
240
  }, /*#__PURE__*/React.createElement(SheetPayloadContext.Provider, {
203
241
  value: payload
242
+ }, /*#__PURE__*/React.createElement(StackBehaviorContext.Provider, {
243
+ value: stackContextValue
204
244
  }, /*#__PURE__*/React.createElement(Sheet, {
205
245
  id: id,
206
246
  payload: payload,
207
247
  context: context
208
- }))))) : null;
248
+ }))))));
209
249
  };
210
250
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useSafeAreaInsets","BottomSheetModalProvider","StatusBar","React","Animated","interpolate","interpolateColor","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","eventManager","providerRegistryStack","sheetsRegistry","global","registerSheet","id","Sheet","contexts","length","context","registry","publish","SheetProvider","iosModalSheetTypeOfAnimation","duration","children","top","forceUpdate","useReducer","x","sheetIds","Object","keys","onRegister","useCallback","isFullScreen","colorStyle","flex","backgroundColor","value","animatedStyle","overflow","borderRadius","transform","scaleX","translateY","dampingRatio","setStatusBar","setBarStyle","currentValue","useEffect","indexOf","push","unsub","subscribe","splice","unsubscribe","createElement","SheetAnimationContext","Provider","View","style","map","RenderSheet","key","ProviderContext","createContext","SheetIDContext","undefined","SheetRefContext","SheetPayloadContext","useProviderContext","useContext","useSheetIDContext","useSheetAnimationContext","useSheetRef","useSheetPayload","useOnSheet","type","listener","subscription","payload","setPayload","useState","visible","setVisible","ref","useRef","startsWith","onShow","data","ctx","reopened","onClose","_data","setTimeout","Math","max","onHide","subs","forEach","s"],"sourceRoot":"../../src","sources":["provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Animated","interpolate","interpolateColor","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","useSafeAreaInsets","BottomSheetModalProvider","StatusBar","React","eventManager","providerRegistryStack","sheetsRegistry","global","registerSheet","id","Sheet","contexts","length","context","registry","publish","SheetProvider","iosModalSheetTypeOfAnimation","duration","children","top","forceUpdate","useReducer","x","sheetIds","Object","keys","isFullScreen","colorStyle","flex","backgroundColor","value","animatedStyle","overflow","borderRadius","transform","scaleX","translateY","dampingRatio","setStatusBar","setBarStyle","currentValue","useEffect","indexOf","push","unsub","subscribe","splice","unsubscribe","createElement","SheetAnimationContext","Provider","View","style","map","RenderSheet","key","ProviderContext","createContext","SheetIDContext","undefined","SheetRefContext","SheetPayloadContext","StackBehaviorContext","behavior","isTransitioning","previousSheetId","useProviderContext","useContext","useSheetIDContext","useSheetAnimationContext","useStackBehaviorContext","useSheetRef","useSheetPayload","useOnSheet","type","listener","subscription","payload","setPayload","useState","visible","setVisible","stackBehavior","setStackBehavior","isPending","startTransition","useTransition","setPreviousSheetId","ref","useRef","startsWith","onShow","useCallback","data","ctx","reopened","onClose","_data","nextSheetId","onHide","subs","forEach","s","stackContextValue"],"sourceRoot":"../../src","sources":["provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
2
  import { createNavigatorFactory, useNavigationBuilder } from "@react-navigation/native";
3
- import React from "react";
3
+ import * as React from "react";
4
4
  import { BottomSheetRouter } from "./router";
5
5
  import { BottomSheetView } from "./view";
6
6
  function BottomSheetNavigator({
@@ -8,6 +8,7 @@ function BottomSheetNavigator({
8
8
  children,
9
9
  screenListeners,
10
10
  screenOptions,
11
+ initialRouteName,
11
12
  ...rest
12
13
  }) {
13
14
  const {
@@ -19,7 +20,8 @@ function BottomSheetNavigator({
19
20
  id,
20
21
  children,
21
22
  screenListeners,
22
- screenOptions
23
+ screenOptions,
24
+ initialRouteName
23
25
  });
24
26
  return /*#__PURE__*/React.createElement(NavigationContent, null, /*#__PURE__*/React.createElement(BottomSheetView, _extends({}, rest, {
25
27
  state: state,
@@ -29,18 +31,40 @@ function BottomSheetNavigator({
29
31
  }
30
32
 
31
33
  /**
32
- * To use BottomSheetNavigator with expo-router, the first screen should be your app content
33
- * and add a border radius of 24px to the root view if want to snap to 100%.
34
+ * Creates a bottom sheet navigator that renders screens as bottom sheet modals.
35
+ *
36
+ * The first screen in the navigator is rendered as the main content,
37
+ * and subsequent screens are rendered as bottom sheet modals on top.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * // With React Navigation
42
+ * const { Navigator, Screen } = createBottomSheetNavigator();
43
+ *
44
+ * function App() {
45
+ * return (
46
+ * <Navigator>
47
+ * <Screen name="Home" component={HomeScreen} />
48
+ * <Screen
49
+ * name="Details"
50
+ * component={DetailsSheet}
51
+ * options={{ snapPoints: ['50%', '100%'] }}
52
+ * />
53
+ * </Navigator>
54
+ * );
55
+ * }
56
+ * ```
34
57
  *
35
58
  * @example
36
59
  * ```tsx
60
+ * // With Expo Router
61
+ * import { Slot, withLayoutContext } from "expo-router";
37
62
  * import {
38
63
  * createBottomSheetNavigator,
39
64
  * BottomSheetNavigationOptions,
40
65
  * BottomSheetNavigationEventMap,
41
66
  * BottomSheetNavigationState,
42
- * } from "@repo/bottom-sheet";
43
- * import { Slot, withLayoutContext } from "expo-router";
67
+ * } from "@niibase/bottom-sheet-manager";
44
68
  *
45
69
  * const { Navigator } = createBottomSheetNavigator();
46
70
  *
@@ -56,24 +80,16 @@ function BottomSheetNavigator({
56
80
  * };
57
81
  *
58
82
  * export default function Layout() {
83
+ * // SSR guard - navigator doesn't work on server
59
84
  * if (typeof window === "undefined") return <Slot />;
60
- * return (
61
- * <BottomSheet
62
- * screenOptions={
63
- * {
64
- * // API Reference: `@repo/design/bottom-sheet/types.ts`
65
- * // And: https://gorhom.github.io/react-native-bottom-sheet/modal/props/
66
- * }
67
- * }
68
- *. />
69
- * );
85
+ *
86
+ * return <BottomSheet />;
70
87
  * }
71
88
  * ```
72
89
  */
73
90
  export function createBottomSheetNavigator(config) {
74
- // We call `createNavigatorFactory` with our un-typed navigator
75
- // but pass in the config to get the typed container
76
91
  return createNavigatorFactory(BottomSheetNavigator)(config);
77
92
  }
78
93
  export * from "./types";
94
+ export { BottomSheetActions, useBottomSheetNavigation } from "./router";
79
95
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createNavigatorFactory","useNavigationBuilder","React","BottomSheetRouter","BottomSheetView","BottomSheetNavigator","id","children","screenListeners","screenOptions","rest","state","descriptors","navigation","NavigationContent","createElement","_extends","createBottomSheetNavigator","config"],"sourceRoot":"../../../src","sources":["router/index.tsx"],"mappings":";AAAA,SACEA,sBAAsB,EAKtBC,oBAAoB,QACf,0BAA0B;AACjC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,iBAAiB,QAAkC,UAAU;AAStE,SAASC,eAAe,QAAQ,QAAQ;AAExC,SAASC,oBAAoBA,CAAC;EAC5BC,EAAE;EACFC,QAAQ;EACRC,eAAe;EACfC,aAAa;EACb,GAAGC;AACsB,CAAC,EAAE;EAC5B,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GAAGb,oBAAoB,CAMhFE,iBAAiB,EAAE;IACnBG,EAAE;IACFC,QAAQ;IACRC,eAAe;IACfC;EACF,CAAC,CAAC;EAEF,oBACEP,KAAA,CAAAa,aAAA,CAACD,iBAAiB,qBAChBZ,KAAA,CAAAa,aAAA,CAACX,eAAe,EAAAY,QAAA,KACVN,IAAI;IACRC,KAAK,EAAEA,KAAM;IACbE,UAAU,EAAEA,UAAW;IACvBD,WAAW,EAAEA;EAAY,EAC1B,CACgB,CAAC;AAExB;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,0BAA0BA,CA4BxCC,MAAe,EAAmC;EAClD;EACA;EACA,OAAOlB,sBAAsB,CAACK,oBAAoB,CAAC,CAACa,MAAM,CAAC;AAC7D;AAEA,cAAc,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["createNavigatorFactory","useNavigationBuilder","React","BottomSheetRouter","BottomSheetView","BottomSheetNavigator","id","children","screenListeners","screenOptions","initialRouteName","rest","state","descriptors","navigation","NavigationContent","createElement","_extends","createBottomSheetNavigator","config","BottomSheetActions","useBottomSheetNavigation"],"sourceRoot":"../../../src","sources":["router/index.tsx"],"mappings":";AAAA,SACEA,sBAAsB,EACtBC,oBAAoB,QAKf,0BAA0B;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAU9B,SAASC,iBAAiB,QAAuC,UAAU;AAC3E,SAASC,eAAe,QAAQ,QAAQ;AAExC,SAASC,oBAAoBA,CAAC;EAC5BC,EAAE;EACFC,QAAQ;EACRC,eAAe;EACfC,aAAa;EACbC,gBAAgB;EAChB,GAAGC;AACsB,CAAC,EAAE;EAC5B,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAkB,CAAC,GAAGd,oBAAoB,CAMhFE,iBAAiB,EAAE;IACnBG,EAAE;IACFC,QAAQ;IACRC,eAAe;IACfC,aAAa;IACbC;EACF,CAAC,CAAC;EAEF,oBACER,KAAA,CAAAc,aAAA,CAACD,iBAAiB,qBAChBb,KAAA,CAAAc,aAAA,CAACZ,eAAe,EAAAa,QAAA,KACVN,IAAI;IACRC,KAAK,EAAEA,KAAM;IACbE,UAAU,EAAEA,UAAW;IACvBD,WAAW,EAAEA;EAAY,EAC1B,CACgB,CAAC;AAExB;;AAEA;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;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,OAAO,SAASK,0BAA0BA,CAmBxCC,MAAe,EAAmC;EAClD,OAAOnB,sBAAsB,CAACK,oBAAoB,CAAC,CAACc,MAAM,CAAC;AAC7D;AAEA,cAAc,SAAS;AACvB,SAASC,kBAAkB,EAAEC,wBAAwB,QAAQ,UAAU","ignoreList":[]}