react-native-screens 5.0.0-alpha.1 → 5.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Package.swift +87 -0
- package/README.md +0 -8
- package/RNScreens.podspec +2 -6
- package/android/build.gradle +26 -1
- package/android/src/fabric/java/com/swmansion/rnscreens/NativeProxy.kt +5 -0
- package/android/src/main/cpp/NativeProxy.cpp +30 -6
- package/android/src/main/cpp/NativeProxy.h +7 -1
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/common/container/Container.kt +8 -0
- package/android/src/main/java/com/swmansion/rnscreens/common/container/ContainerItem.kt +13 -1
- package/android/src/main/java/com/swmansion/rnscreens/common/text/ReactTextAppearance.kt +62 -0
- package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearance.kt +20 -0
- package/android/src/main/java/com/swmansion/rnscreens/common/text/TextAppearanceDefaults.kt +65 -0
- package/android/src/main/java/com/swmansion/rnscreens/helpers/PropIconResolver.kt +17 -23
- package/android/src/main/java/com/swmansion/rnscreens/legacy/Screen.kt +25 -7
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackFragment.kt +39 -10
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenViewManager.kt +5 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetAppearanceCoordinator.kt → native/coordinator/FormSheetAppearanceCoordinator.kt} +2 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetBehaviorController.kt → native/coordinator/FormSheetBehaviorController.kt} +74 -19
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetDimensionsCoordinator.kt +159 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetKeyboardCoordinator.kt +101 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/coordinator/FormSheetNativeDismissCoordinator.kt +44 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetAvailableHeightProvider.kt +44 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContainer.kt → native/core/FormSheetContainer.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialog.kt +115 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/core/FormSheetDialogManager.kt +89 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentSizeChangeDelegate.kt → native/interfaces/FormSheetContentSizeChangeDelegate.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentSizeChangeProvider.kt → native/interfaces/FormSheetContentSizeChangeProvider.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDialogEventEmitter.kt → native/interfaces/FormSheetDialogEventEmitter.kt} +5 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetConfig.kt → native/model/FormSheetConfig.kt} +5 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/model/FormSheetDetents.kt +152 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetAnimatorFactory.kt → native/presentation/FormSheetAnimatorFactory.kt} +9 -10
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetDimmingManager.kt +115 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetDismissalOrigin.kt +22 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentation.kt +173 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetPresentationManager.kt +290 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetPresentationState.kt → native/presentation/FormSheetPresentationState.kt} +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/native/presentation/FormSheetStackRegistry.kt +28 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentWrapper.kt → react/contentwrapper/FormSheetContentWrapper.kt} +3 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentWrapperViewManager.kt → react/contentwrapper/FormSheetContentWrapperViewManager.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDetentChangedEvent.kt → react/event/FormSheetDetentChangedEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDidAppearEvent.kt → react/event/FormSheetDidAppearEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetDidDisappearEvent.kt → react/event/FormSheetDidDisappearEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/event/FormSheetDismissEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetNativeDismissEvent.kt → react/event/FormSheetNativeDismissEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/react/event/FormSheetNativeDismissPreventedEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetSyncFlushEvent.kt → react/event/FormSheetSyncFlushEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetWillAppearEvent.kt → react/event/FormSheetWillAppearEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetWillDisappearEvent.kt → react/event/FormSheetWillDisappearEvent.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetContentView.kt → react/host/FormSheetContentView.kt} +3 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHost.kt → react/host/FormSheetHost.kt} +6 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHostEventEmitter.kt → react/host/FormSheetHostEventEmitter.kt} +23 -1
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/{FormSheetHostViewManager.kt → react/host/FormSheetHostViewManager.kt} +13 -2
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderApplicator.kt +380 -457
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderBackPressHandler.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderCoordinatorLayout.kt +150 -182
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderFrameSynchronizer.kt +63 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +240 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/{StackHeaderAppBarLayoutBehavior.kt → appbar/StackHeaderAppBarLayoutBehavior.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderContentScrimDrawable.kt +36 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/{StackHeaderScrollingViewBehavior.kt → appbar/StackHeaderScrollingViewBehavior.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderCollapsedTitleGravityMode.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfig.kt +192 -167
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigViewManager.kt +393 -13
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationObserver.kt +0 -4
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +33 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderDelegate.kt +0 -7
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderInvalidationFlags.kt +9 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuApplicator.kt +195 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuController.kt +448 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuDelegate.kt +10 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuMapper.kt +43 -21
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuConfig.kt +8 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuElementConfig.kt → model/StackHeaderToolbarMenuElementConfig.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuGroupConfig.kt → model/StackHeaderToolbarMenuGroupConfig.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuGroupMetadata.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemConfig.kt → model/StackHeaderToolbarMenuItemConfig.kt} +2 -4
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemDefaults.kt → model/StackHeaderToolbarMenuItemDefaults.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemIconSource.kt → model/StackHeaderToolbarMenuItemIconSource.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemShowAsAction.kt → model/StackHeaderToolbarMenuItemShowAsAction.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuItemType.kt → model/StackHeaderToolbarMenuItemType.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/model/StackHeaderToolbarMenuModel.kt +180 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarFieldUpdate.kt → update/StackHeaderToolbarFieldUpdate.kt} +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementOptions.kt +84 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementRawUpdate.kt +15 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuElementUpdate.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuIconResolver.kt +18 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/{StackHeaderToolbarMenuUpdateQueue.kt → update/StackHeaderToolbarMenuUpdateQueue.kt} +24 -52
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/update/StackHeaderToolbarMenuUpdateQueueDelegate.kt +9 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainer.kt +103 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHost.kt +13 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHostViewManager.kt +14 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreen.kt +5 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragment.kt +20 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragmentDelegate.kt +12 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceCoordinator.kt +2 -4
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/MenuHelpers.kt +5 -23
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainer.kt +46 -25
- package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHost.kt +10 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHostA11yCoordinator.kt +23 -2
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreen.kt +17 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenFragment.kt +3 -0
- package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +7 -0
- package/android/src/main/java/com/swmansion/rnscreens/utils/StyleUtils.kt +22 -0
- package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_available_space.xml +8 -0
- package/android/src/main/res/base/layout/rns_collapsing_toolbar_large_entire_space.xml +8 -0
- package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_available_space.xml +8 -0
- package/android/src/main/res/base/layout/rns_collapsing_toolbar_medium_entire_space.xml +8 -0
- package/common/cpp/react/renderer/components/rnscreens/legacy/RNSScreenShadowNode.cpp +10 -5
- package/cpp/legacy/RNSScreenRemovalListener.cpp +31 -1
- package/cpp/legacy/RNSScreenRemovalListener.h +18 -3
- package/ios/RNSEnums.h +2 -2
- package/ios/RNSOrientationProviding.h +0 -2
- package/ios/RNSReactMountingTransactionObserving.h +15 -0
- package/ios/conversion/RNSConversions.h +7 -108
- package/ios/legacy/RNSBarButtonItem.mm +12 -5
- package/ios/legacy/RNSFullWindowOverlay.mm +1 -1
- package/ios/legacy/RNSModalScreen.mm +1 -1
- package/ios/legacy/RNSScreen.h +8 -1
- package/ios/legacy/RNSScreen.mm +47 -36
- package/ios/legacy/RNSScreenContentWrapper.mm +9 -0
- package/ios/legacy/RNSScreenFooter.mm +2 -0
- package/ios/legacy/RNSScreenStack.mm +9 -4
- package/ios/legacy/RNSScreenStackHeaderConfig.mm +3 -1
- package/ios/legacy/RNSScreenStackHeaderSubview.mm +1 -1
- package/ios/legacy/RNSScreenWindowTraits.mm +5 -13
- package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.h +1 -3
- package/ios/modals/form-sheet/RNSFormSheetConfigurationApplicator.mm +11 -22
- package/ios/modals/form-sheet/RNSFormSheetContentController.h +1 -1
- package/ios/modals/form-sheet/RNSFormSheetContentController.mm +7 -18
- package/ios/modals/form-sheet/RNSFormSheetContentWrapperComponentView.mm +9 -0
- package/ios/modals/form-sheet/RNSFormSheetHostComponentView.mm +4 -4
- package/ios/modals/form-sheet/RNSFormSheetHostShadowStateProxy.mm +2 -2
- package/ios/modals/form-sheet/RNSFormSheetUpdateFlags.h +3 -0
- package/ios/safe-area/RNSSafeAreaViewComponentView.mm +2 -2
- package/ios/scroll-to-top-guard/RNSScrollToTopGuard.h +17 -0
- package/ios/scroll-to-top-guard/RNSScrollToTopGuard.mm +57 -0
- package/ios/scroll-to-top-guard/RNSScrollToTopGuardGestureRecognizer.h +28 -0
- package/ios/scroll-to-top-guard/RNSScrollToTopGuardGestureRecognizer.mm +64 -0
- package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.mm +2 -3
- package/ios/split/RNSSplitAppearanceApplicator.h +36 -0
- package/ios/split/RNSSplitAppearanceApplicator.mm +182 -0
- package/ios/split/RNSSplitAppearanceCoordinator.h +26 -0
- package/ios/split/RNSSplitAppearanceCoordinator.mm +27 -0
- package/ios/split/RNSSplitAppearanceUpdateFlags.h +14 -0
- package/ios/split/RNSSplitHostComponentEventEmitter.h +1 -0
- package/ios/split/RNSSplitHostComponentEventEmitter.mm +1 -1
- package/ios/split/RNSSplitHostComponentView.h +5 -15
- package/ios/split/RNSSplitHostComponentView.mm +56 -7
- package/ios/split/RNSSplitHostController.h +105 -0
- package/ios/split/RNSSplitHostController.mm +492 -0
- package/ios/split/RNSSplitHostProviders.h +67 -0
- package/ios/split/RNSSplitNavigationController.h +31 -0
- package/ios/split/RNSSplitNavigationController.mm +44 -0
- package/ios/split/RNSSplitNavigationControllerFrameObserver.h +32 -0
- package/ios/split/RNSSplitNavigationControllerFrameObserver.mm +80 -0
- package/ios/split/RNSSplitNavigationControllerFrameOriginChangeDelegate.h +15 -0
- package/ios/split/RNSSplitScreenComponentView.h +0 -39
- package/ios/split/RNSSplitScreenComponentView.mm +35 -19
- package/ios/split/RNSSplitScreenController.h +68 -0
- package/ios/split/RNSSplitScreenController.mm +113 -0
- package/ios/split/RNSSplitScreenShadowStateProxy.h +1 -40
- package/ios/split/RNSSplitScreenShadowStateProxy.mm +1 -26
- package/ios/split/conversion/RNSConversions-SplitView.h +56 -0
- package/ios/{conversion → split/conversion}/RNSConversions-SplitView.mm +4 -1
- package/ios/stack/conversion/RNSConversions-Stack.h +32 -0
- package/ios/stack/conversion/RNSConversions-Stack.mm +55 -0
- package/ios/stack/header/RNSStackHeaderAppearanceMapper.h +26 -0
- package/ios/stack/header/RNSStackHeaderAppearanceMapper.mm +88 -0
- package/ios/stack/header/RNSStackHeaderConfigComponentView.h +11 -1
- package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +108 -38
- package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +9 -0
- package/ios/stack/header/RNSStackHeaderConfigShadowStateProxy.mm +1 -1
- package/ios/stack/header/RNSStackHeaderIconResolver.mm +7 -0
- package/ios/stack/header/RNSStackHeaderItemComponentView.h +3 -1
- package/ios/stack/header/RNSStackHeaderItemComponentView.mm +15 -2
- package/ios/stack/header/RNSStackHeaderItemDataProviding.h +2 -0
- package/ios/stack/header/RNSStackHeaderItemShadowStateProxy.mm +1 -1
- package/ios/stack/header/RNSStackHeaderItemSpacerComponentView.mm +2 -1
- package/ios/stack/header/RNSStackHeaderMenuCoordinator.h +9 -0
- package/ios/stack/header/RNSStackHeaderMenuCoordinator.mm +15 -0
- package/ios/stack/header/RNSStackHeaderMenuFinder.h +18 -3
- package/ios/stack/header/RNSStackHeaderMenuFinder.mm +21 -3
- package/ios/stack/header/RNSStackHeaderMenuMapper.mm +4 -0
- package/ios/stack/host/RNSStackHostComponentView.mm +3 -1
- package/ios/stack/host/RNSStackNavigationBar.h +25 -0
- package/ios/stack/host/RNSStackNavigationBar.mm +80 -0
- package/ios/stack/host/RNSStackNavigationBarCoordinator.h +8 -0
- package/ios/stack/host/RNSStackNavigationBarCoordinator.mm +11 -0
- package/ios/stack/host/RNSStackNavigationController.mm +14 -6
- package/ios/stack/host/RNSStackOperation.h +0 -2
- package/ios/stack/screen/RNSStackScreenComponentView.mm +9 -4
- package/ios/stack/screen/RNSStackScreenController.mm +12 -0
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.h +14 -1
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +159 -28
- package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +40 -9
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.h +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryComponentView.mm +4 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryContentComponentView.mm +5 -2
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryEventEmitter.mm +1 -1
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryShadowStateProxy.mm +1 -1
- package/ios/tabs/conversion/RNSConversions-Tabs.h +78 -0
- package/ios/{conversion → tabs/conversion}/RNSConversions-Tabs.mm +8 -71
- package/ios/tabs/extensions/RNSTabsHostComponentView+RNSImageLoader.h +1 -1
- package/ios/tabs/host/RNSTabBarController.h +5 -12
- package/ios/tabs/host/RNSTabBarController.mm +1 -1
- package/ios/tabs/host/RNSTabsHostComponentView.h +2 -0
- package/ios/tabs/host/RNSTabsHostComponentView.mm +10 -3
- package/ios/tabs/host/RNSTabsHostEventEmitter.mm +1 -1
- package/ios/tabs/screen/RNSTabsScreenComponentView.mm +20 -5
- package/ios/utils/RNSDefines.h +3 -0
- package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.ios.js +25 -0
- package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.ios.js.map +1 -0
- package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.js +24 -0
- package/lib/commonjs/components/scroll-to-top-guard/ScrollToTopGuard.js.map +1 -0
- package/lib/commonjs/components/scroll-to-top-guard/index.js +13 -0
- package/lib/commonjs/components/scroll-to-top-guard/index.js.map +1 -0
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js +34 -19
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js +44 -13
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
- package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js +1 -22
- package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
- package/lib/commonjs/components/stack/header/ios/iconUtils.ios.js +33 -2
- package/lib/commonjs/components/stack/header/ios/iconUtils.ios.js.map +1 -1
- package/lib/commonjs/components/stack/header/utils.js +6 -9
- package/lib/commonjs/components/stack/header/utils.js.map +1 -1
- package/lib/commonjs/components/stack/host/StackHost.js +9 -6
- package/lib/commonjs/components/stack/host/StackHost.js.map +1 -1
- package/lib/commonjs/components/stack/index.js.map +1 -1
- package/lib/commonjs/components/tabs/host/TabsHost.ios.js +1 -0
- package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -1
- package/lib/commonjs/experimental/index.js +11 -0
- package/lib/commonjs/experimental/index.js.map +1 -1
- package/lib/commonjs/fabric/ScrollViewMarkerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ModalScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenFooterNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/legacy/SearchBarNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/modals/form-sheet/FormSheetHostNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js +12 -0
- package/lib/commonjs/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/split/SplitHostNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/split/SplitScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHostNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsBottomAccessoryContentNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/flags.js +22 -1
- package/lib/commonjs/flags.js.map +1 -1
- package/lib/commonjs/legacy/components/Screen.js +6 -1
- package/lib/commonjs/legacy/components/Screen.js.map +1 -1
- package/lib/commonjs/legacy/components/ScreenStackHeaderConfig.js +5 -0
- package/lib/commonjs/legacy/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/commonjs/legacy/components/ScreenStackItem.js.map +1 -1
- package/lib/commonjs/legacy/components/SearchBar.js +16 -16
- package/lib/commonjs/legacy/components/SearchBar.js.map +1 -1
- package/lib/commonjs/legacy/components/helpers/prepareHeaderBarButtonItems.js +3 -0
- package/lib/commonjs/legacy/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
- package/lib/commonjs/legacy/gesture-handler/fabricUtils.js.map +1 -1
- package/lib/commonjs/legacy/useTransitionProgress.js.map +1 -1
- package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.ios.js +20 -0
- package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.ios.js.map +1 -0
- package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.js +18 -0
- package/lib/module/components/scroll-to-top-guard/ScrollToTopGuard.js.map +1 -0
- package/lib/module/components/scroll-to-top-guard/index.js +2 -0
- package/lib/module/components/scroll-to-top-guard/index.js.map +1 -0
- package/lib/module/components/stack/header/StackHeaderConfig.android.js +35 -20
- package/lib/module/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js +48 -17
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
- package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js +1 -22
- package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
- package/lib/module/components/stack/header/ios/iconUtils.ios.js +31 -2
- package/lib/module/components/stack/header/ios/iconUtils.ios.js.map +1 -1
- package/lib/module/components/stack/header/utils.js +5 -8
- package/lib/module/components/stack/header/utils.js.map +1 -1
- package/lib/module/components/stack/host/StackHost.js +9 -6
- package/lib/module/components/stack/host/StackHost.js.map +1 -1
- package/lib/module/components/stack/index.js.map +1 -1
- package/lib/module/components/tabs/host/TabsHost.ios.js +1 -0
- package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -1
- package/lib/module/experimental/index.js +1 -0
- package/lib/module/experimental/index.js.map +1 -1
- package/lib/module/fabric/ScrollViewMarkerNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ModalScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenFooterNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/legacy/SearchBarNativeComponent.js.map +1 -1
- package/lib/module/fabric/modals/form-sheet/FormSheetHostNativeComponent.js.map +1 -1
- package/lib/module/fabric/safe-area/SafeAreaViewNativeComponent.js.map +1 -1
- package/lib/module/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js +7 -0
- package/lib/module/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.js.map +1 -0
- package/lib/module/fabric/split/SplitHostNativeComponent.js.map +1 -1
- package/lib/module/fabric/split/SplitScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderConfigAndroidNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderItemIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderSubviewAndroidNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHostNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsBottomAccessoryContentNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsBottomAccessoryNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsHostAndroidNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsHostIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsScreenAndroidNativeComponent.js.map +1 -1
- package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
- package/lib/module/flags.js +22 -1
- package/lib/module/flags.js.map +1 -1
- package/lib/module/legacy/components/Screen.js +6 -1
- package/lib/module/legacy/components/Screen.js.map +1 -1
- package/lib/module/legacy/components/ScreenStackHeaderConfig.js +5 -0
- package/lib/module/legacy/components/ScreenStackHeaderConfig.js.map +1 -1
- package/lib/module/legacy/components/ScreenStackItem.js.map +1 -1
- package/lib/module/legacy/components/SearchBar.js +17 -17
- package/lib/module/legacy/components/SearchBar.js.map +1 -1
- package/lib/module/legacy/components/helpers/prepareHeaderBarButtonItems.js +4 -0
- package/lib/module/legacy/components/helpers/prepareHeaderBarButtonItems.js.map +1 -1
- package/lib/module/legacy/gesture-handler/fabricUtils.js.map +1 -1
- package/lib/module/legacy/useTransitionProgress.js.map +1 -1
- package/lib/module/private/hooks/useRenderDebugInfo.js.map +1 -1
- package/lib/typescript/components/modals/form-sheet/FormSheet.types.d.ts +3 -3
- package/lib/typescript/components/safe-area/SafeAreaView.web.d.ts +5 -2
- package/lib/typescript/components/safe-area/SafeAreaView.web.d.ts.map +1 -1
- package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.d.ts +15 -0
- package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.d.ts.map +1 -0
- package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.ios.d.ts +12 -0
- package/lib/typescript/components/scroll-to-top-guard/ScrollToTopGuard.ios.d.ts.map +1 -0
- package/lib/typescript/components/scroll-to-top-guard/index.d.ts +2 -0
- package/lib/typescript/components/scroll-to-top-guard/index.d.ts.map +1 -0
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts +639 -20
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts +239 -2
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.types.d.ts +2 -2
- package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts +5 -2
- package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts +2 -0
- package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/ios/iconUtils.ios.d.ts +3 -0
- package/lib/typescript/components/stack/header/ios/iconUtils.ios.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/utils.d.ts +1 -2
- package/lib/typescript/components/stack/header/utils.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.d.ts +1 -1
- package/lib/typescript/components/stack/host/StackHost.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.types.d.ts +26 -2
- package/lib/typescript/components/stack/host/StackHost.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.web.d.ts +6 -2
- package/lib/typescript/components/stack/host/StackHost.web.d.ts.map +1 -1
- package/lib/typescript/components/stack/index.d.ts +2 -2
- package/lib/typescript/components/stack/index.d.ts.map +1 -1
- package/lib/typescript/components/stack/screen/StackScreen.web.d.ts +5 -2
- package/lib/typescript/components/stack/screen/StackScreen.web.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +16 -0
- package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.types.d.ts +3 -0
- package/lib/typescript/components/tabs/host/TabsHost.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.web.d.ts +5 -2
- package/lib/typescript/components/tabs/host/TabsHost.web.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts +7 -3
- package/lib/typescript/components/tabs/screen/TabsScreen.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts +5 -2
- package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts.map +1 -1
- package/lib/typescript/experimental/index.d.ts +1 -0
- package/lib/typescript/experimental/index.d.ts.map +1 -1
- package/lib/typescript/fabric/NativeScreensModule.d.ts +1 -1
- package/lib/typescript/fabric/ScrollViewMarkerNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/ScrollViewMarkerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/FullWindowOverlayNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/FullWindowOverlayNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ModalScreenNativeComponent.d.ts +3 -2
- package/lib/typescript/fabric/legacy/ModalScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenContainerNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenContainerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenContentWrapperNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenContentWrapperNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenFooterNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenFooterNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenNativeComponent.d.ts +3 -2
- package/lib/typescript/fabric/legacy/ScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenNavigationContainerNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenNavigationContainerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackHeaderConfigNativeComponent.d.ts +3 -3
- package/lib/typescript/fabric/legacy/ScreenStackHeaderConfigNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/SearchBarNativeComponent.d.ts +6 -6
- package/lib/typescript/fabric/legacy/SearchBarNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/modals/form-sheet/FormSheetHostNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/modals/form-sheet/FormSheetHostNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/safe-area/SafeAreaViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.d.ts.map +1 -0
- package/lib/typescript/fabric/split/SplitHostNativeComponent.d.ts +1 -1
- package/lib/typescript/fabric/split/SplitHostNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/split/SplitScreenNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/split/SplitScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts +53 -0
- package/lib/typescript/fabric/stack/StackHeaderConfigAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts +27 -2
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +4 -2
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderSubviewAndroidNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/stack/StackHeaderSubviewAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts +4 -2
- package/lib/typescript/fabric/stack/StackHostNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackScreenNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/stack/StackScreenNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsBottomAccessoryContentNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsBottomAccessoryContentNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsBottomAccessoryNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsHostAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +3 -2
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts +2 -2
- package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/flags.d.ts +13 -0
- package/lib/typescript/flags.d.ts.map +1 -1
- package/lib/typescript/legacy/TransitionProgressContext.d.ts +1 -1
- package/lib/typescript/legacy/TransitionProgressContext.d.ts.map +1 -1
- package/lib/typescript/legacy/components/Screen.d.ts +5 -3
- package/lib/typescript/legacy/components/Screen.d.ts.map +1 -1
- package/lib/typescript/legacy/components/Screen.web.d.ts +10 -2
- package/lib/typescript/legacy/components/Screen.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenContainer.web.d.ts +5 -2
- package/lib/typescript/legacy/components/ScreenContainer.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenContentWrapper.web.d.ts +5 -2
- package/lib/typescript/legacy/components/ScreenContentWrapper.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenContentWrapper.windows.d.ts +5 -2
- package/lib/typescript/legacy/components/ScreenContentWrapper.windows.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenFooter.web.d.ts +10 -3
- package/lib/typescript/legacy/components/ScreenFooter.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenFooter.windows.d.ts +10 -3
- package/lib/typescript/legacy/components/ScreenFooter.windows.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenStack.web.d.ts +5 -2
- package/lib/typescript/legacy/components/ScreenStack.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenStackHeaderConfig.d.ts +3 -1
- package/lib/typescript/legacy/components/ScreenStackHeaderConfig.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenStackItem.d.ts +3 -2
- package/lib/typescript/legacy/components/ScreenStackItem.d.ts.map +1 -1
- package/lib/typescript/legacy/components/SearchBar.d.ts +3 -3
- package/lib/typescript/legacy/components/SearchBar.d.ts.map +1 -1
- package/lib/typescript/legacy/components/SearchBar.web.d.ts +5 -2
- package/lib/typescript/legacy/components/SearchBar.web.d.ts.map +1 -1
- package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts +15 -12
- package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts.map +1 -1
- package/lib/typescript/legacy/gesture-handler/fabricUtils.d.ts +3 -2
- package/lib/typescript/legacy/gesture-handler/fabricUtils.d.ts.map +1 -1
- package/lib/typescript/legacy/types.d.ts +25 -5
- package/lib/typescript/legacy/types.d.ts.map +1 -1
- package/lib/typescript/legacy/useTransitionProgress.d.ts +2 -5
- package/lib/typescript/legacy/useTransitionProgress.d.ts.map +1 -1
- package/lib/typescript/private/hooks/useRenderDebugInfo.d.ts +2 -2
- package/lib/typescript/private/hooks/useRenderDebugInfo.d.ts.map +1 -1
- package/package.json +18 -17
- package/react-native.config.js +3 -0
- package/src/components/modals/form-sheet/FormSheet.types.ts +3 -3
- package/src/components/scroll-to-top-guard/ScrollToTopGuard.ios.tsx +17 -0
- package/src/components/scroll-to-top-guard/ScrollToTopGuard.tsx +18 -0
- package/src/components/scroll-to-top-guard/index.ts +1 -0
- package/src/components/stack/header/StackHeaderConfig.android.tsx +48 -23
- package/src/components/stack/header/StackHeaderConfig.android.types.ts +660 -20
- package/src/components/stack/header/StackHeaderConfig.ios.tsx +77 -23
- package/src/components/stack/header/StackHeaderConfig.ios.types.ts +251 -2
- package/src/components/stack/header/StackHeaderConfig.types.ts +2 -2
- package/src/components/stack/header/ios/StackHeaderItem.ios.tsx +1 -23
- package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +2 -0
- package/src/components/stack/header/ios/iconUtils.ios.ts +38 -2
- package/src/components/stack/header/utils.ts +6 -11
- package/src/components/stack/host/StackHost.tsx +4 -2
- package/src/components/stack/host/StackHost.types.ts +28 -4
- package/src/components/stack/index.ts +6 -1
- package/src/components/tabs/host/TabsHost.ios.tsx +1 -0
- package/src/components/tabs/host/TabsHost.ios.types.ts +16 -0
- package/src/components/tabs/host/TabsHost.types.ts +3 -0
- package/src/components/tabs/screen/TabsScreen.types.ts +7 -3
- package/src/experimental/index.ts +1 -0
- package/src/fabric/ScrollViewMarkerNativeComponent.ts +8 -2
- package/src/fabric/legacy/FullWindowOverlayNativeComponent.ts +6 -2
- package/src/fabric/legacy/ModalScreenNativeComponent.ts +8 -2
- package/src/fabric/legacy/ScreenContainerNativeComponent.ts +5 -2
- package/src/fabric/legacy/ScreenContentWrapperNativeComponent.ts +2 -2
- package/src/fabric/legacy/ScreenFooterNativeComponent.ts +5 -2
- package/src/fabric/legacy/ScreenNativeComponent.ts +8 -2
- package/src/fabric/legacy/ScreenNavigationContainerNativeComponent.ts +2 -2
- package/src/fabric/legacy/ScreenStackHeaderConfigNativeComponent.ts +8 -3
- package/src/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.ts +6 -2
- package/src/fabric/legacy/ScreenStackNativeComponent.ts +10 -2
- package/src/fabric/legacy/SearchBarNativeComponent.ts +10 -7
- package/src/fabric/modals/form-sheet/FormSheetContentWrapperNativeComponent.ts +2 -2
- package/src/fabric/modals/form-sheet/FormSheetHostNativeComponent.ts +7 -2
- package/src/fabric/safe-area/SafeAreaViewNativeComponent.ts +6 -2
- package/src/fabric/scroll-to-top-guard/ScrollToTopGuardNativeComponent.ts +10 -0
- package/src/fabric/split/SplitHostNativeComponent.ts +5 -2
- package/src/fabric/split/SplitScreenNativeComponent.ts +6 -2
- package/src/fabric/stack/StackHeaderConfigAndroidNativeComponent.ts +81 -1
- package/src/fabric/stack/StackHeaderConfigIOSNativeComponent.ts +39 -2
- package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +4 -1
- package/src/fabric/stack/StackHeaderItemSpacerIOSNativeComponent.ts +6 -2
- package/src/fabric/stack/StackHeaderSubviewAndroidNativeComponent.ts +6 -2
- package/src/fabric/stack/StackHostNativeComponent.ts +15 -3
- package/src/fabric/stack/StackScreenNativeComponent.ts +6 -2
- package/src/fabric/tabs/TabsBottomAccessoryContentNativeComponent.ts +6 -2
- package/src/fabric/tabs/TabsBottomAccessoryNativeComponent.ts +6 -2
- package/src/fabric/tabs/TabsHostAndroidNativeComponent.ts +7 -2
- package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +8 -2
- package/src/fabric/tabs/TabsScreenAndroidNativeComponent.ts +2 -1
- package/src/fabric/tabs/TabsScreenIOSNativeComponent.ts +2 -1
- package/src/flags.ts +26 -0
- package/src/legacy/TransitionProgressContext.tsx +1 -1
- package/src/legacy/components/Screen.tsx +14 -6
- package/src/legacy/components/ScreenStackHeaderConfig.tsx +7 -1
- package/src/legacy/components/ScreenStackItem.tsx +3 -4
- package/src/legacy/components/SearchBar.tsx +34 -44
- package/src/legacy/components/helpers/prepareHeaderBarButtonItems.ts +7 -1
- package/src/legacy/gesture-handler/fabricUtils.ts +5 -2
- package/src/legacy/types.ts +28 -5
- package/src/legacy/useTransitionProgress.tsx +4 -2
- package/src/private/hooks/useRenderDebugInfo.tsx +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingView.kt +0 -83
- package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewManager.kt +0 -89
- package/android/src/main/java/com/swmansion/rnscreens/modals/dimmingview/DimmingViewPointerEvents.kt +0 -18
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDetents.kt +0 -106
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDialog.kt +0 -60
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDialogManager.kt +0 -138
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetDimensionsCoordinator.kt +0 -131
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetNativeDismissCoordinator.kt +0 -25
- package/android/src/main/java/com/swmansion/rnscreens/modals/formsheet/FormSheetPresentationManager.kt +0 -207
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderAppBarLayout.kt +0 -113
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuConfig.kt +0 -60
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuElementOptions.kt +0 -32
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/toolbar/StackHeaderToolbarMenuGroupMetadata.kt +0 -16
- package/ios/ReactMountingTransactionObserving.swift +0 -7
- package/ios/bridging/Swift-Bridging.h +0 -7
- package/ios/conversion/RNSConversions-Stack.h +0 -32
- package/ios/conversion/RNSConversions-Stack.mm +0 -41
- package/ios/conversion/always_false.h +0 -31
- package/ios/orientation/RNSOrientationProviding.swift +0 -6
- package/ios/orientation/RNSOrientationSwift.swift +0 -14
- package/ios/split/RNSSplitAppearanceApplicator.swift +0 -199
- package/ios/split/RNSSplitAppearanceCoordinator.swift +0 -26
- package/ios/split/RNSSplitAppearanceUpdateFlags.swift +0 -11
- package/ios/split/RNSSplitHostController.swift +0 -570
- package/ios/split/RNSSplitNavigationController.swift +0 -46
- package/ios/split/RNSSplitScreenController.swift +0 -133
- package/ios/utils/RNSLog.swift +0 -6
- /package/ios/{conversion → scroll-view-marker/conversion}/RNSConversions-ScrollViewMarker.h +0 -0
package/ios/legacy/RNSScreen.mm
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#import <react/renderer/components/rnscreens/EventEmitters.h>
|
|
15
15
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
16
16
|
#import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
|
|
17
|
-
#import <rnscreens/RNSScreenComponentDescriptor.h>
|
|
17
|
+
#import <react/renderer/components/rnscreens/legacy/RNSScreenComponentDescriptor.h>
|
|
18
18
|
#import "RNSConvert.h"
|
|
19
19
|
#import "RNSHeaderHeightChangeEvent.h"
|
|
20
20
|
#import "RNSScreenViewEvent.h"
|
|
@@ -102,6 +102,7 @@ struct ContentWrapperBox {
|
|
|
102
102
|
_sheetContentHeight = 0.0;
|
|
103
103
|
_markedForUnmountInCurrentTransaction = NO;
|
|
104
104
|
_synchronousShadowStateUpdatesEnabled = YES;
|
|
105
|
+
_iosOrientationInheritanceFixEnabled = YES;
|
|
105
106
|
}
|
|
106
107
|
|
|
107
108
|
- (BOOL)getFullScreenSwipeShadowEnabled
|
|
@@ -177,6 +178,13 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
177
178
|
|
|
178
179
|
- (void)applyFrameCorrectionForDescendantScrollView
|
|
179
180
|
{
|
|
181
|
+
// A dismissed sheet can still receive a layout pass after React has deleted it. By then Fabric
|
|
182
|
+
// may have recycled its scroll view into the screen that replaced the sheet, and sizing that
|
|
183
|
+
// scroll view to the sheet would clip the new screen. See #4651.
|
|
184
|
+
if (_invalidated) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
|
|
180
188
|
RCTScrollViewComponentView *scrollView = [self tryFindDescendantScrollView];
|
|
181
189
|
if (_sheetsScrollView != scrollView) {
|
|
182
190
|
[_sheetsScrollView removeObserver:self forKeyPath:@"bounds" context:nil];
|
|
@@ -769,6 +777,8 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
769
777
|
|
|
770
778
|
- (void)invalidateImpl
|
|
771
779
|
{
|
|
780
|
+
_invalidated = YES;
|
|
781
|
+
|
|
772
782
|
// Since the scroll view might get immediately recycled we remove ourselves
|
|
773
783
|
// immediately.
|
|
774
784
|
if (_sheetsScrollView != nil) {
|
|
@@ -1259,6 +1269,8 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
1259
1269
|
|
|
1260
1270
|
[self setSynchronousShadowStateUpdatesEnabled:newScreenProps.synchronousShadowStateUpdatesEnabled];
|
|
1261
1271
|
|
|
1272
|
+
[self setIosOrientationInheritanceFixEnabled:newScreenProps.iosOrientationInheritanceFixEnabled];
|
|
1273
|
+
|
|
1262
1274
|
#if !TARGET_OS_TV
|
|
1263
1275
|
if (newScreenProps.statusBarHidden != oldScreenProps.statusBarHidden) {
|
|
1264
1276
|
[self setStatusBarHidden:newScreenProps.statusBarHidden];
|
|
@@ -1407,7 +1419,6 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
|
|
|
1407
1419
|
@implementation RNSScreen {
|
|
1408
1420
|
__weak id _previousFirstResponder;
|
|
1409
1421
|
CGRect _lastViewFrame;
|
|
1410
|
-
RNSScreenView *_initialView;
|
|
1411
1422
|
UIView *_fakeView;
|
|
1412
1423
|
CADisplayLink *_animationTimer;
|
|
1413
1424
|
CGFloat _currentAlpha;
|
|
@@ -1428,7 +1439,6 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
|
|
|
1428
1439
|
_fakeView = [UIView new];
|
|
1429
1440
|
_shouldNotify = YES;
|
|
1430
1441
|
_isRemovedFromParent = NO;
|
|
1431
|
-
_initialView = (RNSScreenView *)view;
|
|
1432
1442
|
}
|
|
1433
1443
|
return self;
|
|
1434
1444
|
}
|
|
@@ -1579,24 +1589,6 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
|
|
|
1579
1589
|
return NO;
|
|
1580
1590
|
}
|
|
1581
1591
|
|
|
1582
|
-
- (CGSize)getStatusBarHeightIsModal:(BOOL)isModal
|
|
1583
|
-
{
|
|
1584
|
-
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
1585
|
-
CGSize fallbackStatusBarSize = [[UIApplication sharedApplication] statusBarFrame].size;
|
|
1586
|
-
|
|
1587
|
-
CGSize primaryStatusBarSize = self.view.window.windowScene.statusBarManager.statusBarFrame.size;
|
|
1588
|
-
if (primaryStatusBarSize.height == 0 || primaryStatusBarSize.width == 0) {
|
|
1589
|
-
return fallbackStatusBarSize;
|
|
1590
|
-
}
|
|
1591
|
-
|
|
1592
|
-
return primaryStatusBarSize;
|
|
1593
|
-
|
|
1594
|
-
#else
|
|
1595
|
-
// TVOS does not have status bar.
|
|
1596
|
-
return CGSizeMake(0, 0);
|
|
1597
|
-
#endif // !TARGET_OS_TV
|
|
1598
|
-
}
|
|
1599
|
-
|
|
1600
1592
|
- (UINavigationController *)getVisibleNavigationControllerIsModal:(BOOL)isModal
|
|
1601
1593
|
{
|
|
1602
1594
|
UINavigationController *navctr = self.navigationController;
|
|
@@ -1751,9 +1743,13 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
|
|
|
1751
1743
|
|
|
1752
1744
|
- (void)notifyTransitionProgress:(double)progress closing:(BOOL)closing goingForward:(BOOL)goingForward
|
|
1753
1745
|
{
|
|
1754
|
-
if ([self.view isKindOfClass:[RNSScreenView class]]) {
|
|
1755
|
-
|
|
1756
|
-
|
|
1746
|
+
if (![self.view isKindOfClass:[RNSScreenView class]]) {
|
|
1747
|
+
return;
|
|
1748
|
+
}
|
|
1749
|
+
|
|
1750
|
+
// if the screen was already deleted by React, there is no sense in sending progress
|
|
1751
|
+
// since on JS side the component is already not present
|
|
1752
|
+
if (!static_cast<RNSScreenView *>(self.view).isInvalidated) {
|
|
1757
1753
|
[(RNSScreenView *)self.view notifyTransitionProgress:progress closing:closing goingForward:goingForward];
|
|
1758
1754
|
}
|
|
1759
1755
|
}
|
|
@@ -1907,11 +1903,9 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
|
|
|
1907
1903
|
return (int)[[self.screenView.reactSuperview reactSubviews] indexOfObject:view];
|
|
1908
1904
|
}
|
|
1909
1905
|
|
|
1910
|
-
// Since the view of the controller can be a snapshot of type `UIView`,
|
|
1911
|
-
// when we want to check props of ScreenView, we need to get them from _initialView
|
|
1912
1906
|
- (RNSScreenView *)screenView
|
|
1913
1907
|
{
|
|
1914
|
-
return
|
|
1908
|
+
return static_cast<RNSScreenView *>(self.view);
|
|
1915
1909
|
}
|
|
1916
1910
|
|
|
1917
1911
|
- (void)hideHeaderIfNecessary
|
|
@@ -1984,6 +1978,19 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
|
|
|
1984
1978
|
}
|
|
1985
1979
|
}
|
|
1986
1980
|
|
|
1981
|
+
// If flag is enabled, we're doing same evaluation as `[self supportedInterfaceOrientations]`
|
|
1982
|
+
// but we fall back to `RNSOrientationInherit` if orientation is not set in order not to
|
|
1983
|
+
// override parent's orientation. For more details see:
|
|
1984
|
+
// https://github.com/software-mansion/react-native-screens/pull/4408
|
|
1985
|
+
if (self.screenView.iosOrientationInheritanceFixEnabled) {
|
|
1986
|
+
UIViewController *orientationVC = [self findChildVCForConfigAndTrait:RNSWindowTraitOrientation includingModals:YES];
|
|
1987
|
+
if ([orientationVC isKindOfClass:[RNSScreen class]]) {
|
|
1988
|
+
return rnscreens::conversion::RNSOrientationFromUIInterfaceOrientationMask(
|
|
1989
|
+
((RNSScreen *)orientationVC).screenView.screenOrientation);
|
|
1990
|
+
}
|
|
1991
|
+
return RNSOrientationInherit;
|
|
1992
|
+
}
|
|
1993
|
+
|
|
1987
1994
|
return rnscreens::conversion::RNSOrientationFromUIInterfaceOrientationMask([self supportedInterfaceOrientations]);
|
|
1988
1995
|
}
|
|
1989
1996
|
|
|
@@ -1991,18 +1998,22 @@ Class<RCTComponentViewProtocol> RNSScreenCls(void)
|
|
|
1991
1998
|
|
|
1992
1999
|
#pragma mark - Fabric specific
|
|
1993
2000
|
|
|
1994
|
-
- (void)
|
|
2001
|
+
- (void)addSnapshotToView
|
|
1995
2002
|
{
|
|
1996
|
-
UIView *superView = self.view.superview;
|
|
1997
2003
|
// if we dismissed the view natively, it will already be detached from view hierarchy
|
|
1998
|
-
if (self.view.window
|
|
1999
|
-
|
|
2000
|
-
UIView *snapshot = [self.view snapshotViewAfterScreenUpdates:afterUpdates];
|
|
2001
|
-
snapshot.frame = self.view.frame;
|
|
2002
|
-
[self.view removeFromSuperview];
|
|
2003
|
-
self.view = snapshot;
|
|
2004
|
-
[superView addSubview:snapshot];
|
|
2004
|
+
if (self.view.window == nil) {
|
|
2005
|
+
return;
|
|
2005
2006
|
}
|
|
2007
|
+
|
|
2008
|
+
// The snapshot is added inside the screen view instead of replacing it, so `self.view` remains
|
|
2009
|
+
// the view UIKit captured for the ongoing transition and is torn down (with the snapshot)
|
|
2010
|
+
// consistently. Replacing the view mid-transition made iOS 26 teardown re-insert the original
|
|
2011
|
+
// view into the hierarchy and remove only the snapshot, leaving a view that blocked all touches.
|
|
2012
|
+
UIView *snapshot = [self.view snapshotViewAfterScreenUpdates:self.screenView.snapshotAfterUpdates];
|
|
2013
|
+
snapshot.frame = self.view.bounds;
|
|
2014
|
+
// fill the whole screen view with the snapshot
|
|
2015
|
+
snapshot.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
|
|
2016
|
+
[self.view addSubview:snapshot];
|
|
2006
2017
|
}
|
|
2007
2018
|
|
|
2008
2019
|
@end
|
|
@@ -16,6 +16,15 @@ namespace react = facebook::react;
|
|
|
16
16
|
|
|
17
17
|
@implementation RNSScreenContentWrapper
|
|
18
18
|
|
|
19
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
20
|
+
{
|
|
21
|
+
if (self = [super initWithFrame:frame]) {
|
|
22
|
+
static const auto defaultProps = std::make_shared<const react::RNSScreenContentWrapperProps>();
|
|
23
|
+
_props = defaultProps;
|
|
24
|
+
}
|
|
25
|
+
return self;
|
|
26
|
+
}
|
|
27
|
+
|
|
19
28
|
- (void)notifyDelegateWithFrame:(CGRect)frame
|
|
20
29
|
{
|
|
21
30
|
[self.delegate contentWrapper:self receivedReactFrame:frame];
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
- (instancetype)init
|
|
13
13
|
{
|
|
14
14
|
if (self = [super init]) {
|
|
15
|
+
static const auto defaultProps = std::make_shared<const facebook::react::RNSScreenFooterProps>();
|
|
16
|
+
_props = defaultProps;
|
|
15
17
|
self.translatesAutoresizingMaskIntoConstraints = false;
|
|
16
18
|
_parent = nil;
|
|
17
19
|
}
|
|
@@ -244,8 +244,10 @@ namespace react = facebook::react;
|
|
|
244
244
|
willShowViewController:(UIViewController *)viewController
|
|
245
245
|
animated:(BOOL)animated
|
|
246
246
|
{
|
|
247
|
-
if (![viewController.view isKindOfClass:[RNSScreenView class]]
|
|
248
|
-
|
|
247
|
+
if (![viewController.view isKindOfClass:[RNSScreenView class]] ||
|
|
248
|
+
static_cast<RNSScreenView *>(viewController.view).isInvalidated) {
|
|
249
|
+
// if the screen was already deleted by React, its config was already removed
|
|
250
|
+
// so we don't trigger the method
|
|
249
251
|
return;
|
|
250
252
|
}
|
|
251
253
|
auto *screenView = static_cast<RNSScreenView *>(viewController.view);
|
|
@@ -1313,7 +1315,7 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
1313
1315
|
- (void)unmountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView index:(NSInteger)index
|
|
1314
1316
|
{
|
|
1315
1317
|
RNSScreenView *screenChildComponent = (RNSScreenView *)childComponentView;
|
|
1316
|
-
[screenChildComponent.controller
|
|
1318
|
+
[screenChildComponent.controller addSnapshotToView];
|
|
1317
1319
|
|
|
1318
1320
|
RCTAssert(screenChildComponent.reactSuperview == self,
|
|
1319
1321
|
@"Attempt to unmount a view which is mounted inside different view. (parent: %@, child: %@, index: %@)",
|
|
@@ -1330,7 +1332,10 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
1330
1332
|
@([[_reactSubviews objectAtIndex:index] tag]));
|
|
1331
1333
|
screenChildComponent.reactSuperview = nil;
|
|
1332
1334
|
[_reactSubviews removeObject:screenChildComponent];
|
|
1333
|
-
|
|
1335
|
+
|
|
1336
|
+
if (screenChildComponent.window == nil) {
|
|
1337
|
+
[screenChildComponent removeFromSuperview];
|
|
1338
|
+
}
|
|
1334
1339
|
}
|
|
1335
1340
|
|
|
1336
1341
|
- (void)mountingTransactionWillMount:(const facebook::react::MountingTransaction &)transaction
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
15
15
|
#import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
|
|
16
16
|
#import <react/utils/ManagedObjectWrapper.h>
|
|
17
|
-
#import <rnscreens/RNSScreenStackHeaderConfigComponentDescriptor.h>
|
|
17
|
+
#import <react/renderer/components/rnscreens/legacy/RNSScreenStackHeaderConfigComponentDescriptor.h>
|
|
18
18
|
#import "RCTImageComponentView+RNSScreenStackHeaderConfig.h"
|
|
19
19
|
#import "RNSBackBarButtonItem.h"
|
|
20
20
|
#import "RNSBarButtonItem.h"
|
|
@@ -947,6 +947,7 @@ RNS_IGNORE_SUPER_CALL_END
|
|
|
947
947
|
}
|
|
948
948
|
}
|
|
949
949
|
|
|
950
|
+
#ifndef NDEBUG
|
|
950
951
|
static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
951
952
|
{
|
|
952
953
|
switch (resizeMode) {
|
|
@@ -965,6 +966,7 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode)
|
|
|
965
966
|
return RCTResizeModeStretch;
|
|
966
967
|
}
|
|
967
968
|
}
|
|
969
|
+
#endif // !NDEBUG
|
|
968
970
|
|
|
969
971
|
+ (RCTImageSource *)imageSourceFromImageView:(RCTImageComponentView *)view
|
|
970
972
|
{
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#import <React/RCTConversions.h>
|
|
11
11
|
#import <React/RCTFabricComponentsPlugins.h>
|
|
12
12
|
|
|
13
|
-
#import <rnscreens/RNSScreenStackHeaderSubviewComponentDescriptor.h>
|
|
13
|
+
#import <react/renderer/components/rnscreens/legacy/RNSScreenStackHeaderSubviewComponentDescriptor.h>
|
|
14
14
|
|
|
15
15
|
namespace react = facebook::react;
|
|
16
16
|
|
|
@@ -101,7 +101,8 @@
|
|
|
101
101
|
{
|
|
102
102
|
#if !TARGET_OS_TV && !TARGET_OS_VISION
|
|
103
103
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
104
|
-
|
|
104
|
+
UIWindow *window = RCTKeyWindow();
|
|
105
|
+
UIInterfaceOrientationMask orientationMask = [window.rootViewController supportedInterfaceOrientations];
|
|
105
106
|
|
|
106
107
|
UIInterfaceOrientation currentDeviceOrientation =
|
|
107
108
|
[RNSScreenWindowTraits interfaceOrientationFromDeviceOrientation:[[UIDevice currentDevice] orientation]];
|
|
@@ -130,17 +131,7 @@
|
|
|
130
131
|
if (newOrientation != UIInterfaceOrientationUnknown) {
|
|
131
132
|
#if RNS_IPHONE_OS_VERSION_AVAILABLE(16_0)
|
|
132
133
|
if (@available(iOS 16.0, *)) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
// when an app supports multiple scenes (e.g. CarPlay), it is possible that
|
|
136
|
-
// UIWindowScene is not the first scene, or it may not be present at all
|
|
137
|
-
UIWindowScene *scene = nil;
|
|
138
|
-
for (id connectedScene in array) {
|
|
139
|
-
if ([connectedScene isKindOfClass:[UIWindowScene class]]) {
|
|
140
|
-
scene = connectedScene;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
134
|
+
UIWindowScene *scene = window.windowScene;
|
|
144
135
|
|
|
145
136
|
if (scene == nil) {
|
|
146
137
|
return;
|
|
@@ -154,7 +145,8 @@
|
|
|
154
145
|
|
|
155
146
|
// `attemptRotationToDeviceOrientation` is deprecated for modern OS versions
|
|
156
147
|
// so we need to use `setNeedsUpdateOfSupportedInterfaceOrientations`
|
|
157
|
-
|
|
148
|
+
|
|
149
|
+
UIViewController *topController = window.rootViewController;
|
|
158
150
|
while (topController.presentedViewController) {
|
|
159
151
|
topController = topController.presentedViewController;
|
|
160
152
|
}
|
|
@@ -10,13 +10,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
10
10
|
|
|
11
11
|
@interface RNSFormSheetConfigurationApplicator : NSObject
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
+ (void)applyConfigurationIfNeededWithAppearanceProvider:(id<RNSFormSheetAppearanceProvider>)appearanceProvider
|
|
14
14
|
behaviorProvider:(id<RNSFormSheetBehaviorProvider>)behaviorProvider
|
|
15
15
|
controller:(RNSFormSheetContentController *)controller
|
|
16
16
|
coordinator:(RNSFormSheetUpdateCoordinator *)coordinator;
|
|
17
17
|
|
|
18
|
-
- (void)resetInitialDetent;
|
|
19
|
-
|
|
20
18
|
@end
|
|
21
19
|
|
|
22
20
|
NS_ASSUME_NONNULL_END
|
|
@@ -7,43 +7,33 @@
|
|
|
7
7
|
#import "RNSFormSheetUpdateCoordinator.h"
|
|
8
8
|
#import "RNSFormSheetUpdateFlags.h"
|
|
9
9
|
|
|
10
|
-
@implementation RNSFormSheetConfigurationApplicator
|
|
11
|
-
BOOL _initialDetentApplied;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
- (instancetype)init
|
|
15
|
-
{
|
|
16
|
-
if (self = [super init]) {
|
|
17
|
-
_initialDetentApplied = NO;
|
|
18
|
-
}
|
|
19
|
-
return self;
|
|
20
|
-
}
|
|
10
|
+
@implementation RNSFormSheetConfigurationApplicator
|
|
21
11
|
|
|
22
|
-
|
|
23
|
-
{
|
|
24
|
-
_initialDetentApplied = NO;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
- (void)applyConfigurationIfNeededWithAppearanceProvider:(id<RNSFormSheetAppearanceProvider>)appearanceProvider
|
|
12
|
+
+ (void)applyConfigurationIfNeededWithAppearanceProvider:(id<RNSFormSheetAppearanceProvider>)appearanceProvider
|
|
28
13
|
behaviorProvider:(id<RNSFormSheetBehaviorProvider>)behaviorProvider
|
|
29
14
|
controller:(RNSFormSheetContentController *)controller
|
|
30
15
|
coordinator:(RNSFormSheetUpdateCoordinator *)coordinator
|
|
31
16
|
{
|
|
32
|
-
RNSFormSheetUpdateFlags configFlags =
|
|
17
|
+
RNSFormSheetUpdateFlags configFlags =
|
|
18
|
+
RNSFormSheetUpdateFlagsAppearance | RNSFormSheetUpdateFlagsBehavior | RNSFormSheetUpdateFlagsInitialDetent;
|
|
19
|
+
|
|
20
|
+
BOOL shouldSelectInitialDetent = [coordinator needsAny:RNSFormSheetUpdateFlagsInitialDetent];
|
|
33
21
|
|
|
34
22
|
[coordinator updateIfAnyNeeded:configFlags
|
|
35
23
|
performOperations:^{
|
|
36
24
|
[self applyConfigurationWithAppearanceProvider:appearanceProvider
|
|
37
25
|
behaviorProvider:behaviorProvider
|
|
38
|
-
controller:controller
|
|
26
|
+
controller:controller
|
|
27
|
+
selectInitialDetent:shouldSelectInitialDetent];
|
|
39
28
|
}];
|
|
40
29
|
}
|
|
41
30
|
|
|
42
31
|
#pragma mark - Updaters
|
|
43
32
|
|
|
44
|
-
|
|
33
|
+
+ (void)applyConfigurationWithAppearanceProvider:(id<RNSFormSheetAppearanceProvider>)appearanceProvider
|
|
45
34
|
behaviorProvider:(id<RNSFormSheetBehaviorProvider>)behaviorProvider
|
|
46
35
|
controller:(RNSFormSheetContentController *)controller
|
|
36
|
+
selectInitialDetent:(BOOL)selectInitialDetent
|
|
47
37
|
{
|
|
48
38
|
#if !TARGET_OS_TV
|
|
49
39
|
UISheetPresentationController *sheet = controller.sheetPresentationController;
|
|
@@ -57,11 +47,10 @@
|
|
|
57
47
|
[RNSFormSheetDetentResolver buildSheetDetentsWithBehaviorProvider:behaviorProvider];
|
|
58
48
|
|
|
59
49
|
UISheetPresentationControllerDetentIdentifier initialDetentIdentifier = nil;
|
|
60
|
-
if (
|
|
50
|
+
if (selectInitialDetent) {
|
|
61
51
|
initialDetentIdentifier =
|
|
62
52
|
[RNSFormSheetDetentResolver initialDetentIdentifierForDetents:nativeDetents
|
|
63
53
|
atRequestedIndex:behaviorProvider.initialDetentIndex];
|
|
64
|
-
_initialDetentApplied = YES;
|
|
65
54
|
}
|
|
66
55
|
|
|
67
56
|
BOOL prefersScrollingExpands = behaviorProvider.prefersScrollingExpandsWhenScrolledToEdge;
|
|
@@ -20,12 +20,9 @@
|
|
|
20
20
|
|
|
21
21
|
@implementation RNSFormSheetContentController {
|
|
22
22
|
RNSFormSheetUpdateCoordinator *_Nonnull _updateCoordinator;
|
|
23
|
-
RNSFormSheetConfigurationApplicator *_Nonnull _configurationApplicator;
|
|
24
23
|
RNSFormSheetPresentationManager *_Nonnull _presentationManager;
|
|
25
24
|
|
|
26
25
|
UITapGestureRecognizer *_Nullable _backdropTapGestureRecognizer;
|
|
27
|
-
|
|
28
|
-
BOOL _needsInitialDetentReset;
|
|
29
26
|
}
|
|
30
27
|
|
|
31
28
|
- (instancetype)init
|
|
@@ -34,10 +31,7 @@
|
|
|
34
31
|
self.modalPresentationStyle = UIModalPresentationFormSheet;
|
|
35
32
|
|
|
36
33
|
_updateCoordinator = [RNSFormSheetUpdateCoordinator new];
|
|
37
|
-
_configurationApplicator = [RNSFormSheetConfigurationApplicator new];
|
|
38
34
|
_presentationManager = [RNSFormSheetPresentationManager new];
|
|
39
|
-
|
|
40
|
-
_needsInitialDetentReset = NO;
|
|
41
35
|
}
|
|
42
36
|
return self;
|
|
43
37
|
}
|
|
@@ -142,7 +136,7 @@
|
|
|
142
136
|
// We must force a full configuration update for this new instance.
|
|
143
137
|
[self setNeedsAppearanceUpdate];
|
|
144
138
|
[self setNeedsBehaviorUpdate];
|
|
145
|
-
[self
|
|
139
|
+
[self setNeedsInitialDetentUpdate];
|
|
146
140
|
[self updateConfigurationIfNeeded];
|
|
147
141
|
}
|
|
148
142
|
|
|
@@ -160,15 +154,10 @@
|
|
|
160
154
|
return;
|
|
161
155
|
}
|
|
162
156
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
[_configurationApplicator applyConfigurationIfNeededWithAppearanceProvider:appearanceProvider
|
|
169
|
-
behaviorProvider:behaviorProvider
|
|
170
|
-
controller:self
|
|
171
|
-
coordinator:_updateCoordinator];
|
|
157
|
+
[RNSFormSheetConfigurationApplicator applyConfigurationIfNeededWithAppearanceProvider:appearanceProvider
|
|
158
|
+
behaviorProvider:behaviorProvider
|
|
159
|
+
controller:self
|
|
160
|
+
coordinator:_updateCoordinator];
|
|
172
161
|
}
|
|
173
162
|
|
|
174
163
|
#pragma mark - Signals
|
|
@@ -188,9 +177,9 @@
|
|
|
188
177
|
[_updateCoordinator setNeeds:RNSFormSheetUpdateFlagsBehavior];
|
|
189
178
|
}
|
|
190
179
|
|
|
191
|
-
- (void)
|
|
180
|
+
- (void)setNeedsInitialDetentUpdate
|
|
192
181
|
{
|
|
193
|
-
|
|
182
|
+
[_updateCoordinator setNeeds:RNSFormSheetUpdateFlagsInitialDetent];
|
|
194
183
|
}
|
|
195
184
|
|
|
196
185
|
#pragma mark - Updates
|
|
@@ -7,6 +7,15 @@ namespace react = facebook::react;
|
|
|
7
7
|
|
|
8
8
|
@implementation RNSFormSheetContentWrapperComponentView
|
|
9
9
|
|
|
10
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
11
|
+
{
|
|
12
|
+
if (self = [super initWithFrame:frame]) {
|
|
13
|
+
static const auto defaultProps = std::make_shared<const react::RNSFormSheetContentWrapperProps>();
|
|
14
|
+
_props = defaultProps;
|
|
15
|
+
}
|
|
16
|
+
return self;
|
|
17
|
+
}
|
|
18
|
+
|
|
10
19
|
#pragma mark - RCTComponentViewProtocol
|
|
11
20
|
|
|
12
21
|
+ (react::ComponentDescriptorProvider)componentDescriptorProvider
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#import <React/RCTSurfaceTouchHandler.h>
|
|
14
14
|
#import <react/renderer/components/rnscreens/EventEmitters.h>
|
|
15
15
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
16
|
-
#import <rnscreens/RNSFormSheetHostComponentDescriptor.h>
|
|
16
|
+
#import <react/renderer/components/rnscreens/RNSFormSheetHostComponentDescriptor.h>
|
|
17
17
|
|
|
18
18
|
namespace react = facebook::react;
|
|
19
19
|
|
|
@@ -246,9 +246,9 @@ namespace react = facebook::react;
|
|
|
246
246
|
// because UIKit destroys the presentationController after the modal is dismissed.
|
|
247
247
|
[_controller setNeedsAppearanceUpdate];
|
|
248
248
|
[_controller setNeedsBehaviorUpdate];
|
|
249
|
-
//
|
|
250
|
-
//
|
|
251
|
-
[_controller
|
|
249
|
+
// Request the configured initialDetentIndex to be selected
|
|
250
|
+
// again on the fresh presentation controller.
|
|
251
|
+
[_controller setNeedsInitialDetentUpdate];
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
254
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#import "RNSFormSheetHostShadowStateProxy.h"
|
|
2
2
|
|
|
3
3
|
#import <React/RCTConversions.h>
|
|
4
|
-
#import <rnscreens/RNSFormSheetHostShadowNode.h>
|
|
5
|
-
#import <rnscreens/RNSFormSheetHostState.h>
|
|
4
|
+
#import <react/renderer/components/rnscreens/RNSFormSheetHostShadowNode.h>
|
|
5
|
+
#import <react/renderer/components/rnscreens/RNSFormSheetHostState.h>
|
|
6
6
|
|
|
7
7
|
namespace react = facebook::react;
|
|
8
8
|
|
|
@@ -10,4 +10,7 @@ typedef NS_OPTIONS(NSUInteger, RNSFormSheetUpdateFlags) {
|
|
|
10
10
|
RNSFormSheetUpdateFlagsAppearance = 1 << 1,
|
|
11
11
|
// The sheet's behavioral layout (detents, scrolling config) needs to be re-applied.
|
|
12
12
|
RNSFormSheetUpdateFlagsBehavior = 1 << 2,
|
|
13
|
+
// The sheet's selected detent needs to be (re)set to the configured `initialDetentIndex`.
|
|
14
|
+
// Requested once per presentation cycle, since UIKit recreates the presentation controller on every present.
|
|
15
|
+
RNSFormSheetUpdateFlagsInitialDetent = 1 << 3,
|
|
13
16
|
};
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
|
|
10
10
|
#import <react/renderer/components/rnscreens/ComponentDescriptors.h>
|
|
11
11
|
#import <react/renderer/components/rnscreens/Props.h>
|
|
12
|
-
#import <rnscreens/RNSSafeAreaViewComponentDescriptor.h>
|
|
13
|
-
#import <rnscreens/RNSSafeAreaViewState.h>
|
|
12
|
+
#import <react/renderer/components/rnscreens/RNSSafeAreaViewComponentDescriptor.h>
|
|
13
|
+
#import <react/renderer/components/rnscreens/RNSSafeAreaViewState.h>
|
|
14
14
|
|
|
15
15
|
namespace react = facebook::react;
|
|
16
16
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#import "RNSReactBaseView.h"
|
|
4
|
+
|
|
5
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Backing native view for the experimental, iOS-only `ScrollToTopGuard` component. It wraps its
|
|
9
|
+
* children and attaches an `RNSScrollToTopGuardGestureRecognizer` to itself on OS versions where
|
|
10
|
+
* the system "scroll to top" navigation-bar interaction exists (iPadOS 26+, iPhone iOS 27+), so
|
|
11
|
+
* that tapping the wrapped content does not scroll the underlying scroll view to top.
|
|
12
|
+
*/
|
|
13
|
+
@interface RNSScrollToTopGuard : RNSReactBaseView
|
|
14
|
+
|
|
15
|
+
@end
|
|
16
|
+
|
|
17
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#import "RNSScrollToTopGuard.h"
|
|
2
|
+
#import <react/renderer/components/rnscreens/ComponentDescriptors.h>
|
|
3
|
+
#import <react/renderer/components/rnscreens/EventEmitters.h>
|
|
4
|
+
#import <react/renderer/components/rnscreens/Props.h>
|
|
5
|
+
#import <react/renderer/components/rnscreens/RCTComponentViewHelpers.h>
|
|
6
|
+
#import "RNSDefines.h"
|
|
7
|
+
#import "RNSScrollToTopGuardGestureRecognizer.h"
|
|
8
|
+
|
|
9
|
+
namespace react = facebook::react;
|
|
10
|
+
|
|
11
|
+
@implementation RNSScrollToTopGuard
|
|
12
|
+
|
|
13
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
14
|
+
{
|
|
15
|
+
if (self = [super initWithFrame:frame]) {
|
|
16
|
+
[self initState];
|
|
17
|
+
}
|
|
18
|
+
return self;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
- (void)initState
|
|
22
|
+
{
|
|
23
|
+
static const auto defaultProps = std::make_shared<const react::RNSScrollToTopGuardProps>();
|
|
24
|
+
_props = defaultProps;
|
|
25
|
+
|
|
26
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
27
|
+
// Attach the guard once on mount, only on OS versions where the system scroll-to-top
|
|
28
|
+
// interaction exists. On other versions this view is a plain passthrough.
|
|
29
|
+
if ([RNSScrollToTopGuardGestureRecognizer shouldGuardScrollToTop]) {
|
|
30
|
+
[RNSScrollToTopGuardGestureRecognizer applyToView:self];
|
|
31
|
+
}
|
|
32
|
+
#endif // RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
+ (react::ComponentDescriptorProvider)componentDescriptorProvider
|
|
36
|
+
{
|
|
37
|
+
return react::concreteComponentDescriptorProvider<react::RNSScrollToTopGuardComponentDescriptor>();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
#pragma mark - Dynamic frameworks support
|
|
41
|
+
|
|
42
|
+
// Needed because of this: https://github.com/facebook/react-native/pull/37274
|
|
43
|
+
#ifdef RCT_DYNAMIC_FRAMEWORKS
|
|
44
|
+
+ (void)load
|
|
45
|
+
{
|
|
46
|
+
[super load];
|
|
47
|
+
}
|
|
48
|
+
#endif // RCT_DYNAMIC_FRAMEWORKS
|
|
49
|
+
|
|
50
|
+
@end
|
|
51
|
+
|
|
52
|
+
#pragma mark - View class exposure
|
|
53
|
+
|
|
54
|
+
Class<RCTComponentViewProtocol> RNSScrollToTopGuardCls(void)
|
|
55
|
+
{
|
|
56
|
+
return RNSScrollToTopGuard.class;
|
|
57
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* This gesture recognizer is necessary to handle views placed in the navigation bar area on OS
|
|
9
|
+
* versions where the system triggers "scroll to top" by tapping that area (iPadOS 26+ and iPhone
|
|
10
|
+
* iOS 27+). Otherwise, tapping such a view results in a scroll to top action even if there is a
|
|
11
|
+
* pressable inside it.
|
|
12
|
+
*/
|
|
13
|
+
@interface RNSScrollToTopGuardGestureRecognizer : UITapGestureRecognizer <UIGestureRecognizerDelegate>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Returns YES on OS versions / device idioms where the system scroll-to-top-on-header interaction
|
|
17
|
+
* exists (iPad: iOS 26+, iPhone: iOS 27+); NO otherwise.
|
|
18
|
+
*/
|
|
19
|
+
+ (BOOL)shouldGuardScrollToTop;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Creates the scroll to top guard gesture recognizer and adds it to the given view.
|
|
23
|
+
*/
|
|
24
|
+
+ (void)applyToView:(UIView *)view;
|
|
25
|
+
|
|
26
|
+
@end
|
|
27
|
+
|
|
28
|
+
NS_ASSUME_NONNULL_END
|