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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#import "RNSStackScreenHeaderCoordinator.h"
|
|
2
|
-
#import
|
|
2
|
+
#import <React/RCTAssert.h>
|
|
3
|
+
#import <React/RCTLog.h>
|
|
3
4
|
#import "RNSDefines.h"
|
|
4
5
|
#import "RNSStackHeaderContentFactory.h"
|
|
5
6
|
#import "RNSStackHeaderItemDataProviding.h"
|
|
@@ -10,11 +11,17 @@
|
|
|
10
11
|
#import "RNSStackNavigationBarCoordinator.h"
|
|
11
12
|
#import "RNSStackNavigationController.h"
|
|
12
13
|
#import "RNSStackScreenController.h"
|
|
13
|
-
#import "React/RCTLog.h"
|
|
14
14
|
|
|
15
15
|
@implementation RNSStackScreenHeaderCoordinator {
|
|
16
16
|
__weak RNSStackScreenController *_Nullable _screenController;
|
|
17
17
|
|
|
18
|
+
#if !TARGET_OS_TV
|
|
19
|
+
// Navigation item of the screen below, onto which the back button
|
|
20
|
+
// configuration has been applied. Kept so that the configuration can be
|
|
21
|
+
// cleared when the owning screen is popped from the stack.
|
|
22
|
+
__weak UINavigationItem *_Nullable _backButtonConfigTargetItem;
|
|
23
|
+
#endif // !TARGET_OS_TV
|
|
24
|
+
|
|
18
25
|
RNSStackHeaderMenuTrackerRegistry *_Nonnull _trackerRegistry;
|
|
19
26
|
|
|
20
27
|
NSMutableArray<UIBarButtonItem *> *_Nonnull _leadingBarButtonItems;
|
|
@@ -36,6 +43,17 @@
|
|
|
36
43
|
|
|
37
44
|
#pragma mark - Public
|
|
38
45
|
|
|
46
|
+
- (void)updateNavigationBarVisibilityAnimated:(BOOL)animated
|
|
47
|
+
{
|
|
48
|
+
RNSStackNavigationController *navController = [self getNavigationController];
|
|
49
|
+
if (navController == nil || navController.topViewController != _screenController) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
BOOL hidden = _configDataProvider == nil || _configDataProvider.hidden;
|
|
54
|
+
[navController.navigationBarCoordinator setHidden:hidden forNavigationController:navController animated:animated];
|
|
55
|
+
}
|
|
56
|
+
|
|
39
57
|
- (void)rebuild
|
|
40
58
|
{
|
|
41
59
|
if (_configDataProvider == nil) {
|
|
@@ -103,7 +121,11 @@
|
|
|
103
121
|
largeSubtitleView:largeSubtitleView
|
|
104
122
|
forController:controller];
|
|
105
123
|
|
|
106
|
-
[self
|
|
124
|
+
[self applyTitleMenuForController:controller];
|
|
125
|
+
[self updateNavigationBarVisibilityAnimated:YES];
|
|
126
|
+
#if !TARGET_OS_TV
|
|
127
|
+
[self updateBackButtonMenuEnabled];
|
|
128
|
+
#endif // !TARGET_OS_TV
|
|
107
129
|
}
|
|
108
130
|
|
|
109
131
|
- (void)applyConfigProperties
|
|
@@ -113,8 +135,24 @@
|
|
|
113
135
|
}
|
|
114
136
|
|
|
115
137
|
[self applyConfigPropertiesForController:[self requireScreenController]];
|
|
116
|
-
[self
|
|
138
|
+
[self updateNavigationBarVisibilityAnimated:YES];
|
|
139
|
+
#if !TARGET_OS_TV
|
|
140
|
+
[self updateBackButtonMenuEnabled];
|
|
141
|
+
#endif // !TARGET_OS_TV
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
#if !TARGET_OS_TV
|
|
145
|
+
- (void)updateBackButtonMenuEnabled
|
|
146
|
+
{
|
|
147
|
+
RNSStackNavigationController *navController = [self getNavigationController];
|
|
148
|
+
if (navController == nil || navController.topViewController != _screenController) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
BOOL enabled = _configDataProvider == nil || _configDataProvider.backButtonMenuEnabled;
|
|
153
|
+
[navController.navigationBarCoordinator setBackButtonMenuEnabled:enabled forNavigationController:navController];
|
|
117
154
|
}
|
|
155
|
+
#endif // !TARGET_OS_TV
|
|
118
156
|
|
|
119
157
|
/**
|
|
120
158
|
Rebuilds an existing item: sets all props and applies the menu config.
|
|
@@ -200,28 +238,37 @@
|
|
|
200
238
|
}
|
|
201
239
|
}
|
|
202
240
|
|
|
241
|
+
- (void)reapplyTitleMenu
|
|
242
|
+
{
|
|
243
|
+
if (_configDataProvider == nil) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
[self applyTitleMenuForController:[self requireScreenController]];
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
- (void)resetTitleMenuTracker
|
|
250
|
+
{
|
|
251
|
+
[_trackerRegistry resetTrackerForItemId:RNSTitleMenuTrackerItemId];
|
|
252
|
+
}
|
|
253
|
+
|
|
203
254
|
- (void)setToggleState:(BOOL)state
|
|
204
255
|
forMenuElementId:(NSString *)elementId
|
|
205
|
-
|
|
256
|
+
trackerItemId:(NSString *)trackerItemId
|
|
257
|
+
rootMenu:(RNSStackHeaderMenuData *)rootMenu
|
|
206
258
|
parentMenu:(nullable RNSStackHeaderMenuData *)parentMenu
|
|
207
259
|
{
|
|
208
|
-
if (_configDataProvider == nil || elementId == nil ||
|
|
260
|
+
if (_configDataProvider == nil || elementId == nil || trackerItemId == nil || rootMenu == nil) {
|
|
209
261
|
return;
|
|
210
262
|
}
|
|
211
263
|
|
|
212
|
-
RNSStackHeaderMenuToggleStateTracker *tracker = [_trackerRegistry trackerForItemId:
|
|
264
|
+
RNSStackHeaderMenuToggleStateTracker *tracker = [_trackerRegistry trackerForItemId:trackerItemId];
|
|
213
265
|
|
|
214
266
|
if ([tracker toggleStateEquals:state forItemWithId:elementId]) {
|
|
215
267
|
return;
|
|
216
268
|
}
|
|
217
269
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
RNSStackHeaderMenuData *singleSelectionRoot =
|
|
224
|
-
[RNSStackHeaderMenuFinder singleSelectionRootForElementWithId:elementId inMenu:item.menu];
|
|
270
|
+
RNSStackHeaderMenuData *singleSelectionRoot = [RNSStackHeaderMenuFinder singleSelectionRootForElementWithId:elementId
|
|
271
|
+
inMenu:rootMenu];
|
|
225
272
|
|
|
226
273
|
NSString *eventMenuId = nil;
|
|
227
274
|
NSArray<NSString *> *toggleIds = nil;
|
|
@@ -256,6 +303,7 @@
|
|
|
256
303
|
_configDataProvider = nil;
|
|
257
304
|
_frameChangeDelegate = nil;
|
|
258
305
|
_eventsDelegate = nil;
|
|
306
|
+
_imageLoader = nil;
|
|
259
307
|
|
|
260
308
|
[_leadingBarButtonItems removeAllObjects];
|
|
261
309
|
[_trailingBarButtonItems removeAllObjects];
|
|
@@ -267,9 +315,17 @@
|
|
|
267
315
|
|
|
268
316
|
navItem.title = nil;
|
|
269
317
|
navItem.titleView = nil;
|
|
318
|
+
navItem.standardAppearance = nil;
|
|
319
|
+
navItem.scrollEdgeAppearance = nil;
|
|
270
320
|
[navItem setLeftBarButtonItems:@[] animated:YES];
|
|
271
321
|
[navItem setRightBarButtonItems:@[] animated:YES];
|
|
272
322
|
|
|
323
|
+
#if !TARGET_OS_TV
|
|
324
|
+
if (@available(iOS 16.0, *)) {
|
|
325
|
+
navItem.titleMenuProvider = nil;
|
|
326
|
+
}
|
|
327
|
+
#endif // !TARGET_OS_TV
|
|
328
|
+
|
|
273
329
|
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
274
330
|
if (@available(iOS 26.0, *)) {
|
|
275
331
|
navItem.subtitle = nil;
|
|
@@ -281,13 +337,16 @@
|
|
|
281
337
|
#endif // RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
282
338
|
|
|
283
339
|
#if !TARGET_OS_TV
|
|
340
|
+
navItem.prompt = nil;
|
|
284
341
|
navItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
|
|
342
|
+
|
|
343
|
+
[self clearAppliedBackButtonConfig];
|
|
285
344
|
#endif // !TARGET_OS_TV
|
|
286
345
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
346
|
+
[self updateNavigationBarVisibilityAnimated:YES];
|
|
347
|
+
#if !TARGET_OS_TV
|
|
348
|
+
[self updateBackButtonMenuEnabled];
|
|
349
|
+
#endif // !TARGET_OS_TV
|
|
291
350
|
}
|
|
292
351
|
|
|
293
352
|
/**
|
|
@@ -361,21 +420,25 @@
|
|
|
361
420
|
return (RNSStackNavigationController *)navController;
|
|
362
421
|
}
|
|
363
422
|
|
|
364
|
-
- (void)applyNavigationBarProperties
|
|
365
|
-
{
|
|
366
|
-
RNSStackNavigationController *navController = [self getNavigationController];
|
|
367
|
-
if (navController != nil) {
|
|
368
|
-
[navController.navigationBarCoordinator setHidden:_configDataProvider.hidden
|
|
369
|
-
forNavigationController:navController
|
|
370
|
-
animated:YES];
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
|
|
374
423
|
- (void)applyConfigPropertiesForController:(RNSStackScreenController *)controller
|
|
375
424
|
{
|
|
376
425
|
UINavigationItem *navItem = controller.navigationItem;
|
|
377
426
|
|
|
378
427
|
navItem.title = _configDataProvider.title;
|
|
428
|
+
navItem.standardAppearance = _configDataProvider.standardAppearance;
|
|
429
|
+
navItem.scrollEdgeAppearance = _configDataProvider.scrollEdgeAppearance;
|
|
430
|
+
|
|
431
|
+
#if !TARGET_OS_TV
|
|
432
|
+
NSString *prompt = _configDataProvider.prompt;
|
|
433
|
+
if (navItem.prompt != prompt && ![navItem.prompt isEqualToString:prompt]) {
|
|
434
|
+
navItem.prompt = prompt;
|
|
435
|
+
// UIKit does not resize an already visible navigation bar when the prompt
|
|
436
|
+
// of its navigation item changes - request layout explicitly.
|
|
437
|
+
[controller.navigationController.view setNeedsLayout];
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
[self applyBackButtonConfigForController:controller];
|
|
441
|
+
#endif // !TARGET_OS_TV
|
|
379
442
|
|
|
380
443
|
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
381
444
|
if (@available(iOS 26.0, *)) {
|
|
@@ -391,6 +454,32 @@
|
|
|
391
454
|
#endif // !TARGET_OS_TV
|
|
392
455
|
}
|
|
393
456
|
|
|
457
|
+
#if !TARGET_OS_TV
|
|
458
|
+
- (void)applyBackButtonConfigForController:(RNSStackScreenController *)controller
|
|
459
|
+
{
|
|
460
|
+
NSArray<UIViewController *> *viewControllers = controller.navigationController.viewControllers;
|
|
461
|
+
NSUInteger index = [viewControllers indexOfObject:controller];
|
|
462
|
+
if (index == NSNotFound || index == 0) {
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
UINavigationItem *prevItem = viewControllers[index - 1].navigationItem;
|
|
467
|
+
_backButtonConfigTargetItem = prevItem;
|
|
468
|
+
prevItem.backButtonTitle = _configDataProvider.backButtonTitle;
|
|
469
|
+
prevItem.backButtonDisplayMode = _configDataProvider.backButtonDisplayMode;
|
|
470
|
+
}
|
|
471
|
+
#endif // !TARGET_OS_TV
|
|
472
|
+
|
|
473
|
+
#if !TARGET_OS_TV
|
|
474
|
+
- (void)clearAppliedBackButtonConfig
|
|
475
|
+
{
|
|
476
|
+
UINavigationItem *targetItem = _backButtonConfigTargetItem;
|
|
477
|
+
_backButtonConfigTargetItem = nil;
|
|
478
|
+
targetItem.backButtonTitle = nil;
|
|
479
|
+
targetItem.backButtonDisplayMode = UINavigationItemBackButtonDisplayModeDefault;
|
|
480
|
+
}
|
|
481
|
+
#endif // !TARGET_OS_TV
|
|
482
|
+
|
|
394
483
|
- (void)applyItemsWithTitleView:(nullable UIView *)titleView
|
|
395
484
|
subtitleView:(nullable UIView *)subtitleView
|
|
396
485
|
largeSubtitleView:(nullable UIView *)largeSubtitleView
|
|
@@ -415,6 +504,39 @@
|
|
|
415
504
|
#endif // RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
416
505
|
}
|
|
417
506
|
|
|
507
|
+
- (void)applyTitleMenuForController:(RNSStackScreenController *)controller
|
|
508
|
+
{
|
|
509
|
+
#if !TARGET_OS_TV
|
|
510
|
+
if (@available(iOS 16.0, *)) {
|
|
511
|
+
RNSStackHeaderMenuData *titleMenuData = _configDataProvider.titleMenu;
|
|
512
|
+
UINavigationItem *navItem = controller.navigationItem;
|
|
513
|
+
|
|
514
|
+
if (titleMenuData == nil) {
|
|
515
|
+
navItem.titleMenuProvider = nil;
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
RNSStackHeaderMenuToggleStateTracker *tracker = [_trackerRegistry trackerForItemId:RNSTitleMenuTrackerItemId];
|
|
520
|
+
__weak auto weakSelf = self;
|
|
521
|
+
__weak auto weakEventsDelegate = _eventsDelegate;
|
|
522
|
+
__weak auto weakImageLoader = _imageLoader;
|
|
523
|
+
|
|
524
|
+
navItem.titleMenuProvider = ^UIMenu *(NSArray<UIMenuElement *> *suggestedActions) {
|
|
525
|
+
if (weakEventsDelegate == nil || weakImageLoader == nil) {
|
|
526
|
+
return nil;
|
|
527
|
+
}
|
|
528
|
+
return [RNSStackHeaderMenuCoordinator buildUIMenuFromData:titleMenuData
|
|
529
|
+
withHeaderEventsDelegate:weakEventsDelegate
|
|
530
|
+
stateTracker:tracker
|
|
531
|
+
withImageLoader:weakImageLoader
|
|
532
|
+
menuInvalidatedCallback:^{
|
|
533
|
+
[weakSelf reapplyTitleMenu];
|
|
534
|
+
}];
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
#endif // !TARGET_OS_TV
|
|
538
|
+
}
|
|
539
|
+
|
|
418
540
|
- (UIBarButtonItem *)buildBarButtonItemForItem:(id<RNSStackHeaderItemDataProviding>)item
|
|
419
541
|
{
|
|
420
542
|
UIBarButtonItem *barButtonItem = [RNSStackHeaderContentFactory barButtonItemForHeaderItem:item
|
|
@@ -422,6 +544,15 @@
|
|
|
422
544
|
withHeaderEventsDelegate:_eventsDelegate
|
|
423
545
|
withImageLoader:_imageLoader];
|
|
424
546
|
|
|
547
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
548
|
+
if (@available(iOS 26.0, *)) {
|
|
549
|
+
if (item.identifier != nil) {
|
|
550
|
+
barButtonItem.identifier = item.identifier;
|
|
551
|
+
}
|
|
552
|
+
barButtonItem.hidesSharedBackground = item.hidesSharedBackground;
|
|
553
|
+
}
|
|
554
|
+
#endif // RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
555
|
+
|
|
425
556
|
if (item.menu != nil && item.itemId != nil) {
|
|
426
557
|
RNSStackHeaderMenuToggleStateTracker *tracker = [_trackerRegistry trackerForItemId:item.itemId];
|
|
427
558
|
__weak auto weakSelf = self;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
#import "RNSTabBarAppearanceCoordinator.h"
|
|
2
2
|
#import <React/RCTFont.h>
|
|
3
3
|
#import <React/RCTImageLoader.h>
|
|
4
|
+
#import <React/RCTLog.h>
|
|
4
5
|
#import "RCTConvert+RNSTabs.h"
|
|
5
|
-
#import "RNSConversions.h"
|
|
6
|
+
#import "RNSConversions-Tabs.h"
|
|
6
7
|
#import "RNSImageLoadingHelper.h"
|
|
7
8
|
#import "RNSTabBarController.h"
|
|
8
9
|
#import "RNSTabsHostComponentView.h"
|
|
@@ -62,30 +63,60 @@
|
|
|
62
63
|
if (screenView.iconType == RNSTabsIconTypeSfSymbol || screenView.iconType == RNSTabsIconTypeXcasset) {
|
|
63
64
|
if (screenView.iconResourceName != nil) {
|
|
64
65
|
if (screenView.iconType == RNSTabsIconTypeSfSymbol) {
|
|
65
|
-
|
|
66
|
+
UIImage *image = [UIImage systemImageNamed:screenView.iconResourceName];
|
|
67
|
+
if (image == nil) {
|
|
68
|
+
RCTLogWarn(@"[RNScreens] Failed to load SF Symbol \"%@\" for tab bar item", screenView.iconResourceName);
|
|
69
|
+
}
|
|
70
|
+
tabBarItem.image = image;
|
|
66
71
|
} else {
|
|
67
|
-
|
|
72
|
+
UIImage *image = [UIImage imageNamed:screenView.iconResourceName];
|
|
73
|
+
if (image == nil) {
|
|
74
|
+
RCTLogWarn(@"[RNScreens] Failed to load xcasset \"%@\" for tab bar item", screenView.iconResourceName);
|
|
75
|
+
}
|
|
76
|
+
tabBarItem.image = image;
|
|
68
77
|
}
|
|
69
78
|
} else if (screenView.systemItem != RNSTabsScreenSystemItemNone) {
|
|
70
79
|
// Restore default system item icon
|
|
71
|
-
UITabBarSystemItem systemItem =
|
|
80
|
+
std::optional<UITabBarSystemItem> systemItem =
|
|
72
81
|
rnscreens::conversion::RNSTabsScreenSystemItemToUITabBarSystemItem(screenView.systemItem);
|
|
73
|
-
|
|
82
|
+
if (!systemItem) {
|
|
83
|
+
RCTLogError(
|
|
84
|
+
@"[RNScreens] Conversion from tabs screen systemItem to UITabBarSystemItem failed for systemItem [%ld]",
|
|
85
|
+
(long)screenView.systemItem);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
tabBarItem.image = [[UITabBarItem alloc] initWithTabBarSystemItem:systemItem.value() tag:0].image;
|
|
74
89
|
} else {
|
|
75
90
|
tabBarItem.image = nil;
|
|
76
91
|
}
|
|
77
92
|
|
|
78
93
|
if (screenView.selectedIconResourceName != nil) {
|
|
79
94
|
if (screenView.iconType == RNSTabsIconTypeSfSymbol) {
|
|
80
|
-
|
|
95
|
+
UIImage *selectedImage = [UIImage systemImageNamed:screenView.selectedIconResourceName];
|
|
96
|
+
if (selectedImage == nil) {
|
|
97
|
+
RCTLogWarn(@"[RNScreens] Failed to load SF Symbol \"%@\" for selected tab bar item",
|
|
98
|
+
screenView.selectedIconResourceName);
|
|
99
|
+
}
|
|
100
|
+
tabBarItem.selectedImage = selectedImage;
|
|
81
101
|
} else {
|
|
82
|
-
|
|
102
|
+
UIImage *selectedImage = [UIImage imageNamed:screenView.selectedIconResourceName];
|
|
103
|
+
if (selectedImage == nil) {
|
|
104
|
+
RCTLogWarn(@"[RNScreens] Failed to load xcasset \"%@\" for selected tab bar item",
|
|
105
|
+
screenView.selectedIconResourceName);
|
|
106
|
+
}
|
|
107
|
+
tabBarItem.selectedImage = selectedImage;
|
|
83
108
|
}
|
|
84
109
|
} else if (screenView.systemItem != RNSTabsScreenSystemItemNone) {
|
|
85
110
|
// Restore default system item icon
|
|
86
|
-
UITabBarSystemItem systemItem =
|
|
111
|
+
std::optional<UITabBarSystemItem> systemItem =
|
|
87
112
|
rnscreens::conversion::RNSTabsScreenSystemItemToUITabBarSystemItem(screenView.systemItem);
|
|
88
|
-
|
|
113
|
+
if (!systemItem) {
|
|
114
|
+
RCTLogError(
|
|
115
|
+
@"[RNScreens] Conversion from tabs screen systemItem to UITabBarSystemItem failed for systemItem [%ld]",
|
|
116
|
+
(long)screenView.systemItem);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
tabBarItem.selectedImage = [[UITabBarItem alloc] initWithTabBarSystemItem:systemItem.value() tag:0].selectedImage;
|
|
89
120
|
} else {
|
|
90
121
|
tabBarItem.selectedImage = nil;
|
|
91
122
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
#import "RNSTabsHostComponentView.h"
|
|
6
6
|
|
|
7
7
|
#if defined(__cplusplus)
|
|
8
|
-
#import <rnscreens/RNSTabsBottomAccessoryComponentDescriptor.h>
|
|
8
|
+
#import <react/renderer/components/rnscreens/RNSTabsBottomAccessoryComponentDescriptor.h>
|
|
9
9
|
#endif // defined(__cplusplus)
|
|
10
10
|
|
|
11
11
|
NS_ASSUME_NONNULL_BEGIN
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
#if RNS_TABS_BOTTOM_ACCESSORY_AVAILABLE
|
|
6
6
|
|
|
7
|
-
#import <rnscreens/RNSTabsBottomAccessoryComponentDescriptor.h>
|
|
7
|
+
#import <react/renderer/components/rnscreens/RNSTabsBottomAccessoryComponentDescriptor.h>
|
|
8
8
|
|
|
9
9
|
namespace react = facebook::react;
|
|
10
10
|
|
|
@@ -32,6 +32,9 @@ namespace react = facebook::react;
|
|
|
32
32
|
|
|
33
33
|
- (void)initState
|
|
34
34
|
{
|
|
35
|
+
static const auto defaultProps = std::make_shared<const react::RNSTabsBottomAccessoryProps>();
|
|
36
|
+
_props = defaultProps;
|
|
37
|
+
|
|
35
38
|
#if RNS_TABS_BOTTOM_ACCESSORY_AVAILABLE
|
|
36
39
|
if (@available(iOS 26, *)) {
|
|
37
40
|
_helper = [[RNSTabsBottomAccessoryHelper alloc] initWithBottomAccessoryView:self];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#import "RNSTabsBottomAccessoryContentComponentView.h"
|
|
2
|
-
#import "RNSConversions.h"
|
|
2
|
+
#import "RNSConversions-Tabs.h"
|
|
3
3
|
#import "RNSTabsBottomAccessoryComponentView.h"
|
|
4
4
|
#import "RNSTabsBottomAccessoryHelper.h"
|
|
5
5
|
|
|
@@ -17,7 +17,10 @@ namespace react = facebook::react;
|
|
|
17
17
|
|
|
18
18
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
19
19
|
{
|
|
20
|
-
self = [super initWithFrame:frame]
|
|
20
|
+
if (self = [super initWithFrame:frame]) {
|
|
21
|
+
static const auto defaultProps = std::make_shared<const react::RNSTabsBottomAccessoryContentProps>();
|
|
22
|
+
_props = defaultProps;
|
|
23
|
+
}
|
|
21
24
|
return self;
|
|
22
25
|
}
|
|
23
26
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#if RNS_TABS_BOTTOM_ACCESSORY_AVAILABLE
|
|
4
4
|
|
|
5
5
|
#import <React/RCTConversions.h>
|
|
6
|
-
#import <rnscreens/RNSTabsBottomAccessoryShadowNode.h>
|
|
6
|
+
#import <react/renderer/components/rnscreens/RNSTabsBottomAccessoryShadowNode.h>
|
|
7
7
|
|
|
8
8
|
@implementation RNSTabsBottomAccessoryShadowStateProxy {
|
|
9
9
|
RNSTabsBottomAccessoryComponentView *__weak _bottomAccessoryView;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(__cplusplus)
|
|
4
|
+
|
|
5
|
+
#import <React/RCTImageSource.h>
|
|
6
|
+
#import <UIKit/UIKit.h>
|
|
7
|
+
#import <react/renderer/components/rnscreens/EventEmitters.h>
|
|
8
|
+
#import <react/renderer/components/rnscreens/Props.h>
|
|
9
|
+
#import <optional>
|
|
10
|
+
#import "RNSDefines.h"
|
|
11
|
+
#import "RNSEnums.h"
|
|
12
|
+
#import "RNSTabsNavigationState.h"
|
|
13
|
+
|
|
14
|
+
namespace rnscreens::conversion {
|
|
15
|
+
|
|
16
|
+
namespace react = facebook::react;
|
|
17
|
+
|
|
18
|
+
std::optional<UIBlurEffectStyle> RNSMaybeUIBlurEffectStyleFromString(NSString *blurEffectString);
|
|
19
|
+
|
|
20
|
+
UIBlurEffect *RNSUIBlurEffectFromString(NSString *blurEffectString);
|
|
21
|
+
|
|
22
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
23
|
+
|
|
24
|
+
API_AVAILABLE(ios(26.0))
|
|
25
|
+
UITabBarMinimizeBehavior UITabBarMinimizeBehaviorFromRNSTabsHostTabBarMinimizeBehavior(
|
|
26
|
+
react::RNSTabsHostIOSTabBarMinimizeBehavior tabBarMinimizeBehavior);
|
|
27
|
+
|
|
28
|
+
#endif // Check for iOS >= 26
|
|
29
|
+
|
|
30
|
+
#if RNS_IPHONE_OS_VERSION_AVAILABLE(18_0)
|
|
31
|
+
|
|
32
|
+
API_AVAILABLE(ios(18.0))
|
|
33
|
+
UITabBarControllerMode UITabBarControllerModeFromRNSTabsHostTabBarControllerMode(
|
|
34
|
+
react::RNSTabsHostIOSTabBarControllerMode tabBarControllerMode);
|
|
35
|
+
|
|
36
|
+
#endif // Check for iOS >= 18
|
|
37
|
+
|
|
38
|
+
react::RNSTabsHostIOSEventEmitter::OnTabSelectionRejectedRejectionReason
|
|
39
|
+
RNSOnTabSelectionRejectedRejectionReasonFromRNSTabsNavigationStateRejectionReason(
|
|
40
|
+
RNSTabsNavigationStateRejectionReason reason);
|
|
41
|
+
|
|
42
|
+
react::RNSTabsHostIOSEventEmitter::OnTabSelectedActionOrigin RNSOnTabSelectedActionOriginFromRNSTabsActionOrigin(
|
|
43
|
+
RNSTabsActionOrigin actionOrigin);
|
|
44
|
+
|
|
45
|
+
RNSTabsIconType RNSTabsIconTypeFromIcon(react::RNSTabsScreenIOSIconType iconType);
|
|
46
|
+
|
|
47
|
+
RNSTabsScreenSystemItem RNSTabsScreenSystemItemFromReactRNSTabsScreenSystemItem(
|
|
48
|
+
react::RNSTabsScreenIOSSystemItem systemItem);
|
|
49
|
+
|
|
50
|
+
std::optional<UITabBarSystemItem> RNSTabsScreenSystemItemToUITabBarSystemItem(RNSTabsScreenSystemItem systemItem);
|
|
51
|
+
|
|
52
|
+
#if RNS_TABS_BOTTOM_ACCESSORY_AVAILABLE
|
|
53
|
+
|
|
54
|
+
API_AVAILABLE(ios(26.0))
|
|
55
|
+
std::optional<react::RNSTabsBottomAccessoryEventEmitter::OnEnvironmentChangeEnvironment>
|
|
56
|
+
RNSTabsBottomAccessoryOnEnvironmentChangePayloadFromUITabAccessoryEnvironment(UITabAccessoryEnvironment environment);
|
|
57
|
+
|
|
58
|
+
RNSTabsBottomAccessoryEnvironment RNSTabsBottomAccessoryEnvironmentFromCppEquivalent(
|
|
59
|
+
react::RNSTabsBottomAccessoryContentEnvironment environment);
|
|
60
|
+
|
|
61
|
+
#endif // RNS_TABS_BOTTOM_ACCESSORY_AVAILABLE
|
|
62
|
+
|
|
63
|
+
UIUserInterfaceStyle UIUserInterfaceStyleFromTabsScreenCppEquivalent(
|
|
64
|
+
react::RNSTabsScreenIOSUserInterfaceStyle userInterfaceStyle);
|
|
65
|
+
|
|
66
|
+
RCTImageSource *RCTImageSourceFromImageSourceAndIconType(const facebook::react::ImageSource *imageSource,
|
|
67
|
+
RNSTabsIconType iconType);
|
|
68
|
+
|
|
69
|
+
RNSOrientation RNSOrientationFromRNSTabsScreenOrientation(react::RNSTabsScreenIOSOrientation orientation);
|
|
70
|
+
|
|
71
|
+
UITraitEnvironmentLayoutDirection UITraitEnvironmentLayoutDirectionFromTabsHostCppEquivalent(
|
|
72
|
+
react::RNSTabsHostIOSLayoutDirection layoutDirection);
|
|
73
|
+
|
|
74
|
+
UIUserInterfaceStyle UIUserInterfaceStyleFromHostProp(react::RNSTabsHostIOSColorScheme colorScheme);
|
|
75
|
+
|
|
76
|
+
}; // namespace rnscreens::conversion
|
|
77
|
+
|
|
78
|
+
#endif // defined(__cplusplus)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
#import
|
|
1
|
+
#import "RNSConversions-Tabs.h"
|
|
2
|
+
#import <React/RCTLog.h>
|
|
2
3
|
#import <react/renderer/imagemanager/RCTImagePrimitivesConversions.h>
|
|
3
|
-
#import "RNSConversions.h"
|
|
4
|
-
#import "RNSDefines.h"
|
|
5
4
|
|
|
6
5
|
namespace rnscreens::conversion {
|
|
7
6
|
|
|
7
|
+
namespace react = facebook::react;
|
|
8
|
+
|
|
8
9
|
UIBlurEffect *RNSUIBlurEffectFromOptionalUIBlurEffectStyle(std::optional<UIBlurEffectStyle> &maybeStyle)
|
|
9
10
|
{
|
|
10
11
|
if (maybeStyle) {
|
|
@@ -75,69 +76,6 @@ UIBlurEffect *RNSUIBlurEffectFromString(NSString *blurEffectString)
|
|
|
75
76
|
return RNSUIBlurEffectFromOptionalUIBlurEffectStyle(maybeStyle);
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
std::optional<UIBlurEffectStyle> RNSMaybeUIBlurEffectStyleFromRNSBlurEffectStyle(RNSBlurEffectStyle blurEffect)
|
|
79
|
-
{
|
|
80
|
-
switch (blurEffect) {
|
|
81
|
-
case RNSBlurEffectStyleNone:
|
|
82
|
-
case RNSBlurEffectStyleSystemDefault:
|
|
83
|
-
return std::nullopt;
|
|
84
|
-
case RNSBlurEffectStyleExtraLight:
|
|
85
|
-
return {UIBlurEffectStyleExtraLight};
|
|
86
|
-
case RNSBlurEffectStyleLight:
|
|
87
|
-
return {UIBlurEffectStyleLight};
|
|
88
|
-
case RNSBlurEffectStyleDark:
|
|
89
|
-
return {UIBlurEffectStyleDark};
|
|
90
|
-
case RNSBlurEffectStyleRegular:
|
|
91
|
-
return {UIBlurEffectStyleRegular};
|
|
92
|
-
case RNSBlurEffectStyleProminent:
|
|
93
|
-
return {UIBlurEffectStyleProminent};
|
|
94
|
-
#if !TARGET_OS_TV
|
|
95
|
-
case RNSBlurEffectStyleSystemUltraThinMaterial:
|
|
96
|
-
return {UIBlurEffectStyleSystemUltraThinMaterial};
|
|
97
|
-
case RNSBlurEffectStyleSystemThinMaterial:
|
|
98
|
-
return {UIBlurEffectStyleSystemThinMaterial};
|
|
99
|
-
case RNSBlurEffectStyleSystemMaterial:
|
|
100
|
-
return {UIBlurEffectStyleSystemMaterial};
|
|
101
|
-
case RNSBlurEffectStyleSystemThickMaterial:
|
|
102
|
-
return {UIBlurEffectStyleSystemThickMaterial};
|
|
103
|
-
case RNSBlurEffectStyleSystemChromeMaterial:
|
|
104
|
-
return {UIBlurEffectStyleSystemChromeMaterial};
|
|
105
|
-
case RNSBlurEffectStyleSystemUltraThinMaterialLight:
|
|
106
|
-
return {UIBlurEffectStyleSystemUltraThinMaterialLight};
|
|
107
|
-
case RNSBlurEffectStyleSystemThinMaterialLight:
|
|
108
|
-
return {UIBlurEffectStyleSystemThinMaterialLight};
|
|
109
|
-
case RNSBlurEffectStyleSystemMaterialLight:
|
|
110
|
-
return {UIBlurEffectStyleSystemMaterialLight};
|
|
111
|
-
case RNSBlurEffectStyleSystemThickMaterialLight:
|
|
112
|
-
return {UIBlurEffectStyleSystemThickMaterialLight};
|
|
113
|
-
case RNSBlurEffectStyleSystemChromeMaterialLight:
|
|
114
|
-
return {UIBlurEffectStyleSystemChromeMaterialLight};
|
|
115
|
-
case RNSBlurEffectStyleSystemUltraThinMaterialDark:
|
|
116
|
-
return {UIBlurEffectStyleSystemUltraThinMaterialDark};
|
|
117
|
-
case RNSBlurEffectStyleSystemThinMaterialDark:
|
|
118
|
-
return {UIBlurEffectStyleSystemThinMaterialDark};
|
|
119
|
-
case RNSBlurEffectStyleSystemMaterialDark:
|
|
120
|
-
return {UIBlurEffectStyleSystemMaterialDark};
|
|
121
|
-
case RNSBlurEffectStyleSystemThickMaterialDark:
|
|
122
|
-
return {UIBlurEffectStyleSystemThickMaterialDark};
|
|
123
|
-
case RNSBlurEffectStyleSystemChromeMaterialDark:
|
|
124
|
-
return {UIBlurEffectStyleSystemChromeMaterialDark};
|
|
125
|
-
default:
|
|
126
|
-
RCTLogError(@"[RNScreens] unsupported blur effect style");
|
|
127
|
-
return std::nullopt;
|
|
128
|
-
#else // !TARGET_OS_TV
|
|
129
|
-
default:
|
|
130
|
-
return std::nullopt;
|
|
131
|
-
#endif // !TARGET_OS_TV
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
UIBlurEffect *RNSUIBlurEffectFromRNSBlurEffectStyle(RNSBlurEffectStyle blurEffect)
|
|
136
|
-
{
|
|
137
|
-
std::optional<UIBlurEffectStyle> maybeStyle = RNSMaybeUIBlurEffectStyleFromRNSBlurEffectStyle(blurEffect);
|
|
138
|
-
return RNSUIBlurEffectFromOptionalUIBlurEffectStyle(maybeStyle);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
79
|
#if RNS_IPHONE_OS_VERSION_AVAILABLE(26_0)
|
|
142
80
|
|
|
143
81
|
API_AVAILABLE(ios(26.0))
|
|
@@ -323,11 +261,11 @@ RNSTabsScreenSystemItem RNSTabsScreenSystemItemFromReactRNSTabsScreenSystemItem(
|
|
|
323
261
|
}
|
|
324
262
|
}
|
|
325
263
|
|
|
326
|
-
UITabBarSystemItem RNSTabsScreenSystemItemToUITabBarSystemItem(RNSTabsScreenSystemItem systemItem)
|
|
264
|
+
std::optional<UITabBarSystemItem> RNSTabsScreenSystemItemToUITabBarSystemItem(RNSTabsScreenSystemItem systemItem)
|
|
327
265
|
{
|
|
328
|
-
RCTAssert(systemItem != RNSTabsScreenSystemItemNone,
|
|
329
|
-
@"Attempt to convert tabs systemItem none to UITabBarSystemItem");
|
|
330
266
|
switch (systemItem) {
|
|
267
|
+
case RNSTabsScreenSystemItemNone:
|
|
268
|
+
return std::nullopt;
|
|
331
269
|
case RNSTabsScreenSystemItemBookmarks:
|
|
332
270
|
return UITabBarSystemItemBookmarks;
|
|
333
271
|
case RNSTabsScreenSystemItemContacts:
|
|
@@ -353,8 +291,7 @@ UITabBarSystemItem RNSTabsScreenSystemItemToUITabBarSystemItem(RNSTabsScreenSyst
|
|
|
353
291
|
case RNSTabsScreenSystemItemTopRated:
|
|
354
292
|
return UITabBarSystemItemTopRated;
|
|
355
293
|
}
|
|
356
|
-
|
|
357
|
-
return UITabBarSystemItemSearch;
|
|
294
|
+
return std::nullopt;
|
|
358
295
|
}
|
|
359
296
|
|
|
360
297
|
#if RNS_TABS_BOTTOM_ACCESSORY_AVAILABLE
|