TrueSheet was always adding its CoordinatorLayout to the activity's
content view, causing it to render behind React Native Modal which
uses a Dialog with its own window.
Now the host view (TrueSheetView) manages the root container. The
findRootContainerView() method traverses up the view hierarchy to
find the correct android.R.id.content container - whether that's
the activity's or a Modal's dialog window.
Changes:
- Add rootContainerView property to TrueSheetView
- Find container and attach coordinator on first present
- Detach coordinator in viewControllerDidDismiss
- Make coordinatorLayout internal for host view access
- Make UIDesignRequiresCompatibility a sub-section of Disabling Liquid Glass
- Add backgroundColor/backgroundBlur as first option to disable Liquid Glass per-sheet
- Add note about iOS 26.1+ requirement for per-sheet disabling
- Add Apple documentation reference for UIDesignRequiresCompatibility
- Add Liquid Glass info to backgroundColor and backgroundBlur props in configuration
- Move backgroundBlur and blurOptions next to backgroundColor in configuration
* fix(ios): use native backgroundEffect for blur on iOS 26.1+
- Extract blur style mapping into BlurUtil
- Refactor setupBackground and setupGrabber into helper methods
- Add sheet getter for cleaner code
- Use native UIBlurEffect on backgroundEffect when only blurTint is set (iOS 26.1+)
* refactor: rename blurTint to backgroundBlur
- When stackBehavior is 'none', uses regular BottomSheet instead of BottomSheetModal
- Bypasses the modal stack entirely for non-modal sheet behavior
- Updated types, web implementation, and documentation
When using react-native-screens, the sheet was presenting on the wrong
view controller because finalizeUpdates was called before the screen
transition completed and the view was added to the window.
This fix defers the initial presentation by:
- Adding a pendingInitialPresentation flag
- Only presenting when the view is confirmed to be in a window
- Using didMoveToWindow to handle pending presentations
Fixes issue where sheet would appear on the previous screen instead of
the currently presented screen.