@tamagui/sheet 1.27.1 → 1.27.2

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 (110) hide show
  1. package/dist/cjs/Sheet.js +1 -2
  2. package/dist/cjs/Sheet.js.map +1 -1
  3. package/dist/cjs/SheetContext.js.map +1 -1
  4. package/dist/cjs/SheetImplementationCustom.js +340 -0
  5. package/dist/cjs/SheetImplementationCustom.js.map +6 -0
  6. package/dist/cjs/constants.js +10 -0
  7. package/dist/cjs/constants.js.map +1 -1
  8. package/dist/cjs/contexts.js +35 -0
  9. package/dist/cjs/contexts.js.map +6 -0
  10. package/dist/cjs/createSheet.js +68 -349
  11. package/dist/cjs/createSheet.js.map +2 -2
  12. package/dist/cjs/helpers.js +38 -0
  13. package/dist/cjs/helpers.js.map +6 -0
  14. package/dist/cjs/nativeSheet.js +3 -5
  15. package/dist/cjs/nativeSheet.js.map +1 -1
  16. package/dist/cjs/useSheetController.js +2 -1
  17. package/dist/cjs/useSheetController.js.map +1 -1
  18. package/dist/cjs/useSheetProviderProps.js +30 -3
  19. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  20. package/dist/esm/Sheet.js +1 -2
  21. package/dist/esm/Sheet.js.map +1 -1
  22. package/dist/esm/SheetContext.js.map +1 -1
  23. package/dist/esm/SheetImplementationCustom.js +336 -0
  24. package/dist/esm/SheetImplementationCustom.js.map +6 -0
  25. package/dist/esm/constants.js +8 -0
  26. package/dist/esm/constants.js.map +1 -1
  27. package/dist/esm/contexts.js +10 -0
  28. package/dist/esm/contexts.js.map +6 -0
  29. package/dist/esm/createSheet.js +72 -371
  30. package/dist/esm/createSheet.js.map +2 -2
  31. package/dist/esm/helpers.js +14 -0
  32. package/dist/esm/helpers.js.map +6 -0
  33. package/dist/esm/nativeSheet.js +3 -5
  34. package/dist/esm/nativeSheet.js.map +1 -1
  35. package/dist/esm/useSheetController.js +2 -1
  36. package/dist/esm/useSheetController.js.map +1 -1
  37. package/dist/esm/useSheetProviderProps.js +31 -4
  38. package/dist/esm/useSheetProviderProps.js.map +1 -1
  39. package/dist/jsx/Sheet.js +1 -2
  40. package/dist/jsx/Sheet.js.map +1 -1
  41. package/dist/jsx/Sheet.mjs +1 -2
  42. package/dist/jsx/Sheet.mjs.map +1 -1
  43. package/dist/jsx/SheetContext.js.map +1 -1
  44. package/dist/jsx/SheetContext.mjs.map +1 -1
  45. package/dist/jsx/SheetImplementationCustom.js +330 -0
  46. package/dist/jsx/SheetImplementationCustom.js.map +6 -0
  47. package/dist/jsx/SheetImplementationCustom.mjs +330 -0
  48. package/dist/jsx/SheetImplementationCustom.mjs.map +6 -0
  49. package/dist/jsx/constants.js +8 -0
  50. package/dist/jsx/constants.js.map +1 -1
  51. package/dist/jsx/constants.mjs +8 -0
  52. package/dist/jsx/constants.mjs.map +1 -1
  53. package/dist/jsx/contexts.js +10 -0
  54. package/dist/jsx/contexts.js.map +6 -0
  55. package/dist/jsx/contexts.mjs +10 -0
  56. package/dist/jsx/contexts.mjs.map +6 -0
  57. package/dist/jsx/createSheet.js +63 -364
  58. package/dist/jsx/createSheet.js.map +2 -2
  59. package/dist/jsx/createSheet.mjs +63 -364
  60. package/dist/jsx/createSheet.mjs.map +2 -2
  61. package/dist/jsx/helpers.js +14 -0
  62. package/dist/jsx/helpers.js.map +6 -0
  63. package/dist/jsx/helpers.mjs +14 -0
  64. package/dist/jsx/helpers.mjs.map +6 -0
  65. package/dist/jsx/nativeSheet.js +3 -5
  66. package/dist/jsx/nativeSheet.js.map +1 -1
  67. package/dist/jsx/nativeSheet.mjs +3 -5
  68. package/dist/jsx/nativeSheet.mjs.map +1 -1
  69. package/dist/jsx/useSheetController.js +2 -1
  70. package/dist/jsx/useSheetController.js.map +1 -1
  71. package/dist/jsx/useSheetController.mjs +2 -1
  72. package/dist/jsx/useSheetController.mjs.map +1 -1
  73. package/dist/jsx/useSheetProviderProps.js +31 -4
  74. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  75. package/dist/jsx/useSheetProviderProps.mjs +31 -4
  76. package/dist/jsx/useSheetProviderProps.mjs.map +1 -1
  77. package/package.json +13 -13
  78. package/src/Sheet.tsx +0 -1
  79. package/src/SheetContext.tsx +1 -16
  80. package/src/SheetImplementationCustom.tsx +404 -0
  81. package/src/constants.tsx +10 -0
  82. package/src/contexts.ts +9 -0
  83. package/src/createSheet.tsx +88 -449
  84. package/src/helpers.tsx +10 -0
  85. package/src/nativeSheet.tsx +3 -5
  86. package/src/useSheetController.tsx +1 -0
  87. package/src/useSheetProviderProps.tsx +48 -7
  88. package/types/Sheet.d.ts +10 -6
  89. package/types/Sheet.d.ts.map +1 -1
  90. package/types/SheetContext.d.ts +100 -27
  91. package/types/SheetContext.d.ts.map +1 -1
  92. package/types/SheetImplementationCustom.d.ts +27 -0
  93. package/types/SheetImplementationCustom.d.ts.map +1 -0
  94. package/types/constants.d.ts +2 -0
  95. package/types/constants.d.ts.map +1 -1
  96. package/types/contexts.d.ts +6 -0
  97. package/types/contexts.d.ts.map +1 -0
  98. package/types/createSheet.d.ts +8 -4
  99. package/types/createSheet.d.ts.map +1 -1
  100. package/types/helpers.d.ts +2 -0
  101. package/types/helpers.d.ts.map +1 -0
  102. package/types/nativeSheet.d.ts.map +1 -1
  103. package/types/useSheet.d.ts +16 -6
  104. package/types/useSheet.d.ts.map +1 -1
  105. package/types/useSheetController.d.ts +1 -0
  106. package/types/useSheetController.d.ts.map +1 -1
  107. package/types/useSheetProviderProps.d.ts +8 -3
  108. package/types/useSheetProviderProps.d.ts.map +1 -1
  109. package/src/useSheetChildren.tsx +0 -49
  110. package/src/useSheetSnapPoints.tsx +0 -60
@@ -0,0 +1,330 @@
1
+ import { AdaptParentContext } from "@tamagui/adapt";
2
+ import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import {
4
+ Theme,
5
+ isTouchable,
6
+ isWeb,
7
+ themeable,
8
+ useAnimationDriver,
9
+ useEvent,
10
+ useIsomorphicLayoutEffect,
11
+ useThemeName
12
+ } from "@tamagui/core";
13
+ import { Portal } from "@tamagui/portal";
14
+ import { useKeyboardVisible } from "@tamagui/use-keyboard-visible";
15
+ import {
16
+ forwardRef,
17
+ useCallback,
18
+ useContext,
19
+ useEffect,
20
+ useMemo,
21
+ useRef,
22
+ useState
23
+ } from "react";
24
+ import {
25
+ Keyboard,
26
+ PanResponder
27
+ } from "react-native";
28
+ import { HIDDEN_SIZE, SHEET_HIDDEN_STYLESHEET } from "./constants";
29
+ import { ParentSheetContext, SheetInsideSheetContext } from "./contexts";
30
+ import { resisted } from "./helpers";
31
+ import { SheetProvider } from "./SheetContext";
32
+ import { useSheetOpenState } from "./useSheetOpenState";
33
+ import { useSheetProviderProps } from "./useSheetProviderProps";
34
+ const SheetImplementationCustom = themeable(
35
+ forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
36
+ const parentSheet = useContext(ParentSheetContext);
37
+ const {
38
+ animationConfig,
39
+ modal = false,
40
+ zIndex = parentSheet.zIndex + 1,
41
+ moveOnKeyboardChange = false,
42
+ portalProps
43
+ } = props;
44
+ const keyboardIsVisible = useKeyboardVisible();
45
+ const state = useSheetOpenState(props);
46
+ const [overlayComponent, setOverlayComponent] = useState(null);
47
+ const providerProps = useSheetProviderProps(props, state, {
48
+ onOverlayComponent: setOverlayComponent
49
+ });
50
+ const { frameSize, setFrameSize, snapPoints, position, setPosition, scrollBridge } = providerProps;
51
+ const { open, controller, isHidden } = state;
52
+ const sheetRef = useRef(null);
53
+ const ref = useComposedRefs(forwardedRef, sheetRef);
54
+ const [isShowingInnerSheet, setIsShowingInnerSheet] = useState(false);
55
+ const shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet;
56
+ const parentSheetContext = useContext(SheetInsideSheetContext);
57
+ const onInnerSheet = useCallback((hasChild) => {
58
+ setIsShowingInnerSheet(hasChild);
59
+ }, []);
60
+ const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur));
61
+ const screenSize = frameSize / (maxSnapPoint / 100);
62
+ const positions = useMemo(
63
+ () => snapPoints.map((point) => getPercentSize(point, screenSize)),
64
+ [frameSize, snapPoints]
65
+ );
66
+ const driver = useAnimationDriver();
67
+ const { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = driver;
68
+ const AnimatedView = driver["NumberView"] ?? driver.View;
69
+ useIsomorphicLayoutEffect(() => {
70
+ if (!(parentSheetContext && open))
71
+ return;
72
+ parentSheetContext(true);
73
+ return () => {
74
+ parentSheetContext(false);
75
+ };
76
+ }, [parentSheetContext, open]);
77
+ const nextParentContext = useMemo(
78
+ () => ({
79
+ zIndex
80
+ }),
81
+ [zIndex]
82
+ );
83
+ const animatedNumber = useAnimatedNumber(HIDDEN_SIZE);
84
+ const at = useRef(0);
85
+ useAnimatedNumberReaction(
86
+ {
87
+ value: animatedNumber,
88
+ hostRef: sheetRef
89
+ },
90
+ (value) => {
91
+ if (!driver.isReactNative)
92
+ return;
93
+ at.current = value;
94
+ scrollBridge.paneY = value;
95
+ }
96
+ );
97
+ function stopSpring() {
98
+ animatedNumber.stop();
99
+ if (scrollBridge.onFinishAnimate) {
100
+ scrollBridge.onFinishAnimate();
101
+ scrollBridge.onFinishAnimate = void 0;
102
+ }
103
+ }
104
+ const animateTo = useEvent((position2) => {
105
+ const current = animatedNumber.getValue();
106
+ if (isHidden && open)
107
+ return;
108
+ if (!current)
109
+ return;
110
+ if (frameSize === 0)
111
+ return;
112
+ const hiddenValue = frameSize === 0 ? HIDDEN_SIZE : screenSize;
113
+ const toValue = isHidden || position2 === -1 ? hiddenValue : positions[position2];
114
+ if (at.current === toValue)
115
+ return;
116
+ stopSpring();
117
+ if (isHidden) {
118
+ animatedNumber.setValue(toValue, {
119
+ type: "timing",
120
+ duration: 0
121
+ });
122
+ at.current = toValue;
123
+ return;
124
+ }
125
+ const overshootClamping = at.current === HIDDEN_SIZE;
126
+ animatedNumber.setValue(toValue, {
127
+ ...animationConfig,
128
+ type: "spring",
129
+ overshootClamping
130
+ });
131
+ });
132
+ useIsomorphicLayoutEffect(() => {
133
+ animateTo(position);
134
+ }, [isHidden, frameSize, position, animateTo]);
135
+ const disableDrag = props.disableDrag ?? controller?.disableDrag;
136
+ const themeName = useThemeName();
137
+ const panResponder = useMemo(
138
+ () => {
139
+ if (disableDrag)
140
+ return;
141
+ if (!frameSize)
142
+ return;
143
+ if (isShowingInnerSheet)
144
+ return;
145
+ const minY = positions[0];
146
+ scrollBridge.paneMinY = minY;
147
+ let startY = at.current;
148
+ function makeUnselectable(val) {
149
+ if (!SHEET_HIDDEN_STYLESHEET)
150
+ return;
151
+ if (!val) {
152
+ SHEET_HIDDEN_STYLESHEET.innerText = "";
153
+ } else {
154
+ SHEET_HIDDEN_STYLESHEET.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }";
155
+ }
156
+ }
157
+ const release = ({ vy, dragAt }) => {
158
+ isExternalDrag = false;
159
+ previouslyScrolling = false;
160
+ makeUnselectable(false);
161
+ const at2 = dragAt + startY;
162
+ const end = at2 + frameSize * vy * 0.2;
163
+ let closestPoint = 0;
164
+ let dist = Infinity;
165
+ for (let i = 0; i < positions.length; i++) {
166
+ const position2 = positions[i];
167
+ const curDist = end > position2 ? end - position2 : position2 - end;
168
+ if (curDist < dist) {
169
+ dist = curDist;
170
+ closestPoint = i;
171
+ }
172
+ }
173
+ setPosition(closestPoint);
174
+ animateTo(closestPoint);
175
+ };
176
+ const finish = (_e, state2) => {
177
+ release({
178
+ vy: state2.vy,
179
+ dragAt: state2.dy
180
+ });
181
+ };
182
+ let previouslyScrolling = false;
183
+ const onMoveShouldSet = (_e, { dy }) => {
184
+ const isScrolled = scrollBridge.y !== 0;
185
+ const isDraggingUp = dy < 0;
186
+ const isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
187
+ if (isScrolled) {
188
+ previouslyScrolling = true;
189
+ return false;
190
+ }
191
+ if (isNearTop) {
192
+ if (!isScrolled && isDraggingUp) {
193
+ return false;
194
+ }
195
+ }
196
+ return Math.abs(dy) > 5;
197
+ };
198
+ const grant = () => {
199
+ makeUnselectable(true);
200
+ stopSpring();
201
+ startY = at.current;
202
+ };
203
+ let isExternalDrag = false;
204
+ scrollBridge.drag = (dy) => {
205
+ if (!isExternalDrag) {
206
+ isExternalDrag = true;
207
+ grant();
208
+ }
209
+ const to = dy + startY;
210
+ animatedNumber.setValue(resisted(to, minY), { type: "direct" });
211
+ };
212
+ scrollBridge.release = release;
213
+ return PanResponder.create({
214
+ onMoveShouldSetPanResponder: onMoveShouldSet,
215
+ onPanResponderGrant: grant,
216
+ onPanResponderMove: (_e, { dy }) => {
217
+ const toFull = dy + startY;
218
+ const to = resisted(toFull, minY);
219
+ animatedNumber.setValue(to, { type: "direct" });
220
+ },
221
+ onPanResponderEnd: finish,
222
+ onPanResponderTerminate: finish,
223
+ onPanResponderRelease: finish
224
+ });
225
+ },
226
+ // eslint-disable-next-line react-hooks/exhaustive-deps
227
+ [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]
228
+ );
229
+ const handleAnimationViewLayout = useCallback(
230
+ (e) => {
231
+ let next = e.nativeEvent?.layout.height;
232
+ if (isWeb && isTouchable && !open) {
233
+ next += 100;
234
+ }
235
+ if (!next)
236
+ return;
237
+ setFrameSize(next);
238
+ },
239
+ [keyboardIsVisible]
240
+ );
241
+ const animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
242
+ "worklet";
243
+ const translateY = frameSize === 0 ? HIDDEN_SIZE : val;
244
+ return {
245
+ transform: [{ translateY }]
246
+ };
247
+ });
248
+ const sizeBeforeKeyboard = useRef(null);
249
+ useEffect(() => {
250
+ if (isWeb || !moveOnKeyboardChange)
251
+ return;
252
+ const keyboardDidShowListener = Keyboard.addListener("keyboardDidShow", (e) => {
253
+ if (sizeBeforeKeyboard.current !== null)
254
+ return;
255
+ sizeBeforeKeyboard.current = animatedNumber.getValue();
256
+ animatedNumber.setValue(
257
+ Math.max(animatedNumber.getValue() - e.endCoordinates.height, 0)
258
+ );
259
+ });
260
+ const keyboardDidHideListener = Keyboard.addListener("keyboardDidHide", () => {
261
+ if (sizeBeforeKeyboard.current === null)
262
+ return;
263
+ animatedNumber.setValue(sizeBeforeKeyboard.current);
264
+ sizeBeforeKeyboard.current = null;
265
+ });
266
+ return () => {
267
+ keyboardDidHideListener.remove();
268
+ keyboardDidShowListener.remove();
269
+ };
270
+ }, [moveOnKeyboardChange]);
271
+ const [opacity, setOpacity] = useState(open ? 1 : 0);
272
+ if (open && opacity === 0) {
273
+ setOpacity(1);
274
+ }
275
+ useEffect(() => {
276
+ if (!open) {
277
+ const tm = setTimeout(() => {
278
+ setOpacity(0);
279
+ }, 400);
280
+ return () => {
281
+ clearTimeout(tm);
282
+ };
283
+ }
284
+ }, [open]);
285
+ const contents = <ParentSheetContext.Provider value={nextParentContext}><SheetProvider {...providerProps}>
286
+ {shouldHideParentSheet ? null : overlayComponent}
287
+ <AnimatedView
288
+ ref={ref}
289
+ {...panResponder?.panHandlers}
290
+ onLayout={handleAnimationViewLayout}
291
+ pointerEvents={open && !shouldHideParentSheet ? "auto" : "none"}
292
+ animation={props.animation}
293
+ style={[
294
+ {
295
+ position: "absolute",
296
+ zIndex,
297
+ width: "100%",
298
+ height: `${maxSnapPoint}%`,
299
+ opacity
300
+ },
301
+ animatedStyle
302
+ ]}
303
+ >{props.children}</AnimatedView>
304
+ </SheetProvider></ParentSheetContext.Provider>;
305
+ const adaptContext = useContext(AdaptParentContext);
306
+ if (modal) {
307
+ const modalContents = <Portal zIndex={zIndex} {...portalProps}><Theme forceClassName name={themeName}><AdaptParentContext.Provider value={adaptContext}>{contents}</AdaptParentContext.Provider></Theme></Portal>;
308
+ if (isWeb) {
309
+ return modalContents;
310
+ }
311
+ return <SheetInsideSheetContext.Provider value={onInnerSheet}>{modalContents}</SheetInsideSheetContext.Provider>;
312
+ }
313
+ return contents;
314
+ })
315
+ );
316
+ function getPercentSize(point, screenSize) {
317
+ if (!screenSize)
318
+ return 0;
319
+ if (point === void 0) {
320
+ console.warn("No snapPoint");
321
+ return 0;
322
+ }
323
+ const pct = point / 100;
324
+ const next = Math.round(screenSize - pct * screenSize);
325
+ return next;
326
+ }
327
+ export {
328
+ SheetImplementationCustom
329
+ };
330
+ //# sourceMappingURL=SheetImplementationCustom.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SheetImplementationCustom.tsx"],
4
+ "mappings": "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",
5
+ "names": ["SheetImplementationCustom", "position", "at", "state"]
6
+ }
@@ -1,9 +1,17 @@
1
+ import { isClient } from "@tamagui/core";
1
2
  const constants = {};
2
3
  const SHEET_NAME = "Sheet";
3
4
  const SHEET_HANDLE_NAME = "SheetHandle";
4
5
  const SHEET_OVERLAY_NAME = "SheetOverlay";
6
+ const HIDDEN_SIZE = 1e4;
7
+ const SHEET_HIDDEN_STYLESHEET = isClient ? document.createElement("style") : null;
8
+ if (SHEET_HIDDEN_STYLESHEET) {
9
+ document.head.appendChild(SHEET_HIDDEN_STYLESHEET);
10
+ }
5
11
  export {
12
+ HIDDEN_SIZE,
6
13
  SHEET_HANDLE_NAME,
14
+ SHEET_HIDDEN_STYLESHEET,
7
15
  SHEET_NAME,
8
16
  SHEET_OVERLAY_NAME,
9
17
  constants
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.tsx"],
4
- "mappings": "AAAO,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;",
4
+ "mappings": "AAAA,SAAS,gBAAgB;AAElB,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAG3B,MAAM,cAAc;AAEpB,MAAM,0BAA0B,WAAW,SAAS,cAAc,OAAO,IAAI;AACpF,IAAI,yBAAyB;AAC3B,WAAS,KAAK,YAAY,uBAAuB;AACnD;",
5
5
  "names": []
6
6
  }
@@ -1,9 +1,17 @@
1
+ import { isClient } from "@tamagui/core";
1
2
  const constants = {};
2
3
  const SHEET_NAME = "Sheet";
3
4
  const SHEET_HANDLE_NAME = "SheetHandle";
4
5
  const SHEET_OVERLAY_NAME = "SheetOverlay";
6
+ const HIDDEN_SIZE = 1e4;
7
+ const SHEET_HIDDEN_STYLESHEET = isClient ? document.createElement("style") : null;
8
+ if (SHEET_HIDDEN_STYLESHEET) {
9
+ document.head.appendChild(SHEET_HIDDEN_STYLESHEET);
10
+ }
5
11
  export {
12
+ HIDDEN_SIZE,
6
13
  SHEET_HANDLE_NAME,
14
+ SHEET_HIDDEN_STYLESHEET,
7
15
  SHEET_NAME,
8
16
  SHEET_OVERLAY_NAME,
9
17
  constants
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.tsx"],
4
- "mappings": "AAAO,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;",
4
+ "mappings": "AAAA,SAAS,gBAAgB;AAElB,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAG3B,MAAM,cAAc;AAEpB,MAAM,0BAA0B,WAAW,SAAS,cAAc,OAAO,IAAI;AACpF,IAAI,yBAAyB;AAC3B,WAAS,KAAK,YAAY,uBAAuB;AACnD;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,10 @@
1
+ import { createContext } from "react";
2
+ const ParentSheetContext = createContext({
3
+ zIndex: 1e5
4
+ });
5
+ const SheetInsideSheetContext = createContext(null);
6
+ export {
7
+ ParentSheetContext,
8
+ SheetInsideSheetContext
9
+ };
10
+ //# sourceMappingURL=contexts.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/contexts.ts"],
4
+ "mappings": "AAAA,SAAS,qBAAqB;AAEvB,MAAM,qBAAqB,cAAc;AAAA,EAC9C,QAAQ;AACV,CAAC;AAEM,MAAM,0BAA0B,cAErC,IAAI;",
5
+ "names": []
6
+ }
@@ -0,0 +1,10 @@
1
+ import { createContext } from "react";
2
+ const ParentSheetContext = createContext({
3
+ zIndex: 1e5
4
+ });
5
+ const SheetInsideSheetContext = createContext(null);
6
+ export {
7
+ ParentSheetContext,
8
+ SheetInsideSheetContext
9
+ };
10
+ //# sourceMappingURL=contexts.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/contexts.ts"],
4
+ "mappings": "AAAA,SAAS,qBAAqB;AAEvB,MAAM,qBAAqB,cAAc;AAAA,EAC9C,QAAQ;AACV,CAAC;AAEM,MAAM,0BAA0B,cAErC,IAAI;",
5
+ "names": []
6
+ }