@lodev09/react-native-true-sheet 3.0.0-beta.14 → 3.0.0-beta.16

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 (29) hide show
  1. package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +6 -5
  2. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +18 -11
  3. package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewManager.kt +15 -1
  4. package/android/src/main/java/com/lodev09/truesheet/events/TrueSheetStateEvents.kt +3 -3
  5. package/ios/TrueSheetView.mm +10 -6
  6. package/ios/TrueSheetViewController.h +5 -1
  7. package/ios/TrueSheetViewController.mm +77 -45
  8. package/ios/core/TrueSheetBlurView.h +24 -0
  9. package/ios/{utils/ConversionUtil.mm → core/TrueSheetBlurView.mm} +65 -3
  10. package/ios/events/TrueSheetStateEvents.h +1 -1
  11. package/ios/events/TrueSheetStateEvents.mm +2 -2
  12. package/ios/utils/GestureUtil.h +7 -0
  13. package/ios/utils/GestureUtil.mm +12 -0
  14. package/lib/module/TrueSheet.js +2 -0
  15. package/lib/module/TrueSheet.js.map +1 -1
  16. package/lib/module/fabric/TrueSheetViewNativeComponent.ts +6 -1
  17. package/lib/module/reanimated/ReanimatedTrueSheet.js +6 -6
  18. package/lib/module/reanimated/ReanimatedTrueSheet.js.map +1 -1
  19. package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
  20. package/lib/typescript/src/TrueSheet.types.d.ts +27 -3
  21. package/lib/typescript/src/TrueSheet.types.d.ts.map +1 -1
  22. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts +4 -1
  23. package/lib/typescript/src/fabric/TrueSheetViewNativeComponent.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/src/TrueSheet.tsx +2 -0
  26. package/src/TrueSheet.types.ts +30 -3
  27. package/src/fabric/TrueSheetViewNativeComponent.ts +6 -1
  28. package/src/reanimated/ReanimatedTrueSheet.tsx +6 -6
  29. package/ios/utils/ConversionUtil.h +0 -24
@@ -203,9 +203,9 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
203
203
  eventDispatcher?.dispatchEvent(DragEndEvent(surfaceId, id, index, position, detent))
204
204
  }
205
205
 
206
- override fun viewControllerDidChangePosition(index: Float, position: Float, detent: Float, transitioning: Boolean) {
206
+ override fun viewControllerDidChangePosition(index: Float, position: Float, detent: Float, realtime: Boolean) {
207
207
  val surfaceId = UIManagerHelper.getSurfaceId(this)
208
- eventDispatcher?.dispatchEvent(PositionChangeEvent(surfaceId, id, index, position, detent, transitioning))
208
+ eventDispatcher?.dispatchEvent(PositionChangeEvent(surfaceId, id, index, position, detent, realtime))
209
209
  }
210
210
 
211
211
  override fun viewControllerDidChangeSize(width: Int, height: Int) {
@@ -273,6 +273,10 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
273
273
  viewController.dismissible = dismissible
274
274
  }
275
275
 
276
+ fun setDraggable(draggable: Boolean) {
277
+ viewController.draggable = draggable
278
+ }
279
+
276
280
  fun setGrabber(grabber: Boolean) {
277
281
  viewController.grabber = grabber
278
282
  }
@@ -280,9 +284,6 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
280
284
  fun setDetents(newDetents: MutableList<Double>) {
281
285
  viewController.detents = newDetents
282
286
  }
283
-
284
- fun setBlurTint(tint: String?) {}
285
-
286
287
  fun setEdgeToEdgeFullScreen(edgeToEdgeFullScreen: Boolean) {
287
288
  viewController.edgeToEdgeFullScreen = edgeToEdgeFullScreen
288
289
  }
@@ -39,7 +39,7 @@ interface TrueSheetViewControllerDelegate {
39
39
  fun viewControllerDidDragBegin(index: Int, position: Float, detent: Float)
40
40
  fun viewControllerDidDragChange(index: Int, position: Float, detent: Float)
41
41
  fun viewControllerDidDragEnd(index: Int, position: Float, detent: Float)
42
- fun viewControllerDidChangePosition(index: Float, position: Float, detent: Float, transitioning: Boolean)
42
+ fun viewControllerDidChangePosition(index: Float, position: Float, detent: Float, realtime: Boolean)
43
43
  fun viewControllerDidChangeSize(width: Int, height: Int)
44
44
  fun viewControllerWillFocus()
45
45
  fun viewControllerDidFocus()
@@ -153,6 +153,12 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
153
153
  }
154
154
  }
155
155
 
156
+ var draggable: Boolean = true
157
+ set(value) {
158
+ field = value
159
+ behavior?.isDraggable = value
160
+ }
161
+
156
162
  // ====================================================================
157
163
  // MARK: - Computed Properties
158
164
  // ====================================================================
@@ -234,6 +240,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
234
240
  setCanceledOnTouchOutside(dismissible)
235
241
  setCancelable(dismissible)
236
242
  behavior.isHideable = dismissible
243
+ behavior.isDraggable = draggable
237
244
  }
238
245
  }
239
246
 
@@ -267,7 +274,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
267
274
  val detent = getDetentValueForIndex(detentInfo.index)
268
275
  val positionPx = bottomSheetView?.let { ScreenUtils.getScreenY(it) } ?: screenHeight
269
276
  delegate?.viewControllerDidPresent(detentInfo.index, detentInfo.position, detent)
270
- emitChangePositionDelegate(detentInfo.index, positionPx, transitioning = true)
277
+ emitChangePositionDelegate(detentInfo.index, positionPx, realtime = false)
271
278
 
272
279
  // Notify parent sheet that it has lost focus (after this sheet appeared)
273
280
  parentSheetView?.viewControllerDidBlur()
@@ -308,7 +315,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
308
315
  val positionPx = getCurrentPositionPx(sheetView)
309
316
  val detentIndex = getDetentIndexForPosition(positionPx)
310
317
 
311
- emitChangePositionDelegate(detentIndex, positionPx, transitioning = false)
318
+ emitChangePositionDelegate(detentIndex, positionPx, realtime = true)
312
319
 
313
320
  when (behavior.state) {
314
321
  BottomSheetBehavior.STATE_DRAGGING,
@@ -403,7 +410,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
403
410
  dialog?.window?.decorView?.visibility = View.INVISIBLE
404
411
 
405
412
  // Emit off-screen position (detent = 0 since sheet is fully hidden)
406
- emitChangePositionDelegate(currentDetentIndex, screenHeight, transitioning = true)
413
+ emitChangePositionDelegate(currentDetentIndex, screenHeight, realtime = false)
407
414
  }
408
415
 
409
416
  /**
@@ -416,7 +423,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
416
423
 
417
424
  // Emit current position
418
425
  val positionPx = bottomSheetView?.let { ScreenUtils.getScreenY(it) } ?: screenHeight
419
- emitChangePositionDelegate(currentDetentIndex, positionPx, transitioning = true)
426
+ emitChangePositionDelegate(currentDetentIndex, positionPx, realtime = false)
420
427
  }
421
428
 
422
429
  // ====================================================================
@@ -461,7 +468,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
461
468
  fun dismiss() {
462
469
  this.post {
463
470
  // Emit off-screen position (detent = 0 since sheet is fully hidden)
464
- emitChangePositionDelegate(currentDetentIndex, screenHeight, transitioning = true)
471
+ emitChangePositionDelegate(currentDetentIndex, screenHeight, realtime = false)
465
472
  }
466
473
  dialog?.dismiss()
467
474
  }
@@ -515,7 +522,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
515
522
  bottomSheet.removeView(it)
516
523
  }
517
524
 
518
- if (!grabber) return
525
+ if (!grabber || !draggable) return
519
526
 
520
527
  val grabberView = View(reactContext).apply {
521
528
  tag = GRABBER_TAG
@@ -635,16 +642,16 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
635
642
  * Emits position change to the delegate if the position has changed.
636
643
  * @param index The current detent index (discrete, used as fallback)
637
644
  * @param positionPx The current position in pixels (screen Y coordinate)
638
- * @param transitioning Whether the sheet is transitioning (programmatic) vs dragging
645
+ * @param realtime Whether the position is a real-time value (during drag or animation tracking)
639
646
  */
640
- private fun emitChangePositionDelegate(index: Int, positionPx: Int, transitioning: Boolean) {
647
+ private fun emitChangePositionDelegate(index: Int, positionPx: Int, realtime: Boolean) {
641
648
  if (positionPx == lastEmittedPositionPx) return
642
649
 
643
650
  lastEmittedPositionPx = positionPx
644
651
  val position = positionPx.pxToDp()
645
652
  val interpolatedIndex = getInterpolatedIndexForPosition(positionPx)
646
653
  val detent = getDetentValueForIndex(kotlin.math.round(interpolatedIndex).toInt())
647
- delegate?.viewControllerDidChangePosition(interpolatedIndex, position, detent, transitioning)
654
+ delegate?.viewControllerDidChangePosition(interpolatedIndex, position, detent, realtime)
648
655
  }
649
656
 
650
657
  /**
@@ -863,7 +870,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
863
870
  this.post {
864
871
  positionFooter()
865
872
  val positionPx = bottomSheetView?.let { ScreenUtils.getScreenY(it) } ?: screenHeight
866
- emitChangePositionDelegate(currentDetentIndex, positionPx, transitioning = true)
873
+ emitChangePositionDelegate(currentDetentIndex, positionPx, realtime = false)
867
874
  }
868
875
  }
869
876
  }
@@ -114,6 +114,11 @@ class TrueSheetViewManager :
114
114
  view.setDismissible(dismissible)
115
115
  }
116
116
 
117
+ @ReactProp(name = "draggable", defaultBoolean = true)
118
+ override fun setDraggable(view: TrueSheetView, draggable: Boolean) {
119
+ view.setDraggable(draggable)
120
+ }
121
+
117
122
  @ReactProp(name = "dimmed", defaultBoolean = true)
118
123
  override fun setDimmed(view: TrueSheetView, dimmed: Boolean) {
119
124
  view.setDimmed(dimmed)
@@ -153,7 +158,16 @@ class TrueSheetViewManager :
153
158
  @ReactProp(name = "blurTint")
154
159
  override fun setBlurTint(view: TrueSheetView, tint: String?) {
155
160
  // iOS-specific prop - no-op on Android
156
- view.setBlurTint(tint)
161
+ }
162
+
163
+ @ReactProp(name = "blurIntensity", defaultDouble = 1.0)
164
+ override fun setBlurIntensity(view: TrueSheetView, value: Double) {
165
+ // iOS-specific prop - no-op on Android
166
+ }
167
+
168
+ @ReactProp(name = "blurInteraction", defaultBoolean = false)
169
+ override fun setBlurInteraction(view: TrueSheetView, value: Boolean) {
170
+ // iOS-specific prop - no-op on Android
157
171
  }
158
172
 
159
173
  @ReactProp(name = "edgeToEdgeFullScreen", defaultBoolean = false)
@@ -28,7 +28,7 @@ class DetentChangeEvent(surfaceId: Int, viewId: Int, private val index: Int, pri
28
28
 
29
29
  /**
30
30
  * Fired continuously for position updates during drag and animation
31
- * Payload: { index: number, position: number, detent: number, transitioning: boolean }
31
+ * Payload: { index: number, position: number, detent: number, realtime: boolean }
32
32
  */
33
33
  class PositionChangeEvent(
34
34
  surfaceId: Int,
@@ -36,7 +36,7 @@ class PositionChangeEvent(
36
36
  private val index: Float,
37
37
  private val position: Float,
38
38
  private val detent: Float,
39
- private val transitioning: Boolean = false
39
+ private val realtime: Boolean = false
40
40
  ) : Event<PositionChangeEvent>(surfaceId, viewId) {
41
41
 
42
42
  override fun getEventName(): String = EVENT_NAME
@@ -46,7 +46,7 @@ class PositionChangeEvent(
46
46
  putDouble("index", index.toDouble())
47
47
  putDouble("position", position.toDouble())
48
48
  putDouble("detent", detent.toDouble())
49
- putBoolean("transitioning", transitioning)
49
+ putBoolean("realtime", realtime)
50
50
  }
51
51
 
52
52
  companion object {
@@ -121,6 +121,12 @@ using namespace facebook::react;
121
121
  // Blur tint
122
122
  _controller.blurTint = !newProps.blurTint.empty() ? RCTNSStringFromString(newProps.blurTint) : nil;
123
123
 
124
+ // Blur intensity (-1 means use system default)
125
+ _controller.blurIntensity = newProps.blurIntensity >= 0 ? @(newProps.blurIntensity) : nil;
126
+
127
+ // Blur interaction
128
+ _controller.blurInteraction = newProps.blurInteraction;
129
+
124
130
  // Corner radius
125
131
  _controller.cornerRadius = newProps.cornerRadius < 0 ? nil : @(newProps.cornerRadius);
126
132
 
@@ -132,6 +138,7 @@ using namespace facebook::react;
132
138
  _controller.grabber = newProps.grabber;
133
139
  _controller.pageSizing = newProps.pageSizing;
134
140
  _controller.modalInPresentation = !newProps.dismissible;
141
+ _controller.draggable = newProps.draggable;
135
142
  _controller.dimmed = newProps.dimmed;
136
143
 
137
144
  if (newProps.dimmedDetentIndex >= 0) {
@@ -187,6 +194,7 @@ using namespace facebook::react;
187
194
  [self->_controller setupSheetDetents];
188
195
  [self->_controller applyActiveDetent];
189
196
  }];
197
+ [_controller updateDraggable];
190
198
  } else if (_initialDetentIndex >= 0) {
191
199
  [self presentAtIndex:_initialDetentIndex animated:_initialDetentAnimated completion:nil];
192
200
  }
@@ -417,12 +425,8 @@ using namespace facebook::react;
417
425
  - (void)viewControllerDidChangePosition:(CGFloat)index
418
426
  position:(CGFloat)position
419
427
  detent:(CGFloat)detent
420
- transitioning:(BOOL)transitioning {
421
- [TrueSheetStateEvents emitPositionChange:_eventEmitter
422
- index:index
423
- position:position
424
- detent:detent
425
- transitioning:transitioning];
428
+ realtime:(BOOL)realtime {
429
+ [TrueSheetStateEvents emitPositionChange:_eventEmitter index:index position:position detent:detent realtime:realtime];
426
430
  }
427
431
 
428
432
  - (void)viewControllerDidChangeSize:(CGSize)size {
@@ -28,7 +28,7 @@ NS_ASSUME_NONNULL_BEGIN
28
28
  - (void)viewControllerDidChangePosition:(CGFloat)index
29
29
  position:(CGFloat)position
30
30
  detent:(CGFloat)detent
31
- transitioning:(BOOL)transitioning;
31
+ realtime:(BOOL)realtime;
32
32
  - (void)viewControllerDidChangeSize:(CGSize)size;
33
33
  - (void)viewControllerWillFocus;
34
34
  - (void)viewControllerDidFocus;
@@ -52,9 +52,12 @@ NS_ASSUME_NONNULL_BEGIN
52
52
  @property (nonatomic, strong, nullable) UIColor *backgroundColor;
53
53
  @property (nonatomic, strong, nullable) NSNumber *cornerRadius;
54
54
  @property (nonatomic, assign) BOOL grabber;
55
+ @property (nonatomic, assign) BOOL draggable;
55
56
  @property (nonatomic, assign) BOOL dimmed;
56
57
  @property (nonatomic, strong, nullable) NSNumber *dimmedDetentIndex;
57
58
  @property (nonatomic, copy, nullable) NSString *blurTint;
59
+ @property (nonatomic, strong, nullable) NSNumber *blurIntensity;
60
+ @property (nonatomic, assign) BOOL blurInteraction;
58
61
  @property (nonatomic, assign) BOOL pageSizing;
59
62
  @property (nonatomic, assign) BOOL layoutTransitioning;
60
63
  @property (nonatomic, assign) BOOL isPresented;
@@ -64,6 +67,7 @@ NS_ASSUME_NONNULL_BEGIN
64
67
  - (void)setupActiveDetentWithIndex:(NSInteger)index;
65
68
  - (void)setupSheetDetents;
66
69
  - (void)setupSheetProps;
70
+ - (void)updateDraggable;
67
71
  - (NSInteger)currentDetentIndex;
68
72
  - (CGFloat)currentPosition;
69
73
  - (CGFloat)bottomInset;
@@ -8,7 +8,7 @@
8
8
 
9
9
  #import "TrueSheetViewController.h"
10
10
  #import "TrueSheetContentView.h"
11
- #import "utils/ConversionUtil.h"
11
+ #import "core/TrueSheetBlurView.h"
12
12
  #import "utils/GestureUtil.h"
13
13
  #import "utils/WindowUtil.h"
14
14
 
@@ -21,10 +21,8 @@
21
21
 
22
22
  @implementation TrueSheetViewController {
23
23
  CGFloat _lastPosition;
24
- CGFloat _lastTransitionPosition;
25
24
  BOOL _isTransitioning;
26
25
  BOOL _isDragging;
27
- BOOL _isTrackingPositionFromLayout;
28
26
 
29
27
  // Hidden view used to track position during native transition animations
30
28
  UIView *_fakeTransitionView;
@@ -32,6 +30,9 @@
32
30
 
33
31
  // Reference to parent TrueSheetViewController (if presented from another sheet)
34
32
  __weak TrueSheetViewController *_parentSheetController;
33
+
34
+ // Blur effect view
35
+ TrueSheetBlurView *_blurView;
35
36
  }
36
37
 
37
38
  #pragma mark - Initialization
@@ -42,14 +43,13 @@
42
43
  _contentHeight = @(0);
43
44
  _headerHeight = @(0);
44
45
  _grabber = YES;
46
+ _draggable = YES;
45
47
  _dimmed = YES;
46
48
  _dimmedDetentIndex = @(0);
47
49
  _pageSizing = YES;
48
50
  _lastPosition = 0;
49
- _lastTransitionPosition = 0;
50
51
  _isTransitioning = NO;
51
52
  _isDragging = NO;
52
- _isTrackingPositionFromLayout = NO;
53
53
  _layoutTransitioning = NO;
54
54
  _isPresented = NO;
55
55
  _activeDetentIndex = -1;
@@ -57,6 +57,8 @@
57
57
  _fakeTransitionView = [[UIView alloc] init];
58
58
  _fakeTransitionView.hidden = YES;
59
59
  _fakeTransitionView.userInteractionEnabled = NO;
60
+
61
+ _blurInteraction = YES;
60
62
  }
61
63
  return self;
62
64
  }
@@ -199,7 +201,6 @@
199
201
  }
200
202
 
201
203
  [self setupTransitionPositionTracking];
202
- _isTrackingPositionFromLayout = NO;
203
204
  }
204
205
 
205
206
  - (void)viewDidDisappear:(BOOL)animated {
@@ -222,8 +223,6 @@
222
223
  }
223
224
  }
224
225
 
225
- _isTrackingPositionFromLayout = NO;
226
-
227
226
  if (isActuallyDismissing) {
228
227
  _isPresented = NO;
229
228
  _activeDetentIndex = -1;
@@ -237,12 +236,9 @@
237
236
  [self.delegate viewControllerDidChangeSize:self.view.frame.size];
238
237
  }
239
238
 
240
- if (!_isTransitioning && self.isActiveAndVisible) {
241
- _isTrackingPositionFromLayout = YES;
242
-
243
- // Treat position changes as transitioning when another controller is presented on top
244
- [self emitChangePositionDelegateWithPosition:self.currentPosition
245
- transitioning:_layoutTransitioning || !self.isTopmostPresentedController];
239
+ if (!_isTransitioning && !_isDragging && self.isActiveAndVisible) {
240
+ // Not realtime when layout changes (e.g., another controller is presented on top)
241
+ [self emitChangePositionDelegateWithPosition:self.currentPosition realtime:NO];
246
242
 
247
243
  // On iOS 26, this is called twice when we have a ScrollView
248
244
  dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
@@ -273,6 +269,21 @@
273
269
  if (!presentedView)
274
270
  return;
275
271
 
272
+ // Disable pan gestures if draggable is NO
273
+ if (!self.draggable) {
274
+ [GestureUtil setPanGesturesEnabled:NO forView:presentedView];
275
+
276
+ // Also disable ScrollView's pan gesture if present
277
+ TrueSheetContentView *contentView = [self findContentView:presentedView];
278
+ if (contentView) {
279
+ RCTScrollViewComponentView *scrollViewComponent = [contentView findScrollView:nil];
280
+ if (scrollViewComponent && scrollViewComponent.scrollView) {
281
+ [GestureUtil setPanGesturesEnabled:NO forView:scrollViewComponent.scrollView];
282
+ }
283
+ }
284
+ return;
285
+ }
286
+
276
287
  // Attach to presented view's pan gesture (sheet's drag gesture from UIKit)
277
288
  [GestureUtil attachPanGestureHandler:presentedView target:self selector:@selector(handlePanGesture:)];
278
289
 
@@ -288,6 +299,23 @@
288
299
  }
289
300
  }
290
301
 
302
+ - (void)updateDraggable {
303
+ UIView *presentedView = self.presentedView;
304
+ if (!presentedView)
305
+ return;
306
+
307
+ [GestureUtil setPanGesturesEnabled:self.draggable forView:presentedView];
308
+
309
+ // Also update ScrollView's pan gesture if present
310
+ TrueSheetContentView *contentView = [self findContentView:presentedView];
311
+ if (contentView) {
312
+ RCTScrollViewComponentView *scrollViewComponent = [contentView findScrollView:nil];
313
+ if (scrollViewComponent && scrollViewComponent.scrollView) {
314
+ [GestureUtil setPanGesturesEnabled:self.draggable forView:scrollViewComponent.scrollView];
315
+ }
316
+ }
317
+ }
318
+
291
319
  - (void)handlePanGesture:(UIPanGestureRecognizer *)gesture {
292
320
  NSInteger index = [self currentDetentIndex];
293
321
 
@@ -300,14 +328,16 @@
300
328
  _isDragging = YES;
301
329
  break;
302
330
  case UIGestureRecognizerStateChanged:
303
- if (!_isTrackingPositionFromLayout) {
304
- [self emitChangePositionDelegateWithPosition:self.currentPosition transitioning:NO];
305
- }
331
+ [self emitChangePositionDelegateWithPosition:self.currentPosition realtime:YES];
306
332
  break;
307
333
  case UIGestureRecognizerStateEnded:
308
- case UIGestureRecognizerStateCancelled:
309
- _isDragging = NO;
334
+ case UIGestureRecognizerStateCancelled: {
335
+ [self emitChangePositionDelegateWithPosition:self.currentPosition realtime:NO];
336
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
337
+ self->_isDragging = NO;
338
+ });
310
339
  break;
340
+ }
311
341
  default:
312
342
  break;
313
343
  }
@@ -315,15 +345,16 @@
315
345
 
316
346
  #pragma mark - Position Tracking
317
347
 
318
- - (void)emitChangePositionDelegateWithPosition:(CGFloat)position transitioning:(BOOL)transitioning {
319
- if (_lastPosition != position) {
348
+ - (void)emitChangePositionDelegateWithPosition:(CGFloat)position realtime:(BOOL)realtime {
349
+ // Use epsilon comparison to avoid missing updates due to floating point precision
350
+ if (fabs(_lastPosition - position) > 0.01) {
320
351
  _lastPosition = position;
321
352
 
322
353
  CGFloat index = [self interpolatedIndexForPosition:position];
323
354
  NSInteger discreteIndex = (NSInteger)round(index);
324
355
  CGFloat detent = [self detentValueForIndex:discreteIndex];
325
- if ([self.delegate respondsToSelector:@selector(viewControllerDidChangePosition:position:detent:transitioning:)]) {
326
- [self.delegate viewControllerDidChangePosition:index position:position detent:detent transitioning:transitioning];
356
+ if ([self.delegate respondsToSelector:@selector(viewControllerDidChangePosition:position:detent:realtime:)]) {
357
+ [self.delegate viewControllerDidChangePosition:index position:position detent:detent realtime:realtime];
327
358
  }
328
359
  }
329
360
  }
@@ -413,8 +444,6 @@
413
444
  finalFrame.origin.y = presentedView.frame.origin.y;
414
445
  self->_fakeTransitionView.frame = finalFrame;
415
446
 
416
- self->_lastTransitionPosition = finalFrame.origin.y;
417
-
418
447
  // Track position at screen refresh rate via display link
419
448
  self->_displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(trackTransitionPosition:)];
420
449
  [self->_displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
@@ -440,18 +469,12 @@
440
469
  CALayer *presentationLayer = _fakeTransitionView.layer.presentationLayer;
441
470
 
442
471
  if (presentationLayer) {
443
- BOOL transitioning = NO;
444
- CGFloat position = presentationLayer.frame.origin.y;
472
+ CGFloat transitioningPosition = presentationLayer.frame.origin.y;
473
+ CGFloat staticPosition = _fakeTransitionView.frame.origin.y;
445
474
 
446
- // If position matches last transition position (within epsilon), sheet is repositioning after drag
447
- if (fabs(_lastTransitionPosition - position) < 0.5) {
448
- transitioning = YES;
449
- position = presentedView.frame.origin.y;
450
- } else {
451
- _lastTransitionPosition = position;
475
+ if (fabs(staticPosition - transitioningPosition) > 0.01) {
476
+ [self emitChangePositionDelegateWithPosition:transitioningPosition realtime:YES];
452
477
  }
453
-
454
- [self emitChangePositionDelegateWithPosition:position transitioning:transitioning];
455
478
  }
456
479
  }
457
480
 
@@ -615,7 +638,7 @@
615
638
  }
616
639
 
617
640
  sheet.prefersEdgeAttachedInCompactHeight = YES;
618
- sheet.prefersGrabberVisible = self.grabber;
641
+ sheet.prefersGrabberVisible = self.grabber && self.draggable;
619
642
 
620
643
  if (self.cornerRadius) {
621
644
  sheet.preferredCornerRadius = [self.cornerRadius floatValue];
@@ -627,16 +650,25 @@
627
650
 
628
651
  // Setup or remove blur effect
629
652
  if (self.blurTint && self.blurTint.length > 0) {
630
- UIBlurEffectStyle style = [ConversionUtil blurEffectStyleFromString:self.blurTint];
631
- UIVisualEffectView *blurView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:style]];
632
- blurView.frame = self.view.bounds;
633
- blurView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
634
- [self.view insertSubview:blurView atIndex:0];
653
+ // Create blur view if needed
654
+ if (!_blurView) {
655
+ _blurView = [[TrueSheetBlurView alloc] init];
656
+ _blurView.frame = self.view.bounds;
657
+ _blurView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
658
+ [self.view insertSubview:_blurView atIndex:0];
659
+ }
660
+
661
+ // Update blur properties and apply effect
662
+ _blurView.blurTint = self.blurTint;
663
+ _blurView.blurIntensity = self.blurIntensity;
664
+ _blurView.blurInteraction = self.blurInteraction;
665
+ [_blurView applyBlurEffect];
635
666
  } else {
636
- for (UIView *subview in self.view.subviews) {
637
- if ([subview isKindOfClass:[UIVisualEffectView class]]) {
638
- [subview removeFromSuperview];
639
- }
667
+ // Remove blur effect
668
+ if (_blurView) {
669
+ [_blurView removeBlurEffect];
670
+ [_blurView removeFromSuperview];
671
+ _blurView = nil;
640
672
  }
641
673
  }
642
674
  }
@@ -0,0 +1,24 @@
1
+ //
2
+ // Created by Jovanni Lo (@lodev09)
3
+ // Copyright (c) 2024-present. All rights reserved.
4
+ //
5
+ // This source code is licensed under the MIT license found in the
6
+ // LICENSE file in the root directory of this source tree.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+
11
+ NS_ASSUME_NONNULL_BEGIN
12
+
13
+ @interface TrueSheetBlurView : UIVisualEffectView
14
+
15
+ @property (nonatomic, copy, nullable) NSString *blurTint;
16
+ @property (nonatomic, strong, nullable) NSNumber *blurIntensity;
17
+ @property (nonatomic, assign) BOOL blurInteraction;
18
+
19
+ - (void)applyBlurEffect;
20
+ - (void)removeBlurEffect;
21
+
22
+ @end
23
+
24
+ NS_ASSUME_NONNULL_END
@@ -6,9 +6,13 @@
6
6
  // LICENSE file in the root directory of this source tree.
7
7
  //
8
8
 
9
- #import "ConversionUtil.h"
9
+ #import "TrueSheetBlurView.h"
10
10
 
11
- @implementation ConversionUtil
11
+ @implementation TrueSheetBlurView {
12
+ UIViewPropertyAnimator *_blurAnimator;
13
+ }
14
+
15
+ #pragma mark - Private
12
16
 
13
17
  + (UIBlurEffectStyle)blurEffectStyleFromString:(NSString *)tintString {
14
18
  static NSDictionary<NSString *, NSNumber *> *styleMap = nil;
@@ -43,8 +47,66 @@
43
47
  return (UIBlurEffectStyle)[style integerValue];
44
48
  }
45
49
 
46
- // Default to light if not recognized
47
50
  return UIBlurEffectStyleLight;
48
51
  }
49
52
 
53
+ #pragma mark - Initialization
54
+
55
+ - (instancetype)init {
56
+ if (self = [super init]) {
57
+ _blurInteraction = YES;
58
+ }
59
+ return self;
60
+ }
61
+
62
+ #pragma mark - Public
63
+
64
+ - (void)applyBlurEffect {
65
+ if (!self.blurTint || self.blurTint.length == 0) {
66
+ [self removeBlurEffect];
67
+ return;
68
+ }
69
+
70
+ // Stop and clear existing animator
71
+ if (_blurAnimator) {
72
+ [_blurAnimator stopAnimation:YES];
73
+ _blurAnimator = nil;
74
+ }
75
+
76
+ // Clear existing effect
77
+ self.effect = nil;
78
+
79
+ UIBlurEffectStyle style = [TrueSheetBlurView blurEffectStyleFromString:self.blurTint];
80
+ UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:style];
81
+
82
+ self.userInteractionEnabled = self.blurInteraction;
83
+
84
+ // Use animator to control blur intensity
85
+ __weak typeof(self) weakSelf = self;
86
+ _blurAnimator = [[UIViewPropertyAnimator alloc] initWithDuration:1.0
87
+ curve:UIViewAnimationCurveLinear
88
+ animations:^{
89
+ weakSelf.effect = blurEffect;
90
+ }];
91
+ _blurAnimator.pausesOnCompletion = YES;
92
+
93
+ // Set intensity: nil means system default (100%), otherwise use provided value (0-100)
94
+ CGFloat intensity =
95
+ (self.blurIntensity && [self.blurIntensity floatValue] >= 0) ? [self.blurIntensity floatValue] / 100.0 : 1.0;
96
+ _blurAnimator.fractionComplete = intensity;
97
+ }
98
+
99
+ - (void)removeBlurEffect {
100
+ if (_blurAnimator) {
101
+ [_blurAnimator stopAnimation:YES];
102
+ _blurAnimator = nil;
103
+ }
104
+
105
+ self.effect = nil;
106
+ }
107
+
108
+ - (void)dealloc {
109
+ [self removeBlurEffect];
110
+ }
111
+
50
112
  @end
@@ -26,7 +26,7 @@ NS_ASSUME_NONNULL_BEGIN
26
26
  index:(CGFloat)index
27
27
  position:(CGFloat)position
28
28
  detent:(CGFloat)detent
29
- transitioning:(BOOL)transitioning;
29
+ realtime:(BOOL)realtime;
30
30
 
31
31
  @end
32
32
 
@@ -31,7 +31,7 @@
31
31
  index:(CGFloat)index
32
32
  position:(CGFloat)position
33
33
  detent:(CGFloat)detent
34
- transitioning:(BOOL)transitioning {
34
+ realtime:(BOOL)realtime {
35
35
  if (!eventEmitter)
36
36
  return;
37
37
 
@@ -40,7 +40,7 @@
40
40
  event.index = static_cast<double>(index);
41
41
  event.position = static_cast<double>(position);
42
42
  event.detent = static_cast<double>(detent);
43
- event.transitioning = static_cast<bool>(transitioning);
43
+ event.realtime = static_cast<bool>(realtime);
44
44
  emitter->onPositionChange(event);
45
45
  }
46
46
 
@@ -20,6 +20,13 @@ NS_ASSUME_NONNULL_BEGIN
20
20
  */
21
21
  + (void)attachPanGestureHandler:(UIView *)view target:(id)target selector:(SEL)selector;
22
22
 
23
+ /**
24
+ * Enables or disables all pan gesture recognizers on a view
25
+ * @param view The view whose pan gesture recognizers to enable/disable
26
+ * @param enabled Whether the pan gestures should be enabled
27
+ */
28
+ + (void)setPanGesturesEnabled:(BOOL)enabled forView:(UIView *)view;
29
+
23
30
  @end
24
31
 
25
32
  NS_ASSUME_NONNULL_END
@@ -23,4 +23,16 @@
23
23
  }
24
24
  }
25
25
 
26
+ + (void)setPanGesturesEnabled:(BOOL)enabled forView:(UIView *)view {
27
+ if (!view) {
28
+ return;
29
+ }
30
+
31
+ for (UIGestureRecognizer *recognizer in view.gestureRecognizers ?: @[]) {
32
+ if ([recognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
33
+ recognizer.enabled = enabled;
34
+ }
35
+ }
36
+ }
37
+
26
38
  @end
@@ -261,6 +261,7 @@ export class TrueSheet extends PureComponent {
261
261
  detents = [0.5, 1],
262
262
  backgroundColor,
263
263
  dismissible = true,
264
+ draggable = true,
264
265
  grabber = true,
265
266
  dimmed = true,
266
267
  initialDetentIndex = -1,
@@ -311,6 +312,7 @@ export class TrueSheet extends PureComponent {
311
312
  initialDetentIndex: initialDetentIndex,
312
313
  initialDetentAnimated: initialDetentAnimated,
313
314
  dismissible: dismissible,
315
+ draggable: draggable,
314
316
  maxHeight: maxHeight,
315
317
  edgeToEdgeFullScreen: edgeToEdgeFullScreen,
316
318
  scrollable: scrollable,
@@ -1 +1 @@
1
- {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","grabber","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableContent","ref","sheetView","background","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableContent","ref","sheetView","background","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,7 @@ export interface PositionChangeEventPayload {
18
18
  index: Double;
19
19
  position: Double;
20
20
  detent: Double;
21
- transitioning: boolean;
21
+ realtime: boolean;
22
22
  }
23
23
 
24
24
  export interface NativeProps extends ViewProps {
@@ -36,9 +36,14 @@ export interface NativeProps extends ViewProps {
36
36
  blurTint?: WithDefault<string, ''>;
37
37
  keyboardMode?: WithDefault<'resize' | 'pan', 'resize'>;
38
38
 
39
+ // Blur properties - use -1 as default to indicate "not set" (use system default)
40
+ blurIntensity?: WithDefault<Double, -1>;
41
+ blurInteraction?: WithDefault<boolean, true>;
42
+
39
43
  // Boolean properties - match defaults from TrueSheet.types.ts
40
44
  grabber?: WithDefault<boolean, true>;
41
45
  dismissible?: WithDefault<boolean, true>;
46
+ draggable?: WithDefault<boolean, true>;
42
47
  dimmed?: WithDefault<boolean, true>;
43
48
  initialDetentAnimated?: WithDefault<boolean, true>;
44
49
  edgeToEdgeFullScreen?: WithDefault<boolean, false>;
@@ -65,8 +65,12 @@ export const ReanimatedTrueSheet = /*#__PURE__*/forwardRef((props, ref) => {
65
65
 
66
66
  // Update detent directly (discrete value, not animated)
67
67
  detent.value = payload.detent;
68
- if (payload.transitioning) {
69
- // Animate position and index when transitioning
68
+ if (payload.realtime) {
69
+ // Update directly when we have real-time values (during drag or animation tracking)
70
+ animatedPosition.value = payload.position;
71
+ animatedIndex.value = payload.index;
72
+ } else {
73
+ // Animate position and index when not real-time
70
74
  if (Platform.OS === 'android') {
71
75
  animatedPosition.value = withTiming(payload.position, TIMING_CONFIG);
72
76
  animatedIndex.value = withTiming(payload.index, TIMING_CONFIG);
@@ -74,10 +78,6 @@ export const ReanimatedTrueSheet = /*#__PURE__*/forwardRef((props, ref) => {
74
78
  animatedPosition.value = withSpring(payload.position, SPRING_CONFIG);
75
79
  animatedIndex.value = withSpring(payload.index, SPRING_CONFIG);
76
80
  }
77
- } else {
78
- // Update directly during drag
79
- animatedPosition.value = payload.position;
80
- animatedIndex.value = payload.index;
81
81
  }
82
82
  onPositionChange?.({
83
83
  nativeEvent: payload
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","Animated","withSpring","withTiming","Easing","Platform","TrueSheet","useReanimatedTrueSheet","useReanimatedPositionChangeHandler","jsx","_jsx","SPRING_CONFIG","damping","stiffness","mass","overshootClamping","TIMING_CONFIG","duration","easing","bezier","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheet","props","ref","onPositionChange","rest","animatedPosition","animatedIndex","detent","positionChangeHandler","payload","value","transitioning","OS","position","index","nativeEvent"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheet.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,OAAOC,QAAQ,IAGbC,UAAU,EACVC,UAAU,EACVC,MAAM,QACD,yBAAyB;AAChC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,SAAS,QAAQ,iBAAc;AAExC,SAASC,sBAAsB,QAAQ,kCAA+B;AACtE,SAASC,kCAAkC,QAAQ,yCAAsC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1F,MAAMC,aAA+B,GAAG;EACtCC,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAI,EAAE,CAAC;EACPC,iBAAiB,EAAE;AACrB,CAAC;AAED,MAAMC,aAA+B,GAAG;EACtCC,QAAQ,EAAE,GAAG;EACbC,MAAM,EAAEd,MAAM,CAACe,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAWD;AACA,MAAMC,iBAAiB,GAAGnB,QAAQ,CAACoB,uBAAuB,CAACf,SAAS,CAAC;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgB,mBAAmB,gBAAGtB,UAAU,CAAsC,CAACuB,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;IAAEC,gBAAgB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAE3C,MAAM;IAAEI,gBAAgB;IAAEC,aAAa;IAAEC;EAAO,CAAC,GAAGtB,sBAAsB,CAAC,CAAC;EAE5E,MAAMuB,qBAAqB,GAAGtB,kCAAkC,CAAEuB,OAAO,IAAK;IAC5E,SAAS;;IAET;IACAF,MAAM,CAACG,KAAK,GAAGD,OAAO,CAACF,MAAM;IAE7B,IAAIE,OAAO,CAACE,aAAa,EAAE;MACzB;MACA,IAAI5B,QAAQ,CAAC6B,EAAE,KAAK,SAAS,EAAE;QAC7BP,gBAAgB,CAACK,KAAK,GAAG7B,UAAU,CAAC4B,OAAO,CAACI,QAAQ,EAAEnB,aAAa,CAAC;QACpEY,aAAa,CAACI,KAAK,GAAG7B,UAAU,CAAC4B,OAAO,CAACK,KAAK,EAAEpB,aAAa,CAAC;MAChE,CAAC,MAAM;QACLW,gBAAgB,CAACK,KAAK,GAAG9B,UAAU,CAAC6B,OAAO,CAACI,QAAQ,EAAExB,aAAa,CAAC;QACpEiB,aAAa,CAACI,KAAK,GAAG9B,UAAU,CAAC6B,OAAO,CAACK,KAAK,EAAEzB,aAAa,CAAC;MAChE;IACF,CAAC,MAAM;MACL;MACAgB,gBAAgB,CAACK,KAAK,GAAGD,OAAO,CAACI,QAAQ;MACzCP,aAAa,CAACI,KAAK,GAAGD,OAAO,CAACK,KAAK;IACrC;IAEAX,gBAAgB,GAAG;MAAEY,WAAW,EAAEN;IAAQ,CAAwB,CAAC;EACrE,CAAC,CAAC;EAEF,oBAAOrB,IAAA,CAACU,iBAAiB;IAACI,GAAG,EAAEA,GAAI;IAACC,gBAAgB,EAAEK,qBAAsB;IAAA,GAAKJ;EAAI,CAAG,CAAC;AAC3F,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","Animated","withSpring","withTiming","Easing","Platform","TrueSheet","useReanimatedTrueSheet","useReanimatedPositionChangeHandler","jsx","_jsx","SPRING_CONFIG","damping","stiffness","mass","overshootClamping","TIMING_CONFIG","duration","easing","bezier","AnimatedTrueSheet","createAnimatedComponent","ReanimatedTrueSheet","props","ref","onPositionChange","rest","animatedPosition","animatedIndex","detent","positionChangeHandler","payload","value","realtime","position","index","OS","nativeEvent"],"sourceRoot":"../../../src","sources":["reanimated/ReanimatedTrueSheet.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,OAAOC,QAAQ,IAGbC,UAAU,EACVC,UAAU,EACVC,MAAM,QACD,yBAAyB;AAChC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,SAAS,QAAQ,iBAAc;AAExC,SAASC,sBAAsB,QAAQ,kCAA+B;AACtE,SAASC,kCAAkC,QAAQ,yCAAsC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1F,MAAMC,aAA+B,GAAG;EACtCC,OAAO,EAAE,GAAG;EACZC,SAAS,EAAE,IAAI;EACfC,IAAI,EAAE,CAAC;EACPC,iBAAiB,EAAE;AACrB,CAAC;AAED,MAAMC,aAA+B,GAAG;EACtCC,QAAQ,EAAE,GAAG;EACbC,MAAM,EAAEd,MAAM,CAACe,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAWD;AACA,MAAMC,iBAAiB,GAAGnB,QAAQ,CAACoB,uBAAuB,CAACf,SAAS,CAAC;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgB,mBAAmB,gBAAGtB,UAAU,CAAsC,CAACuB,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;IAAEC,gBAAgB;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAE3C,MAAM;IAAEI,gBAAgB;IAAEC,aAAa;IAAEC;EAAO,CAAC,GAAGtB,sBAAsB,CAAC,CAAC;EAE5E,MAAMuB,qBAAqB,GAAGtB,kCAAkC,CAAEuB,OAAO,IAAK;IAC5E,SAAS;;IAET;IACAF,MAAM,CAACG,KAAK,GAAGD,OAAO,CAACF,MAAM;IAE7B,IAAIE,OAAO,CAACE,QAAQ,EAAE;MACpB;MACAN,gBAAgB,CAACK,KAAK,GAAGD,OAAO,CAACG,QAAQ;MACzCN,aAAa,CAACI,KAAK,GAAGD,OAAO,CAACI,KAAK;IACrC,CAAC,MAAM;MACL;MACA,IAAI9B,QAAQ,CAAC+B,EAAE,KAAK,SAAS,EAAE;QAC7BT,gBAAgB,CAACK,KAAK,GAAG7B,UAAU,CAAC4B,OAAO,CAACG,QAAQ,EAAElB,aAAa,CAAC;QACpEY,aAAa,CAACI,KAAK,GAAG7B,UAAU,CAAC4B,OAAO,CAACI,KAAK,EAAEnB,aAAa,CAAC;MAChE,CAAC,MAAM;QACLW,gBAAgB,CAACK,KAAK,GAAG9B,UAAU,CAAC6B,OAAO,CAACG,QAAQ,EAAEvB,aAAa,CAAC;QACpEiB,aAAa,CAACI,KAAK,GAAG9B,UAAU,CAAC6B,OAAO,CAACI,KAAK,EAAExB,aAAa,CAAC;MAChE;IACF;IAEAc,gBAAgB,GAAG;MAAEY,WAAW,EAAEN;IAAQ,CAAwB,CAAC;EACrE,CAAC,CAAC;EAEF,oBAAOrB,IAAA,CAACU,iBAAiB;IAACI,GAAG,EAAEA,GAAI;IAACC,gBAAgB,EAAEK,qBAAsB;IAAA,GAAKJ;EAAI,CAAG,CAAC;AAC3F,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,cAAc,EAef,MAAM,mBAAmB,CAAC;AAwB3B,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,SAAU,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;IAC1E,WAAW,SAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,KAAK,EAAE,cAAc;IA+BjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E;;;;;OAKG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtD;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAsGpB"}
1
+ {"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,cAAc,EAef,MAAM,mBAAmB,CAAC;AAwB3B,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,SAAU,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC;IAC1E,WAAW,SAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,KAAK,EAAE,cAAc;IA+BjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E;;;;;OAKG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtD;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAwGpB"}
@@ -16,10 +16,10 @@ export interface DetentInfoEventPayload {
16
16
  }
17
17
  export interface PositionChangeEventPayload extends DetentInfoEventPayload {
18
18
  /**
19
- * Workaround for cases where we can't get real-time position from native.
20
- * When true, manually animate the position in JS.
19
+ * Indicates whether the position value is real-time (e.g., during drag or animation tracking).
20
+ * When false, the position should be animated in JS.
21
21
  */
22
- transitioning: boolean;
22
+ realtime: boolean;
23
23
  }
24
24
  export type MountEvent = NativeSyntheticEvent<null>;
25
25
  export type DetentChangeEvent = NativeSyntheticEvent<DetentInfoEventPayload>;
@@ -126,6 +126,13 @@ export interface TrueSheetProps extends ViewProps {
126
126
  * @default true
127
127
  */
128
128
  dismissible?: boolean;
129
+ /**
130
+ * Enables or disables dragging the sheet to resize it.
131
+ * When disabled, the sheet becomes static and can only be resized programmatically.
132
+ *
133
+ * @default true
134
+ */
135
+ draggable?: boolean;
129
136
  /**
130
137
  * Main sheet background color.
131
138
  * Uses system default when not provided.
@@ -164,6 +171,23 @@ export interface TrueSheetProps extends ViewProps {
164
171
  * @platform ios
165
172
  */
166
173
  blurTint?: BlurTint;
174
+ /**
175
+ * The intensity of the blur effect (0-100).
176
+ * Only applies when `blurTint` is set.
177
+ * Uses system default if not provided.
178
+ *
179
+ * @platform ios
180
+ */
181
+ blurIntensity?: number;
182
+ /**
183
+ * Enables or disables user interaction on the blur view.
184
+ * Disabling this can help with visual artifacts (flash) on iOS 18+
185
+ * when touching the sheet content with blur enabled.
186
+ * Uses system default (true) if not provided.
187
+ *
188
+ * @platform ios
189
+ */
190
+ blurInteraction?: boolean;
167
191
  /**
168
192
  * Overrides `large` or `100%` height.
169
193
  * Also sets the maximum height for 'auto' detents.
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheet.types.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrueSheet.types.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpD,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC7E,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC5E,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACzD,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;AACnF,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACtD,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,MAAM,GACN,SAAS,GACT,aAAa,GACb,SAAS,GACT,WAAW,GACX,4BAA4B,GAC5B,sBAAsB,GACtB,iBAAiB,GACjB,uBAAuB,GACvB,wBAAwB,GACxB,kCAAkC,GAClC,4BAA4B,GAC5B,uBAAuB,GACvB,6BAA6B,GAC7B,8BAA8B,GAC9B,iCAAiC,GACjC,2BAA2B,GAC3B,sBAAsB,GACtB,4BAA4B,GAC5B,6BAA6B,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,WAAW;AACrB;;;;;;GAMG;AACD,MAAM;AAER;;;;;;GAMG;GACD,MAAM,CAAC;AAEX,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IAExB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAE7B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;IAE/C;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;IAE/C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAEhC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAElD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAEhD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAElD;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAEhD;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAEpD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAEhD;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAE1C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAExD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC3C"}
@@ -9,7 +9,7 @@ export interface PositionChangeEventPayload {
9
9
  index: Double;
10
10
  position: Double;
11
11
  detent: Double;
12
- transitioning: boolean;
12
+ realtime: boolean;
13
13
  }
14
14
  export interface NativeProps extends ViewProps {
15
15
  detents?: ReadonlyArray<Float>;
@@ -20,8 +20,11 @@ export interface NativeProps extends ViewProps {
20
20
  dimmedDetentIndex?: WithDefault<Int32, 0>;
21
21
  blurTint?: WithDefault<string, ''>;
22
22
  keyboardMode?: WithDefault<'resize' | 'pan', 'resize'>;
23
+ blurIntensity?: WithDefault<Double, -1>;
24
+ blurInteraction?: WithDefault<boolean, true>;
23
25
  grabber?: WithDefault<boolean, true>;
24
26
  dismissible?: WithDefault<boolean, true>;
27
+ draggable?: WithDefault<boolean, true>;
25
28
  dimmed?: WithDefault<boolean, true>;
26
29
  initialDetentAnimated?: WithDefault<boolean, true>;
27
30
  edgeToEdgeFullScreen?: WithDefault<boolean, false>;
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,WAAW,EACX,KAAK,EACN,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAE5C,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAG/B,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,kBAAkB,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAG1C,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;IAGvD,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,qBAAqB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,oBAAoB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAGxC,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC1D,aAAa,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,WAAW,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC1D,SAAS,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACvD,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;IAClE,WAAW,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;CACtC;;AAED,wBAEG"}
1
+ {"version":3,"file":"TrueSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,KAAK,EACL,WAAW,EACX,KAAK,EACN,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAE5C,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAG/B,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,kBAAkB,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5C,iBAAiB,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAG1C,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,WAAW,CAAC,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;IAGvD,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAG7C,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,qBAAqB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,oBAAoB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAGxC,OAAO,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC1D,aAAa,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,WAAW,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC1D,SAAS,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IACvD,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;IAClE,WAAW,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;CACtC;;AAED,wBAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodev09/react-native-true-sheet",
3
- "version": "3.0.0-beta.14",
3
+ "version": "3.0.0-beta.16",
4
4
  "description": "The true native bottom sheet experience for your React Native Apps.",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/module/index.js",
package/src/TrueSheet.tsx CHANGED
@@ -337,6 +337,7 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
337
337
  detents = [0.5, 1],
338
338
  backgroundColor,
339
339
  dismissible = true,
340
+ draggable = true,
340
341
  grabber = true,
341
342
  dimmed = true,
342
343
  initialDetentIndex = -1,
@@ -395,6 +396,7 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
395
396
  initialDetentIndex={initialDetentIndex}
396
397
  initialDetentAnimated={initialDetentAnimated}
397
398
  dismissible={dismissible}
399
+ draggable={draggable}
398
400
  maxHeight={maxHeight}
399
401
  edgeToEdgeFullScreen={edgeToEdgeFullScreen}
400
402
  scrollable={scrollable}
@@ -18,10 +18,10 @@ export interface DetentInfoEventPayload {
18
18
 
19
19
  export interface PositionChangeEventPayload extends DetentInfoEventPayload {
20
20
  /**
21
- * Workaround for cases where we can't get real-time position from native.
22
- * When true, manually animate the position in JS.
21
+ * Indicates whether the position value is real-time (e.g., during drag or animation tracking).
22
+ * When false, the position should be animated in JS.
23
23
  */
24
- transitioning: boolean;
24
+ realtime: boolean;
25
25
  }
26
26
 
27
27
  export type MountEvent = NativeSyntheticEvent<null>;
@@ -160,6 +160,14 @@ export interface TrueSheetProps extends ViewProps {
160
160
  */
161
161
  dismissible?: boolean;
162
162
 
163
+ /**
164
+ * Enables or disables dragging the sheet to resize it.
165
+ * When disabled, the sheet becomes static and can only be resized programmatically.
166
+ *
167
+ * @default true
168
+ */
169
+ draggable?: boolean;
170
+
163
171
  /**
164
172
  * Main sheet background color.
165
173
  * Uses system default when not provided.
@@ -203,6 +211,25 @@ export interface TrueSheetProps extends ViewProps {
203
211
  */
204
212
  blurTint?: BlurTint;
205
213
 
214
+ /**
215
+ * The intensity of the blur effect (0-100).
216
+ * Only applies when `blurTint` is set.
217
+ * Uses system default if not provided.
218
+ *
219
+ * @platform ios
220
+ */
221
+ blurIntensity?: number;
222
+
223
+ /**
224
+ * Enables or disables user interaction on the blur view.
225
+ * Disabling this can help with visual artifacts (flash) on iOS 18+
226
+ * when touching the sheet content with blur enabled.
227
+ * Uses system default (true) if not provided.
228
+ *
229
+ * @platform ios
230
+ */
231
+ blurInteraction?: boolean;
232
+
206
233
  /**
207
234
  * Overrides `large` or `100%` height.
208
235
  * Also sets the maximum height for 'auto' detents.
@@ -18,7 +18,7 @@ export interface PositionChangeEventPayload {
18
18
  index: Double;
19
19
  position: Double;
20
20
  detent: Double;
21
- transitioning: boolean;
21
+ realtime: boolean;
22
22
  }
23
23
 
24
24
  export interface NativeProps extends ViewProps {
@@ -36,9 +36,14 @@ export interface NativeProps extends ViewProps {
36
36
  blurTint?: WithDefault<string, ''>;
37
37
  keyboardMode?: WithDefault<'resize' | 'pan', 'resize'>;
38
38
 
39
+ // Blur properties - use -1 as default to indicate "not set" (use system default)
40
+ blurIntensity?: WithDefault<Double, -1>;
41
+ blurInteraction?: WithDefault<boolean, true>;
42
+
39
43
  // Boolean properties - match defaults from TrueSheet.types.ts
40
44
  grabber?: WithDefault<boolean, true>;
41
45
  dismissible?: WithDefault<boolean, true>;
46
+ draggable?: WithDefault<boolean, true>;
42
47
  dimmed?: WithDefault<boolean, true>;
43
48
  initialDetentAnimated?: WithDefault<boolean, true>;
44
49
  edgeToEdgeFullScreen?: WithDefault<boolean, false>;
@@ -78,8 +78,12 @@ export const ReanimatedTrueSheet = forwardRef<TrueSheet, ReanimatedTrueSheetProp
78
78
  // Update detent directly (discrete value, not animated)
79
79
  detent.value = payload.detent;
80
80
 
81
- if (payload.transitioning) {
82
- // Animate position and index when transitioning
81
+ if (payload.realtime) {
82
+ // Update directly when we have real-time values (during drag or animation tracking)
83
+ animatedPosition.value = payload.position;
84
+ animatedIndex.value = payload.index;
85
+ } else {
86
+ // Animate position and index when not real-time
83
87
  if (Platform.OS === 'android') {
84
88
  animatedPosition.value = withTiming(payload.position, TIMING_CONFIG);
85
89
  animatedIndex.value = withTiming(payload.index, TIMING_CONFIG);
@@ -87,10 +91,6 @@ export const ReanimatedTrueSheet = forwardRef<TrueSheet, ReanimatedTrueSheetProp
87
91
  animatedPosition.value = withSpring(payload.position, SPRING_CONFIG);
88
92
  animatedIndex.value = withSpring(payload.index, SPRING_CONFIG);
89
93
  }
90
- } else {
91
- // Update directly during drag
92
- animatedPosition.value = payload.position;
93
- animatedIndex.value = payload.index;
94
94
  }
95
95
 
96
96
  onPositionChange?.({ nativeEvent: payload } as PositionChangeEvent);
@@ -1,24 +0,0 @@
1
- //
2
- // Created by Jovanni Lo (@lodev09)
3
- // Copyright (c) 2024-present. All rights reserved.
4
- //
5
- // This source code is licensed under the MIT license found in the
6
- // LICENSE file in the root directory of this source tree.
7
- //
8
-
9
- #import <UIKit/UIKit.h>
10
-
11
- NS_ASSUME_NONNULL_BEGIN
12
-
13
- @interface ConversionUtil : NSObject
14
-
15
- /**
16
- * Converts a dashed-case blur tint string to UIBlurEffectStyle
17
- * @param tintString The blur tint string (e.g., "system-thin-material")
18
- * @return The corresponding UIBlurEffectStyle, defaults to UIBlurEffectStyleLight if not recognized
19
- */
20
- + (UIBlurEffectStyle)blurEffectStyleFromString:(NSString *)tintString;
21
-
22
- @end
23
-
24
- NS_ASSUME_NONNULL_END