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
|
@@ -5,6 +5,7 @@ import React, {
|
|
|
5
5
|
useCallback,
|
|
6
6
|
useEffect,
|
|
7
7
|
useImperativeHandle,
|
|
8
|
+
useMemo,
|
|
8
9
|
useRef,
|
|
9
10
|
} from 'react';
|
|
10
11
|
import type {
|
|
@@ -13,6 +14,7 @@ import type {
|
|
|
13
14
|
} from './StackHeaderConfig.types';
|
|
14
15
|
import StackHeaderConfigIOSNativeComponent, {
|
|
15
16
|
Commands as StackHeaderConfigIOSNativeCommands,
|
|
17
|
+
HeaderAppearance,
|
|
16
18
|
MenuItemPressEvent,
|
|
17
19
|
MenuSelectionChangeEvent,
|
|
18
20
|
NativeMenuElementOptionsIOS,
|
|
@@ -21,8 +23,9 @@ import type { StackHeaderItemPlacement } from './ios/StackHeaderItem.ios.types';
|
|
|
21
23
|
import { StackHeaderItemSpacerPlacement } from './ios/StackHeaderItemSpacer.ios.types';
|
|
22
24
|
import StackHeaderItemSpacer from './ios/StackHeaderItemSpacer.ios';
|
|
23
25
|
import StackHeaderItem from './ios/StackHeaderItem.ios';
|
|
24
|
-
import { NativeSyntheticEvent, StyleSheet } from 'react-native';
|
|
26
|
+
import { NativeSyntheticEvent, StyleSheet, processColor } from 'react-native';
|
|
25
27
|
import type {
|
|
28
|
+
StackHeaderAppearanceIOS,
|
|
26
29
|
StackHeaderInlineCustomItemIOS,
|
|
27
30
|
StackHeaderInlineItemIOS,
|
|
28
31
|
StackHeaderMenuItemOptionsIOS,
|
|
@@ -30,8 +33,8 @@ import type {
|
|
|
30
33
|
StackHeaderSpacerItemIOS,
|
|
31
34
|
StackHeaderTitleCustomItemIOS,
|
|
32
35
|
} from './StackHeaderConfig.ios.types';
|
|
33
|
-
import {
|
|
34
|
-
import { resolveIconAssetSources } from './ios/iconUtils.ios';
|
|
36
|
+
import { findMenuElementByIdInMenus, validateMenuCallbacks } from './utils';
|
|
37
|
+
import { resolveIconAssetSources, resolveMenuIcons } from './ios/iconUtils.ios';
|
|
35
38
|
|
|
36
39
|
/**
|
|
37
40
|
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
|
|
@@ -48,11 +51,18 @@ function StackHeaderConfig(
|
|
|
48
51
|
leadingItems,
|
|
49
52
|
trailingItems,
|
|
50
53
|
titleItem,
|
|
54
|
+
titleMenu,
|
|
51
55
|
subtitleItem,
|
|
52
56
|
largeSubtitleItem,
|
|
53
57
|
largeTitle,
|
|
54
58
|
largeSubtitle,
|
|
55
59
|
largeTitleEnabled,
|
|
60
|
+
prompt,
|
|
61
|
+
backButtonTitle,
|
|
62
|
+
backButtonDisplayMode,
|
|
63
|
+
backButtonMenuEnabled,
|
|
64
|
+
standardAppearance,
|
|
65
|
+
scrollEdgeAppearance,
|
|
56
66
|
} = ios ?? {};
|
|
57
67
|
|
|
58
68
|
const nativeRef =
|
|
@@ -95,56 +105,70 @@ function StackHeaderConfig(
|
|
|
95
105
|
},
|
|
96
106
|
}));
|
|
97
107
|
|
|
108
|
+
const allMenus = useMemo(
|
|
109
|
+
() =>
|
|
110
|
+
[
|
|
111
|
+
...(leadingItems ?? [])
|
|
112
|
+
.filter(it => it && it.type === 'item')
|
|
113
|
+
.map(it => it.menu),
|
|
114
|
+
...(trailingItems ?? [])
|
|
115
|
+
.filter(it => it && it.type === 'item')
|
|
116
|
+
.map(it => it.menu),
|
|
117
|
+
titleMenu,
|
|
118
|
+
].filter(it => !!it),
|
|
119
|
+
[leadingItems, trailingItems, titleMenu],
|
|
120
|
+
);
|
|
121
|
+
|
|
98
122
|
const handleMenuItemPress = useCallback(
|
|
99
123
|
(event: NativeSyntheticEvent<MenuItemPressEvent>) => {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
...(trailingItems ?? []).filter(it => it && it.type === 'item'),
|
|
103
|
-
);
|
|
104
|
-
const menuElement = findMenuElementByIdInItems(
|
|
105
|
-
items,
|
|
124
|
+
const menuElement = findMenuElementByIdInMenus(
|
|
125
|
+
allMenus,
|
|
106
126
|
event.nativeEvent.menuItemId,
|
|
107
127
|
);
|
|
108
128
|
if (menuElement && menuElement.type === 'menuItem') {
|
|
109
129
|
menuElement.onPress?.();
|
|
110
130
|
}
|
|
111
131
|
},
|
|
112
|
-
[
|
|
132
|
+
[allMenus],
|
|
113
133
|
);
|
|
114
134
|
|
|
115
|
-
const allMenuItems = [
|
|
116
|
-
...(leadingItems ?? []),
|
|
117
|
-
...(trailingItems ?? []),
|
|
118
|
-
].filter(it => it && it.type === 'item');
|
|
119
|
-
|
|
120
135
|
const handleSelectionChange = useCallback(
|
|
121
136
|
(event: NativeSyntheticEvent<MenuSelectionChangeEvent>) => {
|
|
122
137
|
const { menuId, selectedMenuItemIds } = event.nativeEvent;
|
|
123
|
-
const menu =
|
|
138
|
+
const menu = findMenuElementByIdInMenus(allMenus, menuId);
|
|
124
139
|
if (menu && menu.type === 'menu') {
|
|
125
140
|
menu.onSelectionChange?.(selectedMenuItemIds);
|
|
126
141
|
}
|
|
127
142
|
},
|
|
128
|
-
[
|
|
143
|
+
[allMenus],
|
|
129
144
|
);
|
|
130
145
|
|
|
131
146
|
useEffect(() => {
|
|
132
|
-
for (const
|
|
133
|
-
|
|
134
|
-
validateMenuCallbacks(item.menu);
|
|
135
|
-
}
|
|
147
|
+
for (const menu of allMenus) {
|
|
148
|
+
validateMenuCallbacks(menu);
|
|
136
149
|
}
|
|
137
|
-
|
|
138
|
-
|
|
150
|
+
}, [allMenus]);
|
|
151
|
+
|
|
152
|
+
const resolvedTitleMenu = useMemo(
|
|
153
|
+
() => (titleMenu != null ? resolveMenuIcons(titleMenu) : undefined),
|
|
154
|
+
[titleMenu],
|
|
155
|
+
);
|
|
139
156
|
|
|
140
157
|
return (
|
|
141
158
|
<StackHeaderConfigIOSNativeComponent
|
|
142
159
|
ref={nativeRef}
|
|
143
160
|
{...restProps}
|
|
144
161
|
collapsable={false}
|
|
162
|
+
backButtonTitle={backButtonTitle}
|
|
163
|
+
backButtonDisplayMode={backButtonDisplayMode}
|
|
164
|
+
backButtonMenuEnabled={backButtonMenuEnabled}
|
|
145
165
|
largeTitle={largeTitle}
|
|
146
166
|
largeSubtitle={largeSubtitle}
|
|
147
167
|
largeTitleEnabled={!!largeTitleEnabled}
|
|
168
|
+
prompt={prompt}
|
|
169
|
+
standardAppearance={mapAppearanceToNativeProp(standardAppearance)}
|
|
170
|
+
scrollEdgeAppearance={mapAppearanceToNativeProp(scrollEdgeAppearance)}
|
|
171
|
+
titleMenu={resolvedTitleMenu}
|
|
148
172
|
style={styles.config}
|
|
149
173
|
onMenuItemPress={handleMenuItemPress}
|
|
150
174
|
onMenuSelectionChange={handleSelectionChange}>
|
|
@@ -158,6 +182,36 @@ function StackHeaderConfig(
|
|
|
158
182
|
);
|
|
159
183
|
}
|
|
160
184
|
|
|
185
|
+
function mapAppearanceToNativeProp(
|
|
186
|
+
appearance?: StackHeaderAppearanceIOS,
|
|
187
|
+
): HeaderAppearance | undefined {
|
|
188
|
+
if (!appearance) return undefined;
|
|
189
|
+
|
|
190
|
+
const {
|
|
191
|
+
titleFontColor,
|
|
192
|
+
titleFontWeight,
|
|
193
|
+
largeTitleFontColor,
|
|
194
|
+
largeTitleFontWeight,
|
|
195
|
+
subtitleFontColor,
|
|
196
|
+
subtitleFontWeight,
|
|
197
|
+
} = appearance;
|
|
198
|
+
|
|
199
|
+
return {
|
|
200
|
+
...appearance,
|
|
201
|
+
titleFontColor: processColor(titleFontColor),
|
|
202
|
+
titleFontWeight:
|
|
203
|
+
titleFontWeight !== undefined ? String(titleFontWeight) : undefined,
|
|
204
|
+
largeTitleFontColor: processColor(largeTitleFontColor),
|
|
205
|
+
largeTitleFontWeight:
|
|
206
|
+
largeTitleFontWeight !== undefined
|
|
207
|
+
? String(largeTitleFontWeight)
|
|
208
|
+
: undefined,
|
|
209
|
+
subtitleFontColor: processColor(subtitleFontColor),
|
|
210
|
+
subtitleFontWeight:
|
|
211
|
+
subtitleFontWeight !== undefined ? String(subtitleFontWeight) : undefined,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
161
215
|
function makeItemViewFromItem(
|
|
162
216
|
item:
|
|
163
217
|
| StackHeaderInlineItemIOS
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ReactElement } from 'react';
|
|
2
|
+
import type { TextStyle } from 'react-native';
|
|
2
3
|
import type { PlatformIconIOS } from '../../shared/types';
|
|
3
4
|
import type { StackHeaderMenuIOS } from './ios/StackHeaderMenu.ios.types';
|
|
4
5
|
|
|
@@ -94,6 +95,43 @@ export interface SupportsMenuIOS {
|
|
|
94
95
|
menu?: StackHeaderMenuIOS | undefined;
|
|
95
96
|
}
|
|
96
97
|
|
|
98
|
+
export interface SupportsSharedBackgroundIOS {
|
|
99
|
+
/**
|
|
100
|
+
* @summary Whether the liquid glass background for this item should be hidden.
|
|
101
|
+
*
|
|
102
|
+
* @description
|
|
103
|
+
* On iOS 26, adjacent bar button items are grouped inside a shared liquid
|
|
104
|
+
* glass background. Setting this to `true` removes the shared background
|
|
105
|
+
* from this item.
|
|
106
|
+
*
|
|
107
|
+
* @default false
|
|
108
|
+
*
|
|
109
|
+
* @platform iOS
|
|
110
|
+
*
|
|
111
|
+
* @supported iOS 26 and higher
|
|
112
|
+
*/
|
|
113
|
+
hidesSharedBackground?: boolean | undefined;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface SupportsIdentifierIOS {
|
|
117
|
+
/**
|
|
118
|
+
* @summary Stable identifier used to match the item across different screens
|
|
119
|
+
* for more intelligent animation on transition.
|
|
120
|
+
*
|
|
121
|
+
* @description
|
|
122
|
+
* When navigating between screens, iOS tries to match similarly looking items (i.e. same sfSymbol)
|
|
123
|
+
* and animate between them. If the heuristic fails, a simpler crossfade is applied.
|
|
124
|
+
* In a situation where visually different items should be logically considered the same across screens,
|
|
125
|
+
* you may use this prop to tell this fact to the system. The identifier shouldn't be updated at runtime;
|
|
126
|
+
* doing so will result in item rebuild and visual flash.
|
|
127
|
+
*
|
|
128
|
+
* @platform iOS
|
|
129
|
+
*
|
|
130
|
+
* @supported iOS 26 and higher
|
|
131
|
+
*/
|
|
132
|
+
identifier?: string | undefined;
|
|
133
|
+
}
|
|
134
|
+
|
|
97
135
|
/**
|
|
98
136
|
* @summary Native header item with text label.
|
|
99
137
|
*
|
|
@@ -101,7 +139,9 @@ export interface SupportsMenuIOS {
|
|
|
101
139
|
*/
|
|
102
140
|
export interface StackHeaderInlineItemIOS
|
|
103
141
|
extends StackHeaderBaseItemIOS,
|
|
104
|
-
SupportsMenuIOS
|
|
142
|
+
SupportsMenuIOS,
|
|
143
|
+
SupportsIdentifierIOS,
|
|
144
|
+
SupportsSharedBackgroundIOS {
|
|
105
145
|
/**
|
|
106
146
|
* @summary Marks this object as a header item definition.
|
|
107
147
|
*
|
|
@@ -126,7 +166,10 @@ export interface StackHeaderInlineItemIOS
|
|
|
126
166
|
*
|
|
127
167
|
* @platform iOS
|
|
128
168
|
*/
|
|
129
|
-
export interface StackHeaderInlineCustomItemIOS
|
|
169
|
+
export interface StackHeaderInlineCustomItemIOS
|
|
170
|
+
extends SupportsMenuIOS,
|
|
171
|
+
SupportsIdentifierIOS,
|
|
172
|
+
SupportsSharedBackgroundIOS {
|
|
130
173
|
/**
|
|
131
174
|
* @summary A unique identifier within the screen header.
|
|
132
175
|
*
|
|
@@ -250,7 +293,172 @@ export interface StackHeaderTitleCustomItemIOS {
|
|
|
250
293
|
render: () => ReactElement;
|
|
251
294
|
}
|
|
252
295
|
|
|
296
|
+
/**
|
|
297
|
+
* @summary Controls how the back button title is displayed.
|
|
298
|
+
*
|
|
299
|
+
* @description
|
|
300
|
+
* - `default`: the system chooses the title depending on available space.
|
|
301
|
+
* On iOS < 26 options include: custom title (defaults to previous screen title),
|
|
302
|
+
* generic "Back", no title; on iOS >= 26 it's either custom title (if set) or no title.
|
|
303
|
+
* - `generic`: on iOS < 26, the system uses a generic "Back" title or no title;
|
|
304
|
+
* on iOS >= 26 it's the same as `minimal`.
|
|
305
|
+
* - `minimal`: no title is displayed next to the back button chevron.
|
|
306
|
+
*
|
|
307
|
+
* @platform iOS
|
|
308
|
+
*/
|
|
309
|
+
export type StackHeaderBackButtonDisplayModeIOS =
|
|
310
|
+
| 'default'
|
|
311
|
+
| 'generic'
|
|
312
|
+
| 'minimal';
|
|
313
|
+
|
|
314
|
+
export interface StackHeaderAppearanceIOS {
|
|
315
|
+
/**
|
|
316
|
+
* @summary Specifies the font family used for the title of the header.
|
|
317
|
+
*
|
|
318
|
+
* @platform ios
|
|
319
|
+
*/
|
|
320
|
+
titleFontFamily?: TextStyle['fontFamily'] | undefined;
|
|
321
|
+
/**
|
|
322
|
+
* @summary Specifies the font size used for the title of the header.
|
|
323
|
+
*
|
|
324
|
+
* @platform ios
|
|
325
|
+
*/
|
|
326
|
+
titleFontSize?: TextStyle['fontSize'] | undefined;
|
|
327
|
+
/**
|
|
328
|
+
* @summary Specifies the font weight used for the title of the header.
|
|
329
|
+
*
|
|
330
|
+
* @platform ios
|
|
331
|
+
*/
|
|
332
|
+
titleFontWeight?: TextStyle['fontWeight'] | undefined;
|
|
333
|
+
/**
|
|
334
|
+
* @summary Specifies the font style used for the title of the header.
|
|
335
|
+
*
|
|
336
|
+
* @platform ios
|
|
337
|
+
*/
|
|
338
|
+
titleFontStyle?: TextStyle['fontStyle'] | undefined;
|
|
339
|
+
/**
|
|
340
|
+
* @summary Specifies the font color used for the title of the header.
|
|
341
|
+
*
|
|
342
|
+
* @platform ios
|
|
343
|
+
*/
|
|
344
|
+
titleFontColor?: TextStyle['color'] | undefined;
|
|
345
|
+
/**
|
|
346
|
+
* @summary Specifies the font family used for the large title of the header.
|
|
347
|
+
*
|
|
348
|
+
* @platform ios
|
|
349
|
+
*/
|
|
350
|
+
largeTitleFontFamily?: TextStyle['fontFamily'] | undefined;
|
|
351
|
+
/**
|
|
352
|
+
* @summary Specifies the font size used for the large title of the header.
|
|
353
|
+
*
|
|
354
|
+
* @platform ios
|
|
355
|
+
*/
|
|
356
|
+
largeTitleFontSize?: TextStyle['fontSize'] | undefined;
|
|
357
|
+
/**
|
|
358
|
+
* @summary Specifies the font weight used for the large title of the header.
|
|
359
|
+
*
|
|
360
|
+
* @platform ios
|
|
361
|
+
*/
|
|
362
|
+
largeTitleFontWeight?: TextStyle['fontWeight'] | undefined;
|
|
363
|
+
/**
|
|
364
|
+
* @summary Specifies the font style used for the large title of the header.
|
|
365
|
+
*
|
|
366
|
+
* @platform ios
|
|
367
|
+
*/
|
|
368
|
+
largeTitleFontStyle?: TextStyle['fontStyle'] | undefined;
|
|
369
|
+
/**
|
|
370
|
+
* @summary Specifies the font color used for the large title of the header.
|
|
371
|
+
*
|
|
372
|
+
* @platform ios
|
|
373
|
+
*/
|
|
374
|
+
largeTitleFontColor?: TextStyle['color'] | undefined;
|
|
375
|
+
/**
|
|
376
|
+
* @summary Specifies the font family used for the subtitle of the header.
|
|
377
|
+
*
|
|
378
|
+
* @description Applies to both the regular and the large subtitle.
|
|
379
|
+
*
|
|
380
|
+
* @platform ios
|
|
381
|
+
*
|
|
382
|
+
* @supported iOS 26 and higher
|
|
383
|
+
*/
|
|
384
|
+
subtitleFontFamily?: TextStyle['fontFamily'] | undefined;
|
|
385
|
+
/**
|
|
386
|
+
* @summary Specifies the font size used for the subtitle of the header.
|
|
387
|
+
*
|
|
388
|
+
* @description Applies to both the regular and the large subtitle.
|
|
389
|
+
*
|
|
390
|
+
* @platform ios
|
|
391
|
+
*
|
|
392
|
+
* @supported iOS 26 and higher
|
|
393
|
+
*/
|
|
394
|
+
subtitleFontSize?: TextStyle['fontSize'] | undefined;
|
|
395
|
+
/**
|
|
396
|
+
* @summary Specifies the font weight used for the subtitle of the header.
|
|
397
|
+
*
|
|
398
|
+
* @description Applies to both the regular and the large subtitle.
|
|
399
|
+
*
|
|
400
|
+
* @platform ios
|
|
401
|
+
*
|
|
402
|
+
* @supported iOS 26 and higher
|
|
403
|
+
*/
|
|
404
|
+
subtitleFontWeight?: TextStyle['fontWeight'] | undefined;
|
|
405
|
+
/**
|
|
406
|
+
* @summary Specifies the font style used for the subtitle of the header.
|
|
407
|
+
*
|
|
408
|
+
* @description Applies to both the regular and the large subtitle.
|
|
409
|
+
*
|
|
410
|
+
* @platform ios
|
|
411
|
+
*
|
|
412
|
+
* @supported iOS 26 and higher
|
|
413
|
+
*/
|
|
414
|
+
subtitleFontStyle?: TextStyle['fontStyle'] | undefined;
|
|
415
|
+
/**
|
|
416
|
+
* @summary Specifies the font color used for the subtitle of the header.
|
|
417
|
+
*
|
|
418
|
+
* @description Applies to both the regular and the large subtitle.
|
|
419
|
+
*
|
|
420
|
+
* @platform ios
|
|
421
|
+
*
|
|
422
|
+
* @supported iOS 26 and higher
|
|
423
|
+
*/
|
|
424
|
+
subtitleFontColor?: TextStyle['color'] | undefined;
|
|
425
|
+
}
|
|
426
|
+
|
|
253
427
|
export interface StackHeaderConfigPropsIOS {
|
|
428
|
+
/**
|
|
429
|
+
* @summary Title displayed next to the back button on this screen.
|
|
430
|
+
*
|
|
431
|
+
* @description
|
|
432
|
+
* Configured on the screen whose back button it applies to (the screen that
|
|
433
|
+
* is pushed on top). When unset, the system derives the back title from the
|
|
434
|
+
* previous screen's `title`.
|
|
435
|
+
*
|
|
436
|
+
* @platform iOS
|
|
437
|
+
*/
|
|
438
|
+
backButtonTitle?: string | undefined;
|
|
439
|
+
/**
|
|
440
|
+
* @summary Controls how the back button title is displayed.
|
|
441
|
+
*
|
|
442
|
+
* @default 'default'
|
|
443
|
+
*
|
|
444
|
+
* @platform iOS
|
|
445
|
+
*/
|
|
446
|
+
backButtonDisplayMode?: StackHeaderBackButtonDisplayModeIOS | undefined;
|
|
447
|
+
/**
|
|
448
|
+
* @summary Whether the back button shows the navigation history menu.
|
|
449
|
+
*
|
|
450
|
+
* @description
|
|
451
|
+
* Configured on the screen whose back button it applies to (the screen that
|
|
452
|
+
* is pushed on top). When `false`, the navigation history menu is not shown
|
|
453
|
+
* on either of the gestures that normally open it: long-pressing the back
|
|
454
|
+
* button and secondary-clicking it (trackpad / mouse right click); tapping
|
|
455
|
+
* it still pops the screen.
|
|
456
|
+
*
|
|
457
|
+
* @default true
|
|
458
|
+
*
|
|
459
|
+
* @platform iOS
|
|
460
|
+
*/
|
|
461
|
+
backButtonMenuEnabled?: boolean | undefined;
|
|
254
462
|
/**
|
|
255
463
|
* @summary Custom item to display as a subtitle.
|
|
256
464
|
*
|
|
@@ -287,6 +495,19 @@ export interface StackHeaderConfigPropsIOS {
|
|
|
287
495
|
* @platform iOS
|
|
288
496
|
*/
|
|
289
497
|
titleItem?: StackHeaderTitleCustomItemIOS | undefined;
|
|
498
|
+
/**
|
|
499
|
+
* @summary Menu definition for the title context menu.
|
|
500
|
+
*
|
|
501
|
+
* @description
|
|
502
|
+
* Configures a dropdown menu attached to the navigation bar title area.
|
|
503
|
+
* Works independently of {@link titleItem}; the menu appears for both
|
|
504
|
+
* plain text and custom view title.
|
|
505
|
+
*
|
|
506
|
+
* @platform iOS
|
|
507
|
+
*
|
|
508
|
+
* @supported iOS 16 and higher
|
|
509
|
+
*/
|
|
510
|
+
titleMenu?: StackHeaderMenuIOS | undefined;
|
|
290
511
|
/**
|
|
291
512
|
* @summary A list of items placed starting from the trailing edge.
|
|
292
513
|
* If there is not enough space to fit some items, they are moved to the overflow menu, one by one.
|
|
@@ -338,6 +559,34 @@ export interface StackHeaderConfigPropsIOS {
|
|
|
338
559
|
* @supported iOS 26 and higher
|
|
339
560
|
*/
|
|
340
561
|
largeSubtitleItem?: StackHeaderTitleCustomItemIOS | undefined;
|
|
562
|
+
/**
|
|
563
|
+
* @summary A single line of text displayed at the top of the navigation bar,
|
|
564
|
+
* above the title.
|
|
565
|
+
*
|
|
566
|
+
* @description
|
|
567
|
+
* Setting this prop increases the height of the navigation bar.
|
|
568
|
+
*
|
|
569
|
+
* @platform iOS
|
|
570
|
+
*/
|
|
571
|
+
prompt?: string | undefined;
|
|
572
|
+
/**
|
|
573
|
+
* @summary Appearance of the header when the edge of scrollable content
|
|
574
|
+
* is not aligned with the edge of the header.
|
|
575
|
+
*
|
|
576
|
+
* @platform ios
|
|
577
|
+
*/
|
|
578
|
+
standardAppearance?: StackHeaderAppearanceIOS | undefined;
|
|
579
|
+
/**
|
|
580
|
+
* @summary Appearance of the header when the edge of scrollable content
|
|
581
|
+
* is aligned with the edge of the header.
|
|
582
|
+
*
|
|
583
|
+
* @description If unset, derives the configuration from `standardAppearance`,
|
|
584
|
+
* otherwise becomes a standalone definition. In both cases it keeps transparent
|
|
585
|
+
* background by default (iOS <18).
|
|
586
|
+
*
|
|
587
|
+
* @platform ios
|
|
588
|
+
*/
|
|
589
|
+
scrollEdgeAppearance?: StackHeaderAppearanceIOS | undefined;
|
|
341
590
|
}
|
|
342
591
|
|
|
343
592
|
export interface StackHeaderConfigCommandsIOS {
|
|
@@ -11,9 +11,9 @@ export interface StackHeaderConfigPropsBase {
|
|
|
11
11
|
*/
|
|
12
12
|
title?: string | undefined;
|
|
13
13
|
/**
|
|
14
|
-
* @summary Subtitle displayed in the header.
|
|
14
|
+
* @summary Subtitle displayed in the header.
|
|
15
15
|
*
|
|
16
|
-
* @platform ios
|
|
16
|
+
* @platform android, ios
|
|
17
17
|
*/
|
|
18
18
|
subtitle?: string | undefined;
|
|
19
19
|
/**
|
|
@@ -2,30 +2,8 @@ import React, { useCallback, useMemo } from 'react';
|
|
|
2
2
|
import StackHeaderItemIOSNativeComponent from '../../../../fabric/stack/StackHeaderItemIOSNativeComponent';
|
|
3
3
|
import type { HeaderItemPressEvent } from '../../../../fabric/stack/StackHeaderItemIOSNativeComponent';
|
|
4
4
|
import type { StackHeaderItemProps } from './StackHeaderItem.ios.types';
|
|
5
|
-
import type {
|
|
6
|
-
StackHeaderMenuIOS,
|
|
7
|
-
StackHeaderMenuElementIOS,
|
|
8
|
-
} from './StackHeaderMenu.ios.types';
|
|
9
5
|
import { NativeSyntheticEvent, StyleSheet } from 'react-native';
|
|
10
|
-
import { resolveIconAssetSources } from './iconUtils.ios';
|
|
11
|
-
|
|
12
|
-
function resolveMenuElementIcons(
|
|
13
|
-
element: StackHeaderMenuElementIOS,
|
|
14
|
-
): StackHeaderMenuElementIOS {
|
|
15
|
-
if (element.type === 'menuItem') {
|
|
16
|
-
if (element.icon == null) {
|
|
17
|
-
return element;
|
|
18
|
-
}
|
|
19
|
-
return { ...element, icon: resolveIconAssetSources(element.icon) };
|
|
20
|
-
}
|
|
21
|
-
return resolveMenuIcons(element);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function resolveMenuIcons(menu: StackHeaderMenuIOS): StackHeaderMenuIOS {
|
|
25
|
-
const resolvedIcon = resolveIconAssetSources(menu.icon);
|
|
26
|
-
const resolvedChildren = menu.children.map(resolveMenuElementIcons);
|
|
27
|
-
return { ...menu, icon: resolvedIcon, children: resolvedChildren };
|
|
28
|
-
}
|
|
6
|
+
import { resolveIconAssetSources, resolveMenuIcons } from './iconUtils.ios';
|
|
29
7
|
|
|
30
8
|
export default function StackHeaderItem(props: StackHeaderItemProps) {
|
|
31
9
|
const { render, onPress, icon, menu, ...rest } = props;
|
|
@@ -12,6 +12,8 @@ export type StackHeaderItemPlacement =
|
|
|
12
12
|
export type StackHeaderItemProps = {
|
|
13
13
|
placement: StackHeaderItemPlacement;
|
|
14
14
|
itemId?: string | undefined;
|
|
15
|
+
identifier?: string | undefined;
|
|
16
|
+
hidesSharedBackground?: boolean | undefined;
|
|
15
17
|
title?: string | undefined;
|
|
16
18
|
icon?: PlatformIconIOS | undefined;
|
|
17
19
|
render?: (() => ReactElement) | undefined;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { PlatformIconIOS as ResolvedPlatformIconIOS } from '../../../../fabric/stack/StackHeaderItemIOSNativeComponent';
|
|
2
2
|
import type { PlatformIconIOS } from '../../../shared/types';
|
|
3
|
+
import type {
|
|
4
|
+
StackHeaderMenuIOS,
|
|
5
|
+
StackHeaderMenuElementIOS,
|
|
6
|
+
} from './StackHeaderMenu.ios.types';
|
|
3
7
|
import { Image } from 'react-native';
|
|
4
8
|
|
|
5
9
|
export function resolveIconAssetSources(
|
|
@@ -9,16 +13,48 @@ export function resolveIconAssetSources(
|
|
|
9
13
|
return undefined;
|
|
10
14
|
}
|
|
11
15
|
if (icon.type === 'imageSource') {
|
|
16
|
+
const resolvedImageSource = Image.resolveAssetSource(icon.imageSource);
|
|
17
|
+
|
|
18
|
+
if (!resolvedImageSource) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
|
|
12
22
|
return {
|
|
13
23
|
type: 'imageSource',
|
|
14
|
-
imageSource:
|
|
24
|
+
imageSource: resolvedImageSource,
|
|
15
25
|
};
|
|
16
26
|
}
|
|
17
27
|
if (icon.type === 'templateSource') {
|
|
28
|
+
const resolvedTemplateSource = Image.resolveAssetSource(
|
|
29
|
+
icon.templateSource,
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
if (!resolvedTemplateSource) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
|
|
18
36
|
return {
|
|
19
37
|
type: 'templateSource',
|
|
20
|
-
templateSource:
|
|
38
|
+
templateSource: resolvedTemplateSource,
|
|
21
39
|
};
|
|
22
40
|
}
|
|
23
41
|
return icon;
|
|
24
42
|
}
|
|
43
|
+
|
|
44
|
+
export function resolveMenuElementIcons(
|
|
45
|
+
element: StackHeaderMenuElementIOS,
|
|
46
|
+
): StackHeaderMenuElementIOS {
|
|
47
|
+
if (element.type === 'menuItem') {
|
|
48
|
+
if (element.icon == null) {
|
|
49
|
+
return element;
|
|
50
|
+
}
|
|
51
|
+
return { ...element, icon: resolveIconAssetSources(element.icon) };
|
|
52
|
+
}
|
|
53
|
+
return resolveMenuIcons(element);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function resolveMenuIcons(menu: StackHeaderMenuIOS): StackHeaderMenuIOS {
|
|
57
|
+
const resolvedIcon = resolveIconAssetSources(menu.icon);
|
|
58
|
+
const resolvedChildren = menu.children.map(resolveMenuElementIcons);
|
|
59
|
+
return { ...menu, icon: resolvedIcon, children: resolvedChildren };
|
|
60
|
+
}
|
|
@@ -2,20 +2,15 @@ import {
|
|
|
2
2
|
StackHeaderMenuElementIOS,
|
|
3
3
|
StackHeaderMenuIOS,
|
|
4
4
|
} from './ios/StackHeaderMenu.ios.types';
|
|
5
|
-
import { SupportsMenuIOS } from './StackHeaderConfig.ios.types';
|
|
6
5
|
|
|
7
|
-
export function
|
|
8
|
-
|
|
6
|
+
export function findMenuElementByIdInMenus(
|
|
7
|
+
menus: StackHeaderMenuIOS[],
|
|
9
8
|
id: string,
|
|
10
9
|
): StackHeaderMenuElementIOS | null {
|
|
11
|
-
for (const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const menu = findMenuElementById(item.menu, id);
|
|
17
|
-
if (menu !== null) {
|
|
18
|
-
return menu;
|
|
10
|
+
for (const menu of menus) {
|
|
11
|
+
const element = findMenuElementById(menu, id);
|
|
12
|
+
if (element !== null) {
|
|
13
|
+
return element;
|
|
19
14
|
}
|
|
20
15
|
}
|
|
21
16
|
|
|
@@ -6,9 +6,11 @@ import type { StackHostProps } from './StackHost.types';
|
|
|
6
6
|
/**
|
|
7
7
|
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
|
|
8
8
|
*/
|
|
9
|
-
function StackHost(
|
|
9
|
+
function StackHost(props: StackHostProps) {
|
|
10
|
+
const { children, ref, ...restProps } = props;
|
|
11
|
+
|
|
10
12
|
return (
|
|
11
|
-
<StackHostNativeComponent ref={ref} style={styles.container}>
|
|
13
|
+
<StackHostNativeComponent ref={ref} style={styles.container} {...restProps}>
|
|
12
14
|
{children}
|
|
13
15
|
</StackHostNativeComponent>
|
|
14
16
|
);
|
|
@@ -1,13 +1,37 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { HostInstance, ViewProps } from 'react-native';
|
|
3
3
|
import { type NativeProps } from '../../../fabric/stack/StackHostNativeComponent';
|
|
4
|
+
import type { ColorScheme } from '../../shared/types';
|
|
5
|
+
|
|
6
|
+
export type StackHostColorScheme = ColorScheme | 'inherit';
|
|
4
7
|
|
|
5
8
|
export type StackHostProps = {
|
|
9
|
+
// General
|
|
6
10
|
children: NonNullable<ViewProps['children']>;
|
|
7
11
|
// TODO: Work on these types
|
|
8
12
|
ref?:
|
|
9
|
-
| React.RefObject<
|
|
10
|
-
(React.Component<NativeProps> & ReactNativeElement) | null
|
|
11
|
-
>
|
|
13
|
+
| React.RefObject<(React.Component<NativeProps> & HostInstance) | null>
|
|
12
14
|
| undefined;
|
|
15
|
+
/**
|
|
16
|
+
* @summary Specifies the color scheme used by the container and any child
|
|
17
|
+
* containers.
|
|
18
|
+
*
|
|
19
|
+
* The following values are currently supported:
|
|
20
|
+
* - `inherit` - the interface style from parent,
|
|
21
|
+
* - `light` - the light interface style,
|
|
22
|
+
* - `dark` - the dark interface style.
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* Color scheme isn't currently supported on iOS.
|
|
26
|
+
*
|
|
27
|
+
* On Android, changing the effective color scheme rebuilds the header.
|
|
28
|
+
* Toolbar menu state survives the rebuild: checkbox/radio selections and
|
|
29
|
+
* changes applied via the `updateToolbarMenuElements` view command are
|
|
30
|
+
* reapplied to the new toolbar.
|
|
31
|
+
*
|
|
32
|
+
* @default inherit
|
|
33
|
+
*
|
|
34
|
+
* @platform android
|
|
35
|
+
*/
|
|
36
|
+
colorScheme?: StackHostColorScheme | undefined;
|
|
13
37
|
};
|