@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
@@ -1,55 +1,30 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { AdaptParentContext } from "@tamagui/adapt";
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
2
  import { useComposedRefs } from "@tamagui/compose-refs";
4
3
  import {
5
- Theme,
6
- isClient,
7
- isTouchable,
8
- isWeb,
9
4
  mergeEvent,
10
- themeable,
11
- useAnimationDriver,
12
5
  useDidFinishSSR,
13
- useEvent,
14
- useIsomorphicLayoutEffect,
15
- useThemeName,
16
6
  withStaticProperties
17
7
  } from "@tamagui/core";
18
- import { Portal } from "@tamagui/portal";
19
8
  import { RemoveScroll } from "@tamagui/remove-scroll";
20
- import { useKeyboardVisible } from "@tamagui/use-keyboard-visible";
21
9
  import {
22
- createContext,
23
10
  forwardRef,
24
- useCallback,
25
- useContext,
26
- useEffect,
27
- useMemo,
28
- useRef,
29
- useState
11
+ useLayoutEffect,
12
+ useMemo
30
13
  } from "react";
31
- import {
32
- Keyboard,
33
- PanResponder,
34
- Platform
35
- } from "react-native";
14
+ import { Platform } from "react-native";
36
15
  import { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from "./constants";
37
16
  import { getNativeSheet } from "./nativeSheet";
38
- import { SheetProvider, useSheetContext } from "./SheetContext";
17
+ import { useSheetContext } from "./SheetContext";
18
+ import { SheetImplementationCustom } from "./SheetImplementationCustom";
39
19
  import { SheetScrollView } from "./SheetScrollView";
40
- import { useSheetChildren } from "./useSheetChildren";
41
20
  import { useSheetController } from "./useSheetController";
42
- import { useSheetOpenState } from "./useSheetOpenState";
43
- import { useSheetProviderProps } from "./useSheetProviderProps";
44
- import { useSheetSnapPoints } from "./useSheetSnapPoints";
45
- const selectionStyleSheet = isClient ? document.createElement("style") : null;
46
- if (selectionStyleSheet) {
47
- document.head.appendChild(selectionStyleSheet);
48
- }
49
21
  function createSheet({ Handle, Frame, Overlay }) {
50
22
  const SheetHandle = Handle.extractable(
51
23
  ({ __scopeSheet, ...props }) => {
52
24
  const context = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet);
25
+ if (context.onlyShowFrame) {
26
+ return null;
27
+ }
53
28
  return /* @__PURE__ */ jsx(
54
29
  Handle,
55
30
  {
@@ -65,29 +40,77 @@ function createSheet({ Handle, Frame, Overlay }) {
65
40
  }
66
41
  );
67
42
  const SheetOverlay = Overlay.extractable(
68
- ({ __scopeSheet, ...props }) => {
43
+ (propsIn) => {
44
+ const { __scopeSheet, ...props } = propsIn;
69
45
  const context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet);
70
- return /* @__PURE__ */ jsx(
71
- Overlay,
72
- {
73
- open: context.open && !context.hidden,
74
- ...props,
75
- onPress: mergeEvent(
76
- props.onPress,
77
- context.dismissOnOverlayPress ? () => {
78
- context.setOpen(false);
79
- } : void 0
80
- )
81
- }
46
+ const element = useMemo(
47
+ () => /* @__PURE__ */ jsx(
48
+ Overlay,
49
+ {
50
+ open: context.open && !context.hidden,
51
+ ...props,
52
+ onPress: mergeEvent(
53
+ props.onPress,
54
+ context.dismissOnOverlayPress ? () => {
55
+ context.setOpen(false);
56
+ } : void 0
57
+ )
58
+ }
59
+ ),
60
+ [
61
+ context.open,
62
+ props,
63
+ context.hidden,
64
+ props.onPress,
65
+ context.dismissOnOverlayPress
66
+ ]
82
67
  );
68
+ useLayoutEffect(() => {
69
+ var _a;
70
+ (_a = context.onOverlayComponent) == null ? void 0 : _a.call(context, element);
71
+ }, [element]);
72
+ if (context.onlyShowFrame) {
73
+ return null;
74
+ }
75
+ return null;
83
76
  }
84
77
  );
85
78
  const SheetFrame = Frame.extractable(
86
79
  forwardRef(
87
- ({ __scopeSheet, ...props }, forwardedRef) => {
80
+ ({
81
+ __scopeSheet,
82
+ children,
83
+ ...props
84
+ }, forwardedRef) => {
88
85
  const context = useSheetContext(SHEET_NAME, __scopeSheet);
89
86
  const composedContentRef = useComposedRefs(forwardedRef, context.contentRef);
90
- return /* @__PURE__ */ jsx(Frame, { ref: composedContentRef, ...props });
87
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
88
+ /* @__PURE__ */ jsx(
89
+ RemoveScroll,
90
+ {
91
+ forwardProps: true,
92
+ enabled: context.removeScrollEnabled,
93
+ allowPinchZoom: true,
94
+ shards: [context.contentRef],
95
+ removeScrollBar: false,
96
+ children: /* @__PURE__ */ jsx(Frame, { ref: composedContentRef, ...props, children })
97
+ }
98
+ ),
99
+ !props.disableHideBottomOverflow && /* @__PURE__ */ jsx(
100
+ Frame,
101
+ {
102
+ ...props,
103
+ children: null,
104
+ position: "absolute",
105
+ bottom: 0,
106
+ maxHeight: 300,
107
+ left: 0,
108
+ right: 0,
109
+ borderRadius: 0,
110
+ shadowOpacity: 0
111
+ }
112
+ )
113
+ ] });
91
114
  }
92
115
  )
93
116
  );
@@ -120,328 +143,6 @@ function createSheet({ Handle, Frame, Overlay }) {
120
143
  Controlled
121
144
  });
122
145
  }
123
- const HIDDEN_SIZE = 1e4;
124
- const ParentSheetContext = createContext({
125
- zIndex: 1e5
126
- });
127
- const SheetImplementationCustom = themeable(
128
- forwardRef(function SheetImplementationCustom2(props, forwardedRef) {
129
- const parentSheet = useContext(ParentSheetContext);
130
- const {
131
- animationConfig,
132
- forceRemoveScrollEnabled = null,
133
- disableDrag: disableDragProp,
134
- modal = false,
135
- zIndex = parentSheet.zIndex + 1,
136
- moveOnKeyboardChange = false,
137
- portalProps
138
- } = props;
139
- const state = useSheetOpenState(props);
140
- const providerProps = useSheetProviderProps(props, state);
141
- const { positions, maxSnapPoint, screenSize } = useSheetSnapPoints(providerProps);
142
- const { position, contentRef, setPosition, scrollBridge, frameSize, setFrameSize } = providerProps;
143
- const { open, isHidden, controller } = state;
144
- const {
145
- frameComponent,
146
- handleComponent,
147
- bottomCoverComponent,
148
- overlayComponent,
149
- rest
150
- } = useSheetChildren(props.children);
151
- const sheetRef = useRef(null);
152
- const ref = useComposedRefs(forwardedRef, sheetRef);
153
- const driver = useAnimationDriver();
154
- if (!driver) {
155
- throw new Error("Must set animations in tamagui.config.ts");
156
- }
157
- const disableDrag = disableDragProp ?? (controller == null ? void 0 : controller.disableDrag);
158
- const keyboardIsVisible = useKeyboardVisible();
159
- const themeName = useThemeName();
160
- const { useAnimatedNumber, useAnimatedNumberReaction, useAnimatedNumberStyle } = driver;
161
- const animatedNumber = useAnimatedNumber(HIDDEN_SIZE);
162
- const at = useRef(0);
163
- useAnimatedNumberReaction(
164
- {
165
- value: animatedNumber,
166
- hostRef: sheetRef
167
- },
168
- (value) => {
169
- if (!driver.isReactNative)
170
- return;
171
- at.current = value;
172
- scrollBridge.paneY = value;
173
- }
174
- );
175
- function stopSpring() {
176
- animatedNumber.stop();
177
- if (scrollBridge.onFinishAnimate) {
178
- scrollBridge.onFinishAnimate();
179
- scrollBridge.onFinishAnimate = void 0;
180
- }
181
- }
182
- const [opacity, setOpacity] = useState(open ? 1 : 0);
183
- if (open && opacity === 0) {
184
- setOpacity(1);
185
- }
186
- useEffect(() => {
187
- if (!open) {
188
- const tm = setTimeout(() => {
189
- setOpacity(0);
190
- }, 400);
191
- return () => {
192
- clearTimeout(tm);
193
- };
194
- }
195
- }, [open]);
196
- const animateTo = useEvent((position2) => {
197
- const current = animatedNumber.getValue();
198
- if (isHidden && open)
199
- return;
200
- if (!current)
201
- return;
202
- if (frameSize === 0)
203
- return;
204
- const hiddenValue = frameSize === 0 ? HIDDEN_SIZE : screenSize;
205
- const toValue = isHidden || position2 === -1 ? hiddenValue : positions[position2];
206
- if (at.current === toValue)
207
- return;
208
- stopSpring();
209
- if (isHidden) {
210
- animatedNumber.setValue(toValue, {
211
- type: "timing",
212
- duration: 0
213
- });
214
- at.current = toValue;
215
- return;
216
- }
217
- const overshootClamping = at.current === HIDDEN_SIZE;
218
- animatedNumber.setValue(toValue, {
219
- ...animationConfig,
220
- type: "spring",
221
- overshootClamping
222
- });
223
- });
224
- useIsomorphicLayoutEffect(() => {
225
- animateTo(position);
226
- }, [isHidden, frameSize, position, animateTo]);
227
- const [isShowingInnerSheet, setIsShowingInnerSheet] = useState(false);
228
- const shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet;
229
- const parentSheetContext = useContext(SheetInsideSheetContext);
230
- const onInnerSheet = useCallback((hasChild) => {
231
- setIsShowingInnerSheet(hasChild);
232
- }, []);
233
- const panResponder = useMemo(
234
- () => {
235
- if (disableDrag)
236
- return;
237
- if (!frameSize)
238
- return;
239
- if (isShowingInnerSheet)
240
- return;
241
- const minY = positions[0];
242
- scrollBridge.paneMinY = minY;
243
- let startY = at.current;
244
- function makeUnselectable(val) {
245
- if (!selectionStyleSheet)
246
- return;
247
- if (!val) {
248
- selectionStyleSheet.innerText = "";
249
- } else {
250
- selectionStyleSheet.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }";
251
- }
252
- }
253
- const release = ({ vy, dragAt }) => {
254
- isExternalDrag = false;
255
- previouslyScrolling = false;
256
- makeUnselectable(false);
257
- const at2 = dragAt + startY;
258
- const end = at2 + frameSize * vy * 0.2;
259
- let closestPoint = 0;
260
- let dist = Infinity;
261
- for (let i = 0; i < positions.length; i++) {
262
- const position2 = positions[i];
263
- const curDist = end > position2 ? end - position2 : position2 - end;
264
- if (curDist < dist) {
265
- dist = curDist;
266
- closestPoint = i;
267
- }
268
- }
269
- setPosition(closestPoint);
270
- animateTo(closestPoint);
271
- };
272
- const finish = (_e, state2) => {
273
- release({
274
- vy: state2.vy,
275
- dragAt: state2.dy
276
- });
277
- };
278
- let previouslyScrolling = false;
279
- const onMoveShouldSet = (_e, { dy }) => {
280
- const isScrolled = scrollBridge.y !== 0;
281
- const isDraggingUp = dy < 0;
282
- const isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
283
- if (isScrolled) {
284
- previouslyScrolling = true;
285
- return false;
286
- }
287
- if (isNearTop) {
288
- if (!isScrolled && isDraggingUp) {
289
- return false;
290
- }
291
- }
292
- return Math.abs(dy) > 5;
293
- };
294
- const grant = () => {
295
- makeUnselectable(true);
296
- stopSpring();
297
- startY = at.current;
298
- };
299
- let isExternalDrag = false;
300
- scrollBridge.drag = (dy) => {
301
- if (!isExternalDrag) {
302
- isExternalDrag = true;
303
- grant();
304
- }
305
- const to = dy + startY;
306
- animatedNumber.setValue(resisted(to, minY), { type: "direct" });
307
- };
308
- scrollBridge.release = release;
309
- return PanResponder.create({
310
- onMoveShouldSetPanResponder: onMoveShouldSet,
311
- onPanResponderGrant: grant,
312
- onPanResponderMove: (_e, { dy }) => {
313
- const toFull = dy + startY;
314
- const to = resisted(toFull, minY);
315
- animatedNumber.setValue(to, { type: "direct" });
316
- },
317
- onPanResponderEnd: finish,
318
- onPanResponderTerminate: finish,
319
- onPanResponderRelease: finish
320
- });
321
- },
322
- // eslint-disable-next-line react-hooks/exhaustive-deps
323
- [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]
324
- );
325
- const animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
326
- "worklet";
327
- const translateY = frameSize === 0 ? HIDDEN_SIZE : val;
328
- return {
329
- transform: [{ translateY }]
330
- };
331
- });
332
- const sizeBeforeKeyboard = useRef(null);
333
- useEffect(() => {
334
- if (isWeb || !moveOnKeyboardChange)
335
- return;
336
- const keyboardDidShowListener = Keyboard.addListener("keyboardDidShow", (e) => {
337
- if (sizeBeforeKeyboard.current !== null)
338
- return;
339
- sizeBeforeKeyboard.current = animatedNumber.getValue();
340
- animatedNumber.setValue(
341
- Math.max(animatedNumber.getValue() - e.endCoordinates.height, 0)
342
- );
343
- });
344
- const keyboardDidHideListener = Keyboard.addListener("keyboardDidHide", () => {
345
- if (sizeBeforeKeyboard.current === null)
346
- return;
347
- animatedNumber.setValue(sizeBeforeKeyboard.current);
348
- sizeBeforeKeyboard.current = null;
349
- });
350
- return () => {
351
- keyboardDidHideListener.remove();
352
- keyboardDidShowListener.remove();
353
- };
354
- }, []);
355
- const AnimatedView = driver["NumberView"] ?? driver.View;
356
- useIsomorphicLayoutEffect(() => {
357
- if (!(parentSheetContext && open))
358
- return;
359
- parentSheetContext(true);
360
- return () => {
361
- parentSheetContext(false);
362
- };
363
- }, [parentSheetContext, open]);
364
- const nextParentContext = useMemo(
365
- () => ({
366
- zIndex
367
- }),
368
- [zIndex]
369
- );
370
- const handleLayout = useCallback(
371
- (e) => {
372
- var _a;
373
- let next = (_a = e.nativeEvent) == null ? void 0 : _a.layout.height;
374
- if (isWeb && isTouchable && !open) {
375
- next += 100;
376
- }
377
- if (!next)
378
- return;
379
- setFrameSize(() => next);
380
- },
381
- [keyboardIsVisible]
382
- );
383
- const removeScrollEnabled = forceRemoveScrollEnabled ?? (open && modal);
384
- const contents = /* @__PURE__ */ jsx(ParentSheetContext.Provider, { value: nextParentContext, children: /* @__PURE__ */ jsxs(SheetProvider, { ...providerProps, children: [
385
- shouldHideParentSheet ? null : overlayComponent,
386
- /* @__PURE__ */ jsxs(
387
- AnimatedView,
388
- {
389
- ref,
390
- ...panResponder == null ? void 0 : panResponder.panHandlers,
391
- onLayout: handleLayout,
392
- pointerEvents: open && !shouldHideParentSheet ? "auto" : "none",
393
- animation: props.animation,
394
- style: [
395
- {
396
- position: "absolute",
397
- zIndex,
398
- width: "100%",
399
- height: `${maxSnapPoint}%`,
400
- opacity
401
- },
402
- animatedStyle
403
- ],
404
- children: [
405
- handleComponent,
406
- bottomCoverComponent,
407
- rest,
408
- /* @__PURE__ */ jsx(
409
- RemoveScroll,
410
- {
411
- forwardProps: true,
412
- enabled: removeScrollEnabled,
413
- allowPinchZoom: true,
414
- shards: [contentRef],
415
- removeScrollBar: false,
416
- children: frameComponent
417
- }
418
- )
419
- ]
420
- }
421
- )
422
- ] }) });
423
- const adaptContext = useContext(AdaptParentContext);
424
- if (modal) {
425
- const modalContents = /* @__PURE__ */ jsx(Portal, { zIndex, ...portalProps, children: /* @__PURE__ */ jsx(Theme, { forceClassName: true, name: themeName, children: /* @__PURE__ */ jsx(AdaptParentContext.Provider, { value: adaptContext, children: contents }) }) });
426
- if (isWeb) {
427
- return modalContents;
428
- }
429
- return /* @__PURE__ */ jsx(SheetInsideSheetContext.Provider, { value: onInnerSheet, children: modalContents });
430
- }
431
- return contents;
432
- })
433
- );
434
- const SheetInsideSheetContext = createContext(null);
435
- function resisted(y, minY, maxOverflow = 25) {
436
- if (y < minY) {
437
- const past = minY - y;
438
- const pctPast = Math.min(maxOverflow, past) / maxOverflow;
439
- const diminishBy = 1.1 - Math.pow(0.1, pctPast);
440
- const extra = -diminishBy * maxOverflow;
441
- return minY + extra;
442
- }
443
- return y;
444
- }
445
146
  export {
446
147
  createSheet
447
148
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createSheet.tsx"],
4
- "mappings": "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",
5
- "names": ["Sheet", "SheetImplementationCustom", "position", "at", "state"]
4
+ "mappings": "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",
5
+ "names": ["Sheet"]
6
6
  }
@@ -0,0 +1,14 @@
1
+ function resisted(y, minY, maxOverflow = 25) {
2
+ if (y < minY) {
3
+ const past = minY - y;
4
+ const pctPast = Math.min(maxOverflow, past) / maxOverflow;
5
+ const diminishBy = 1.1 - Math.pow(0.1, pctPast);
6
+ const extra = -diminishBy * maxOverflow;
7
+ return minY + extra;
8
+ }
9
+ return y;
10
+ }
11
+ export {
12
+ resisted
13
+ };
14
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers.tsx"],
4
+ "mappings": "AAAO,SAAS,SAAS,GAAW,MAAc,cAAc,IAAI;AAClE,MAAI,IAAI,MAAM;AACZ,UAAM,OAAO,OAAO;AACpB,UAAM,UAAU,KAAK,IAAI,aAAa,IAAI,IAAI;AAC9C,UAAM,aAAa,MAAM,KAAK,IAAI,KAAK,OAAO;AAC9C,UAAM,QAAQ,CAAC,aAAa;AAC5B,WAAO,OAAO;AAAA,EAChB;AACA,SAAO;AACT;",
5
+ "names": []
6
+ }
@@ -2,7 +2,6 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { YStack } from "@tamagui/stacks";
3
3
  import { useEffect, useRef } from "react";
4
4
  import { SheetProvider } from "./SheetContext";
5
- import { useSheetChildren } from "./useSheetChildren";
6
5
  import { useSheetOpenState } from "./useSheetOpenState";
7
6
  import { useSheetProviderProps } from "./useSheetProviderProps";
8
7
  const nativeSheets = {
@@ -16,15 +15,14 @@ function setupNativeSheet(platform, Implementation) {
16
15
  nativeSheets[platform] = (props) => {
17
16
  const state = useSheetOpenState(props);
18
17
  const providerProps = useSheetProviderProps(props, state);
19
- const { frameComponent } = useSheetChildren(props.children);
20
18
  const { open, setOpen } = state;
21
19
  const ref = useRef();
22
20
  useEffect(() => {
23
21
  var _a;
24
22
  (_a = ref.current) == null ? void 0 : _a.setVisibility(open);
25
23
  }, [open]);
26
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(SheetProvider, { ...providerProps, children: [
27
- /* @__PURE__ */ jsx(Implementation, { ref, onModalDismiss: () => setOpen(false), children: frameComponent }),
24
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(SheetProvider, { ...providerProps, onlyShowFrame: true, children: [
25
+ /* @__PURE__ */ jsx(Implementation, { ref, onModalDismiss: () => setOpen(false), children: props.children }),
28
26
  /* @__PURE__ */ jsx(
29
27
  YStack,
30
28
  {
@@ -33,7 +31,7 @@ function setupNativeSheet(platform, Implementation) {
33
31
  pointerEvents: "none",
34
32
  width: 0,
35
33
  height: 0,
36
- children: frameComponent
34
+ children: props.children
37
35
  }
38
36
  )
39
37
  ] }) });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/nativeSheet.tsx"],
4
- "mappings": "AA8CQ,mBAEI,KADF,YADF;AA9CR,SAAS,cAAc;AACvB,SAA4B,WAAW,cAAc;AAErD,SAAS,qBAAqB;AAE9B,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AAMtC,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBAAiB,UAAgC,gBAAqB;AACpF,MAAI,aAAa,OAAO;AACtB,iBAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,YAAM,QAAQ,kBAAkB,KAAK;AACrC,YAAM,gBAAgB,sBAAsB,OAAO,KAAK;AAGxD,YAAM,EAAE,eAAe,IAAI,iBAAiB,MAAM,QAAQ;AAE1D,YAAM,EAAE,MAAM,QAAQ,IAAI;AAC1B,YAAM,MAAM,OAET;AAEH,gBAAU,MAAM;AAnCtB;AAoCQ,kBAAI,YAAJ,mBAAa,cAAc;AAAA,MAC7B,GAAG,CAAC,IAAI,CAAC;AAQT,aACE,gCACE,+BAAC,iBAAe,GAAG,eACjB;AAAA,4BAAC,kBAAe,KAAU,gBAAgB,MAAM,QAAQ,KAAK,GAC1D,0BACH;AAAA,QAIA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,SAAS;AAAA,YACT,eAAc;AAAA,YACd,OAAO;AAAA,YACP,QAAQ;AAAA,YAEP;AAAA;AAAA,QACH;AAAA,SACF,GACF;AAAA,IAEJ;AAAA,EACF;AACF;",
4
+ "mappings": "AA4CQ,mBAEI,KADF,YADF;AA5CR,SAAS,cAAc;AACvB,SAA4B,WAAW,cAAc;AAErD,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AAMtC,MAAM,eAAmF;AAAA,EACvF,KAAK;AACP;AAEO,SAAS,eAAe,UAAgC;AAC7D,SAAO,aAAa,QAAQ;AAC9B;AAEO,SAAS,iBAAiB,UAAgC,gBAAqB;AACpF,MAAI,aAAa,OAAO;AACtB,iBAAa,QAAQ,IAAI,CAAC,UAAsB;AAC9C,YAAM,QAAQ,kBAAkB,KAAK;AACrC,YAAM,gBAAgB,sBAAsB,OAAO,KAAK;AAIxD,YAAM,EAAE,MAAM,QAAQ,IAAI;AAC1B,YAAM,MAAM,OAET;AAEH,gBAAU,MAAM;AAjCtB;AAkCQ,kBAAI,YAAJ,mBAAa,cAAc;AAAA,MAC7B,GAAG,CAAC,IAAI,CAAC;AAQT,aACE,gCACE,+BAAC,iBAAe,GAAG,eAAe,eAAa,MAC7C;AAAA,4BAAC,kBAAe,KAAU,gBAAgB,MAAM,QAAQ,KAAK,GAC1D,gBAAM,UACT;AAAA,QAIA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,SAAS;AAAA,YACT,eAAc;AAAA,YACd,OAAO;AAAA,YACP,QAAQ;AAAA,YAEP,gBAAM;AAAA;AAAA,QACT;AAAA,SACF,GACF;AAAA,IAEJ;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -6,7 +6,8 @@ const useSheetController = () => {
6
6
  return {
7
7
  controller,
8
8
  isHidden,
9
- isShowingNonSheet
9
+ isShowingNonSheet,
10
+ disableDrag: controller == null ? void 0 : controller.disableDrag
10
11
  };
11
12
  };
12
13
  const SheetControllerContext = createContext(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSheetController.tsx"],
4
- "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAEnC,MAAM,qBAAqB,MAAM;AACtC,QAAM,aAAa,WAAW,sBAAsB;AACpD,QAAM,WAAW,yCAAY;AAC7B,QAAM,oBAAoB,aAAY,yCAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB;AAAA,EACpC;AACF;",
4
+ "mappings": "AAAA,SAAS,eAAe,kBAAkB;AAEnC,MAAM,qBAAqB,MAAM;AACtC,QAAM,aAAa,WAAW,sBAAsB;AACpD,QAAM,WAAW,yCAAY;AAC7B,QAAM,oBAAoB,aAAY,yCAAY;AAClD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,yCAAY;AAAA,EAC3B;AACF;AAEO,MAAM,yBAAyB;AAAA,EACpC;AACF;",
5
5
  "names": []
6
6
  }