@tamagui/sheet 2.3.3 → 2.4.0-1783099846627

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 (96) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cjs/SheetImplementationCustom.cjs +42 -29
  3. package/dist/cjs/SheetImplementationCustom.native.js +46 -33
  4. package/dist/cjs/SheetImplementationCustom.native.js.map +1 -1
  5. package/dist/cjs/SheetScrollView.cjs +64 -22
  6. package/dist/cjs/SheetScrollView.native.js +66 -23
  7. package/dist/cjs/SheetScrollView.native.js.map +1 -1
  8. package/dist/cjs/gestureState.cjs +13 -2
  9. package/dist/cjs/gestureState.native.js +14 -2
  10. package/dist/cjs/gestureState.native.js.map +1 -1
  11. package/dist/cjs/index.cjs +12 -1
  12. package/dist/cjs/index.native.js +11 -0
  13. package/dist/cjs/index.native.js.map +1 -1
  14. package/dist/cjs/setupGestureHandler.cjs +7 -4
  15. package/dist/cjs/setupGestureHandler.native.js +9 -4
  16. package/dist/cjs/setupGestureHandler.native.js.map +1 -1
  17. package/dist/cjs/useGestureHandlerPan.cjs +61 -8
  18. package/dist/cjs/useGestureHandlerPan.native.js +64 -8
  19. package/dist/cjs/useGestureHandlerPan.native.js.map +1 -1
  20. package/dist/cjs/useSheetScrollViewGestures.cjs +13 -3
  21. package/dist/esm/SheetImplementationCustom.mjs +43 -32
  22. package/dist/esm/SheetImplementationCustom.mjs.map +1 -1
  23. package/dist/esm/SheetImplementationCustom.native.js +47 -36
  24. package/dist/esm/SheetImplementationCustom.native.js.map +1 -1
  25. package/dist/esm/SheetScrollView.mjs +64 -22
  26. package/dist/esm/SheetScrollView.mjs.map +1 -1
  27. package/dist/esm/SheetScrollView.native.js +66 -23
  28. package/dist/esm/SheetScrollView.native.js.map +1 -1
  29. package/dist/esm/gestureState.mjs +13 -2
  30. package/dist/esm/gestureState.mjs.map +1 -1
  31. package/dist/esm/gestureState.native.js +14 -2
  32. package/dist/esm/gestureState.native.js.map +1 -1
  33. package/dist/esm/index.js +2 -0
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/index.mjs +2 -0
  36. package/dist/esm/index.mjs.map +1 -1
  37. package/dist/esm/index.native.js +2 -0
  38. package/dist/esm/index.native.js.map +1 -1
  39. package/dist/esm/setupGestureHandler.mjs +7 -4
  40. package/dist/esm/setupGestureHandler.mjs.map +1 -1
  41. package/dist/esm/setupGestureHandler.native.js +9 -4
  42. package/dist/esm/setupGestureHandler.native.js.map +1 -1
  43. package/dist/esm/useGestureHandlerPan.mjs +62 -9
  44. package/dist/esm/useGestureHandlerPan.mjs.map +1 -1
  45. package/dist/esm/useGestureHandlerPan.native.js +65 -9
  46. package/dist/esm/useGestureHandlerPan.native.js.map +1 -1
  47. package/dist/esm/useSheetScrollViewGestures.mjs +13 -3
  48. package/dist/esm/useSheetScrollViewGestures.mjs.map +1 -1
  49. package/dist/jsx/SheetImplementationCustom.mjs +43 -32
  50. package/dist/jsx/SheetImplementationCustom.mjs.map +1 -1
  51. package/dist/jsx/SheetImplementationCustom.native.js +46 -33
  52. package/dist/jsx/SheetImplementationCustom.native.js.map +1 -1
  53. package/dist/jsx/SheetScrollView.mjs +64 -22
  54. package/dist/jsx/SheetScrollView.mjs.map +1 -1
  55. package/dist/jsx/SheetScrollView.native.js +66 -23
  56. package/dist/jsx/SheetScrollView.native.js.map +1 -1
  57. package/dist/jsx/gestureState.mjs +13 -2
  58. package/dist/jsx/gestureState.mjs.map +1 -1
  59. package/dist/jsx/gestureState.native.js +14 -2
  60. package/dist/jsx/gestureState.native.js.map +1 -1
  61. package/dist/jsx/index.js +2 -0
  62. package/dist/jsx/index.js.map +1 -1
  63. package/dist/jsx/index.mjs +2 -0
  64. package/dist/jsx/index.mjs.map +1 -1
  65. package/dist/jsx/index.native.js +11 -0
  66. package/dist/jsx/index.native.js.map +1 -1
  67. package/dist/jsx/setupGestureHandler.mjs +7 -4
  68. package/dist/jsx/setupGestureHandler.mjs.map +1 -1
  69. package/dist/jsx/setupGestureHandler.native.js +9 -4
  70. package/dist/jsx/setupGestureHandler.native.js.map +1 -1
  71. package/dist/jsx/useGestureHandlerPan.mjs +62 -9
  72. package/dist/jsx/useGestureHandlerPan.mjs.map +1 -1
  73. package/dist/jsx/useGestureHandlerPan.native.js +64 -8
  74. package/dist/jsx/useGestureHandlerPan.native.js.map +1 -1
  75. package/dist/jsx/useSheetScrollViewGestures.mjs +13 -3
  76. package/dist/jsx/useSheetScrollViewGestures.mjs.map +1 -1
  77. package/package.json +20 -20
  78. package/src/SheetImplementationCustom.tsx +79 -47
  79. package/src/SheetScrollView.tsx +61 -13
  80. package/src/gestureState.ts +22 -2
  81. package/src/index.ts +4 -0
  82. package/src/setupGestureHandler.ts +12 -3
  83. package/src/types.tsx +3 -0
  84. package/src/useGestureHandlerPan.tsx +64 -10
  85. package/src/useSheetScrollViewGestures.ts +17 -2
  86. package/types/SheetImplementationCustom.d.ts.map +1 -1
  87. package/types/SheetScrollView.d.ts.map +1 -1
  88. package/types/gestureState.d.ts.map +1 -1
  89. package/types/index.d.ts +1 -0
  90. package/types/index.d.ts.map +1 -1
  91. package/types/setupGestureHandler.d.ts.map +1 -1
  92. package/types/types.d.ts +1 -0
  93. package/types/types.d.ts.map +1 -1
  94. package/types/useGestureHandlerPan.d.ts.map +1 -1
  95. package/types/useSheetScrollViewGestures.d.ts +2 -1
  96. package/types/useSheetScrollViewGestures.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import { isWeb } from '@tamagui/constants'
2
- import { useCallback, useMemo, useRef, type RefObject } from 'react'
2
+ import { useCallback, useEffect, useMemo, useRef, type RefObject } from 'react'
3
3
  import { getGestureHandlerState, isGestureHandlerEnabled } from './gestureState'
4
4
  import { getSheetReleasePosition } from './keyboardAvoidance'
5
5
  import type { ScrollBridge, SnapPointsMode } from './types'
@@ -7,6 +7,7 @@ import type { ScrollBridge, SnapPointsMode } from './types'
7
7
  // threshold in pixels for considering sheet "at top" position
8
8
  // allows for small measurement variations
9
9
  const AT_TOP_THRESHOLD = 5
10
+ const SCROLL_HANDOFF_THRESHOLD = 160
10
11
 
11
12
  interface GesturePanConfig {
12
13
  positions: number[]
@@ -104,18 +105,45 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
104
105
  frozenIsKeyboardVisible: false,
105
106
  // whether pan gesture actually started (vs just a tap in onBegin)
106
107
  panStarted: false,
108
+ startedBelowTop: false,
109
+ upwardDragAfterTop: 0,
110
+ scrollUnlockedAfterTop: false,
111
+ keepScrollLockedAfterEnd: false,
107
112
  })
113
+ const unlockScrollTimer = useRef<ReturnType<typeof setTimeout> | null>(null)
114
+
115
+ useEffect(() => {
116
+ return () => {
117
+ if (unlockScrollTimer.current) {
118
+ clearTimeout(unlockScrollTimer.current)
119
+ unlockScrollTimer.current = null
120
+ }
121
+ }
122
+ }, [])
108
123
 
109
124
  const onStart = useCallback(() => {
110
125
  stopSpring()
111
126
  }, [stopSpring])
112
127
 
113
128
  const onEnd = useCallback(
114
- (closestPoint: number, animationOverride?: any) => {
129
+ (closestPoint: number, animationOverride?: any, keepScrollLocked = false) => {
130
+ if (unlockScrollTimer.current) {
131
+ clearTimeout(unlockScrollTimer.current)
132
+ unlockScrollTimer.current = null
133
+ }
115
134
  setIsDragging(false)
116
135
  scrollBridge.setParentDragging(false)
117
- // re-enable scroll when gesture ends
118
- scrollBridge.setScrollEnabled?.(true)
136
+ scrollBridge.lockScrollAtTop = false
137
+ if (keepScrollLocked) {
138
+ scrollBridge.setScrollEnabled?.(false, 0)
139
+ unlockScrollTimer.current = setTimeout(() => {
140
+ unlockScrollTimer.current = null
141
+ scrollBridge.setScrollEnabled?.(true)
142
+ }, 160)
143
+ } else {
144
+ // re-enable scroll when gesture ends
145
+ scrollBridge.setScrollEnabled?.(true)
146
+ }
119
147
  setPosition(closestPoint)
120
148
  animateTo(closestPoint, animationOverride)
121
149
  },
@@ -173,6 +201,15 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
173
201
  gs.frozenPositions = [...positions]
174
202
  gs.frozenMinY = minY
175
203
  gs.frozenIsKeyboardVisible = releaseConfigRef.current.isKeyboardVisible
204
+ gs.startedBelowTop = !atTop
205
+ gs.upwardDragAfterTop = 0
206
+ gs.scrollUnlockedAfterTop = false
207
+ gs.keepScrollLockedAfterEnd = false
208
+ scrollBridge.lockScrollAtTop = false
209
+ if (unlockScrollTimer.current) {
210
+ clearTimeout(unlockScrollTimer.current)
211
+ unlockScrollTimer.current = null
212
+ }
176
213
 
177
214
  // if sheet not at top, DISABLE SCROLL immediately and lock to 0
178
215
  // this prevents scroll from firing before pan takes over
@@ -251,8 +288,18 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
251
288
  // if there's scrollable content, let scroll handle so user can scroll into content
252
289
  // resistance only applies when there's NO scrollable content
253
290
  if (hasScrollableContent) {
254
- // content is scrollable - let scroll handle (user wants to scroll down into content)
255
- panHandles = false
291
+ if (gs.startedBelowTop && !gs.scrollUnlockedAfterTop) {
292
+ gs.upwardDragAfterTop += Math.max(0, -deltaY)
293
+ if (gs.upwardDragAfterTop >= SCROLL_HANDOFF_THRESHOLD) {
294
+ gs.scrollUnlockedAfterTop = true
295
+ panHandles = false
296
+ } else {
297
+ panHandles = true
298
+ }
299
+ } else {
300
+ // content is scrollable - let scroll handle (user wants to scroll down into content)
301
+ panHandles = false
302
+ }
256
303
  } else {
257
304
  // no scrollable content -> pan handles for resistance effect
258
305
  panHandles = true
@@ -261,6 +308,7 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
261
308
  }
262
309
 
263
310
  if (panHandles) {
311
+ scrollBridge.lockScrollAtTop = gs.startedBelowTop && !gs.scrollUnlockedAfterTop
264
312
  // pan handles - disable scroll and move sheet
265
313
  // when swiping down at top after scroll was engaged: lock at current scroll position
266
314
  // (handoff from scroll to pan — preserve scroll offset)
@@ -278,17 +326,22 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
278
326
  setAnimatedPosition(newPosition)
279
327
  scrollBridge.setParentDragging(newPosition > minY)
280
328
  } else {
329
+ scrollBridge.lockScrollAtTop = false
281
330
  // scroll handles - enable scroll so it can move freely
282
331
  scrollBridge.setScrollEnabled?.(true)
332
+ scrollBridge.setParentDragging(false)
283
333
  // don't accumulate offset when scroll is handling
284
334
  }
285
335
  })
286
336
  .onEnd((event: { velocityY: number }) => {
287
337
  const { velocityY } = event
288
338
  const currentPos = gs.startY + gs.accumulatedOffset
339
+ const keepScrollLockedAfterEnd = gs.startedBelowTop && !gs.scrollUnlockedAfterTop
289
340
 
290
341
  // clear scroll lock
291
- scrollBridge.scrollLockY = undefined
342
+ scrollBridge.lockScrollAtTop = false
343
+ scrollBridge.scrollLockY = keepScrollLockedAfterEnd ? 0 : undefined
344
+ gs.keepScrollLockedAfterEnd = keepScrollLockedAfterEnd
292
345
 
293
346
  // use frozen positions from gesture start — keyboard may have dismissed
294
347
  // during drag (input blur), reverting activePositions. Frozen positions
@@ -301,7 +354,7 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
301
354
 
302
355
  // if sheet is at top and scroll is engaged, just stay at top
303
356
  if (currentPos <= snapMinY + AT_TOP_THRESHOLD && scrollBridge.y > 0) {
304
- onEnd(0)
357
+ onEnd(0, undefined, keepScrollLockedAfterEnd)
305
358
  return
306
359
  }
307
360
 
@@ -321,11 +374,12 @@ export function useGestureHandlerPan(config: GesturePanConfig): GesturePanResult
321
374
  isWeb,
322
375
  })
323
376
 
324
- onEnd(closestPoint)
377
+ onEnd(closestPoint, undefined, keepScrollLockedAfterEnd)
325
378
  })
326
379
  .onFinalize(() => {
327
380
  // clear scroll lock on finalize too (safety)
328
- scrollBridge.scrollLockY = undefined
381
+ scrollBridge.lockScrollAtTop = false
382
+ scrollBridge.scrollLockY = gs.keepScrollLockedAfterEnd ? 0 : undefined
329
383
  if (gs.panStarted) {
330
384
  // real pan gesture — reset isDragging (also un-pauses keyboard handler + flushes)
331
385
  setIsDragging(false)
@@ -20,12 +20,14 @@ interface UseSheetScrollViewGesturesProps {
20
20
  hasScrollableContent: boolean
21
21
  scrollEnabled: boolean
22
22
  setScrollEnabled: (enabled: boolean, lockTo?: number) => void
23
+ onManualScroll?: (node: HTMLElement, y: number) => void
23
24
  }
24
25
 
25
26
  export function useSheetScrollViewGestures({
26
27
  scrollRef,
27
28
  scrollBridge,
28
29
  hasScrollableContent,
30
+ onManualScroll,
29
31
  }: UseSheetScrollViewGesturesProps) {
30
32
  const state = useRef<GestureState>({
31
33
  startY: 0,
@@ -36,6 +38,11 @@ export function useSheetScrollViewGestures({
36
38
  dys: [],
37
39
  scrollYAtGestureStart: 0,
38
40
  })
41
+ const onManualScrollRef = useRef(onManualScroll)
42
+
43
+ useEffect(() => {
44
+ onManualScrollRef.current = onManualScroll
45
+ }, [onManualScroll])
39
46
 
40
47
  useEffect(() => {
41
48
  if (!scrollRef.current) return
@@ -61,6 +68,13 @@ export function useSheetScrollViewGestures({
61
68
  node.style.overflowY = originalOverflow
62
69
  }
63
70
 
71
+ const setScrollTop = (nextScrollY: number) => {
72
+ if (node.scrollTop === nextScrollY) return
73
+
74
+ node.scrollTop = nextScrollY
75
+ onManualScrollRef.current?.(node, nextScrollY)
76
+ }
77
+
64
78
  const handleTouchStart = (e: TouchEvent) => {
65
79
  const touch = e.touches[0]
66
80
  if (!touch) return
@@ -97,7 +111,8 @@ export function useSheetScrollViewGestures({
97
111
 
98
112
  const isDraggingDown = dy > 0
99
113
  const currentScrollY = node.scrollTop
100
- const isPaneAtTop = scrollBridge.paneY <= scrollBridge.paneMinY + 5
114
+ const isPaneAtTop =
115
+ scrollBridge.isAtTop ?? scrollBridge.paneY <= scrollBridge.paneMinY + 5
101
116
 
102
117
  scrollBridge.y = currentScrollY
103
118
 
@@ -161,7 +176,7 @@ export function useSheetScrollViewGestures({
161
176
  const maxScrollY = node.scrollHeight - node.clientHeight
162
177
  const newScrollY = Math.max(0, Math.min(maxScrollY, currentScrollY + scrollDelta))
163
178
  if (newScrollY !== currentScrollY) {
164
- node.scrollTop = newScrollY
179
+ setScrollTop(newScrollY)
165
180
  scrollBridge.y = newScrollY
166
181
  if (newScrollY > 0) scrollBridge.scrollStartY = -1
167
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SheetImplementationCustom.d.ts","sourceRoot":"","sources":["../src/SheetImplementationCustom.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAA4B,IAAI,EAAE,MAAM,cAAc,CAAA;AAmB7D,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,SAAS,CAAA;AAmCzD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAo9BrC,CAAA"}
1
+ {"version":3,"file":"SheetImplementationCustom.d.ts","sourceRoot":"","sources":["../src/SheetImplementationCustom.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,EAA4B,IAAI,EAAE,MAAM,cAAc,CAAA;AAmB7D,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,SAAS,CAAA;AAmCzD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAo/BrC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SheetScrollView.d.ts","sourceRoot":"","sources":["../src/SheetScrollView.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAgB9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAyS3B,CAAA"}
1
+ {"version":3,"file":"SheetScrollView.d.ts","sourceRoot":"","sources":["../src/SheetScrollView.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAgB9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAyV3B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"gestureState.d.ts","sourceRoot":"","sources":["../src/gestureState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEtE,YAAY,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAG1E,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,wBAAgB,sBAAsB,IAAI,YAAY,CAErD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAE3E;AAGD,eAAO,MAAM,eAAe,+BAAyB,CAAA"}
1
+ {"version":3,"file":"gestureState.d.ts","sourceRoot":"","sources":["../src/gestureState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEtE,YAAY,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAa1E,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,wBAAgB,sBAAsB,IAAI,YAAY,CAErD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAY3E;AAGD,eAAO,MAAM,eAAe,+BAAyB,CAAA"}
package/types/index.d.ts CHANGED
@@ -9,4 +9,5 @@ export * from './SheetScrollView';
9
9
  export * from './nativeSheet';
10
10
  export * from './types';
11
11
  export * from './contexts';
12
+ export { getGestureHandlerState as unstable_getSheetGestureHandlerState, isGestureHandlerEnabled as unstable_isSheetGestureHandlerEnabled, } from './gestureState';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,OAAO,EACL,sBAAsB,IAAI,oCAAoC,EAC9D,uBAAuB,IAAI,qCAAqC,GACjE,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"setupGestureHandler.d.ts","sourceRoot":"","sources":["../src/setupGestureHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,GAAG,CAAA;IACZ,eAAe,EAAE,GAAG,CAAA;IACpB,UAAU,CAAC,EAAE,GAAG,CAAA;CACjB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAiB3E"}
1
+ {"version":3,"file":"setupGestureHandler.d.ts","sourceRoot":"","sources":["../src/setupGestureHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,wBAAgB,uBAAuB,IAAI,OAAO,CAMjD;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,GAAG,CAAA;IACZ,eAAe,EAAE,GAAG,CAAA;IACpB,UAAU,CAAC,EAAE,GAAG,CAAA;CACjB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAkB3E"}
package/types/types.d.ts CHANGED
@@ -102,6 +102,7 @@ export type ScrollBridge = {
102
102
  setScrollEnabled?: (enabled: boolean, lockTo?: number) => void;
103
103
  _lastTouchY?: number;
104
104
  scrollLockY?: number;
105
+ lockScrollAtTop?: boolean;
105
106
  forceScrollTo?: (y: number) => void;
106
107
  isAtTop?: boolean;
107
108
  snapToPosition?: (positionIndex: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGestureHandlerPan.d.ts","sourceRoot":"","sources":["../src/useGestureHandlerPan.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM3D,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IACzD,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,kBAAkB,EAAE,MAAM,MAAM,CAAA;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1C,gBAAgB,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAExC,oBAAoB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;CAC1C;AAED,UAAU,gBAAgB;IACxB,UAAU,EAAE,GAAG,GAAG,IAAI,CAAA;IACtB,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IAC7B,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAuT/E"}
1
+ {"version":3,"file":"useGestureHandlerPan.d.ts","sourceRoot":"","sources":["../src/useGestureHandlerPan.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO3D,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IACzD,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,kBAAkB,EAAE,MAAM,MAAM,CAAA;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1C,gBAAgB,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAExC,oBAAoB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;CAC1C;AAED,UAAU,gBAAgB;IACxB,UAAU,EAAE,GAAG,GAAG,IAAI,CAAA;IACtB,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IAC7B,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CA4W/E"}
@@ -6,7 +6,8 @@ interface UseSheetScrollViewGesturesProps {
6
6
  hasScrollableContent: boolean;
7
7
  scrollEnabled: boolean;
8
8
  setScrollEnabled: (enabled: boolean, lockTo?: number) => void;
9
+ onManualScroll?: (node: HTMLElement, y: number) => void;
9
10
  }
10
- export declare function useSheetScrollViewGestures({ scrollRef, scrollBridge, hasScrollableContent, }: UseSheetScrollViewGesturesProps): {};
11
+ export declare function useSheetScrollViewGestures({ scrollRef, scrollBridge, hasScrollableContent, onManualScroll, }: UseSheetScrollViewGesturesProps): {};
11
12
  export {};
12
13
  //# sourceMappingURL=useSheetScrollViewGestures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetScrollViewGestures.d.ts","sourceRoot":"","sources":["../src/useSheetScrollViewGestures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAc3C,UAAU,+BAA+B;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC/C,YAAY,EAAE,YAAY,CAAA;IAC1B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9D;AAED,wBAAgB,0BAA0B,CAAC,EACzC,SAAS,EACT,YAAY,EACZ,oBAAoB,GACrB,EAAE,+BAA+B,MAqMjC"}
1
+ {"version":3,"file":"useSheetScrollViewGestures.d.ts","sourceRoot":"","sources":["../src/useSheetScrollViewGestures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAc3C,UAAU,+BAA+B;IACvC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC/C,YAAY,EAAE,YAAY,CAAA;IAC1B,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACxD;AAED,wBAAgB,0BAA0B,CAAC,EACzC,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,EAAE,+BAA+B,MAkNjC"}