@tamagui/sheet 1.61.2 → 1.62.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 (166) hide show
  1. package/dist/cjs/Sheet.js +16 -30
  2. package/dist/cjs/Sheet.js.map +1 -1
  3. package/dist/cjs/Sheet.native.js +119 -0
  4. package/dist/cjs/Sheet.native.js.map +6 -0
  5. package/dist/cjs/SheetContext.js +7 -13
  6. package/dist/cjs/SheetContext.js.map +1 -1
  7. package/dist/cjs/SheetContext.native.js +36 -0
  8. package/dist/cjs/SheetContext.native.js.map +6 -0
  9. package/dist/cjs/SheetController.js +7 -15
  10. package/dist/cjs/SheetController.js.map +1 -1
  11. package/dist/cjs/SheetController.native.js +42 -0
  12. package/dist/cjs/SheetController.native.js.map +6 -0
  13. package/dist/cjs/SheetImplementationCustom.js +99 -240
  14. package/dist/cjs/SheetImplementationCustom.js.map +2 -2
  15. package/dist/cjs/SheetImplementationCustom.native.js +281 -0
  16. package/dist/cjs/SheetImplementationCustom.native.js.map +6 -0
  17. package/dist/cjs/SheetScrollView.js +18 -44
  18. package/dist/cjs/SheetScrollView.js.map +1 -1
  19. package/dist/cjs/SheetScrollView.native.js +69 -0
  20. package/dist/cjs/SheetScrollView.native.js.map +6 -0
  21. package/dist/cjs/constants.js +7 -17
  22. package/dist/cjs/constants.js.map +1 -1
  23. package/dist/cjs/constants.native.js +36 -0
  24. package/dist/cjs/constants.native.js.map +6 -0
  25. package/dist/cjs/contexts.js +6 -11
  26. package/dist/cjs/contexts.js.map +1 -1
  27. package/dist/cjs/contexts.native.js +31 -0
  28. package/dist/cjs/contexts.native.js.map +6 -0
  29. package/dist/cjs/createSheet.js +42 -90
  30. package/dist/cjs/createSheet.js.map +2 -2
  31. package/dist/cjs/createSheet.native.js +146 -0
  32. package/dist/cjs/createSheet.native.js.map +6 -0
  33. package/dist/cjs/helpers.js +6 -13
  34. package/dist/cjs/helpers.js.map +1 -1
  35. package/dist/cjs/helpers.native.js +32 -0
  36. package/dist/cjs/helpers.native.js.map +6 -0
  37. package/dist/cjs/index.js +6 -11
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/index.native.js +36 -0
  40. package/dist/cjs/index.native.js.map +6 -0
  41. package/dist/cjs/nativeSheet.js +25 -42
  42. package/dist/cjs/nativeSheet.js.map +1 -1
  43. package/dist/cjs/nativeSheet.native.js +55 -0
  44. package/dist/cjs/nativeSheet.native.js.map +6 -0
  45. package/dist/cjs/types.js +3 -6
  46. package/dist/cjs/types.js.map +1 -1
  47. package/dist/cjs/types.native.js +15 -0
  48. package/dist/cjs/types.native.js.map +6 -0
  49. package/dist/cjs/useSheet.js +5 -9
  50. package/dist/cjs/useSheet.js.map +1 -1
  51. package/dist/cjs/useSheet.native.js +27 -0
  52. package/dist/cjs/useSheet.native.js.map +6 -0
  53. package/dist/cjs/useSheetController.js +8 -15
  54. package/dist/cjs/useSheetController.js.map +1 -1
  55. package/dist/cjs/useSheetController.native.js +39 -0
  56. package/dist/cjs/useSheetController.native.js.map +6 -0
  57. package/dist/cjs/useSheetOffscreenSize.js +13 -30
  58. package/dist/cjs/useSheetOffscreenSize.js.map +2 -2
  59. package/dist/cjs/useSheetOffscreenSize.native.js +48 -0
  60. package/dist/cjs/useSheetOffscreenSize.native.js.map +6 -0
  61. package/dist/cjs/useSheetOpenState.js +12 -21
  62. package/dist/cjs/useSheetOpenState.js.map +1 -1
  63. package/dist/cjs/useSheetOpenState.native.js +43 -0
  64. package/dist/cjs/useSheetOpenState.native.js.map +6 -0
  65. package/dist/cjs/useSheetProviderProps.js +44 -96
  66. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  67. package/dist/cjs/useSheetProviderProps.native.js +116 -0
  68. package/dist/cjs/useSheetProviderProps.native.js.map +6 -0
  69. package/dist/esm/Sheet.js +9 -14
  70. package/dist/esm/Sheet.js.map +1 -1
  71. package/dist/esm/SheetContext.js +1 -2
  72. package/dist/esm/SheetContext.js.map +1 -1
  73. package/dist/esm/SheetController.js +2 -3
  74. package/dist/esm/SheetController.js.map +1 -1
  75. package/dist/esm/SheetImplementationCustom.js +95 -217
  76. package/dist/esm/SheetImplementationCustom.js.map +2 -2
  77. package/dist/esm/SheetScrollView.js +13 -31
  78. package/dist/esm/SheetScrollView.js.map +1 -1
  79. package/dist/esm/constants.js +2 -8
  80. package/dist/esm/constants.js.map +1 -1
  81. package/dist/esm/contexts.js +1 -2
  82. package/dist/esm/contexts.js.map +1 -1
  83. package/dist/esm/createSheet.js +38 -70
  84. package/dist/esm/createSheet.js.map +2 -2
  85. package/dist/esm/helpers.js +1 -4
  86. package/dist/esm/helpers.js.map +1 -1
  87. package/dist/esm/nativeSheet.js +20 -27
  88. package/dist/esm/nativeSheet.js.map +1 -1
  89. package/dist/esm/useSheetController.js +3 -6
  90. package/dist/esm/useSheetController.js.map +1 -1
  91. package/dist/esm/useSheetOffscreenSize.js +8 -21
  92. package/dist/esm/useSheetOffscreenSize.js.map +2 -2
  93. package/dist/esm/useSheetOpenState.js +6 -10
  94. package/dist/esm/useSheetOpenState.js.map +1 -1
  95. package/dist/esm/useSheetProviderProps.js +36 -79
  96. package/dist/esm/useSheetProviderProps.js.map +1 -1
  97. package/dist/jsx/Sheet.js +9 -14
  98. package/dist/jsx/Sheet.js.map +1 -1
  99. package/dist/jsx/Sheet.native.js +95 -0
  100. package/dist/jsx/Sheet.native.js.map +6 -0
  101. package/dist/jsx/SheetContext.js +1 -2
  102. package/dist/jsx/SheetContext.js.map +1 -1
  103. package/dist/jsx/SheetContext.native.js +13 -0
  104. package/dist/jsx/SheetContext.native.js.map +6 -0
  105. package/dist/jsx/SheetController.js +1 -2
  106. package/dist/jsx/SheetController.js.map +1 -1
  107. package/dist/jsx/SheetController.native.js +23 -0
  108. package/dist/jsx/SheetController.native.js.map +6 -0
  109. package/dist/jsx/SheetImplementationCustom.js +90 -210
  110. package/dist/jsx/SheetImplementationCustom.js.map +2 -2
  111. package/dist/jsx/SheetImplementationCustom.native.js +288 -0
  112. package/dist/jsx/SheetImplementationCustom.native.js.map +6 -0
  113. package/dist/jsx/SheetScrollView.js +12 -30
  114. package/dist/jsx/SheetScrollView.js.map +1 -1
  115. package/dist/jsx/SheetScrollView.native.js +47 -0
  116. package/dist/jsx/SheetScrollView.native.js.map +6 -0
  117. package/dist/jsx/constants.js +2 -8
  118. package/dist/jsx/constants.js.map +1 -1
  119. package/dist/jsx/constants.native.js +11 -0
  120. package/dist/jsx/constants.native.js.map +6 -0
  121. package/dist/jsx/contexts.js +1 -2
  122. package/dist/jsx/contexts.js.map +1 -1
  123. package/dist/jsx/contexts.native.js +9 -0
  124. package/dist/jsx/contexts.native.js.map +6 -0
  125. package/dist/jsx/createSheet.js +30 -61
  126. package/dist/jsx/createSheet.js.map +2 -2
  127. package/dist/jsx/createSheet.native.js +128 -0
  128. package/dist/jsx/createSheet.native.js.map +6 -0
  129. package/dist/jsx/helpers.js +1 -4
  130. package/dist/jsx/helpers.js.map +1 -1
  131. package/dist/jsx/helpers.native.js +11 -0
  132. package/dist/jsx/helpers.native.js.map +6 -0
  133. package/dist/jsx/index.native.js +10 -0
  134. package/dist/jsx/index.native.js.map +6 -0
  135. package/dist/jsx/nativeSheet.js +21 -27
  136. package/dist/jsx/nativeSheet.js.map +1 -1
  137. package/dist/jsx/nativeSheet.native.js +40 -0
  138. package/dist/jsx/nativeSheet.native.js.map +6 -0
  139. package/dist/jsx/types.native.js +1 -0
  140. package/dist/jsx/types.native.js.map +6 -0
  141. package/dist/jsx/useSheet.native.js +6 -0
  142. package/dist/jsx/useSheet.native.js.map +6 -0
  143. package/dist/jsx/useSheetController.js +2 -5
  144. package/dist/jsx/useSheetController.js.map +1 -1
  145. package/dist/jsx/useSheetController.native.js +17 -0
  146. package/dist/jsx/useSheetController.native.js.map +6 -0
  147. package/dist/jsx/useSheetOffscreenSize.js +8 -21
  148. package/dist/jsx/useSheetOffscreenSize.js.map +2 -2
  149. package/dist/jsx/useSheetOffscreenSize.native.js +27 -0
  150. package/dist/jsx/useSheetOffscreenSize.native.js.map +6 -0
  151. package/dist/jsx/useSheetOpenState.js +5 -8
  152. package/dist/jsx/useSheetOpenState.js.map +1 -1
  153. package/dist/jsx/useSheetOpenState.native.js +23 -0
  154. package/dist/jsx/useSheetOpenState.native.js.map +6 -0
  155. package/dist/jsx/useSheetProviderProps.js +36 -79
  156. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  157. package/dist/jsx/useSheetProviderProps.native.js +90 -0
  158. package/dist/jsx/useSheetProviderProps.native.js.map +6 -0
  159. package/package.json +14 -14
  160. package/src/SheetImplementationCustom.tsx +21 -3
  161. package/src/createSheet.tsx +21 -3
  162. package/types/Sheet.d.ts +2 -0
  163. package/types/Sheet.d.ts.map +1 -1
  164. package/types/SheetImplementationCustom.d.ts.map +1 -1
  165. package/types/createSheet.d.ts +22 -0
  166. package/types/createSheet.d.ts.map +1 -1
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var SheetImplementationCustom_exports = {};
17
+ __export(SheetImplementationCustom_exports, {
18
+ SheetImplementationCustom: () => SheetImplementationCustom
19
+ });
20
+ module.exports = __toCommonJS(SheetImplementationCustom_exports);
21
+ var import_adapt = require("@tamagui/adapt"), import_animate_presence = require("@tamagui/animate-presence"), import_compose_refs = require("@tamagui/compose-refs"), import_core = require("@tamagui/core"), import_portal = require("@tamagui/portal"), import_use_keyboard_visible = require("@tamagui/use-keyboard-visible"), import_react = require("react"), import_react_native = require("react-native"), import_constants = require("./constants"), import_contexts = require("./contexts"), import_helpers = require("./helpers"), import_SheetContext = require("./SheetContext"), import_useSheetOpenState = require("./useSheetOpenState"), import_useSheetProviderProps = require("./useSheetProviderProps"), import_jsx_runtime = require("react/jsx-runtime");
22
+ let hiddenSize = 10000.1;
23
+ const SheetImplementationCustom = (0, import_core.themeable)(
24
+ (0, import_react.forwardRef)(function(props, forwardedRef) {
25
+ const parentSheet = (0, import_react.useContext)(import_contexts.ParentSheetContext), {
26
+ animation,
27
+ animationConfig: animationConfigProp,
28
+ modal = !1,
29
+ zIndex = parentSheet.zIndex + 1,
30
+ moveOnKeyboardChange = !1,
31
+ unmountChildrenWhenHidden = !1,
32
+ portalProps
33
+ } = props, keyboardIsVisible = (0, import_use_keyboard_visible.useKeyboardVisible)(), state = (0, import_useSheetOpenState.useSheetOpenState)(props), [overlayComponent, setOverlayComponent] = (0, import_react.useState)(null), providerProps = (0, import_useSheetProviderProps.useSheetProviderProps)(props, state, {
34
+ onOverlayComponent: setOverlayComponent
35
+ }), {
36
+ frameSize,
37
+ setFrameSize,
38
+ snapPoints,
39
+ snapPointsMode,
40
+ hasFit,
41
+ position,
42
+ setPosition,
43
+ scrollBridge,
44
+ screenSize,
45
+ setMaxContentSize,
46
+ maxSnapPoint
47
+ } = providerProps, { open, controller, isHidden } = state, sheetRef = (0, import_react.useRef)(null), ref = (0, import_compose_refs.useComposedRefs)(forwardedRef, sheetRef), animationConfig = (() => {
48
+ const [animationProp, animationPropConfig] = animation ? Array.isArray(animation) ? animation : [animation] : [];
49
+ return animationConfigProp ?? (animationProp ? {
50
+ ...(0, import_core.getConfig)().animations.animations[animationProp],
51
+ ...animationPropConfig
52
+ } : null);
53
+ })(), [isShowingInnerSheet, setIsShowingInnerSheet] = (0, import_react.useState)(!1), shouldHideParentSheet = !import_core.isWeb && modal && isShowingInnerSheet, parentSheetContext = (0, import_react.useContext)(import_contexts.SheetInsideSheetContext), onInnerSheet = (0, import_react.useCallback)((hasChild) => {
54
+ setIsShowingInnerSheet(hasChild);
55
+ }, []), positions = (0, import_react.useMemo)(
56
+ () => snapPoints.map(
57
+ (point) => getYPositions(snapPointsMode, point, screenSize, frameSize)
58
+ ),
59
+ [screenSize, frameSize, snapPoints, snapPointsMode]
60
+ ), driver = (0, import_core.useAnimationDriver)(), { useAnimatedNumber, useAnimatedNumberStyle, useAnimatedNumberReaction } = driver, AnimatedView = driver.View;
61
+ (0, import_core.useIsomorphicLayoutEffect)(() => {
62
+ if (parentSheetContext && open)
63
+ return parentSheetContext(!0), () => {
64
+ parentSheetContext(!1);
65
+ };
66
+ }, [parentSheetContext, open]);
67
+ const nextParentContext = (0, import_react.useMemo)(
68
+ () => ({
69
+ zIndex
70
+ }),
71
+ [zIndex]
72
+ ), animatedNumber = useAnimatedNumber(hiddenSize), at = (0, import_react.useRef)(hiddenSize);
73
+ useAnimatedNumberReaction(
74
+ {
75
+ value: animatedNumber,
76
+ hostRef: sheetRef
77
+ },
78
+ (0, import_react.useCallback)((value) => {
79
+ driver.isReactNative && (at.current = value, scrollBridge.paneY = value);
80
+ }, [])
81
+ );
82
+ function stopSpring() {
83
+ animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
84
+ }
85
+ const hasntMeasured = at.current === hiddenSize, animateTo = (0, import_core.useEvent)((position2) => {
86
+ if (frameSize === 0)
87
+ return;
88
+ let toValue = isHidden || position2 === -1 ? screenSize : positions[position2];
89
+ if (at.current !== toValue) {
90
+ if (at.current = toValue, stopSpring(), hasntMeasured || isHidden) {
91
+ if (animatedNumber.setValue(screenSize, {
92
+ type: "timing",
93
+ duration: 0
94
+ }), isHidden)
95
+ return;
96
+ toValue = positions[position2], at.current = toValue;
97
+ }
98
+ animatedNumber.setValue(toValue, {
99
+ type: "spring",
100
+ ...animationConfig
101
+ });
102
+ }
103
+ });
104
+ (0, import_core.useIsomorphicLayoutEffect)(() => {
105
+ screenSize && hasntMeasured && animatedNumber.setValue(screenSize, {
106
+ type: "timing",
107
+ duration: 0
108
+ });
109
+ }, [hasntMeasured, screenSize]), (0, import_core.useIsomorphicLayoutEffect)(() => {
110
+ !frameSize || !screenSize || isHidden || hasntMeasured && !open || animateTo(position);
111
+ }, [isHidden, frameSize, screenSize, open, position]);
112
+ const disableDrag = props.disableDrag ?? controller?.disableDrag, themeName = (0, import_core.useThemeName)(), panResponder = (0, import_react.useMemo)(
113
+ () => {
114
+ if (disableDrag || !frameSize || isShowingInnerSheet)
115
+ return;
116
+ const minY = positions[0];
117
+ scrollBridge.paneMinY = minY;
118
+ let startY = at.current;
119
+ function makeUnselectable(val) {
120
+ import_constants.SHEET_HIDDEN_STYLESHEET && (val ? import_constants.SHEET_HIDDEN_STYLESHEET.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }" : import_constants.SHEET_HIDDEN_STYLESHEET.innerText = "");
121
+ }
122
+ const release = ({ vy, dragAt }) => {
123
+ isExternalDrag = !1, previouslyScrolling = !1, makeUnselectable(!1);
124
+ const end = dragAt + startY + frameSize * vy * 0.2;
125
+ let closestPoint = 0, dist = 1 / 0;
126
+ for (let i = 0; i < positions.length; i++) {
127
+ const position2 = positions[i], curDist = end > position2 ? end - position2 : position2 - end;
128
+ curDist < dist && (dist = curDist, closestPoint = i);
129
+ }
130
+ setPosition(closestPoint), animateTo(closestPoint);
131
+ }, finish = (_e, state2) => {
132
+ release({
133
+ vy: state2.vy,
134
+ dragAt: state2.dy
135
+ });
136
+ };
137
+ let previouslyScrolling = !1;
138
+ const onMoveShouldSet = (_e, { dy }) => {
139
+ const isScrolled = scrollBridge.y !== 0, isDraggingUp = dy < 0, isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
140
+ return isScrolled ? (previouslyScrolling = !0, !1) : isNearTop && !isScrolled && isDraggingUp ? !1 : Math.abs(dy) > 5;
141
+ }, grant = () => {
142
+ makeUnselectable(!0), stopSpring(), startY = at.current;
143
+ };
144
+ let isExternalDrag = !1;
145
+ return scrollBridge.drag = (dy) => {
146
+ isExternalDrag || (isExternalDrag = !0, grant());
147
+ const to = dy + startY;
148
+ animatedNumber.setValue((0, import_helpers.resisted)(to, minY), { type: "direct" });
149
+ }, scrollBridge.release = release, import_react_native.PanResponder.create({
150
+ onMoveShouldSetPanResponder: onMoveShouldSet,
151
+ onPanResponderGrant: grant,
152
+ onPanResponderMove: (_e, { dy }) => {
153
+ const toFull = dy + startY, to = (0, import_helpers.resisted)(toFull, minY);
154
+ animatedNumber.setValue(to, { type: "direct" });
155
+ },
156
+ onPanResponderEnd: finish,
157
+ onPanResponderTerminate: finish,
158
+ onPanResponderRelease: finish
159
+ });
160
+ },
161
+ // eslint-disable-next-line react-hooks/exhaustive-deps
162
+ [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]
163
+ ), handleAnimationViewLayout = (0, import_react.useCallback)(
164
+ (e) => {
165
+ const next = (() => {
166
+ let _ = e.nativeEvent?.layout.height;
167
+ return import_core.isWeb && import_core.isTouchable && !open && (_ += 100), _;
168
+ })();
169
+ next && setFrameSize(next);
170
+ },
171
+ [keyboardIsVisible]
172
+ ), handleMaxContentViewLayout = (0, import_react.useCallback)(
173
+ (e) => {
174
+ const next = e.nativeEvent?.layout.height;
175
+ next && setMaxContentSize(next);
176
+ },
177
+ [keyboardIsVisible]
178
+ ), animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
179
+ "worklet";
180
+ return {
181
+ transform: [{ translateY: frameSize === 0 ? hiddenSize : val }]
182
+ };
183
+ }), sizeBeforeKeyboard = (0, import_react.useRef)(null);
184
+ (0, import_react.useEffect)(() => {
185
+ if (import_core.isWeb || !moveOnKeyboardChange)
186
+ return;
187
+ const keyboardDidShowListener = import_react_native.Keyboard.addListener("keyboardDidShow", (e) => {
188
+ sizeBeforeKeyboard.current === null && (sizeBeforeKeyboard.current = animatedNumber.getValue(), animatedNumber.setValue(
189
+ Math.max(animatedNumber.getValue() - e.endCoordinates.height, 0)
190
+ ));
191
+ }), keyboardDidHideListener = import_react_native.Keyboard.addListener("keyboardDidHide", () => {
192
+ sizeBeforeKeyboard.current !== null && (animatedNumber.setValue(sizeBeforeKeyboard.current), sizeBeforeKeyboard.current = null);
193
+ });
194
+ return () => {
195
+ keyboardDidHideListener.remove(), keyboardDidShowListener.remove();
196
+ };
197
+ }, [moveOnKeyboardChange]);
198
+ const [opacity, setOpacity] = (0, import_react.useState)(open ? 1 : 0);
199
+ open && opacity === 0 && setOpacity(1), (0, import_react.useEffect)(() => {
200
+ if (!open) {
201
+ const tm = setTimeout(() => {
202
+ setOpacity(0);
203
+ }, 400);
204
+ return () => {
205
+ clearTimeout(tm);
206
+ };
207
+ }
208
+ }, [open]);
209
+ const forcedContentHeight = hasFit ? void 0 : snapPointsMode === "percent" ? `${maxSnapPoint}%` : maxSnapPoint, contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_contexts.ParentSheetContext.Provider, { value: nextParentContext, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_SheetContext.SheetProvider, { ...providerProps, children: [
210
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_animate_presence.AnimatePresence, { enterExitVariant: "open", children: shouldHideParentSheet || !open ? null : overlayComponent }),
211
+ snapPointsMode !== "percent" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
212
+ import_react_native.View,
213
+ {
214
+ style: {
215
+ opacity: 0,
216
+ position: "absolute",
217
+ top: 0,
218
+ left: 0,
219
+ right: 0,
220
+ bottom: 0,
221
+ pointerEvents: "none"
222
+ },
223
+ pointerEvents: "none",
224
+ onLayout: handleMaxContentViewLayout
225
+ }
226
+ ),
227
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
228
+ AnimatedView,
229
+ {
230
+ ref,
231
+ ...panResponder?.panHandlers,
232
+ onLayout: handleAnimationViewLayout,
233
+ pointerEvents: open && !shouldHideParentSheet ? "auto" : "none",
234
+ style: [
235
+ {
236
+ position: "absolute",
237
+ zIndex,
238
+ width: "100%",
239
+ height: forcedContentHeight,
240
+ minHeight: forcedContentHeight,
241
+ opacity
242
+ },
243
+ animatedStyle
244
+ ],
245
+ children: props.children
246
+ }
247
+ )
248
+ ] }) }), adaptContext = (0, import_react.useContext)(import_adapt.AdaptParentContext), shouldMountChildren = !!(opacity || !unmountChildrenWhenHidden);
249
+ if (modal) {
250
+ const modalContents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.Portal, { zIndex, ...portalProps, children: shouldMountChildren && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Theme, { forceClassName: !0, name: themeName, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptParentContext.Provider, { value: adaptContext, children: contents }) }) });
251
+ return import_core.isWeb ? modalContents : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_contexts.SheetInsideSheetContext.Provider, { value: onInnerSheet, children: modalContents });
252
+ }
253
+ return contents;
254
+ })
255
+ );
256
+ function getYPositions(mode, point, screenSize, frameSize) {
257
+ if (!screenSize || !frameSize)
258
+ return 0;
259
+ if (mode === "mixed") {
260
+ if (typeof point == "number")
261
+ return screenSize - Math.min(screenSize, Math.max(0, point));
262
+ if (point === "fit")
263
+ return screenSize - frameSize;
264
+ if (point.endsWith("%")) {
265
+ const pct2 = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100;
266
+ return Number.isNaN(pct2) ? (console.warn("Invalid snapPoint percentage string"), 0) : Math.round(screenSize - pct2 * screenSize);
267
+ }
268
+ return console.warn("Invalid snapPoint unknown value"), 0;
269
+ }
270
+ if (mode === "fit")
271
+ return point === 0 ? screenSize : screenSize - Math.min(screenSize, frameSize);
272
+ if (mode === "constant" && typeof point == "number")
273
+ return screenSize - Math.min(screenSize, Math.max(0, point));
274
+ const pct = Math.min(100, Math.max(0, Number(point))) / 100;
275
+ return Number.isNaN(pct) ? (console.warn("Invalid snapPoint percentage"), 0) : Math.round(screenSize - pct * screenSize);
276
+ }
277
+ // Annotate the CommonJS export names for ESM import in node:
278
+ 0 && (module.exports = {
279
+ SheetImplementationCustom
280
+ });
281
+ //# sourceMappingURL=SheetImplementationCustom.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SheetImplementationCustom.tsx"],
4
+ "mappings": "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",
5
+ "names": ["position", "state", "pct"]
6
+ }
@@ -1,61 +1,42 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
5
  var __export = (target, all) => {
7
6
  for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
12
10
  for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
12
  return to;
17
13
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
19
15
  var SheetScrollView_exports = {};
20
16
  __export(SheetScrollView_exports, {
21
17
  SheetScrollView: () => SheetScrollView
22
18
  });
23
19
  module.exports = __toCommonJS(SheetScrollView_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_core = require("@tamagui/core");
26
- var import_scroll_view = require("@tamagui/scroll-view");
27
- var import_react = require("react");
28
- var import_SheetContext = require("./SheetContext");
29
- const SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
30
- const SheetScrollView = (0, import_react.forwardRef)(
20
+ var import_core = require("@tamagui/core"), import_scroll_view = require("@tamagui/scroll-view"), import_react = require("react"), import_SheetContext = require("./SheetContext"), import_jsx_runtime = require("react/jsx-runtime");
21
+ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = (0, import_react.forwardRef)(
31
22
  ({ __scopeSheet, children, ...props }, ref) => {
32
- const context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet);
33
- const { scrollBridge } = context;
34
- const scrollRef = (0, import_react.useRef)(null);
35
- const state = (0, import_react.useRef)({
23
+ const context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge } = context, scrollRef = (0, import_react.useRef)(null), state = (0, import_react.useRef)({
36
24
  lastPageY: 0,
37
25
  dragAt: 0,
38
26
  dys: [],
39
27
  // store a few recent dys to get velocity on release
40
- isScrolling: false,
41
- isDragging: false
42
- });
43
- const release = () => {
44
- if (!state.current.isDragging) {
28
+ isScrolling: !1,
29
+ isDragging: !1
30
+ }), release = () => {
31
+ if (!state.current.isDragging)
45
32
  return;
46
- }
47
- state.current.isDragging = false;
48
- scrollBridge.scrollStartY = -1;
49
- state.current.isScrolling = false;
33
+ state.current.isDragging = !1, scrollBridge.scrollStartY = -1, state.current.isScrolling = !1;
50
34
  let vy = 0;
51
35
  if (state.current.dys.length) {
52
36
  const recentDys = state.current.dys.slice(-10);
53
- const dist = recentDys.length ? recentDys.reduce((a, b) => a + b, 0) : 0;
54
- const avgDy = dist / recentDys.length;
55
- vy = avgDy * 0.04;
37
+ vy = (recentDys.length ? recentDys.reduce((a, b) => a + b, 0) : 0) / recentDys.length * 0.04;
56
38
  }
57
- state.current.dys = [];
58
- scrollBridge.release({
39
+ state.current.dys = [], scrollBridge.release({
59
40
  dragAt: state.current.dragAt,
60
41
  vy
61
42
  });
@@ -68,17 +49,10 @@ const SheetScrollView = (0, import_react.forwardRef)(
68
49
  scrollEventThrottle: 8,
69
50
  onScroll: (e) => {
70
51
  const { y } = e.nativeEvent.contentOffset;
71
- scrollBridge.y = y;
72
- if (y > 0) {
73
- scrollBridge.scrollStartY = -1;
74
- }
75
- },
76
- onStartShouldSetResponder: () => {
77
- scrollBridge.scrollStartY = -1;
78
- state.current.isDragging = true;
79
- return true;
52
+ scrollBridge.y = y, y > 0 && (scrollBridge.scrollStartY = -1);
80
53
  },
81
- onMoveShouldSetResponder: () => false,
54
+ onStartShouldSetResponder: () => (scrollBridge.scrollStartY = -1, state.current.isDragging = !0, !0),
55
+ onMoveShouldSetResponder: () => !1,
82
56
  onResponderRelease: release,
83
57
  className: "_ovs-contain",
84
58
  ...props,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SheetScrollView.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkEM;AAlEN,kBAAoC;AACpC,yBAA4C;AAC5C,mBAA4C;AAG5C,0BAAgC;AAShC,MAAM,yBAAyB;AAExB,MAAM,sBAAkB;AAAA,EAC7B,CAAC,EAAE,cAAc,UAAU,GAAG,MAAM,GAAsC,QAAQ;AAChF,UAAM,cAAU,qCAAgB,wBAAwB,YAAY;AACpE,UAAM,EAAE,aAAa,IAAI;AAEzB,UAAM,gBAAY,qBAA4B,IAAI;AAclD,UAAM,YAAQ,qBAAO;AAAA,MACnB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,KAAK,CAAC;AAAA;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,IACd,CAAC;AAED,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,MAAM,QAAQ,YAAY;AAC7B;AAAA,MACF;AACA,YAAM,QAAQ,aAAa;AAC3B,mBAAa,eAAe;AAC5B,YAAM,QAAQ,cAAc;AAE5B,UAAI,KAAK;AACT,UAAI,MAAM,QAAQ,IAAI,QAAQ;AAC5B,cAAM,YAAY,MAAM,QAAQ,IAAI,MAAM,GAAG;AAC7C,cAAM,OAAO,UAAU,SAAS,UAAU,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI;AACvE,cAAM,QAAQ,OAAO,UAAU;AAC/B,aAAK,QAAQ;AAAA,MACf;AACA,YAAM,QAAQ,MAAM,CAAC;AACrB,mBAAa,QAAQ;AAAA,QACnB,QAAQ,MAAM,QAAQ;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,SAAK,yBAAY,WAAkB,GAAG;AAAA,QACtC,MAAM;AAAA,QACN,qBAAqB;AAAA,QAErB,UAAU,CAAC,MAAM;AACf,gBAAM,EAAE,EAAE,IAAI,EAAE,YAAY;AAC5B,uBAAa,IAAI;AACjB,cAAI,IAAI,GAAG;AACT,yBAAa,eAAe;AAAA,UAC9B;AAAA,QACF;AAAA,QACA,2BAA2B,MAAM;AAC/B,uBAAa,eAAe;AAC5B,gBAAM,QAAQ,aAAa;AAC3B,iBAAO;AAAA,QACT;AAAA,QAEA,0BAA0B,MAAM;AAAA,QAmChC,oBAAoB;AAAA,QACpB,WAAU;AAAA,QACT,GAAG;AAAA,QAEH,oCAAQ,MAAM,UAAU,CAAC,QAAQ,CAAC;AAAA;AAAA,IACrC;AAAA,EAEJ;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAoC,0BACpC,qBAA4C,iCAC5C,eAA4C,kBAG5C,sBAAgC,2BA6D1B;AApDN,MAAM,yBAAyB,mBAElB,sBAAkB;AAAA,EAC7B,CAAC,EAAE,cAAc,UAAU,GAAG,MAAM,GAAsC,QAAQ;AAChF,UAAM,cAAU,qCAAgB,wBAAwB,YAAY,GAC9D,EAAE,aAAa,IAAI,SAEnB,gBAAY,qBAA4B,IAAI,GAc5C,YAAQ,qBAAO;AAAA,MACnB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,KAAK,CAAC;AAAA;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,IACd,CAAC,GAEK,UAAU,MAAM;AACpB,UAAI,CAAC,MAAM,QAAQ;AACjB;AAEF,YAAM,QAAQ,aAAa,IAC3B,aAAa,eAAe,IAC5B,MAAM,QAAQ,cAAc;AAE5B,UAAI,KAAK;AACT,UAAI,MAAM,QAAQ,IAAI,QAAQ;AAC5B,cAAM,YAAY,MAAM,QAAQ,IAAI,MAAM,GAAG;AAG7C,cAFa,UAAU,SAAS,UAAU,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,KAClD,UAAU,SAClB;AAAA,MACf;AACA,YAAM,QAAQ,MAAM,CAAC,GACrB,aAAa,QAAQ;AAAA,QACnB,QAAQ,MAAM,QAAQ;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,SAAK,yBAAY,WAAkB,GAAG;AAAA,QACtC,MAAM;AAAA,QACN,qBAAqB;AAAA,QAErB,UAAU,CAAC,MAAM;AACf,gBAAM,EAAE,EAAE,IAAI,EAAE,YAAY;AAC5B,uBAAa,IAAI,GACb,IAAI,MACN,aAAa,eAAe;AAAA,QAEhC;AAAA,QACA,2BAA2B,OACzB,aAAa,eAAe,IAC5B,MAAM,QAAQ,aAAa,IACpB;AAAA,QAGT,0BAA0B,MAAM;AAAA,QAmChC,oBAAoB;AAAA,QACpB,WAAU;AAAA,QACT,GAAG;AAAA,QAEH,oCAAQ,MAAM,UAAU,CAAC,QAAQ,CAAC;AAAA;AAAA,IACrC;AAAA,EAEJ;AACF;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var SheetScrollView_exports = {};
17
+ __export(SheetScrollView_exports, {
18
+ SheetScrollView: () => SheetScrollView
19
+ });
20
+ module.exports = __toCommonJS(SheetScrollView_exports);
21
+ var import_core = require("@tamagui/core"), import_scroll_view = require("@tamagui/scroll-view"), import_react = require("react"), import_SheetContext = require("./SheetContext"), import_jsx_runtime = require("react/jsx-runtime");
22
+ const SHEET_SCROLL_VIEW_NAME = "SheetScrollView", SheetScrollView = (0, import_react.forwardRef)(
23
+ ({ __scopeSheet, children, ...props }, ref) => {
24
+ const context = (0, import_SheetContext.useSheetContext)(SHEET_SCROLL_VIEW_NAME, __scopeSheet), { scrollBridge } = context, scrollRef = (0, import_react.useRef)(null), state = (0, import_react.useRef)({
25
+ lastPageY: 0,
26
+ dragAt: 0,
27
+ dys: [],
28
+ // store a few recent dys to get velocity on release
29
+ isScrolling: !1,
30
+ isDragging: !1
31
+ }), release = () => {
32
+ if (!state.current.isDragging)
33
+ return;
34
+ state.current.isDragging = !1, scrollBridge.scrollStartY = -1, state.current.isScrolling = !1;
35
+ let vy = 0;
36
+ if (state.current.dys.length) {
37
+ const recentDys = state.current.dys.slice(-10);
38
+ vy = (recentDys.length ? recentDys.reduce((a, b) => a + b, 0) : 0) / recentDys.length * 0.04;
39
+ }
40
+ state.current.dys = [], scrollBridge.release({
41
+ dragAt: state.current.dragAt,
42
+ vy
43
+ });
44
+ };
45
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
46
+ import_scroll_view.ScrollView,
47
+ {
48
+ ref: (0, import_core.composeRefs)(scrollRef, ref),
49
+ flex: 1,
50
+ scrollEventThrottle: 8,
51
+ onScroll: (e) => {
52
+ const { y } = e.nativeEvent.contentOffset;
53
+ scrollBridge.y = y, y > 0 && (scrollBridge.scrollStartY = -1);
54
+ },
55
+ onStartShouldSetResponder: () => (scrollBridge.scrollStartY = -1, state.current.isDragging = !0, !0),
56
+ onMoveShouldSetResponder: () => !1,
57
+ onResponderRelease: release,
58
+ className: "_ovs-contain",
59
+ ...props,
60
+ children: (0, import_react.useMemo)(() => children, [children])
61
+ }
62
+ );
63
+ }
64
+ );
65
+ // Annotate the CommonJS export names for ESM import in node:
66
+ 0 && (module.exports = {
67
+ SheetScrollView
68
+ });
69
+ //# sourceMappingURL=SheetScrollView.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/SheetScrollView.tsx"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAoC,0BACpC,qBAA4C,iCAC5C,eAA4C,kBAG5C,sBAAgC,2BA6D1B;AApDN,MAAM,yBAAyB,mBAElB,sBAAkB;AAAA,EAC7B,CAAC,EAAE,cAAc,UAAU,GAAG,MAAM,GAAsC,QAAQ;AAChF,UAAM,cAAU,qCAAgB,wBAAwB,YAAY,GAC9D,EAAE,aAAa,IAAI,SAEnB,gBAAY,qBAA4B,IAAI,GAc5C,YAAQ,qBAAO;AAAA,MACnB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,KAAK,CAAC;AAAA;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,IACd,CAAC,GAEK,UAAU,MAAM;AACpB,UAAI,CAAC,MAAM,QAAQ;AACjB;AAEF,YAAM,QAAQ,aAAa,IAC3B,aAAa,eAAe,IAC5B,MAAM,QAAQ,cAAc;AAE5B,UAAI,KAAK;AACT,UAAI,MAAM,QAAQ,IAAI,QAAQ;AAC5B,cAAM,YAAY,MAAM,QAAQ,IAAI,MAAM,GAAG;AAG7C,cAFa,UAAU,SAAS,UAAU,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,KAClD,UAAU,SAClB;AAAA,MACf;AACA,YAAM,QAAQ,MAAM,CAAC,GACrB,aAAa,QAAQ;AAAA,QACnB,QAAQ,MAAM,QAAQ;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,SAAK,yBAAY,WAAkB,GAAG;AAAA,QACtC,MAAM;AAAA,QACN,qBAAqB;AAAA,QAErB,UAAU,CAAC,MAAM;AACf,gBAAM,EAAE,EAAE,IAAI,EAAE,YAAY;AAC5B,uBAAa,IAAI,GACb,IAAI,MACN,aAAa,eAAe;AAAA,QAEhC;AAAA,QACA,2BAA2B,OACzB,aAAa,eAAe,IAC5B,MAAM,QAAQ,aAAa,IACpB;AAAA,QAGT,0BAA0B,MAAM;AAAA,QAmChC,oBAAoB;AAAA,QACpB,WAAU;AAAA,QACT,GAAG;AAAA,QAEH,oCAAQ,MAAM,UAAU,CAAC,QAAQ,CAAC;AAAA;AAAA,IACrC;AAAA,EAEJ;AACF;",
5
+ "names": []
6
+ }
@@ -1,21 +1,17 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
5
  var __export = (target, all) => {
7
6
  for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
12
10
  for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
12
  return to;
17
13
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
19
15
  var constants_exports = {};
20
16
  __export(constants_exports, {
21
17
  SHEET_HANDLE_NAME: () => SHEET_HANDLE_NAME,
@@ -26,14 +22,8 @@ __export(constants_exports, {
26
22
  });
27
23
  module.exports = __toCommonJS(constants_exports);
28
24
  var import_core = require("@tamagui/core");
29
- const constants = {};
30
- const SHEET_NAME = "Sheet";
31
- const SHEET_HANDLE_NAME = "SheetHandle";
32
- const SHEET_OVERLAY_NAME = "SheetOverlay";
33
- const SHEET_HIDDEN_STYLESHEET = import_core.isClient ? document.createElement("style") : null;
34
- if (SHEET_HIDDEN_STYLESHEET) {
35
- document.head.appendChild(SHEET_HIDDEN_STYLESHEET);
36
- }
25
+ const constants = {}, SHEET_NAME = "Sheet", SHEET_HANDLE_NAME = "SheetHandle", SHEET_OVERLAY_NAME = "SheetOverlay", SHEET_HIDDEN_STYLESHEET = import_core.isClient ? document.createElement("style") : null;
26
+ SHEET_HIDDEN_STYLESHEET && document.head.appendChild(SHEET_HIDDEN_STYLESHEET);
37
27
  // Annotate the CommonJS export names for ESM import in node:
38
28
  0 && (module.exports = {
39
29
  SHEET_HANDLE_NAME,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AAElB,MAAM,YAAY,CAAC;AAEnB,MAAM,aAAa;AACnB,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAE3B,MAAM,0BAA0B,uBAAW,SAAS,cAAc,OAAO,IAAI;AACpF,IAAI,yBAAyB;AAC3B,WAAS,KAAK,YAAY,uBAAuB;AACnD;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AAElB,MAAM,YAAY,CAAC,GAEb,aAAa,SACb,oBAAoB,eACpB,qBAAqB,gBAErB,0BAA0B,uBAAW,SAAS,cAAc,OAAO,IAAI;AAChF,2BACF,SAAS,KAAK,YAAY,uBAAuB;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var constants_exports = {};
17
+ __export(constants_exports, {
18
+ SHEET_HANDLE_NAME: () => SHEET_HANDLE_NAME,
19
+ SHEET_HIDDEN_STYLESHEET: () => SHEET_HIDDEN_STYLESHEET,
20
+ SHEET_NAME: () => SHEET_NAME,
21
+ SHEET_OVERLAY_NAME: () => SHEET_OVERLAY_NAME,
22
+ constants: () => constants
23
+ });
24
+ module.exports = __toCommonJS(constants_exports);
25
+ var import_core = require("@tamagui/core");
26
+ const constants = {}, SHEET_NAME = "Sheet", SHEET_HANDLE_NAME = "SheetHandle", SHEET_OVERLAY_NAME = "SheetOverlay", SHEET_HIDDEN_STYLESHEET = import_core.isClient ? document.createElement("style") : null;
27
+ SHEET_HIDDEN_STYLESHEET && document.head.appendChild(SHEET_HIDDEN_STYLESHEET);
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ SHEET_HANDLE_NAME,
31
+ SHEET_HIDDEN_STYLESHEET,
32
+ SHEET_NAME,
33
+ SHEET_OVERLAY_NAME,
34
+ constants
35
+ });
36
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/constants.tsx"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AAElB,MAAM,YAAY,CAAC,GAEb,aAAa,SACb,oBAAoB,eACpB,qBAAqB,gBAErB,0BAA0B,uBAAW,SAAS,cAAc,OAAO,IAAI;AAChF,2BACF,SAAS,KAAK,YAAY,uBAAuB;",
5
+ "names": []
6
+ }
@@ -1,21 +1,17 @@
1
- "use strict";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
5
  var __export = (target, all) => {
7
6
  for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
12
10
  for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
12
  return to;
17
13
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
19
15
  var contexts_exports = {};
20
16
  __export(contexts_exports, {
21
17
  ParentSheetContext: () => ParentSheetContext,
@@ -25,8 +21,7 @@ module.exports = __toCommonJS(contexts_exports);
25
21
  var import_react = require("react");
26
22
  const ParentSheetContext = (0, import_react.createContext)({
27
23
  zIndex: 1e5
28
- });
29
- const SheetInsideSheetContext = (0, import_react.createContext)(null);
24
+ }), SheetInsideSheetContext = (0, import_react.createContext)(null);
30
25
  // Annotate the CommonJS export names for ESM import in node:
31
26
  0 && (module.exports = {
32
27
  ParentSheetContext,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/contexts.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAEvB,MAAM,yBAAqB,4BAAc;AAAA,EAC9C,QAAQ;AACV,CAAC;AAEM,MAAM,8BAA0B,4BAErC,IAAI;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAEvB,MAAM,yBAAqB,4BAAc;AAAA,EAC9C,QAAQ;AACV,CAAC,GAEY,8BAA0B,4BAErC,IAAI;",
5
5
  "names": []
6
6
  }