@lodev09/react-native-true-sheet 3.1.0 → 3.1.1

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.
@@ -267,7 +267,7 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
267
267
  viewController.sheetCornerRadius = radius
268
268
  }
269
269
 
270
- fun setSheetBackgroundColor(color: Int) {
270
+ fun setSheetBackgroundColor(color: Int?) {
271
271
  if (viewController.sheetBackgroundColor == color) return
272
272
  viewController.sheetBackgroundColor = color
273
273
  }
@@ -299,6 +299,10 @@ class TrueSheetView(private val reactContext: ThemedReactContext) :
299
299
  viewController.edgeToEdgeFullScreen = edgeToEdgeFullScreen
300
300
  }
301
301
 
302
+ fun setInsetAdjustment(insetAdjustment: String) {
303
+ viewController.insetAdjustment = insetAdjustment
304
+ }
305
+
302
306
  // ==================== State Management ====================
303
307
 
304
308
  /**
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
4
4
  import android.graphics.Color
5
5
  import android.graphics.drawable.ShapeDrawable
6
6
  import android.graphics.drawable.shapes.RoundRectShape
7
+ import android.util.Log
7
8
  import android.util.TypedValue
8
9
  import android.view.MotionEvent
9
10
  import android.view.View
@@ -115,9 +116,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
115
116
  var currentDetentIndex: Int = -1
116
117
  private set
117
118
 
118
- // Resolved detent positions (Y coordinate when sheet rests at each detent)
119
- private val resolvedDetentPositions = mutableListOf<Int>()
120
-
121
119
  private var isDragging = false
122
120
  private var isDismissing = false
123
121
  private var isReconfiguring = false
@@ -144,7 +142,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
144
142
  var grabber: Boolean = true
145
143
  var grabberOptions: GrabberOptions? = null
146
144
  var sheetCornerRadius: Float = -1f
147
- var sheetBackgroundColor: Int = 0
145
+ var sheetBackgroundColor: Int? = null
148
146
  var edgeToEdgeFullScreen: Boolean = false
149
147
 
150
148
  var dismissible: Boolean = true
@@ -167,12 +165,17 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
167
165
  // MARK: - Computed Properties
168
166
  // ====================================================================
169
167
 
170
- val statusBarHeight: Int
171
- get() = ScreenUtils.getStatusBarHeight(reactContext)
168
+ val bottomInset: Int
169
+ get() = if (edgeToEdgeEnabled) ScreenUtils.getInsets(reactContext).bottom else 0
170
+
171
+ val topInset: Int
172
+ get() = if (edgeToEdgeEnabled) ScreenUtils.getInsets(reactContext).top else 0
173
+
174
+ var insetAdjustment: String = "automatic"
172
175
 
173
- /** Navigation bar height, added to sheet height to match iOS behavior. */
174
- private val bottomInset: Int
175
- get() = ScreenUtils.getNavigationBarHeight(reactContext)
176
+ /** Auto add bottom inset for consistency with iOS when insetAdjustment is 'automatic' */
177
+ val contentBottomInset: Int
178
+ get() = if (insetAdjustment == "automatic") bottomInset else 0
176
179
 
177
180
  /** Edge-to-edge enabled by default on API 36+, or when explicitly configured. */
178
181
  private val edgeToEdgeEnabled: Boolean
@@ -181,10 +184,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
181
184
  return BuildConfig.EDGE_TO_EDGE_ENABLED || dialog?.edgeToEdgeEnabled == true || defaultEnabled
182
185
  }
183
186
 
184
- /** Top inset when edge-to-edge is enabled but not full-screen. */
185
- private val sheetTopInset: Int
186
- get() = if (edgeToEdgeEnabled && !edgeToEdgeFullScreen) statusBarHeight else 0
187
-
188
187
  internal var eventDispatcher: EventDispatcher? = null
189
188
  private val jSTouchDispatcher = JSTouchDispatcher(this)
190
189
  private var jSPointerDispatcher: JSPointerDispatcher? = null
@@ -197,7 +196,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
197
196
  // ====================================================================
198
197
 
199
198
  init {
200
- screenHeight = ScreenUtils.getScreenHeight(reactContext, edgeToEdgeEnabled)
199
+ screenHeight = ScreenUtils.getScreenHeight(reactContext)
201
200
  screenWidth = ScreenUtils.getScreenWidth(reactContext)
202
201
  jSPointerDispatcher = JSPointerDispatcher(this)
203
202
  }
@@ -269,9 +268,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
269
268
  setupGrabber()
270
269
 
271
270
  sheetContainer?.post {
272
- val positionPx = bottomSheetView?.let { ScreenUtils.getScreenY(it) } ?: screenHeight
273
- storeResolvedPosition(currentDetentIndex)
274
- emitChangePositionDelegate(positionPx, realtime = false)
271
+ bottomSheetView?.let { emitChangePositionDelegate(it, realtime = false) }
275
272
  positionFooter()
276
273
  }
277
274
 
@@ -293,7 +290,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
293
290
 
294
291
  isDismissing = true
295
292
  emitWillDismissEvents()
296
- emitChangePositionDelegate(screenHeight, realtime = false)
293
+ emitDismissedPosition()
297
294
  }
298
295
 
299
296
  dialog.setOnDismissListener {
@@ -309,9 +306,8 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
309
306
  object : BottomSheetBehavior.BottomSheetCallback() {
310
307
  override fun onSlide(sheetView: View, slideOffset: Float) {
311
308
  val behavior = behavior ?: return
312
- val positionPx = getCurrentPositionPx(sheetView)
313
309
 
314
- emitChangePositionDelegate(positionPx, realtime = true)
310
+ emitChangePositionDelegate(sheetView, realtime = true)
315
311
 
316
312
  when (behavior.state) {
317
313
  BottomSheetBehavior.STATE_DRAGGING,
@@ -343,8 +339,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
343
339
  if (isReconfiguring) return
344
340
 
345
341
  getDetentInfoForState(newState)?.let { detentInfo ->
346
- storeResolvedPosition(detentInfo.index)
347
-
348
342
  if (isDragging) {
349
343
  val detent = getDetentValueForIndex(detentInfo.index)
350
344
  delegate?.viewControllerDidDragEnd(detentInfo.index, detentInfo.position, detent)
@@ -432,11 +426,11 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
432
426
  val isExpanded: Boolean
433
427
  get() {
434
428
  val sheetTop = bottomSheetView?.top ?: return false
435
- return sheetTop <= statusBarHeight
429
+ return sheetTop <= topInset
436
430
  }
437
431
 
438
432
  val currentSheetTop: Int
439
- get() = bottomSheetView?.let { ScreenUtils.getScreenY(it) } ?: screenHeight
433
+ get() = bottomSheetView?.top ?: screenHeight
440
434
 
441
435
  fun getExpectedSheetTop(detentIndex: Int): Int {
442
436
  if (detentIndex < 0 || detentIndex >= detents.size) return screenHeight
@@ -445,15 +439,21 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
445
439
  }
446
440
 
447
441
  /** Hides without dismissing. Used for sheet stacking and RN Screens modals. */
448
- fun hideDialog() {
442
+ fun hideDialog(emitPosition: Boolean = false) {
449
443
  isDialogVisible = false
450
444
  dialog?.window?.decorView?.visibility = INVISIBLE
445
+ if (emitPosition) {
446
+ emitDismissedPosition()
447
+ }
451
448
  }
452
449
 
453
450
  /** Shows a previously hidden dialog. */
454
- fun showDialog() {
451
+ fun showDialog(emitPosition: Boolean = false) {
455
452
  isDialogVisible = true
456
453
  dialog?.window?.decorView?.visibility = VISIBLE
454
+ if (emitPosition) {
455
+ bottomSheetView?.let { emitChangePositionDelegate(it, realtime = false) }
456
+ }
457
457
  }
458
458
 
459
459
  // ====================================================================
@@ -496,10 +496,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
496
496
 
497
497
  isDismissing = true
498
498
  emitWillDismissEvents()
499
-
500
- this.post {
501
- emitChangePositionDelegate(screenHeight, realtime = false)
502
- }
499
+ emitDismissedPosition()
503
500
 
504
501
  if (!animated) {
505
502
  dialog?.window?.setWindowAnimations(0)
@@ -515,19 +512,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
515
512
  fun setupSheetDetents() {
516
513
  val behavior = this.behavior ?: return
517
514
 
518
- if (resolvedDetentPositions.size != detents.size) {
519
- resolvedDetentPositions.clear()
520
- repeat(detents.size) { resolvedDetentPositions.add(0) }
521
- }
522
-
523
- for (i in detents.indices) {
524
- if (detents[i] == -1.0) {
525
- val detentHeight = getDetentHeight(detents[i])
526
- resolvedDetentPositions[i] = screenHeight - detentHeight
527
- }
528
- }
529
-
530
515
  isReconfiguring = true
516
+ val realHeight = ScreenUtils.getRealScreenHeight(reactContext)
517
+ val edgeToEdgeTopInset: Int = if (!edgeToEdgeFullScreen) topInset else 0
531
518
 
532
519
  behavior.apply {
533
520
  isFitToContents = false
@@ -535,31 +522,26 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
535
522
 
536
523
  val oldExpandOffset = expandedOffset
537
524
 
538
- when (detents.size) {
539
- 1 -> {
540
- setPeekHeight(getDetentHeight(detents[0]), isPresented)
541
- halfExpandedRatio = minOf(peekHeight.toFloat() / screenHeight.toFloat(), MAX_HALF_EXPANDED_RATIO)
542
- expandedOffset = screenHeight - peekHeight
543
- isFitToContents = expandedOffset == 0
544
- }
525
+ val maxAvailableHeight = realHeight - edgeToEdgeTopInset
545
526
 
546
- 2 -> {
547
- setPeekHeight(getDetentHeight(detents[0]), isPresented)
548
- halfExpandedRatio = minOf(getDetentHeight(detents[1]).toFloat() / screenHeight.toFloat(), MAX_HALF_EXPANDED_RATIO)
549
- expandedOffset = screenHeight - getDetentHeight(detents[1])
550
- isFitToContents = expandedOffset == 0
551
- }
527
+ setPeekHeight(getDetentHeight(detents[0]), isPresented)
552
528
 
553
- 3 -> {
554
- setPeekHeight(getDetentHeight(detents[0]), isPresented)
555
- halfExpandedRatio = minOf(getDetentHeight(detents[1]).toFloat() / screenHeight.toFloat(), MAX_HALF_EXPANDED_RATIO)
556
- expandedOffset = screenHeight - getDetentHeight(detents[2])
557
- }
529
+ val halfExpandedDetentHeight = when (detents.size) {
530
+ 1 -> peekHeight
531
+ else -> getDetentHeight(detents[1])
558
532
  }
559
533
 
534
+ val maxDetentHeight = getDetentHeight(detents.last())
535
+
536
+ val adjustedHalfExpandedHeight = minOf(halfExpandedDetentHeight, maxAvailableHeight)
537
+ halfExpandedRatio = minOf(adjustedHalfExpandedHeight.toFloat() / realHeight.toFloat(), MAX_HALF_EXPANDED_RATIO)
538
+
539
+ expandedOffset = maxOf(edgeToEdgeTopInset, realHeight - maxDetentHeight)
540
+ isFitToContents = detents.size < 3 && expandedOffset == 0
541
+
560
542
  if (oldExpandOffset != expandedOffset || expandedOffset == 0) {
561
- val offset = if (expandedOffset == 0) statusBarHeight else 0
562
- val newHeight = screenHeight - expandedOffset - offset
543
+ val offset = if (expandedOffset == 0) topInset else 0
544
+ val newHeight = realHeight - expandedOffset - offset
563
545
  delegate?.viewControllerDidChangeSize(width, newHeight)
564
546
  }
565
547
 
@@ -592,7 +574,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
592
574
 
593
575
  val cornerRadius = if (sheetCornerRadius < 0) DEFAULT_CORNER_RADIUS.dpToPx() else sheetCornerRadius
594
576
  val outerRadii = floatArrayOf(cornerRadius, cornerRadius, cornerRadius, cornerRadius, 0f, 0f, 0f, 0f)
595
- val backgroundColor = if (sheetBackgroundColor != 0) sheetBackgroundColor else getDefaultBackgroundColor()
577
+ val backgroundColor = sheetBackgroundColor ?: getDefaultBackgroundColor()
596
578
 
597
579
  bottomSheet.background = ShapeDrawable(RoundRectShape(outerRadii, null, null)).apply {
598
580
  paint.color = backgroundColor
@@ -633,15 +615,18 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
633
615
  val bottomSheet = bottomSheetView ?: return
634
616
 
635
617
  val footerHeight = footerView.height
636
- val bottomSheetY = ScreenUtils.getScreenY(bottomSheet)
618
+ val sheetHeight = bottomSheet.height
619
+ val sheetTop = bottomSheet.top
637
620
 
638
- var footerY = (screenHeight - bottomSheetY - footerHeight).toFloat()
621
+ // Footer Y relative to sheet: place at bottom of sheet container minus footer height
622
+ var footerY = (sheetHeight - sheetTop - footerHeight).toFloat()
639
623
 
640
624
  if (slideOffset != null && slideOffset < 0) {
641
625
  footerY -= (footerHeight * slideOffset)
642
626
  }
643
627
 
644
- val maxAllowedY = (screenHeight - statusBarHeight - footerHeight).toFloat()
628
+ // Clamp to prevent footer from going above visible area
629
+ val maxAllowedY = (sheetHeight - topInset - footerHeight).toFloat()
645
630
  footerView.y = minOf(footerY, maxAllowedY)
646
631
  }
647
632
 
@@ -671,52 +656,54 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
671
656
  // MARK: - Position & Drag Handling
672
657
  // ====================================================================
673
658
 
674
- private fun emitChangePositionDelegate(positionPx: Int, realtime: Boolean) {
675
- if (positionPx == lastEmittedPositionPx) return
676
-
677
- lastEmittedPositionPx = positionPx
678
- val position = positionPx.pxToDp()
679
- val interpolatedIndex = getInterpolatedIndexForPosition(positionPx)
680
- val detent = getInterpolatedDetentForPosition(positionPx)
681
- delegate?.viewControllerDidChangePosition(interpolatedIndex, position, detent, realtime)
659
+ /**
660
+ * Calculate the visible sheet height from a sheet view.
661
+ * Uses real screen height for consistency across API levels.
662
+ */
663
+ private fun getVisibleSheetHeight(sheetView: View): Int {
664
+ val realHeight = ScreenUtils.getRealScreenHeight(reactContext)
665
+ return realHeight - sheetView.top
682
666
  }
683
667
 
684
- private fun storeResolvedPosition(index: Int) {
685
- if (index < 0 || index >= resolvedDetentPositions.size) return
686
- val positionPx = bottomSheetView?.let { ScreenUtils.getScreenY(it) } ?: return
687
- if (positionPx in 1..<screenHeight) {
688
- resolvedDetentPositions[index] = positionPx
689
- }
690
- }
691
-
692
- fun storeCurrentResolvedPosition() {
693
- storeResolvedPosition(currentDetentIndex)
694
- }
668
+ private fun getPositionDp(visibleSheetHeight: Int): Float = (screenHeight - visibleSheetHeight).pxToDp()
695
669
 
696
- private fun getEstimatedPositionForIndex(index: Int): Int {
697
- if (index < 0 || index >= resolvedDetentPositions.size) return screenHeight
670
+ private fun emitChangePositionDelegate(sheetView: View, realtime: Boolean) {
671
+ if (sheetView.top == lastEmittedPositionPx) return
698
672
 
699
- val storedPos = resolvedDetentPositions[index]
700
- if (storedPos > 0) return storedPos
673
+ lastEmittedPositionPx = sheetView.top
674
+ val position = getPositionDp(getVisibleSheetHeight(sheetView))
675
+ val interpolatedIndex = getInterpolatedIndexForPosition(sheetView.top)
676
+ val detent = getInterpolatedDetentForPosition(sheetView.top)
677
+ delegate?.viewControllerDidChangePosition(interpolatedIndex, position, detent, realtime)
678
+ }
701
679
 
702
- if (index < detents.size) {
703
- val detentHeight = getDetentHeight(detents[index])
704
- return screenHeight - detentHeight
705
- }
680
+ private fun emitDismissedPosition() {
681
+ val position = screenHeight.pxToDp()
682
+ lastEmittedPositionPx = -1
683
+ delegate?.viewControllerDidChangePosition(-1f, position, 0f, false)
684
+ }
706
685
 
707
- return screenHeight
686
+ /**
687
+ * Get the expected sheetTop position for a detent index.
688
+ */
689
+ private fun getSheetTopForDetentIndex(index: Int): Int {
690
+ val realHeight = ScreenUtils.getRealScreenHeight(reactContext)
691
+ if (index < 0 || index >= detents.size) return realHeight
692
+ val detentHeight = getDetentHeight(detents[index])
693
+ return realHeight - detentHeight
708
694
  }
709
695
 
710
696
  /** Returns (fromIndex, toIndex, progress) for interpolation, or null if < 2 detents. */
711
697
  private fun findSegmentForPosition(positionPx: Int): Triple<Int, Int, Float>? {
712
- val count = resolvedDetentPositions.size
698
+ val count = detents.size
713
699
  if (count < 2) return null
714
700
 
715
- val firstPos = getEstimatedPositionForIndex(0)
716
- val lastPos = getEstimatedPositionForIndex(count - 1)
701
+ val realHeight = ScreenUtils.getRealScreenHeight(reactContext)
702
+ val firstPos = getSheetTopForDetentIndex(0)
703
+ val lastPos = getSheetTopForDetentIndex(count - 1)
717
704
 
718
705
  if (positionPx > firstPos) {
719
- val range = screenHeight - firstPos
706
+ val range = realHeight - firstPos
720
707
  val progress = if (range > 0) (positionPx - firstPos).toFloat() / range else 0f
721
708
  return Triple(-1, 0, progress)
722
709
  }
@@ -726,8 +713,8 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
726
713
  }
727
714
 
728
715
  for (i in 0 until count - 1) {
729
- val pos = getEstimatedPositionForIndex(i)
730
- val nextPos = getEstimatedPositionForIndex(i + 1)
716
+ val pos = getSheetTopForDetentIndex(i)
717
+ val nextPos = getSheetTopForDetentIndex(i + 1)
731
718
 
732
719
  if (positionPx in nextPos..pos) {
733
720
  val range = pos - nextPos
@@ -741,7 +728,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
741
728
 
742
729
  /** Returns continuous index (e.g., 0.5 = halfway between detent 0 and 1). */
743
730
  private fun getInterpolatedIndexForPosition(positionPx: Int): Float {
744
- val count = resolvedDetentPositions.size
731
+ val count = detents.size
745
732
  if (count == 0) return -1f
746
733
  if (count == 1) return 0f
747
734
 
@@ -754,7 +741,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
754
741
 
755
742
  /** Returns interpolated screen fraction for position. */
756
743
  private fun getInterpolatedDetentForPosition(positionPx: Int): Float {
757
- val count = resolvedDetentPositions.size
744
+ val count = detents.size
758
745
  if (count == 0) return 0f
759
746
 
760
747
  val segment = findSegmentForPosition(positionPx) ?: return getDetentValueForIndex(0)
@@ -782,12 +769,10 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
782
769
  }
783
770
 
784
771
  private fun getCurrentDetentInfo(sheetView: View): DetentInfo {
785
- val screenY = ScreenUtils.getScreenY(sheetView)
786
- return DetentInfo(currentDetentIndex, screenY.pxToDp())
772
+ val position = getPositionDp(getVisibleSheetHeight(sheetView))
773
+ return DetentInfo(currentDetentIndex, position)
787
774
  }
788
775
 
789
- private fun getCurrentPositionPx(sheetView: View): Int = ScreenUtils.getScreenY(sheetView)
790
-
791
776
  private fun handleDragBegin(sheetView: View) {
792
777
  val detentInfo = getCurrentDetentInfo(sheetView)
793
778
  val detent = getDetentValueForIndex(detentInfo.index)
@@ -808,15 +793,17 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
808
793
 
809
794
  private fun getDetentHeight(detent: Double): Int {
810
795
  val height: Int = if (detent == -1.0) {
811
- contentHeight + headerHeight + bottomInset
796
+ // Auto height: add bottomInset to content to match iOS behavior
797
+ contentHeight + headerHeight + contentBottomInset
812
798
  } else {
813
799
  if (detent <= 0.0 || detent > 1.0) {
814
800
  throw IllegalArgumentException("TrueSheet: detent fraction ($detent) must be between 0 and 1")
815
801
  }
816
- (detent * screenHeight).toInt() + bottomInset
802
+ // Fractional detent: add bottomInset to match iOS behavior
803
+ (detent * screenHeight).toInt() + contentBottomInset
817
804
  }
818
805
 
819
- val maxAllowedHeight = screenHeight - sheetTopInset
806
+ val maxAllowedHeight = screenHeight + contentBottomInset
820
807
  return maxSheetHeight?.let { minOf(height, it, maxAllowedHeight) } ?: minOf(height, maxAllowedHeight)
821
808
  }
822
809
 
@@ -866,15 +853,15 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
866
853
  }
867
854
 
868
855
  private fun getPositionForDetentIndex(index: Int): Float {
869
- if (index < 0 || index >= detents.size) return 0f
856
+ if (index < 0 || index >= detents.size) return screenHeight.pxToDp()
870
857
 
871
858
  bottomSheetView?.let {
872
- val screenY = ScreenUtils.getScreenY(it)
873
- if (screenY > 0) return screenY.pxToDp()
859
+ val visibleSheetHeight = getVisibleSheetHeight(it)
860
+ if (visibleSheetHeight > 0) return getPositionDp(visibleSheetHeight)
874
861
  }
875
862
 
876
863
  val detentHeight = getDetentHeight(detents[index])
877
- return (screenHeight - detentHeight).pxToDp()
864
+ return getPositionDp(detentHeight)
878
865
  }
879
866
 
880
867
  fun getDetentInfoForIndex(index: Int) = getDetentInfoForState(getStateForDetentIndex(index)) ?: DetentInfo(0, 0f)
@@ -893,20 +880,18 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
893
880
  if (w == oldw && h == oldh) return
894
881
 
895
882
  // Skip continuous size changes when fullScreen + edge-to-edge
896
- if (h + statusBarHeight > screenHeight && isExpanded && oldw == w) {
883
+ if (h + topInset > screenHeight && isExpanded && oldw == w) {
897
884
  return
898
885
  }
899
886
 
900
887
  val oldScreenHeight = screenHeight
901
- screenHeight = ScreenUtils.getScreenHeight(reactContext, edgeToEdgeEnabled)
888
+ screenHeight = ScreenUtils.getScreenHeight(reactContext)
902
889
 
903
890
  if (isPresented && oldScreenHeight != screenHeight && oldScreenHeight > 0) {
904
891
  setupSheetDetents()
905
892
  this.post {
906
893
  positionFooter()
907
- storeResolvedPosition(currentDetentIndex)
908
- val positionPx = bottomSheetView?.let { ScreenUtils.getScreenY(it) } ?: screenHeight
909
- emitChangePositionDelegate(positionPx, realtime = false)
894
+ bottomSheetView?.let { emitChangePositionDelegate(it, realtime = false) }
910
895
  }
911
896
  }
912
897
  }
@@ -97,8 +97,8 @@ class TrueSheetViewManager :
97
97
  view.setDetents(detents)
98
98
  }
99
99
 
100
- @ReactProp(name = "background", defaultInt = 0)
101
- override fun setBackground(view: TrueSheetView, color: Int) {
100
+ @ReactProp(name = "backgroundColor", customType = "Color")
101
+ override fun setBackgroundColor(view: TrueSheetView, color: Int?) {
102
102
  view.setSheetBackgroundColor(color)
103
103
  }
104
104
 
@@ -196,6 +196,11 @@ class TrueSheetViewManager :
196
196
  view.setEdgeToEdgeFullScreen(edgeToEdgeFullScreen)
197
197
  }
198
198
 
199
+ @ReactProp(name = "insetAdjustment")
200
+ override fun setInsetAdjustment(view: TrueSheetView, insetAdjustment: String?) {
201
+ view.setInsetAdjustment(insetAdjustment ?: "automatic")
202
+ }
203
+
199
204
  @ReactProp(name = "scrollable", defaultBoolean = false)
200
205
  override fun setScrollable(view: TrueSheetView, value: Boolean) {
201
206
  // iOS-specific prop - no-op on Android
@@ -25,7 +25,7 @@ object TrueSheetDialogObserver {
25
25
  val parentTop = it.viewController.currentSheetTop
26
26
  val newSheetTop = sheetView.viewController.getExpectedSheetTop(detentIndex)
27
27
  if (!it.viewController.isExpanded && parentTop <= newSheetTop) {
28
- it.viewController.hideDialog()
28
+ it.viewController.hideDialog(emitPosition = true)
29
29
  }
30
30
  }
31
31
 
@@ -46,7 +46,7 @@ object TrueSheetDialogObserver {
46
46
  synchronized(presentedSheetStack) {
47
47
  presentedSheetStack.remove(sheetView)
48
48
  if (hadParent) {
49
- presentedSheetStack.lastOrNull()?.viewController?.showDialog()
49
+ presentedSheetStack.lastOrNull()?.viewController?.showDialog(emitPosition = true)
50
50
  }
51
51
  }
52
52
  }
@@ -1,116 +1,107 @@
1
1
  package com.lodev09.truesheet.utils
2
2
 
3
- import android.annotation.SuppressLint
4
- import android.content.Context
3
+ import android.graphics.Point
5
4
  import android.os.Build
6
- import android.util.DisplayMetrics
7
5
  import android.view.View
8
6
  import android.view.WindowInsets
9
7
  import android.view.WindowManager
10
8
  import com.facebook.react.bridge.ReactContext
9
+ import kotlin.math.min
11
10
 
12
11
  /**
13
- * Utility object for screen dimension calculations
12
+ * Data class for top/bottom insets
14
13
  */
15
- object ScreenUtils {
16
- @SuppressLint("DiscouragedApi")
17
- private fun getIdentifierHeight(context: ReactContext, name: String): Int =
18
- context.resources.getDimensionPixelSize(
19
- context.resources.getIdentifier(name, "dimen", "android")
20
- ).takeIf { it > 0 } ?: 0
14
+ data class Insets(val top: Int, val bottom: Int)
21
15
 
16
+ /**
17
+ * Utility object for screen dimension calculations.
18
+ * Inset calculation approach inspired by react-native-safe-area-context.
19
+ *
20
+ * Note: This library requires React Native 0.76+ which has minSdk API 24.
21
+ */
22
+ object ScreenUtils {
22
23
  /**
23
- * Get the WindowInsets for API 30+, or null for older APIs
24
+ * Get root window insets for API 30+ (Android R)
24
25
  */
25
- private fun getWindowInsets(context: ReactContext): WindowInsets? {
26
+ private fun getInsetsR(rootView: View): Insets? {
26
27
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
27
- return context.getSystemService(WindowManager::class.java)
28
- ?.currentWindowMetrics
29
- ?.windowInsets
28
+ val insets = rootView.rootWindowInsets?.getInsets(
29
+ WindowInsets.Type.statusBars() or
30
+ WindowInsets.Type.displayCutout() or
31
+ WindowInsets.Type.navigationBars()
32
+ ) ?: return null
33
+ return Insets(
34
+ top = insets.top,
35
+ bottom = insets.bottom
36
+ )
30
37
  }
31
38
  return null
32
39
  }
33
40
 
34
41
  /**
35
- * Get the status bar height
36
- *
37
- * @param context React context
38
- * @return Status bar height in pixels
42
+ * Get root window insets for API 24-29
39
43
  */
40
- fun getStatusBarHeight(context: ReactContext): Int {
41
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
42
- getWindowInsets(context)
43
- ?.getInsetsIgnoringVisibility(WindowInsets.Type.statusBars())
44
- ?.let { return it.top }
45
- }
46
- return getIdentifierHeight(context, "status_bar_height")
44
+ @Suppress("DEPRECATION")
45
+ private fun getInsetsLegacy(rootView: View): Insets? {
46
+ val insets = rootView.rootWindowInsets ?: return null
47
+ return Insets(
48
+ top = insets.systemWindowInsetTop,
49
+ // Use min to avoid including soft keyboard
50
+ bottom = min(insets.systemWindowInsetBottom, insets.stableInsetBottom)
51
+ )
47
52
  }
48
53
 
49
54
  /**
50
- * Get the navigation bar height (bottom inset)
55
+ * Get safe area insets from ReactContext using the activity's decor view.
51
56
  *
52
- * @param context React context
53
- * @return Navigation bar height in pixels
57
+ * @param reactContext The ReactContext to get insets from
58
+ * @return Insets with top (status bar) and bottom (navigation bar) values in pixels
54
59
  */
55
- fun getNavigationBarHeight(context: ReactContext): Int {
56
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
57
- getWindowInsets(context)
58
- ?.getInsetsIgnoringVisibility(WindowInsets.Type.navigationBars())
59
- ?.let { return it.bottom }
60
- }
61
- return getIdentifierHeight(context, "navigation_bar_height")
60
+ fun getInsets(reactContext: ReactContext): Insets {
61
+ val activity = reactContext.currentActivity ?: return Insets(0, 0)
62
+ val decorView = activity.window?.decorView ?: return Insets(0, 0)
63
+ return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
64
+ getInsetsR(decorView)
65
+ } else {
66
+ getInsetsLegacy(decorView)
67
+ } ?: Insets(0, 0)
62
68
  }
63
69
 
64
70
  /**
65
- * Calculate the screen height
71
+ * Calculate the screen height using the same method as React Native's useWindowDimensions.
72
+ * This returns the window height which automatically accounts for edge-to-edge mode.
66
73
  *
67
- * @param context React context
68
- * @param edgeToEdge Whether edge-to-edge mode is enabled
74
+ * @param reactContext The ReactContext to get resources from
69
75
  * @return Screen height in pixels
70
76
  */
71
- @SuppressLint("InternalInsetResource", "DiscouragedApi")
72
- fun getScreenHeight(context: ReactContext, edgeToEdge: Boolean): Int {
73
- val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
74
- val displayMetrics = DisplayMetrics()
75
-
76
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
77
- context.display?.getRealMetrics(displayMetrics)
78
- } else {
79
- @Suppress("DEPRECATION")
80
- windowManager.defaultDisplay.getMetrics(displayMetrics)
81
- }
77
+ fun getScreenHeight(reactContext: ReactContext): Int = reactContext.resources.displayMetrics.heightPixels
82
78
 
83
- val screenHeight = displayMetrics.heightPixels
84
-
85
- return if (edgeToEdge) {
86
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
87
- screenHeight
88
- } else {
89
- screenHeight + getNavigationBarHeight(context)
90
- }
79
+ /**
80
+ * Get the real physical device screen height, including system bars.
81
+ * This is consistent across all API levels.
82
+ *
83
+ * @param reactContext The ReactContext to get context from
84
+ * @return Real screen height in pixels
85
+ */
86
+ @Suppress("DEPRECATION")
87
+ fun getRealScreenHeight(reactContext: ReactContext): Int {
88
+ val windowManager = reactContext.getSystemService(WindowManager::class.java)
89
+ return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
90
+ windowManager.currentWindowMetrics.bounds.height()
91
91
  } else {
92
- screenHeight - getStatusBarHeight(context) - getNavigationBarHeight(context)
92
+ val size = Point()
93
+ windowManager.defaultDisplay.getRealSize(size)
94
+ size.y
93
95
  }
94
96
  }
95
97
 
96
98
  /**
97
- * Get the screen width
99
+ * Get the screen width using the same method as React Native's useWindowDimensions.
98
100
  *
99
- * @param context React context
101
+ * @param reactContext The ReactContext to get resources from
100
102
  * @return Screen width in pixels
101
103
  */
102
- fun getScreenWidth(context: ReactContext): Int {
103
- val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
104
-
105
- return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
106
- windowManager.currentWindowMetrics.bounds.width()
107
- } else {
108
- val displayMetrics = DisplayMetrics()
109
- @Suppress("DEPRECATION")
110
- windowManager.defaultDisplay.getMetrics(displayMetrics)
111
- displayMetrics.widthPixels
112
- }
113
- }
104
+ fun getScreenWidth(reactContext: ReactContext): Int = reactContext.resources.displayMetrics.widthPixels
114
105
 
115
106
  /**
116
107
  * Get the location of a view in screen coordinates
@@ -123,12 +114,4 @@ object ScreenUtils {
123
114
  view.getLocationOnScreen(location)
124
115
  return location
125
116
  }
126
-
127
- /**
128
- * Get the Y coordinate of a view in screen coordinates
129
- *
130
- * @param view The view to get screen Y coordinate for
131
- * @return Y coordinate in screen space
132
- */
133
- fun getScreenY(view: View): Int = getScreenLocation(view)[1]
134
117
  }
@@ -15,6 +15,7 @@
15
15
  <style name="TrueSheetEdgeToEdgeEnabledDialog" parent="Theme.Design.Light.BottomSheetDialog">
16
16
  <item name="android:windowIsFloating">false</item>
17
17
  <item name="enableEdgeToEdge">true</item>
18
+ <item name="android:navigationBarColor">@android:color/transparent</item>
18
19
  <item name="android:windowAnimationStyle">@style/TrueSheetAnimation</item>
19
20
  </style>
20
21
  </resources>
@@ -50,6 +50,7 @@ using namespace facebook::react;
50
50
  BOOL _scrollable;
51
51
  BOOL _initialDetentAnimated;
52
52
  BOOL _isSheetUpdatePending;
53
+ BOOL _pendingLayoutUpdate;
53
54
  }
54
55
 
55
56
  #pragma mark - Initialization
@@ -112,11 +113,17 @@ using namespace facebook::react;
112
113
  for (const auto &detent : newProps.detents) {
113
114
  [detents addObject:@(detent)];
114
115
  }
116
+
117
+ if (oldProps) {
118
+ const auto &prevProps = *std::static_pointer_cast<TrueSheetViewProps const>(oldProps);
119
+ if (newProps.detents != prevProps.detents || newProps.insetAdjustment != prevProps.insetAdjustment) {
120
+ _pendingLayoutUpdate = YES;
121
+ }
122
+ }
115
123
  _controller.detents = detents;
116
124
 
117
125
  // Background color
118
- _controller.backgroundColor =
119
- newProps.background == 0 ? nil : RCTUIColorFromSharedColor(SharedColor(newProps.background));
126
+ _controller.backgroundColor = RCTUIColorFromSharedColor(newProps.backgroundColor);
120
127
 
121
128
  // Blur tint
122
129
  _controller.blurTint = !newProps.blurTint.empty() ? RCTNSStringFromString(newProps.blurTint) : nil;
@@ -178,6 +185,8 @@ using namespace facebook::react;
178
185
  _initialDetentAnimated = newProps.initialDetentAnimated;
179
186
  _scrollable = newProps.scrollable;
180
187
 
188
+ _controller.insetAdjustment = RCTNSStringFromString(toString(newProps.insetAdjustment));
189
+
181
190
  if (_containerView) {
182
191
  _containerView.scrollViewPinningEnabled = _scrollable;
183
192
  }
@@ -218,13 +227,21 @@ using namespace facebook::react;
218
227
  }
219
228
 
220
229
  if (_controller.isPresented) {
230
+ BOOL pendingLayoutUpdate = _pendingLayoutUpdate;
231
+ _pendingLayoutUpdate = NO;
232
+
221
233
  [_controller.sheetPresentationController animateChanges:^{
222
234
  [self->_controller setupSheetProps];
223
- [self->_controller setupSheetDetents];
235
+ if (pendingLayoutUpdate) {
236
+ [self->_controller setupSheetDetentsForDetentsChange];
237
+ } else {
238
+ [self->_controller setupSheetDetents];
239
+ }
224
240
  [self->_controller applyActiveDetent];
225
241
  }];
226
242
  [_controller setupDraggable];
227
243
  } else if (_initialDetentIndex >= 0) {
244
+ _pendingLayoutUpdate = NO;
228
245
  [self presentAtIndex:_initialDetentIndex animated:_initialDetentAnimated completion:nil];
229
246
  }
230
247
  }
@@ -63,6 +63,7 @@ NS_ASSUME_NONNULL_BEGIN
63
63
  @property (nonatomic, strong, nullable) NSNumber *blurIntensity;
64
64
  @property (nonatomic, assign) BOOL blurInteraction;
65
65
  @property (nonatomic, assign) BOOL pageSizing;
66
+ @property (nonatomic, copy, nullable) NSString *insetAdjustment;
66
67
  @property (nonatomic, assign) BOOL isPresented;
67
68
  @property (nonatomic, assign) NSInteger activeDetentIndex;
68
69
 
@@ -72,6 +73,7 @@ NS_ASSUME_NONNULL_BEGIN
72
73
  - (void)setupSheetProps;
73
74
  - (void)setupSheetDetents;
74
75
  - (void)setupSheetDetentsForSizeChange;
76
+ - (void)setupSheetDetentsForDetentsChange;
75
77
  - (void)setupDraggable;
76
78
 
77
79
  @end
@@ -24,6 +24,7 @@
24
24
  CGFloat _lastPosition;
25
25
  NSInteger _pendingDetentIndex;
26
26
  BOOL _pendingContentSizeChange;
27
+ BOOL _pendingDetentsChange;
27
28
 
28
29
  CADisplayLink *_transitioningTimer;
29
30
  UIView *_transitionFakeView;
@@ -64,6 +65,7 @@
64
65
  _isTrackingPositionFromLayout = NO;
65
66
 
66
67
  _blurInteraction = YES;
68
+ _insetAdjustment = @"automatic";
67
69
  _resolvedDetentPositions = [NSMutableArray array];
68
70
  _hasPresentedController = NO;
69
71
  }
@@ -96,6 +98,27 @@
96
98
  return UIScreen.mainScreen.bounds.size.height;
97
99
  }
98
100
 
101
+ - (CGFloat)detentBottomAdjustmentForHeight:(CGFloat)height {
102
+ if ([_insetAdjustment isEqualToString:@"automatic"]) {
103
+ return 0;
104
+ }
105
+
106
+ if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) {
107
+ return 0;
108
+ }
109
+
110
+ // On iOS 26+, returns 0 for small detents (height <= 150)
111
+ // Floating sheets don't need adjustment
112
+ if (@available(iOS 26.0, *)) {
113
+ if (height <= 150) {
114
+ return 0;
115
+ }
116
+ }
117
+
118
+ UIWindow *window = [WindowUtil keyWindow];
119
+ return window ? window.safeAreaInsets.bottom : 0;
120
+ }
121
+
99
122
  - (NSInteger)currentDetentIndex {
100
123
  UISheetPresentationController *sheet = self.sheetPresentationController;
101
124
  if (!sheet)
@@ -260,8 +283,9 @@
260
283
  BOOL hasPresentedController = presented != nil && !presented.isBeingPresented && !presented.isBeingDismissed;
261
284
  BOOL realtime = !hasPresentedController;
262
285
 
263
- if (_pendingContentSizeChange) {
286
+ if (_pendingContentSizeChange || _pendingDetentsChange) {
264
287
  _pendingContentSizeChange = NO;
288
+ _pendingDetentsChange = NO;
265
289
  realtime = NO;
266
290
  [self storeResolvedPositionForIndex:self.currentDetentIndex];
267
291
  }
@@ -369,14 +393,6 @@
369
393
 
370
394
  if (!self.draggable) {
371
395
  [GestureUtil setPanGesturesEnabled:NO forView:presentedView];
372
-
373
- TrueSheetContentView *contentView = [self findContentView:presentedView];
374
- if (contentView) {
375
- RCTScrollViewComponentView *scrollViewComponent = [contentView findScrollView:nil];
376
- if (scrollViewComponent && scrollViewComponent.scrollView) {
377
- [GestureUtil setPanGesturesEnabled:NO forView:scrollViewComponent.scrollView];
378
- }
379
- }
380
396
  return;
381
397
  }
382
398
 
@@ -399,14 +415,6 @@
399
415
  return;
400
416
 
401
417
  [GestureUtil setPanGesturesEnabled:self.draggable forView:presentedView];
402
-
403
- TrueSheetContentView *contentView = [self findContentView:presentedView];
404
- if (contentView) {
405
- RCTScrollViewComponentView *scrollViewComponent = [contentView findScrollView:nil];
406
- if (scrollViewComponent && scrollViewComponent.scrollView) {
407
- [GestureUtil setPanGesturesEnabled:self.draggable forView:scrollViewComponent.scrollView];
408
- }
409
- }
410
418
  }
411
419
 
412
420
  - (void)handlePanGesture:(UIPanGestureRecognizer *)gesture {
@@ -639,6 +647,11 @@
639
647
  [self setupSheetDetents];
640
648
  }
641
649
 
650
+ - (void)setupSheetDetentsForDetentsChange {
651
+ _pendingDetentsChange = YES;
652
+ [self setupSheetDetents];
653
+ }
654
+
642
655
  - (void)setupSheetDetents {
643
656
  UISheetPresentationController *sheet = self.sheetPresentationController;
644
657
  if (!sheet)
@@ -715,13 +728,15 @@
715
728
 
716
729
  - (UISheetPresentationControllerDetent *)customDetentWithIdentifier:(NSString *)identifier
717
730
  height:(CGFloat)height API_AVAILABLE(ios(16.0)) {
731
+ CGFloat bottomAdjustment = [self detentBottomAdjustmentForHeight:height];
718
732
  return [UISheetPresentationControllerDetent
719
733
  customDetentWithIdentifier:identifier
720
734
  resolver:^CGFloat(id<UISheetPresentationControllerDetentResolutionContext> context) {
721
735
  CGFloat maxDetentValue = context.maximumDetentValue;
722
736
  CGFloat maxValue =
723
737
  self.maxHeight ? fmin(maxDetentValue, [self.maxHeight floatValue]) : maxDetentValue;
724
- return fmin(height, maxValue);
738
+ CGFloat adjustedHeight = height - bottomAdjustment;
739
+ return fmin(adjustedHeight, maxValue);
725
740
  }];
726
741
  }
727
742
 
@@ -802,6 +817,9 @@
802
817
 
803
818
  sheet.prefersEdgeAttachedInCompactHeight = YES;
804
819
 
820
+ // When draggable is disabled, prevent scrolling from expanding the sheet
821
+ sheet.prefersScrollingExpandsWhenScrolledToEdge = self.draggable;
822
+
805
823
  if (self.cornerRadius) {
806
824
  sheet.preferredCornerRadius = [self.cornerRadius floatValue];
807
825
  } else {
@@ -291,6 +291,7 @@ export class TrueSheet extends PureComponent {
291
291
  style,
292
292
  header,
293
293
  footer,
294
+ insetAdjustment = 'automatic',
294
295
  ...rest
295
296
  } = this.props;
296
297
 
@@ -317,7 +318,7 @@ export class TrueSheet extends PureComponent {
317
318
  detents: resolvedDetents,
318
319
  blurTint: blurTint,
319
320
  blurOptions: blurOptions,
320
- background: processColor(backgroundColor) ?? 0,
321
+ backgroundColor: backgroundColor,
321
322
  cornerRadius: cornerRadius,
322
323
  grabber: grabber,
323
324
  grabberOptions: {
@@ -335,6 +336,7 @@ export class TrueSheet extends PureComponent {
335
336
  edgeToEdgeFullScreen: edgeToEdgeFullScreen,
336
337
  scrollable: scrollable,
337
338
  pageSizing: pageSizing,
339
+ insetAdjustment: insetAdjustment,
338
340
  onMount: this.onMount,
339
341
  onWillPresent: this.onWillPresent,
340
342
  onDidPresent: this.onDidPresent,
@@ -1 +1 @@
1
- {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","View","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","ANDROID_HITBOX_HEIGHT","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","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","blurOptions","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableAndroidContent","ref","sheetView","background","color","OS","collapsable","grabberHitbox","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis","height"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":";;AAAA,SACEA,aAAa,EAEbC,SAAS,EAGTC,cAAc,EACdC,aAAa,QACR,OAAO;AAoBd,OAAOC,4BAA4B,MAAM,uCAAuC;AAChF,OAAOC,qCAAqC,MAAM,gDAAgD;AAClG,OAAOC,mCAAmC,MAAM,8CAA8C;AAC9F,OAAOC,kCAAkC,MAAM,6CAA6C;AAC5F,OAAOC,kCAAkC,MAAM,6CAA6C;AAE5F,OAAOC,eAAe,MAAM,kCAA+B;AAE3D,SAASC,QAAQ,EAAEC,YAAY,EAAEC,UAAU,EAAEC,cAAc,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAExF,MAAMC,aAAa,GACjB,2FAA2F,GAC3FT,QAAQ,CAACU,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B,GAC/B,iDAAiD;;AAEnD;AACA,MAAMC,qBAAqB,GAAG,EAAE;AAEhC,IAAI,CAACd,eAAe,EAAE;EACpB,MAAM,IAAIe,KAAK,CAACL,aAAa,CAAC;AAChC;AAQA,OAAO,MAAMM,SAAS,SAASzB,aAAa,CAAiC;EAC3E0B,WAAW,GAAG,WAAW;EAIzB;AACF;AACA;EACE,OAAwBC,SAAS,GAAkC,CAAC,CAAC;;EAErE;AACF;AACA;EACUC,oBAAoB,GAAwB,IAAI;EAExDC,WAAWA,CAACC,KAAqB,EAAE;IACjC,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,SAAS,gBAAG9B,SAAS,CAAY,CAAC;IAEvC,IAAI,CAAC+B,eAAe,CAAC,CAAC;;IAEtB;IACA,MAAMC,uBAAuB,GAC3BH,KAAK,CAACI,kBAAkB,KAAKC,SAAS,IAAIL,KAAK,CAACI,kBAAkB,IAAI,CAAC;IAEzE,IAAI,CAACE,KAAK,GAAG;MACXC,sBAAsB,EAAEJ;IAC1B,CAAC;IAED,IAAI,CAACK,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC;IACtC,IAAI,CAACC,aAAa,GAAG,IAAI,CAACA,aAAa,CAACD,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACE,YAAY,GAAG,IAAI,CAACA,YAAY,CAACF,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACG,aAAa,GAAG,IAAI,CAACA,aAAa,CAACH,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACI,YAAY,GAAG,IAAI,CAACA,YAAY,CAACJ,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACK,cAAc,GAAG,IAAI,CAACA,cAAc,CAACL,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,CAACM,WAAW,GAAG,IAAI,CAACA,WAAW,CAACN,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACO,YAAY,GAAG,IAAI,CAACA,YAAY,CAACP,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACQ,SAAS,GAAG,IAAI,CAACA,SAAS,CAACR,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACS,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACT,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACU,WAAW,GAAG,IAAI,CAACA,WAAW,CAACV,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACW,UAAU,GAAG,IAAI,CAACA,UAAU,CAACX,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACY,UAAU,GAAG,IAAI,CAACA,UAAU,CAACZ,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACa,SAAS,GAAG,IAAI,CAACA,SAAS,CAACb,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACc,WAAW,GAAG,IAAI,CAACA,WAAW,CAACd,IAAI,CAAC,IAAI,CAAC;EAChD;EAEQP,eAAeA,CAAA,EAAS;IAC9B,MAAM;MAAEsB,OAAO;MAAEpB;IAAmB,CAAC,GAAG,IAAI,CAACJ,KAAK;;IAElD;IACA,IAAIwB,OAAO,IAAIA,OAAO,CAACC,MAAM,GAAG,CAAC,EAAE;MACjCC,OAAO,CAACC,IAAI,CACV,gCAAgCH,OAAO,CAACC,MAAM,yDAChD,CAAC;IACH;;IAEA;IACA,IAAID,OAAO,EAAE;MACXA,OAAO,CAACI,OAAO,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;QACjC,IAAID,MAAM,KAAK,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;UACnD,IAAIA,MAAM,IAAI,CAAC,IAAIA,MAAM,GAAG,CAAC,EAAE;YAC7BH,OAAO,CAACC,IAAI,CACV,8BAA8BG,KAAK,KAAKD,MAAM,kDAChD,CAAC;UACH;QACF;MACF,CAAC,CAAC;IACJ;;IAEA;IACA,IAAIzB,kBAAkB,KAAKC,SAAS,IAAID,kBAAkB,IAAI,CAAC,EAAE;MAC/D,MAAM2B,aAAa,GAAGC,IAAI,CAACC,GAAG,CAACT,OAAO,EAAEC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MACzD,IAAIrB,kBAAkB,IAAI2B,aAAa,EAAE;QACvC,MAAM,IAAIrC,KAAK,CACb,kCAAkCU,kBAAkB,yCAAyC2B,aAAa,UAC5G,CAAC;MACH;IACF;EACF;EAEA,OAAeG,WAAWA,CAACC,IAAY,EAAE;IACvC,MAAMC,QAAQ,GAAGzC,SAAS,CAACE,SAAS,CAACsC,IAAI,CAAC;IAC1C,IAAI,CAACC,QAAQ,EAAE;MACbV,OAAO,CAACC,IAAI,CAAC,gDAAgDQ,IAAI,0BAA0B,CAAC;MAC5F;IACF;IAEA,OAAOC,QAAQ;EACjB;EAEA,IAAYC,MAAMA,CAAA,EAAW;IAC3B,MAAMC,UAAU,GAAGvD,cAAc,CAAC,IAAI,CAACkB,SAAS,CAACsC,OAAO,CAAC;IACzD,IAAID,UAAU,IAAI,IAAI,IAAIA,UAAU,KAAK,CAAC,CAAC,EAAE;MAC3C,MAAM,IAAI5C,KAAK,CAAC,+BAA+B,CAAC;IAClD;IAEA,OAAO4C,UAAU;EACnB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAoBE,OAAOA,CACzBL,IAAY,EACZL,KAAa,GAAG,CAAC,EACjBW,QAAiB,GAAG,IAAI,EACT;IACf,MAAML,QAAQ,GAAGzC,SAAS,CAACuC,WAAW,CAACC,IAAI,CAAC;IAC5C,IAAI,CAACC,QAAQ,EAAE;MACb,MAAM,IAAI1C,KAAK,CAAC,oBAAoByC,IAAI,aAAa,CAAC;IACxD;IAEA,OAAOC,QAAQ,CAACI,OAAO,CAACV,KAAK,EAAEW,QAAQ,CAAC;EAC1C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,aAAoBC,OAAOA,CAACP,IAAY,EAAEM,QAAiB,GAAG,IAAI,EAAiB;IACjF,MAAML,QAAQ,GAAGzC,SAAS,CAACuC,WAAW,CAACC,IAAI,CAAC;IAC5C,IAAI,CAACC,QAAQ,EAAE;MACb,MAAM,IAAI1C,KAAK,CAAC,oBAAoByC,IAAI,aAAa,CAAC;IACxD;IAEA,OAAOC,QAAQ,CAACM,OAAO,CAACD,QAAQ,CAAC;EACnC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,aAAoBE,MAAMA,CAACR,IAAY,EAAEL,KAAa,EAAiB;IACrE,MAAMM,QAAQ,GAAGzC,SAAS,CAACuC,WAAW,CAACC,IAAI,CAAC;IAC5C,IAAI,CAACC,QAAQ,EAAE;MACb,MAAM,IAAI1C,KAAK,CAAC,oBAAoByC,IAAI,aAAa,CAAC;IACxD;IAEA,OAAOC,QAAQ,CAACO,MAAM,CAACb,KAAK,CAAC;EAC/B;EAEQc,gBAAgBA,CAAA,EAAS;IAC/B,IAAI,IAAI,CAAC5C,KAAK,CAACmC,IAAI,EAAE;MACnBxC,SAAS,CAACE,SAAS,CAAC,IAAI,CAACG,KAAK,CAACmC,IAAI,CAAC,GAAG,IAAI;IAC7C;EACF;EAEQU,kBAAkBA,CAAA,EAAS;IACjC,IAAI,IAAI,CAAC7C,KAAK,CAACmC,IAAI,EAAE;MACnB,OAAOxC,SAAS,CAACE,SAAS,CAAC,IAAI,CAACG,KAAK,CAACmC,IAAI,CAAC;IAC7C;EACF;EAEQrB,cAAcA,CAACgC,KAAwB,EAAQ;IACrD,IAAI,CAAC9C,KAAK,CAACc,cAAc,GAAGgC,KAAK,CAAC;EACpC;EAEQlC,aAAaA,CAACkC,KAAuB,EAAQ;IACnD,IAAI,CAAC9C,KAAK,CAACY,aAAa,GAAGkC,KAAK,CAAC;EACnC;EAEQjC,YAAYA,CAACiC,KAAsB,EAAQ;IACjD,IAAI,CAAC9C,KAAK,CAACa,YAAY,GAAGiC,KAAK,CAAC;EAClC;EAEQpC,aAAaA,CAACoC,KAAuB,EAAQ;IACnD,IAAI,CAAC9C,KAAK,CAACU,aAAa,GAAGoC,KAAK,CAAC;EACnC;EAEQnC,YAAYA,CAACmC,KAAsB,EAAQ;IACjD;IACA,IAAI,CAACC,QAAQ,CAAC;MAAExC,sBAAsB,EAAE;IAAM,CAAC,CAAC;IAChD,IAAI,CAACP,KAAK,CAACW,YAAY,GAAGmC,KAAK,CAAC;EAClC;EAEQtC,OAAOA,CAACsC,KAAiB,EAAQ;IACvC;IACA,IAAI,IAAI,CAAChD,oBAAoB,EAAE;MAC7B,IAAI,CAACA,oBAAoB,CAAC,CAAC;MAC3B,IAAI,CAACA,oBAAoB,GAAG,IAAI;IAClC;IAEA,IAAI,CAACE,KAAK,CAACQ,OAAO,GAAGsC,KAAK,CAAC;EAC7B;EAEQ/B,WAAWA,CAAC+B,KAAqB,EAAQ;IAC/C,IAAI,CAAC9C,KAAK,CAACe,WAAW,GAAG+B,KAAK,CAAC;EACjC;EAEQ9B,YAAYA,CAAC8B,KAAsB,EAAQ;IACjD,IAAI,CAAC9C,KAAK,CAACgB,YAAY,GAAG8B,KAAK,CAAC;EAClC;EAEQ7B,SAASA,CAAC6B,KAAmB,EAAQ;IAC3C,IAAI,CAAC9C,KAAK,CAACiB,SAAS,GAAG6B,KAAK,CAAC;EAC/B;EAEQ5B,gBAAgBA,CAAC4B,KAA0B,EAAQ;IACzD,IAAI,CAAC9C,KAAK,CAACkB,gBAAgB,GAAG4B,KAAK,CAAC;EACtC;EAEQ3B,WAAWA,CAAC2B,KAAqB,EAAQ;IAC/C,IAAI,CAAC9C,KAAK,CAACmB,WAAW,GAAG2B,KAAK,CAAC;EACjC;EAEQ1B,UAAUA,CAAC0B,KAAoB,EAAQ;IAC7C,IAAI,CAAC9C,KAAK,CAACoB,UAAU,GAAG0B,KAAK,CAAC;EAChC;EAEQzB,UAAUA,CAACyB,KAAoB,EAAQ;IAC7C,IAAI,CAAC9C,KAAK,CAACqB,UAAU,GAAGyB,KAAK,CAAC;EAChC;EAEQxB,SAASA,CAACwB,KAAmB,EAAQ;IAC3C,IAAI,CAAC9C,KAAK,CAACsB,SAAS,GAAGwB,KAAK,CAAC;EAC/B;EAEQvB,WAAWA,CAACuB,KAAqB,EAAQ;IAC/C,IAAI,CAAC9C,KAAK,CAACuB,WAAW,GAAGuB,KAAK,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAaN,OAAOA,CAACV,KAAa,GAAG,CAAC,EAAEW,QAAiB,GAAG,IAAI,EAAiB;IAC/E,MAAMV,aAAa,GAAGC,IAAI,CAACC,GAAG,CAAC,IAAI,CAACjC,KAAK,CAACwB,OAAO,EAAEC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,IAAIK,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAIC,aAAa,EAAE;MACvC,MAAM,IAAIrC,KAAK,CACb,6BAA6BoC,KAAK,yCAAyCC,aAAa,UAC1F,CAAC;IACH;;IAEA;IACA,IAAI,CAAC,IAAI,CAACzB,KAAK,CAACC,sBAAsB,EAAE;MACtC,MAAM,IAAIyC,OAAO,CAAQC,OAAO,IAAK;QACnC,IAAI,CAACnD,oBAAoB,GAAGmD,OAAO;QACnC,IAAI,CAACF,QAAQ,CAAC;UAAExC,sBAAsB,EAAE;QAAK,CAAC,CAAC;MACjD,CAAC,CAAC;IACJ;IAEA,OAAO5B,eAAe,EAAEuE,YAAY,CAAC,IAAI,CAACb,MAAM,EAAEP,KAAK,EAAEW,QAAQ,CAAC;EACpE;;EAEA;AACF;AACA;AACA;EACE,MAAaE,MAAMA,CAACb,KAAa,EAAiB;IAChD,MAAM,IAAI,CAACU,OAAO,CAACV,KAAK,CAAC;EAC3B;;EAEA;AACF;AACA;AACA;EACE,MAAaY,OAAOA,CAACD,QAAiB,GAAG,IAAI,EAAiB;IAC5D,OAAO9D,eAAe,EAAEwE,YAAY,CAAC,IAAI,CAACd,MAAM,EAAEI,QAAQ,CAAC;EAC7D;EAEAW,iBAAiBA,CAAA,EAAS;IACxB,IAAI,CAACR,gBAAgB,CAAC,CAAC;EACzB;EAEAS,kBAAkBA,CAACC,SAAyB,EAAQ;IAClD,IAAI,CAACV,gBAAgB,CAAC,CAAC;;IAEvB;IACA,IAAIU,SAAS,CAAC9B,OAAO,KAAK,IAAI,CAACxB,KAAK,CAACwB,OAAO,EAAE;MAC5C,IAAI,CAACtB,eAAe,CAAC,CAAC;IACxB;EACF;EAEAqD,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACV,kBAAkB,CAAC,CAAC;;IAEzB;IACA,IAAI,CAAC/C,oBAAoB,GAAG,IAAI;EAClC;EAEA0D,MAAMA,CAAA,EAAc;IAClB,MAAM;MACJhC,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;MAClBiC,eAAe;MACfC,WAAW,GAAG,IAAI;MAClBC,SAAS,GAAG,IAAI;MAChBC,OAAO,GAAG,IAAI;MACdC,cAAc;MACdC,MAAM,GAAG,IAAI;MACb1D,kBAAkB,GAAG,CAAC,CAAC;MACvB2D,qBAAqB,GAAG,IAAI;MAC5BC,YAAY,GAAG,QAAQ;MACvBC,iBAAiB;MACjBC,QAAQ;MACRC,WAAW;MACXC,YAAY;MACZC,SAAS;MACTC,oBAAoB;MACpBC,UAAU,GAAG,KAAK;MAClBC,UAAU,GAAG,IAAI;MACjBC,QAAQ;MACRC,KAAK;MACLC,MAAM;MACNC,MAAM;MACN,GAAGC;IACL,CAAC,GAAG,IAAI,CAAC7E,KAAK;;IAEd;IACA,MAAM8E,eAAe,GAAGtD,OAAO,CAACuD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAACC,GAAG,CAAEnD,MAAM,IAAK;MAC1D,IAAIA,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;;MAEjD;MACA,IAAIA,MAAM,IAAI,CAAC,EAAE,OAAO,GAAG;;MAE3B;MACA,OAAOG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,MAAM,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAMoD,cAAc,GAClB,IAAI,CAACjF,KAAK,CAACuE,UAAU,IACrB3F,QAAQ,CAACU,MAAM,CAAC;MACd4F,OAAO,EAAEC,MAAM,CAACC;IAClB,CAAC,CAAC;IAEJ,MAAMC,YAAY,GAChB,IAAI,CAACrF,KAAK,CAACuE,UAAU,IACrB3F,QAAQ,CAACU,MAAM,CAAC;MACd4F,OAAO,EAAEC,MAAM,CAACG;IAClB,CAAC,CAAC;IAEJ,oBACEpG,IAAA,CAACZ,4BAA4B;MAAA,GACvBuG,IAAI;MACRU,GAAG,EAAE,IAAI,CAACtF,SAAU;MACpByE,KAAK,EAAES,MAAM,CAACK,SAAU;MACxBhE,OAAO,EAAEsD,eAAgB;MACzBZ,QAAQ,EAAEA,QAAS;MACnBC,WAAW,EAAEA,WAAY;MACzBsB,UAAU,EAAG5G,YAAY,CAAC4E,eAAe,CAAC,IAAe,CAAE;MAC3DW,YAAY,EAAEA,YAAa;MAC3BR,OAAO,EAAEA,OAAQ;MACjBC,cAAc,EAAE;QACd,GAAGA,cAAc;QACjB6B,KAAK,EAAG7G,YAAY,CAACgF,cAAc,EAAE6B,KAAK,CAAC,IAAe;MAC5D,CAAE;MACF5B,MAAM,EAAEA,MAAO;MACfG,iBAAiB,EAAEA,iBAAkB;MACrCD,YAAY,EAAEA,YAAa;MAC3B5D,kBAAkB,EAAEA,kBAAmB;MACvC2D,qBAAqB,EAAEA,qBAAsB;MAC7CL,WAAW,EAAEA,WAAY;MACzBC,SAAS,EAAEA,SAAU;MACrBU,SAAS,EAAEA,SAAU;MACrBC,oBAAoB,EAAEA,oBAAqB;MAC3CC,UAAU,EAAEA,UAAW;MACvBC,UAAU,EAAEA,UAAW;MACvBhE,OAAO,EAAE,IAAI,CAACA,OAAQ;MACtBI,aAAa,EAAE,IAAI,CAACA,aAAc;MAClCC,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCH,aAAa,EAAE,IAAI,CAACA,aAAc;MAClCC,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCG,cAAc,EAAE,IAAI,CAACA,cAAe;MACpCC,WAAW,EAAE,IAAI,CAACA,WAAY;MAC9BC,YAAY,EAAE,IAAI,CAACA,YAAa;MAChCC,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BC,gBAAgB,EAAE,IAAI,CAACA,gBAAiB;MACxCC,WAAW,EAAE,IAAI,CAACA,WAAY;MAC9BC,UAAU,EAAE,IAAI,CAACA,UAAW;MAC5BC,UAAU,EAAE,IAAI,CAACA,UAAW;MAC5BC,SAAS,EAAE,IAAI,CAACA,SAAU;MAC1BC,WAAW,EAAE,IAAI,CAACA,WAAY;MAAAkD,QAAA,EAE7B,IAAI,CAACnE,KAAK,CAACC,sBAAsB,iBAChCnB,KAAA,CAACb,qCAAqC;QAACmG,KAAK,EAAEO,cAAe;QAAAR,QAAA,GAC1DE,MAAM,iBACLzF,IAAA,CAACT,kCAAkC;UAAAgG,QAAA,EAChC,aAAArG,cAAc,CAACuG,MAAM,CAAC,GAAGA,MAAM,gBAAGtG,aAAa,CAACsG,MAAM;QAAC,CACtB,CACrC,eACDzF,IAAA,CAACV,mCAAmC;UAACkG,KAAK,EAAE,CAACA,KAAK,EAAEW,YAAY,CAAE;UAAAZ,QAAA,EAC/DA;QAAQ,CAC0B,CAAC,EACrCG,MAAM,iBACL1F,IAAA,CAACR,kCAAkC;UAACgG,KAAK,EAAES,MAAM,CAACP,MAAO;UAAAH,QAAA,EACtD,aAAArG,cAAc,CAACwG,MAAM,CAAC,GAAGA,MAAM,gBAAGvG,aAAa,CAACuG,MAAM;QAAC,CACtB,CACrC,EACAhG,QAAQ,CAAC+G,EAAE,KAAK,SAAS,IAAI/B,OAAO,IAAID,SAAS,iBAChDzE,IAAA,CAACF,IAAI;UAAC4G,WAAW,EAAE,KAAM;UAAClB,KAAK,EAAES,MAAM,CAACU;QAAc,CAAE,CACzD;MAAA,CACoC;IACxC,CAC2B,CAAC;EAEnC;AACF;AAEA,MAAMV,MAAM,GAAGrG,UAAU,CAACgH,MAAM,CAAC;EAC/BN,SAAS,EAAE;IACTO,MAAM,EAAE,CAAC,IAAI;IACbC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IAER;IACAC,MAAM,EAAExH,QAAQ,CAACU,MAAM,CAAC;MAAE4F,OAAO,EAAE;IAAE,CAAC;EACxC,CAAC;EACDE,0BAA0B,EAAE;IAC1BY,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACV,CAAC;EACDd,wBAAwB,EAAE;IACxBe,QAAQ,EAAE,CAAC;IACXC,SAAS,EAAE;EACb,CAAC;EACD1B,MAAM,EAAE;IACNoB,QAAQ,EAAE,UAAU;IACpBE,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE;EACT,CAAC;EACDN,aAAa,EAAE;IACbG,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRI,MAAM,EAAE9G;EACV;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","processColor","StyleSheet","findNodeHandle","View","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","ANDROID_HITBOX_HEIGHT","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","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","keyboardMode","dimmedDetentIndex","blurTint","blurOptions","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","insetAdjustment","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableAndroidContent","ref","sheetView","color","OS","collapsable","grabberHitbox","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis","height"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { ViewProps } from 'react-native';
1
+ import type { ColorValue, ViewProps } from 'react-native';
2
2
  import type {
3
3
  DirectEventHandler,
4
4
  Double,
@@ -39,14 +39,17 @@ export interface NativeProps extends ViewProps {
39
39
 
40
40
  // Number properties - use 0 as default to avoid nil insertion
41
41
  maxHeight?: WithDefault<Double, 0>;
42
- background?: WithDefault<Int32, 0>;
43
42
  cornerRadius?: WithDefault<Double, -1>;
43
+
44
+ // Color properties
45
+ backgroundColor?: ColorValue;
44
46
  initialDetentIndex?: WithDefault<Int32, -1>;
45
47
  dimmedDetentIndex?: WithDefault<Int32, 0>;
46
48
 
47
49
  // String properties - use empty string as default to avoid nil insertion
48
50
  blurTint?: WithDefault<string, ''>;
49
51
  keyboardMode?: WithDefault<'resize' | 'pan', 'resize'>;
52
+ insetAdjustment?: WithDefault<'automatic' | 'never', 'automatic'>;
50
53
 
51
54
  // Blur options
52
55
  blurOptions?: BlurOptionsType;
@@ -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,EAgBf,MAAM,mBAAmB,CAAC;AA2B3B,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;IAgCjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;;OAOG;WACiB,OAAO,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF;;;;;;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,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhF;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;;OAGG;IACU,OAAO,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAmHpB"}
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,EAgBf,MAAM,mBAAmB,CAAC;AA2B3B,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;IAgCjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;;OAOG;WACiB,OAAO,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF;;;;;;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,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACU,OAAO,CAAC,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhF;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD;;;OAGG;IACU,OAAO,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAqHpB"}
@@ -91,6 +91,20 @@ export interface BlurOptions {
91
91
  */
92
92
  interaction?: boolean;
93
93
  }
94
+ /**
95
+ * Inset adjustment behavior for the sheet content.
96
+ */
97
+ export type InsetAdjustment =
98
+ /**
99
+ * Automatically adjusts the sheet height to account for system insets (safe area).
100
+ * This ensures the sheet content is properly inset from system UI elements.
101
+ */
102
+ 'automatic'
103
+ /**
104
+ * Does not adjust the sheet height for system insets.
105
+ * The sheet height is calculated purely from the detent values.
106
+ */
107
+ | 'never';
94
108
  /**
95
109
  * Blur style mapped to native values in IOS.
96
110
  *
@@ -252,6 +266,16 @@ export interface TrueSheetProps extends ViewProps {
252
266
  * @default false
253
267
  */
254
268
  edgeToEdgeFullScreen?: boolean;
269
+ /**
270
+ * Controls how the sheet adjusts its height for system insets (safe area).
271
+ *
272
+ * - `'automatic'`: Adds the bottom safe area inset to the sheet height,
273
+ * ensuring content is properly inset from system UI elements.
274
+ * - `'never'`: Does not adjust for insets; height is calculated purely from detent values.
275
+ *
276
+ * @default 'automatic'
277
+ */
278
+ insetAdjustment?: InsetAdjustment;
255
279
  /**
256
280
  * A component that is fixed at the top of the Sheet content.
257
281
  * Useful for search bars, titles, or other header content.
@@ -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":"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"}
@@ -1,4 +1,4 @@
1
- import type { ViewProps } from 'react-native';
1
+ import type { ColorValue, ViewProps } from 'react-native';
2
2
  import type { DirectEventHandler, Double, Int32, WithDefault } from 'react-native/Libraries/Types/CodegenTypes';
3
3
  type GrabberOptionsType = Readonly<{
4
4
  width?: Double;
@@ -25,12 +25,13 @@ export interface PositionChangeEventPayload {
25
25
  export interface NativeProps extends ViewProps {
26
26
  detents?: ReadonlyArray<Double>;
27
27
  maxHeight?: WithDefault<Double, 0>;
28
- background?: WithDefault<Int32, 0>;
29
28
  cornerRadius?: WithDefault<Double, -1>;
29
+ backgroundColor?: ColorValue;
30
30
  initialDetentIndex?: WithDefault<Int32, -1>;
31
31
  dimmedDetentIndex?: WithDefault<Int32, 0>;
32
32
  blurTint?: WithDefault<string, ''>;
33
33
  keyboardMode?: WithDefault<'resize' | 'pan', 'resize'>;
34
+ insetAdjustment?: WithDefault<'automatic' | 'never', 'automatic'>;
34
35
  blurOptions?: BlurOptionsType;
35
36
  grabber?: WithDefault<boolean, true>;
36
37
  grabberOptions?: GrabberOptionsType;
@@ -1 +1 @@
1
- {"version":3,"file":"TrueSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetViewNativeComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrueSheetViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/fabric/TrueSheetViewNativeComponent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodev09/react-native-true-sheet",
3
- "version": "3.1.0",
3
+ "version": "3.1.1",
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
@@ -373,6 +373,7 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
373
373
  style,
374
374
  header,
375
375
  footer,
376
+ insetAdjustment = 'automatic',
376
377
  ...rest
377
378
  } = this.props;
378
379
 
@@ -407,7 +408,7 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
407
408
  detents={resolvedDetents}
408
409
  blurTint={blurTint}
409
410
  blurOptions={blurOptions}
410
- background={(processColor(backgroundColor) as number) ?? 0}
411
+ backgroundColor={backgroundColor}
411
412
  cornerRadius={cornerRadius}
412
413
  grabber={grabber}
413
414
  grabberOptions={{
@@ -425,6 +426,7 @@ export class TrueSheet extends PureComponent<TrueSheetProps, TrueSheetState> {
425
426
  edgeToEdgeFullScreen={edgeToEdgeFullScreen}
426
427
  scrollable={scrollable}
427
428
  pageSizing={pageSizing}
429
+ insetAdjustment={insetAdjustment}
428
430
  onMount={this.onMount}
429
431
  onWillPresent={this.onWillPresent}
430
432
  onDidPresent={this.onDidPresent}
@@ -97,6 +97,21 @@ export interface BlurOptions {
97
97
  interaction?: boolean;
98
98
  }
99
99
 
100
+ /**
101
+ * Inset adjustment behavior for the sheet content.
102
+ */
103
+ export type InsetAdjustment =
104
+ /**
105
+ * Automatically adjusts the sheet height to account for system insets (safe area).
106
+ * This ensures the sheet content is properly inset from system UI elements.
107
+ */
108
+ | 'automatic'
109
+ /**
110
+ * Does not adjust the sheet height for system insets.
111
+ * The sheet height is calculated purely from the detent values.
112
+ */
113
+ | 'never';
114
+
100
115
  /**
101
116
  * Blur style mapped to native values in IOS.
102
117
  *
@@ -298,6 +313,17 @@ export interface TrueSheetProps extends ViewProps {
298
313
  */
299
314
  edgeToEdgeFullScreen?: boolean;
300
315
 
316
+ /**
317
+ * Controls how the sheet adjusts its height for system insets (safe area).
318
+ *
319
+ * - `'automatic'`: Adds the bottom safe area inset to the sheet height,
320
+ * ensuring content is properly inset from system UI elements.
321
+ * - `'never'`: Does not adjust for insets; height is calculated purely from detent values.
322
+ *
323
+ * @default 'automatic'
324
+ */
325
+ insetAdjustment?: InsetAdjustment;
326
+
301
327
  /**
302
328
  * A component that is fixed at the top of the Sheet content.
303
329
  * Useful for search bars, titles, or other header content.
@@ -1,4 +1,4 @@
1
- import type { ViewProps } from 'react-native';
1
+ import type { ColorValue, ViewProps } from 'react-native';
2
2
  import type {
3
3
  DirectEventHandler,
4
4
  Double,
@@ -39,14 +39,17 @@ export interface NativeProps extends ViewProps {
39
39
 
40
40
  // Number properties - use 0 as default to avoid nil insertion
41
41
  maxHeight?: WithDefault<Double, 0>;
42
- background?: WithDefault<Int32, 0>;
43
42
  cornerRadius?: WithDefault<Double, -1>;
43
+
44
+ // Color properties
45
+ backgroundColor?: ColorValue;
44
46
  initialDetentIndex?: WithDefault<Int32, -1>;
45
47
  dimmedDetentIndex?: WithDefault<Int32, 0>;
46
48
 
47
49
  // String properties - use empty string as default to avoid nil insertion
48
50
  blurTint?: WithDefault<string, ''>;
49
51
  keyboardMode?: WithDefault<'resize' | 'pan', 'resize'>;
52
+ insetAdjustment?: WithDefault<'automatic' | 'never', 'automatic'>;
50
53
 
51
54
  // Blur options
52
55
  blurOptions?: BlurOptionsType;