@@ -74,8 +74,12 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
7474 footer,
7575 footerStyle,
7676 scrollable = false ,
77+ scrollableOptions,
7778 detached = false ,
7879 detachedOffset = DEFAULT_DETACHED_OFFSET ,
80+ elevation = 4 ,
81+ insetAdjustment = 'automatic' ,
82+ initialDetentAnimated = true ,
7983 onPositionChange,
8084 onWillPresent,
8185 onDidPresent,
@@ -568,6 +572,12 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
568572
569573 const effectiveCornerRadius = cornerRadius ?? DEFAULT_CORNER_RADIUS ;
570574
575+ // Shadow cast upward from the sheet's top edge toward the background. Matches
576+ // Android's `elevation` semantics roughly — the sheet "lifts" off whatever is
577+ // behind it. Scales linearly so higher elevation reads as more separation.
578+ const boxShadow =
579+ elevation > 0 ? `0 ${ - elevation } px ${ elevation * 3 } px rgba(0, 0, 0, 0.15)` : undefined ;
580+
571581 const mergedContentStyle = useMemo < React . CSSProperties > (
572582 ( ) => ( {
573583 position : 'fixed' ,
@@ -580,8 +590,11 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
580590 borderTopLeftRadius : effectiveCornerRadius ,
581591 borderTopRightRadius : effectiveCornerRadius ,
582592 backgroundColor : backgroundColor as string ,
593+ boxShadow,
594+ // Lift content above iOS home indicator / bottom safe area when enabled.
595+ paddingBottom : insetAdjustment === 'automatic' ? 'env(safe-area-inset-bottom, 0px)' : 0 ,
583596 } ) ,
584- [ backgroundColor , effectiveCornerRadius ]
597+ [ backgroundColor , effectiveCornerRadius , boxShadow , insetAdjustment ]
585598 ) ;
586599
587600 const defaultGrabberColor =
@@ -641,13 +654,15 @@ const TrueSheetComponent = forwardRef<TrueSheetMethods, TrueSheetProps>((props,
641654 onRelease = { handleRelease }
642655 dismissible = { dismissible }
643656 draggable = { draggable }
657+ handleOnly = { scrollable && scrollableOptions ?. scrollingExpandsSheet === false }
644658 repositionInputs = { false }
645659 modal = { dimmed }
646660 nested = { isNested }
647661 detached = { detached }
648662 detachedOffset = { detachedOffset }
649663 detachedRadius = { effectiveCornerRadius }
650664 maxContentHeight = { maxContentHeight }
665+ initialAnimated = { initialDetentAnimated }
651666 detachedWrapperStyle = { wrapperStyle }
652667 activeSnapPoint = { activeSnapPoint }
653668 setActiveSnapPoint = { handleSetActiveSnapPoint }
0 commit comments