@tamagui/sheet 1.58.7 → 1.59.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 (46) hide show
  1. package/dist/cjs/SheetImplementationCustom.js +72 -14
  2. package/dist/cjs/SheetImplementationCustom.js.map +2 -2
  3. package/dist/cjs/createSheet.js +20 -4
  4. package/dist/cjs/createSheet.js.map +1 -1
  5. package/dist/cjs/useSheetOffscreenSize.js +27 -5
  6. package/dist/cjs/useSheetOffscreenSize.js.map +2 -2
  7. package/dist/cjs/useSheetProviderProps.js +43 -5
  8. package/dist/cjs/useSheetProviderProps.js.map +1 -1
  9. package/dist/esm/SheetImplementationCustom.js +74 -15
  10. package/dist/esm/SheetImplementationCustom.js.map +2 -2
  11. package/dist/esm/createSheet.js +26 -5
  12. package/dist/esm/createSheet.js.map +1 -1
  13. package/dist/esm/useSheetOffscreenSize.js +27 -5
  14. package/dist/esm/useSheetOffscreenSize.js.map +2 -2
  15. package/dist/esm/useSheetProviderProps.js +43 -5
  16. package/dist/esm/useSheetProviderProps.js.map +1 -1
  17. package/dist/jsx/SheetImplementationCustom.js +70 -15
  18. package/dist/jsx/SheetImplementationCustom.js.map +2 -2
  19. package/dist/jsx/createSheet.js +18 -2
  20. package/dist/jsx/createSheet.js.map +1 -1
  21. package/dist/jsx/useSheetOffscreenSize.js +27 -5
  22. package/dist/jsx/useSheetOffscreenSize.js.map +2 -2
  23. package/dist/jsx/useSheetProviderProps.js +43 -5
  24. package/dist/jsx/useSheetProviderProps.js.map +1 -1
  25. package/package.json +14 -14
  26. package/src/SheetImplementationCustom.tsx +85 -15
  27. package/src/createSheet.tsx +21 -3
  28. package/src/types.tsx +4 -1
  29. package/src/useSheetOffscreenSize.tsx +40 -4
  30. package/src/useSheetProviderProps.tsx +65 -5
  31. package/types/Sheet.d.ts +2 -1
  32. package/types/Sheet.d.ts.map +1 -1
  33. package/types/SheetContext.d.ts +25 -10
  34. package/types/SheetContext.d.ts.map +1 -1
  35. package/types/SheetImplementationCustom.d.ts +3 -1
  36. package/types/SheetImplementationCustom.d.ts.map +1 -1
  37. package/types/createSheet.d.ts +2 -1
  38. package/types/createSheet.d.ts.map +1 -1
  39. package/types/types.d.ts +3 -1
  40. package/types/types.d.ts.map +1 -1
  41. package/types/useSheet.d.ts +5 -2
  42. package/types/useSheet.d.ts.map +1 -1
  43. package/types/useSheetOffscreenSize.d.ts +1 -1
  44. package/types/useSheetOffscreenSize.d.ts.map +1 -1
  45. package/types/useSheetProviderProps.d.ts +5 -2
  46. package/types/useSheetProviderProps.d.ts.map +1 -1
@@ -36,7 +36,7 @@ import { SHEET_HIDDEN_STYLESHEET } from './constants'
36
36
  import { ParentSheetContext, SheetInsideSheetContext } from './contexts'
37
37
  import { resisted } from './helpers'
38
38
  import { SheetProvider } from './SheetContext'
39
- import { SheetProps } from './types'
39
+ import { SheetProps, SnapPointsMode } from './types'
40
40
  import { useSheetOpenState } from './useSheetOpenState'
41
41
  import { useSheetProviderProps } from './useSheetProviderProps'
42
42
 
@@ -65,10 +65,13 @@ export const SheetImplementationCustom = themeable(
65
65
  frameSize,
66
66
  setFrameSize,
67
67
  snapPoints,
68
+ snapPointsMode,
69
+ hasFit,
68
70
  position,
69
71
  setPosition,
70
72
  scrollBridge,
71
73
  screenSize,
74
+ setMaxContentSize,
72
75
  maxSnapPoint,
73
76
  } = providerProps
74
77
  const { open, controller, isHidden } = state
@@ -87,8 +90,11 @@ export const SheetImplementationCustom = themeable(
87
90
  }, [])
88
91
 
89
92
  const positions = useMemo(
90
- () => snapPoints.map((point) => getPercentSize(point, screenSize)),
91
- [frameSize, snapPoints]
93
+ () =>
94
+ snapPoints.map((point) =>
95
+ getYPositions(snapPointsMode, point, screenSize, frameSize)
96
+ ),
97
+ [screenSize, frameSize, snapPoints, snapPointsMode]
92
98
  )
93
99
 
94
100
  const driver = useAnimationDriver()
@@ -178,11 +184,11 @@ export const SheetImplementationCustom = themeable(
178
184
  }, [hasntMeasured, screenSize])
179
185
 
180
186
  useIsomorphicLayoutEffect(() => {
181
- if (!frameSize || isHidden || (hasntMeasured && !open)) {
187
+ if (!frameSize || !screenSize || isHidden || (hasntMeasured && !open)) {
182
188
  return
183
189
  }
184
190
  animateTo(position)
185
- }, [isHidden, frameSize, open, position])
191
+ }, [isHidden, frameSize, screenSize, open, position])
186
192
 
187
193
  const disableDrag = props.disableDrag ?? controller?.disableDrag
188
194
  const themeName = useThemeName()
@@ -314,6 +320,15 @@ export const SheetImplementationCustom = themeable(
314
320
  [keyboardIsVisible]
315
321
  )
316
322
 
323
+ const handleMaxContentViewLayout = useCallback(
324
+ (e: LayoutChangeEvent) => {
325
+ const next = e.nativeEvent?.layout.height
326
+ if (!next) return
327
+ setMaxContentSize(next)
328
+ },
329
+ [keyboardIsVisible]
330
+ )
331
+
317
332
  const animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
318
333
  'worklet'
319
334
  const translateY = frameSize === 0 ? hiddenSize : val
@@ -362,6 +377,12 @@ export const SheetImplementationCustom = themeable(
362
377
  }
363
378
  }, [open])
364
379
 
380
+ const forcedContentHeight = hasFit
381
+ ? frameSize
382
+ : snapPointsMode === 'percent'
383
+ ? `${maxSnapPoint}%`
384
+ : maxSnapPoint
385
+
365
386
  const contents = (
366
387
  <ParentSheetContext.Provider value={nextParentContext}>
367
388
  <SheetProvider {...providerProps}>
@@ -369,10 +390,25 @@ export const SheetImplementationCustom = themeable(
369
390
  {shouldHideParentSheet || !open ? null : overlayComponent}
370
391
  </AnimatePresence>
371
392
 
393
+ {snapPointsMode !== 'percent' && (
394
+ <View
395
+ style={{
396
+ opacity: 0,
397
+ position: 'absolute',
398
+ top: 0,
399
+ left: 0,
400
+ right: 0,
401
+ bottom: 0,
402
+ pointerEvents: 'none',
403
+ }}
404
+ pointerEvents="none"
405
+ onLayout={handleMaxContentViewLayout}
406
+ />
407
+ )}
372
408
  <AnimatedView
373
409
  ref={ref}
374
410
  {...panResponder?.panHandlers}
375
- onLayout={handleAnimationViewLayout}
411
+ onLayout={hasFit ? undefined : handleAnimationViewLayout}
376
412
  pointerEvents={open && !shouldHideParentSheet ? 'auto' : 'none'}
377
413
  // @ts-ignore
378
414
  animation={props.animation}
@@ -381,8 +417,8 @@ export const SheetImplementationCustom = themeable(
381
417
  position: 'absolute',
382
418
  zIndex,
383
419
  width: '100%',
384
- height: `${maxSnapPoint}%`,
385
- minHeight: `${maxSnapPoint}%`,
420
+ height: forcedContentHeight,
421
+ minHeight: forcedContentHeight,
386
422
  opacity,
387
423
  },
388
424
  animatedStyle,
@@ -428,14 +464,48 @@ export const SheetImplementationCustom = themeable(
428
464
  })
429
465
  )
430
466
 
431
- function getPercentSize(point?: number, screenSize?: number) {
432
- if (!screenSize) return 0
433
- if (point === undefined) {
434
- console.warn('No snapPoint')
467
+ function getYPositions(
468
+ mode: SnapPointsMode,
469
+ point: string | number,
470
+ screenSize?: number,
471
+ frameSize?: number
472
+ ) {
473
+ if (!screenSize || !frameSize) return 0
474
+
475
+ if (mode === 'mixed') {
476
+ if (typeof point === 'number') {
477
+ return screenSize - Math.min(screenSize, Math.max(0, point))
478
+ }
479
+ if (point === 'fit') {
480
+ return screenSize - frameSize
481
+ }
482
+ if (point.endsWith('%')) {
483
+ const pct = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100
484
+ if (Number.isNaN(pct)) {
485
+ console.warn('Invalid snapPoint percentage string')
486
+ return 0
487
+ }
488
+ const next = Math.round(screenSize - pct * screenSize)
489
+ return next
490
+ }
491
+ console.warn('Invalid snapPoint unknown value')
492
+ return 0
493
+ }
494
+
495
+ if (mode === 'fit') {
496
+ if (point === 0) return screenSize
497
+ return screenSize - Math.min(screenSize, frameSize)
498
+ }
499
+
500
+ if (mode === 'constant' && typeof point === 'number') {
501
+ return screenSize - Math.min(screenSize, Math.max(0, point))
502
+ }
503
+
504
+ const pct = Math.min(100, Math.max(0, Number(point))) / 100
505
+ if (Number.isNaN(pct)) {
506
+ console.warn('Invalid snapPoint percentage')
435
507
  return 0
436
508
  }
437
- const pct = point / 100
438
- const next = Math.round(screenSize - pct * screenSize)
439
509
 
440
- return next
510
+ return Math.round(screenSize - pct * screenSize)
441
511
  }
@@ -11,8 +11,15 @@ import {
11
11
  withStaticProperties,
12
12
  } from '@tamagui/core'
13
13
  import { RemoveScroll } from '@tamagui/remove-scroll'
14
- import { FunctionComponent, RefAttributes, forwardRef, memo, useMemo } from 'react'
15
- import { Platform, View } from 'react-native'
14
+ import {
15
+ FunctionComponent,
16
+ RefAttributes,
17
+ forwardRef,
18
+ memo,
19
+ useCallback,
20
+ useMemo,
21
+ } from 'react'
22
+ import { LayoutChangeEvent, Platform, View } from 'react-native'
16
23
 
17
24
  import { SHEET_HANDLE_NAME, SHEET_NAME, SHEET_OVERLAY_NAME } from './constants'
18
25
  import { getNativeSheet } from './nativeSheet'
@@ -126,10 +133,21 @@ export function createSheet<
126
133
  const composedContentRef = useComposedRefs(forwardedRef, contentRef)
127
134
  const offscreenSize = useSheetOffscreenSize(context)
128
135
 
136
+ const handleLayoutChange = useCallback((e: LayoutChangeEvent) => {
137
+ const next = e.nativeEvent?.layout.height
138
+ if (!next) return
139
+ context.setFrameSize(next)
140
+ }, [])
141
+
129
142
  const sheetContents = useMemo(() => {
130
143
  return (
131
144
  // @ts-ignore
132
- <Frame ref={composedContentRef} height={frameSize} {...props}>
145
+ <Frame
146
+ ref={composedContentRef}
147
+ height={context.hasFit ? undefined : frameSize}
148
+ onLayout={context.hasFit ? handleLayoutChange : undefined}
149
+ {...props}
150
+ >
133
151
  {children}
134
152
  <Stack data-sheet-offscreen-pad height={offscreenSize} width="100%" />
135
153
  </Frame>
package/src/types.tsx CHANGED
@@ -11,7 +11,8 @@ export type SheetProps = ScopedProps<
11
11
  onOpenChange?: OpenChangeHandler
12
12
  position?: number
13
13
  defaultPosition?: number
14
- snapPoints?: number[]
14
+ snapPoints?: (string | number)[]
15
+ snapPointsMode?: SnapPointsMode
15
16
  onPositionChange?: PositionChangeHandler
16
17
  children?: ReactNode
17
18
  dismissOnOverlayPress?: boolean
@@ -54,6 +55,8 @@ type OpenChangeHandler =
54
55
 
55
56
  export type RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>
56
57
 
58
+ export type SnapPointsMode = 'percent' | 'constant' | 'fit' | 'mixed'
59
+
57
60
  export type SheetScopedProps<A> = ScopedProps<A, 'Sheet'>
58
61
 
59
62
  export type ScrollBridge = {
@@ -4,10 +4,46 @@ export const useSheetOffscreenSize = ({
4
4
  snapPoints,
5
5
  position,
6
6
  screenSize,
7
+ frameSize,
8
+ snapPointsMode,
7
9
  }: SheetContextValue) => {
8
- const maxPercentOpened = snapPoints[0] / 100
9
- const percentOpened = (snapPoints[position] || 0) / 100
10
- const percentHidden = 1 - maxPercentOpened - percentOpened
11
- const offscreenSize = percentHidden * screenSize
10
+ if (snapPointsMode === 'fit') {
11
+ return 0
12
+ }
13
+
14
+ if (snapPointsMode === 'constant') {
15
+ const maxSize = Number(snapPoints[0])
16
+ const currentSize = Number(snapPoints[position] ?? 0)
17
+ const offscreenSize = maxSize - currentSize
18
+ return offscreenSize
19
+ }
20
+
21
+ if (snapPointsMode === 'percent') {
22
+ const maxPercentOpened = Number(snapPoints[0]) / 100
23
+ const percentOpened = Number(snapPoints[position] ?? 0) / 100
24
+ const percentHidden = 1 - maxPercentOpened - percentOpened
25
+ const offscreenSize = percentHidden * screenSize
26
+ return offscreenSize
27
+ }
28
+
29
+ // mixed:
30
+ const maxSnapPoint = snapPoints[0]
31
+ const maxSize =
32
+ maxSnapPoint === 'fit'
33
+ ? frameSize
34
+ : typeof maxSnapPoint === 'string'
35
+ ? (Number(maxSnapPoint.slice(0, -1)) / 100) * screenSize
36
+ : maxSnapPoint
37
+ const currentSnapPoint = snapPoints[position] ?? 0
38
+ const currentSize =
39
+ currentSnapPoint === 'fit'
40
+ ? frameSize
41
+ : typeof currentSnapPoint === 'string'
42
+ ? (Number(currentSnapPoint.slice(0, -1)) / 100) * screenSize
43
+ : currentSnapPoint
44
+ const offscreenSize = maxSize - currentSize
45
+ if (Number.isNaN(offscreenSize)) {
46
+ return 0
47
+ }
12
48
  return offscreenSize
13
49
  }
@@ -17,7 +17,16 @@ export function useSheetProviderProps(
17
17
  ) {
18
18
  const contentRef = React.useRef<TamaguiElement>(null)
19
19
  const [frameSize, setFrameSize] = useState<number>(0)
20
- const snapPointsProp = props.snapPoints || [80]
20
+ const [maxContentSize, setMaxContentSize] = useState<number>(0)
21
+ const snapPointsMode = props.snapPointsMode ?? 'percent'
22
+ const snapPointsProp: (string | number)[] =
23
+ props.snapPoints ??
24
+ (snapPointsMode === 'percent'
25
+ ? [80]
26
+ : snapPointsMode === 'constant'
27
+ ? [256]
28
+ : ['fit'])
29
+ const hasFit = snapPointsProp[0] === 'fit'
21
30
 
22
31
  const snapPoints = useMemo(
23
32
  () => (props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp),
@@ -51,9 +60,54 @@ export function useSheetProviderProps(
51
60
  )
52
61
 
53
62
  if (process.env.NODE_ENV === 'development') {
54
- if (snapPoints.some((p) => p < 0 || p > 100)) {
63
+ if (
64
+ snapPointsMode === 'mixed' &&
65
+ snapPoints.some((p) => {
66
+ if (typeof p === 'string') {
67
+ if (p === 'fit') {
68
+ return false
69
+ }
70
+ if (p.endsWith('%')) {
71
+ const n = Number(p.slice(0, -1))
72
+ return n < 0 || n > 100
73
+ }
74
+ return true
75
+ }
76
+ return typeof p !== 'number' || p < 0
77
+ })
78
+ ) {
55
79
  console.warn(
56
- '⚠️ Invalid snapPoint given, snapPoints must be between 0 and 100, equal to percent height of frame'
80
+ '⚠️ Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or "fit" when snapPointsMode is mixed'
81
+ )
82
+ }
83
+ if (snapPointsMode === 'mixed' && snapPoints.indexOf('fit') > 0) {
84
+ console.warn(
85
+ '⚠️ Invalid snapPoint given, "fit" must be the first/largest snap point when snapPointsMode is mixed'
86
+ )
87
+ }
88
+ if (
89
+ snapPointsMode === 'fit' &&
90
+ (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) ||
91
+ snapPoints[0] !== 'fit')
92
+ ) {
93
+ console.warn(
94
+ '⚠️ Invalid snapPoint given, there are no snap points when snapPointsMode is fit'
95
+ )
96
+ }
97
+ if (
98
+ snapPointsMode === 'constant' &&
99
+ snapPoints.some((p) => typeof p !== 'number' || p < 0)
100
+ ) {
101
+ console.warn(
102
+ '⚠️ Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant'
103
+ )
104
+ }
105
+ if (
106
+ snapPointsMode === 'percent' &&
107
+ snapPoints.some((p) => typeof p !== 'number' || p < 0 || p > 100)
108
+ ) {
109
+ console.warn(
110
+ '⚠️ Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent'
57
111
  )
58
112
  }
59
113
  }
@@ -89,8 +143,11 @@ export function useSheetProviderProps(
89
143
 
90
144
  const removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal)
91
145
 
92
- const maxSnapPoint = snapPoints.reduce((prev, cur) => Math.max(prev, cur))
93
- const screenSize = frameSize / (maxSnapPoint / 100)
146
+ const maxSnapPoint = snapPoints[0]
147
+ const screenSize =
148
+ snapPointsMode === 'percent'
149
+ ? frameSize / ((typeof maxSnapPoint === 'number' ? maxSnapPoint : 100) / 100)
150
+ : maxContentSize
94
151
 
95
152
  const providerProps = {
96
153
  screenSize,
@@ -108,8 +165,11 @@ export function useSheetProviderProps(
108
165
  dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
109
166
  onOverlayComponent: options.onOverlayComponent,
110
167
  scope: props.__scopeSheet,
168
+ hasFit,
111
169
  position,
112
170
  snapPoints,
171
+ snapPointsMode,
172
+ setMaxContentSize,
113
173
  setPosition,
114
174
  setPositionImmediate,
115
175
  onlyShowFrame: false,
package/types/Sheet.d.ts CHANGED
@@ -198,7 +198,8 @@ export declare const Sheet: import("react").ForwardRefExoticComponent<{
198
198
  onOpenChange?: (((open: boolean) => void) | import("react").Dispatch<import("react").SetStateAction<boolean>>) | undefined;
199
199
  position?: number | undefined;
200
200
  defaultPosition?: number | undefined;
201
- snapPoints?: number[] | undefined;
201
+ snapPoints?: (string | number)[] | undefined;
202
+ snapPointsMode?: import("./types").SnapPointsMode | undefined;
202
203
  onPositionChange?: import("./types").PositionChangeHandler | undefined;
203
204
  children?: import("react").ReactNode;
204
205
  dismissOnOverlayPress?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../src/Sheet.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,cAAc,SAAS,CAAA;AAMvB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCjB,CAAA;AAMF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BlB,CAAA;AAMF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBhB,CAAA;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhB,CAAA;AAEF,uCAAuC;AACvC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAU,CAAA;AAExC,uCAAuC;AACvC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAS,CAAA"}
1
+ {"version":3,"file":"Sheet.d.ts","sourceRoot":"","sources":["../src/Sheet.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,cAAc,SAAS,CAAA;AAMvB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCjB,CAAA;AAMF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BlB,CAAA;AAMF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBhB,CAAA;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhB,CAAA;AAEF,uCAAuC;AACvC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAU,CAAA;AAExC,uCAAuC;AACvC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAS,CAAA"}
@@ -12,7 +12,7 @@ export declare const createSheetContext: <ContextValueType extends object | null
12
12
  export declare const SheetProvider: {
13
13
  (props: {
14
14
  screenSize: number;
15
- maxSnapPoint: number;
15
+ maxSnapPoint: string | number;
16
16
  removeScrollEnabled: boolean | undefined;
17
17
  scrollBridge: import("./types").ScrollBridge;
18
18
  modal: boolean;
@@ -26,15 +26,18 @@ export declare const SheetProvider: {
26
26
  dismissOnSnapToBottom: boolean;
27
27
  onOverlayComponent: ((comp: any) => void) | undefined;
28
28
  scope: import("@tamagui/create-context").Scope<any>;
29
+ hasFit: boolean;
29
30
  position: number;
30
- snapPoints: number[];
31
+ snapPoints: (string | number)[];
32
+ snapPointsMode: import("./types").SnapPointsMode;
33
+ setMaxContentSize: import("react").Dispatch<import("react").SetStateAction<number>>;
31
34
  setPosition: (next: number) => void;
32
35
  setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
33
36
  onlyShowFrame: boolean;
34
37
  } & {
35
38
  scope: import("@tamagui/create-context").Scope<{
36
39
  screenSize: number;
37
- maxSnapPoint: number;
40
+ maxSnapPoint: string | number;
38
41
  removeScrollEnabled: boolean | undefined;
39
42
  scrollBridge: import("./types").ScrollBridge;
40
43
  modal: boolean;
@@ -48,8 +51,11 @@ export declare const SheetProvider: {
48
51
  dismissOnSnapToBottom: boolean;
49
52
  onOverlayComponent: ((comp: any) => void) | undefined;
50
53
  scope: import("@tamagui/create-context").Scope<any>;
54
+ hasFit: boolean;
51
55
  position: number;
52
- snapPoints: number[];
56
+ snapPoints: (string | number)[];
57
+ snapPointsMode: import("./types").SnapPointsMode;
58
+ setMaxContentSize: import("react").Dispatch<import("react").SetStateAction<number>>;
53
59
  setPosition: (next: number) => void;
54
60
  setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
55
61
  onlyShowFrame: boolean;
@@ -59,7 +65,7 @@ export declare const SheetProvider: {
59
65
  displayName: string;
60
66
  }, useSheetContext: (consumerName: string, scope: import("@tamagui/create-context").Scope<{
61
67
  screenSize: number;
62
- maxSnapPoint: number;
68
+ maxSnapPoint: string | number;
63
69
  removeScrollEnabled: boolean | undefined;
64
70
  scrollBridge: import("./types").ScrollBridge;
65
71
  modal: boolean;
@@ -73,8 +79,11 @@ export declare const SheetProvider: {
73
79
  dismissOnSnapToBottom: boolean;
74
80
  onOverlayComponent: ((comp: any) => void) | undefined;
75
81
  scope: import("@tamagui/create-context").Scope<any>;
82
+ hasFit: boolean;
76
83
  position: number;
77
- snapPoints: number[];
84
+ snapPoints: (string | number)[];
85
+ snapPointsMode: import("./types").SnapPointsMode;
86
+ setMaxContentSize: import("react").Dispatch<import("react").SetStateAction<number>>;
78
87
  setPosition: (next: number) => void;
79
88
  setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
80
89
  onlyShowFrame: boolean;
@@ -82,7 +91,7 @@ export declare const SheetProvider: {
82
91
  warn?: boolean | undefined;
83
92
  fallback?: Partial<{
84
93
  screenSize: number;
85
- maxSnapPoint: number;
94
+ maxSnapPoint: string | number;
86
95
  removeScrollEnabled: boolean | undefined;
87
96
  scrollBridge: import("./types").ScrollBridge;
88
97
  modal: boolean;
@@ -96,15 +105,18 @@ export declare const SheetProvider: {
96
105
  dismissOnSnapToBottom: boolean;
97
106
  onOverlayComponent: ((comp: any) => void) | undefined;
98
107
  scope: import("@tamagui/create-context").Scope<any>;
108
+ hasFit: boolean;
99
109
  position: number;
100
- snapPoints: number[];
110
+ snapPoints: (string | number)[];
111
+ snapPointsMode: import("./types").SnapPointsMode;
112
+ setMaxContentSize: import("react").Dispatch<import("react").SetStateAction<number>>;
101
113
  setPosition: (next: number) => void;
102
114
  setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
103
115
  onlyShowFrame: boolean;
104
116
  }> | undefined;
105
117
  } | undefined) => {
106
118
  screenSize: number;
107
- maxSnapPoint: number;
119
+ maxSnapPoint: string | number;
108
120
  removeScrollEnabled: boolean | undefined;
109
121
  scrollBridge: import("./types").ScrollBridge;
110
122
  modal: boolean;
@@ -118,8 +130,11 @@ export declare const SheetProvider: {
118
130
  dismissOnSnapToBottom: boolean;
119
131
  onOverlayComponent: ((comp: any) => void) | undefined;
120
132
  scope: import("@tamagui/create-context").Scope<any>;
133
+ hasFit: boolean;
121
134
  position: number;
122
- snapPoints: number[];
135
+ snapPoints: (string | number)[];
136
+ snapPointsMode: import("./types").SnapPointsMode;
137
+ setMaxContentSize: import("react").Dispatch<import("react").SetStateAction<number>>;
123
138
  setPosition: (next: number) => void;
124
139
  setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
125
140
  onlyShowFrame: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"SheetContext.d.ts","sourceRoot":"","sources":["../src/SheetContext.tsx"],"names":[],"mappings":";AAKA,eAAO,MAAO,kBAAkB;;;;;;;;;qCAAE,gBAAgB,+CAAkC,CAAA;AAEpF,eAAO,MAAO,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3C,CAAA"}
1
+ {"version":3,"file":"SheetContext.d.ts","sourceRoot":"","sources":["../src/SheetContext.tsx"],"names":[],"mappings":";AAKA,eAAO,MAAO,kBAAkB;;;;;;;;;qCAAE,gBAAgB,+CAAkC,CAAA;AAEpF,eAAO,MAAO,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3C,CAAA"}
@@ -1,12 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import { View } from 'react-native';
3
+ import { SnapPointsMode } from './types';
3
4
  export declare const SheetImplementationCustom: (props: Omit<{
4
5
  open?: boolean | undefined;
5
6
  defaultOpen?: boolean | undefined;
6
7
  onOpenChange?: (((open: boolean) => void) | import("react").Dispatch<import("react").SetStateAction<boolean>>) | undefined;
7
8
  position?: number | undefined;
8
9
  defaultPosition?: number | undefined;
9
- snapPoints?: number[] | undefined;
10
+ snapPoints?: (string | number)[] | undefined;
11
+ snapPointsMode?: SnapPointsMode | undefined;
10
12
  onPositionChange?: import("./types").PositionChangeHandler | undefined;
11
13
  children?: import("react").ReactNode;
12
14
  dismissOnOverlayPress?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"SheetImplementationCustom.d.ts","sourceRoot":"","sources":["../src/SheetImplementationCustom.tsx"],"names":[],"mappings":";AAwBA,OAAO,EAOL,IAAI,EACL,MAAM,cAAc,CAAA;AAYrB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;6MAgYrC,CAAA"}
1
+ {"version":3,"file":"SheetImplementationCustom.d.ts","sourceRoot":"","sources":["../src/SheetImplementationCustom.tsx"],"names":[],"mappings":";AAwBA,OAAO,EAOL,IAAI,EACL,MAAM,cAAc,CAAA;AAMrB,OAAO,EAAc,cAAc,EAAE,MAAM,SAAS,CAAA;AAMpD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;6MAoarC,CAAA"}
@@ -17,7 +17,8 @@ export declare function createSheet<H extends SheetStyledComponent | TamaguiComp
17
17
  onOpenChange?: (((open: boolean) => void) | import("react").Dispatch<import("react").SetStateAction<boolean>>) | undefined;
18
18
  position?: number | undefined;
19
19
  defaultPosition?: number | undefined;
20
- snapPoints?: number[] | undefined;
20
+ snapPoints?: (string | number)[] | undefined;
21
+ snapPointsMode?: import("./types").SnapPointsMode | undefined;
21
22
  onPositionChange?: import("./types").PositionChangeHandler | undefined;
22
23
  children?: import("react").ReactNode;
23
24
  dismissOnOverlayPress?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"createSheet.d.ts","sourceRoot":"","sources":["../src/createSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,UAAU,EACV,gBAAgB,EAChB,iCAAiC,EAKlC,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAA6B,MAAM,OAAO,CAAA;AACnF,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAA;AAO7C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAItD,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAE9C,KAAK,oBAAoB,GAAG,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;AAE1F,wBAAgB,WAAW,CACzB,CAAC,SAAS,oBAAoB,GAAG,gBAAgB,EACjD,CAAC,SAAS,oBAAoB,GAAG,gBAAgB,EACjD,CAAC,SAAS,oBAAoB,GAAG,gBAAgB,EACjD,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA+B9C,iBAAiB,SAAS,cAAc,CAAC,CAAC;6CA7B5B,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;;;;;2DA6BvD,iBAAiB,SAAS,cAAc,CAAC,CAAC;yCA7B5B,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;EAiLzE"}
1
+ {"version":3,"file":"createSheet.d.ts","sourceRoot":"","sources":["../src/createSheet.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAER,UAAU,EACV,gBAAgB,EAChB,iCAAiC,EAKlC,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EAKd,MAAM,OAAO,CAAA;AACd,OAAO,EAA+B,IAAI,EAAE,MAAM,cAAc,CAAA;AAOhE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAItD,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAA;AAE9C,KAAK,oBAAoB,GAAG,iCAAiC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;AAE1F,wBAAgB,WAAW,CACzB,CAAC,SAAS,oBAAoB,GAAG,gBAAgB,EACjD,CAAC,SAAS,oBAAoB,GAAG,gBAAgB,EACjD,CAAC,SAAS,oBAAoB,GAAG,gBAAgB,EACjD,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA+B9C,iBAAiB,SAAS,cAAc,CAAC,CAAC;6CA7B5B,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;;;;;2DA6BvD,iBAAiB,SAAS,cAAc,CAAC,CAAC;yCA7B5B,iBAAiB,SAAS,aAAa,CAAC,CAAC;;;;;;;;EA4LzE"}
package/types/types.d.ts CHANGED
@@ -9,7 +9,8 @@ export type SheetProps = ScopedProps<{
9
9
  onOpenChange?: OpenChangeHandler;
10
10
  position?: number;
11
11
  defaultPosition?: number;
12
- snapPoints?: number[];
12
+ snapPoints?: (string | number)[];
13
+ snapPointsMode?: SnapPointsMode;
13
14
  onPositionChange?: PositionChangeHandler;
14
15
  children?: ReactNode;
15
16
  dismissOnOverlayPress?: boolean;
@@ -41,6 +42,7 @@ export type SheetProps = ScopedProps<{
41
42
  export type PositionChangeHandler = (position: number) => void;
42
43
  type OpenChangeHandler = ((open: boolean) => void) | React.Dispatch<React.SetStateAction<boolean>>;
43
44
  export type RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;
45
+ export type SnapPointsMode = 'percent' | 'constant' | 'fit' | 'mixed';
44
46
  export type SheetScopedProps<A> = ScopedProps<A, 'Sheet'>;
45
47
  export type ScrollBridge = {
46
48
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExC,MAAM,MAAM,UAAU,GAAG,WAAW,CAClC;IACE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,gBAAgB,CAAC,EAAE,qBAAqB,CAAA;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,eAAe,CAAC,EAAE,sBAAsB,CAAA;IAExC;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAA;IAEnC;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,EACD,OAAO,CACR,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;AAE9D,KAAK,iBAAiB,GAClB,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GACzB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AAEjD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAA;AAEzE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAEzD,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACxD,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC7B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExC,MAAM,MAAM,UAAU,GAAG,WAAW,CAClC;IACE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAChC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,gBAAgB,CAAC,EAAE,qBAAqB,CAAA;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,eAAe,CAAC,EAAE,sBAAsB,CAAA;IAExC;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAA;IAEnC;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,EACD,OAAO,CACR,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;AAE9D,KAAK,iBAAiB,GAClB,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GACzB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AAEjD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAA;AAEzE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAA;AAErE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAEzD,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACxD,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;CAC7B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export declare const useSheet: () => {
3
3
  screenSize: number;
4
- maxSnapPoint: number;
4
+ maxSnapPoint: string | number;
5
5
  removeScrollEnabled: boolean | undefined;
6
6
  scrollBridge: import("./types").ScrollBridge;
7
7
  modal: boolean;
@@ -15,8 +15,11 @@ export declare const useSheet: () => {
15
15
  dismissOnSnapToBottom: boolean;
16
16
  onOverlayComponent: ((comp: any) => void) | undefined;
17
17
  scope: import("@tamagui/create-context").Scope<any>;
18
+ hasFit: boolean;
18
19
  position: number;
19
- snapPoints: number[];
20
+ snapPoints: (string | number)[];
21
+ snapPointsMode: import("./types").SnapPointsMode;
22
+ setMaxContentSize: import("react").Dispatch<import("react").SetStateAction<number>>;
20
23
  setPosition: (next: number) => void;
21
24
  setPositionImmediate: import("react").Dispatch<import("react").SetStateAction<number>>;
22
25
  onlyShowFrame: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useSheet.d.ts","sourceRoot":"","sources":["../src/useSheet.tsx"],"names":[],"mappings":";AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAAuC,CAAA"}
1
+ {"version":3,"file":"useSheet.d.ts","sourceRoot":"","sources":["../src/useSheet.tsx"],"names":[],"mappings":";AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;CAAuC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { SheetContextValue } from './useSheetProviderProps';
2
- export declare const useSheetOffscreenSize: ({ snapPoints, position, screenSize, }: SheetContextValue) => number;
2
+ export declare const useSheetOffscreenSize: ({ snapPoints, position, screenSize, frameSize, snapPointsMode, }: SheetContextValue) => number;
3
3
  //# sourceMappingURL=useSheetOffscreenSize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetOffscreenSize.d.ts","sourceRoot":"","sources":["../src/useSheetOffscreenSize.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,eAAO,MAAM,qBAAqB,0CAI/B,iBAAiB,WAMnB,CAAA"}
1
+ {"version":3,"file":"useSheetOffscreenSize.d.ts","sourceRoot":"","sources":["../src/useSheetOffscreenSize.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,eAAO,MAAM,qBAAqB,qEAM/B,iBAAiB,WAwCnB,CAAA"}
@@ -7,7 +7,7 @@ export declare function useSheetProviderProps(props: SheetProps, state: SheetOpe
7
7
  onOverlayComponent?: (comp: any) => void;
8
8
  }): {
9
9
  screenSize: number;
10
- maxSnapPoint: number;
10
+ maxSnapPoint: string | number;
11
11
  removeScrollEnabled: boolean | undefined;
12
12
  scrollBridge: ScrollBridge;
13
13
  modal: boolean;
@@ -21,8 +21,11 @@ export declare function useSheetProviderProps(props: SheetProps, state: SheetOpe
21
21
  dismissOnSnapToBottom: boolean;
22
22
  onOverlayComponent: ((comp: any) => void) | undefined;
23
23
  scope: import("@tamagui/create-context").Scope<any>;
24
+ hasFit: boolean;
24
25
  position: number;
25
- snapPoints: number[];
26
+ snapPoints: (string | number)[];
27
+ snapPointsMode: import("./types").SnapPointsMode;
28
+ setMaxContentSize: React.Dispatch<React.SetStateAction<number>>;
26
29
  setPosition: (next: number) => void;
27
30
  setPositionImmediate: React.Dispatch<React.SetStateAction<number>>;
28
31
  onlyShowFrame: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetProviderProps.d.ts","sourceRoot":"","sources":["../src/useSheetProviderProps.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAA;AAGlE,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAExE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE;IACP,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;CACpC;;;;;;;;;;;;;;gCADwB,GAAG,KAAK,IAAI;;;;wBA2BjC,MAAM;;;EA6EhB"}
1
+ {"version":3,"file":"useSheetProviderProps.d.ts","sourceRoot":"","sources":["../src/useSheetProviderProps.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,eAAe,CAAA;AAGlE,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAExE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE;IACP,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;CACpC;;;;;;;;;;;;;;gCADwB,GAAG,KAAK,IAAI;;;;;;;wBAoCjC,MAAM;;;EAgIhB"}