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
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#import "RNSSplitNavigationControllerFrameObserver.h"
|
|
2
|
+
#import "RNSSplitNavigationControllerFrameOriginChangeDelegate.h"
|
|
3
|
+
|
|
4
|
+
static void *RNSSplitNavigationViewFrameContext = &RNSSplitNavigationViewFrameContext;
|
|
5
|
+
|
|
6
|
+
@implementation RNSSplitNavigationControllerFrameObserver {
|
|
7
|
+
RNSSplitNavigationController *__weak _navigationController;
|
|
8
|
+
id<RNSSplitNavigationControllerFrameOriginChangeDelegate> __weak _frameOriginChangeDelegate;
|
|
9
|
+
UIView *__weak _observedView;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
- (instancetype)initWithSplitNavigationController:(RNSSplitNavigationController *)navigationController
|
|
13
|
+
delegate:(id<RNSSplitNavigationControllerFrameOriginChangeDelegate>)
|
|
14
|
+
frameOriginChangeDelegate
|
|
15
|
+
{
|
|
16
|
+
if (self = [super init]) {
|
|
17
|
+
_navigationController = navigationController;
|
|
18
|
+
_frameOriginChangeDelegate = frameOriginChangeDelegate;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return self;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
#pragma mark - Observing view frame changes
|
|
25
|
+
|
|
26
|
+
- (void)registerForViewFrameChanges
|
|
27
|
+
{
|
|
28
|
+
[self unregisterForViewFrameChanges];
|
|
29
|
+
|
|
30
|
+
UIView *view = _navigationController.viewIfLoaded;
|
|
31
|
+
if (view == nil) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
[view addObserver:self
|
|
36
|
+
forKeyPath:@"frame"
|
|
37
|
+
options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew
|
|
38
|
+
context:RNSSplitNavigationViewFrameContext];
|
|
39
|
+
_observedView = view;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
- (void)unregisterForViewFrameChanges
|
|
43
|
+
{
|
|
44
|
+
[_observedView removeObserver:self forKeyPath:@"frame" context:RNSSplitNavigationViewFrameContext];
|
|
45
|
+
_observedView = nil;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
- (void)observeValueForKeyPath:(NSString *)keyPath
|
|
49
|
+
ofObject:(id)object
|
|
50
|
+
change:(NSDictionary<NSKeyValueChangeKey, id> *)change
|
|
51
|
+
context:(void *)context
|
|
52
|
+
{
|
|
53
|
+
if (context != RNSSplitNavigationViewFrameContext) {
|
|
54
|
+
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
id oldValue = change[NSKeyValueChangeOldKey];
|
|
59
|
+
id newValue = change[NSKeyValueChangeNewKey];
|
|
60
|
+
if (![oldValue isKindOfClass:[NSValue class]] || ![newValue isKindOfClass:[NSValue class]]) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
CGRect oldFrame = [oldValue CGRectValue];
|
|
65
|
+
CGRect newFrame = [newValue CGRectValue];
|
|
66
|
+
|
|
67
|
+
if (!CGPointEqualToPoint(oldFrame.origin, newFrame.origin)) {
|
|
68
|
+
RNSSplitNavigationController *navigationController = _navigationController;
|
|
69
|
+
if (navigationController != nil) {
|
|
70
|
+
[_frameOriginChangeDelegate splitNavigationControllerFrameOriginDidChange:navigationController];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
- (void)dealloc
|
|
76
|
+
{
|
|
77
|
+
[self unregisterForViewFrameChanges];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
6
|
+
|
|
7
|
+
@class RNSSplitNavigationController;
|
|
8
|
+
|
|
9
|
+
@protocol RNSSplitNavigationControllerFrameOriginChangeDelegate <NSObject>
|
|
10
|
+
|
|
11
|
+
- (void)splitNavigationControllerFrameOriginDidChange:(RNSSplitNavigationController *)splitNavCtrl;
|
|
12
|
+
|
|
13
|
+
@end
|
|
14
|
+
|
|
15
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
#import "RNSEnums.h"
|
|
4
4
|
#import "RNSReactBaseView.h"
|
|
5
5
|
#import "RNSSafeAreaProviding.h"
|
|
6
|
-
#import "RNSSplitScreenComponentEventEmitter.h"
|
|
7
|
-
#import "RNSSplitScreenShadowStateProxy.h"
|
|
8
6
|
|
|
9
7
|
NS_ASSUME_NONNULL_BEGIN
|
|
10
8
|
|
|
@@ -25,26 +23,6 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
25
23
|
|
|
26
24
|
@end
|
|
27
25
|
|
|
28
|
-
#pragma mark - ShadowTreeState
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @category ShadowTreeState
|
|
32
|
-
* @brief Interactions between the host component and the associated ShadowNode.
|
|
33
|
-
*/
|
|
34
|
-
@interface RNSSplitScreenComponentView ()
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @brief Getter for the proxy object that interfaces with the Shadow Tree state for this screen.
|
|
38
|
-
*
|
|
39
|
-
* The ShadowStateProxy is the object that's responsible for sending layout updates coming from the Host tree to the
|
|
40
|
-
* ShadowTree.
|
|
41
|
-
*
|
|
42
|
-
* @return A pointer to a RNSSplitScreenShadowStateProxy instance.
|
|
43
|
-
*/
|
|
44
|
-
- (nonnull RNSSplitScreenShadowStateProxy *)shadowStateProxy;
|
|
45
|
-
|
|
46
|
-
@end
|
|
47
|
-
|
|
48
26
|
#pragma mark - Props
|
|
49
27
|
|
|
50
28
|
/**
|
|
@@ -60,21 +38,4 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
60
38
|
|
|
61
39
|
@end
|
|
62
40
|
|
|
63
|
-
#pragma mark - Events
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @category Events
|
|
67
|
-
* @brief APIs related to event emission to React Native.
|
|
68
|
-
*/
|
|
69
|
-
@interface RNSSplitScreenComponentView ()
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* @brief Getter for the component's event emitter used for emitting events to React.
|
|
73
|
-
*
|
|
74
|
-
* @return A pointer to RNSSplitScreenComponentEventEmitter instance.
|
|
75
|
-
*/
|
|
76
|
-
- (nonnull RNSSplitScreenComponentEventEmitter *)reactEventEmitter;
|
|
77
|
-
|
|
78
|
-
@end
|
|
79
|
-
|
|
80
41
|
NS_ASSUME_NONNULL_END
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
#import "RNSSplitScreenComponentView.h"
|
|
2
2
|
#import <React/RCTAssert.h>
|
|
3
3
|
#import <React/RCTSurfaceTouchHandler.h>
|
|
4
|
-
#import <rnscreens/RNSSplitScreenComponentDescriptor.h>
|
|
5
|
-
#import "RNSConversions.h"
|
|
4
|
+
#import <react/renderer/components/rnscreens/RNSSplitScreenComponentDescriptor.h>
|
|
5
|
+
#import "RNSConversions-SplitView.h"
|
|
6
6
|
#import "RNSSafeAreaViewNotifications.h"
|
|
7
|
-
|
|
8
|
-
#import "
|
|
7
|
+
#import "RNSSplitScreenComponentEventEmitter.h"
|
|
8
|
+
#import "RNSSplitScreenController.h"
|
|
9
|
+
#import "RNSSplitScreenShadowStateProxy.h"
|
|
9
10
|
|
|
10
11
|
namespace react = facebook::react;
|
|
11
12
|
|
|
13
|
+
@interface RNSSplitScreenComponentView () <RNSSplitScreenControllerDelegate>
|
|
14
|
+
@end
|
|
15
|
+
|
|
12
16
|
@implementation RNSSplitScreenComponentView {
|
|
13
17
|
RNSSplitScreenComponentEventEmitter *_Nonnull _reactEventEmitter;
|
|
14
18
|
RNSSplitScreenController *_Nullable _controller;
|
|
@@ -50,6 +54,7 @@ namespace react = facebook::react;
|
|
|
50
54
|
{
|
|
51
55
|
_controller = [[RNSSplitScreenController alloc] initWithSplitScreenComponentView:self];
|
|
52
56
|
_controller.view = self;
|
|
57
|
+
_controller.delegate = self;
|
|
53
58
|
}
|
|
54
59
|
|
|
55
60
|
- (void)didMoveToWindow
|
|
@@ -97,32 +102,43 @@ namespace react = facebook::react;
|
|
|
97
102
|
|
|
98
103
|
#pragma mark - Layout
|
|
99
104
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
/**
|
|
106
|
+
* This override **should be considered as a workaround** for which I made some assumptions:
|
|
107
|
+
* 1. All parents of views with associated `UINavigationController` should have the same width as the SplitView column
|
|
108
|
+
* 2. I'm greedily aligning all native components which are extending `UINavigationController` - is covers both old and
|
|
109
|
+
* new stack implementations, however, it will have an impact on any other native component which will be extending
|
|
110
|
+
* from the same class.
|
|
111
|
+
*/
|
|
107
112
|
- (void)layoutSubviews
|
|
108
113
|
{
|
|
109
114
|
[super layoutSubviews];
|
|
110
115
|
}
|
|
111
116
|
|
|
112
|
-
#pragma mark -
|
|
117
|
+
#pragma mark - RNSSplitScreenControllerDelegate
|
|
118
|
+
|
|
119
|
+
- (void)splitScreenController:(RNSSplitScreenController *)controller didChangeColumnFrame:(CGRect)frame
|
|
120
|
+
{
|
|
121
|
+
[_shadowStateProxy updateShadowStateWithFrame:frame];
|
|
122
|
+
}
|
|
113
123
|
|
|
114
|
-
- (
|
|
124
|
+
- (void)splitScreenControllerWillAppear:(RNSSplitScreenController *)controller
|
|
115
125
|
{
|
|
116
|
-
|
|
117
|
-
return _shadowStateProxy;
|
|
126
|
+
[_reactEventEmitter emitOnWillAppear];
|
|
118
127
|
}
|
|
119
128
|
|
|
120
|
-
|
|
129
|
+
- (void)splitScreenControllerDidAppear:(RNSSplitScreenController *)controller
|
|
130
|
+
{
|
|
131
|
+
[_reactEventEmitter emitOnDidAppear];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
- (void)splitScreenControllerWillDisappear:(RNSSplitScreenController *)controller
|
|
135
|
+
{
|
|
136
|
+
[_reactEventEmitter emitOnWillDisappear];
|
|
137
|
+
}
|
|
121
138
|
|
|
122
|
-
- (
|
|
139
|
+
- (void)splitScreenControllerDidDisappear:(RNSSplitScreenController *)controller
|
|
123
140
|
{
|
|
124
|
-
|
|
125
|
-
return _reactEventEmitter;
|
|
141
|
+
[_reactEventEmitter emitOnDidDisappear];
|
|
126
142
|
}
|
|
127
143
|
|
|
128
144
|
#pragma mark - RNSSafeAreaProviding
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
@class RNSSplitScreenComponentView;
|
|
6
|
+
@class RNSSplitScreenController;
|
|
7
|
+
|
|
8
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @protocol RNSSplitScreenControllerDelegate
|
|
12
|
+
* @brief Receives layout and lifecycle notifications of a Split column from its controller.
|
|
13
|
+
*/
|
|
14
|
+
@protocol RNSSplitScreenControllerDelegate <NSObject>
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @brief Called whenever the column frame changes.
|
|
18
|
+
*
|
|
19
|
+
* @param frame The column frame in the coordinate space of the SplitHost controller's view, or the column view frame
|
|
20
|
+
* as is when the column is presented outside the SplitHost subtree (e.g. the inspector as a modal).
|
|
21
|
+
*/
|
|
22
|
+
- (void)splitScreenController:(RNSSplitScreenController *)controller didChangeColumnFrame:(CGRect)frame;
|
|
23
|
+
|
|
24
|
+
- (void)splitScreenControllerWillAppear:(RNSSplitScreenController *)controller;
|
|
25
|
+
- (void)splitScreenControllerDidAppear:(RNSSplitScreenController *)controller;
|
|
26
|
+
- (void)splitScreenControllerWillDisappear:(RNSSplitScreenController *)controller;
|
|
27
|
+
- (void)splitScreenControllerDidDisappear:(RNSSplitScreenController *)controller;
|
|
28
|
+
|
|
29
|
+
@end
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @class RNSSplitScreenController
|
|
33
|
+
* @brief A UIViewController subclass that manages a Split column in a UISplitViewController.
|
|
34
|
+
*
|
|
35
|
+
* It observes the column layout and lifecycle and reports them to its delegate.
|
|
36
|
+
*/
|
|
37
|
+
@interface RNSSplitScreenController : UIViewController
|
|
38
|
+
|
|
39
|
+
@property (nonatomic, weak, nullable) id<RNSSplitScreenControllerDelegate> delegate;
|
|
40
|
+
|
|
41
|
+
- (instancetype)initWithSplitScreenComponentView:(RNSSplitScreenComponentView *)splitScreenComponentView;
|
|
42
|
+
|
|
43
|
+
#pragma mark - Signals
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @brief Determines if this controller is nested inside a SplitHost hierarchy.
|
|
47
|
+
*
|
|
48
|
+
* Used to differentiate between screens embedded in the native host and modal presentations.
|
|
49
|
+
*
|
|
50
|
+
* @return true if inside RNSSplitHostController, false otherwise.
|
|
51
|
+
*/
|
|
52
|
+
- (BOOL)isInSplitHostSubtree;
|
|
53
|
+
|
|
54
|
+
- (void)setNeedsLifecycleStateUpdate;
|
|
55
|
+
|
|
56
|
+
#pragma mark - Layout
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @brief Reports the column frame change after the Split repositioned its columns.
|
|
60
|
+
*
|
|
61
|
+
* @param splitViewController The UISplitViewController whose layout positioning changed, represented by
|
|
62
|
+
* RNSSplitHostController.
|
|
63
|
+
*/
|
|
64
|
+
- (void)columnPositioningDidChangeInSplitViewController:(UISplitViewController *)splitViewController;
|
|
65
|
+
|
|
66
|
+
@end
|
|
67
|
+
|
|
68
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#import "RNSSplitScreenController.h"
|
|
2
|
+
|
|
3
|
+
#import <React/RCTAssert.h>
|
|
4
|
+
#import "RNSSplitHostComponentView.h"
|
|
5
|
+
#import "RNSSplitHostController.h"
|
|
6
|
+
#import "RNSSplitScreenComponentView.h"
|
|
7
|
+
|
|
8
|
+
@implementation RNSSplitScreenController {
|
|
9
|
+
RNSSplitScreenComponentView *_splitScreenComponentView;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
- (instancetype)initWithSplitScreenComponentView:(RNSSplitScreenComponentView *)splitScreenComponentView
|
|
13
|
+
{
|
|
14
|
+
if (self = [super init]) {
|
|
15
|
+
_splitScreenComponentView = splitScreenComponentView;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return self;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @brief Searching for the SplitHost controller
|
|
23
|
+
*
|
|
24
|
+
* It checks whether the parent controller is our host controller.
|
|
25
|
+
* If we're outside the structure, e. g. for inspector represented as a modal,
|
|
26
|
+
* we're searching for that controller using a reference that Screen keeps for Host component view.
|
|
27
|
+
*
|
|
28
|
+
* @return If found - a RNSSplitHostController instance, otherwise nil.
|
|
29
|
+
*/
|
|
30
|
+
- (nullable RNSSplitHostController *)findSplitHostController
|
|
31
|
+
{
|
|
32
|
+
if ([self.splitViewController isKindOfClass:RNSSplitHostController.class]) {
|
|
33
|
+
return (RNSSplitHostController *)self.splitViewController;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
RNSSplitHostComponentView *splitHost = _splitScreenComponentView.splitHost;
|
|
37
|
+
if (splitHost != nil) {
|
|
38
|
+
return splitHost.splitHostController;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return nil;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
- (BOOL)isInSplitHostSubtree
|
|
45
|
+
{
|
|
46
|
+
return [self.splitViewController isKindOfClass:RNSSplitHostController.class];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
#pragma mark - Signals
|
|
50
|
+
|
|
51
|
+
- (void)setNeedsLifecycleStateUpdate
|
|
52
|
+
{
|
|
53
|
+
[[self findSplitHostController] setNeedsUpdateOfChildViewControllers];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
#pragma mark - Layout
|
|
57
|
+
|
|
58
|
+
- (void)viewDidLayoutSubviews
|
|
59
|
+
{
|
|
60
|
+
[super viewDidLayoutSubviews];
|
|
61
|
+
|
|
62
|
+
// For modals, which are presented outside the SplitHost subtree (and RN hierarchy),
|
|
63
|
+
// we're attaching our touch handler and we don't need to apply any offset corrections,
|
|
64
|
+
// because it's positioned relatively to our RNSSplitScreenComponentView
|
|
65
|
+
if (![self isInSplitHostSubtree]) {
|
|
66
|
+
[_delegate splitScreenController:self didChangeColumnFrame:self.view.frame];
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
UIView *ancestorView = [self findSplitHostController].view;
|
|
71
|
+
RCTAssert(ancestorView != nil, @"[RNScreens] Expected to find RNSSplitHost component for RNSSplitScreen component");
|
|
72
|
+
|
|
73
|
+
[self reportColumnFrameInContextOfView:ancestorView];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
- (void)columnPositioningDidChangeInSplitViewController:(UISplitViewController *)splitViewController
|
|
77
|
+
{
|
|
78
|
+
[self reportColumnFrameInContextOfView:splitViewController.view];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
- (void)reportColumnFrameInContextOfView:(UIView *)ancestorView
|
|
82
|
+
{
|
|
83
|
+
CGRect frame = [self.view convertRect:self.view.frame toView:ancestorView];
|
|
84
|
+
[_delegate splitScreenController:self didChangeColumnFrame:frame];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
#pragma mark - Events
|
|
88
|
+
|
|
89
|
+
- (void)viewWillAppear:(BOOL)animated
|
|
90
|
+
{
|
|
91
|
+
[super viewWillAppear:animated];
|
|
92
|
+
[_delegate splitScreenControllerWillAppear:self];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
- (void)viewDidAppear:(BOOL)animated
|
|
96
|
+
{
|
|
97
|
+
[super viewDidAppear:animated];
|
|
98
|
+
[_delegate splitScreenControllerDidAppear:self];
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
- (void)viewWillDisappear:(BOOL)animated
|
|
102
|
+
{
|
|
103
|
+
[super viewWillDisappear:animated];
|
|
104
|
+
[_delegate splitScreenControllerWillDisappear:self];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
- (void)viewDidDisappear:(BOOL)animated
|
|
108
|
+
{
|
|
109
|
+
[super viewDidDisappear:animated];
|
|
110
|
+
[_delegate splitScreenControllerDidDisappear:self];
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#import <Foundation/Foundation.h>
|
|
4
|
+
#import <UIKit/UIKit.h>
|
|
4
5
|
|
|
5
6
|
#if defined(__cplusplus)
|
|
6
7
|
#import <react/renderer/core/State.h>
|
|
@@ -10,8 +11,6 @@ namespace react = facebook::react;
|
|
|
10
11
|
|
|
11
12
|
NS_ASSUME_NONNULL_BEGIN
|
|
12
13
|
|
|
13
|
-
@class RNSSplitScreenComponentView;
|
|
14
|
-
|
|
15
14
|
/**
|
|
16
15
|
* @class RNSSplitScreenShadowStateProxy
|
|
17
16
|
* @brief Manages communication between native UIView layout and associated React Native ShadowNode state.
|
|
@@ -21,44 +20,6 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
21
20
|
*/
|
|
22
21
|
@interface RNSSplitScreenShadowStateProxy : NSObject
|
|
23
22
|
|
|
24
|
-
/**
|
|
25
|
-
* @brief Triggers a shadow state update for the given SplitScreen component.
|
|
26
|
-
*
|
|
27
|
-
* Internally uses the component’s frame in UIWindow coordinates to update the Shadow Tree state.
|
|
28
|
-
*
|
|
29
|
-
* @param screenComponentView An instance of RNSSplitScreenComponentView whose state should be updated.
|
|
30
|
-
*/
|
|
31
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @brief Triggers a shadow state update for the given SplitScreen component in the context of a given ancestor
|
|
35
|
-
* view.
|
|
36
|
-
*
|
|
37
|
-
* Converts the split view screen's local frame to coordinates of the specified ancestor view
|
|
38
|
-
* before applying the update to the Shadow Tree. If the ancestor haven't been defined frame is calculated relatively to
|
|
39
|
-
* the UIWindow.
|
|
40
|
-
*
|
|
41
|
-
* @param screenComponentView An instance of RNSSplitScreenComponentView whose state should be updated.
|
|
42
|
-
* @param ancestorView An optional UIView in whose coordinate space the frame should be computed.
|
|
43
|
-
*/
|
|
44
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
45
|
-
inContextOfAncestorView:(UIView *_Nullable)ancestorView;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @brief Send an update to ShadowNode state with given frame if needed.
|
|
49
|
-
*
|
|
50
|
-
* Converts the frame to coordinates of the specified ancestor view,
|
|
51
|
-
* before applying the update to the Shadow Tree.
|
|
52
|
-
*
|
|
53
|
-
* @param screenComponentView an instance of RNSSplitScreenComponentView whose state should be updated,
|
|
54
|
-
* @param frame frame to update the shadow state with; it must be in coordinate system of `screenComponentView`,
|
|
55
|
-
* @param ancestorView coordinate-system provider view, relative to which the frame should be converted before sending
|
|
56
|
-
* the update.
|
|
57
|
-
*/
|
|
58
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
59
|
-
withFrame:(CGRect)frame
|
|
60
|
-
inContextOfAncestorView:(nonnull UIView *)ancestorView;
|
|
61
|
-
|
|
62
23
|
/**
|
|
63
24
|
* @brief Send an update to ShadowNode state with given layout metrics.
|
|
64
25
|
*
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
#import "RNSSplitScreenShadowStateProxy.h"
|
|
2
|
-
#import "RNSSplitScreenComponentView.h"
|
|
3
2
|
|
|
4
3
|
#import <React/RCTAssert.h>
|
|
5
4
|
#import <React/RCTConversions.h>
|
|
6
|
-
#import <rnscreens/RNSSplitScreenShadowNode.h>
|
|
5
|
+
#import <react/renderer/components/rnscreens/RNSSplitScreenShadowNode.h>
|
|
7
6
|
|
|
8
7
|
namespace react = facebook::react;
|
|
9
8
|
|
|
@@ -21,21 +20,6 @@ namespace react = facebook::react;
|
|
|
21
20
|
return self;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
25
|
-
{
|
|
26
|
-
[self updateShadowStateOfComponent:screenComponentView inContextOfAncestorView:nil];
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
30
|
-
inContextOfAncestorView:(UIView *_Nullable)ancestorView
|
|
31
|
-
{
|
|
32
|
-
CGRect frame = screenComponentView.frame;
|
|
33
|
-
if (ancestorView != nil) {
|
|
34
|
-
frame = [screenComponentView convertRect:frame toView:ancestorView];
|
|
35
|
-
}
|
|
36
|
-
[self updateShadowStateWithFrame:frame];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
23
|
- (void)updateShadowStateWithFrame:(CGRect)frame
|
|
40
24
|
{
|
|
41
25
|
if (_state == nullptr) {
|
|
@@ -50,15 +34,6 @@ namespace react = facebook::react;
|
|
|
50
34
|
}
|
|
51
35
|
}
|
|
52
36
|
|
|
53
|
-
- (void)updateShadowStateOfComponent:(RNSSplitScreenComponentView *)screenComponentView
|
|
54
|
-
withFrame:(CGRect)frame
|
|
55
|
-
inContextOfAncestorView:(nonnull UIView *)ancestorView
|
|
56
|
-
{
|
|
57
|
-
RCTAssert(ancestorView != nil, @"[RNScreens] ancestorView must not be nil");
|
|
58
|
-
CGRect convertedFrame = [screenComponentView convertRect:frame toView:ancestorView];
|
|
59
|
-
[self updateShadowStateWithFrame:convertedFrame];
|
|
60
|
-
}
|
|
61
|
-
|
|
62
37
|
- (void)updateState:(react::State::Shared const &)state oldState:(react::State::Shared const &)oldState
|
|
63
38
|
{
|
|
64
39
|
_state = std::static_pointer_cast<const react::RNSSplitScreenShadowNode::ConcreteState>(state);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(__cplusplus)
|
|
4
|
+
|
|
5
|
+
#import <UIKit/UIKit.h>
|
|
6
|
+
#import <react/renderer/components/rnscreens/Props.h>
|
|
7
|
+
#import <optional>
|
|
8
|
+
#import <string>
|
|
9
|
+
#import "RNSEnums.h"
|
|
10
|
+
|
|
11
|
+
namespace rnscreens::conversion {
|
|
12
|
+
|
|
13
|
+
namespace react = facebook::react;
|
|
14
|
+
|
|
15
|
+
#pragma mark SplitHost props
|
|
16
|
+
|
|
17
|
+
UISplitViewControllerSplitBehavior SplitViewPreferredSplitBehaviorFromHostProp(
|
|
18
|
+
react::RNSSplitHostPreferredSplitBehavior behavior);
|
|
19
|
+
|
|
20
|
+
UISplitViewControllerPrimaryEdge SplitViewPrimaryEdgeFromHostProp(
|
|
21
|
+
react::RNSSplitHostPrimaryEdge primaryEdge);
|
|
22
|
+
|
|
23
|
+
UISplitViewControllerDisplayMode SplitViewPreferredDisplayModeFromHostProp(
|
|
24
|
+
react::RNSSplitHostPreferredDisplayMode displayMode);
|
|
25
|
+
|
|
26
|
+
#if !TARGET_OS_TV
|
|
27
|
+
UISplitViewControllerBackgroundStyle
|
|
28
|
+
SplitViewPrimaryBackgroundStyleFromHostProp(
|
|
29
|
+
react::RNSSplitHostPrimaryBackgroundStyle primaryBackgroundStyle);
|
|
30
|
+
#endif // !TARGET_OS_TV
|
|
31
|
+
|
|
32
|
+
UISplitViewControllerDisplayModeButtonVisibility
|
|
33
|
+
SplitViewDisplayModeButtonVisibilityFromHostProp(
|
|
34
|
+
react::RNSSplitHostDisplayModeButtonVisibility displayModeButtonVisibility);
|
|
35
|
+
|
|
36
|
+
std::string UISplitViewControllerDisplayModeToString(
|
|
37
|
+
UISplitViewControllerDisplayMode displayMode);
|
|
38
|
+
|
|
39
|
+
std::optional<UISplitViewControllerColumn>
|
|
40
|
+
SplitViewTopColumnForCollapsingFromHostProp(
|
|
41
|
+
react::RNSSplitHostTopColumnForCollapsing topColumnForCollapsing);
|
|
42
|
+
|
|
43
|
+
RNSOrientation RNSOrientationFromRNSSplitHostOrientation(
|
|
44
|
+
react::RNSSplitHostOrientation orientation);
|
|
45
|
+
|
|
46
|
+
UIUserInterfaceStyle UIUserInterfaceStyleFromHostProp(
|
|
47
|
+
react::RNSSplitHostColorScheme colorScheme);
|
|
48
|
+
|
|
49
|
+
#pragma mark SplitScreen props
|
|
50
|
+
|
|
51
|
+
RNSSplitScreenColumnType RNSSplitScreenColumnTypeFromScreenProp(
|
|
52
|
+
react::RNSSplitScreenColumnType columnType);
|
|
53
|
+
|
|
54
|
+
}; // namespace rnscreens::conversion
|
|
55
|
+
|
|
56
|
+
#endif // defined(__cplusplus)
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
#import "RNSConversions.h"
|
|
1
|
+
#import "RNSConversions-SplitView.h"
|
|
2
|
+
#import <React/RCTLog.h>
|
|
2
3
|
|
|
3
4
|
namespace rnscreens::conversion {
|
|
4
5
|
|
|
6
|
+
namespace react = facebook::react;
|
|
7
|
+
|
|
5
8
|
#pragma mark SplitHost props
|
|
6
9
|
|
|
7
10
|
UISplitViewControllerSplitBehavior SplitViewPreferredSplitBehaviorFromHostProp(
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(__cplusplus)
|
|
4
|
+
|
|
5
|
+
#import <react/renderer/components/rnscreens/Props.h>
|
|
6
|
+
#import "RNSHeaderItemPlacement.h"
|
|
7
|
+
#import "RNSHeaderItemSpacerPlacement.h"
|
|
8
|
+
#import "RNSStackScreenComponentView.h"
|
|
9
|
+
|
|
10
|
+
namespace rnscreens::conversion {
|
|
11
|
+
|
|
12
|
+
namespace react = facebook::react;
|
|
13
|
+
|
|
14
|
+
RNSStackScreenActivityMode
|
|
15
|
+
RNSStackScreenActivityModeFromReactRNSStackScreenActivityMode(
|
|
16
|
+
react::RNSStackScreenActivityMode mode);
|
|
17
|
+
|
|
18
|
+
RNSHeaderItemPlacement
|
|
19
|
+
RNSHeaderItemPlacementFromReactRNSStackHeaderItemIOSPlacement(
|
|
20
|
+
react::RNSStackHeaderItemIOSPlacement placement);
|
|
21
|
+
|
|
22
|
+
RNSHeaderItemSpacerPlacement
|
|
23
|
+
RNSHeaderItemSpacerPlacementFromReactRNSStackHeaderItemSpacerIOSPlacement(
|
|
24
|
+
react::RNSStackHeaderItemSpacerIOSPlacement placement);
|
|
25
|
+
|
|
26
|
+
UINavigationItemBackButtonDisplayMode
|
|
27
|
+
UINavigationItemBackButtonDisplayModeFromReactRNSStackHeaderConfigIOSBackButtonDisplayMode(
|
|
28
|
+
react::RNSStackHeaderConfigIOSBackButtonDisplayMode displayMode);
|
|
29
|
+
|
|
30
|
+
}; // namespace rnscreens::conversion
|
|
31
|
+
|
|
32
|
+
#endif // defined(__cplusplus)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#import "RNSConversions-Stack.h"
|
|
2
|
+
|
|
3
|
+
namespace rnscreens::conversion {
|
|
4
|
+
|
|
5
|
+
namespace react = facebook::react;
|
|
6
|
+
|
|
7
|
+
RNSStackScreenActivityMode RNSStackScreenActivityModeFromReactRNSStackScreenActivityMode(
|
|
8
|
+
react::RNSStackScreenActivityMode mode)
|
|
9
|
+
{
|
|
10
|
+
return static_cast<RNSStackScreenActivityMode>(mode);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
RNSHeaderItemPlacement RNSHeaderItemPlacementFromReactRNSStackHeaderItemIOSPlacement(
|
|
14
|
+
react::RNSStackHeaderItemIOSPlacement placement)
|
|
15
|
+
{
|
|
16
|
+
switch (placement) {
|
|
17
|
+
case react::RNSStackHeaderItemIOSPlacement::Leading:
|
|
18
|
+
return RNSHeaderItemPlacementLeading;
|
|
19
|
+
case react::RNSStackHeaderItemIOSPlacement::Trailing:
|
|
20
|
+
return RNSHeaderItemPlacementTrailing;
|
|
21
|
+
case react::RNSStackHeaderItemIOSPlacement::Title:
|
|
22
|
+
return RNSHeaderItemPlacementTitle;
|
|
23
|
+
case react::RNSStackHeaderItemIOSPlacement::Subtitle:
|
|
24
|
+
return RNSHeaderItemPlacementSubtitle;
|
|
25
|
+
case react::RNSStackHeaderItemIOSPlacement::LargeSubtitle:
|
|
26
|
+
return RNSHeaderItemPlacementLargeSubtitle;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
RNSHeaderItemSpacerPlacement RNSHeaderItemSpacerPlacementFromReactRNSStackHeaderItemSpacerIOSPlacement(
|
|
31
|
+
react::RNSStackHeaderItemSpacerIOSPlacement placement)
|
|
32
|
+
{
|
|
33
|
+
switch (placement) {
|
|
34
|
+
case react::RNSStackHeaderItemSpacerIOSPlacement::Leading:
|
|
35
|
+
return RNSHeaderItemSpacerPlacementLeading;
|
|
36
|
+
case react::RNSStackHeaderItemSpacerIOSPlacement::Trailing:
|
|
37
|
+
return RNSHeaderItemSpacerPlacementTrailing;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
UINavigationItemBackButtonDisplayMode
|
|
42
|
+
UINavigationItemBackButtonDisplayModeFromReactRNSStackHeaderConfigIOSBackButtonDisplayMode(
|
|
43
|
+
react::RNSStackHeaderConfigIOSBackButtonDisplayMode displayMode)
|
|
44
|
+
{
|
|
45
|
+
switch (displayMode) {
|
|
46
|
+
case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Default:
|
|
47
|
+
return UINavigationItemBackButtonDisplayModeDefault;
|
|
48
|
+
case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Generic:
|
|
49
|
+
return UINavigationItemBackButtonDisplayModeGeneric;
|
|
50
|
+
case react::RNSStackHeaderConfigIOSBackButtonDisplayMode::Minimal:
|
|
51
|
+
return UINavigationItemBackButtonDisplayModeMinimal;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
}; // namespace rnscreens::conversion
|