expo-router 56.2.13 → 56.2.15
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/android/build.gradle +2 -2
- package/build/exports.d.ts +2 -1
- package/build/exports.d.ts.map +1 -1
- package/build/exports.js.map +1 -1
- package/build/fork/extractPathFromURL.d.ts.map +1 -1
- package/build/fork/extractPathFromURL.js +5 -2
- package/build/fork/extractPathFromURL.js.map +1 -1
- package/build/fork/useLinking.native.js +1 -1
- package/build/fork/useLinking.native.js.map +1 -1
- package/build/global-state/getRouteInfoFromState.d.ts.map +1 -1
- package/build/global-state/getRouteInfoFromState.js +3 -11
- package/build/global-state/getRouteInfoFromState.js.map +1 -1
- package/build/global-state/store.d.ts +3 -4
- package/build/global-state/store.d.ts.map +1 -1
- package/build/global-state/store.js.map +1 -1
- package/build/global-state/useStore.d.ts.map +1 -1
- package/build/global-state/useStore.js +0 -4
- package/build/global-state/useStore.js.map +1 -1
- package/build/native-tabs/NativeTabTrigger.d.ts +1 -1
- package/build/native-tabs/NativeTabTrigger.d.ts.map +1 -1
- package/build/native-tabs/NativeTabTrigger.js +9 -1
- package/build/native-tabs/NativeTabTrigger.js.map +1 -1
- package/build/native-tabs/types.d.ts +31 -0
- package/build/native-tabs/types.d.ts.map +1 -1
- package/build/native-tabs/types.js.map +1 -1
- package/build/react-navigation/native-stack/index.d.ts +1 -1
- package/build/react-navigation/native-stack/index.d.ts.map +1 -1
- package/build/react-navigation/native-stack/index.js.map +1 -1
- package/build/react-navigation/native-stack/types.d.ts +17 -0
- package/build/react-navigation/native-stack/types.d.ts.map +1 -1
- package/build/react-navigation/native-stack/types.js.map +1 -1
- package/build/react-navigation/native-stack/views/NativeStackView.native.d.ts.map +1 -1
- package/build/react-navigation/native-stack/views/NativeStackView.native.js +3 -2
- package/build/react-navigation/native-stack/views/NativeStackView.native.js.map +1 -1
- package/build/react-navigation/native-stack/views/useHeaderConfigProps.d.ts +1 -1
- package/build/react-navigation/native-stack/views/useHeaderConfigProps.d.ts.map +1 -1
- package/build/react-navigation/native-stack/views/useHeaderConfigProps.js +3 -1
- package/build/react-navigation/native-stack/views/useHeaderConfigProps.js.map +1 -1
- package/build/testing-library/context-stubs.d.ts +13 -0
- package/build/testing-library/context-stubs.d.ts.map +1 -1
- package/build/testing-library/context-stubs.js +38 -2
- package/build/testing-library/context-stubs.js.map +1 -1
- package/build/toolbar/native.android.d.ts.map +1 -1
- package/build/toolbar/native.android.js +6 -2
- package/build/toolbar/native.android.js.map +1 -1
- package/build/utils/url.d.ts +2 -0
- package/build/utils/url.d.ts.map +1 -1
- package/build/utils/url.js +21 -0
- package/build/utils/url.js.map +1 -1
- package/expo-module.config.json +1 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13.module → 56.2.15/expo.modules.router-56.2.15.module} +7 -7
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.15/expo.modules.router-56.2.15.module.md5 +1 -0
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.15/expo.modules.router-56.2.15.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.15/expo.modules.router-56.2.15.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.15/expo.modules.router-56.2.15.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13.pom → 56.2.15/expo.modules.router-56.2.15.pom} +1 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.15/expo.modules.router-56.2.15.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.15/expo.modules.router-56.2.15.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.15/expo.modules.router-56.2.15.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.15/expo.modules.router-56.2.15.pom.sha512 +1 -0
- package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml +4 -4
- package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha512 +1 -1
- package/package.json +7 -7
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.13/expo.modules.router-56.2.13.module.md5 +0 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.13/expo.modules.router-56.2.13.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.13/expo.modules.router-56.2.13.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.13/expo.modules.router-56.2.13.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.13/expo.modules.router-56.2.13.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.13/expo.modules.router-56.2.13.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.13/expo.modules.router-56.2.13.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/router/expo.modules.router/56.2.13/expo.modules.router-56.2.13.pom.sha512 +0 -1
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13-sources.jar → 56.2.15/expo.modules.router-56.2.15-sources.jar} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13-sources.jar.md5 → 56.2.15/expo.modules.router-56.2.15-sources.jar.md5} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13-sources.jar.sha1 → 56.2.15/expo.modules.router-56.2.15-sources.jar.sha1} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13-sources.jar.sha256 → 56.2.15/expo.modules.router-56.2.15-sources.jar.sha256} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13-sources.jar.sha512 → 56.2.15/expo.modules.router-56.2.15-sources.jar.sha512} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13.aar → 56.2.15/expo.modules.router-56.2.15.aar} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13.aar.md5 → 56.2.15/expo.modules.router-56.2.15.aar.md5} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13.aar.sha1 → 56.2.15/expo.modules.router-56.2.15.aar.sha1} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13.aar.sha256 → 56.2.15/expo.modules.router-56.2.15.aar.sha256} +0 -0
- /package/local-maven-repo/expo/modules/router/expo.modules.router/{56.2.13/expo.modules.router-56.2.13.aar.sha512 → 56.2.15/expo.modules.router-56.2.15.aar.sha512} +0 -0
|
@@ -155,6 +155,16 @@ export interface NativeTabOptions extends DefaultRouterOptions {
|
|
|
155
155
|
* @platform iOS
|
|
156
156
|
*/
|
|
157
157
|
disabled?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* @platform android
|
|
160
|
+
* @platform iOS
|
|
161
|
+
*/
|
|
162
|
+
tabBarItemTestID?: string;
|
|
163
|
+
/**
|
|
164
|
+
* @platform android
|
|
165
|
+
* @platform iOS
|
|
166
|
+
*/
|
|
167
|
+
tabBarItemAccessibilityLabel?: string;
|
|
158
168
|
/**
|
|
159
169
|
* @platform iOS
|
|
160
170
|
*/
|
|
@@ -499,6 +509,27 @@ export interface NativeTabTriggerProps {
|
|
|
499
509
|
* @platform ios
|
|
500
510
|
*/
|
|
501
511
|
disabled?: boolean;
|
|
512
|
+
/**
|
|
513
|
+
* A test identifier for the tab bar item.
|
|
514
|
+
*
|
|
515
|
+
* On iOS it maps to the item's accessibility identifier, which XCUITest and Maestro match.
|
|
516
|
+
* On Android it maps to the item's view tag, which Espresso-based drivers like Detox read
|
|
517
|
+
* but Maestro and Appium do not. Use `accessibilityLabel` to match the tab by id there.
|
|
518
|
+
*
|
|
519
|
+
* @platform android
|
|
520
|
+
* @platform iOS
|
|
521
|
+
*/
|
|
522
|
+
testID?: string;
|
|
523
|
+
/**
|
|
524
|
+
* The accessibility label of the tab bar item, announced by screen readers.
|
|
525
|
+
* Defaults to the visible tab label.
|
|
526
|
+
*
|
|
527
|
+
* On Android, maps to the item's `contentDescription` and requires API 26 or above.
|
|
528
|
+
*
|
|
529
|
+
* @platform android
|
|
530
|
+
* @platform iOS
|
|
531
|
+
*/
|
|
532
|
+
accessibilityLabel?: string;
|
|
502
533
|
/**
|
|
503
534
|
* The children of the trigger.
|
|
504
535
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/native-tabs/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/native-tabs/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/native-tabs/types.ts"],"names":[],"mappings":";;;AAiQa,QAAA,sBAAsB,GAAG;IACpC,MAAM;IACN,eAAe;IACf,YAAY;IACZ,OAAO;IACP,MAAM;IACN,SAAS;IACT,WAAW;IACX,yBAAyB;IACzB,oBAAoB;IACpB,gBAAgB;IAChB,qBAAqB;IACrB,sBAAsB;IACtB,8BAA8B;IAC9B,yBAAyB;IACzB,qBAAqB;IACrB,0BAA0B;IAC1B,2BAA2B;IAC3B,6BAA6B;IAC7B,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;IACzB,0BAA0B;CAClB,CAAC;AAuPE,QAAA,6CAA6C,GAAG;IAC3D,MAAM;IACN,UAAU;IACV,SAAS;IACT,WAAW;CACH,CAAC;AAUE,QAAA,oCAAoC,GAAG;IAClD,WAAW;IACX,OAAO;IACP,cAAc;IACd,YAAY;CACJ,CAAC;AAsLX,MAAM,4BAA4B,GAAG;IACnC,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,UAAU;CACF,CAAC","sourcesContent":["import type { PropsWithChildren } from 'react';\nimport type {\n ColorValue,\n ImageSourcePropType,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport type { TabsHostProps, TabsScreenProps } from 'react-native-screens';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport type {\n DefaultRouterOptions,\n ParamListBase,\n RouteProp,\n ScreenListeners,\n TabNavigationState,\n} from '../react-navigation/native';\nimport type { ScreenProps } from '../useScreens';\n\n/**\n * Event map for `NativeTabs` navigation events.\n * Only `tabPress` is currently supported.\n */\nexport type NativeTabNavigationEventMap = {\n tabPress: {\n data: {\n __internalTabsType: 'native';\n /**\n * `true` when the native side prevented the selection because the target\n * tab is `disabled`. The event is still emitted so listeners are notified,\n * but no navigation occurs.\n */\n isPrevented: boolean;\n };\n canPreventDefault: false;\n };\n};\n\nexport type NativeScreenProps = Partial<Omit<TabsScreenProps, 'screenKey'>>;\n\n/**\n * Props passed to the underlying tab host implementation in `react-native-screens`.\n */\nexport type NativeTabsHostNativeProps = Partial<\n Omit<TabsHostProps, 'navStateRequest' | 'onTabSelected' | 'children'>\n>;\n\nexport interface NativeTabOptions extends DefaultRouterOptions {\n /**\n * @platform android\n * @platform iOS\n */\n icon?: SymbolOrImageSource;\n /**\n * @platform android\n * @platform iOS\n */\n selectedIcon?: SymbolOrImageSource;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n title?: string;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n badgeValue?: string;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n selectedLabelStyle?: NativeTabsLabelStyle;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n labelStyle?: NativeTabsLabelStyle;\n /**\n * @platform iOS\n */\n role?: NativeTabsTabBarItemRole;\n /**\n * @platform android\n * @platform iOS\n */\n selectedIconColor?: ColorValue;\n /**\n * @platform iOS\n */\n selectedBadgeBackgroundColor?: ColorValue;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n badgeBackgroundColor?: ColorValue;\n /**\n * @platform android\n * @platform web\n */\n badgeTextColor?: ColorValue;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n backgroundColor?: ColorValue;\n /**\n * @platform iOS\n */\n blurEffect?: NativeTabsBlurEffect;\n /**\n * @platform iOS\n */\n shadowColor?: ColorValue;\n /**\n * @platform android\n * @platform iOS\n */\n iconColor?: ColorValue;\n /**\n * @platform android\n */\n tintColor?: ColorValue;\n /**\n * @platform iOS\n */\n disableTransparentOnScrollEdge?: boolean;\n /**\n * @platform iOS\n */\n titlePositionAdjustment?: {\n horizontal?: number;\n vertical?: number;\n };\n /**\n * @platform iOS\n */\n selectedTitlePositionAdjustment?: {\n horizontal?: number;\n vertical?: number;\n };\n /**\n * @platform android\n * @platform web\n */\n indicatorColor?: ColorValue;\n /**\n * @platform android\n */\n rippleColor?: ColorValue;\n /**\n * @platform android\n */\n disableIndicator?: boolean;\n /**\n * @platform android\n */\n labelVisibilityMode?: NativeTabsTabBarItemLabelVisibilityMode;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n hidden?: boolean;\n /**\n * @platform android\n * @platform iOS\n */\n disabled?: boolean;\n /**\n * @platform iOS\n */\n specialEffects?: TabsScreenProps['specialEffects'];\n /**\n * @platform android\n * @platform iOS\n */\n nativeProps?: NativeScreenProps;\n /**\n * @platform android\n * @platform iOS\n */\n disableAutomaticContentInsets?: boolean;\n /**\n * @platform android\n * @platform iOS\n */\n contentStyle?: Pick<\n ViewStyle,\n | 'backgroundColor'\n | 'experimental_backgroundImage'\n | 'padding'\n | 'paddingTop'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingBlock'\n | 'paddingBlockEnd'\n | 'paddingBlockStart'\n | 'paddingInline'\n | 'paddingInlineEnd'\n | 'paddingInlineStart'\n | 'paddingEnd'\n | 'paddingHorizontal'\n | 'paddingVertical'\n | 'paddingStart'\n | 'alignContent'\n | 'alignItems'\n | 'justifyContent'\n | 'flexDirection'\n | 'gap'\n >;\n}\n\nexport type SymbolOrImageSource =\n | {\n /**\n * The name of the SF Symbol to use as an icon.\n * @platform iOS\n */\n sf?: SFSymbol;\n /**\n * The name of the iOS asset catalog image to use as an icon.\n * @platform iOS\n */\n xcasset?: string;\n /**\n * The name of the drawable resource to use as an icon.\n * @platform android\n */\n drawable?: string;\n }\n | {\n /**\n * The image source to use as an icon.\n */\n src?: ImageSourcePropType | Promise<ImageSourcePropType | null>;\n /**\n * Controls how the icon is rendered on iOS.\n * @platform ios\n * @default 'template'\n */\n renderingMode?: 'template' | 'original';\n };\n\nexport type NativeTabsLabelStyle = Pick<\n TextStyle,\n 'fontFamily' | 'fontSize' | 'fontStyle' | 'fontWeight' | 'color'\n>;\n\nexport const SUPPORTED_BLUR_EFFECTS = [\n 'none',\n 'systemDefault',\n 'extraLight',\n 'light',\n 'dark',\n 'regular',\n 'prominent',\n 'systemUltraThinMaterial',\n 'systemThinMaterial',\n 'systemMaterial',\n 'systemThickMaterial',\n 'systemChromeMaterial',\n 'systemUltraThinMaterialLight',\n 'systemThinMaterialLight',\n 'systemMaterialLight',\n 'systemThickMaterialLight',\n 'systemChromeMaterialLight',\n 'systemUltraThinMaterialDark',\n 'systemThinMaterialDark',\n 'systemMaterialDark',\n 'systemThickMaterialDark',\n 'systemChromeMaterialDark',\n] as const;\n\n/**\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uiblureffect/style)\n */\nexport type NativeTabsBlurEffect = (typeof SUPPORTED_BLUR_EFFECTS)[number];\n\nexport interface NativeTabsProps extends PropsWithChildren {\n // #region common props\n /**\n * The style of the every tab label in the tab bar.\n */\n labelStyle?:\n | StyleProp<NativeTabsLabelStyle>\n | {\n default?: StyleProp<NativeTabsLabelStyle>;\n selected?: StyleProp<NativeTabsLabelStyle>;\n };\n /**\n * The color of every tab icon in the tab bar.\n */\n iconColor?: ColorValue | { default?: ColorValue; selected?: ColorValue };\n /**\n * The tint color of the tab icon.\n *\n * Can be overridden by icon color and label color for each tab individually.\n */\n tintColor?: ColorValue;\n /**\n * The background color of the tab bar.\n */\n backgroundColor?: ColorValue;\n /**\n * The background color of every badge in the tab bar.\n */\n badgeBackgroundColor?: ColorValue;\n /**\n * When set to `true`, hides the tab bar.\n *\n * @default false\n */\n hidden?: boolean;\n // #endregion common props\n // #region iOS props\n /**\n * Specifies the minimize behavior for the tab bar.\n *\n * Available starting from iOS 26.\n *\n * The following values are currently supported:\n *\n * - `automatic` - resolves to the system default minimize behavior\n * - `never` - the tab bar does not minimize\n * - `onScrollDown` - the tab bar minimizes when scrolling down and\n * expands when scrolling back up\n * - `onScrollUp` - the tab bar minimizes when scrolling up and expands\n * when scrolling back down\n *\n * @see The supported values correspond to the official [Apple documentation](https://developer.apple.com/documentation/uikit/uitabbarcontroller/minimizebehavior).\n *\n * @default automatic\n *\n * @platform iOS 26+\n */\n minimizeBehavior?: NativeTabsTabBarMinimizeBehavior;\n /**\n * The blur effect applied to the tab bar.\n *\n * @platform iOS\n */\n blurEffect?: NativeTabsBlurEffect;\n /**\n * The color of the shadow.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uibarappearance/shadowcolor)\n *\n * @platform iOS\n */\n shadowColor?: ColorValue;\n /**\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uitabbaritem/titlepositionadjustment)\n *\n * @platform iOS\n */\n titlePositionAdjustment?: {\n horizontal?: number;\n vertical?: number;\n };\n /**\n * When set to `true`, the tab bar will not become transparent when scrolled to the edge.\n *\n * @platform iOS\n */\n disableTransparentOnScrollEdge?: boolean;\n /**\n * When set to `true`, enables the sidebarAdaptable tab bar style on iPadOS and macOS. This prop has no effect on iPhone.\n *\n * @platform iOS 18+\n */\n sidebarAdaptable?: boolean;\n // #endregion iOS props\n // #region android props\n /**\n * Disables the active indicator for the tab bar.\n *\n * @platform android\n */\n disableIndicator?: boolean;\n /**\n * The behavior when navigating back with the back button.\n *\n * @platform android\n */\n backBehavior?: 'none' | 'initialRoute' | 'history';\n /**\n * The visibility mode of the tab item label.\n *\n * @see [Material Components documentation](https://github.com/material-components/material-components-android/blob/master/docs/components/BottomNavigation.md#making-navigation-bar-accessible)\n *\n * @platform android\n */\n labelVisibilityMode?: NativeTabsTabBarItemLabelVisibilityMode;\n /**\n * The color of the ripple effect when the tab is pressed.\n *\n * @platform android\n */\n rippleColor?: ColorValue;\n /**\n * The color of the tab indicator.\n *\n * @platform android\n * @platform web\n */\n indicatorColor?: ColorValue;\n /**\n * The color of the badge text.\n *\n * @platform android\n * @platform web\n */\n badgeTextColor?: ColorValue;\n /**\n * When `true`, the tab bar lifts above the keyboard (input method editor, or IME) instead of being overlaid by it. By default, the keyboard overlays the tab bar.\n *\n * Requires `windowSoftInputMode=\"adjustResize\"`. Has no effect on Android API levels earlier than 30 (Android 11).\n *\n * @default false\n * @platform android\n */\n tabBarRespectsIMEInsets?: boolean;\n // #endregion android props\n /**\n * Listeners for navigation events on all tabs.\n *\n * Supported events:\n * - `tabPress` - called when a tab is pressed\n * - `focus` - called when the screen comes into focus\n * - `blur` - called when the screen loses focus\n *\n * @example\n * ```tsx\n * <NativeTabs\n * screenListeners={{\n * tabPress: (e) => {\n * console.log('Any tab pressed');\n * },\n * }}\n * >\n * ...\n * </NativeTabs>\n * ```\n */\n screenListeners?:\n | ScreenListeners<TabNavigationState<ParamListBase>, NativeTabNavigationEventMap>\n | ((prop: {\n route: RouteProp<ParamListBase, string>;\n }) => ScreenListeners<TabNavigationState<ParamListBase>, NativeTabNavigationEventMap>);\n /**\n * Props passed to the underlying native tab host implementation in `react-native-screens`.\n * Use this to configure props that are not directly exposed by Expo Router.\n *\n * > **Note**: This is an unstable API and may change or be removed in minor versions.\n *\n * @platform android\n * @platform ios\n */\n unstable_nativeProps?: NativeTabsHostNativeProps;\n}\n\nexport interface InternalNativeTabsProps extends NativeTabsProps {\n nonTriggerChildren?: React.ReactNode;\n}\nexport interface OnTabChangeEventPayload {\n /**\n * The route key of the tab the native side has just selected.\n */\n selectedKey: string;\n /**\n * The provenance value reported by the native side for this selection.\n *\n * The navigator echoes this back via `navStateRequest.baseProvenance` on\n * subsequent JS-driven updates so the native side can distinguish stale\n * updates from fresh ones. See `TabsHostNavStateRequest` in\n * `react-native-screens` for the full contract.\n */\n provenance: number;\n // TODO(@ubax): consider renaming this field\n isNativeAction: boolean;\n /**\n * Whether the native side prevented this selection because the target tab is\n * `disabled`. When `true`, the navigator emits `tabPress` but skips navigation.\n *\n * @default false\n */\n isPrevented?: boolean;\n}\n\nexport interface NativeTabsViewProps extends Omit<\n InternalNativeTabsProps,\n | 'labelStyle'\n | 'iconColor'\n | 'backgroundColor'\n | 'badgeBackgroundColor'\n | 'blurEffect'\n | 'indicatorColor'\n | 'badgeTextColor'\n | 'rippleColor'\n | 'disableIndicator'\n | 'labelVisibilityMode'\n> {\n focusedIndex: number;\n /**\n * Provenance counter associated with the currently rendered `focusedIndex`.\n */\n provenance: number;\n tabs: NativeTabsViewTabItem[];\n onTabChange: (event: OnTabChangeEventPayload) => void;\n}\n\nexport interface NativeTabsViewTabItem {\n options: NativeTabOptions;\n routeKey: string;\n name: string;\n contentRenderer: () => React.ReactNode;\n}\n\nexport const SUPPORTED_TAB_BAR_ITEM_LABEL_VISIBILITY_MODES = [\n 'auto',\n 'selected',\n 'labeled',\n 'unlabeled',\n] as const;\n\n/**\n * @see [Material Components documentation](https://github.com/material-components/material-components-android/blob/master/docs/components/BottomNavigation.md#making-navigation-bar-accessible)\n *\n * @platform android\n */\nexport type NativeTabsTabBarItemLabelVisibilityMode =\n (typeof SUPPORTED_TAB_BAR_ITEM_LABEL_VISIBILITY_MODES)[number];\n\nexport const SUPPORTED_TAB_BAR_MINIMIZE_BEHAVIORS = [\n 'automatic',\n 'never',\n 'onScrollDown',\n 'onScrollUp',\n] as const;\n\n/**\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uitabbarcontroller/minimizebehavior)\n *\n * @platform iOS 26\n */\nexport type NativeTabsTabBarMinimizeBehavior =\n (typeof SUPPORTED_TAB_BAR_MINIMIZE_BEHAVIORS)[number];\n\nexport interface NativeTabTriggerProps {\n /**\n * The name of the route.\n *\n * This is required when used inside a Layout component.\n *\n * When used in a route it has no effect.\n */\n name?: string;\n /**\n * If true, the tab will be hidden from the tab bar.\n *\n * > **Note**: Marking a tab as `hidden` means it cannot be navigated to in any way.\n *\n * > **Note**: Dynamically hiding tabs will remount the navigator and the state will be reset.\n */\n hidden?: boolean;\n /**\n * Props passed to the underlying native tab screen implementation.\n * Use this to configure props not directly exposed by Expo Router, but available in `react-native-screens`.\n *\n * > **Note**: This will override any other props set by Expo Router and may lead to unexpected behavior.\n *\n * > **Note**: This is an unstable API and may change or be removed in minor versions.\n *\n * @platform android\n * @platform iOS\n */\n unstable_nativeProps?: NativeScreenProps;\n /**\n * If true, the tab will not pop stack to the root when selected again.\n *\n * @default false\n * @platform iOS\n */\n disablePopToTop?: boolean;\n /**\n * If true, the tab will not scroll to the top when selected again.\n * @default false\n *\n * @platform iOS\n */\n disableScrollToTop?: boolean;\n /**\n * If `true`, the tab is shown but cannot be selected by tapping it in the\n * tab bar.\n *\n * > **Note:** This only suppresses the native tap interaction. JavaScript\n * > navigation such as `router.push()` or `<Link />` still navigates to\n * > the tab. Use this for tabs that should appear visible but be temporarily inert,\n * > and gate navigation in your own code if you need to fully prevent access.\n *\n * Unlike `hidden`, the tab remains visible in the tab bar.\n *\n * @default false\n *\n * @platform android\n * @platform ios\n */\n disabled?: boolean;\n /**\n * The children of the trigger.\n *\n * Use `Icon`, `Label`, and `Badge` components to customize the tab.\n */\n children?: React.ReactNode;\n /**\n * System-provided tab bar item with predefined icon and title\n *\n * Uses Apple's built-in tab bar items (e.g., bookmarks, contacts, downloads) with\n * standard iOS styling and localized titles. Custom `icon` or `selectedIcon`\n * properties will override the system icon, but the system-defined title cannot\n * be customized.\n *\n * @see The supported values correspond to the official [Apple documentation](https://developer.apple.com/documentation/uikit/uitabbaritem/systemitem).\n * @platform ios\n */\n role?: NativeTabsTabBarItemRole;\n /**\n * The default behavior differs between iOS and Android.\n *\n * On **Android**, the content of a native tabs screen is automatically wrapped in a `SafeAreaView`,\n * and the **bottom** inset is applied. Other insets must be handled manually.\n *\n * On **iOS**, the first scroll view nested inside a native tabs screen has\n * [automatic content inset adjustment](https://reactnative.dev/docs/scrollview#contentinsetadjustmentbehavior-ios) enabled\n *\n * When this property is set to `true`, automatic content inset adjustment is disabled for the screen\n * and must be managed manually. You can use `SafeAreaView` from `react-native-screens/experimental`\n * to handle safe area insets.\n *\n * @platform android\n * @platform ios\n */\n disableAutomaticContentInsets?: boolean;\n /**\n * The style applied to the content of the tab\n *\n * Note: Only certain style properties are supported.\n */\n contentStyle?: NativeTabOptions['contentStyle'];\n /**\n * When set to `true`, the tab bar will not become transparent when scrolled to the edge.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @platform iOS\n */\n disableTransparentOnScrollEdge?: boolean;\n /**\n * The color of the ripple effect when this tab is selected - will be visible when other tabs are pressed.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @platform android\n */\n rippleColor?: ColorValue;\n /**\n * The color of the active indicator for this tab.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @platform android\n */\n indicatorColor?: ColorValue;\n /**\n * When set to `true`, disables the active indicator for this tab.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @default false\n *\n * @platform android\n */\n disableIndicator?: boolean;\n /**\n * The visibility mode of the tab item label for this tab.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @see [Material Components documentation](https://github.com/material-components/material-components-android/blob/master/docs/components/BottomNavigation.md#making-navigation-bar-accessible)\n *\n * @platform android\n */\n labelVisibilityMode?: NativeTabsTabBarItemLabelVisibilityMode;\n /**\n * Listeners for navigation events on this tab.\n *\n * Supported events:\n * - `tabPress` - called when this tab is pressed\n * - `focus` - called when this screen comes into focus\n * - `blur` - called when this screen loses focus\n *\n * @example\n * ```tsx\n * <NativeTabs.Trigger\n * name=\"home\"\n * listeners={{\n * tabPress: (e) => {\n * console.log('Home tab pressed');\n * },\n * }}\n * />\n * ```\n */\n listeners?: ScreenProps<\n any,\n TabNavigationState<ParamListBase>,\n NativeTabNavigationEventMap\n >['listeners'];\n}\n\nconst SUPPORTED_TAB_BAR_ITEM_ROLES = [\n 'bookmarks',\n 'contacts',\n 'downloads',\n 'favorites',\n 'featured',\n 'history',\n 'more',\n 'mostRecent',\n 'mostViewed',\n 'recents',\n 'search',\n 'topRated',\n] as const;\n\nexport type NativeTabsTabBarItemRole = (typeof SUPPORTED_TAB_BAR_ITEM_ROLES)[number];\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/native-tabs/types.ts"],"names":[],"mappings":";;;AA2Qa,QAAA,sBAAsB,GAAG;IACpC,MAAM;IACN,eAAe;IACf,YAAY;IACZ,OAAO;IACP,MAAM;IACN,SAAS;IACT,WAAW;IACX,yBAAyB;IACzB,oBAAoB;IACpB,gBAAgB;IAChB,qBAAqB;IACrB,sBAAsB;IACtB,8BAA8B;IAC9B,yBAAyB;IACzB,qBAAqB;IACrB,0BAA0B;IAC1B,2BAA2B;IAC3B,6BAA6B;IAC7B,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;IACzB,0BAA0B;CAClB,CAAC;AAuPE,QAAA,6CAA6C,GAAG;IAC3D,MAAM;IACN,UAAU;IACV,SAAS;IACT,WAAW;CACH,CAAC;AAUE,QAAA,oCAAoC,GAAG;IAClD,WAAW;IACX,OAAO;IACP,cAAc;IACd,YAAY;CACJ,CAAC;AA2MX,MAAM,4BAA4B,GAAG;IACnC,WAAW;IACX,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,UAAU;CACF,CAAC","sourcesContent":["import type { PropsWithChildren } from 'react';\nimport type {\n ColorValue,\n ImageSourcePropType,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport type { TabsHostProps, TabsScreenProps } from 'react-native-screens';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport type {\n DefaultRouterOptions,\n ParamListBase,\n RouteProp,\n ScreenListeners,\n TabNavigationState,\n} from '../react-navigation/native';\nimport type { ScreenProps } from '../useScreens';\n\n/**\n * Event map for `NativeTabs` navigation events.\n * Only `tabPress` is currently supported.\n */\nexport type NativeTabNavigationEventMap = {\n tabPress: {\n data: {\n __internalTabsType: 'native';\n /**\n * `true` when the native side prevented the selection because the target\n * tab is `disabled`. The event is still emitted so listeners are notified,\n * but no navigation occurs.\n */\n isPrevented: boolean;\n };\n canPreventDefault: false;\n };\n};\n\nexport type NativeScreenProps = Partial<Omit<TabsScreenProps, 'screenKey'>>;\n\n/**\n * Props passed to the underlying tab host implementation in `react-native-screens`.\n */\nexport type NativeTabsHostNativeProps = Partial<\n Omit<TabsHostProps, 'navStateRequest' | 'onTabSelected' | 'children'>\n>;\n\nexport interface NativeTabOptions extends DefaultRouterOptions {\n /**\n * @platform android\n * @platform iOS\n */\n icon?: SymbolOrImageSource;\n /**\n * @platform android\n * @platform iOS\n */\n selectedIcon?: SymbolOrImageSource;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n title?: string;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n badgeValue?: string;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n selectedLabelStyle?: NativeTabsLabelStyle;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n labelStyle?: NativeTabsLabelStyle;\n /**\n * @platform iOS\n */\n role?: NativeTabsTabBarItemRole;\n /**\n * @platform android\n * @platform iOS\n */\n selectedIconColor?: ColorValue;\n /**\n * @platform iOS\n */\n selectedBadgeBackgroundColor?: ColorValue;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n badgeBackgroundColor?: ColorValue;\n /**\n * @platform android\n * @platform web\n */\n badgeTextColor?: ColorValue;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n backgroundColor?: ColorValue;\n /**\n * @platform iOS\n */\n blurEffect?: NativeTabsBlurEffect;\n /**\n * @platform iOS\n */\n shadowColor?: ColorValue;\n /**\n * @platform android\n * @platform iOS\n */\n iconColor?: ColorValue;\n /**\n * @platform android\n */\n tintColor?: ColorValue;\n /**\n * @platform iOS\n */\n disableTransparentOnScrollEdge?: boolean;\n /**\n * @platform iOS\n */\n titlePositionAdjustment?: {\n horizontal?: number;\n vertical?: number;\n };\n /**\n * @platform iOS\n */\n selectedTitlePositionAdjustment?: {\n horizontal?: number;\n vertical?: number;\n };\n /**\n * @platform android\n * @platform web\n */\n indicatorColor?: ColorValue;\n /**\n * @platform android\n */\n rippleColor?: ColorValue;\n /**\n * @platform android\n */\n disableIndicator?: boolean;\n /**\n * @platform android\n */\n labelVisibilityMode?: NativeTabsTabBarItemLabelVisibilityMode;\n /**\n * @platform android\n * @platform iOS\n * @platform web\n */\n hidden?: boolean;\n /**\n * @platform android\n * @platform iOS\n */\n disabled?: boolean;\n /**\n * @platform android\n * @platform iOS\n */\n tabBarItemTestID?: string;\n /**\n * @platform android\n * @platform iOS\n */\n tabBarItemAccessibilityLabel?: string;\n /**\n * @platform iOS\n */\n specialEffects?: TabsScreenProps['specialEffects'];\n /**\n * @platform android\n * @platform iOS\n */\n nativeProps?: NativeScreenProps;\n /**\n * @platform android\n * @platform iOS\n */\n disableAutomaticContentInsets?: boolean;\n /**\n * @platform android\n * @platform iOS\n */\n contentStyle?: Pick<\n ViewStyle,\n | 'backgroundColor'\n | 'experimental_backgroundImage'\n | 'padding'\n | 'paddingTop'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingBlock'\n | 'paddingBlockEnd'\n | 'paddingBlockStart'\n | 'paddingInline'\n | 'paddingInlineEnd'\n | 'paddingInlineStart'\n | 'paddingEnd'\n | 'paddingHorizontal'\n | 'paddingVertical'\n | 'paddingStart'\n | 'alignContent'\n | 'alignItems'\n | 'justifyContent'\n | 'flexDirection'\n | 'gap'\n >;\n}\n\nexport type SymbolOrImageSource =\n | {\n /**\n * The name of the SF Symbol to use as an icon.\n * @platform iOS\n */\n sf?: SFSymbol;\n /**\n * The name of the iOS asset catalog image to use as an icon.\n * @platform iOS\n */\n xcasset?: string;\n /**\n * The name of the drawable resource to use as an icon.\n * @platform android\n */\n drawable?: string;\n }\n | {\n /**\n * The image source to use as an icon.\n */\n src?: ImageSourcePropType | Promise<ImageSourcePropType | null>;\n /**\n * Controls how the icon is rendered on iOS.\n * @platform ios\n * @default 'template'\n */\n renderingMode?: 'template' | 'original';\n };\n\nexport type NativeTabsLabelStyle = Pick<\n TextStyle,\n 'fontFamily' | 'fontSize' | 'fontStyle' | 'fontWeight' | 'color'\n>;\n\nexport const SUPPORTED_BLUR_EFFECTS = [\n 'none',\n 'systemDefault',\n 'extraLight',\n 'light',\n 'dark',\n 'regular',\n 'prominent',\n 'systemUltraThinMaterial',\n 'systemThinMaterial',\n 'systemMaterial',\n 'systemThickMaterial',\n 'systemChromeMaterial',\n 'systemUltraThinMaterialLight',\n 'systemThinMaterialLight',\n 'systemMaterialLight',\n 'systemThickMaterialLight',\n 'systemChromeMaterialLight',\n 'systemUltraThinMaterialDark',\n 'systemThinMaterialDark',\n 'systemMaterialDark',\n 'systemThickMaterialDark',\n 'systemChromeMaterialDark',\n] as const;\n\n/**\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uiblureffect/style)\n */\nexport type NativeTabsBlurEffect = (typeof SUPPORTED_BLUR_EFFECTS)[number];\n\nexport interface NativeTabsProps extends PropsWithChildren {\n // #region common props\n /**\n * The style of the every tab label in the tab bar.\n */\n labelStyle?:\n | StyleProp<NativeTabsLabelStyle>\n | {\n default?: StyleProp<NativeTabsLabelStyle>;\n selected?: StyleProp<NativeTabsLabelStyle>;\n };\n /**\n * The color of every tab icon in the tab bar.\n */\n iconColor?: ColorValue | { default?: ColorValue; selected?: ColorValue };\n /**\n * The tint color of the tab icon.\n *\n * Can be overridden by icon color and label color for each tab individually.\n */\n tintColor?: ColorValue;\n /**\n * The background color of the tab bar.\n */\n backgroundColor?: ColorValue;\n /**\n * The background color of every badge in the tab bar.\n */\n badgeBackgroundColor?: ColorValue;\n /**\n * When set to `true`, hides the tab bar.\n *\n * @default false\n */\n hidden?: boolean;\n // #endregion common props\n // #region iOS props\n /**\n * Specifies the minimize behavior for the tab bar.\n *\n * Available starting from iOS 26.\n *\n * The following values are currently supported:\n *\n * - `automatic` - resolves to the system default minimize behavior\n * - `never` - the tab bar does not minimize\n * - `onScrollDown` - the tab bar minimizes when scrolling down and\n * expands when scrolling back up\n * - `onScrollUp` - the tab bar minimizes when scrolling up and expands\n * when scrolling back down\n *\n * @see The supported values correspond to the official [Apple documentation](https://developer.apple.com/documentation/uikit/uitabbarcontroller/minimizebehavior).\n *\n * @default automatic\n *\n * @platform iOS 26+\n */\n minimizeBehavior?: NativeTabsTabBarMinimizeBehavior;\n /**\n * The blur effect applied to the tab bar.\n *\n * @platform iOS\n */\n blurEffect?: NativeTabsBlurEffect;\n /**\n * The color of the shadow.\n *\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uibarappearance/shadowcolor)\n *\n * @platform iOS\n */\n shadowColor?: ColorValue;\n /**\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uitabbaritem/titlepositionadjustment)\n *\n * @platform iOS\n */\n titlePositionAdjustment?: {\n horizontal?: number;\n vertical?: number;\n };\n /**\n * When set to `true`, the tab bar will not become transparent when scrolled to the edge.\n *\n * @platform iOS\n */\n disableTransparentOnScrollEdge?: boolean;\n /**\n * When set to `true`, enables the sidebarAdaptable tab bar style on iPadOS and macOS. This prop has no effect on iPhone.\n *\n * @platform iOS 18+\n */\n sidebarAdaptable?: boolean;\n // #endregion iOS props\n // #region android props\n /**\n * Disables the active indicator for the tab bar.\n *\n * @platform android\n */\n disableIndicator?: boolean;\n /**\n * The behavior when navigating back with the back button.\n *\n * @platform android\n */\n backBehavior?: 'none' | 'initialRoute' | 'history';\n /**\n * The visibility mode of the tab item label.\n *\n * @see [Material Components documentation](https://github.com/material-components/material-components-android/blob/master/docs/components/BottomNavigation.md#making-navigation-bar-accessible)\n *\n * @platform android\n */\n labelVisibilityMode?: NativeTabsTabBarItemLabelVisibilityMode;\n /**\n * The color of the ripple effect when the tab is pressed.\n *\n * @platform android\n */\n rippleColor?: ColorValue;\n /**\n * The color of the tab indicator.\n *\n * @platform android\n * @platform web\n */\n indicatorColor?: ColorValue;\n /**\n * The color of the badge text.\n *\n * @platform android\n * @platform web\n */\n badgeTextColor?: ColorValue;\n /**\n * When `true`, the tab bar lifts above the keyboard (input method editor, or IME) instead of being overlaid by it. By default, the keyboard overlays the tab bar.\n *\n * Requires `windowSoftInputMode=\"adjustResize\"`. Has no effect on Android API levels earlier than 30 (Android 11).\n *\n * @default false\n * @platform android\n */\n tabBarRespectsIMEInsets?: boolean;\n // #endregion android props\n /**\n * Listeners for navigation events on all tabs.\n *\n * Supported events:\n * - `tabPress` - called when a tab is pressed\n * - `focus` - called when the screen comes into focus\n * - `blur` - called when the screen loses focus\n *\n * @example\n * ```tsx\n * <NativeTabs\n * screenListeners={{\n * tabPress: (e) => {\n * console.log('Any tab pressed');\n * },\n * }}\n * >\n * ...\n * </NativeTabs>\n * ```\n */\n screenListeners?:\n | ScreenListeners<TabNavigationState<ParamListBase>, NativeTabNavigationEventMap>\n | ((prop: {\n route: RouteProp<ParamListBase, string>;\n }) => ScreenListeners<TabNavigationState<ParamListBase>, NativeTabNavigationEventMap>);\n /**\n * Props passed to the underlying native tab host implementation in `react-native-screens`.\n * Use this to configure props that are not directly exposed by Expo Router.\n *\n * > **Note**: This is an unstable API and may change or be removed in minor versions.\n *\n * @platform android\n * @platform ios\n */\n unstable_nativeProps?: NativeTabsHostNativeProps;\n}\n\nexport interface InternalNativeTabsProps extends NativeTabsProps {\n nonTriggerChildren?: React.ReactNode;\n}\nexport interface OnTabChangeEventPayload {\n /**\n * The route key of the tab the native side has just selected.\n */\n selectedKey: string;\n /**\n * The provenance value reported by the native side for this selection.\n *\n * The navigator echoes this back via `navStateRequest.baseProvenance` on\n * subsequent JS-driven updates so the native side can distinguish stale\n * updates from fresh ones. See `TabsHostNavStateRequest` in\n * `react-native-screens` for the full contract.\n */\n provenance: number;\n // TODO(@ubax): consider renaming this field\n isNativeAction: boolean;\n /**\n * Whether the native side prevented this selection because the target tab is\n * `disabled`. When `true`, the navigator emits `tabPress` but skips navigation.\n *\n * @default false\n */\n isPrevented?: boolean;\n}\n\nexport interface NativeTabsViewProps extends Omit<\n InternalNativeTabsProps,\n | 'labelStyle'\n | 'iconColor'\n | 'backgroundColor'\n | 'badgeBackgroundColor'\n | 'blurEffect'\n | 'indicatorColor'\n | 'badgeTextColor'\n | 'rippleColor'\n | 'disableIndicator'\n | 'labelVisibilityMode'\n> {\n focusedIndex: number;\n /**\n * Provenance counter associated with the currently rendered `focusedIndex`.\n */\n provenance: number;\n tabs: NativeTabsViewTabItem[];\n onTabChange: (event: OnTabChangeEventPayload) => void;\n}\n\nexport interface NativeTabsViewTabItem {\n options: NativeTabOptions;\n routeKey: string;\n name: string;\n contentRenderer: () => React.ReactNode;\n}\n\nexport const SUPPORTED_TAB_BAR_ITEM_LABEL_VISIBILITY_MODES = [\n 'auto',\n 'selected',\n 'labeled',\n 'unlabeled',\n] as const;\n\n/**\n * @see [Material Components documentation](https://github.com/material-components/material-components-android/blob/master/docs/components/BottomNavigation.md#making-navigation-bar-accessible)\n *\n * @platform android\n */\nexport type NativeTabsTabBarItemLabelVisibilityMode =\n (typeof SUPPORTED_TAB_BAR_ITEM_LABEL_VISIBILITY_MODES)[number];\n\nexport const SUPPORTED_TAB_BAR_MINIMIZE_BEHAVIORS = [\n 'automatic',\n 'never',\n 'onScrollDown',\n 'onScrollUp',\n] as const;\n\n/**\n * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uitabbarcontroller/minimizebehavior)\n *\n * @platform iOS 26\n */\nexport type NativeTabsTabBarMinimizeBehavior =\n (typeof SUPPORTED_TAB_BAR_MINIMIZE_BEHAVIORS)[number];\n\nexport interface NativeTabTriggerProps {\n /**\n * The name of the route.\n *\n * This is required when used inside a Layout component.\n *\n * When used in a route it has no effect.\n */\n name?: string;\n /**\n * If true, the tab will be hidden from the tab bar.\n *\n * > **Note**: Marking a tab as `hidden` means it cannot be navigated to in any way.\n *\n * > **Note**: Dynamically hiding tabs will remount the navigator and the state will be reset.\n */\n hidden?: boolean;\n /**\n * Props passed to the underlying native tab screen implementation.\n * Use this to configure props not directly exposed by Expo Router, but available in `react-native-screens`.\n *\n * > **Note**: This will override any other props set by Expo Router and may lead to unexpected behavior.\n *\n * > **Note**: This is an unstable API and may change or be removed in minor versions.\n *\n * @platform android\n * @platform iOS\n */\n unstable_nativeProps?: NativeScreenProps;\n /**\n * If true, the tab will not pop stack to the root when selected again.\n *\n * @default false\n * @platform iOS\n */\n disablePopToTop?: boolean;\n /**\n * If true, the tab will not scroll to the top when selected again.\n * @default false\n *\n * @platform iOS\n */\n disableScrollToTop?: boolean;\n /**\n * If `true`, the tab is shown but cannot be selected by tapping it in the\n * tab bar.\n *\n * > **Note:** This only suppresses the native tap interaction. JavaScript\n * > navigation such as `router.push()` or `<Link />` still navigates to\n * > the tab. Use this for tabs that should appear visible but be temporarily inert,\n * > and gate navigation in your own code if you need to fully prevent access.\n *\n * Unlike `hidden`, the tab remains visible in the tab bar.\n *\n * @default false\n *\n * @platform android\n * @platform ios\n */\n disabled?: boolean;\n /**\n * A test identifier for the tab bar item.\n *\n * On iOS it maps to the item's accessibility identifier, which XCUITest and Maestro match.\n * On Android it maps to the item's view tag, which Espresso-based drivers like Detox read\n * but Maestro and Appium do not. Use `accessibilityLabel` to match the tab by id there.\n *\n * @platform android\n * @platform iOS\n */\n testID?: string;\n /**\n * The accessibility label of the tab bar item, announced by screen readers.\n * Defaults to the visible tab label.\n *\n * On Android, maps to the item's `contentDescription` and requires API 26 or above.\n *\n * @platform android\n * @platform iOS\n */\n accessibilityLabel?: string;\n /**\n * The children of the trigger.\n *\n * Use `Icon`, `Label`, and `Badge` components to customize the tab.\n */\n children?: React.ReactNode;\n /**\n * System-provided tab bar item with predefined icon and title\n *\n * Uses Apple's built-in tab bar items (e.g., bookmarks, contacts, downloads) with\n * standard iOS styling and localized titles. Custom `icon` or `selectedIcon`\n * properties will override the system icon, but the system-defined title cannot\n * be customized.\n *\n * @see The supported values correspond to the official [Apple documentation](https://developer.apple.com/documentation/uikit/uitabbaritem/systemitem).\n * @platform ios\n */\n role?: NativeTabsTabBarItemRole;\n /**\n * The default behavior differs between iOS and Android.\n *\n * On **Android**, the content of a native tabs screen is automatically wrapped in a `SafeAreaView`,\n * and the **bottom** inset is applied. Other insets must be handled manually.\n *\n * On **iOS**, the first scroll view nested inside a native tabs screen has\n * [automatic content inset adjustment](https://reactnative.dev/docs/scrollview#contentinsetadjustmentbehavior-ios) enabled\n *\n * When this property is set to `true`, automatic content inset adjustment is disabled for the screen\n * and must be managed manually. You can use `SafeAreaView` from `react-native-screens/experimental`\n * to handle safe area insets.\n *\n * @platform android\n * @platform ios\n */\n disableAutomaticContentInsets?: boolean;\n /**\n * The style applied to the content of the tab\n *\n * Note: Only certain style properties are supported.\n */\n contentStyle?: NativeTabOptions['contentStyle'];\n /**\n * When set to `true`, the tab bar will not become transparent when scrolled to the edge.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @platform iOS\n */\n disableTransparentOnScrollEdge?: boolean;\n /**\n * The color of the ripple effect when this tab is selected - will be visible when other tabs are pressed.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @platform android\n */\n rippleColor?: ColorValue;\n /**\n * The color of the active indicator for this tab.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @platform android\n */\n indicatorColor?: ColorValue;\n /**\n * When set to `true`, disables the active indicator for this tab.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @default false\n *\n * @platform android\n */\n disableIndicator?: boolean;\n /**\n * The visibility mode of the tab item label for this tab.\n *\n * When set on a trigger, it takes precedence over the value set on `NativeTabs`.\n *\n * @see [Material Components documentation](https://github.com/material-components/material-components-android/blob/master/docs/components/BottomNavigation.md#making-navigation-bar-accessible)\n *\n * @platform android\n */\n labelVisibilityMode?: NativeTabsTabBarItemLabelVisibilityMode;\n /**\n * Listeners for navigation events on this tab.\n *\n * Supported events:\n * - `tabPress` - called when this tab is pressed\n * - `focus` - called when this screen comes into focus\n * - `blur` - called when this screen loses focus\n *\n * @example\n * ```tsx\n * <NativeTabs.Trigger\n * name=\"home\"\n * listeners={{\n * tabPress: (e) => {\n * console.log('Home tab pressed');\n * },\n * }}\n * />\n * ```\n */\n listeners?: ScreenProps<\n any,\n TabNavigationState<ParamListBase>,\n NativeTabNavigationEventMap\n >['listeners'];\n}\n\nconst SUPPORTED_TAB_BAR_ITEM_ROLES = [\n 'bookmarks',\n 'contacts',\n 'downloads',\n 'favorites',\n 'featured',\n 'history',\n 'more',\n 'mostRecent',\n 'mostViewed',\n 'recents',\n 'search',\n 'topRated',\n] as const;\n\nexport type NativeTabsTabBarItemRole = (typeof SUPPORTED_TAB_BAR_ITEM_ROLES)[number];\n"]}
|
|
@@ -13,5 +13,5 @@ export { useAnimatedHeaderHeight } from './utils/useAnimatedHeaderHeight';
|
|
|
13
13
|
/**
|
|
14
14
|
* Types
|
|
15
15
|
*/
|
|
16
|
-
export type { NativeStackHeaderBackProps, NativeStackHeaderItem, NativeStackHeaderItemButton, NativeStackHeaderItemCustom, NativeStackHeaderItemMenu, NativeStackHeaderItemMenuAction, NativeStackHeaderItemMenuSubmenu, NativeStackHeaderItemProps, NativeStackHeaderItemSpacing, NativeStackHeaderLeftProps, NativeStackHeaderProps, NativeStackHeaderRightProps, NativeStackNavigationEventMap, NativeStackNavigationOptions, NativeStackNavigationProp, NativeStackNavigatorProps, NativeStackOptionsArgs, NativeStackScreenProps, } from './types';
|
|
16
|
+
export type { NativeStackHeaderBackProps, NativeStackHeaderItem, NativeStackHeaderItemButton, NativeStackHeaderItemCustom, NativeStackHeaderItemMenu, NativeStackHeaderItemMenuAction, NativeStackHeaderItemMenuSubmenu, NativeStackHeaderItemProps, NativeStackHeaderItemSpacing, NativeStackHeaderLeftProps, NativeStackHeaderProps, NativeStackHeaderRightProps, NativeStackHeaderNativeProps, NativeStackNativeProps, NativeStackNavigationEventMap, NativeStackNavigationOptions, NativeStackNavigationProp, NativeStackNavigatorProps, NativeStackOptionsArgs, NativeStackScreenNativeProps, NativeStackScreenProps, } from './types';
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react-navigation/native-stack/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;GAEG;AACH,YAAY,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react-navigation/native-stack/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;GAEG;AACH,YAAY,EACV,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,+BAA+B,EAC/B,gCAAgC,EAChC,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-navigation/native-stack/index.tsx"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,sFAAqF;AAA5E,wIAAA,0BAA0B,OAAA;AAEnC;;GAEG;AACH,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAExB;;GAEG;AACH,2EAA0E;AAAjE,kIAAA,uBAAuB,OAAA","sourcesContent":["/**\n * Navigators\n */\nexport { createNativeStackNavigator } from './navigators/createNativeStackNavigator';\n\n/**\n * Views\n */\nexport { NativeStackView } from './views/NativeStackView';\n\n/**\n * Hooks\n */\nexport { useAnimatedHeaderHeight } from './utils/useAnimatedHeaderHeight';\n\n/**\n * Types\n */\nexport type {\n NativeStackHeaderBackProps,\n NativeStackHeaderItem,\n NativeStackHeaderItemButton,\n NativeStackHeaderItemCustom,\n NativeStackHeaderItemMenu,\n NativeStackHeaderItemMenuAction,\n NativeStackHeaderItemMenuSubmenu,\n NativeStackHeaderItemProps,\n NativeStackHeaderItemSpacing,\n NativeStackHeaderLeftProps,\n NativeStackHeaderProps,\n NativeStackHeaderRightProps,\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n NativeStackNavigationProp,\n NativeStackNavigatorProps,\n NativeStackOptionsArgs,\n NativeStackScreenProps,\n} from './types';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-navigation/native-stack/index.tsx"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,sFAAqF;AAA5E,wIAAA,0BAA0B,OAAA;AAEnC;;GAEG;AACH,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAExB;;GAEG;AACH,2EAA0E;AAAjE,kIAAA,uBAAuB,OAAA","sourcesContent":["/**\n * Navigators\n */\nexport { createNativeStackNavigator } from './navigators/createNativeStackNavigator';\n\n/**\n * Views\n */\nexport { NativeStackView } from './views/NativeStackView';\n\n/**\n * Hooks\n */\nexport { useAnimatedHeaderHeight } from './utils/useAnimatedHeaderHeight';\n\n/**\n * Types\n */\nexport type {\n NativeStackHeaderBackProps,\n NativeStackHeaderItem,\n NativeStackHeaderItemButton,\n NativeStackHeaderItemCustom,\n NativeStackHeaderItemMenu,\n NativeStackHeaderItemMenuAction,\n NativeStackHeaderItemMenuSubmenu,\n NativeStackHeaderItemProps,\n NativeStackHeaderItemSpacing,\n NativeStackHeaderLeftProps,\n NativeStackHeaderProps,\n NativeStackHeaderRightProps,\n NativeStackHeaderNativeProps,\n NativeStackNativeProps,\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n NativeStackNavigationProp,\n NativeStackNavigatorProps,\n NativeStackOptionsArgs,\n NativeStackScreenNativeProps,\n NativeStackScreenProps,\n} from './types';\n"]}
|
|
@@ -50,6 +50,11 @@ export type NativeStackOptionsArgs<ParamList extends ParamListBase, RouteName ex
|
|
|
50
50
|
};
|
|
51
51
|
export type NativeStackNavigationHelpers = NavigationHelpers<ParamListBase, NativeStackNavigationEventMap>;
|
|
52
52
|
export type NativeStackNavigationConfig = {};
|
|
53
|
+
export type NativeStackScreenNativeProps = Partial<Omit<ScreenProps, 'children' | 'screenId' | 'activityState'>>;
|
|
54
|
+
export type NativeStackHeaderNativeProps = Partial<ScreenStackHeaderConfigProps>;
|
|
55
|
+
export type NativeStackNativeProps = NativeStackScreenNativeProps & {
|
|
56
|
+
headerConfig?: NativeStackHeaderNativeProps;
|
|
57
|
+
};
|
|
53
58
|
export type NativeStackHeaderProps = {
|
|
54
59
|
/**
|
|
55
60
|
* Options for the back button.
|
|
@@ -348,6 +353,18 @@ export type NativeStackNavigationOptions = {
|
|
|
348
353
|
* If you don't have a `ScrollView`, specify `headerTransparent: false`.
|
|
349
354
|
*/
|
|
350
355
|
headerSearchBarOptions?: SearchBarProps;
|
|
356
|
+
/**
|
|
357
|
+
* Props passed to the underlying native stack implementation in `react-native-screens`.
|
|
358
|
+
* Use this to configure props that are not directly exposed by Expo Router.
|
|
359
|
+
*
|
|
360
|
+
* > **Note**: This will override any other props set by Expo Router and may lead to unexpected behavior.
|
|
361
|
+
*
|
|
362
|
+
* > **Note**: This is an unstable API and may change or be removed in minor versions.
|
|
363
|
+
*
|
|
364
|
+
* @platform android
|
|
365
|
+
* @platform ios
|
|
366
|
+
*/
|
|
367
|
+
unstable_nativeProps?: NativeStackNativeProps;
|
|
351
368
|
/**
|
|
352
369
|
* Boolean indicating whether to show the menu on longPress of iOS >= 14 back button. Defaults to `true`.
|
|
353
370
|
* Requires `react-native-screens` version >=3.3.0.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react-navigation/native-stack/types.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react-navigation/native-stack/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,WAAW,EACX,4BAA4B,EAC5B,gBAAgB,EAChB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,EACN,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,6BAA6B,GAAG;IAC1C;;OAEG;IACH,eAAe,EAAE;QAAE,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;IAChD;;OAEG;IACH,aAAa,EAAE;QAAE,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;IAC9C;;OAEG;IACH,aAAa,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IACnC;;;;;;;OAOG;IACH,iBAAiB,EAAE;QAAE,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,yBAAyB,CACnC,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,GAAG,MAAM,EAC1C,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IAChD,cAAc,CAChB,SAAS,EACT,SAAS,EACT,WAAW,EACX,oBAAoB,CAAC,SAAS,CAAC,EAC/B,4BAA4B,EAC5B,6BAA6B,CAC9B,GACC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAEhC,MAAM,MAAM,sBAAsB,CAChC,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,GAAG,MAAM,EAC1C,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IAChD;IACF,UAAU,EAAE,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACzE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,GAAG,MAAM,SAAS,EACnD,WAAW,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,IAChD,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG;IAC9D,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAC1D,aAAa,EACb,6BAA6B,CAC9B,CAAC;AAIF,MAAM,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE7C,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,eAAe,CAAC,CAC7D,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAEjF,MAAM,MAAM,sBAAsB,GAAG,4BAA4B,GAAG;IAClE,YAAY,CAAC,EAAE,4BAA4B,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B;;WAEG;QACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;KAC1B,CAAC;IACF;;OAEG;IACH,OAAO,EAAE,4BAA4B,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB;;OAEG;IACH,UAAU,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,0BAA0B,GAAG;IACpE;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,0BAA0B,CAAC;AAErE,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5D;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,SAAS,CAAC;QAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,mBAAmB,CAAC;KAC7B,CAAC;IACF;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IAC5C;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC;QAC3B,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC,CAAC;IACH;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,EAAE,SAAS,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC,CAAC;IACH;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;QACtB,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC,CAAC;IACH;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC;IAC9D;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,KAAK,CAAC,SAAS,CAAC;IACpE;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,KAAK,CAAC,SAAS,CAAC;IACrE;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,qBAAqB,EAAE,CAAC;IAC1F;;;;;;;OAOG;IACH,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,qBAAqB,EAAE,CAAC;IAC3F;;;;;;;;OAQG;IACH,WAAW,CAAC,EACR,MAAM,GACN,CAAC,CAAC,KAAK,EAAE;QACP;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,SAAS,CAAC,EAAE,UAAU,CAAC;KACxB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACrC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAC1B,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC,GAAG;QAC1D,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CACF,CAAC;IACF;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,cAAc,CAAC;IACxC;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;IAC9C;;;;;;;OAOG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,2BAA2B,CAAC,EAAE,4BAA4B,CAAC,uBAAuB,CAAC,CAAC;IACpF;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC;;;;;;;;OAQG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACvD;;;;;;;;OAQG;IACH,wBAAwB,CAAC,EAAE,UAAU,CAAC;IACtC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC/C;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACjD;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;;;;;;OAUG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACjE;;;;;;;;OAQG;IACH,uBAAuB,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAC1D;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC1C;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC1E;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;IACjD;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,+BAA+B,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3D;;;;;;;;;;;;;;OAcG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;;;;;;;;;;;OAeG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC/C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iBAAiB,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;QACxB,KAAK,CAAC,EAAE,gBAAgB,CAAC;QACzB,GAAG,CAAC,EAAE,gBAAgB,CAAC;KACxB,CAAC;IACF;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CAC9C,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,KAAK,eAAe,GAAG,uBAAuB,GAAG,kBAAkB,CAAC;AAEpE,KAAK,gBAAgB,GAAG;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC;IACF;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IACzC;;;;OAIG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,KAAK,CAAC,EAAE;QACN;;WAEG;QACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB;;WAEG;QACH,KAAK,CAAC,EAAE;YACN,KAAK,CAAC,EAAE,UAAU,CAAC;YACnB,eAAe,CAAC,EAAE,UAAU,CAAC;YAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IACF;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,gBAAgB,GAAG;IAC3D;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,KAAK,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;CACnD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,GAAG;IACzD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C;;OAEG;IACH,IAAI,EAAE;QACJ;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;;;;;WAMG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B;;;;;;;;WAQG;QACH,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;QAC/B;;WAEG;QACH,KAAK,EAAE,CAAC,+BAA+B,GAAG,gCAAgC,CAAC,EAAE,CAAC;KAC/E,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;IAC5B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAC7B,2BAA2B,GAC3B,yBAAyB,GACzB,4BAA4B,GAC5B,2BAA2B,CAAC;AAEhC,MAAM,MAAM,yBAAyB,GAAG,uBAAuB,CAC7D,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,oBAAoB,CAAC,aAAa,CAAC,EACnC,4BAA4B,EAC5B,6BAA6B,EAC7B,yBAAyB,CAAC,aAAa,CAAC,CACzC,GACC,kBAAkB,GAClB,2BAA2B,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAC5C,4BAA4B,EAC5B,yBAAyB,CAAC,aAAa,CAAC,EACxC,SAAS,CAAC,aAAa,CAAC,CACzB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/react-navigation/native-stack/types.tsx"],"names":[],"mappings":"","sourcesContent":["import type {\n ColorValue,\n ImageSourcePropType,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport type {\n ScreenProps,\n ScreenStackHeaderConfigProps,\n ScrollEdgeEffect,\n SearchBarProps,\n} from 'react-native-screens';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport type {\n DefaultNavigatorOptions,\n Descriptor,\n NavigationHelpers,\n NavigationProp,\n ParamListBase,\n Route,\n RouteProp,\n StackActionHelpers,\n StackNavigationState,\n StackRouterOptions,\n Theme,\n} from '../native';\n\nexport type NativeStackNavigationEventMap = {\n /**\n * Event which fires when a transition animation starts.\n */\n transitionStart: { data: { closing: boolean } };\n /**\n * Event which fires when a transition animation ends.\n */\n transitionEnd: { data: { closing: boolean } };\n /**\n * Event which fires when a swipe back is canceled on iOS.\n */\n gestureCancel: { data: undefined };\n /**\n * Event which fires when screen is in sheet presentation & it's detent changes.\n *\n * In payload it caries two fields:\n *\n * * `index` - current detent index in the `sheetAllowedDetents` array,\n * * `stable` - on Android `false` value means that the user is dragging the sheet or it is settling; on iOS it is always `true`.\n */\n sheetDetentChange: { data: { index: number; stable: boolean } };\n};\n\nexport type NativeStackNavigationProp<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = string,\n NavigatorID extends string | undefined = undefined,\n> = NavigationProp<\n ParamList,\n RouteName,\n NavigatorID,\n StackNavigationState<ParamList>,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap\n> &\n StackActionHelpers<ParamList>;\n\nexport type NativeStackScreenProps<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = string,\n NavigatorID extends string | undefined = undefined,\n> = {\n navigation: NativeStackNavigationProp<ParamList, RouteName, NavigatorID>;\n route: RouteProp<ParamList, RouteName>;\n};\n\nexport type NativeStackOptionsArgs<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = keyof ParamList,\n NavigatorID extends string | undefined = undefined,\n> = NativeStackScreenProps<ParamList, RouteName, NavigatorID> & {\n theme: Theme;\n};\n\nexport type NativeStackNavigationHelpers = NavigationHelpers<\n ParamListBase,\n NativeStackNavigationEventMap\n>;\n\n// We want it to be an empty object because navigator does not have any additional props\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type NativeStackNavigationConfig = {};\n\nexport type NativeStackHeaderProps = {\n /**\n * Options for the back button.\n */\n back?: {\n /**\n * Title of the previous screen.\n */\n title: string | undefined;\n /**\n * The `href` to use for the anchor tag on web\n */\n href: string | undefined;\n };\n /**\n * Options for the current screen.\n */\n options: NativeStackNavigationOptions;\n /**\n * Route object for the current screen.\n */\n route: Route<string>;\n /**\n * Navigation prop for the header.\n */\n navigation: NativeStackNavigationProp<ParamListBase>;\n};\n\nexport type NativeStackHeaderItemProps = {\n /**\n * Tint color for the header.\n */\n tintColor?: ColorValue;\n /**\n * Whether it's possible to navigate back in stack.\n */\n canGoBack?: boolean;\n /**\n * Header background color\n */\n backgroundColor?: ColorValue;\n};\n\nexport type NativeStackHeaderBackProps = NativeStackHeaderItemProps & {\n /**\n * Label text for the button. Usually the title of the previous screen.\n * By default, this is only shown on iOS 18.\n */\n label?: string;\n /**\n * The `href` to use for the anchor tag on web\n */\n href?: string;\n};\n\n/**\n * @deprecated Use `NativeStackHeaderBackProps` instead.\n */\nexport type NativeStackHeaderLeftProps = NativeStackHeaderBackProps;\n\n/**\n * @deprecated Use `NativeStackHeaderItemProps` instead.\n */\nexport type NativeStackHeaderRightProps = NativeStackHeaderItemProps;\n\nexport type NativeStackNavigationOptions = {\n /**\n * String that can be displayed in the header as a fallback for `headerTitle`.\n */\n title?: string;\n /**\n * Function that given `HeaderProps` returns a React Element to display as a header.\n */\n header?: (props: NativeStackHeaderProps) => React.ReactNode;\n /**\n * Whether the back button is visible in the header.\n * You can use it to show a back button alongside `headerLeft` if you have specified it.\n *\n * This will have no effect on the first screen in the stack.\n */\n headerBackVisible?: boolean;\n /**\n * Title string used by the back button on iOS.\n * Defaults to the previous scene's title.\n * On iOS the text might be shortened to \"Back\" or arrow icon depending on the available space, following native iOS behaviour.\n * See `headerBackButtonDisplayMode` to read about limitations and interactions with other props.\n * Use `headerBackButtonDisplayMode: \"minimal\"` to hide it.\n *\n * Only supported on iOS and Web.\n *\n * @platform ios, web\n */\n headerBackTitle?: string;\n /**\n * Style object for header back title. Supported properties:\n * - fontFamily\n * - fontSize\n *\n * Only supported on iOS and Web.\n *\n * @platform ios, web\n */\n headerBackTitleStyle?: StyleProp<{\n fontFamily?: string;\n fontSize?: number;\n }>;\n /**\n * Icon to display in the header as the icon in the back button.\n *\n * Defaults to back icon image for the platform\n * - A chevron on iOS\n * - An arrow on Android\n *\n * @example\n * ```js\n * headerBackIcon: {\n * type: 'image',\n * source: require('./back-icon.png'),\n * }\n * ```\n */\n headerBackIcon?: {\n type: 'image';\n source: ImageSourcePropType;\n };\n /**\n * Image to display in the header as the icon in the back button.\n *\n * @deprecated Use `headerBackIcon` instead.\n */\n headerBackImageSource?: ImageSourcePropType;\n /**\n * Style of the header when a large title is shown.\n * The large title is shown if `headerLargeTitle` is `true` and\n * the edge of any scrollable content reaches the matching edge of the header.\n *\n * Supported properties:\n * - backgroundColor\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerLargeStyle?: StyleProp<{\n backgroundColor?: ColorValue;\n }>;\n /**\n * Whether to enable header with large title which collapses to regular header on scroll.\n *\n * For large title to collapse on scroll, the content of the screen should be wrapped in a scrollable view such as `ScrollView` or `FlatList`.\n * If the scrollable area doesn't fill the screen, the large title won't collapse on scroll.\n * You also need to specify `contentInsetAdjustmentBehavior=\"automatic\"` in your `ScrollView`, `FlatList` etc.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerLargeTitleEnabled?: boolean;\n /**\n * Whether to enable header with large title which collapses to regular header on scroll.\n *\n * @deprecated Use `headerLargeTitleEnabled` instead.\n */\n headerLargeTitle?: boolean;\n /**\n * Whether drop shadow of header is visible when a large title is shown.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerLargeTitleShadowVisible?: boolean;\n /**\n * Style object for large title in header. Supported properties:\n * - fontFamily\n * - fontSize\n * - fontWeight\n * - color\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerLargeTitleStyle?: StyleProp<{\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: string;\n color?: ColorValue;\n }>;\n /**\n * Whether to show the header. The header is shown by default.\n * Setting this to `false` hides the header.\n */\n headerShown?: boolean;\n /**\n * Style object for header. Supported properties:\n * - backgroundColor\n */\n headerStyle?: StyleProp<{\n backgroundColor?: ColorValue;\n }>;\n /**\n * Whether to hide the elevation shadow (Android) or the bottom border (iOS) on the header.\n */\n headerShadowVisible?: boolean;\n /**\n * Boolean indicating whether the navigation bar is translucent.\n * Setting this to `true` makes the header absolutely positioned,\n * and changes the background color to `transparent` unless specified in `headerStyle`.\n */\n headerTransparent?: boolean;\n /**\n * Blur effect for the translucent header.\n * The `headerTransparent` option needs to be set to `true` for this to work.\n *\n * **Note:** Using both `headerBlurEffect` and `scrollEdgeEffects` (>= iOS 26) simultaneously may cause overlapping effects.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerBlurEffect?: ScreenStackHeaderConfigProps['blurEffect'];\n /**\n * Tint color for the header. Changes the color of back button and title.\n */\n headerTintColor?: ColorValue;\n /**\n * Function which returns a React Element to render as the background of the header.\n * This is useful for using backgrounds such as an image, a gradient, blur effect etc.\n * You can use this with `headerTransparent` to render content underneath a translucent header.\n */\n headerBackground?: () => React.ReactNode;\n /**\n * Function which returns a React Element to display on the left side of the header.\n * This replaces the back button. See `headerBackVisible` to show the back button along side left element.\n * Will be overriden by `headerLeftItems` on iOS.\n */\n headerLeft?: (props: NativeStackHeaderBackProps) => React.ReactNode;\n /**\n * Function which returns a React Element to display on the right side of the header.\n * Will be overriden by `headerRightItems` on iOS.\n */\n headerRight?: (props: NativeStackHeaderItemProps) => React.ReactNode;\n /**\n * Function which returns an array of items to display as on the left side of the header.\n * Overrides `headerLeft`.\n *\n * This is an unstable API and might change in the future.\n *\n * @platform ios\n */\n unstable_headerLeftItems?: (props: NativeStackHeaderItemProps) => NativeStackHeaderItem[];\n /**\n * Function which returns an array of items to display as on the right side of the header.\n * Overrides `headerRight`.\n *\n * This is an unstable API and might change in the future.\n *\n * @platform ios\n */\n unstable_headerRightItems?: (props: NativeStackHeaderItemProps) => NativeStackHeaderItem[];\n /**\n * String or a function that returns a React Element to be used by the header.\n * Defaults to screen `title` or route name.\n *\n * When a function is passed, it receives `tintColor` and`children` in the options object as an argument.\n * The title string is passed in `children`.\n *\n * Note that if you render a custom element by passing a function, animations for the title won't work.\n */\n headerTitle?:\n | string\n | ((props: {\n /**\n * The title text of the header.\n */\n children: string;\n /**\n * Tint color for the header.\n */\n tintColor?: ColorValue;\n }) => React.ReactNode);\n /**\n * How to align the the header title.\n * Defaults to `left` on platforms other than iOS.\n *\n * Not supported on iOS. It's always `center` on iOS and cannot be changed.\n */\n headerTitleAlign?: 'left' | 'center';\n /**\n * Style object for header title. Supported properties:\n * - fontFamily\n * - fontSize\n * - fontWeight\n * - color\n */\n headerTitleStyle?: StyleProp<\n Pick<TextStyle, 'fontFamily' | 'fontSize' | 'fontWeight'> & {\n color?: ColorValue;\n }\n >;\n /**\n * Options to render a native search bar.\n * You also need to specify `contentInsetAdjustmentBehavior=\"automatic\"` in your `ScrollView`, `FlatList` etc.\n * If you don't have a `ScrollView`, specify `headerTransparent: false`.\n */\n headerSearchBarOptions?: SearchBarProps;\n /**\n * Boolean indicating whether to show the menu on longPress of iOS >= 14 back button. Defaults to `true`.\n * Requires `react-native-screens` version >=3.3.0.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerBackButtonMenuEnabled?: boolean;\n /**\n * How the back button displays icon and title.\n *\n * Supported values:\n * - \"default\" - Displays one of the following depending on the available space: previous screen's title, generic title (e.g. 'Back') or no title (only icon).\n * - \"generic\" – Displays one of the following depending on the available space: generic title (e.g. 'Back') or no title (only icon).\n * - \"minimal\" – Always displays only the icon without a title.\n *\n * The space-aware behavior is disabled when:\n * - The iOS version is 13 or lower\n * - Custom font family or size is set (e.g. with `headerBackTitleStyle`)\n * - Back button menu is disabled (e.g. with `headerBackButtonMenuEnabled`)\n *\n * In such cases, a static title and icon are always displayed.\n *\n * Defaults to \"default\" on iOS, and \"minimal\" on other platforms.\n *\n * Only supported on iOS and Web.\n *\n * @platform ios, web\n */\n headerBackButtonDisplayMode?: ScreenStackHeaderConfigProps['backButtonDisplayMode'];\n /**\n * Whether the home indicator should prefer to stay hidden on this screen. Defaults to `false`.\n *\n * @platform ios\n */\n autoHideHomeIndicator?: boolean;\n /**\n * Whether the keyboard should hide when swiping to the previous screen. Defaults to `false`.\n *\n * @platform ios\n */\n keyboardHandlingEnabled?: boolean;\n /**\n * Sets the navigation bar color. Defaults to initial navigation bar color.\n *\n * @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.\n * This prop is subject to removal in the future.\n * See: https://developer.android.com/about/versions/15/behavior-changes-15#ux.\n *\n * @platform android\n */\n navigationBarColor?: ColorValue;\n /**\n * Boolean indicating whether the content should be visible behind the navigation bar. Defaults to `false`.\n *\n * @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.\n * This prop is subject to removal in the future.\n * See: https://developer.android.com/about/versions/15/behavior-changes-15#ux.\n *\n * @platform android\n */\n navigationBarTranslucent?: boolean;\n /**\n * Sets the visibility of the navigation bar. Defaults to `false`.\n *\n * @platform android\n */\n navigationBarHidden?: boolean;\n /**\n * Sets the status bar animation (similar to the `StatusBar` component).\n * On Android, setting either `fade` or `slide` will set the transition of status bar color. On iOS, this option applies to appereance animation of the status bar.\n * Requires setting `View controller-based status bar appearance -> YES` (or removing the config) in your `Info.plist` file.\n *\n * Defaults to `fade` on iOS and `none` on Android.\n *\n * Only supported on Android and iOS.\n *\n * @platform android, ios\n */\n statusBarAnimation?: ScreenProps['statusBarAnimation'];\n /**\n * Sets the status bar color (similar to the `StatusBar` component). Defaults to initial status bar color.\n *\n * @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.\n * This prop is subject to removal in the future.\n * See: https://developer.android.com/about/versions/15/behavior-changes-15#ux.\n *\n * @platform android\n */\n statusBarBackgroundColor?: ColorValue;\n /**\n * Whether the status bar should be hidden on this screen.\n * Requires setting `View controller-based status bar appearance -> YES` in your Info.plist file.\n *\n * Only supported on Android and iOS.\n *\n * @platform android, ios\n */\n statusBarHidden?: boolean;\n /**\n * Sets the status bar color (similar to the `StatusBar` component).\n * Requires setting `View controller-based status bar appearance -> YES` (or removing the config) in your `Info.plist` file.\n * `auto` and `inverted` are supported only on iOS. On Android, they will fallback to `light`.\n *\n * Defaults to `auto` on iOS and `light` on Android.\n *\n * Only supported on Android and iOS.\n *\n * @platform android, ios\n */\n statusBarStyle?: ScreenProps['statusBarStyle'];\n /**\n * Sets the translucency of the status bar. Defaults to `false`.\n *\n * @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.\n * This prop is subject to removal in the future.\n * See: https://developer.android.com/about/versions/15/behavior-changes-15#ux.\n *\n * @platform android\n */\n statusBarTranslucent?: boolean;\n /**\n * Sets the direction in which you should swipe to dismiss the screen.\n * When using `vertical` option, options `fullScreenGestureEnabled: true`, `animationMatchesGesture: true` and `animation: 'slide_from_bottom'` are set by default.\n *\n * Supported values:\n * - `vertical` – dismiss screen vertically\n * - `horizontal` – dismiss screen horizontally (default)\n *\n * @platform ios\n */\n gestureDirection?: ScreenProps['swipeDirection'];\n /**\n * Style object for the scene content.\n */\n contentStyle?: StyleProp<ViewStyle>;\n /**\n * Whether the gesture to dismiss should use animation provided to `animation` prop. Defaults to `false`.\n *\n * Doesn't affect the behavior of screens presented modally.\n *\n * @platform ios\n */\n animationMatchesGesture?: boolean;\n /**\n * Whether the gesture to dismiss should work on the whole screen. The behavior depends on iOS version.\n *\n * On iOS 18 and below:\n * `false` by default. If enabled, swipe gesture will use `simple_push` transition animation by default. It can be changed\n * with `animation` & `animationMatchesGesture` props, but default iOS swipe animation is not achievable.\n *\n * On iOS 26 and up:\n * `true` by default to match new native behavior. You can still customize it with `animation` & `animationMatchesGesture` props.\n *\n * Doesn't affect the behavior of screens presented modally.\n *\n * @platform ios\n */\n fullScreenGestureEnabled?: boolean;\n /**\n * iOS 18 and below. Controls whether the full screen dismiss gesture has shadow under view during transition.\n * The gesture uses custom transition and thus doesn't have a shadow by default. When enabled, a custom shadow view\n * is added during the transition which tries to mimic the default iOS shadow. Defaults to `true`.\n *\n * This does not affect the behavior of transitions that don't use gestures, enabled by `fullScreenGestureEnabled` prop.\n *\n * @deprecated since iOS 26.\n *\n * @platform ios\n */\n fullScreenGestureShadowEnabled?: boolean;\n /**\n * Whether you can use gestures to dismiss this screen. Defaults to `true`.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n gestureEnabled?: boolean;\n /**\n * Use it to restrict the distance from the edges of screen in which the gesture should be recognized. To be used alongside `fullScreenGestureEnabled`.\n *\n * @platform ios\n */\n gestureResponseDistance?: ScreenProps['gestureResponseDistance'];\n /**\n * The type of animation to use when this screen replaces another screen. Defaults to `pop`.\n *\n * Supported values:\n * - \"push\": the new screen will perform push animation.\n * - \"pop\": the new screen will perform pop animation.\n *\n * Only supported on iOS and Android.\n */\n animationTypeForReplace?: ScreenProps['replaceAnimation'];\n /**\n * How the screen should animate when pushed or popped.\n *\n * Supported values:\n * - \"default\": use the platform default animation\n * - \"fade\": fade screen in or out\n * - \"fade_from_bottom\" – performs a fade from bottom animation\n * - \"flip\": flip the screen, requires presentation: \"modal\" (iOS only)\n * - \"simple_push\": use the platform default animation, but without shadow and native header transition (iOS only)\n * - \"slide_from_bottom\": slide in the new screen from bottom\n * - \"slide_from_right\": slide in the new screen from right (Android only, uses default animation on iOS)\n * - \"slide_from_left\": slide in the new screen from left (Android only, uses default animation on iOS)\n * - \"ios_from_right\" - iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS)\n * - \"ios_from_left\" - iOS like slide in animation. pushes in the new screen from left to right (Android only, resolves to default transition on iOS)\n * - \"none\": don't animate the screen\n *\n * Only supported on iOS and Android.\n */\n animation?: ScreenProps['stackAnimation'];\n /**\n * Duration (in milliseconds) for the following transition animations on iOS:\n * - `slide_from_bottom`\n * - `fade_from_bottom`\n * - `fade`\n * - `simple_push`\n *\n * Defaults to `500`.\n *\n * The duration is not customizable for:\n * - Screens with `default` and `flip` animations\n * - Screens with `presentation` set to `modal`, `formSheet`, `pageSheet` (regardless of animation)\n *\n * @platform ios\n */\n animationDuration?: number;\n /**\n * How should the screen be presented.\n *\n * Supported values:\n * - \"card\": the new screen will be pushed onto a stack, which means the default animation will be slide from the side on iOS, the animation on Android will vary depending on the OS version and theme.\n * - \"modal\": the new screen will be presented modally. this also allows for a nested stack to be rendered inside the screen.\n * - \"transparentModal\": the new screen will be presented modally, but in addition, the previous screen will stay so that the content below can still be seen if the screen has translucent background.\n * - \"containedModal\": will use \"UIModalPresentationCurrentContext\" modal style on iOS and will fallback to \"modal\" on Android.\n * - \"containedTransparentModal\": will use \"UIModalPresentationOverCurrentContext\" modal style on iOS and will fallback to \"transparentModal\" on Android.\n * - \"fullScreenModal\": will use \"UIModalPresentationFullScreen\" modal style on iOS and will fallback to \"modal\" on Android.\n * - \"formSheet\": will use \"UIModalPresentationFormSheet\" modal style on iOS and will fallback to \"modal\" on Android.\n * - \"pageSheet\": will use \"UIModalPresentationPageSheet\" modal style on iOS and will fallback to \"modal\" on Android.\n *\n * Only supported on iOS and Android.\n */\n presentation?: Exclude<ScreenProps['stackPresentation'], 'push'> | 'card';\n /**\n * Describes heights where a sheet can rest.\n * Works only when `presentation` is set to `formSheet`.\n *\n * Heights should be described as fraction (a number from `[0, 1]` interval) of screen height / maximum detent height.\n * You can pass an array of ascending values each defining allowed sheet detent. iOS accepts any number of detents,\n * while **Android is limited to three**.\n *\n * There is also possibility to specify `fitToContents` literal, which intents to set the sheet height\n * to the height of its contents.\n *\n * Note that the array **must** be sorted in ascending order. This invariant is verified only in developement mode,\n * where violation results in error.\n *\n * **Android is limited to up 3 values in the array** -- any surplus values, beside first three are ignored.\n *\n * Defaults to `[1.0]`.\n */\n sheetAllowedDetents?: number[] | 'fitToContents';\n /**\n * Integer value describing elevation of the sheet, impacting shadow on the top edge of the sheet.\n *\n * Not dynamic - changing it after the component is rendered won't have an effect.\n *\n * Defaults to `24`.\n *\n * @platform Android\n */\n sheetElevation?: number;\n /**\n * Whether the sheet should expand to larger detent when scrolling.\n * Works only when `presentation` is set to `formSheet`.\n * Defaults to `true`.\n *\n * @platform ios\n */\n sheetExpandsWhenScrolledToEdge?: boolean;\n /**\n * The corner radius that the sheet will try to render with.\n * Works only when `presentation` is set to `formSheet`.\n *\n * If set to non-negative value it will try to render sheet with provided radius, else it will apply system default.\n *\n * If left unset system default is used.\n */\n sheetCornerRadius?: number;\n /**\n * Index of the detent the sheet should expand to after being opened.\n * Works only when `stackPresentation` is set to `formSheet`.\n *\n * If the specified index is out of bounds of `sheetAllowedDetents` array, in dev environment more error will be thrown,\n * in production the value will be reset to default value.\n *\n * Additionaly there is `last` value available, when set the sheet will expand initially to last (largest) detent.\n *\n * Defaults to `0` - which represents first detent in the detents array.\n */\n sheetInitialDetentIndex?: number | 'last';\n /**\n * Boolean indicating whether the sheet shows a grabber at the top.\n * Works only when `presentation` is set to `formSheet`.\n * Defaults to `false`.\n *\n * @platform ios\n */\n sheetGrabberVisible?: boolean;\n /**\n * The largest sheet detent for which a view underneath won't be dimmed.\n * Works only when `presentation` is set to `formSheet`.\n *\n * This prop can be set to an number, which indicates index of detent in `sheetAllowedDetents` array for which\n * there won't be a dimming view beneath the sheet.\n *\n * Additionaly there are following options available:\n *\n * * `none` - there will be dimming view for all detents levels,\n * * `last` - there won't be a dimming view for any detent level.\n *\n * @remark\n * On iOS, the native implementation might resize the the sheet w/o explicitly changing the detent level, e.g. in case of keyboard appearance.\n * In case after such resize the sheet exceeds height for which in regular scenario a dimming view would be applied - it will be applied,\n * even if the detent has not effectively been changed.\n *\n * Defaults to `none`, indicating that the dimming view should be always present.\n */\n sheetLargestUndimmedDetentIndex?: number | 'none' | 'last';\n /**\n * Whether the sheet content should be rendered behind the Status Bar or display cutouts.\n *\n * When set to `true`, the sheet will extend to the physical edges of the stack,\n * allowing content to be visible behind the status bar or display cutouts.\n * Detent ratios in sheetAllowedDetents will be measured relative to the full stack height.\n *\n * When set to `false`, the sheet's layout will be constrained by the inset from the top\n * and the detent ratios will then be measured relative to the adjusted height (excluding the top inset).\n * This means that sheetAllowedDetents will result in different sheet heights depending on this prop.\n *\n * Defaults to `false`.\n *\n * @platform android\n */\n sheetShouldOverflowTopInset?: boolean;\n /**\n * Whether the default native animation should be used when the sheet's with\n * `fitToContents` content size changes.\n *\n * When set to `true`, the sheet uses internal logic to synchronize size updates and\n * translation animations during entry, exit, or content updates. This ensures a smooth\n * transition for standard, static content mounting/unmounting.\n *\n * When set to `false`, the internal animation and translation logic is ignored. This\n * allows the sheet to adjust its size dynamically based on the current dimensions of\n * the content provided by the developer, allowing implementing custom resizing animations.\n *\n * Defaults to `true`.\n *\n * @platform android\n */\n sheetResizeAnimationEnabled?: boolean;\n /**\n * The display orientation to use for the screen.\n *\n * Supported values:\n * - \"default\" - resolves to \"all\" without \"portrait_down\" on iOS. On Android, this lets the system decide the best orientation.\n * - \"all\": all orientations are permitted.\n * - \"portrait\": portrait orientations are permitted.\n * - \"portrait_up\": right-side portrait orientation is permitted.\n * - \"portrait_down\": upside-down portrait orientation is permitted.\n * - \"landscape\": landscape orientations are permitted.\n * - \"landscape_left\": landscape-left orientation is permitted.\n * - \"landscape_right\": landscape-right orientation is permitted.\n *\n * Only supported on iOS and Android.\n */\n orientation?: ScreenProps['screenOrientation'];\n /**\n * Whether inactive screens should be suspended from re-rendering. Defaults to `false`.\n * Defaults to `true` when `enableFreeze()` is run at the top of the application.\n * Requires `react-native-screens` version >=3.16.0.\n *\n * Only supported on iOS and Android.\n */\n freezeOnBlur?: boolean;\n /**\n * Configures the scroll edge effect for the _content ScrollView_ (the ScrollView that is present in first descendants chain of the Screen).\n * Depending on values set, it will blur the scrolling content below certain UI elements (header items, search bar)\n * for the specified edge of the ScrollView.\n *\n * When set in nested containers, i.e. Native Stack inside Native Bottom Tabs, or the other way around,\n * the ScrollView will use only the innermost one's config.\n *\n * **Note:** Using both `headerBlurEffect` and `scrollEdgeEffects` (>= iOS 26) simultaneously may cause overlapping effects.\n *\n * Edge effects can be configured for each edge separately. The following values are currently supported:\n *\n * - `automatic` - the automatic scroll edge effect style,\n * - `hard` - a scroll edge effect with a hard cutoff and dividing line,\n * - `soft` - a soft-edged scroll edge effect,\n * - `hidden` - no scroll edge effect.\n *\n * Defaults to `automatic` for each edge.\n *\n * @platform ios\n *\n * @supported iOS 26 or higher\n */\n scrollEdgeEffects?: {\n bottom?: ScrollEdgeEffect;\n left?: ScrollEdgeEffect;\n right?: ScrollEdgeEffect;\n top?: ScrollEdgeEffect;\n };\n /**\n * Footer component that can be used alongside formSheet stack presentation style.\n *\n * This option is provided, because due to implementation details it might be problematic\n * to implement such layout with JS-only code.\n *\n * Note that this prop is marked as unstable and might be subject of breaking changes,\n * including removal, in particular when we find solution that will make implementing it with JS\n * straightforward.\n *\n * @platform android\n */\n unstable_sheetFooter?: () => React.ReactNode;\n};\n\ntype PlatformIconShared = {\n /**\n * - `image` - Use a local image as the icon.\n */\n type: 'image';\n /**\n * Image source to use as the icon.\n * - Local image: `require('./path/to/image.png')`\n * - Drawable resource or xcasset: `{ uri: 'image_name' }`\n */\n source: ImageSourcePropType;\n /**\n * Whether to apply tint color to the icon.\n * Defaults to `true`.\n *\n * @platform ios\n */\n tinted?: boolean;\n};\n\ntype PlatformIconIOSSfSymbol = {\n /**\n * - `sfSymbol` - Use an SF Symbol as the icon on iOS.\n */\n type: 'sfSymbol';\n /**\n * Name of the SF Symbol to use as the icon.\n */\n name: SFSymbol;\n};\n\ntype PlatformIconIOS = PlatformIconIOSSfSymbol | PlatformIconShared;\n\ntype SharedHeaderItem = {\n /**\n * Label of the item.\n */\n label: string;\n /**\n * Style for the item label.\n */\n labelStyle?: {\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: string;\n color?: ColorValue;\n };\n /**\n * Icon for the item\n */\n icon?: PlatformIconIOS;\n /**\n * The variant of the item.\n * \"prominent\" only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/style-swift.property\n */\n variant?: 'plain' | 'done' | 'prominent';\n /**\n * The tint color to apply to the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/tintcolor\n */\n tintColor?: ColorValue;\n /**\n * Whether the item is in a disabled state.\n */\n disabled?: boolean;\n /**\n * The width of the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/width\n */\n width?: number;\n /**\n * Whether the background this item may share with other items in the bar should be hidden.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground\n */\n hidesSharedBackground?: boolean;\n /**\n * Whether this item can share a background with other items.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground\n */\n sharesBackground?: boolean;\n /**\n * An identifier used to match items across transitions.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/identifier\n */\n identifier?: string;\n /**\n * A badge to display on a item.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitembadge\n */\n badge?: {\n /**\n * The text to display in the badge.\n */\n value: number | string;\n /**\n * Style of the badge.\n */\n style?: {\n color?: ColorValue;\n backgroundColor?: ColorValue;\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: string;\n };\n };\n /**\n * Accessibility label for the item.\n */\n accessibilityLabel?: string;\n /**\n * Accessibility hint for the item.\n */\n accessibilityHint?: string;\n};\n\n/**\n * A button item in the header.\n */\nexport type NativeStackHeaderItemButton = SharedHeaderItem & {\n /**\n * Type of the item.\n */\n type: 'button';\n /**\n * Function to call when the item is pressed.\n */\n onPress: () => void;\n /**\n * Whether the item is in a selected state.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/isselected\n */\n selected?: boolean;\n};\n\n/**\n * An action item in a menu.\n */\nexport type NativeStackHeaderItemMenuAction = {\n type: 'action';\n /**\n * Label for the menu item.\n */\n label: string;\n /**\n * The secondary text displayed alongside the label of the menu item.\n */\n description?: string;\n /**\n * Icon for the menu item.\n */\n icon?: PlatformIconIOS;\n /**\n * Function to call when the menu item is pressed.\n */\n onPress: () => void;\n /**\n * The state of an action- or command-based menu item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/state\n */\n state?: 'on' | 'off' | 'mixed';\n /**\n * Whether to apply disabled style to the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/disabled\n */\n disabled?: boolean;\n /**\n * Whether to apply destructive style to the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive\n */\n destructive?: boolean;\n /**\n * Whether to apply hidden style to the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/hidden\n */\n hidden?: boolean;\n /**\n * Whether to keep the menu presented after firing the element’s action.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/keepsmenupresented\n */\n keepsMenuPresented?: boolean;\n /**\n * An elaborated title that explains the purpose of the action.\n *\n * On iOS, the system displays this title in the discoverability heads-up display (HUD).\n * If this is not set, the HUD displays the title property.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uiaction/discoverabilitytitle\n */\n discoverabilityLabel?: string;\n};\n\n/**\n * A submenu item that contains other menu items.\n */\nexport type NativeStackHeaderItemMenuSubmenu = {\n type: 'submenu';\n /**\n * Label for the submenu item.\n */\n label: string;\n /**\n * Icon for the submenu item.\n */\n icon?: PlatformIconIOS;\n /**\n * Whether the menu is displayed inline with the parent menu.\n * By default, submenus are displayed after expanding the parent menu item.\n * Inline menus are displayed as part of the parent menu as a section.\n *\n * Defaults to `false`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline\n */\n inline?: boolean;\n /**\n * How the submenu items are displayed.\n * - `default`: menu items are displayed normally.\n * - `palette`: menu items are displayed in a horizontal row.\n *\n * Defaults to `default`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette\n */\n layout?: 'default' | 'palette';\n /**\n * Whether to apply destructive style to the menu item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive\n */\n destructive?: boolean;\n /**\n * Whether multiple items in the submenu can be selected, i.e. in \"on\" state.\n *\n * Defaults to `false`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/singleselection\n */\n multiselectable?: boolean;\n /**\n * Array of menu items (actions or submenus).\n */\n items: NativeStackHeaderItemMenu['menu']['items'];\n};\n\n/**\n * An item that shows a menu when pressed.\n */\nexport type NativeStackHeaderItemMenu = SharedHeaderItem & {\n type: 'menu';\n /**\n * Whether the menu is a selection menu.\n * Tapping an item in a selection menu will add a checkmark to the selected item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/changesselectionasprimaryaction\n */\n changesSelectionAsPrimaryAction?: boolean;\n /**\n * Menu for the item.\n */\n menu: {\n /**\n * Optional title to show on top of the menu.\n */\n title?: string;\n /**\n * Whether multiple items in the submenu can be selected, i.e. in \"on\" state.\n *\n * Defaults to `false`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/singleselection\n */\n multiselectable?: boolean;\n /**\n * How the submenu items are displayed.\n * - `default`: menu items are displayed normally.\n * - `palette`: menu items are displayed in a horizontal row.\n *\n * Defaults to `default`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette\n */\n layout?: 'default' | 'palette';\n /**\n * Array of menu items (actions or submenus).\n */\n items: (NativeStackHeaderItemMenuAction | NativeStackHeaderItemMenuSubmenu)[];\n };\n};\n\n/**\n * An item to add spacing between other items in the header.\n */\nexport type NativeStackHeaderItemSpacing = {\n type: 'spacing';\n /**\n * The amount of spacing to add.\n */\n spacing: number;\n};\n\n/**\n * A custom item to display any React Element in the header.\n */\nexport type NativeStackHeaderItemCustom = {\n type: 'custom';\n /**\n * A React Element to display as the item.\n */\n element: React.ReactElement;\n /**\n * Whether the background this item may share with other items in the bar should be hidden.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground\n */\n hidesSharedBackground?: boolean;\n};\n\n/**\n * An item that can be displayed in the header.\n * It can be a button, a menu, spacing, or a custom element.\n *\n * On iOS 26, when showing items on the right side of the header,\n * if the items don't fit the available space, they will be collapsed into a menu automatically.\n * Items with `type: 'custom'` will not be included in this automatic collapsing behavior.\n */\nexport type NativeStackHeaderItem =\n | NativeStackHeaderItemButton\n | NativeStackHeaderItemMenu\n | NativeStackHeaderItemSpacing\n | NativeStackHeaderItemCustom;\n\nexport type NativeStackNavigatorProps = DefaultNavigatorOptions<\n ParamListBase,\n string | undefined,\n StackNavigationState<ParamListBase>,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap,\n NativeStackNavigationProp<ParamListBase>\n> &\n StackRouterOptions &\n NativeStackNavigationConfig;\n\nexport type NativeStackDescriptor = Descriptor<\n NativeStackNavigationOptions,\n NativeStackNavigationProp<ParamListBase>,\n RouteProp<ParamListBase>\n>;\n\nexport type NativeStackDescriptorMap = {\n [key: string]: NativeStackDescriptor;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/react-navigation/native-stack/types.tsx"],"names":[],"mappings":"","sourcesContent":["import type {\n ColorValue,\n ImageSourcePropType,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport type {\n ScreenProps,\n ScreenStackHeaderConfigProps,\n ScrollEdgeEffect,\n SearchBarProps,\n} from 'react-native-screens';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport type {\n DefaultNavigatorOptions,\n Descriptor,\n NavigationHelpers,\n NavigationProp,\n ParamListBase,\n Route,\n RouteProp,\n StackActionHelpers,\n StackNavigationState,\n StackRouterOptions,\n Theme,\n} from '../native';\n\nexport type NativeStackNavigationEventMap = {\n /**\n * Event which fires when a transition animation starts.\n */\n transitionStart: { data: { closing: boolean } };\n /**\n * Event which fires when a transition animation ends.\n */\n transitionEnd: { data: { closing: boolean } };\n /**\n * Event which fires when a swipe back is canceled on iOS.\n */\n gestureCancel: { data: undefined };\n /**\n * Event which fires when screen is in sheet presentation & it's detent changes.\n *\n * In payload it caries two fields:\n *\n * * `index` - current detent index in the `sheetAllowedDetents` array,\n * * `stable` - on Android `false` value means that the user is dragging the sheet or it is settling; on iOS it is always `true`.\n */\n sheetDetentChange: { data: { index: number; stable: boolean } };\n};\n\nexport type NativeStackNavigationProp<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = string,\n NavigatorID extends string | undefined = undefined,\n> = NavigationProp<\n ParamList,\n RouteName,\n NavigatorID,\n StackNavigationState<ParamList>,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap\n> &\n StackActionHelpers<ParamList>;\n\nexport type NativeStackScreenProps<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = string,\n NavigatorID extends string | undefined = undefined,\n> = {\n navigation: NativeStackNavigationProp<ParamList, RouteName, NavigatorID>;\n route: RouteProp<ParamList, RouteName>;\n};\n\nexport type NativeStackOptionsArgs<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = keyof ParamList,\n NavigatorID extends string | undefined = undefined,\n> = NativeStackScreenProps<ParamList, RouteName, NavigatorID> & {\n theme: Theme;\n};\n\nexport type NativeStackNavigationHelpers = NavigationHelpers<\n ParamListBase,\n NativeStackNavigationEventMap\n>;\n\n// We want it to be an empty object because navigator does not have any additional props\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type NativeStackNavigationConfig = {};\n\nexport type NativeStackScreenNativeProps = Partial<\n Omit<ScreenProps, 'children' | 'screenId' | 'activityState'>\n>;\n\nexport type NativeStackHeaderNativeProps = Partial<ScreenStackHeaderConfigProps>;\n\nexport type NativeStackNativeProps = NativeStackScreenNativeProps & {\n headerConfig?: NativeStackHeaderNativeProps;\n};\n\nexport type NativeStackHeaderProps = {\n /**\n * Options for the back button.\n */\n back?: {\n /**\n * Title of the previous screen.\n */\n title: string | undefined;\n /**\n * The `href` to use for the anchor tag on web\n */\n href: string | undefined;\n };\n /**\n * Options for the current screen.\n */\n options: NativeStackNavigationOptions;\n /**\n * Route object for the current screen.\n */\n route: Route<string>;\n /**\n * Navigation prop for the header.\n */\n navigation: NativeStackNavigationProp<ParamListBase>;\n};\n\nexport type NativeStackHeaderItemProps = {\n /**\n * Tint color for the header.\n */\n tintColor?: ColorValue;\n /**\n * Whether it's possible to navigate back in stack.\n */\n canGoBack?: boolean;\n /**\n * Header background color\n */\n backgroundColor?: ColorValue;\n};\n\nexport type NativeStackHeaderBackProps = NativeStackHeaderItemProps & {\n /**\n * Label text for the button. Usually the title of the previous screen.\n * By default, this is only shown on iOS 18.\n */\n label?: string;\n /**\n * The `href` to use for the anchor tag on web\n */\n href?: string;\n};\n\n/**\n * @deprecated Use `NativeStackHeaderBackProps` instead.\n */\nexport type NativeStackHeaderLeftProps = NativeStackHeaderBackProps;\n\n/**\n * @deprecated Use `NativeStackHeaderItemProps` instead.\n */\nexport type NativeStackHeaderRightProps = NativeStackHeaderItemProps;\n\nexport type NativeStackNavigationOptions = {\n /**\n * String that can be displayed in the header as a fallback for `headerTitle`.\n */\n title?: string;\n /**\n * Function that given `HeaderProps` returns a React Element to display as a header.\n */\n header?: (props: NativeStackHeaderProps) => React.ReactNode;\n /**\n * Whether the back button is visible in the header.\n * You can use it to show a back button alongside `headerLeft` if you have specified it.\n *\n * This will have no effect on the first screen in the stack.\n */\n headerBackVisible?: boolean;\n /**\n * Title string used by the back button on iOS.\n * Defaults to the previous scene's title.\n * On iOS the text might be shortened to \"Back\" or arrow icon depending on the available space, following native iOS behaviour.\n * See `headerBackButtonDisplayMode` to read about limitations and interactions with other props.\n * Use `headerBackButtonDisplayMode: \"minimal\"` to hide it.\n *\n * Only supported on iOS and Web.\n *\n * @platform ios, web\n */\n headerBackTitle?: string;\n /**\n * Style object for header back title. Supported properties:\n * - fontFamily\n * - fontSize\n *\n * Only supported on iOS and Web.\n *\n * @platform ios, web\n */\n headerBackTitleStyle?: StyleProp<{\n fontFamily?: string;\n fontSize?: number;\n }>;\n /**\n * Icon to display in the header as the icon in the back button.\n *\n * Defaults to back icon image for the platform\n * - A chevron on iOS\n * - An arrow on Android\n *\n * @example\n * ```js\n * headerBackIcon: {\n * type: 'image',\n * source: require('./back-icon.png'),\n * }\n * ```\n */\n headerBackIcon?: {\n type: 'image';\n source: ImageSourcePropType;\n };\n /**\n * Image to display in the header as the icon in the back button.\n *\n * @deprecated Use `headerBackIcon` instead.\n */\n headerBackImageSource?: ImageSourcePropType;\n /**\n * Style of the header when a large title is shown.\n * The large title is shown if `headerLargeTitle` is `true` and\n * the edge of any scrollable content reaches the matching edge of the header.\n *\n * Supported properties:\n * - backgroundColor\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerLargeStyle?: StyleProp<{\n backgroundColor?: ColorValue;\n }>;\n /**\n * Whether to enable header with large title which collapses to regular header on scroll.\n *\n * For large title to collapse on scroll, the content of the screen should be wrapped in a scrollable view such as `ScrollView` or `FlatList`.\n * If the scrollable area doesn't fill the screen, the large title won't collapse on scroll.\n * You also need to specify `contentInsetAdjustmentBehavior=\"automatic\"` in your `ScrollView`, `FlatList` etc.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerLargeTitleEnabled?: boolean;\n /**\n * Whether to enable header with large title which collapses to regular header on scroll.\n *\n * @deprecated Use `headerLargeTitleEnabled` instead.\n */\n headerLargeTitle?: boolean;\n /**\n * Whether drop shadow of header is visible when a large title is shown.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerLargeTitleShadowVisible?: boolean;\n /**\n * Style object for large title in header. Supported properties:\n * - fontFamily\n * - fontSize\n * - fontWeight\n * - color\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerLargeTitleStyle?: StyleProp<{\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: string;\n color?: ColorValue;\n }>;\n /**\n * Whether to show the header. The header is shown by default.\n * Setting this to `false` hides the header.\n */\n headerShown?: boolean;\n /**\n * Style object for header. Supported properties:\n * - backgroundColor\n */\n headerStyle?: StyleProp<{\n backgroundColor?: ColorValue;\n }>;\n /**\n * Whether to hide the elevation shadow (Android) or the bottom border (iOS) on the header.\n */\n headerShadowVisible?: boolean;\n /**\n * Boolean indicating whether the navigation bar is translucent.\n * Setting this to `true` makes the header absolutely positioned,\n * and changes the background color to `transparent` unless specified in `headerStyle`.\n */\n headerTransparent?: boolean;\n /**\n * Blur effect for the translucent header.\n * The `headerTransparent` option needs to be set to `true` for this to work.\n *\n * **Note:** Using both `headerBlurEffect` and `scrollEdgeEffects` (>= iOS 26) simultaneously may cause overlapping effects.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerBlurEffect?: ScreenStackHeaderConfigProps['blurEffect'];\n /**\n * Tint color for the header. Changes the color of back button and title.\n */\n headerTintColor?: ColorValue;\n /**\n * Function which returns a React Element to render as the background of the header.\n * This is useful for using backgrounds such as an image, a gradient, blur effect etc.\n * You can use this with `headerTransparent` to render content underneath a translucent header.\n */\n headerBackground?: () => React.ReactNode;\n /**\n * Function which returns a React Element to display on the left side of the header.\n * This replaces the back button. See `headerBackVisible` to show the back button along side left element.\n * Will be overriden by `headerLeftItems` on iOS.\n */\n headerLeft?: (props: NativeStackHeaderBackProps) => React.ReactNode;\n /**\n * Function which returns a React Element to display on the right side of the header.\n * Will be overriden by `headerRightItems` on iOS.\n */\n headerRight?: (props: NativeStackHeaderItemProps) => React.ReactNode;\n /**\n * Function which returns an array of items to display as on the left side of the header.\n * Overrides `headerLeft`.\n *\n * This is an unstable API and might change in the future.\n *\n * @platform ios\n */\n unstable_headerLeftItems?: (props: NativeStackHeaderItemProps) => NativeStackHeaderItem[];\n /**\n * Function which returns an array of items to display as on the right side of the header.\n * Overrides `headerRight`.\n *\n * This is an unstable API and might change in the future.\n *\n * @platform ios\n */\n unstable_headerRightItems?: (props: NativeStackHeaderItemProps) => NativeStackHeaderItem[];\n /**\n * String or a function that returns a React Element to be used by the header.\n * Defaults to screen `title` or route name.\n *\n * When a function is passed, it receives `tintColor` and`children` in the options object as an argument.\n * The title string is passed in `children`.\n *\n * Note that if you render a custom element by passing a function, animations for the title won't work.\n */\n headerTitle?:\n | string\n | ((props: {\n /**\n * The title text of the header.\n */\n children: string;\n /**\n * Tint color for the header.\n */\n tintColor?: ColorValue;\n }) => React.ReactNode);\n /**\n * How to align the the header title.\n * Defaults to `left` on platforms other than iOS.\n *\n * Not supported on iOS. It's always `center` on iOS and cannot be changed.\n */\n headerTitleAlign?: 'left' | 'center';\n /**\n * Style object for header title. Supported properties:\n * - fontFamily\n * - fontSize\n * - fontWeight\n * - color\n */\n headerTitleStyle?: StyleProp<\n Pick<TextStyle, 'fontFamily' | 'fontSize' | 'fontWeight'> & {\n color?: ColorValue;\n }\n >;\n /**\n * Options to render a native search bar.\n * You also need to specify `contentInsetAdjustmentBehavior=\"automatic\"` in your `ScrollView`, `FlatList` etc.\n * If you don't have a `ScrollView`, specify `headerTransparent: false`.\n */\n headerSearchBarOptions?: SearchBarProps;\n /**\n * Props passed to the underlying native stack implementation in `react-native-screens`.\n * Use this to configure props that are not directly exposed by Expo Router.\n *\n * > **Note**: This will override any other props set by Expo Router and may lead to unexpected behavior.\n *\n * > **Note**: This is an unstable API and may change or be removed in minor versions.\n *\n * @platform android\n * @platform ios\n */\n unstable_nativeProps?: NativeStackNativeProps;\n /**\n * Boolean indicating whether to show the menu on longPress of iOS >= 14 back button. Defaults to `true`.\n * Requires `react-native-screens` version >=3.3.0.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n headerBackButtonMenuEnabled?: boolean;\n /**\n * How the back button displays icon and title.\n *\n * Supported values:\n * - \"default\" - Displays one of the following depending on the available space: previous screen's title, generic title (e.g. 'Back') or no title (only icon).\n * - \"generic\" – Displays one of the following depending on the available space: generic title (e.g. 'Back') or no title (only icon).\n * - \"minimal\" – Always displays only the icon without a title.\n *\n * The space-aware behavior is disabled when:\n * - The iOS version is 13 or lower\n * - Custom font family or size is set (e.g. with `headerBackTitleStyle`)\n * - Back button menu is disabled (e.g. with `headerBackButtonMenuEnabled`)\n *\n * In such cases, a static title and icon are always displayed.\n *\n * Defaults to \"default\" on iOS, and \"minimal\" on other platforms.\n *\n * Only supported on iOS and Web.\n *\n * @platform ios, web\n */\n headerBackButtonDisplayMode?: ScreenStackHeaderConfigProps['backButtonDisplayMode'];\n /**\n * Whether the home indicator should prefer to stay hidden on this screen. Defaults to `false`.\n *\n * @platform ios\n */\n autoHideHomeIndicator?: boolean;\n /**\n * Whether the keyboard should hide when swiping to the previous screen. Defaults to `false`.\n *\n * @platform ios\n */\n keyboardHandlingEnabled?: boolean;\n /**\n * Sets the navigation bar color. Defaults to initial navigation bar color.\n *\n * @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.\n * This prop is subject to removal in the future.\n * See: https://developer.android.com/about/versions/15/behavior-changes-15#ux.\n *\n * @platform android\n */\n navigationBarColor?: ColorValue;\n /**\n * Boolean indicating whether the content should be visible behind the navigation bar. Defaults to `false`.\n *\n * @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.\n * This prop is subject to removal in the future.\n * See: https://developer.android.com/about/versions/15/behavior-changes-15#ux.\n *\n * @platform android\n */\n navigationBarTranslucent?: boolean;\n /**\n * Sets the visibility of the navigation bar. Defaults to `false`.\n *\n * @platform android\n */\n navigationBarHidden?: boolean;\n /**\n * Sets the status bar animation (similar to the `StatusBar` component).\n * On Android, setting either `fade` or `slide` will set the transition of status bar color. On iOS, this option applies to appereance animation of the status bar.\n * Requires setting `View controller-based status bar appearance -> YES` (or removing the config) in your `Info.plist` file.\n *\n * Defaults to `fade` on iOS and `none` on Android.\n *\n * Only supported on Android and iOS.\n *\n * @platform android, ios\n */\n statusBarAnimation?: ScreenProps['statusBarAnimation'];\n /**\n * Sets the status bar color (similar to the `StatusBar` component). Defaults to initial status bar color.\n *\n * @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.\n * This prop is subject to removal in the future.\n * See: https://developer.android.com/about/versions/15/behavior-changes-15#ux.\n *\n * @platform android\n */\n statusBarBackgroundColor?: ColorValue;\n /**\n * Whether the status bar should be hidden on this screen.\n * Requires setting `View controller-based status bar appearance -> YES` in your Info.plist file.\n *\n * Only supported on Android and iOS.\n *\n * @platform android, ios\n */\n statusBarHidden?: boolean;\n /**\n * Sets the status bar color (similar to the `StatusBar` component).\n * Requires setting `View controller-based status bar appearance -> YES` (or removing the config) in your `Info.plist` file.\n * `auto` and `inverted` are supported only on iOS. On Android, they will fallback to `light`.\n *\n * Defaults to `auto` on iOS and `light` on Android.\n *\n * Only supported on Android and iOS.\n *\n * @platform android, ios\n */\n statusBarStyle?: ScreenProps['statusBarStyle'];\n /**\n * Sets the translucency of the status bar. Defaults to `false`.\n *\n * @deprecated For all apps targeting Android SDK 35 or above edge-to-edge is enabled by default.\n * This prop is subject to removal in the future.\n * See: https://developer.android.com/about/versions/15/behavior-changes-15#ux.\n *\n * @platform android\n */\n statusBarTranslucent?: boolean;\n /**\n * Sets the direction in which you should swipe to dismiss the screen.\n * When using `vertical` option, options `fullScreenGestureEnabled: true`, `animationMatchesGesture: true` and `animation: 'slide_from_bottom'` are set by default.\n *\n * Supported values:\n * - `vertical` – dismiss screen vertically\n * - `horizontal` – dismiss screen horizontally (default)\n *\n * @platform ios\n */\n gestureDirection?: ScreenProps['swipeDirection'];\n /**\n * Style object for the scene content.\n */\n contentStyle?: StyleProp<ViewStyle>;\n /**\n * Whether the gesture to dismiss should use animation provided to `animation` prop. Defaults to `false`.\n *\n * Doesn't affect the behavior of screens presented modally.\n *\n * @platform ios\n */\n animationMatchesGesture?: boolean;\n /**\n * Whether the gesture to dismiss should work on the whole screen. The behavior depends on iOS version.\n *\n * On iOS 18 and below:\n * `false` by default. If enabled, swipe gesture will use `simple_push` transition animation by default. It can be changed\n * with `animation` & `animationMatchesGesture` props, but default iOS swipe animation is not achievable.\n *\n * On iOS 26 and up:\n * `true` by default to match new native behavior. You can still customize it with `animation` & `animationMatchesGesture` props.\n *\n * Doesn't affect the behavior of screens presented modally.\n *\n * @platform ios\n */\n fullScreenGestureEnabled?: boolean;\n /**\n * iOS 18 and below. Controls whether the full screen dismiss gesture has shadow under view during transition.\n * The gesture uses custom transition and thus doesn't have a shadow by default. When enabled, a custom shadow view\n * is added during the transition which tries to mimic the default iOS shadow. Defaults to `true`.\n *\n * This does not affect the behavior of transitions that don't use gestures, enabled by `fullScreenGestureEnabled` prop.\n *\n * @deprecated since iOS 26.\n *\n * @platform ios\n */\n fullScreenGestureShadowEnabled?: boolean;\n /**\n * Whether you can use gestures to dismiss this screen. Defaults to `true`.\n *\n * Only supported on iOS.\n *\n * @platform ios\n */\n gestureEnabled?: boolean;\n /**\n * Use it to restrict the distance from the edges of screen in which the gesture should be recognized. To be used alongside `fullScreenGestureEnabled`.\n *\n * @platform ios\n */\n gestureResponseDistance?: ScreenProps['gestureResponseDistance'];\n /**\n * The type of animation to use when this screen replaces another screen. Defaults to `pop`.\n *\n * Supported values:\n * - \"push\": the new screen will perform push animation.\n * - \"pop\": the new screen will perform pop animation.\n *\n * Only supported on iOS and Android.\n */\n animationTypeForReplace?: ScreenProps['replaceAnimation'];\n /**\n * How the screen should animate when pushed or popped.\n *\n * Supported values:\n * - \"default\": use the platform default animation\n * - \"fade\": fade screen in or out\n * - \"fade_from_bottom\" – performs a fade from bottom animation\n * - \"flip\": flip the screen, requires presentation: \"modal\" (iOS only)\n * - \"simple_push\": use the platform default animation, but without shadow and native header transition (iOS only)\n * - \"slide_from_bottom\": slide in the new screen from bottom\n * - \"slide_from_right\": slide in the new screen from right (Android only, uses default animation on iOS)\n * - \"slide_from_left\": slide in the new screen from left (Android only, uses default animation on iOS)\n * - \"ios_from_right\" - iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS)\n * - \"ios_from_left\" - iOS like slide in animation. pushes in the new screen from left to right (Android only, resolves to default transition on iOS)\n * - \"none\": don't animate the screen\n *\n * Only supported on iOS and Android.\n */\n animation?: ScreenProps['stackAnimation'];\n /**\n * Duration (in milliseconds) for the following transition animations on iOS:\n * - `slide_from_bottom`\n * - `fade_from_bottom`\n * - `fade`\n * - `simple_push`\n *\n * Defaults to `500`.\n *\n * The duration is not customizable for:\n * - Screens with `default` and `flip` animations\n * - Screens with `presentation` set to `modal`, `formSheet`, `pageSheet` (regardless of animation)\n *\n * @platform ios\n */\n animationDuration?: number;\n /**\n * How should the screen be presented.\n *\n * Supported values:\n * - \"card\": the new screen will be pushed onto a stack, which means the default animation will be slide from the side on iOS, the animation on Android will vary depending on the OS version and theme.\n * - \"modal\": the new screen will be presented modally. this also allows for a nested stack to be rendered inside the screen.\n * - \"transparentModal\": the new screen will be presented modally, but in addition, the previous screen will stay so that the content below can still be seen if the screen has translucent background.\n * - \"containedModal\": will use \"UIModalPresentationCurrentContext\" modal style on iOS and will fallback to \"modal\" on Android.\n * - \"containedTransparentModal\": will use \"UIModalPresentationOverCurrentContext\" modal style on iOS and will fallback to \"transparentModal\" on Android.\n * - \"fullScreenModal\": will use \"UIModalPresentationFullScreen\" modal style on iOS and will fallback to \"modal\" on Android.\n * - \"formSheet\": will use \"UIModalPresentationFormSheet\" modal style on iOS and will fallback to \"modal\" on Android.\n * - \"pageSheet\": will use \"UIModalPresentationPageSheet\" modal style on iOS and will fallback to \"modal\" on Android.\n *\n * Only supported on iOS and Android.\n */\n presentation?: Exclude<ScreenProps['stackPresentation'], 'push'> | 'card';\n /**\n * Describes heights where a sheet can rest.\n * Works only when `presentation` is set to `formSheet`.\n *\n * Heights should be described as fraction (a number from `[0, 1]` interval) of screen height / maximum detent height.\n * You can pass an array of ascending values each defining allowed sheet detent. iOS accepts any number of detents,\n * while **Android is limited to three**.\n *\n * There is also possibility to specify `fitToContents` literal, which intents to set the sheet height\n * to the height of its contents.\n *\n * Note that the array **must** be sorted in ascending order. This invariant is verified only in developement mode,\n * where violation results in error.\n *\n * **Android is limited to up 3 values in the array** -- any surplus values, beside first three are ignored.\n *\n * Defaults to `[1.0]`.\n */\n sheetAllowedDetents?: number[] | 'fitToContents';\n /**\n * Integer value describing elevation of the sheet, impacting shadow on the top edge of the sheet.\n *\n * Not dynamic - changing it after the component is rendered won't have an effect.\n *\n * Defaults to `24`.\n *\n * @platform Android\n */\n sheetElevation?: number;\n /**\n * Whether the sheet should expand to larger detent when scrolling.\n * Works only when `presentation` is set to `formSheet`.\n * Defaults to `true`.\n *\n * @platform ios\n */\n sheetExpandsWhenScrolledToEdge?: boolean;\n /**\n * The corner radius that the sheet will try to render with.\n * Works only when `presentation` is set to `formSheet`.\n *\n * If set to non-negative value it will try to render sheet with provided radius, else it will apply system default.\n *\n * If left unset system default is used.\n */\n sheetCornerRadius?: number;\n /**\n * Index of the detent the sheet should expand to after being opened.\n * Works only when `stackPresentation` is set to `formSheet`.\n *\n * If the specified index is out of bounds of `sheetAllowedDetents` array, in dev environment more error will be thrown,\n * in production the value will be reset to default value.\n *\n * Additionaly there is `last` value available, when set the sheet will expand initially to last (largest) detent.\n *\n * Defaults to `0` - which represents first detent in the detents array.\n */\n sheetInitialDetentIndex?: number | 'last';\n /**\n * Boolean indicating whether the sheet shows a grabber at the top.\n * Works only when `presentation` is set to `formSheet`.\n * Defaults to `false`.\n *\n * @platform ios\n */\n sheetGrabberVisible?: boolean;\n /**\n * The largest sheet detent for which a view underneath won't be dimmed.\n * Works only when `presentation` is set to `formSheet`.\n *\n * This prop can be set to an number, which indicates index of detent in `sheetAllowedDetents` array for which\n * there won't be a dimming view beneath the sheet.\n *\n * Additionaly there are following options available:\n *\n * * `none` - there will be dimming view for all detents levels,\n * * `last` - there won't be a dimming view for any detent level.\n *\n * @remark\n * On iOS, the native implementation might resize the the sheet w/o explicitly changing the detent level, e.g. in case of keyboard appearance.\n * In case after such resize the sheet exceeds height for which in regular scenario a dimming view would be applied - it will be applied,\n * even if the detent has not effectively been changed.\n *\n * Defaults to `none`, indicating that the dimming view should be always present.\n */\n sheetLargestUndimmedDetentIndex?: number | 'none' | 'last';\n /**\n * Whether the sheet content should be rendered behind the Status Bar or display cutouts.\n *\n * When set to `true`, the sheet will extend to the physical edges of the stack,\n * allowing content to be visible behind the status bar or display cutouts.\n * Detent ratios in sheetAllowedDetents will be measured relative to the full stack height.\n *\n * When set to `false`, the sheet's layout will be constrained by the inset from the top\n * and the detent ratios will then be measured relative to the adjusted height (excluding the top inset).\n * This means that sheetAllowedDetents will result in different sheet heights depending on this prop.\n *\n * Defaults to `false`.\n *\n * @platform android\n */\n sheetShouldOverflowTopInset?: boolean;\n /**\n * Whether the default native animation should be used when the sheet's with\n * `fitToContents` content size changes.\n *\n * When set to `true`, the sheet uses internal logic to synchronize size updates and\n * translation animations during entry, exit, or content updates. This ensures a smooth\n * transition for standard, static content mounting/unmounting.\n *\n * When set to `false`, the internal animation and translation logic is ignored. This\n * allows the sheet to adjust its size dynamically based on the current dimensions of\n * the content provided by the developer, allowing implementing custom resizing animations.\n *\n * Defaults to `true`.\n *\n * @platform android\n */\n sheetResizeAnimationEnabled?: boolean;\n /**\n * The display orientation to use for the screen.\n *\n * Supported values:\n * - \"default\" - resolves to \"all\" without \"portrait_down\" on iOS. On Android, this lets the system decide the best orientation.\n * - \"all\": all orientations are permitted.\n * - \"portrait\": portrait orientations are permitted.\n * - \"portrait_up\": right-side portrait orientation is permitted.\n * - \"portrait_down\": upside-down portrait orientation is permitted.\n * - \"landscape\": landscape orientations are permitted.\n * - \"landscape_left\": landscape-left orientation is permitted.\n * - \"landscape_right\": landscape-right orientation is permitted.\n *\n * Only supported on iOS and Android.\n */\n orientation?: ScreenProps['screenOrientation'];\n /**\n * Whether inactive screens should be suspended from re-rendering. Defaults to `false`.\n * Defaults to `true` when `enableFreeze()` is run at the top of the application.\n * Requires `react-native-screens` version >=3.16.0.\n *\n * Only supported on iOS and Android.\n */\n freezeOnBlur?: boolean;\n /**\n * Configures the scroll edge effect for the _content ScrollView_ (the ScrollView that is present in first descendants chain of the Screen).\n * Depending on values set, it will blur the scrolling content below certain UI elements (header items, search bar)\n * for the specified edge of the ScrollView.\n *\n * When set in nested containers, i.e. Native Stack inside Native Bottom Tabs, or the other way around,\n * the ScrollView will use only the innermost one's config.\n *\n * **Note:** Using both `headerBlurEffect` and `scrollEdgeEffects` (>= iOS 26) simultaneously may cause overlapping effects.\n *\n * Edge effects can be configured for each edge separately. The following values are currently supported:\n *\n * - `automatic` - the automatic scroll edge effect style,\n * - `hard` - a scroll edge effect with a hard cutoff and dividing line,\n * - `soft` - a soft-edged scroll edge effect,\n * - `hidden` - no scroll edge effect.\n *\n * Defaults to `automatic` for each edge.\n *\n * @platform ios\n *\n * @supported iOS 26 or higher\n */\n scrollEdgeEffects?: {\n bottom?: ScrollEdgeEffect;\n left?: ScrollEdgeEffect;\n right?: ScrollEdgeEffect;\n top?: ScrollEdgeEffect;\n };\n /**\n * Footer component that can be used alongside formSheet stack presentation style.\n *\n * This option is provided, because due to implementation details it might be problematic\n * to implement such layout with JS-only code.\n *\n * Note that this prop is marked as unstable and might be subject of breaking changes,\n * including removal, in particular when we find solution that will make implementing it with JS\n * straightforward.\n *\n * @platform android\n */\n unstable_sheetFooter?: () => React.ReactNode;\n};\n\ntype PlatformIconShared = {\n /**\n * - `image` - Use a local image as the icon.\n */\n type: 'image';\n /**\n * Image source to use as the icon.\n * - Local image: `require('./path/to/image.png')`\n * - Drawable resource or xcasset: `{ uri: 'image_name' }`\n */\n source: ImageSourcePropType;\n /**\n * Whether to apply tint color to the icon.\n * Defaults to `true`.\n *\n * @platform ios\n */\n tinted?: boolean;\n};\n\ntype PlatformIconIOSSfSymbol = {\n /**\n * - `sfSymbol` - Use an SF Symbol as the icon on iOS.\n */\n type: 'sfSymbol';\n /**\n * Name of the SF Symbol to use as the icon.\n */\n name: SFSymbol;\n};\n\ntype PlatformIconIOS = PlatformIconIOSSfSymbol | PlatformIconShared;\n\ntype SharedHeaderItem = {\n /**\n * Label of the item.\n */\n label: string;\n /**\n * Style for the item label.\n */\n labelStyle?: {\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: string;\n color?: ColorValue;\n };\n /**\n * Icon for the item\n */\n icon?: PlatformIconIOS;\n /**\n * The variant of the item.\n * \"prominent\" only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/style-swift.property\n */\n variant?: 'plain' | 'done' | 'prominent';\n /**\n * The tint color to apply to the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/tintcolor\n */\n tintColor?: ColorValue;\n /**\n * Whether the item is in a disabled state.\n */\n disabled?: boolean;\n /**\n * The width of the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/width\n */\n width?: number;\n /**\n * Whether the background this item may share with other items in the bar should be hidden.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground\n */\n hidesSharedBackground?: boolean;\n /**\n * Whether this item can share a background with other items.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/sharesbackground\n */\n sharesBackground?: boolean;\n /**\n * An identifier used to match items across transitions.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/identifier\n */\n identifier?: string;\n /**\n * A badge to display on a item.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitembadge\n */\n badge?: {\n /**\n * The text to display in the badge.\n */\n value: number | string;\n /**\n * Style of the badge.\n */\n style?: {\n color?: ColorValue;\n backgroundColor?: ColorValue;\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: string;\n };\n };\n /**\n * Accessibility label for the item.\n */\n accessibilityLabel?: string;\n /**\n * Accessibility hint for the item.\n */\n accessibilityHint?: string;\n};\n\n/**\n * A button item in the header.\n */\nexport type NativeStackHeaderItemButton = SharedHeaderItem & {\n /**\n * Type of the item.\n */\n type: 'button';\n /**\n * Function to call when the item is pressed.\n */\n onPress: () => void;\n /**\n * Whether the item is in a selected state.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/isselected\n */\n selected?: boolean;\n};\n\n/**\n * An action item in a menu.\n */\nexport type NativeStackHeaderItemMenuAction = {\n type: 'action';\n /**\n * Label for the menu item.\n */\n label: string;\n /**\n * The secondary text displayed alongside the label of the menu item.\n */\n description?: string;\n /**\n * Icon for the menu item.\n */\n icon?: PlatformIconIOS;\n /**\n * Function to call when the menu item is pressed.\n */\n onPress: () => void;\n /**\n * The state of an action- or command-based menu item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/state\n */\n state?: 'on' | 'off' | 'mixed';\n /**\n * Whether to apply disabled style to the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/disabled\n */\n disabled?: boolean;\n /**\n * Whether to apply destructive style to the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive\n */\n destructive?: boolean;\n /**\n * Whether to apply hidden style to the item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/hidden\n */\n hidden?: boolean;\n /**\n * Whether to keep the menu presented after firing the element’s action.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/keepsmenupresented\n */\n keepsMenuPresented?: boolean;\n /**\n * An elaborated title that explains the purpose of the action.\n *\n * On iOS, the system displays this title in the discoverability heads-up display (HUD).\n * If this is not set, the HUD displays the title property.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uiaction/discoverabilitytitle\n */\n discoverabilityLabel?: string;\n};\n\n/**\n * A submenu item that contains other menu items.\n */\nexport type NativeStackHeaderItemMenuSubmenu = {\n type: 'submenu';\n /**\n * Label for the submenu item.\n */\n label: string;\n /**\n * Icon for the submenu item.\n */\n icon?: PlatformIconIOS;\n /**\n * Whether the menu is displayed inline with the parent menu.\n * By default, submenus are displayed after expanding the parent menu item.\n * Inline menus are displayed as part of the parent menu as a section.\n *\n * Defaults to `false`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayinline\n */\n inline?: boolean;\n /**\n * How the submenu items are displayed.\n * - `default`: menu items are displayed normally.\n * - `palette`: menu items are displayed in a horizontal row.\n *\n * Defaults to `default`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette\n */\n layout?: 'default' | 'palette';\n /**\n * Whether to apply destructive style to the menu item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenuelement/attributes/destructive\n */\n destructive?: boolean;\n /**\n * Whether multiple items in the submenu can be selected, i.e. in \"on\" state.\n *\n * Defaults to `false`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/singleselection\n */\n multiselectable?: boolean;\n /**\n * Array of menu items (actions or submenus).\n */\n items: NativeStackHeaderItemMenu['menu']['items'];\n};\n\n/**\n * An item that shows a menu when pressed.\n */\nexport type NativeStackHeaderItemMenu = SharedHeaderItem & {\n type: 'menu';\n /**\n * Whether the menu is a selection menu.\n * Tapping an item in a selection menu will add a checkmark to the selected item.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/changesselectionasprimaryaction\n */\n changesSelectionAsPrimaryAction?: boolean;\n /**\n * Menu for the item.\n */\n menu: {\n /**\n * Optional title to show on top of the menu.\n */\n title?: string;\n /**\n * Whether multiple items in the submenu can be selected, i.e. in \"on\" state.\n *\n * Defaults to `false`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/singleselection\n */\n multiselectable?: boolean;\n /**\n * How the submenu items are displayed.\n * - `default`: menu items are displayed normally.\n * - `palette`: menu items are displayed in a horizontal row.\n *\n * Defaults to `default`.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette\n */\n layout?: 'default' | 'palette';\n /**\n * Array of menu items (actions or submenus).\n */\n items: (NativeStackHeaderItemMenuAction | NativeStackHeaderItemMenuSubmenu)[];\n };\n};\n\n/**\n * An item to add spacing between other items in the header.\n */\nexport type NativeStackHeaderItemSpacing = {\n type: 'spacing';\n /**\n * The amount of spacing to add.\n */\n spacing: number;\n};\n\n/**\n * A custom item to display any React Element in the header.\n */\nexport type NativeStackHeaderItemCustom = {\n type: 'custom';\n /**\n * A React Element to display as the item.\n */\n element: React.ReactElement;\n /**\n * Whether the background this item may share with other items in the bar should be hidden.\n * Only available from iOS 26.0 and later.\n *\n * Read more: https://developer.apple.com/documentation/uikit/uibarbuttonitem/hidessharedbackground\n */\n hidesSharedBackground?: boolean;\n};\n\n/**\n * An item that can be displayed in the header.\n * It can be a button, a menu, spacing, or a custom element.\n *\n * On iOS 26, when showing items on the right side of the header,\n * if the items don't fit the available space, they will be collapsed into a menu automatically.\n * Items with `type: 'custom'` will not be included in this automatic collapsing behavior.\n */\nexport type NativeStackHeaderItem =\n | NativeStackHeaderItemButton\n | NativeStackHeaderItemMenu\n | NativeStackHeaderItemSpacing\n | NativeStackHeaderItemCustom;\n\nexport type NativeStackNavigatorProps = DefaultNavigatorOptions<\n ParamListBase,\n string | undefined,\n StackNavigationState<ParamListBase>,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap,\n NativeStackNavigationProp<ParamListBase>\n> &\n StackRouterOptions &\n NativeStackNavigationConfig;\n\nexport type NativeStackDescriptor = Descriptor<\n NativeStackNavigationOptions,\n NativeStackNavigationProp<ParamListBase>,\n RouteProp<ParamListBase>\n>;\n\nexport type NativeStackDescriptorMap = {\n [key: string]: NativeStackDescriptor;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeStackView.native.d.ts","sourceRoot":"","sources":["../../../../src/react-navigation/native-stack/views/NativeStackView.native.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,KAAK,oBAAoB,EAG1B,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeStackView.native.d.ts","sourceRoot":"","sources":["../../../../src/react-navigation/native-stack/views/NativeStackView.native.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,KAAK,oBAAoB,EAG1B,MAAM,cAAc,CAAC;AAmatB,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,4BAA4B,CAAC;IACzC,WAAW,EAAE,wBAAwB,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,OAAO,KAAK,qBAAqB,CAAC;CAC5F,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,KAAK,2CA8HlF"}
|
|
@@ -57,7 +57,8 @@ const useNativeDriver = react_native_1.Platform.OS !== 'web';
|
|
|
57
57
|
const SceneView = ({ index, focused, shouldFreeze, descriptor, previousDescriptor, nextDescriptor, isPresentationModal, isPreloaded, onWillDisappear, onWillAppear, onAppear, onDisappear, onDismissed, onHeaderBackButtonClicked, onNativeDismissCancelled, onGestureCancel, onSheetDetentChanged, }) => {
|
|
58
58
|
const { route, navigation, options, render } = descriptor;
|
|
59
59
|
let { animation, animationMatchesGesture, presentation = isPresentationModal ? 'modal' : 'card', fullScreenGestureEnabled, } = options;
|
|
60
|
-
const { animationDuration, animationTypeForReplace = 'push', fullScreenGestureShadowEnabled = true, gestureEnabled, gestureDirection = presentation === 'card' ? 'horizontal' : 'vertical', gestureResponseDistance, header, headerBackButtonMenuEnabled, headerShown, headerBackground, headerTransparent, autoHideHomeIndicator, keyboardHandlingEnabled, navigationBarColor, navigationBarTranslucent, navigationBarHidden, orientation, sheetAllowedDetents = [1.0], sheetLargestUndimmedDetentIndex = -1, sheetGrabberVisible = false, sheetCornerRadius = -1.0, sheetElevation = 24, sheetExpandsWhenScrolledToEdge = true, sheetInitialDetentIndex = 0, sheetShouldOverflowTopInset = false, sheetResizeAnimationEnabled = true, statusBarAnimation, statusBarHidden, statusBarStyle, statusBarTranslucent, statusBarBackgroundColor, unstable_sheetFooter, scrollEdgeEffects, freezeOnBlur, contentStyle, } = options;
|
|
60
|
+
const { animationDuration, animationTypeForReplace = 'push', fullScreenGestureShadowEnabled = true, gestureEnabled, gestureDirection = presentation === 'card' ? 'horizontal' : 'vertical', gestureResponseDistance, header, headerBackButtonMenuEnabled, headerShown, headerBackground, headerTransparent, autoHideHomeIndicator, keyboardHandlingEnabled, navigationBarColor, navigationBarTranslucent, navigationBarHidden, orientation, sheetAllowedDetents = [1.0], sheetLargestUndimmedDetentIndex = -1, sheetGrabberVisible = false, sheetCornerRadius = -1.0, sheetElevation = 24, sheetExpandsWhenScrolledToEdge = true, sheetInitialDetentIndex = 0, sheetShouldOverflowTopInset = false, sheetResizeAnimationEnabled = true, statusBarAnimation, statusBarHidden, statusBarStyle, statusBarTranslucent, statusBarBackgroundColor, unstable_sheetFooter, scrollEdgeEffects, freezeOnBlur, contentStyle, unstable_nativeProps, } = options;
|
|
61
|
+
const screenNativeProps = unstable_nativeProps;
|
|
61
62
|
if (gestureDirection === 'vertical' && react_native_1.Platform.OS === 'ios') {
|
|
62
63
|
// for `vertical` direction to work, we need to set `fullScreenGestureEnabled` to `true`
|
|
63
64
|
// so the screen can be dismissed from any point on screen.
|
|
@@ -220,7 +221,7 @@ const SceneView = ({ index, focused, shouldFreeze, descriptor, previousDescripto
|
|
|
220
221
|
backgroundColor: colors.background,
|
|
221
222
|
},
|
|
222
223
|
contentStyle,
|
|
223
|
-
],
|
|
224
|
+
], unstable_sheetFooter: unstable_sheetFooter, ...screenNativeProps, headerConfig: headerConfig,
|
|
224
225
|
// When ts-expect-error is added, it affects all the props below it
|
|
225
226
|
// So we keep any props that need it at the end
|
|
226
227
|
// Otherwise invalid props may not be caught by TypeScript
|