react-native-screens 5.0.0-alpha.3 → 5.0.0-alpha.4
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/README.md +0 -4
- package/android/build.gradle +1 -0
- package/android/consumer-rules.pro +3 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledHeaderConfigViewGroup.kt +2 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledHeaderSubviewViewGroup.kt +2 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/legacy/FabricEnabledViewGroup.kt +18 -3
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/ScreensModule.kt +7 -3
- package/android/src/main/java/com/swmansion/rnscreens/common/colorscheme/ColorSchemeCoordinator.kt +11 -1
- package/android/src/main/java/com/swmansion/rnscreens/common/container/Container.kt +9 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetAppearanceCoordinator.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetBehaviorController.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetDimensionsCoordinator.kt +6 -6
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetKeyboardCoordinator.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/coordinator/FormSheetNativeDismissCoordinator.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetAvailableHeightProvider.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetContainer.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetDialog.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native/core → core/modals/formsheet/dialog}/FormSheetDialogManager.kt +26 -8
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetContentSizeChangeDelegate.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetContentSizeChangeProvider.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/interfaces/FormSheetDialogEventEmitter.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/model/FormSheetConfig.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/model/FormSheetDetents.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetAnimatorFactory.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetDimmingManager.kt +6 -18
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetDismissalOrigin.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetPresentation.kt +10 -10
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetPresentationManager.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetPresentationState.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/native → core/modals/formsheet}/presentation/FormSheetStackRegistry.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/ext/FragmentManagerExt.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/helpers/FragmentManagerHelper.kt +0 -3
- package/android/src/main/java/com/swmansion/rnscreens/helpers/NoTintDrawable.kt +31 -0
- package/android/src/main/java/com/swmansion/rnscreens/helpers/ViewFinder.kt +0 -17
- package/android/src/main/java/com/swmansion/rnscreens/legacy/Screen.kt +29 -2
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenContainer.kt +35 -3
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStack.kt +13 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackHeaderConfig.kt +7 -1
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackHeaderSubviewManager.kt +7 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenStackViewManager.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/DimmingView.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/stack/views/ScreensCoordinatorLayout.kt +2 -0
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/contentwrapper/FormSheetContentWrapper.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/contentwrapper/FormSheetContentWrapperViewManager.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDetentChangedEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDidAppearEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDidDisappearEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetDismissEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetNativeDismissEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetNativeDismissPreventedEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetSyncFlushEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetWillAppearEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/event/FormSheetWillDisappearEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetContentView.kt +3 -3
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHost.kt +5 -3
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHostEventEmitter.kt +11 -11
- package/android/src/main/java/com/swmansion/rnscreens/{modals/formsheet/react → react/modals/formsheet}/host/FormSheetHostViewManager.kt +10 -10
- package/android/src/main/java/com/swmansion/rnscreens/safearea/OnInterfaceInsetsChangeListener.kt +15 -0
- package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaProvider.kt +8 -8
- package/android/src/main/java/com/swmansion/rnscreens/safearea/SafeAreaView.kt +3 -2
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderApplicator.kt +0 -52
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/StackHeaderCoordinatorLayout.kt +112 -59
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderAppBarLayout.kt +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/appbar/StackHeaderToolbar.kt +74 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfig.kt +4 -73
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationObserver.kt +5 -2
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderConfigurationProviding.kt +0 -6
- package/android/src/main/java/com/swmansion/rnscreens/stack/header/config/StackHeaderInvalidationFlags.kt +3 -7
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/FragmentOperation.kt +1 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/FragmentOperationExecutor.kt +2 -1
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainer.kt +57 -19
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainerDelegate.kt +7 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackContainerUpdateCoordinator.kt +5 -3
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackHost.kt +14 -5
- package/android/src/main/java/com/swmansion/rnscreens/stack/host/StackUpdateBatchStateProviding.kt +10 -0
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/PreventNativeDismissCallback.kt +2 -2
- package/android/src/main/java/com/swmansion/rnscreens/stack/screen/StackScreenFragment.kt +33 -12
- package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceApplicator.kt +106 -10
- package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceCoordinator.kt +44 -3
- package/android/src/main/java/com/swmansion/rnscreens/tabs/appearance/TabsAppearanceModel.kt +3 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/CustomBottomNavigationView.kt +21 -1
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainer.kt +28 -13
- package/android/src/main/java/com/swmansion/rnscreens/tabs/container/TabsContainerDelegate.kt +11 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/host/TabsHost.kt +12 -2
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreen.kt +41 -17
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenDelegate.kt +6 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenIcon.kt +82 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenIconTinting.kt +17 -0
- package/android/src/main/java/com/swmansion/rnscreens/tabs/screen/TabsScreenViewManager.kt +26 -19
- package/android/src/main/java/com/swmansion/rnscreens/utils/DimensionUtils.kt +14 -7
- package/android/src/main/java/com/swmansion/rnscreens/utils/RNSLog.kt +22 -6
- package/ios/RNSEnums.h +14 -1
- package/ios/helpers/image/RNSImageLoadingHelper.h +7 -0
- package/ios/helpers/image/RNSImageLoadingHelper.mm +9 -0
- package/ios/legacy/RNSBarButtonItem.mm +15 -0
- package/ios/legacy/RNSConvert.h +6 -0
- package/ios/legacy/RNSConvert.mm +17 -0
- package/ios/legacy/RNSNavigationBar.h +31 -0
- package/ios/legacy/RNSNavigationBar.mm +15 -0
- package/ios/legacy/RNSScreen.mm +122 -12
- package/ios/legacy/RNSScreenContentWrapper.mm +4 -1
- package/ios/legacy/RNSScreenStack.mm +202 -15
- package/ios/legacy/RNSScreenStackHeaderConfig.h +30 -0
- package/ios/legacy/RNSScreenStackHeaderConfig.mm +70 -17
- package/ios/legacy/RNSScreenStackHeaderSubview.mm +33 -0
- package/ios/safe-area/RNSSafeAreaViewComponentView.mm +1 -12
- package/ios/stack/conversion/RNSConversions-Stack.h +30 -0
- package/ios/stack/conversion/RNSConversions-Stack.mm +79 -0
- package/ios/stack/header/RNSHeaderItemVisibilityPriority.h +9 -0
- package/ios/stack/header/RNSStackHeaderConfigComponentView.h +4 -0
- package/ios/stack/header/RNSStackHeaderConfigComponentView.mm +40 -6
- package/ios/stack/header/RNSStackHeaderConfigDataProviding.h +5 -0
- package/ios/stack/header/RNSStackHeaderContentFactory.mm +3 -0
- package/ios/stack/header/RNSStackHeaderItemComponentView.h +9 -2
- package/ios/stack/header/RNSStackHeaderItemComponentView.mm +57 -3
- package/ios/stack/header/RNSStackHeaderItemDataProviding.h +5 -0
- package/ios/stack/header/RNSStackHeaderMenuCoordinator.h +13 -0
- package/ios/stack/header/RNSStackHeaderMenuCoordinator.mm +24 -0
- package/ios/stack/header/RNSStackHeaderMenuFinder.h +8 -1
- package/ios/stack/header/RNSStackHeaderMenuFinder.mm +26 -9
- package/ios/stack/screen/RNSStackScreenComponentView.h +2 -1
- package/ios/stack/screen/RNSStackScreenComponentView.mm +23 -0
- package/ios/stack/screen/RNSStackScreenHeaderCoordinator.mm +81 -8
- package/ios/tabs/RNSTabBarAppearanceCoordinator.mm +79 -16
- package/ios/tabs/RNSTabBarItemCoordinator.h +16 -0
- package/ios/tabs/RNSTabBarItemCoordinator.mm +143 -0
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryWrapperView.h +24 -0
- package/ios/tabs/bottom-accessory/RNSTabsBottomAccessoryWrapperView.mm +22 -0
- package/ios/tabs/conversion/RNSConversions-Tabs.h +22 -0
- package/ios/tabs/conversion/RNSConversions-Tabs.mm +97 -3
- package/ios/tabs/host/RNSTabBarController.h +16 -0
- package/ios/tabs/host/RNSTabBarController.mm +516 -107
- package/ios/tabs/host/RNSTabsHostComponentView.h +2 -0
- package/ios/tabs/host/RNSTabsHostComponentView.mm +32 -2
- package/ios/tabs/screen/RNSTabsScreenComponentView.h +21 -0
- package/ios/tabs/screen/RNSTabsScreenComponentView.mm +54 -69
- package/ios/tabs/screen/RNSTabsScreenViewController.mm +1 -0
- package/ios/utils/RNSDefines.h +12 -7
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js +3 -2
- package/lib/commonjs/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js +8 -3
- package/lib/commonjs/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
- package/lib/commonjs/components/stack/header/StackHeaderConfig.js +17 -0
- package/lib/commonjs/components/stack/header/StackHeaderConfig.js.map +1 -0
- package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js +4 -1
- package/lib/commonjs/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
- package/lib/commonjs/components/stack/host/StackHost.js +8 -1
- package/lib/commonjs/components/stack/host/StackHost.js.map +1 -1
- package/lib/commonjs/components/stack/host/StackHost.web.js +0 -2
- package/lib/commonjs/components/stack/host/StackHost.web.js.map +1 -1
- package/lib/commonjs/components/stack/index.js.map +1 -1
- package/lib/commonjs/components/tabs/host/TabsHost.ios.js +2 -0
- package/lib/commonjs/components/tabs/host/TabsHost.ios.js.map +1 -1
- package/lib/commonjs/components/tabs/host/{TabsHost.web.js → TabsHost.js} +1 -1
- package/lib/commonjs/components/tabs/host/TabsHost.js.map +1 -0
- package/lib/commonjs/components/tabs/index.js.map +1 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.android.js +3 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.android.js.map +1 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js +10 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.ios.js.map +1 -1
- package/lib/commonjs/components/tabs/screen/{TabsScreen.web.js → TabsScreen.js} +1 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.js.map +1 -0
- package/lib/commonjs/components/{stack/header/StackHeaderConfig.d.js → tabs/screen/TabsScreenIcon.types.js} +1 -1
- package/lib/commonjs/components/{stack/header/StackHeaderConfig.d.js.map → tabs/screen/TabsScreenIcon.types.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/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/stack/StackHeaderItemIOSNativeComponent.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 +1 -1
- package/lib/commonjs/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
- package/lib/commonjs/legacy/components/ScreenStackItem.js +31 -11
- package/lib/commonjs/legacy/components/ScreenStackItem.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.android.js +4 -3
- package/lib/module/components/stack/header/StackHeaderConfig.android.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js +9 -4
- package/lib/module/components/stack/header/StackHeaderConfig.ios.js.map +1 -1
- package/lib/module/components/stack/header/StackHeaderConfig.js +10 -0
- package/lib/module/components/stack/header/StackHeaderConfig.js.map +1 -0
- package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js +4 -1
- package/lib/module/components/stack/header/ios/StackHeaderItem.ios.js.map +1 -1
- package/lib/module/components/stack/host/StackHost.js +9 -2
- package/lib/module/components/stack/host/StackHost.js.map +1 -1
- package/lib/module/components/stack/host/StackHost.web.js +0 -3
- package/lib/module/components/stack/host/StackHost.web.js.map +1 -1
- package/lib/module/components/stack/index.js.map +1 -1
- package/lib/module/components/tabs/host/TabsHost.ios.js +2 -0
- package/lib/module/components/tabs/host/TabsHost.ios.js.map +1 -1
- package/{src/components/tabs/host/TabsHost.web.tsx → lib/module/components/tabs/host/TabsHost.js} +1 -2
- package/lib/module/components/tabs/host/TabsHost.js.map +1 -0
- package/lib/module/components/tabs/index.js.map +1 -1
- package/lib/module/components/tabs/screen/TabsScreen.android.js +3 -1
- package/lib/module/components/tabs/screen/TabsScreen.android.js.map +1 -1
- package/lib/module/components/tabs/screen/TabsScreen.ios.js +10 -1
- package/lib/module/components/tabs/screen/TabsScreen.ios.js.map +1 -1
- package/{src/components/tabs/screen/TabsScreen.web.tsx → lib/module/components/tabs/screen/TabsScreen.js} +1 -2
- package/lib/module/components/tabs/screen/TabsScreen.js.map +1 -0
- package/lib/module/components/tabs/screen/TabsScreenIcon.types.js +2 -0
- package/lib/module/components/{stack/header/StackHeaderConfig.d.js.map → tabs/screen/TabsScreenIcon.types.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/stack/StackHeaderConfigIOSNativeComponent.js.map +1 -1
- package/lib/module/fabric/stack/StackHeaderItemIOSNativeComponent.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 +1 -1
- package/lib/module/fabric/tabs/TabsScreenIOSNativeComponent.js.map +1 -1
- package/lib/module/legacy/components/ScreenStackItem.js +31 -11
- package/lib/module/legacy/components/ScreenStackItem.js.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts +6 -3
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts +4 -3
- package/lib/typescript/components/stack/header/StackHeaderConfig.android.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.d.ts +8 -0
- package/lib/typescript/components/stack/header/StackHeaderConfig.d.ts.map +1 -0
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts +6 -3
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.d.ts.map +1 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.ios.types.d.ts +137 -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 -0
- package/lib/typescript/components/stack/header/StackHeaderConfig.types.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 +5 -0
- package/lib/typescript/components/stack/header/ios/StackHeaderItem.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.types.d.ts +24 -1
- package/lib/typescript/components/stack/host/StackHost.types.d.ts.map +1 -1
- package/lib/typescript/components/stack/host/StackHost.web.d.ts +1 -3
- package/lib/typescript/components/stack/host/StackHost.web.d.ts.map +1 -1
- package/lib/typescript/components/stack/index.d.ts +4 -3
- package/lib/typescript/components/stack/index.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.d.ts +5 -0
- package/lib/typescript/components/tabs/host/TabsHost.d.ts.map +1 -0
- package/lib/typescript/components/tabs/host/TabsHost.ios.d.ts.map +1 -1
- package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts +56 -0
- package/lib/typescript/components/tabs/host/TabsHost.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/index.d.ts +4 -6
- package/lib/typescript/components/tabs/index.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.android.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts +42 -7
- package/lib/typescript/components/tabs/screen/TabsScreen.android.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.d.ts +5 -0
- package/lib/typescript/components/tabs/screen/TabsScreen.d.ts.map +1 -0
- package/lib/typescript/components/tabs/screen/TabsScreen.ios.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts +78 -13
- package/lib/typescript/components/tabs/screen/TabsScreen.ios.types.d.ts.map +1 -1
- package/lib/typescript/components/tabs/screen/TabsScreenIcon.types.d.ts +91 -0
- package/lib/typescript/components/tabs/screen/TabsScreenIcon.types.d.ts.map +1 -0
- package/lib/typescript/components/tabs/screen/index.d.ts +1 -0
- package/lib/typescript/components/tabs/screen/index.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts +2 -0
- package/lib/typescript/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts +1 -0
- package/lib/typescript/fabric/legacy/ScreenStackNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts +4 -0
- package/lib/typescript/fabric/stack/StackHeaderConfigIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/stack/StackHeaderItemIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts +3 -0
- package/lib/typescript/fabric/tabs/TabsHostIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts +6 -0
- package/lib/typescript/fabric/tabs/TabsScreenAndroidNativeComponent.d.ts.map +1 -1
- package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts +10 -1
- package/lib/typescript/fabric/tabs/TabsScreenIOSNativeComponent.d.ts.map +1 -1
- package/lib/typescript/legacy/components/ScreenStackItem.d.ts +25 -0
- package/lib/typescript/legacy/components/ScreenStackItem.d.ts.map +1 -1
- package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts +4 -0
- package/lib/typescript/legacy/components/helpers/prepareHeaderBarButtonItems.d.ts.map +1 -1
- package/lib/typescript/legacy/types.d.ts +30 -0
- package/lib/typescript/legacy/types.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/components/stack/header/StackHeaderConfig.android.tsx +6 -20
- package/src/components/stack/header/StackHeaderConfig.android.types.ts +4 -3
- package/src/components/stack/header/StackHeaderConfig.ios.tsx +10 -16
- package/src/components/stack/header/StackHeaderConfig.ios.types.ts +148 -2
- package/src/components/stack/header/StackHeaderConfig.tsx +12 -0
- package/src/components/stack/header/StackHeaderConfig.types.ts +2 -0
- package/src/components/stack/header/ios/StackHeaderItem.ios.tsx +9 -1
- package/src/components/stack/header/ios/StackHeaderItem.ios.types.ts +5 -0
- package/src/components/stack/host/StackHost.tsx +10 -3
- package/src/components/stack/host/StackHost.types.ts +25 -1
- package/src/components/stack/host/StackHost.web.tsx +1 -4
- package/src/components/stack/index.ts +9 -1
- package/src/components/tabs/host/TabsHost.ios.tsx +2 -0
- package/src/components/tabs/host/TabsHost.ios.types.ts +60 -0
- package/src/components/tabs/host/TabsHost.tsx +7 -0
- package/src/components/tabs/index.ts +9 -0
- package/src/components/tabs/screen/TabsScreen.android.tsx +8 -3
- package/src/components/tabs/screen/TabsScreen.android.types.ts +42 -7
- package/src/components/tabs/screen/TabsScreen.ios.tsx +22 -5
- package/src/components/tabs/screen/TabsScreen.ios.types.ts +79 -17
- package/src/components/tabs/screen/TabsScreen.tsx +7 -0
- package/src/components/tabs/screen/TabsScreenIcon.types.ts +117 -0
- package/src/components/tabs/screen/index.ts +1 -0
- package/src/fabric/legacy/ScreenStackHeaderSubviewNativeComponent.ts +6 -0
- package/src/fabric/legacy/ScreenStackNativeComponent.ts +2 -0
- package/src/fabric/stack/StackHeaderConfigIOSNativeComponent.ts +11 -0
- package/src/fabric/stack/StackHeaderItemIOSNativeComponent.ts +11 -0
- package/src/fabric/tabs/TabsHostIOSNativeComponent.ts +7 -0
- package/src/fabric/tabs/TabsScreenAndroidNativeComponent.ts +9 -0
- package/src/fabric/tabs/TabsScreenIOSNativeComponent.ts +20 -2
- package/src/legacy/components/ScreenStackItem.tsx +59 -12
- package/src/legacy/types.ts +31 -0
- package/android/src/main/java/com/swmansion/rnscreens/legacy/ScreenModalFragment.kt +0 -281
- package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/BottomSheetDialogRootView.kt +0 -104
- package/android/src/main/java/com/swmansion/rnscreens/legacy/bottomsheet/BottomSheetDialogScreen.kt +0 -26
- package/lib/commonjs/components/stack/header/StackHeaderConfig.web.js +0 -10
- package/lib/commonjs/components/stack/header/StackHeaderConfig.web.js.map +0 -1
- package/lib/commonjs/components/tabs/host/TabsHost.d.js +0 -2
- package/lib/commonjs/components/tabs/host/TabsHost.d.js.map +0 -1
- package/lib/commonjs/components/tabs/host/TabsHost.web.js.map +0 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.d.js +0 -2
- package/lib/commonjs/components/tabs/screen/TabsScreen.d.js.map +0 -1
- package/lib/commonjs/components/tabs/screen/TabsScreen.web.js.map +0 -1
- package/lib/module/components/stack/header/StackHeaderConfig.d.js +0 -2
- package/lib/module/components/stack/header/StackHeaderConfig.web.js +0 -4
- package/lib/module/components/stack/header/StackHeaderConfig.web.js.map +0 -1
- package/lib/module/components/tabs/host/TabsHost.d.js +0 -2
- package/lib/module/components/tabs/host/TabsHost.d.js.map +0 -1
- package/lib/module/components/tabs/host/TabsHost.web.js +0 -4
- package/lib/module/components/tabs/host/TabsHost.web.js.map +0 -1
- package/lib/module/components/tabs/screen/TabsScreen.d.js +0 -2
- package/lib/module/components/tabs/screen/TabsScreen.d.js.map +0 -1
- package/lib/module/components/tabs/screen/TabsScreen.web.js +0 -4
- package/lib/module/components/tabs/screen/TabsScreen.web.js.map +0 -1
- package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts +0 -7
- package/lib/typescript/components/stack/header/StackHeaderConfig.web.d.ts.map +0 -1
- package/lib/typescript/components/tabs/host/TabsHost.web.d.ts +0 -7
- package/lib/typescript/components/tabs/host/TabsHost.web.d.ts.map +0 -1
- package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts +0 -7
- package/lib/typescript/components/tabs/screen/TabsScreen.web.d.ts.map +0 -1
- package/src/components/stack/header/StackHeaderConfig.d.ts +0 -22
- package/src/components/stack/header/StackHeaderConfig.web.tsx +0 -5
- package/src/components/tabs/host/TabsHost.d.ts +0 -12
- package/src/components/tabs/screen/TabsScreen.d.ts +0 -12
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
PlatformIconAndroidDrawableResource,
|
|
3
|
+
PlatformIconIOSSfSymbol,
|
|
4
|
+
PlatformIconIOSTemplate,
|
|
5
|
+
PlatformIconIOSXcasset,
|
|
6
|
+
PlatformIconShared,
|
|
7
|
+
} from '../../shared/types';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* How the tab bar renders an `imageSource` icon on iOS. The names follow
|
|
11
|
+
* `UIImage.RenderingMode`.
|
|
12
|
+
*
|
|
13
|
+
* - `default` - the tab bar's default for images, also used when
|
|
14
|
+
* `renderingMode` is unset: the image keeps its own colors, as with
|
|
15
|
+
* `original`. This is not UIKit's automatic mode, in which the tab bar would
|
|
16
|
+
* draw the image as a template image.
|
|
17
|
+
* - `template` - the image is used as a template image: its shape is drawn in
|
|
18
|
+
* the state-dependent item icon color (`tabBarItemIconColor`,
|
|
19
|
+
* `tabBarTintColor`).
|
|
20
|
+
* - `original` - the image keeps its own colors and ignores the item icon color.
|
|
21
|
+
*/
|
|
22
|
+
export type TabsScreenIconImageRenderingModeIOS =
|
|
23
|
+
| 'default'
|
|
24
|
+
| 'template'
|
|
25
|
+
| 'original';
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* How the tab bar renders an `sfSymbol` icon on iOS. The names follow the
|
|
29
|
+
* SF Symbols rendering modes.
|
|
30
|
+
*
|
|
31
|
+
* - `default` - the system behavior (UIKit's automatic mode), also used when
|
|
32
|
+
* `renderingMode` is unset: system symbols are rendered in a single color,
|
|
33
|
+
* the state-dependent item icon color; for custom symbols the rendering mode
|
|
34
|
+
* set in the asset catalog may change it.
|
|
35
|
+
* - `monochrome` - the symbol is rendered in a single color: the
|
|
36
|
+
* state-dependent item icon color (`tabBarItemIconColor`, `tabBarTintColor`).
|
|
37
|
+
* - `original` - the symbol keeps its own colors (Apple's "multicolor"
|
|
38
|
+
* rendering) and ignores the item icon color. A symbol without color layers
|
|
39
|
+
* is drawn as authored.
|
|
40
|
+
*/
|
|
41
|
+
export type TabsScreenIconSymbolRenderingModeIOS =
|
|
42
|
+
| 'default'
|
|
43
|
+
| 'monochrome'
|
|
44
|
+
| 'original';
|
|
45
|
+
|
|
46
|
+
type WithImageRenderingMode<Icon> = Icon & {
|
|
47
|
+
/**
|
|
48
|
+
* @summary How the tab bar renders this image. See
|
|
49
|
+
* `TabsScreenIconImageRenderingModeIOS`.
|
|
50
|
+
*
|
|
51
|
+
* Defaults to `default`, which keeps the image's own colors.
|
|
52
|
+
*
|
|
53
|
+
* `icon` and `selectedIcon` may use different values.
|
|
54
|
+
*/
|
|
55
|
+
renderingMode?: TabsScreenIconImageRenderingModeIOS | undefined;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type WithSymbolRenderingMode<Icon> = Icon & {
|
|
59
|
+
/**
|
|
60
|
+
* @summary How the tab bar renders this symbol. See
|
|
61
|
+
* `TabsScreenIconSymbolRenderingModeIOS`.
|
|
62
|
+
*
|
|
63
|
+
* Defaults to `default`, the system behavior. Set `renderingMode`
|
|
64
|
+
* explicitly to be independent of it.
|
|
65
|
+
*
|
|
66
|
+
* `icon` and `selectedIcon` may use different values.
|
|
67
|
+
*/
|
|
68
|
+
renderingMode?: TabsScreenIconSymbolRenderingModeIOS | undefined;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* How the tab bar tints an `imageSource` or `drawableResource` icon on Android.
|
|
73
|
+
*
|
|
74
|
+
* - `default` - the tab bar's default, also used when `tinting` is unset: the
|
|
75
|
+
* icon is tinted, as with `tinted`.
|
|
76
|
+
* - `tinted` - the icon is drawn in the state-dependent item icon color
|
|
77
|
+
* (`tabBarItemIconColor`).
|
|
78
|
+
* - `original` - the icon keeps its own colors and ignores the item icon color,
|
|
79
|
+
* e.g. a multicolor VectorDrawable.
|
|
80
|
+
*/
|
|
81
|
+
export type TabsScreenIconTintingAndroid = 'default' | 'tinted' | 'original';
|
|
82
|
+
|
|
83
|
+
type WithTinting<Icon> = Icon & {
|
|
84
|
+
/**
|
|
85
|
+
* @summary How the tab bar tints this icon. See
|
|
86
|
+
* `TabsScreenIconTintingAndroid`.
|
|
87
|
+
*
|
|
88
|
+
* Defaults to `default`, which tints the icon.
|
|
89
|
+
*
|
|
90
|
+
* `icon` and `selectedIcon` may use different values.
|
|
91
|
+
*/
|
|
92
|
+
tinting?: TabsScreenIconTintingAndroid | undefined;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @deprecated Use `{ type: 'imageSource', imageSource, renderingMode: 'template' }` instead.
|
|
97
|
+
*/
|
|
98
|
+
export type TabsScreenIconTemplateIOS = PlatformIconIOSTemplate;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @deprecated Use `{ type: 'sfSymbol', name }` for custom symbols from the asset
|
|
102
|
+
* catalog, or `{ type: 'imageSource', imageSource: { uri: 'name' } }` for asset
|
|
103
|
+
* catalog images (append `.png` to names containing a dot). `imageSource` keeps
|
|
104
|
+
* the image's own colors by default, so for an asset whose "Render As" is not
|
|
105
|
+
* `Original Image`, add `renderingMode: 'template'`.
|
|
106
|
+
*/
|
|
107
|
+
export type TabsScreenIconXcassetIOS = PlatformIconIOSXcasset;
|
|
108
|
+
|
|
109
|
+
export type TabsScreenIconIOS =
|
|
110
|
+
| WithSymbolRenderingMode<PlatformIconIOSSfSymbol>
|
|
111
|
+
| TabsScreenIconXcassetIOS
|
|
112
|
+
| TabsScreenIconTemplateIOS
|
|
113
|
+
| WithImageRenderingMode<PlatformIconShared>;
|
|
114
|
+
|
|
115
|
+
export type TabsScreenIconAndroid =
|
|
116
|
+
| WithTinting<PlatformIconAndroidDrawableResource>
|
|
117
|
+
| WithTinting<PlatformIconShared>;
|
|
@@ -7,6 +7,8 @@ import type {
|
|
|
7
7
|
ViewProps,
|
|
8
8
|
} from 'react-native';
|
|
9
9
|
|
|
10
|
+
export type HeaderSubviewVisibilityPriority = 'low' | 'standard' | 'high';
|
|
11
|
+
|
|
10
12
|
export type HeaderSubviewTypes =
|
|
11
13
|
| 'back'
|
|
12
14
|
| 'right'
|
|
@@ -18,6 +20,10 @@ export type HeaderSubviewTypes =
|
|
|
18
20
|
export interface NativeProps extends ViewProps {
|
|
19
21
|
type?: CT.WithDefault<HeaderSubviewTypes, 'left'>;
|
|
20
22
|
hidesSharedBackground?: boolean | undefined;
|
|
23
|
+
visibilityPriority?: CT.WithDefault<
|
|
24
|
+
HeaderSubviewVisibilityPriority,
|
|
25
|
+
'standard'
|
|
26
|
+
>;
|
|
21
27
|
synchronousShadowStateUpdatesEnabled?: CT.WithDefault<boolean, true>;
|
|
22
28
|
}
|
|
23
29
|
|
|
@@ -14,6 +14,8 @@ type FinishTransitioningEvent = Readonly<{}>;
|
|
|
14
14
|
export interface NativeProps extends ViewProps {
|
|
15
15
|
nativeContainerBackgroundColor?: ColorValue | undefined;
|
|
16
16
|
|
|
17
|
+
disableDefaultMenuAction?: CT.WithDefault<boolean, false>;
|
|
18
|
+
|
|
17
19
|
onFinishTransitioning?:
|
|
18
20
|
| CT.DirectEventHandler<FinishTransitioningEvent>
|
|
19
21
|
| undefined;
|
|
@@ -15,6 +15,14 @@ import { UnsafeMixed } from '../codegenUtils';
|
|
|
15
15
|
|
|
16
16
|
type BackButtonDisplayMode = 'default' | 'generic' | 'minimal';
|
|
17
17
|
|
|
18
|
+
type MinimizationBehavior =
|
|
19
|
+
| 'automatic'
|
|
20
|
+
| 'never'
|
|
21
|
+
| 'onScrollDown'
|
|
22
|
+
| 'onScrollUp';
|
|
23
|
+
|
|
24
|
+
type RestorationBehavior = 'automatic' | 'atScrollEdge';
|
|
25
|
+
|
|
18
26
|
export type HeaderAppearance = {
|
|
19
27
|
titleFontFamily?: string | undefined;
|
|
20
28
|
titleFontSize?: CT.Float | undefined;
|
|
@@ -60,6 +68,9 @@ export interface NativeProps extends ViewProps {
|
|
|
60
68
|
|
|
61
69
|
prompt?: string | undefined;
|
|
62
70
|
|
|
71
|
+
minimizationBehavior?: CT.WithDefault<MinimizationBehavior, 'automatic'>;
|
|
72
|
+
restorationBehavior?: CT.WithDefault<RestorationBehavior, 'automatic'>;
|
|
73
|
+
|
|
63
74
|
titleMenu?: UnsafeMixed<StackHeaderMenuIOS> | undefined;
|
|
64
75
|
|
|
65
76
|
standardAppearance?: UnsafeMixed<HeaderAppearance> | undefined;
|
|
@@ -16,6 +16,8 @@ export type Placement =
|
|
|
16
16
|
| 'subtitle'
|
|
17
17
|
| 'largeSubtitle';
|
|
18
18
|
|
|
19
|
+
export type Variant = 'plain' | 'prominent';
|
|
20
|
+
|
|
19
21
|
export type StackHeaderMenuItemIOS = {
|
|
20
22
|
id: string;
|
|
21
23
|
type: 'menuItem';
|
|
@@ -67,14 +69,23 @@ export type PlatformIconIOS =
|
|
|
67
69
|
| PlatformIconIOSTemplate
|
|
68
70
|
| PlatformIconShared;
|
|
69
71
|
|
|
72
|
+
export type StackHeaderItemVisibilityPriorityIOS = 'low' | 'standard' | 'high';
|
|
73
|
+
|
|
70
74
|
export interface NativeProps extends ViewProps {
|
|
71
75
|
placement?: CT.WithDefault<Placement, 'trailing'>;
|
|
72
76
|
itemId?: string | undefined;
|
|
73
77
|
identifier?: string | undefined;
|
|
74
78
|
hidesSharedBackground?: CT.WithDefault<boolean, false>;
|
|
79
|
+
visibilityPriority?: CT.WithDefault<
|
|
80
|
+
StackHeaderItemVisibilityPriorityIOS,
|
|
81
|
+
'standard'
|
|
82
|
+
>;
|
|
75
83
|
title?: string | undefined;
|
|
76
84
|
icon?: UnsafeMixed<PlatformIconIOS> | undefined;
|
|
77
85
|
menu?: UnsafeMixed<StackHeaderMenuIOS> | undefined;
|
|
86
|
+
menuRepresentation?: UnsafeMixed<StackHeaderMenuIOS> | undefined;
|
|
87
|
+
variant?: CT.WithDefault<Variant, 'plain'>;
|
|
88
|
+
disabled?: CT.WithDefault<boolean, false>;
|
|
78
89
|
respondsToOnPress?: CT.WithDefault<boolean, false>;
|
|
79
90
|
onHeaderItemPress?: CT.DirectEventHandler<HeaderItemPressEvent> | undefined;
|
|
80
91
|
}
|
|
@@ -58,6 +58,8 @@ type TabBarMinimizeBehavior =
|
|
|
58
58
|
|
|
59
59
|
type TabBarControllerMode = 'automatic' | 'tabBar' | 'tabSidebar';
|
|
60
60
|
|
|
61
|
+
type TabBarSidebarPreferredPlacement = 'automatic' | 'sidebar' | 'tabBar';
|
|
62
|
+
|
|
61
63
|
// #endregion iOS-specific helpers
|
|
62
64
|
|
|
63
65
|
export interface NativeProps extends ViewProps {
|
|
@@ -89,7 +91,12 @@ export interface NativeProps extends ViewProps {
|
|
|
89
91
|
tabBarTintColor?: ColorValue | undefined;
|
|
90
92
|
tabBarMinimizeBehavior?: CT.WithDefault<TabBarMinimizeBehavior, 'automatic'>;
|
|
91
93
|
tabBarControllerMode?: CT.WithDefault<TabBarControllerMode, 'automatic'>;
|
|
94
|
+
tabBarSidebarPreferredPlacement?: CT.WithDefault<
|
|
95
|
+
TabBarSidebarPreferredPlacement,
|
|
96
|
+
'automatic'
|
|
97
|
+
>;
|
|
92
98
|
bottomAccessoryHidden?: CT.WithDefault<boolean, false>;
|
|
99
|
+
prominentScreenKey?: string | undefined;
|
|
93
100
|
}
|
|
94
101
|
|
|
95
102
|
export default codegenNativeComponent<NativeProps>('RNSTabsHostIOS', {
|
|
@@ -24,6 +24,8 @@ type TabBarItemLabelVisibilityMode =
|
|
|
24
24
|
| 'labeled'
|
|
25
25
|
| 'unlabeled';
|
|
26
26
|
|
|
27
|
+
export type IconTinting = 'default' | 'tinted' | 'original';
|
|
28
|
+
|
|
27
29
|
export type ItemStateAppearance = {
|
|
28
30
|
tabBarItemTitleFontColor?: ProcessedColorValue | null | undefined;
|
|
29
31
|
tabBarItemIconColor?: ProcessedColorValue | null | undefined;
|
|
@@ -48,9 +50,14 @@ export type Appearance = {
|
|
|
48
50
|
focused?: ItemStateAppearance | undefined;
|
|
49
51
|
disabled?: ItemStateAppearance | undefined;
|
|
50
52
|
|
|
53
|
+
// Per-tab icon size (dp); 0/unset = system default.
|
|
54
|
+
tabBarItemIconSize?: CT.Float | undefined;
|
|
55
|
+
|
|
51
56
|
// TabBarItem - Active Indicator
|
|
52
57
|
tabBarItemActiveIndicatorColor?: ProcessedColorValue | null | undefined;
|
|
53
58
|
tabBarItemActiveIndicatorEnabled?: CT.WithDefault<boolean, true>;
|
|
59
|
+
tabBarItemActiveIndicatorWidth?: CT.Float | undefined;
|
|
60
|
+
tabBarItemActiveIndicatorHeight?: CT.Float | undefined;
|
|
54
61
|
|
|
55
62
|
// TabBarItem - Label
|
|
56
63
|
tabBarItemTitleFontFamily?: string | undefined;
|
|
@@ -103,6 +110,8 @@ export interface NativeProps extends ViewProps {
|
|
|
103
110
|
imageIconResource?: ImageSource | undefined;
|
|
104
111
|
selectedDrawableIconResourceName?: string | undefined;
|
|
105
112
|
selectedImageIconResource?: ImageSource | undefined;
|
|
113
|
+
iconTinting?: CT.WithDefault<IconTinting, 'default'>;
|
|
114
|
+
selectedIconTinting?: CT.WithDefault<IconTinting, 'default'>;
|
|
106
115
|
|
|
107
116
|
// Appearance
|
|
108
117
|
standardAppearance?: Appearance | undefined;
|
|
@@ -20,8 +20,12 @@ type GenericEmptyEvent = Readonly<{}>;
|
|
|
20
20
|
|
|
21
21
|
// #region iOS-specific helpers
|
|
22
22
|
|
|
23
|
-
// iOS-specific: SFSymbol,
|
|
24
|
-
export type IconType = 'image' | '
|
|
23
|
+
// iOS-specific: SFSymbol, xcasset usage
|
|
24
|
+
export type IconType = 'image' | 'sfSymbol' | 'xcasset';
|
|
25
|
+
|
|
26
|
+
export type IconImageRenderingMode = 'default' | 'template' | 'original';
|
|
27
|
+
|
|
28
|
+
export type IconSymbolRenderingMode = 'default' | 'monochrome' | 'original';
|
|
25
29
|
|
|
26
30
|
export type ItemStateAppearance = {
|
|
27
31
|
tabBarItemTitleFontFamily?: string | undefined;
|
|
@@ -106,6 +110,8 @@ type SystemItem =
|
|
|
106
110
|
| 'search'
|
|
107
111
|
| 'topRated';
|
|
108
112
|
|
|
113
|
+
type TabRole = 'none' | 'search';
|
|
114
|
+
|
|
109
115
|
type UserInterfaceStyle = 'unspecified' | 'light' | 'dark';
|
|
110
116
|
|
|
111
117
|
// #endregion iOS-specific helpers
|
|
@@ -146,6 +152,8 @@ export interface NativeProps extends ViewProps {
|
|
|
146
152
|
// Tab config
|
|
147
153
|
isTitleUndefined?: CT.WithDefault<boolean, true>;
|
|
148
154
|
systemItem?: CT.WithDefault<SystemItem, 'none'>;
|
|
155
|
+
tabRole?: CT.WithDefault<TabRole, 'none'>;
|
|
156
|
+
automaticallyActivatesSearch?: CT.WithDefault<boolean, false>;
|
|
149
157
|
|
|
150
158
|
// Appearance
|
|
151
159
|
standardAppearance?: UnsafeMixed<Appearance> | undefined;
|
|
@@ -153,8 +161,18 @@ export interface NativeProps extends ViewProps {
|
|
|
153
161
|
|
|
154
162
|
// Icons
|
|
155
163
|
iconType?: CT.WithDefault<IconType, 'sfSymbol'>;
|
|
164
|
+
iconImageRenderingMode?: CT.WithDefault<IconImageRenderingMode, 'default'>;
|
|
165
|
+
iconSymbolRenderingMode?: CT.WithDefault<IconSymbolRenderingMode, 'default'>;
|
|
156
166
|
iconImageSource?: ImageSource | undefined;
|
|
157
167
|
iconResourceName?: string | undefined;
|
|
168
|
+
selectedIconImageRenderingMode?: CT.WithDefault<
|
|
169
|
+
IconImageRenderingMode,
|
|
170
|
+
'default'
|
|
171
|
+
>;
|
|
172
|
+
selectedIconSymbolRenderingMode?: CT.WithDefault<
|
|
173
|
+
IconSymbolRenderingMode,
|
|
174
|
+
'default'
|
|
175
|
+
>;
|
|
158
176
|
selectedIconImageSource?: ImageSource | undefined;
|
|
159
177
|
selectedIconResourceName?: string | undefined;
|
|
160
178
|
|
|
@@ -18,7 +18,10 @@ import Screen, { type ScreenInstance } from './Screen';
|
|
|
18
18
|
import ScreenStack from './ScreenStack';
|
|
19
19
|
import { RNSScreensRefContext } from '../contexts';
|
|
20
20
|
import { FooterComponent } from './ScreenFooter';
|
|
21
|
-
import {
|
|
21
|
+
import type {
|
|
22
|
+
Edge,
|
|
23
|
+
SafeAreaViewProps,
|
|
24
|
+
} from '../../components/safe-area/SafeAreaView.types';
|
|
22
25
|
import { SafeAreaView } from '../../components/safe-area/SafeAreaView';
|
|
23
26
|
import { featureFlags } from '../../flags';
|
|
24
27
|
import { isIOS26OrHigher } from '../../components/helpers/PlatformUtils';
|
|
@@ -34,6 +37,30 @@ type Props = Omit<
|
|
|
34
37
|
screenId: string;
|
|
35
38
|
headerConfig?: ScreenStackHeaderConfigProps | undefined;
|
|
36
39
|
contentStyle?: StyleProp<ViewStyle> | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Per-edge override of the safe area insets applied to the screen's content.
|
|
42
|
+
*
|
|
43
|
+
* On iOS 26+ the screen is laid out under the navigation bar and its content
|
|
44
|
+
* is wrapped in a `SafeAreaView`. By default, the top edge is applied for
|
|
45
|
+
* non-transparent header. Edges explicitly set to `true` or `false` override
|
|
46
|
+
* the default.
|
|
47
|
+
*
|
|
48
|
+
* When `ScrollView` with `contentInsetAdjustmentBehavior="automatic"` is used
|
|
49
|
+
* as Screen's content, setting `top: false` might mitigate some problems like
|
|
50
|
+
* "jumping" behavior with non-transparent header and large title.
|
|
51
|
+
*
|
|
52
|
+
* Limitation: with `top: false`, a `formSheet` using `fitToContents` with a
|
|
53
|
+
* visible header is sized to the content alone, without room for the header,
|
|
54
|
+
* which overlaps the top of the content.
|
|
55
|
+
*
|
|
56
|
+
* Has no effect below iOS 26 and on other platforms.
|
|
57
|
+
*
|
|
58
|
+
* Please note that this prop is marked as unstable and might be subject of
|
|
59
|
+
* breaking changes, including removal.
|
|
60
|
+
*
|
|
61
|
+
* @platform ios
|
|
62
|
+
*/
|
|
63
|
+
unstable_safeAreaEdges?: SafeAreaViewProps['edges'] | undefined;
|
|
37
64
|
};
|
|
38
65
|
|
|
39
66
|
function ScreenStackItem(
|
|
@@ -51,6 +78,8 @@ function ScreenStackItem(
|
|
|
51
78
|
scrollEdgeEffects,
|
|
52
79
|
// eslint-disable-next-line camelcase
|
|
53
80
|
unstable_sheetFooter,
|
|
81
|
+
// eslint-disable-next-line camelcase
|
|
82
|
+
unstable_safeAreaEdges,
|
|
54
83
|
...rest
|
|
55
84
|
}: Props,
|
|
56
85
|
ref: React.ForwardedRef<ScreenInstance>,
|
|
@@ -123,6 +152,11 @@ function ScreenStackItem(
|
|
|
123
152
|
contentStyle = contentWrapperStyles;
|
|
124
153
|
}
|
|
125
154
|
|
|
155
|
+
// On iOS 26+ the screen is laid out under the navigation bar also when the header is opaque
|
|
156
|
+
// (see `+[RNSScreenStackHeaderConfig screensExtendUnderOpaqueNavigationBar]`), so the content
|
|
157
|
+
// is inset by our `SafeAreaView`. See `getSafeAreaEdges` for the applied edges. The
|
|
158
|
+
// `SafeAreaView` is rendered regardless of `unstable_safeAreaEdges` so that changing it does not
|
|
159
|
+
// remount the content.
|
|
126
160
|
const shouldUseSafeAreaView = isIOS26OrHigher;
|
|
127
161
|
|
|
128
162
|
const content = (
|
|
@@ -133,7 +167,8 @@ function ScreenStackItem(
|
|
|
133
167
|
style={debugContainerStyle}
|
|
134
168
|
stackPresentation={stackPresentationWithDefault}>
|
|
135
169
|
{shouldUseSafeAreaView ? (
|
|
136
|
-
<SafeAreaView
|
|
170
|
+
<SafeAreaView
|
|
171
|
+
edges={getSafeAreaEdges(headerConfig, unstable_safeAreaEdges)}>
|
|
137
172
|
{children}
|
|
138
173
|
</SafeAreaView>
|
|
139
174
|
) : (
|
|
@@ -282,24 +317,36 @@ function extractScreenStyles(style: StyleProp<ViewStyle>): SplitStyleResult {
|
|
|
282
317
|
}
|
|
283
318
|
|
|
284
319
|
function getSafeAreaEdges(
|
|
285
|
-
headerConfig
|
|
320
|
+
headerConfig: ScreenStackHeaderConfigProps | undefined,
|
|
321
|
+
edgesOverride: SafeAreaViewProps['edges'],
|
|
286
322
|
): SafeAreaViewProps['edges'] {
|
|
287
|
-
if (
|
|
323
|
+
if (!isIOS26OrHigher) {
|
|
288
324
|
return {};
|
|
289
325
|
}
|
|
290
326
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
327
|
+
// On iOS 26+ the screen extends under the navigation bar regardless of the header configuration
|
|
328
|
+
// (see `+[RNSScreenStackHeaderConfig screensExtendUnderOpaqueNavigationBar]`), so by default the
|
|
329
|
+
// content is inset from the top whenever the header is visible and opaque. Translucent and hidden
|
|
330
|
+
// headers keep the content under the bar / status bar, as on other iOS versions.
|
|
331
|
+
const edges: Partial<Record<Edge, boolean>> =
|
|
332
|
+
headerConfig?.translucent || headerConfig?.hidden ? {} : { top: true };
|
|
333
|
+
|
|
334
|
+
// Only edges explicitly set by the user override the defaults. `undefined` must not be copied,
|
|
335
|
+
// as `SafeAreaView` treats a present-but-undefined edge as disabled.
|
|
336
|
+
if (edgesOverride) {
|
|
337
|
+
for (const edge of SAFE_AREA_EDGES) {
|
|
338
|
+
const value = edgesOverride[edge];
|
|
339
|
+
if (value !== undefined) {
|
|
340
|
+
edges[edge] = value;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
298
343
|
}
|
|
299
344
|
|
|
300
|
-
return
|
|
345
|
+
return edges;
|
|
301
346
|
}
|
|
302
347
|
|
|
348
|
+
const SAFE_AREA_EDGES: readonly Edge[] = ['top', 'right', 'bottom', 'left'];
|
|
349
|
+
|
|
303
350
|
const styles = StyleSheet.create({
|
|
304
351
|
container: {
|
|
305
352
|
flex: 1,
|
package/src/legacy/types.ts
CHANGED
|
@@ -659,6 +659,12 @@ export interface ScreenStackProps extends ViewProps, GestureProps {
|
|
|
659
659
|
| undefined;
|
|
660
660
|
ref?: React.MutableRefObject<React.Ref<View>> | undefined;
|
|
661
661
|
nativeContainerStyle?: ScreenStackNativeContainerStyleProps | undefined;
|
|
662
|
+
/**
|
|
663
|
+
* When true, prevents UIKit from auto-popping on Menu at stack depth > 1 so the
|
|
664
|
+
* press can reach JS. Requires `TVEventControl.enableTVMenuKey()`.
|
|
665
|
+
* @platform tvOS
|
|
666
|
+
*/
|
|
667
|
+
disableDefaultMenuAction?: boolean | undefined;
|
|
662
668
|
}
|
|
663
669
|
|
|
664
670
|
export interface ScreenStackHeaderConfigProps extends ViewProps {
|
|
@@ -1114,6 +1120,14 @@ export interface SearchBarProps {
|
|
|
1114
1120
|
shouldShowHintSearchIcon?: boolean | undefined;
|
|
1115
1121
|
}
|
|
1116
1122
|
|
|
1123
|
+
/**
|
|
1124
|
+
* Priority deciding which header items are given up first when they do not fit.
|
|
1125
|
+
* Each value maps to the matching UIKit constant.
|
|
1126
|
+
*
|
|
1127
|
+
* Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitemvisibilitypriority
|
|
1128
|
+
*/
|
|
1129
|
+
export type HeaderBarButtonItemVisibilityPriority = 'low' | 'standard' | 'high';
|
|
1130
|
+
|
|
1117
1131
|
export interface ScreenStackHeaderSubviewProps {
|
|
1118
1132
|
/**
|
|
1119
1133
|
* A boolean value indicating whether the background this item may share with other items in the bar should be hidden.
|
|
@@ -1123,6 +1137,15 @@ export interface ScreenStackHeaderSubviewProps {
|
|
|
1123
1137
|
* Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground
|
|
1124
1138
|
*/
|
|
1125
1139
|
hidesSharedBackground?: boolean | undefined;
|
|
1140
|
+
/**
|
|
1141
|
+
* Priority used when the header runs out of room: items with the lowest
|
|
1142
|
+
* priority are moved into the overflow menu first. Defaults to 'standard'.
|
|
1143
|
+
* Only applicable to type="right" and type="left" subviews.
|
|
1144
|
+
* Only available from iOS 27.0 and later.
|
|
1145
|
+
*
|
|
1146
|
+
* Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitemvisibilitypriority
|
|
1147
|
+
*/
|
|
1148
|
+
visibilityPriority?: HeaderBarButtonItemVisibilityPriority | undefined;
|
|
1126
1149
|
}
|
|
1127
1150
|
|
|
1128
1151
|
interface SharedHeaderBarButtonItem {
|
|
@@ -1193,6 +1216,14 @@ interface SharedHeaderBarButtonItem {
|
|
|
1193
1216
|
* Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/identifier
|
|
1194
1217
|
*/
|
|
1195
1218
|
identifier?: string | undefined;
|
|
1219
|
+
/**
|
|
1220
|
+
* Priority used when the header runs out of room: items with the lowest
|
|
1221
|
+
* priority are moved into the overflow menu first. Defaults to 'standard'.
|
|
1222
|
+
* Only available from iOS 27.0 and later.
|
|
1223
|
+
*
|
|
1224
|
+
* Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitemvisibilitypriority
|
|
1225
|
+
*/
|
|
1226
|
+
visibilityPriority?: HeaderBarButtonItemVisibilityPriority | undefined;
|
|
1196
1227
|
/**
|
|
1197
1228
|
* A badge to be rendered on a item.
|
|
1198
1229
|
* Only available from iOS 26.0 and later.
|