@swmansion/react-native-bottom-sheet 0.3.1 → 0.5.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.
package/README.md CHANGED
@@ -132,6 +132,22 @@ const [index, setIndex] = useState(0);
132
132
  </BottomSheet>
133
133
  ```
134
134
 
135
+ #### Programmatic-only detents
136
+
137
+ If you want a detent to be reachable only via code (not by dragging), use the
138
+ object form or the `programmatic` helper. Programmatic detents are excluded from
139
+ drag snapping but can still be targeted via `index`&nbsp;updates.
140
+
141
+ ```tsx
142
+ <BottomSheet
143
+ detents={[0, programmatic(300), 'max']}
144
+ index={index}
145
+ onIndexChange={setIndex}
146
+ >
147
+ {/* ... */}
148
+ </BottomSheet>
149
+ ```
150
+
135
151
  ### Position tracking
136
152
 
137
153
  The `position` prop accepts a `SharedValue` that the library keeps in sync with
@@ -165,6 +181,18 @@ For scrollable sheet content, use `BottomSheetScrollView` or
165
181
  integrate scrolling with the sheet’s drag gesture so that dragging down while
166
182
  scrolled to the top collapses the&nbsp;sheet.
167
183
 
184
+ Both components expose imperative methods on their&nbsp;refs:
185
+
186
+ ```tsx
187
+ const scrollViewRef = useRef<BottomSheetScrollViewMethods>(null);
188
+ const listRef = useRef<BottomSheetFlatListMethods>(null);
189
+ ```
190
+
191
+ ```tsx
192
+ scrollViewRef.current?.scrollTo({ y: 0, animated: true });
193
+ listRef.current?.scrollToOffset({ offset: 0, animated: true });
194
+ ```
195
+
168
196
  ## By [Software Mansion](https://swmansion.com)
169
197
 
170
198
  Founded in 2012, [Software Mansion](https://swmansion.com) is a software agency
@@ -2,13 +2,16 @@
2
2
 
3
3
  import { useCallback, useEffect, useState } from 'react';
4
4
  import { Pressable, StyleSheet, View, useWindowDimensions } from 'react-native';
5
- import Animated, { measure, scrollTo, useAnimatedRef, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
6
- import { scheduleOnRN, scheduleOnUI } from 'react-native-worklets';
7
- import { Gesture, GestureDetector } from 'react-native-gesture-handler';
5
+ import Animated, { useAnimatedRef, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring } from 'react-native-reanimated';
6
+ import { scheduleOnUI } from 'react-native-worklets';
7
+ import { GestureDetector } from 'react-native-gesture-handler';
8
8
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
9
9
  import { Portal } from "./BottomSheetProvider.js";
10
10
  import { BottomSheetContextProvider } from "./BottomSheetContext.js";
11
+ import { clampIndex, isDetentProgrammatic, resolveDetent } from "./bottomSheetUtils.js";
12
+ import { useBottomSheetPanGesture } from "./useBottomSheetPanGesture.js";
11
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ export { programmatic } from "./bottomSheetUtils.js";
12
15
  const DEFAULT_OPEN_ANIMATION_CONFIG = {
13
16
  dampingRatio: 1,
14
17
  duration: 300,
@@ -19,18 +22,6 @@ const DEFAULT_CLOSE_ANIMATION_CONFIG = {
19
22
  duration: 250,
20
23
  overshootClamping: true
21
24
  };
22
- const VELOCITY_THRESHOLD = 800;
23
- const resolveDetent = (detent, contentHeight, maxHeight) => {
24
- if (typeof detent === 'number') return detent;
25
- if (detent === 'max') {
26
- return contentHeight > 0 ? Math.min(contentHeight, maxHeight) : maxHeight;
27
- }
28
- throw new Error(`Invalid detent: \`${detent}\`.`);
29
- };
30
- const clampIndex = (index, detentCount) => {
31
- if (detentCount <= 0) return 0;
32
- return Math.min(Math.max(index, 0), detentCount - 1);
33
- };
34
25
  const DefaultScrim = ({
35
26
  progress
36
27
  }) => {
@@ -65,10 +56,11 @@ export const BottomSheetBase = ({
65
56
  if (detents.length === 0) {
66
57
  throw new Error('detents must include at least one value.');
67
58
  }
68
- const normalizedDetents = detents.map(point => {
69
- const resolved = resolveDetent(point, contentHeight, maxHeight);
59
+ const normalizedDetents = detents.map(detent => {
60
+ const resolved = resolveDetent(detent, contentHeight, maxHeight);
70
61
  return Math.max(0, Math.min(resolved, maxHeight));
71
62
  });
63
+ const isDraggable = detents.map(detent => !isDetentProgrammatic(detent));
72
64
  const initialMaxSnap = Math.max(0, ...normalizedDetents);
73
65
  const translateY = useSharedValue(initialMaxSnap);
74
66
  const animationTarget = useSharedValue(NaN);
@@ -78,14 +70,9 @@ export const BottomSheetBase = ({
78
70
  const isScrollableGestureActive = useSharedValue(false);
79
71
  const isScrollableLocked = useSharedValue(false);
80
72
  const scrollableRef = useAnimatedRef();
81
- const isDraggingSheet = useSharedValue(false);
82
- const isDraggingFromScrollable = useSharedValue(false);
83
- const panStartY = useSharedValue(0);
84
- const panActivated = useSharedValue(false);
85
- const dragStartTranslateY = useSharedValue(0);
86
- const isTouchWithinScrollable = useSharedValue(false);
87
73
  const detentsValue = useSharedValue(normalizedDetents);
88
- const firstNonzeroDetent = useSharedValue(normalizedDetents.find(d => d > 0) ?? 0);
74
+ const isDraggableValue = useSharedValue(isDraggable);
75
+ const firstNonzeroDetent = useSharedValue(normalizedDetents.find(detent => detent > 0) ?? 0);
89
76
  const currentIndex = useSharedValue(resolvedIndex);
90
77
  const internalPosition = useDerivedValue(() => Math.max(0, sheetHeight.value - translateY.value));
91
78
  useAnimatedReaction(() => internalPosition.value, value => {
@@ -103,9 +90,10 @@ export const BottomSheetBase = ({
103
90
  useEffect(() => {
104
91
  const maxSnap = Math.max(0, ...normalizedDetents);
105
92
  detentsValue.set(normalizedDetents);
93
+ isDraggableValue.set(isDraggable);
106
94
  sheetHeight.set(maxSnap);
107
- firstNonzeroDetent.set(normalizedDetents.find(d => d > 0) ?? 0);
108
- }, [normalizedDetents, sheetHeight, detentsValue, firstNonzeroDetent]);
95
+ firstNonzeroDetent.set(normalizedDetents.find(detent => detent > 0) ?? 0);
96
+ }, [normalizedDetents, isDraggable, sheetHeight, detentsValue, isDraggableValue, firstNonzeroDetent]);
109
97
  const animateToIndex = useCallback((targetIndex, velocity) => {
110
98
  'worklet';
111
99
 
@@ -128,123 +116,20 @@ export const BottomSheetBase = ({
128
116
  useEffect(() => {
129
117
  scheduleOnUI(animateToIndex, resolvedIndex);
130
118
  }, [animateToIndex, resolvedIndex, normalizedDetents]);
131
- const panGesture = Gesture.Pan().manualActivation(true).onTouchesDown(event => {
132
- 'worklet';
133
-
134
- panActivated.set(false);
135
- isDraggingSheet.set(false);
136
- isDraggingFromScrollable.set(false);
137
- isScrollableLocked.set(false);
138
- isTouchWithinScrollable.set(false);
139
- const touch = event.changedTouches[0] ?? event.allTouches[0];
140
- if (touch !== undefined) {
141
- panStartY.set(touch.absoluteY);
142
- if (hasScrollable.value) {
143
- const layout = measure(scrollableRef);
144
- if (layout !== null) {
145
- const withinX = touch.absoluteX >= layout.pageX && touch.absoluteX <= layout.pageX + layout.width;
146
- const withinY = touch.absoluteY >= layout.pageY && touch.absoluteY <= layout.pageY + layout.height;
147
- isTouchWithinScrollable.set(withinX && withinY);
148
- }
149
- }
150
- }
151
- }).onTouchesMove((event, stateManager) => {
152
- 'worklet';
153
-
154
- if (panActivated.value) return;
155
- const touch = event.changedTouches[0] ?? event.allTouches[0];
156
- if (!touch) return;
157
- const deltaY = touch.absoluteY - panStartY.value;
158
- if (hasScrollable.value && scrollOffset.value > 0 && isTouchWithinScrollable.value) {
159
- return;
160
- }
161
- if (deltaY > 0 || translateY.value > 0) {
162
- panActivated.set(true);
163
- stateManager.activate();
164
- }
165
- }).onBegin(() => {
166
- 'worklet';
167
-
168
- animationTarget.set(NaN);
169
- isDraggingSheet.set(false);
170
- isDraggingFromScrollable.set(false);
171
- dragStartTranslateY.set(translateY.value);
172
- }).onUpdate(event => {
173
- 'worklet';
174
-
175
- if (isDraggingSheet.value) {
176
- if (isDraggingFromScrollable.value) {
177
- scrollTo(scrollableRef, 0, 0, false);
178
- }
179
- } else {
180
- const isDraggingDown = event.translationY > 0;
181
- const canStartDrag = !hasScrollable.value || scrollOffset.value <= 0 || !isTouchWithinScrollable.value;
182
- if (!canStartDrag || !isDraggingDown && translateY.value <= 0) {
183
- return;
184
- }
185
- const isScrollableActive = hasScrollable.value && isScrollableGestureActive.value;
186
- isDraggingSheet.set(true);
187
- isDraggingFromScrollable.set(isScrollableActive && isTouchWithinScrollable.value);
188
- isScrollableLocked.set(hasScrollable.value);
189
- if (isTouchWithinScrollable.value && hasScrollable.value) {
190
- scrollTo(scrollableRef, 0, 0, false);
191
- }
192
- }
193
- const nextTranslate = Math.min(Math.max(dragStartTranslateY.value + event.translationY, 0), sheetHeight.value);
194
- translateY.set(nextTranslate);
195
- if (isDraggingSheet.value && nextTranslate <= 0 && isTouchWithinScrollable.value && hasScrollable.value) {
196
- isDraggingSheet.set(false);
197
- isScrollableLocked.set(false);
198
- const resolvedDetents = detentsValue.value;
199
- const maxSnap = sheetHeight.value;
200
- for (let i = resolvedDetents.length - 1; i >= 0; i--) {
201
- if (resolvedDetents[i] === maxSnap) {
202
- if (i !== currentIndex.value) scheduleOnRN(handleIndexChange, i);
203
- animateToIndex(i);
204
- break;
205
- }
206
- }
207
- }
208
- }).onEnd(event => {
209
- 'worklet';
210
-
211
- const wasDragging = isDraggingSheet.value;
212
- isScrollableLocked.set(false);
213
- isDraggingSheet.set(false);
214
- animationTarget.set(NaN);
215
- if (!wasDragging) {
216
- animateToIndex(currentIndex.value);
217
- return;
218
- }
219
- const maxSnap = sheetHeight.value;
220
- const allPositions = detentsValue.value.map((point, snapIndex) => ({
221
- index: snapIndex,
222
- translateY: maxSnap - point
223
- }));
224
- const currentTranslate = translateY.value;
225
- const velocityY = event.velocityY;
226
- let targetIndex = currentIndex.value;
227
- let minDistance = Infinity;
228
- for (const pos of allPositions) {
229
- const distance = Math.abs(currentTranslate - pos.translateY);
230
- if (distance < minDistance) {
231
- minDistance = distance;
232
- targetIndex = pos.index;
233
- }
234
- }
235
- if (Math.abs(velocityY) > VELOCITY_THRESHOLD) {
236
- if (velocityY > 0) {
237
- const lower = allPositions.filter(pos => pos.translateY > currentTranslate + 1).sort((a, b) => a.translateY - b.translateY)[0];
238
- if (lower !== undefined) targetIndex = lower.index;
239
- } else {
240
- const upper = allPositions.filter(pos => pos.translateY < currentTranslate - 1).sort((a, b) => b.translateY - a.translateY)[0];
241
- if (upper !== undefined) targetIndex = upper.index;
242
- }
243
- }
244
- const hasIndexChanged = targetIndex !== currentIndex.value;
245
- if (hasIndexChanged) scheduleOnRN(handleIndexChange, targetIndex);
246
- const shouldApplyVelocity = hasIndexChanged && Number.isFinite(velocityY);
247
- animateToIndex(targetIndex, shouldApplyVelocity ? velocityY : undefined);
119
+ const panGesture = useBottomSheetPanGesture({
120
+ animationTarget,
121
+ translateY,
122
+ sheetHeight,
123
+ detentsValue,
124
+ isDraggableValue,
125
+ currentIndex,
126
+ scrollOffset,
127
+ hasScrollable,
128
+ isScrollableGestureActive,
129
+ isScrollableLocked,
130
+ scrollableRef,
131
+ handleIndexChange,
132
+ animateToIndex
248
133
  });
249
134
  const handleSentinelLayout = event => {
250
135
  setContentHeight(event.nativeEvent.layout.y);
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","Pressable","StyleSheet","View","useWindowDimensions","Animated","measure","scrollTo","useAnimatedRef","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","scheduleOnRN","scheduleOnUI","Gesture","GestureDetector","useSafeAreaInsets","Portal","BottomSheetContextProvider","jsx","_jsx","jsxs","_jsxs","DEFAULT_OPEN_ANIMATION_CONFIG","dampingRatio","duration","overshootClamping","DEFAULT_CLOSE_ANIMATION_CONFIG","VELOCITY_THRESHOLD","resolveDetent","detent","contentHeight","maxHeight","Math","min","Error","clampIndex","index","detentCount","max","DefaultScrim","progress","style","opacity","value","absoluteFill","flex","backgroundColor","BottomSheetBase","children","detents","onIndexChange","position","externalPosition","openAnimationConfig","closeAnimationConfig","modal","renderScrim","height","screenHeight","insets","top","resolvedIndex","length","setContentHeight","normalizedDetents","map","point","resolved","initialMaxSnap","translateY","animationTarget","NaN","sheetHeight","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","isDraggingSheet","isDraggingFromScrollable","panStartY","panActivated","dragStartTranslateY","isTouchWithinScrollable","detentsValue","firstNonzeroDetent","find","d","currentIndex","internalPosition","undefined","set","scrimProgress","target","handleIndexChange","nextIndex","maxSnap","animateToIndex","targetIndex","velocity","targetTranslate","isOpening","baseConfig","springConfig","panGesture","Pan","manualActivation","onTouchesDown","event","touch","changedTouches","allTouches","absoluteY","layout","withinX","absoluteX","pageX","width","withinY","pageY","onTouchesMove","stateManager","deltaY","activate","onBegin","onUpdate","isDraggingDown","translationY","canStartDrag","isScrollableActive","nextTranslate","resolvedDetents","i","onEnd","wasDragging","allPositions","snapIndex","currentTranslate","velocityY","minDistance","Infinity","pos","distance","abs","lower","filter","sort","a","b","upper","hasIndexChanged","shouldApplyVelocity","Number","isFinite","handleSentinelLayout","nativeEvent","y","closedIndex","indexOf","handleScrimPress","wrapperStyle","transform","isCollapsed","pointerEvents","scrimElement","sheetContent","bottom","left","right","gesture","onLayout","sheetContainer","onPress"],"sourceRoot":"../../src","sources":["BottomSheetBase.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useState","Pressable","StyleSheet","View","useWindowDimensions","Animated","useAnimatedRef","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","scheduleOnUI","GestureDetector","useSafeAreaInsets","Portal","BottomSheetContextProvider","clampIndex","isDetentProgrammatic","resolveDetent","useBottomSheetPanGesture","jsx","_jsx","jsxs","_jsxs","programmatic","DEFAULT_OPEN_ANIMATION_CONFIG","dampingRatio","duration","overshootClamping","DEFAULT_CLOSE_ANIMATION_CONFIG","DefaultScrim","progress","style","opacity","value","absoluteFill","flex","backgroundColor","BottomSheetBase","children","detents","index","onIndexChange","position","externalPosition","openAnimationConfig","closeAnimationConfig","modal","renderScrim","height","screenHeight","insets","maxHeight","top","resolvedIndex","length","contentHeight","setContentHeight","Error","normalizedDetents","map","detent","resolved","Math","max","min","isDraggable","initialMaxSnap","translateY","animationTarget","NaN","sheetHeight","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","detentsValue","isDraggableValue","firstNonzeroDetent","find","currentIndex","internalPosition","undefined","set","scrimProgress","target","handleIndexChange","nextIndex","maxSnap","animateToIndex","targetIndex","velocity","targetTranslate","isOpening","baseConfig","springConfig","panGesture","handleSentinelLayout","event","nativeEvent","layout","y","closedIndex","indexOf","handleScrimPress","wrapperStyle","transform","isCollapsed","pointerEvents","scrimElement","sheetContent","bottom","left","right","gesture","onLayout","sheetContainer","onPress"],"sourceRoot":"../../src","sources":["BottomSheetBase.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAGxD,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,EAAEC,mBAAmB,QAAQ,cAAc;AAE/E,OAAOC,QAAQ,IACbC,cAAc,EACdC,mBAAmB,EACnBC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,UAAU,QACL,yBAAyB;AAChC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,SAASC,0BAA0B,QAAQ,yBAAsB;AACjE,SACEC,UAAU,EACVC,oBAAoB,EACpBC,aAAa,QACR,uBAAoB;AAE3B,SAASC,wBAAwB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEtE,SAASC,YAAY,QAAQ,uBAAoB;AAiBjD,MAAMC,6BAA+C,GAAG;EACtDC,YAAY,EAAE,CAAC;EACfC,QAAQ,EAAE,GAAG;EACbC,iBAAiB,EAAE;AACrB,CAAC;AAED,MAAMC,8BAAgD,GAAG;EACvDH,YAAY,EAAE,CAAC;EACfC,QAAQ,EAAE,GAAG;EACbC,iBAAiB,EAAE;AACrB,CAAC;AAED,MAAME,YAAY,GAAGA,CAAC;EAAEC;AAA4C,CAAC,KAAK;EACxE,MAAMC,KAAK,GAAGzB,gBAAgB,CAAC,OAAO;IAAE0B,OAAO,EAAEF,QAAQ,CAACG;EAAM,CAAC,CAAC,CAAC;EACnE,oBACEb,IAAA,CAACjB,QAAQ,CAACF,IAAI;IACZ8B,KAAK,EAAE,CACL/B,UAAU,CAACkC,YAAY,EACvB;MAAEC,IAAI,EAAE,CAAC;MAAEC,eAAe,EAAE;IAAqB,CAAC,EAClDL,KAAK;EACL,CACH,CAAC;AAEN,CAAC;AAED,OAAO,MAAMM,eAAe,GAAGA,CAAC;EAC9BC,QAAQ;EACRC,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;EACpBC,KAAK;EACLC,aAAa;EACbC,QAAQ,EAAEC,gBAAgB;EAC1BC,mBAAmB,GAAGpB,6BAA6B;EACnDqB,oBAAoB,GAAGjB,8BAA8B;EACrDkB,KAAK,GAAG,KAAK;EACbC;AACoB,CAAC,KAAK;EAC1B,MAAM;IAAEC,MAAM,EAAEC;EAAa,CAAC,GAAG/C,mBAAmB,CAAC,CAAC;EACtD,MAAMgD,MAAM,GAAGtC,iBAAiB,CAAC,CAAC;EAClC,MAAMuC,SAAS,GAAGF,YAAY,GAAGC,MAAM,CAACE,GAAG;EAC3C,MAAMC,aAAa,GAAGtC,UAAU,CAACyB,KAAK,EAAED,OAAO,CAACe,MAAM,CAAC;EACvD,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG1D,QAAQ,CAAC,CAAC,CAAC;EAErD,IAAIyC,OAAO,CAACe,MAAM,KAAK,CAAC,EAAE;IACxB,MAAM,IAAIG,KAAK,CAAC,0CAA0C,CAAC;EAC7D;EAEA,MAAMC,iBAAiB,GAAGnB,OAAO,CAACoB,GAAG,CAAEC,MAAM,IAAK;IAChD,MAAMC,QAAQ,GAAG5C,aAAa,CAAC2C,MAAM,EAAEL,aAAa,EAAEJ,SAAS,CAAC;IAChE,OAAOW,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACH,QAAQ,EAAEV,SAAS,CAAC,CAAC;EACnD,CAAC,CAAC;EACF,MAAMc,WAAW,GAAG1B,OAAO,CAACoB,GAAG,CAAEC,MAAM,IAAK,CAAC5C,oBAAoB,CAAC4C,MAAM,CAAC,CAAC;EAC1E,MAAMM,cAAc,GAAGJ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,GAAGL,iBAAiB,CAAC;EAExD,MAAMS,UAAU,GAAG3D,cAAc,CAAC0D,cAAc,CAAC;EACjD,MAAME,eAAe,GAAG5D,cAAc,CAAC6D,GAAG,CAAC;EAC3C,MAAMC,WAAW,GAAG9D,cAAc,CAAC0D,cAAc,CAAC;EAClD,MAAMK,YAAY,GAAG/D,cAAc,CAAC,CAAC,CAAC;EACtC,MAAMgE,aAAa,GAAGhE,cAAc,CAAC,KAAK,CAAC;EAC3C,MAAMiE,yBAAyB,GAAGjE,cAAc,CAAC,KAAK,CAAC;EACvD,MAAMkE,kBAAkB,GAAGlE,cAAc,CAAC,KAAK,CAAC;EAChD,MAAMmE,aAAa,GAAGvE,cAAc,CAAC,CAAC;EAEtC,MAAMwE,YAAY,GAAGpE,cAAc,CAACkD,iBAAiB,CAAC;EACtD,MAAMmB,gBAAgB,GAAGrE,cAAc,CAACyD,WAAW,CAAC;EACpD,MAAMa,kBAAkB,GAAGtE,cAAc,CACvCkD,iBAAiB,CAACqB,IAAI,CAAEnB,MAAM,IAAKA,MAAM,GAAG,CAAC,CAAC,IAAI,CACpD,CAAC;EACD,MAAMoB,YAAY,GAAGxE,cAAc,CAAC6C,aAAa,CAAC;EAClD,MAAM4B,gBAAgB,GAAG1E,eAAe,CAAC,MACvCuD,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEO,WAAW,CAACrC,KAAK,GAAGkC,UAAU,CAAClC,KAAK,CAClD,CAAC;EAED5B,mBAAmB,CACjB,MAAM4E,gBAAgB,CAAChD,KAAK,EAC3BA,KAAK,IAAK;IACT,IAAIU,gBAAgB,KAAKuC,SAAS,EAAEvC,gBAAgB,CAACwC,GAAG,CAAClD,KAAK,CAAC;EACjE,CACF,CAAC;EAED,MAAMmD,aAAa,GAAG7E,eAAe,CAAC,MAAM;IAC1C,MAAM8E,MAAM,GAAGP,kBAAkB,CAAC7C,KAAK;IACvC,IAAIoD,MAAM,IAAI,CAAC,EAAE,OAAO,CAAC;IACzB,MAAMvD,QAAQ,GAAGmD,gBAAgB,CAAChD,KAAK,GAAGoD,MAAM;IAChD,OAAOvB,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEjC,QAAQ,CAAC,CAAC;EAC3C,CAAC,CAAC;EAEF,MAAMwD,iBAAiB,GAAIC,SAAiB,IAAK;IAC/C9C,aAAa,GAAG8C,SAAS,CAAC;EAC5B,CAAC;EAED1F,SAAS,CAAC,MAAM;IACd,MAAM2F,OAAO,GAAG1B,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,GAAGL,iBAAiB,CAAC;IACjDkB,YAAY,CAACO,GAAG,CAACzB,iBAAiB,CAAC;IACnCmB,gBAAgB,CAACM,GAAG,CAAClB,WAAW,CAAC;IACjCK,WAAW,CAACa,GAAG,CAACK,OAAO,CAAC;IACxBV,kBAAkB,CAACK,GAAG,CAACzB,iBAAiB,CAACqB,IAAI,CAAEnB,MAAM,IAAKA,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;EAC7E,CAAC,EAAE,CACDF,iBAAiB,EACjBO,WAAW,EACXK,WAAW,EACXM,YAAY,EACZC,gBAAgB,EAChBC,kBAAkB,CACnB,CAAC;EAEF,MAAMW,cAAc,GAAG7F,WAAW,CAChC,CAAC8F,WAAmB,EAAEC,QAAiB,KAAK;IAC1C,SAAS;;IACT,MAAMH,OAAO,GAAGlB,WAAW,CAACrC,KAAK;IACjC,MAAM2D,eAAe,GAAGJ,OAAO,IAAIZ,YAAY,CAAC3C,KAAK,CAACyD,WAAW,CAAC,IAAI,CAAC,CAAC;IACxE,IAAItB,eAAe,CAACnC,KAAK,KAAK2D,eAAe,IAAID,QAAQ,KAAKT,SAAS,EAAE;MACvEF,YAAY,CAACG,GAAG,CAACO,WAAW,CAAC;MAC7B;IACF;IACAtB,eAAe,CAACe,GAAG,CAACS,eAAe,CAAC;IACpC,MAAMC,SAAS,GAAGD,eAAe,GAAGzB,UAAU,CAAClC,KAAK;IACpD,MAAM6D,UAAU,GAAGD,SAAS,GAAGjD,mBAAmB,GAAGC,oBAAoB;IACzE,MAAMkD,YAAY,GAChBJ,QAAQ,KAAKT,SAAS,GAAGY,UAAU,GAAG;MAAE,GAAGA,UAAU;MAAEH;IAAS,CAAC;IACnExB,UAAU,CAACgB,GAAG,CAAC1E,UAAU,CAACmF,eAAe,EAAEG,YAAY,CAAC,CAAC;IACzDf,YAAY,CAACG,GAAG,CAACO,WAAW,CAAC;EAC/B,CAAC,EACD,CACEtB,eAAe,EACfvB,oBAAoB,EACpBmC,YAAY,EACZJ,YAAY,EACZhC,mBAAmB,EACnB0B,WAAW,EACXH,UAAU,CAEd,CAAC;EAEDtE,SAAS,CAAC,MAAM;IACda,YAAY,CAAC+E,cAAc,EAAEpC,aAAa,CAAC;EAC7C,CAAC,EAAE,CAACoC,cAAc,EAAEpC,aAAa,EAAEK,iBAAiB,CAAC,CAAC;EAEtD,MAAMsC,UAAU,GAAG9E,wBAAwB,CAAC;IAC1CkD,eAAe;IACfD,UAAU;IACVG,WAAW;IACXM,YAAY;IACZC,gBAAgB;IAChBG,YAAY;IACZT,YAAY;IACZC,aAAa;IACbC,yBAAyB;IACzBC,kBAAkB;IAClBC,aAAa;IACbW,iBAAiB;IACjBG;EACF,CAAC,CAAC;EAEF,MAAMQ,oBAAoB,GAAIC,KAAwB,IAAK;IACzD1C,gBAAgB,CAAC0C,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,CAAC,CAAC;EAC9C,CAAC;EACD,MAAMC,WAAW,GAAG5C,iBAAiB,CAAC6C,OAAO,CAAC,CAAC,CAAC;EAChD,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,IAAIF,WAAW,KAAK,CAAC,CAAC,IAAIjD,aAAa,KAAKiD,WAAW,EAAE;IACzDhB,iBAAiB,CAACgB,WAAW,CAAC;IAC9B5F,YAAY,CAAC+E,cAAc,EAAEa,WAAW,CAAC;EAC3C,CAAC;EAED,MAAMG,YAAY,GAAGnG,gBAAgB,CAAC,OAAO;IAC3CoG,SAAS,EAAE,CAAC;MAAEvC,UAAU,EAAEA,UAAU,CAAClC;IAAM,CAAC,CAAC;IAC7Ce,MAAM,EAAEsB,WAAW,CAACrC,KAAK;IACzBD,OAAO,EAAEmC,UAAU,CAAClC,KAAK,IAAIqC,WAAW,CAACrC,KAAK,GAAG,CAAC,GAAG;EACvD,CAAC,CAAC,CAAC;EACH,MAAM0E,WAAW,GAAGjD,iBAAiB,CAACL,aAAa,CAAC,KAAK,CAAC;EAC1D,MAAMuD,aAAa,GAAG9D,KAAK,GAAI6D,WAAW,GAAG,MAAM,GAAG,MAAM,GAAI,UAAU;EAC1E,IAAIE,YAA8B,GAAG,IAAI;EACzC,IAAI9D,WAAW,KAAKmC,SAAS,EAAE;IAC7B2B,YAAY,GAAG9D,WAAW,CAACqC,aAAa,CAAC;EAC3C,CAAC,MAAM,IAAItC,KAAK,EAAE;IAChB+D,YAAY,gBAAGzF,IAAA,CAACS,YAAY;MAACC,QAAQ,EAAEsD;IAAc,CAAE,CAAC;EAC1D;EAEA,MAAM0B,YAAY,gBAChB1F,IAAA,CAACN,0BAA0B;IACzBmB,KAAK,EAAE;MACLkC,UAAU;MACVzB,QAAQ,EAAEuC,gBAAgB;MAC1BzC,KAAK,EAAEwC,YAAY;MACnBV,WAAW;MACXC,YAAY;MACZI,aAAa;MACbH,aAAa;MACbC,yBAAyB;MACzBC,kBAAkB;MAClBsB;IACF,CAAE;IAAA1D,QAAA,eAEFlB,IAAA,CAACjB,QAAQ,CAACF,IAAI;MACZ8B,KAAK,EAAE,CACL;QACEW,QAAQ,EAAE,UAAU;QACpBqE,MAAM,EAAE,CAAC;QACTC,IAAI,EAAE,CAAC;QACPC,KAAK,EAAE;MACT,CAAC,EACDR,YAAY,CACZ;MACFG,aAAa,EAAC,UAAU;MAAAtE,QAAA,eAExBlB,IAAA,CAACT,eAAe;QAACuG,OAAO,EAAElB,UAAW;QAAA1D,QAAA,eACnChB,KAAA,CAACrB,IAAI;UAAC8B,KAAK,EAAE;YAAEI,IAAI,EAAE;UAAE,CAAE;UAACyE,aAAa,EAAC,UAAU;UAAAtE,QAAA,GAC/CA,QAAQ,eACTlB,IAAA,CAACnB,IAAI;YAACkH,QAAQ,EAAElB,oBAAqB;YAACW,aAAa,EAAC;UAAM,CAAE,CAAC;QAAA,CACzD;MAAC,CACQ;IAAC,CACL;EAAC,CACU,CAC7B;EAED,MAAMQ,cAAc,gBAClB9F,KAAA,CAACnB,QAAQ,CAACF,IAAI;IACZ8B,KAAK,EAAE/B,UAAU,CAACkC,YAAa;IAC/B0E,aAAa,EAAEA,aAAc;IAAAtE,QAAA,GAE5BQ,KAAK,IAAI+D,YAAY,KAAK,IAAI,gBAC7BzF,IAAA,CAACrB,SAAS;MAACgC,KAAK,EAAE/B,UAAU,CAACkC,YAAa;MAACmF,OAAO,EAAEb,gBAAiB;MAAAlE,QAAA,EAClEuE;IAAY,CACJ,CAAC,GACV,IAAI,EACPC,YAAY;EAAA,CACA,CAChB;EACD,IAAIhE,KAAK,EAAE,oBAAO1B,IAAA,CAACP,MAAM;IAAAyB,QAAA,EAAE8E;EAAc,CAAS,CAAC;EAEnD,OAAOA,cAAc;AACvB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useEffect","useId","useReducer","useState","StyleSheet","View","jsx","_jsx","jsxs","_jsxs","PortalContext","PortalHost","context","forceRender","x","subscribe","Array","from","getPortals","entries","map","key","element","style","absoluteFill","pointerEvents","children","BottomSheetProvider","portals","Map","subscribers","Set","notify","forEach","subscriber","addPortal","set","removePortal","delete","callback","add","Provider","value","Portal","Error","id"],"sourceRoot":"../../src","sources":["BottomSheetProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useEffect","useId","useReducer","useState","StyleSheet","View","jsx","_jsx","jsxs","_jsxs","PortalContext","PortalHost","context","forceRender","x","subscribe","Array","from","getPortals","entries","map","key","element","style","absoluteFill","pointerEvents","children","BottomSheetProvider","portals","Map","subscribers","Set","notify","forEach","subscriber","addPortal","set","removePortal","delete","callback","add","Provider","value","Portal","Error","id"],"sourceRoot":"../../src","sources":["BottomSheetProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ export const programmatic = value => ({
4
+ value,
5
+ programmatic: true
6
+ });
7
+ export const detentValue = detent => {
8
+ if (typeof detent === 'object' && detent !== null) return detent.value;
9
+ return detent;
10
+ };
11
+ export const isDetentProgrammatic = detent => {
12
+ if (typeof detent === 'object' && detent !== null) {
13
+ return detent.programmatic === true;
14
+ }
15
+ return false;
16
+ };
17
+ const VELOCITY_THRESHOLD = 800;
18
+ export const findSnapTarget = (currentTranslate, velocityY, currentIndex, allPositions) => {
19
+ 'worklet';
20
+
21
+ const draggablePositions = allPositions.filter(position => position.isDraggable);
22
+ const effectivePositions = draggablePositions.length > 0 ? draggablePositions : allPositions;
23
+ let targetIndex = currentIndex;
24
+ let minDistance = Infinity;
25
+ for (const position of effectivePositions) {
26
+ const distance = Math.abs(currentTranslate - position.translateY);
27
+ if (distance < minDistance) {
28
+ minDistance = distance;
29
+ targetIndex = position.index;
30
+ }
31
+ }
32
+ if (Math.abs(velocityY) > VELOCITY_THRESHOLD) {
33
+ if (velocityY > 0) {
34
+ const lowerPosition = effectivePositions.filter(position => position.translateY > currentTranslate + 1).sort((a, b) => a.translateY - b.translateY)[0];
35
+ if (lowerPosition !== undefined) targetIndex = lowerPosition.index;
36
+ } else {
37
+ const upperPosition = effectivePositions.filter(position => position.translateY < currentTranslate - 1).sort((a, b) => b.translateY - a.translateY)[0];
38
+ if (upperPosition !== undefined) targetIndex = upperPosition.index;
39
+ }
40
+ }
41
+ return targetIndex;
42
+ };
43
+ export const resolveDetent = (detent, contentHeight, maxHeight) => {
44
+ const detentValueInput = detentValue(detent);
45
+ if (typeof detentValueInput === 'number') return detentValueInput;
46
+ if (detentValueInput === 'max') {
47
+ return contentHeight > 0 ? Math.min(contentHeight, maxHeight) : maxHeight;
48
+ }
49
+ throw new Error(`Invalid detent: \`${detentValueInput}\`.`);
50
+ };
51
+ export const clampIndex = (index, detentCount) => {
52
+ if (detentCount <= 0) return 0;
53
+ return Math.min(Math.max(index, 0), detentCount - 1);
54
+ };
55
+ //# sourceMappingURL=bottomSheetUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["programmatic","value","detentValue","detent","isDetentProgrammatic","VELOCITY_THRESHOLD","findSnapTarget","currentTranslate","velocityY","currentIndex","allPositions","draggablePositions","filter","position","isDraggable","effectivePositions","length","targetIndex","minDistance","Infinity","distance","Math","abs","translateY","index","lowerPosition","sort","a","b","undefined","upperPosition","resolveDetent","contentHeight","maxHeight","detentValueInput","min","Error","clampIndex","detentCount","max"],"sourceRoot":"../../src","sources":["bottomSheetUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -5,4 +5,6 @@ export { ModalBottomSheet } from "./ModalBottomSheet.js";
5
5
  export { BottomSheetProvider } from "./BottomSheetProvider.js";
6
6
  export { BottomSheetFlatList } from "./BottomSheetFlatList.js";
7
7
  export { BottomSheetScrollView } from "./BottomSheetScrollView.js";
8
+ export { programmatic } from "./BottomSheetBase.js";
9
+ export { useBottomSheetScrollable } from "./useBottomSheetScrollable.js";
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BottomSheet","ModalBottomSheet","BottomSheetProvider","BottomSheetFlatList","BottomSheetScrollView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,kBAAe;AAE3C,SAASC,gBAAgB,QAAQ,uBAAoB;AAErD,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,mBAAmB,QAAQ,0BAAuB;AAK3D,SAASC,qBAAqB,QAAQ,4BAAyB","ignoreList":[]}
1
+ {"version":3,"names":["BottomSheet","ModalBottomSheet","BottomSheetProvider","BottomSheetFlatList","BottomSheetScrollView","programmatic","useBottomSheetScrollable"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,kBAAe;AAE3C,SAASC,gBAAgB,QAAQ,uBAAoB;AAErD,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,mBAAmB,QAAQ,0BAAuB;AAK3D,SAASC,qBAAqB,QAAQ,4BAAyB;AAM/D,SAASC,YAAY,QAAQ,sBAAmB;AAChD,SAASC,wBAAwB,QAAQ,+BAA4B","ignoreList":[]}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ import { Gesture } from 'react-native-gesture-handler';
4
+ import { scheduleOnRN } from 'react-native-worklets';
5
+ import { measure, scrollTo, useSharedValue } from 'react-native-reanimated';
6
+ import { findSnapTarget } from "./bottomSheetUtils.js";
7
+ export const useBottomSheetPanGesture = ({
8
+ animationTarget,
9
+ translateY,
10
+ sheetHeight,
11
+ detentsValue,
12
+ isDraggableValue,
13
+ currentIndex,
14
+ scrollOffset,
15
+ hasScrollable,
16
+ isScrollableGestureActive,
17
+ isScrollableLocked,
18
+ scrollableRef,
19
+ handleIndexChange,
20
+ animateToIndex
21
+ }) => {
22
+ const isDraggingSheet = useSharedValue(false);
23
+ const isDraggingFromScrollable = useSharedValue(false);
24
+ const panStartY = useSharedValue(0);
25
+ const panActivated = useSharedValue(false);
26
+ const dragStartTranslateY = useSharedValue(0);
27
+ const isTouchWithinScrollable = useSharedValue(false);
28
+ return Gesture.Pan().manualActivation(true).onTouchesDown(event => {
29
+ 'worklet';
30
+
31
+ panActivated.set(false);
32
+ isDraggingSheet.set(false);
33
+ isDraggingFromScrollable.set(false);
34
+ isScrollableLocked.set(false);
35
+ isTouchWithinScrollable.set(false);
36
+ const touch = event.changedTouches[0] ?? event.allTouches[0];
37
+ if (touch !== undefined) {
38
+ panStartY.set(touch.absoluteY);
39
+ if (hasScrollable.value) {
40
+ const layout = measure(scrollableRef);
41
+ if (layout !== null) {
42
+ const withinX = touch.absoluteX >= layout.pageX && touch.absoluteX <= layout.pageX + layout.width;
43
+ const withinY = touch.absoluteY >= layout.pageY && touch.absoluteY <= layout.pageY + layout.height;
44
+ isTouchWithinScrollable.set(withinX && withinY);
45
+ }
46
+ }
47
+ }
48
+ }).onTouchesMove((event, stateManager) => {
49
+ 'worklet';
50
+
51
+ if (panActivated.value) return;
52
+ const touch = event.changedTouches[0] ?? event.allTouches[0];
53
+ if (!touch) return;
54
+ const deltaY = touch.absoluteY - panStartY.value;
55
+ if (hasScrollable.value && scrollOffset.value > 0 && isTouchWithinScrollable.value) {
56
+ return;
57
+ }
58
+ if (deltaY > 0 || translateY.value > 0) {
59
+ panActivated.set(true);
60
+ stateManager.activate();
61
+ }
62
+ }).onBegin(() => {
63
+ 'worklet';
64
+
65
+ animationTarget.set(NaN);
66
+ isDraggingSheet.set(false);
67
+ isDraggingFromScrollable.set(false);
68
+ dragStartTranslateY.set(translateY.value);
69
+ }).onUpdate(event => {
70
+ 'worklet';
71
+
72
+ if (isDraggingSheet.value) {
73
+ if (isDraggingFromScrollable.value) {
74
+ scrollTo(scrollableRef, 0, 0, false);
75
+ }
76
+ } else {
77
+ const isDraggingDown = event.translationY > 0;
78
+ const canStartDrag = !hasScrollable.value || scrollOffset.value <= 0 || !isTouchWithinScrollable.value;
79
+ if (!canStartDrag || !isDraggingDown && translateY.value <= 0) {
80
+ return;
81
+ }
82
+ const isScrollableActive = hasScrollable.value && isScrollableGestureActive.value;
83
+ isDraggingSheet.set(true);
84
+ isDraggingFromScrollable.set(isScrollableActive && isTouchWithinScrollable.value);
85
+ dragStartTranslateY.set(translateY.value - event.translationY);
86
+ isScrollableLocked.set(hasScrollable.value);
87
+ if (isTouchWithinScrollable.value && hasScrollable.value) {
88
+ scrollTo(scrollableRef, 0, 0, false);
89
+ }
90
+ }
91
+ const rawTranslate = dragStartTranslateY.value + event.translationY;
92
+ const nextTranslate = Math.min(Math.max(rawTranslate, 0), sheetHeight.value);
93
+ translateY.set(nextTranslate);
94
+ if (isDraggingSheet.value && rawTranslate < 0 && isTouchWithinScrollable.value && hasScrollable.value) {
95
+ isDraggingSheet.set(false);
96
+ isScrollableLocked.set(false);
97
+ const resolvedDetentValues = detentsValue.value;
98
+ const draggable = isDraggableValue.value;
99
+ let targetSnapIndex = -1;
100
+ let targetSnapValue = -1;
101
+ for (let i = resolvedDetentValues.length - 1; i >= 0; i--) {
102
+ const detentValue = resolvedDetentValues[i];
103
+ if (detentValue !== undefined && (draggable[i] ?? true) && detentValue > targetSnapValue) {
104
+ targetSnapValue = detentValue;
105
+ targetSnapIndex = i;
106
+ }
107
+ }
108
+ if (targetSnapIndex === -1) {
109
+ const maxSnap = sheetHeight.value;
110
+ for (let i = resolvedDetentValues.length - 1; i >= 0; i--) {
111
+ if (resolvedDetentValues[i] === maxSnap) {
112
+ targetSnapIndex = i;
113
+ break;
114
+ }
115
+ }
116
+ }
117
+ if (targetSnapIndex !== -1) {
118
+ if (targetSnapIndex !== currentIndex.value) {
119
+ scheduleOnRN(handleIndexChange, targetSnapIndex);
120
+ }
121
+ animateToIndex(targetSnapIndex);
122
+ }
123
+ }
124
+ }).onEnd(event => {
125
+ 'worklet';
126
+
127
+ const wasDragging = isDraggingSheet.value;
128
+ isScrollableLocked.set(false);
129
+ isDraggingSheet.set(false);
130
+ animationTarget.set(NaN);
131
+ if (!wasDragging) {
132
+ animateToIndex(currentIndex.value);
133
+ return;
134
+ }
135
+ const maxSnap = sheetHeight.value;
136
+ const draggable = isDraggableValue.value;
137
+ const allPositions = detentsValue.value.map((detentValue, snapIndex) => ({
138
+ index: snapIndex,
139
+ translateY: maxSnap - detentValue,
140
+ isDraggable: draggable[snapIndex] ?? true
141
+ }));
142
+ const targetIndex = findSnapTarget(translateY.value, event.velocityY, currentIndex.value, allPositions);
143
+ const hasIndexChanged = targetIndex !== currentIndex.value;
144
+ if (hasIndexChanged) scheduleOnRN(handleIndexChange, targetIndex);
145
+ const shouldApplyVelocity = hasIndexChanged && Number.isFinite(event.velocityY);
146
+ animateToIndex(targetIndex, shouldApplyVelocity ? event.velocityY : undefined);
147
+ });
148
+ };
149
+ //# sourceMappingURL=useBottomSheetPanGesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Gesture","scheduleOnRN","measure","scrollTo","useSharedValue","findSnapTarget","useBottomSheetPanGesture","animationTarget","translateY","sheetHeight","detentsValue","isDraggableValue","currentIndex","scrollOffset","hasScrollable","isScrollableGestureActive","isScrollableLocked","scrollableRef","handleIndexChange","animateToIndex","isDraggingSheet","isDraggingFromScrollable","panStartY","panActivated","dragStartTranslateY","isTouchWithinScrollable","Pan","manualActivation","onTouchesDown","event","set","touch","changedTouches","allTouches","undefined","absoluteY","value","layout","withinX","absoluteX","pageX","width","withinY","pageY","height","onTouchesMove","stateManager","deltaY","activate","onBegin","NaN","onUpdate","isDraggingDown","translationY","canStartDrag","isScrollableActive","rawTranslate","nextTranslate","Math","min","max","resolvedDetentValues","draggable","targetSnapIndex","targetSnapValue","i","length","detentValue","maxSnap","onEnd","wasDragging","allPositions","map","snapIndex","index","isDraggable","targetIndex","velocityY","hasIndexChanged","shouldApplyVelocity","Number","isFinite"],"sourceRoot":"../../src","sources":["useBottomSheetPanGesture.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,8 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { SharedValue, WithSpringConfig } from 'react-native-reanimated';
3
- export type Detent = number | 'max';
3
+ import type { Detent } from './bottomSheetUtils';
4
+ export type { Detent, DetentValue } from './bottomSheetUtils';
5
+ export { programmatic } from './bottomSheetUtils';
4
6
  export interface BottomSheetCommonProps {
5
7
  children: ReactNode;
6
8
  detents?: Detent[];
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetBase.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAiB7E,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;CAC5D;AA8CD,eAAO,MAAM,eAAe,GAAI,yIAU7B,oBAAoB,4CAiTtB,CAAC"}
1
+ {"version":3,"file":"BottomSheetBase.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetBase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAmB7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;CAC5D;AA2BD,eAAO,MAAM,eAAe,GAAI,yIAU7B,oBAAoB,4CAmMtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetProvider.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAyBvC,eAAO,MAAM,mBAAmB,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CA+BxE,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,SAgB3D,CAAC"}
1
+ {"version":3,"file":"BottomSheetProvider.d.ts","sourceRoot":"","sources":["../../../src/BottomSheetProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA0BvC,eAAO,MAAM,mBAAmB,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAgCxE,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,SAkB3D,CAAC"}
@@ -0,0 +1,16 @@
1
+ export type DetentValue = number | 'max';
2
+ export type Detent = DetentValue | {
3
+ value: DetentValue;
4
+ programmatic?: boolean;
5
+ };
6
+ export declare const programmatic: (value: DetentValue) => Detent;
7
+ export declare const detentValue: (detent: Detent) => DetentValue;
8
+ export declare const isDetentProgrammatic: (detent: Detent) => boolean;
9
+ export declare const findSnapTarget: (currentTranslate: number, velocityY: number, currentIndex: number, allPositions: {
10
+ index: number;
11
+ translateY: number;
12
+ isDraggable: boolean;
13
+ }[]) => number;
14
+ export declare const resolveDetent: (detent: Detent, contentHeight: number, maxHeight: number) => number;
15
+ export declare const clampIndex: (index: number, detentCount: number) => number;
16
+ //# sourceMappingURL=bottomSheetUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bottomSheetUtils.d.ts","sourceRoot":"","sources":["../../../src/bottomSheetUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzC,MAAM,MAAM,MAAM,GACd,WAAW,GACX;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,MAGhD,CAAC;AAEH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,KAAG,WAG5C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,KAAG,OAKrD,CAAC;AAIF,eAAO,MAAM,cAAc,GACzB,kBAAkB,MAAM,EACxB,WAAW,MAAM,EACjB,cAAc,MAAM,EACpB,cAAc;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAAE,WAkC5E,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,WAAW,MAAM,WAQlB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,aAAa,MAAM,WAG5D,CAAC"}
@@ -7,5 +7,7 @@ export { BottomSheetFlatList } from './BottomSheetFlatList';
7
7
  export type { BottomSheetFlatListMethods, BottomSheetFlatListProps, } from './BottomSheetFlatList';
8
8
  export { BottomSheetScrollView } from './BottomSheetScrollView';
9
9
  export type { BottomSheetScrollViewMethods, BottomSheetScrollViewProps, } from './BottomSheetScrollView';
10
- export type { Detent } from './BottomSheetBase';
10
+ export type { Detent, DetentValue } from './BottomSheetBase';
11
+ export { programmatic } from './BottomSheetBase';
12
+ export { useBottomSheetScrollable } from './useBottomSheetScrollable';
11
13
  //# sourceMappingURL=index.d.ts.map